Repository: karaf
Updated Branches:
  refs/heads/karaf-2.x 82d4c0151 -> 14d33ecb3


[KARAF-1560] Manage Boolean, Integer, etc type in configuration


Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/14d33ecb
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/14d33ecb
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/14d33ecb

Branch: refs/heads/karaf-2.x
Commit: 14d33ecb3149489569fd159bc5e307c6b31896fa
Parents: 82d4c01
Author: Jean-Baptiste Onofré <[email protected]>
Authored: Mon Oct 6 14:19:03 2014 +0200
Committer: Jean-Baptiste Onofré <[email protected]>
Committed: Mon Oct 6 14:19:03 2014 +0200

----------------------------------------------------------------------
 .../mbeans/config/internal/ConfigMBeanImpl.java       | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/karaf/blob/14d33ecb/management/mbeans/config/src/main/java/org/apache/karaf/management/mbeans/config/internal/ConfigMBeanImpl.java
----------------------------------------------------------------------
diff --git 
a/management/mbeans/config/src/main/java/org/apache/karaf/management/mbeans/config/internal/ConfigMBeanImpl.java
 
b/management/mbeans/config/src/main/java/org/apache/karaf/management/mbeans/config/internal/ConfigMBeanImpl.java
index 28a1694..150cdc7 100644
--- 
a/management/mbeans/config/src/main/java/org/apache/karaf/management/mbeans/config/internal/ConfigMBeanImpl.java
+++ 
b/management/mbeans/config/src/main/java/org/apache/karaf/management/mbeans/config/internal/ConfigMBeanImpl.java
@@ -205,7 +205,7 @@ public class ConfigMBeanImpl extends StandardMBean 
implements ConfigMBean {
      * @param properties the configuration properties.
      * @throws Exception
      */
-    private void store(String pid, Dictionary properties, boolean 
bypassStorage) throws Exception {
+    private void store(String pid, Dictionary<String, Object> properties, 
boolean bypassStorage) throws Exception {
         if (!bypassStorage && storage != null) {
             File storageFile = new File(storage, pid + ".cfg");
             Configuration configuration = 
configurationAdmin.getConfiguration(pid, null);
@@ -227,22 +227,24 @@ public class ConfigMBeanImpl extends StandardMBean 
implements ConfigMBean {
             }
             Properties p = new Properties(storageFile);
             p.clear();
-            for (Enumeration keys = properties.keys(); keys.hasMoreElements(); 
) {
-                Object key = keys.nextElement();
+            for (Enumeration<String> keys = properties.keys(); 
keys.hasMoreElements(); ) {
+                String key = keys.nextElement();
                 if (!Constants.SERVICE_PID.equals(key)
                         && !ConfigurationAdmin.SERVICE_FACTORYPID.equals(key)
                         && !FELIX_FILEINSTALL_FILENAME.equals(key)) {
-                    p.put((String) key, (String) properties.get(key));
+                    if (properties.get(key) != null) {
+                        p.put(key, properties.get(key).toString());
+                    }
                 }
             }
             // remove "removed" properties from the file
             ArrayList<String> propertiesToRemove = new ArrayList<String>();
-            for (Object key : p.keySet()) {
+            for (String key : p.keySet()) {
                 if (properties.get(key) == null
                         && !Constants.SERVICE_PID.equals(key)
                         && !ConfigurationAdmin.SERVICE_FACTORYPID.equals(key)
                         && !FELIX_FILEINSTALL_FILENAME.equals(key)) {
-                    propertiesToRemove.add(key.toString());
+                    propertiesToRemove.add(key);
                 }
             }
             for (String key : propertiesToRemove) {

Reply via email to