Locator Service link correction
[aaf/authz.git] / cadi / core / src / main / java / org / onap / aaf / cadi / PropAccess.java
index 599bb98..461ef43 100644 (file)
@@ -93,10 +93,20 @@ public class PropAccess implements Access {
         int eq;
         for (String arg : args) {
             if ((eq=arg.indexOf('='))>0) {
-                nprops.setProperty(arg.substring(0, eq),arg.substring(eq+1));
+               String key = arg.substring(0, eq);
+                if(Config.CADI_PROP_FILES.equals(key)) {
+                       nprops.setProperty(key,arg.substring(eq+1));
+                }
             }
         }
         init(nprops);
+        
+        // Re-overlay Args
+        for (String arg : args) {
+            if ((eq=arg.indexOf('='))>0) {
+                props.setProperty(arg.substring(0, eq),arg.substring(eq+1));
+            }
+        }
     }
     
     protected void init(Properties p) {
@@ -105,15 +115,16 @@ public class PropAccess implements Access {
         level=DEFAULT.maskOf();
         
         props = new Properties();
-        // First, load related System Properties
+        
+        // Find the "cadi_prop_files"
+        //  First in VM Args
         for (Entry<Object,Object> es : System.getProperties().entrySet()) {
             String key = es.getKey().toString();
-            for (String start : new String[] {"HOSTNAME","cadi_","aaf_","cm_"}) {
-                if (key.startsWith(start)) {
-                    props.put(key, es.getValue());
-                }
-            }            
+            if(Config.CADI_PROP_FILES.equals(key)) {
+               props.put(key,es.getValue().toString());
+            }
         }
+        
         // Second, overlay or fill in with Passed in Props
         if (p!=null) {
             props.putAll(p);
@@ -122,6 +133,16 @@ public class PropAccess implements Access {
         // Third, load any Chained Property Files
         load(props.getProperty(Config.CADI_PROP_FILES));
         
+        // Fourth, System.getProperties takes precedence over Files
+        for (Entry<Object,Object> es : System.getProperties().entrySet()) {
+            String key = es.getKey().toString();
+            for (String start : new String[] {"HOSTNAME","cadi_","aaf_","cm_"}) {
+                if (key.startsWith(start)) {
+                    props.put(key, es.getValue());
+                }
+            }            
+        }
+        
         String sLevel = props.getProperty(Config.CADI_LOGLEVEL); 
         if (sLevel!=null) {
             level=Level.valueOf(sLevel).maskOf();