You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by jb...@apache.org on 2011/10/25 14:30:29 UTC

svn commit: r1188630 - /karaf/branches/karaf-2.2.x/shell/config/src/main/java/org/apache/karaf/shell/config/UpdateCommand.java

Author: jbonofre
Date: Tue Oct 25 12:30:29 2011
New Revision: 1188630

URL: http://svn.apache.org/viewvc?rev=1188630&view=rev
Log:
[KARAF-952] config:propdel deletes the property from the cfg file

Modified:
    karaf/branches/karaf-2.2.x/shell/config/src/main/java/org/apache/karaf/shell/config/UpdateCommand.java

Modified: karaf/branches/karaf-2.2.x/shell/config/src/main/java/org/apache/karaf/shell/config/UpdateCommand.java
URL: http://svn.apache.org/viewvc/karaf/branches/karaf-2.2.x/shell/config/src/main/java/org/apache/karaf/shell/config/UpdateCommand.java?rev=1188630&r1=1188629&r2=1188630&view=diff
==============================================================================
--- karaf/branches/karaf-2.2.x/shell/config/src/main/java/org/apache/karaf/shell/config/UpdateCommand.java (original)
+++ karaf/branches/karaf-2.2.x/shell/config/src/main/java/org/apache/karaf/shell/config/UpdateCommand.java Tue Oct 25 12:30:29 2011
@@ -17,6 +17,7 @@
 package org.apache.karaf.shell.config;
 
 import java.io.File;
+import java.util.ArrayList;
 import java.util.Dictionary;
 import java.util.Enumeration;
 
@@ -74,6 +75,20 @@ public class UpdateCommand extends Confi
                     p.put((String) key, (String) props.get(key));
                 }
             }
+            // remove "removed" properties from the file
+            ArrayList<String> propertiesToRemove = new ArrayList<String>();
+            for (String key : p.keySet()) {
+                if (props.get(key) == null
+                        && !Constants.SERVICE_PID.equals(key)
+                        && !ConfigurationAdmin.SERVICE_FACTORYPID.equals(key)
+                        && !FELIX_FILEINSTALL_FILENAME.equals(key)) {
+                    propertiesToRemove.add(key);
+                }
+            }
+            for (String key : propertiesToRemove) {
+                p.remove(key);
+            }
+            // save the cfg file
             storage.mkdirs();
             p.save();
         } else {