aboutsummaryrefslogtreecommitdiffstats
path: root/common/onap-common-configuration-management/onap-configuration-management-core/src/main/java/org/onap/config/ConfigurationUtils.java
diff options
context:
space:
mode:
Diffstat (limited to 'common/onap-common-configuration-management/onap-configuration-management-core/src/main/java/org/onap/config/ConfigurationUtils.java')
-rw-r--r--common/onap-common-configuration-management/onap-configuration-management-core/src/main/java/org/onap/config/ConfigurationUtils.java67
1 files changed, 24 insertions, 43 deletions
diff --git a/common/onap-common-configuration-management/onap-configuration-management-core/src/main/java/org/onap/config/ConfigurationUtils.java b/common/onap-common-configuration-management/onap-configuration-management-core/src/main/java/org/onap/config/ConfigurationUtils.java
index dcdf17a992..ee1d7b10aa 100644
--- a/common/onap-common-configuration-management/onap-configuration-management-core/src/main/java/org/onap/config/ConfigurationUtils.java
+++ b/common/onap-common-configuration-management/onap-configuration-management-core/src/main/java/org/onap/config/ConfigurationUtils.java
@@ -26,6 +26,7 @@ import java.io.File;
import java.lang.reflect.Field;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
+import java.net.MalformedURLException;
import java.net.URL;
import java.nio.file.Files;
import java.nio.file.Path;
@@ -71,7 +72,6 @@ import org.apache.commons.configuration2.ex.ConfigurationException;
import org.apache.commons.io.IOUtils;
import org.onap.config.api.Config;
import org.onap.config.api.ConfigurationManager;
-import org.onap.config.impl.AgglomerateConfiguration;
import org.onap.config.impl.ConfigurationRepository;
import org.onap.config.impl.YamlConfiguration;
import org.onap.config.type.ConfigurationMode;
@@ -163,29 +163,36 @@ public class ConfigurationUtils {
}
public static Optional<FileBasedConfiguration> getConfiguration(URL url) {
- FileBasedConfiguration builder = null;
+
try {
+
ConfigurationType configType = ConfigurationUtils.getConfigType(url);
switch (configType) {
case PROPERTIES:
- builder = new Configurations().fileBased(PropertiesConfiguration.class, url);
- break;
+ return Optional.of(new Configurations().fileBased(PropertiesConfiguration.class, url));
case XML:
- builder = new Configurations().fileBased(XMLConfiguration.class, url);
- break;
+ return Optional.of(new Configurations().fileBased(XMLConfiguration.class, url));
case JSON:
- builder = new Configurations().fileBased(JsonConfiguration.class, url);
- break;
+ return Optional.of(new Configurations().fileBased(JsonConfiguration.class, url));
case YAML:
- builder = new Configurations().fileBased(YamlConfiguration.class, url);
- break;
+ return Optional.of(new Configurations().fileBased(YamlConfiguration.class, url));
default:
throw new ConfigurationException(CONFIGURATION_TYPE_NOT_SUPPORTED + configType);
}
} catch (ConfigurationException exception) {
exception.printStackTrace();
}
- return ofNullable(builder);
+
+ return Optional.empty();
+ }
+
+ public static Optional<FileBasedConfiguration> getConfiguration(File file) {
+
+ try {
+ return getConfiguration(file.getAbsoluteFile().toURI().toURL());
+ } catch (MalformedURLException e) {
+ throw new IllegalStateException("Malformed URL: " + file.getAbsolutePath());
+ }
}
public static ConfigurationMode getMergeStrategy(String file) {
@@ -242,32 +249,6 @@ public class ConfigurationUtils {
return configurationMode.orElseGet(() -> getMergeStrategy(file.getName().toUpperCase()));
}
- public static Optional<FileBasedConfiguration> getConfiguration(File file) {
- FileBasedConfiguration builder = null;
- try {
- ConfigurationType configType = ConfigurationUtils.getConfigType(file);
- switch (configType) {
- case PROPERTIES:
- builder = new Configurations().fileBased(PropertiesConfiguration.class, file);
- break;
- case XML:
- builder = new Configurations().fileBased(XMLConfiguration.class, file);
- break;
- case JSON:
- builder = new Configurations().fileBased(JsonConfiguration.class, file);
- break;
- case YAML:
- builder = new Configurations().fileBased(YamlConfiguration.class, file);
- break;
- default:
- throw new ConfigurationException(CONFIGURATION_TYPE_NOT_SUPPORTED + configType);
- }
- } catch (ConfigurationException exception) {
- exception.printStackTrace();
- }
- return ofNullable(builder);
- }
-
public static ConfigurationType getConfigType(File file) {
return Enum.valueOf(ConfigurationType.class,
file.getAbsolutePath().substring(file.getAbsolutePath().lastIndexOf('.') + 1).toUpperCase());
@@ -651,15 +632,15 @@ public class ConfigurationUtils {
}
public static Object getProperty(Configuration config, String key, int processingHints) {
+
if (!isDirectLookup(processingHints)) {
- if (config instanceof AgglomerateConfiguration) {
- return ((AgglomerateConfiguration) config).getPropertyValue(key);
- } else if (config instanceof CompositeConfiguration) {
+
+ if (config instanceof CompositeConfiguration) {
+
CompositeConfiguration conf = (CompositeConfiguration) config;
for (int i = 0; i < conf.getNumberOfConfigurations(); i++) {
- if (conf.getConfiguration(i) instanceof AgglomerateConfiguration) {
- return ((AgglomerateConfiguration) conf.getConfiguration(i)).getPropertyValue(key);
- } else if (isNodeSpecific(processingHints)) {
+
+ if (isNodeSpecific(processingHints)) {
Object obj = conf.getConfiguration(i).getProperty(key);
if (obj != null) {
return obj;