diff options
5 files changed, 79 insertions, 177 deletions
diff --git a/common/onap-common-configuration-management/onap-configuration-management-core/pom.xml b/common/onap-common-configuration-management/onap-configuration-management-core/pom.xml index 46e4579aa6..78c378713a 100644 --- a/common/onap-common-configuration-management/onap-configuration-management-core/pom.xml +++ b/common/onap-common-configuration-management/onap-configuration-management-core/pom.xml @@ -106,11 +106,6 @@ <scope>test</scope> <version>${junit.version}</version> </dependency> - <dependency> - <groupId>io.vavr</groupId> - <artifactId>vavr</artifactId> - <version>0.9.2</version> - </dependency> </dependencies> </project> 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 9782fc9969..db64f7f7fc 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 @@ -670,7 +670,7 @@ public class ConfigurationUtils { Configuration dbConfig = ConfigurationRepository.lookup() .getConfigurationFor(Constants.DEFAULT_TENANT, Constants.DB_NAMESPACE); BasicConfigurationBuilder<AgglomerateConfiguration> builder = - new BasicConfigurationBuilder<>(AgglomerateConfiguration.class); + new BasicConfigurationBuilder<AgglomerateConfiguration>(AgglomerateConfiguration.class); builder.configure( new Parameters().database() .setDataSource(ConfigurationDataSource.lookup()) diff --git a/common/onap-common-configuration-management/onap-configuration-management-core/src/main/java/org/onap/config/NonConfigResource.java b/common/onap-common-configuration-management/onap-configuration-management-core/src/main/java/org/onap/config/NonConfigResource.java index a63b455a16..830cdfef5a 100644 --- a/common/onap-common-configuration-management/onap-configuration-management-core/src/main/java/org/onap/config/NonConfigResource.java +++ b/common/onap-common-configuration-management/onap-configuration-management-core/src/main/java/org/onap/config/NonConfigResource.java @@ -1,104 +1,95 @@ package org.onap.config; -import io.vavr.Function1; -import io.vavr.collection.HashSet; -import io.vavr.collection.Set; -import io.vavr.control.Option; - import java.io.File; -import java.net.URISyntaxException; import java.net.URL; import java.nio.file.Path; import java.nio.file.Paths; - -import static io.vavr.API.Option; +import java.util.Collection; +import java.util.HashSet; +import java.util.Set; +import java.util.function.Predicate; /** * The type Non config resource. */ public class NonConfigResource { - private Function1<String, String> propertyGetter; - private Set<URL> urls; - private Set<Path> files; - - private NonConfigResource(Function1<String, String> propertyGetter) { - this.propertyGetter = propertyGetter; - this.files = HashSet.empty(); - this.urls = HashSet.empty(); - } + private static Set<URL> urls = new HashSet<>(); + private static Set<File> files = new HashSet<>(); - public static NonConfigResource create(Function1<String, String> propertyGetter) { - return new NonConfigResource(propertyGetter); - } + /** + * Add. + * + * @param url the url + */ + public static void add(URL url) { + urls.add(url); + } - /** - * Add. - * - * @param url the url - */ - public void add(URL url) { - urls = urls.add(url); - } + /** + * Add. + * + * @param file the file + */ + public static void add(File file) { + files.add(file); + } - /** - * Add. - * - * @param file the file - */ - public void add(File file) { - files = files.add(file.toPath()); - } - - /** - * Locate path. - * - * @param resource the resource - * @return the path - */ - public Path locate(String resource) { - Path toReturn = null; - try { - if (resource != null) { - toReturn = tryToLocateResource(resource).getOrNull(); - } - } catch (Exception exception) { - exception.printStackTrace(); + /** + * Locate path. + * + * @param resource the resource + * @return the path + */ + public static Path locate(String resource) { + try { + if (resource != null) { + File file = new File(resource); + if (file.exists()) { + return Paths.get(resource); } - return toReturn; - } - - private Option<Path> tryToLocateResource(String resource) throws URISyntaxException { - return new File(resource).exists() ? Option(Paths.get(resource)) : getPathForResourceAmongFiles(resource) - .orElse(getPathForResourceBasedOnProperty(resource, "node.config.location")) - .orElse(getPathForResourceBasedOnProperty(resource, "config.location")) - .orElse(getPathForResourceAmongUrls(resource)); - } - - private Option<Path> getPathForResourceBasedOnProperty(String resource, String configPropertyKey) { - return Option(propertyGetter.apply(configPropertyKey)) - .flatMap(el -> locate(new File(el), resource)); - } - - private Option<Path> getPathForResourceAmongFiles(String resource) { - return files.map(Path::toAbsolutePath) - .filter(path -> path.toFile().exists() && path.endsWith(resource)) - .headOption(); - } - - private Option<Path> getPathForResourceAmongUrls(String resource) throws URISyntaxException { - return urls.filter(url -> url.getFile().endsWith(resource)) - .headOption() - .flatMap(url -> Option(Paths.get(url.getPath()))); + for (File availableFile : files) { + if (availableFile.getAbsolutePath().endsWith(resource) && availableFile.exists()) { + return Paths.get(availableFile.getAbsolutePath()); + } + } + if (System.getProperty("node.config.location") != null) { + Path path = locate(new File(System.getProperty("node.config.location")), resource); + if (path != null) { + return path; + } + } + if (System.getProperty("config.location") != null) { + Path path = locate(new File(System.getProperty("config.location")), resource); + if (path != null) { + return path; + } + } + for (URL url : urls) { + if (url.getFile().endsWith(resource)) { + return Paths.get(url.toURI()); + } + } + } + } catch (Exception exception) { + exception.printStackTrace(); } + return null; + } - private Option<Path> locate(File root, String resource) { - return root.exists() ? Option.ofOptional(ConfigurationUtils.getAllFiles(root, true, false) - .stream() - .filter(file -> !ConfigurationUtils.isConfig(file)) - .peek(this::add) - .filter(file -> file.getAbsolutePath().endsWith(resource)) - .map(file -> Paths.get(file.getAbsolutePath())) - .findAny()) : Option.none(); + private static Path locate(File root, String resource) { + if (root.exists()) { + Collection<File> filesystemResources = ConfigurationUtils.getAllFiles(root, true, false); + Predicate<File> f1 = ConfigurationUtils::isConfig; + for (File file : filesystemResources) { + if (!f1.test(file)) { + add(file); + if (file.getAbsolutePath().endsWith(resource)) { + return Paths.get(file.getAbsolutePath()); + } + } + } } + return null; + } } diff --git a/common/onap-common-configuration-management/onap-configuration-management-core/src/main/java/org/onap/config/impl/ConfigurationImpl.java b/common/onap-common-configuration-management/onap-configuration-management-core/src/main/java/org/onap/config/impl/ConfigurationImpl.java index 56390ea54a..00725b1165 100644 --- a/common/onap-common-configuration-management/onap-configuration-management-core/src/main/java/org/onap/config/impl/ConfigurationImpl.java +++ b/common/onap-common-configuration-management/onap-configuration-management-core/src/main/java/org/onap/config/impl/ConfigurationImpl.java @@ -1,6 +1,5 @@ package org.onap.config.impl; - import org.apache.commons.configuration2.Configuration; import org.apache.commons.configuration2.DatabaseConfiguration; import org.onap.config.ConfigurationUtils; @@ -40,7 +39,6 @@ public class ConfigurationImpl implements org.onap.config.api.Configuration { ; }; private static boolean instantiated = false; - private static NonConfigResource nonConfigResource = NonConfigResource.create(propertyName -> System.getProperties().getProperty(propertyName)); /** * The Change notifier. */ @@ -68,7 +66,7 @@ public class ConfigurationImpl implements org.onap.config.api.Configuration { } moduleConfig.addConfig(url); } else { - nonConfigResource.add(url); + NonConfigResource.add(url); } } String configLocation = System.getProperty("config.location"); @@ -86,7 +84,7 @@ public class ConfigurationImpl implements org.onap.config.api.Configuration { } moduleConfig.addConfig(file); } else { - nonConfigResource.add(file); + NonConfigResource.add(file); } } } @@ -455,7 +453,7 @@ public class ConfigurationImpl implements org.onap.config.api.Configuration { if (String.class.equals(clazz)) { if (obj.toString().startsWith("@") && ConfigurationUtils.isExternalLookup(processingHint)) { String contents = ConfigurationUtils - .getFileContents(nonConfigResource.locate(obj.toString().substring(1).trim())); + .getFileContents(NonConfigResource.locate(obj.toString().substring(1).trim())); if (contents == null) { contents = ConfigurationUtils.getFileContents(obj.toString().substring(1).trim()); } diff --git a/common/onap-common-configuration-management/onap-configuration-management-core/src/test/java/org/onap/config/type/NonConfigResourceTest.java b/common/onap-common-configuration-management/onap-configuration-management-core/src/test/java/org/onap/config/type/NonConfigResourceTest.java deleted file mode 100644 index 0671996fb5..0000000000 --- a/common/onap-common-configuration-management/onap-configuration-management-core/src/test/java/org/onap/config/type/NonConfigResourceTest.java +++ /dev/null @@ -1,82 +0,0 @@ -package org.onap.config.type; - -import com.google.common.collect.ImmutableMap; -import org.junit.Test; -import org.onap.config.NonConfigResource; - -import java.io.File; -import java.net.MalformedURLException; -import java.net.URISyntaxException; -import java.net.URL; -import java.nio.file.Path; -import java.nio.file.Paths; -import java.util.Map; - -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; - -public class NonConfigResourceTest { - - private final URL sampleUrlResource = NonConfigResourceTest.class.getResource("NonConfigResourceTest.class"); - private final String sampleResourcePath = sampleUrlResource.getPath(); - private final File sampleResourceFile = new File(sampleResourcePath); - - @Test - public void testShouldLocateResourceWhenAbsPathProvided2() { - Map<String, String> properties = ImmutableMap.of(); - Path actualResourcePath = NonConfigResource.create(properties::get).locate(sampleResourceFile.toString()); - - assertTrue(actualResourcePath.compareTo(sampleResourceFile.toPath()) == 0); - } - - @Test - public void testShouldLocateResourceWhenPresentInFiles2() { - Map<String, String> properties = ImmutableMap.of(); - NonConfigResource testedObject = NonConfigResource.create(properties::get); - testedObject.add(sampleResourceFile); - - Path thisFilePath = testedObject.locate("NonConfigResourceTest.class"); - - assertTrue(thisFilePath.compareTo(sampleResourceFile.toPath()) == 0); - } - - @Test - public void testShouldLocateResourceWhenNodeConfigPropertyIsSet2() throws URISyntaxException, MalformedURLException { - Map<String, String> properties = ImmutableMap.of("node.config.location", new File(sampleResourcePath).getParentFile().getPath()); - NonConfigResource testedNonConfigResource = NonConfigResource.create(properties::get); - System.getProperties().setProperty("node.config.location", new File(sampleResourcePath).getParentFile().getPath()); - Path thisFilePath = testedNonConfigResource.locate("NonConfigResourceTest.class"); - - assertTrue(thisFilePath.compareTo(new File(sampleResourcePath).toPath()) == 0); - } - - @Test - public void testShouldLocateResourceWhenConfigPropertyIsSet2() { - Map<String, String> properties = ImmutableMap.of("config.location", new File(sampleResourcePath).getParentFile().getPath()); - NonConfigResource testedNonConfigResource = NonConfigResource.create(properties::get); - Path thisFilePath = testedNonConfigResource.locate("NonConfigResourceTest.class"); - - assertTrue(thisFilePath.compareTo(new File(sampleResourcePath).toPath()) == 0); - } - - @Test - public void testShouldLocatePathWhenResourcePresentInUrls2() throws URISyntaxException { - Map<String, String> properties = ImmutableMap.of(); - NonConfigResource testedObject = NonConfigResource.create(properties::get); - testedObject.add(sampleUrlResource); - - Path thisFilePath = testedObject.locate("NonConfigResourceTest.class"); - - assertTrue(thisFilePath.compareTo(Paths.get(sampleUrlResource.toURI())) == 0); - } - - @Test - public void testShouldNotLocateResource2() throws URISyntaxException { - Map<String, String> properties = ImmutableMap.of(); - NonConfigResource testedObject = NonConfigResource.create(properties::get); - - Path thisFilePath = testedObject.locate("nonexistingresource"); - - assertNull(thisFilePath); - } -} |