You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by gn...@apache.org on 2017/04/07 14:35:24 UTC

svn commit: r1790564 - /felix/trunk/fileinstall/src/main/java/org/apache/felix/fileinstall/internal/ConfigInstaller.java

Author: gnodet
Date: Fri Apr  7 14:35:24 2017
New Revision: 1790564

URL: http://svn.apache.org/viewvc?rev=1790564&view=rev
Log:
[FELIX-5610] Files should be deleted if a configuration is deleted

Modified:
    felix/trunk/fileinstall/src/main/java/org/apache/felix/fileinstall/internal/ConfigInstaller.java

Modified: felix/trunk/fileinstall/src/main/java/org/apache/felix/fileinstall/internal/ConfigInstaller.java
URL: http://svn.apache.org/viewvc/felix/trunk/fileinstall/src/main/java/org/apache/felix/fileinstall/internal/ConfigInstaller.java?rev=1790564&r1=1790563&r2=1790564&view=diff
==============================================================================
--- felix/trunk/fileinstall/src/main/java/org/apache/felix/fileinstall/internal/ConfigInstaller.java (original)
+++ felix/trunk/fileinstall/src/main/java/org/apache/felix/fileinstall/internal/ConfigInstaller.java Fri Apr  7 14:35:24 2017
@@ -169,6 +169,27 @@ public class ConfigInstaller implements
                 Util.log( context, Logger.LOG_INFO, "Unable to save configuration", e );
             }
         }
+
+        if (configurationEvent.getType() == ConfigurationEvent.CM_DELETED)
+        {
+            try {
+                Configuration config = getConfigurationAdmin().getConfiguration(
+                        configurationEvent.getPid(),
+                        configurationEvent.getFactoryPid());
+                Dictionary dict = config.getProperties();
+                String fileName = (String) dict.get(DirectoryWatcher.FILENAME);
+                File file = fileName != null ? fromConfigKey(fileName) : null;
+                if (file != null && file.isFile()) {
+                    if (!file.delete()) {
+                        throw new IOException("Unable to delete file: " + file);
+                    }
+                }
+            }
+            catch (Exception e)
+            {
+                Util.log( context, Logger.LOG_INFO, "Unable to delete configuration file", e );
+            }
+        }
     }
 
     boolean shouldSaveConfig()