karaf-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From gno...@apache.org
Subject svn commit: r1458722 - in /karaf/trunk/bundle/core/src/main: java/org/apache/karaf/bundle/core/internal/BundleWatcherImpl.java resources/OSGI-INF/blueprint/blueprint.xml
Date Wed, 20 Mar 2013 10:25:52 GMT
Author: gnodet
Date: Wed Mar 20 10:25:52 2013
New Revision: 1458722

URL: http://svn.apache.org/r1458722
Log:
[KARAF-2244] BundleWatcher should wait for refresh to be finished before updating another
bundle

Modified:
    karaf/trunk/bundle/core/src/main/java/org/apache/karaf/bundle/core/internal/BundleWatcherImpl.java
    karaf/trunk/bundle/core/src/main/resources/OSGI-INF/blueprint/blueprint.xml

Modified: karaf/trunk/bundle/core/src/main/java/org/apache/karaf/bundle/core/internal/BundleWatcherImpl.java
URL: http://svn.apache.org/viewvc/karaf/trunk/bundle/core/src/main/java/org/apache/karaf/bundle/core/internal/BundleWatcherImpl.java?rev=1458722&r1=1458721&r2=1458722&view=diff
==============================================================================
--- karaf/trunk/bundle/core/src/main/java/org/apache/karaf/bundle/core/internal/BundleWatcherImpl.java
(original)
+++ karaf/trunk/bundle/core/src/main/java/org/apache/karaf/bundle/core/internal/BundleWatcherImpl.java
Wed Mar 20 10:25:52 2013
@@ -27,6 +27,7 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 import java.util.concurrent.CopyOnWriteArrayList;
+import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicInteger;
 
@@ -38,6 +39,9 @@ import org.osgi.framework.BundleContext;
 import org.osgi.framework.BundleEvent;
 import org.osgi.framework.BundleException;
 import org.osgi.framework.BundleListener;
+import org.osgi.framework.FrameworkEvent;
+import org.osgi.framework.FrameworkListener;
+import org.osgi.framework.wiring.FrameworkWiring;
 import org.osgi.service.packageadmin.PackageAdmin;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -51,7 +55,6 @@ public class BundleWatcherImpl implement
     private final Logger logger = LoggerFactory.getLogger(BundleWatcherImpl.class);
 
     private BundleContext bundleContext;
-    private final PackageAdmin packageAdmin;
 	private final BundleService bundleService;
 	private final MavenConfigService localRepoDetector;
 
@@ -64,9 +67,8 @@ public class BundleWatcherImpl implement
      * Constructor
      */
     @SuppressWarnings("deprecation")
-    public BundleWatcherImpl(BundleContext bundleContext, PackageAdmin packageAdmin, MavenConfigService
mavenConfigService, BundleService bundleService) {
+    public BundleWatcherImpl(BundleContext bundleContext, MavenConfigService mavenConfigService,
BundleService bundleService) {
         this.bundleContext = bundleContext;
-        this.packageAdmin = packageAdmin;
 		this.localRepoDetector = mavenConfigService;
         this.bundleService = bundleService;
     }
@@ -107,7 +109,18 @@ public class BundleWatcherImpl implement
                         logger.error("Error updating bundle.", ex);
                     }
                 }
-                packageAdmin.refreshPackages(updated.toArray(new Bundle[updated.size()]));
+                try {
+                    final CountDownLatch latch = new CountDownLatch(1);
+                    FrameworkWiring wiring = bundleContext.getBundle(0).adapt(FrameworkWiring.class);
+                    wiring.refreshBundles(updated, new FrameworkListener() {
+                        public void frameworkEvent(FrameworkEvent event) {
+                            latch.countDown();
+                        }
+                    });
+                    latch.await();
+                } catch (InterruptedException e) {
+                    running.set(false);
+                }
             }
             try {
                 Thread.sleep(interval);

Modified: karaf/trunk/bundle/core/src/main/resources/OSGI-INF/blueprint/blueprint.xml
URL: http://svn.apache.org/viewvc/karaf/trunk/bundle/core/src/main/resources/OSGI-INF/blueprint/blueprint.xml?rev=1458722&r1=1458721&r2=1458722&view=diff
==============================================================================
--- karaf/trunk/bundle/core/src/main/resources/OSGI-INF/blueprint/blueprint.xml (original)
+++ karaf/trunk/bundle/core/src/main/resources/OSGI-INF/blueprint/blueprint.xml Wed Mar 20
10:25:52 2013
@@ -23,7 +23,6 @@
     <ext:property-placeholder placeholder-prefix="$[" placeholder-suffix="]"/>
     
     <reference id="configurationAdmin" interface="org.osgi.service.cm.ConfigurationAdmin"/>
-    <reference id="packageAdmin" interface="org.osgi.service.packageadmin.PackageAdmin"/>
     <reference-list id="bundleStateServices" interface="org.apache.karaf.bundle.core.BundleStateService"
availability="optional" />
 
     <bean id="bundleService" class="org.apache.karaf.bundle.core.internal.BundleServiceImpl">
@@ -41,7 +40,6 @@
 
     <bean id="watcher" class="org.apache.karaf.bundle.core.internal.BundleWatcherImpl"
init-method="start" destroy-method="stop">
         <argument ref="blueprintBundleContext"/>
-        <argument ref="packageAdmin"/>
         <argument ref="mavenConfigService"/>
         <argument ref="bundleService"/>
     </bean>



Mime
View raw message