You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicemix.apache.org by gn...@apache.org on 2008/01/28 14:53:32 UTC

svn commit: r615879 - /servicemix/smx4/kernel/trunk/filemonitor/src/main/java/org/apache/servicemix/kernel/filemonitor/FileMonitor.java

Author: gnodet
Date: Mon Jan 28 05:53:30 2008
New Revision: 615879

URL: http://svn.apache.org/viewvc?rev=615879&view=rev
Log:
Fix deployment of expanded bundles

Modified:
    servicemix/smx4/kernel/trunk/filemonitor/src/main/java/org/apache/servicemix/kernel/filemonitor/FileMonitor.java

Modified: servicemix/smx4/kernel/trunk/filemonitor/src/main/java/org/apache/servicemix/kernel/filemonitor/FileMonitor.java
URL: http://svn.apache.org/viewvc/servicemix/smx4/kernel/trunk/filemonitor/src/main/java/org/apache/servicemix/kernel/filemonitor/FileMonitor.java?rev=615879&r1=615878&r2=615879&view=diff
==============================================================================
--- servicemix/smx4/kernel/trunk/filemonitor/src/main/java/org/apache/servicemix/kernel/filemonitor/FileMonitor.java (original)
+++ servicemix/smx4/kernel/trunk/filemonitor/src/main/java/org/apache/servicemix/kernel/filemonitor/FileMonitor.java Mon Jan 28 05:53:30 2008
@@ -200,15 +200,14 @@
 
         for (Object filename : filenames) {
             String name = filename.toString();
-            boolean added = true;
-            
+
             File file = new File(name);
             try {
                 logger.debug("File changed: " + filename + " with type: " + filename.getClass().getName());
 
                 // Handle config files
                 if (isValidConfigFile(file)) {
-                    if (added) {
+                    if (file.exists()) {
                         updateConfiguration(file);
                     }
                     else {
@@ -217,6 +216,29 @@
                     continue;
                 }
 
+                // Handle exploded artifacts removal
+                if (!file.exists() && file.getName().equals("MANIFEST.MF")) {
+                    File parentFile = file.getParentFile();
+                    if (parentFile.getName().equals("META-INF")) {
+                        File bundleDir = parentFile.getParentFile();
+                        if (isValidBundleSourceDirectory(bundleDir)) {
+                            undeployBundle(bundleDir);
+                            continue;
+                        }
+                    }
+                }
+
+                // Handle exploded artifacts add
+                File jardir = getExpandedBundleRootDirectory(file);
+                if (jardir != null) {
+                    if (bundleJarsCreated.contains(jardir)) {
+                        continue;
+                    }
+                    bundleJarsCreated.add(jardir);
+                    file = createBundleJar(jardir);
+                }
+
+                // Transformation step
                 if (file.exists()) {
                     file = transformArtifact(file);
                     if (file == null) {
@@ -224,7 +246,6 @@
                         continue;
                     }
                 } else {
-                	added = false;
                 	String transformedFile = artifactToBundle.get(name);
                 	if (transformedFile != null) {
                 		file = new File(transformedFile);
@@ -234,31 +255,13 @@
                 	}
                 }
 
-                // Check artifacts
-                // now lets iterate to find the parent directory
-                File jardir = getExpandedBundleRootDirectory(file);
-                if (jardir != null) {
-                    if (file.exists() && !bundleJarsCreated.contains(jardir)) {
-                        bundleJarsCreated.add(jardir);
-                        File newBundle = createBundleJar(jardir);
-                        deployBundle(newBundle);
-                    }
-                }
-                else if (isValidArtifactFile(file)) {
-                    if (added) {
+                // Handle final bundles
+                if (isValidArtifactFile(file)) {
+                    if (file.exists()) {
                         deployBundle(file);
                     }
                     else {
                         undeployBundle(file);
-                    }
-                }
-                else if (file.getName().equals("MANIFEST.MF")) {
-                    File parentFile = file.getParentFile();
-                    if (parentFile.getName().equals("META-INF")) {
-                        File bundleDir = parentFile.getParentFile();
-                        if (isValidBundleSourceDirectory(bundleDir)) {
-                            undeployBundle(bundleDir);
-                        }
                     }
                 }
             }