Using Properties class in felix util package to keep the config-substitutions in section as they are defeined. GERONIMO-5310 Better ordering for config-substitutions.properties

git-svn-id: https://svn.apache.org/repos/asf/geronimo/server/trunk@1153754 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/framework/modules/geronimo-system/pom.xml b/framework/modules/geronimo-system/pom.xml
index 0884dea..76de54c 100644
--- a/framework/modules/geronimo-system/pom.xml
+++ b/framework/modules/geronimo-system/pom.xml
@@ -185,6 +185,7 @@
                 <artifactId>maven-bundle-plugin</artifactId>
                 <configuration>
                     <instructions>
+                        <Embed-Dependency>org.apache.felix.bundlerepository;inline=org/apache/felix/utils/properties/*.class</Embed-Dependency>
                         <!--<_versionpolicy>[$(version;==;$(@)),$(version;+;$(@)))</_versionpolicy>-->
                         <Import-Package>javax.security.auth,
                         javax.security.auth.callback,
diff --git a/framework/modules/geronimo-system/src/main/java/org/apache/geronimo/system/configuration/LocalAttributeManager.java b/framework/modules/geronimo-system/src/main/java/org/apache/geronimo/system/configuration/LocalAttributeManager.java
index 4193ef8..6a3484d 100644
--- a/framework/modules/geronimo-system/src/main/java/org/apache/geronimo/system/configuration/LocalAttributeManager.java
+++ b/framework/modules/geronimo-system/src/main/java/org/apache/geronimo/system/configuration/LocalAttributeManager.java
@@ -32,7 +32,6 @@
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
-import java.util.Properties;
 import java.util.Timer;
 import java.util.TimerTask;
 
@@ -66,6 +65,7 @@
 import org.apache.geronimo.system.serverinfo.ServerInfo;
 import org.xml.sax.SAXException;
 import org.osgi.framework.Bundle;
+import org.apache.felix.utils.properties.Properties;
 
 /**
  * Stores managed attributes in an XML file on the local filesystem.
@@ -257,8 +257,11 @@
         return expressionParser.parse(in);
     }
 
-    public void addConfigSubstitutions(Properties properties) {
-        localConfigSubstitutions.putAll(properties);
+    public void addConfigSubstitutions(java.util.Properties properties) {
+        for (Object key : properties.keySet()) {
+            String keyStr = (String) key;
+            localConfigSubstitutions.put(keyStr, properties.getProperty(keyStr));
+        }        
         Map<String, Object> configSubstutions = loadAllConfigSubstitutions(localConfigSubstitutions, prefix);
         storeConfigSubstitutions(configSubstitutionsFile, localConfigSubstitutions);
         expressionParser.setVariables(configSubstutions);
@@ -675,7 +678,7 @@
                 FileOutputStream out = new FileOutputStream(configSubstitutionsFile);
                 try {
                     out.write(INSTRUCTION);                    
-                    properties.store(out, null);
+                    properties.save(out);
                 } finally {
                     out.close();
                 }