You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicemix.apache.org by ge...@apache.org on 2008/05/23 21:07:11 UTC

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

Author: gertv
Date: Fri May 23 12:07:10 2008
New Revision: 659629

URL: http://svn.apache.org/viewvc?rev=659629&view=rev
Log:
SMX4KNL-44: Changed bundles restarted twice (take two)

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=659629&r1=659628&r2=659629&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 Fri May 23 12:07:10 2008
@@ -82,6 +82,7 @@
     private boolean loggedConfigAdminWarning;
     private List<Bundle> changedBundles = new ArrayList<Bundle>();
     private List<Bundle> bundlesToStart = new ArrayList<Bundle>();
+    private List<Bundle> bundlesToUpdate = new ArrayList<Bundle>();
     private Map<String, String> artifactToBundle = new HashMap<String, String>();
     private Set<String> pendingArtifacts = new HashSet<String>();
     private ServiceListener listener;
@@ -207,6 +208,7 @@
     protected synchronized void onFilesChanged(Collection<String> filenames) {
         changedBundles.clear();
         bundlesToStart.clear();
+        bundlesToUpdate.clear();
         Set<File> bundleJarsCreated = new HashSet<File>();
 
         for (Object filename : filenames) {
@@ -352,7 +354,7 @@
         try {
             Bundle bundle = getBundleForJarFile(file);
             if (bundle != null) {
-                changedBundles.add(bundle);
+                bundlesToUpdate.add(bundle);
             }
             else {
                 bundle = getContext().installBundle(file.getCanonicalFile().toURI().toString(), in);
@@ -501,6 +503,16 @@
                 LOGGER.warn("Failed to start bundle: " + bundle + ". Reason: " + e, e);
             }
         }
+        
+        for (Bundle bundle : bundlesToUpdate) {
+            try {
+                bundle.update();
+                LOGGER.info("Update: " + bundle);
+            }
+            catch (BundleException e) {
+                LOGGER.warn("Failed to update bundle: " + bundle + ". Reason: " + e, e);
+            }
+        }
     }
 
     protected File createBundleJar(File dir) throws BundleException, IOException {