Check system property before environment variable
authorSmokowski, Kevin (ks6305) <ks6305@att.com>
Fri, 9 Mar 2018 21:05:19 +0000 (21:05 +0000)
committerKevin Smokowski <ks6305@att.com>
Fri, 9 Mar 2018 21:39:28 +0000 (21:39 +0000)
Allow system property to take precedence over environment variable when searching for the properties file

Change-Id: I1c6f7099551d814ca388f4694a0bb24409a7167b
Issue-ID: CCSDK-209
Signed-off-by: Smokowski, Kevin (ks6305) <ks6305@att.com>
utils/provider/src/main/java/org/onap/ccsdk/sli/core/utils/EnvVarFileResolver.java

index 5e87412..669b399 100755 (executable)
@@ -28,7 +28,7 @@ import java.util.Optional;
 
 /**
  * Resolves properties files relative to the directory identified by the <code>SDNC_CONFIG_DIR</code>
- * environment variable.
+ * environment variable. If a system property with the same name is set it is given precedence.
  */
 public abstract class EnvVarFileResolver implements PropertiesFileResolver {
 
@@ -51,8 +51,14 @@ public abstract class EnvVarFileResolver implements PropertiesFileResolver {
      */
     @Override
     public Optional<File> resolveFile(final String filename) {
-        // attempt to resolve the property directory from the corresponding environment variable
-        final String propDirectoryFromEnvVariable = System.getenv(propertyKey);
+        // attempt to read the system property first
+        String propDirectoryFromEnvVariable = System.getProperty(propertyKey);
+        if(propDirectoryFromEnvVariable == null) {
+            // attempt to resolve the property directory from the corresponding environment variable
+            propDirectoryFromEnvVariable = System.getenv(propertyKey);
+        }
+
         final File fileFromEnvVariable;
         if (!Strings.isNullOrEmpty(propDirectoryFromEnvVariable)) {
             fileFromEnvVariable = Paths.get(propDirectoryFromEnvVariable).resolve(filename).toFile();