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 {