You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by jb...@apache.org on 2016/09/07 13:21:32 UTC
karaf-cellar git commit: [KARAF-4664] Synchronizers init method check
if BootFinished service is there
Repository: karaf-cellar
Updated Branches:
refs/heads/master 473b65887 -> 6c125c4fc
[KARAF-4664] Synchronizers init method check if BootFinished service is there
Project: http://git-wip-us.apache.org/repos/asf/karaf-cellar/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf-cellar/commit/6c125c4f
Tree: http://git-wip-us.apache.org/repos/asf/karaf-cellar/tree/6c125c4f
Diff: http://git-wip-us.apache.org/repos/asf/karaf-cellar/diff/6c125c4f
Branch: refs/heads/master
Commit: 6c125c4fc185ae81ab53d27a726130149754a530
Parents: 473b658
Author: Jean-Baptiste Onofr� <jb...@apache.org>
Authored: Wed Sep 7 14:59:48 2016 +0200
Committer: Jean-Baptiste Onofr� <jb...@apache.org>
Committed: Wed Sep 7 14:59:48 2016 +0200
----------------------------------------------------------------------
.../karaf/cellar/bundle/BundleSynchronizer.java | 11 ++++++++++-
.../cellar/bundle/internal/osgi/Activator.java | 2 +-
config/pom.xml | 7 +++++++
.../cellar/config/ConfigurationSynchronizer.java | 12 +++++++++++-
.../cellar/config/internal/osgi/Activator.java | 2 +-
.../karaf/cellar/features/FeaturesEventHandler.java | 5 +++--
.../karaf/cellar/features/FeaturesSupport.java | 3 ++-
.../karaf/cellar/features/FeaturesSynchronizer.java | 16 +++++++++++-----
.../cellar/features/LocalFeaturesListener.java | 5 +++--
.../cellar/features/RepositoryEventHandler.java | 5 +++--
.../cellar/features/internal/osgi/Activator.java | 8 ++++----
http/balancer/pom.xml | 7 +++++++
.../cellar/http/balancer/ServletSynchronizer.java | 11 ++++++++++-
.../http/balancer/internal/osgi/Activator.java | 2 +-
obr/pom.xml | 7 +++++++
.../karaf/cellar/obr/ObrBundleEventHandler.java | 5 +++--
.../org/apache/karaf/cellar/obr/ObrSupport.java | 2 +-
.../apache/karaf/cellar/obr/ObrUrlEventHandler.java | 5 +++--
.../apache/karaf/cellar/obr/ObrUrlSynchronizer.java | 12 +++++++++++-
.../karaf/cellar/obr/internal/osgi/Activator.java | 6 +++---
20 files changed, 102 insertions(+), 31 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/karaf-cellar/blob/6c125c4f/bundle/src/main/java/org/apache/karaf/cellar/bundle/BundleSynchronizer.java
----------------------------------------------------------------------
diff --git a/bundle/src/main/java/org/apache/karaf/cellar/bundle/BundleSynchronizer.java b/bundle/src/main/java/org/apache/karaf/cellar/bundle/BundleSynchronizer.java
index a234672..76f2f1b 100644
--- a/bundle/src/main/java/org/apache/karaf/cellar/bundle/BundleSynchronizer.java
+++ b/bundle/src/main/java/org/apache/karaf/cellar/bundle/BundleSynchronizer.java
@@ -19,11 +19,13 @@ import org.apache.karaf.cellar.core.Synchronizer;
import org.apache.karaf.cellar.core.control.SwitchStatus;
import org.apache.karaf.cellar.core.event.EventProducer;
import org.apache.karaf.cellar.core.event.EventType;
+import org.apache.karaf.features.BootFinished;
import org.osgi.framework.Bundle;
import org.osgi.framework.BundleContext;
import org.osgi.framework.BundleException;
import org.osgi.framework.BundleReference;
import org.osgi.service.cm.Configuration;
+import org.osgi.util.tracker.ServiceTracker;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -46,7 +48,14 @@ public class BundleSynchronizer extends BundleSupport implements Synchronizer {
this.eventProducer = eventProducer;
}
- public void init() {
+ public void init(BundleContext bundleContext) {
+ // wait the end of Karaf boot process
+ ServiceTracker tracker = new ServiceTracker(bundleContext, BootFinished.class, null);
+ try {
+ tracker.waitForService(120000);
+ } catch (Exception e) {
+ LOGGER.warn("Can't start BootFinished service tracker", e);
+ }
if (groupManager == null)
return;
Set<Group> groups = groupManager.listLocalGroups();
http://git-wip-us.apache.org/repos/asf/karaf-cellar/blob/6c125c4f/bundle/src/main/java/org/apache/karaf/cellar/bundle/internal/osgi/Activator.java
----------------------------------------------------------------------
diff --git a/bundle/src/main/java/org/apache/karaf/cellar/bundle/internal/osgi/Activator.java b/bundle/src/main/java/org/apache/karaf/cellar/bundle/internal/osgi/Activator.java
index ee023fe..0d1972b 100644
--- a/bundle/src/main/java/org/apache/karaf/cellar/bundle/internal/osgi/Activator.java
+++ b/bundle/src/main/java/org/apache/karaf/cellar/bundle/internal/osgi/Activator.java
@@ -106,7 +106,7 @@ public class Activator extends BaseActivator {
synchronizer.setClusterManager(clusterManager);
synchronizer.setBundleContext(bundleContext);
synchronizer.setEventProducer(eventProducer);
- synchronizer.init();
+ synchronizer.init(bundleContext);
props = new Hashtable();
props.put("resource", "bundle");
register(Synchronizer.class, synchronizer, props);
http://git-wip-us.apache.org/repos/asf/karaf-cellar/blob/6c125c4f/config/pom.xml
----------------------------------------------------------------------
diff --git a/config/pom.xml b/config/pom.xml
index d4528f0..588259c 100644
--- a/config/pom.xml
+++ b/config/pom.xml
@@ -64,6 +64,13 @@
<scope>provided</scope>
</dependency>
+ <!-- Karaf features -->
+ <dependency>
+ <groupId>org.apache.karaf.features</groupId>
+ <artifactId>org.apache.karaf.features.core</artifactId>
+ <scope>provided</scope>
+ </dependency>
+
<!-- Logging Dependencies -->
<dependency>
<groupId>org.slf4j</groupId>
http://git-wip-us.apache.org/repos/asf/karaf-cellar/blob/6c125c4f/config/src/main/java/org/apache/karaf/cellar/config/ConfigurationSynchronizer.java
----------------------------------------------------------------------
diff --git a/config/src/main/java/org/apache/karaf/cellar/config/ConfigurationSynchronizer.java b/config/src/main/java/org/apache/karaf/cellar/config/ConfigurationSynchronizer.java
index 6bab460..6676668 100644
--- a/config/src/main/java/org/apache/karaf/cellar/config/ConfigurationSynchronizer.java
+++ b/config/src/main/java/org/apache/karaf/cellar/config/ConfigurationSynchronizer.java
@@ -19,8 +19,11 @@ import org.apache.karaf.cellar.core.Synchronizer;
import org.apache.karaf.cellar.core.control.SwitchStatus;
import org.apache.karaf.cellar.core.event.EventProducer;
import org.apache.karaf.cellar.core.event.EventType;
+import org.apache.karaf.features.BootFinished;
+import org.osgi.framework.BundleContext;
import org.osgi.framework.InvalidSyntaxException;
import org.osgi.service.cm.Configuration;
+import org.osgi.util.tracker.ServiceTracker;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -44,7 +47,14 @@ public class ConfigurationSynchronizer extends ConfigurationSupport implements S
this.eventProducer = eventProducer;
}
- public void init() {
+ public void init(BundleContext bundleContext) {
+ // wait the end of Karaf boot process
+ ServiceTracker tracker = new ServiceTracker(bundleContext, BootFinished.class, null);
+ try {
+ tracker.waitForService(120000);
+ } catch (Exception e) {
+ LOGGER.warn("Can't start BootFinished service tracker", e);
+ }
if (groupManager == null)
return;
Set<Group> groups = groupManager.listLocalGroups();
http://git-wip-us.apache.org/repos/asf/karaf-cellar/blob/6c125c4f/config/src/main/java/org/apache/karaf/cellar/config/internal/osgi/Activator.java
----------------------------------------------------------------------
diff --git a/config/src/main/java/org/apache/karaf/cellar/config/internal/osgi/Activator.java b/config/src/main/java/org/apache/karaf/cellar/config/internal/osgi/Activator.java
index bd4d649..e601a92 100644
--- a/config/src/main/java/org/apache/karaf/cellar/config/internal/osgi/Activator.java
+++ b/config/src/main/java/org/apache/karaf/cellar/config/internal/osgi/Activator.java
@@ -107,7 +107,7 @@ public class Activator extends BaseActivator implements ManagedService {
configurationSynchronizer.setClusterManager(clusterManager);
configurationSynchronizer.setEventProducer(eventProducer);
configurationSynchronizer.setStorage(storage);
- configurationSynchronizer.init();
+ configurationSynchronizer.init(bundleContext);
props = new Hashtable();
props.put("resource", "config");
register(Synchronizer.class, configurationSynchronizer, props);
http://git-wip-us.apache.org/repos/asf/karaf-cellar/blob/6c125c4f/features/src/main/java/org/apache/karaf/cellar/features/FeaturesEventHandler.java
----------------------------------------------------------------------
diff --git a/features/src/main/java/org/apache/karaf/cellar/features/FeaturesEventHandler.java b/features/src/main/java/org/apache/karaf/cellar/features/FeaturesEventHandler.java
index af56749..1d9c7f9 100644
--- a/features/src/main/java/org/apache/karaf/cellar/features/FeaturesEventHandler.java
+++ b/features/src/main/java/org/apache/karaf/cellar/features/FeaturesEventHandler.java
@@ -21,6 +21,7 @@ import org.apache.karaf.cellar.core.event.EventHandler;
import org.apache.karaf.cellar.core.event.EventType;
import org.apache.karaf.features.FeatureEvent;
import org.apache.karaf.features.FeaturesService;
+import org.osgi.framework.BundleContext;
import org.osgi.service.cm.Configuration;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -39,8 +40,8 @@ public class FeaturesEventHandler extends FeaturesSupport implements EventHandle
private final Switch eventSwitch = new BasicSwitch(SWITCH_ID);
@Override
- public void init() {
- super.init();
+ public void init(BundleContext bundleContext) {
+ super.init(bundleContext);
}
@Override
http://git-wip-us.apache.org/repos/asf/karaf-cellar/blob/6c125c4f/features/src/main/java/org/apache/karaf/cellar/features/FeaturesSupport.java
----------------------------------------------------------------------
diff --git a/features/src/main/java/org/apache/karaf/cellar/features/FeaturesSupport.java b/features/src/main/java/org/apache/karaf/cellar/features/FeaturesSupport.java
index 1104df2..583124a 100644
--- a/features/src/main/java/org/apache/karaf/cellar/features/FeaturesSupport.java
+++ b/features/src/main/java/org/apache/karaf/cellar/features/FeaturesSupport.java
@@ -20,6 +20,7 @@ import org.apache.karaf.cellar.core.event.EventType;
import org.apache.karaf.features.Feature;
import org.apache.karaf.features.FeaturesService;
import org.apache.karaf.features.Repository;
+import org.osgi.framework.BundleContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -35,7 +36,7 @@ public class FeaturesSupport extends CellarSupport {
protected FeaturesService featuresService;
- public void init() {
+ public void init(BundleContext bundleContext) {
// nothing to do
}
http://git-wip-us.apache.org/repos/asf/karaf-cellar/blob/6c125c4f/features/src/main/java/org/apache/karaf/cellar/features/FeaturesSynchronizer.java
----------------------------------------------------------------------
diff --git a/features/src/main/java/org/apache/karaf/cellar/features/FeaturesSynchronizer.java b/features/src/main/java/org/apache/karaf/cellar/features/FeaturesSynchronizer.java
index c25faf8..7524309 100644
--- a/features/src/main/java/org/apache/karaf/cellar/features/FeaturesSynchronizer.java
+++ b/features/src/main/java/org/apache/karaf/cellar/features/FeaturesSynchronizer.java
@@ -19,11 +19,10 @@ import org.apache.karaf.cellar.core.Synchronizer;
import org.apache.karaf.cellar.core.control.SwitchStatus;
import org.apache.karaf.cellar.core.event.EventProducer;
import org.apache.karaf.cellar.core.event.EventType;
-import org.apache.karaf.features.Feature;
-import org.apache.karaf.features.FeatureEvent;
-import org.apache.karaf.features.Repository;
-import org.apache.karaf.features.RepositoryEvent;
+import org.apache.karaf.features.*;
+import org.osgi.framework.BundleContext;
import org.osgi.service.cm.Configuration;
+import org.osgi.util.tracker.ServiceTracker;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -48,7 +47,14 @@ public class FeaturesSynchronizer extends FeaturesSupport implements Synchronize
}
@Override
- public void init() {
+ public void init(BundleContext bundleContext) {
+ // wait the end of Karaf boot process
+ ServiceTracker tracker = new ServiceTracker(bundleContext, BootFinished.class, null);
+ try {
+ tracker.waitForService(120000);
+ } catch (Exception e) {
+ LOGGER.warn("Can't start BootFinished service tracker", e);
+ }
if (groupManager == null)
return;
Set<Group> groups = groupManager.listLocalGroups();
http://git-wip-us.apache.org/repos/asf/karaf-cellar/blob/6c125c4f/features/src/main/java/org/apache/karaf/cellar/features/LocalFeaturesListener.java
----------------------------------------------------------------------
diff --git a/features/src/main/java/org/apache/karaf/cellar/features/LocalFeaturesListener.java b/features/src/main/java/org/apache/karaf/cellar/features/LocalFeaturesListener.java
index ada4c6b..0addd4f 100644
--- a/features/src/main/java/org/apache/karaf/cellar/features/LocalFeaturesListener.java
+++ b/features/src/main/java/org/apache/karaf/cellar/features/LocalFeaturesListener.java
@@ -21,6 +21,7 @@ import org.apache.karaf.cellar.core.event.EventType;
import org.apache.karaf.features.Feature;
import org.apache.karaf.features.FeatureEvent;
import org.apache.karaf.features.RepositoryEvent;
+import org.osgi.framework.BundleContext;
import org.osgi.service.cm.Configuration;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -39,8 +40,8 @@ public class LocalFeaturesListener extends FeaturesSupport implements org.apache
private EventProducer eventProducer;
@Override
- public void init() {
- super.init();
+ public void init(BundleContext bundleContext) {
+ super.init(bundleContext);
}
@Override
http://git-wip-us.apache.org/repos/asf/karaf-cellar/blob/6c125c4f/features/src/main/java/org/apache/karaf/cellar/features/RepositoryEventHandler.java
----------------------------------------------------------------------
diff --git a/features/src/main/java/org/apache/karaf/cellar/features/RepositoryEventHandler.java b/features/src/main/java/org/apache/karaf/cellar/features/RepositoryEventHandler.java
index 7acf1a2..0f0ea2d 100644
--- a/features/src/main/java/org/apache/karaf/cellar/features/RepositoryEventHandler.java
+++ b/features/src/main/java/org/apache/karaf/cellar/features/RepositoryEventHandler.java
@@ -18,6 +18,7 @@ import org.apache.karaf.cellar.core.control.Switch;
import org.apache.karaf.cellar.core.control.SwitchStatus;
import org.apache.karaf.cellar.core.event.EventHandler;
import org.apache.karaf.features.RepositoryEvent;
+import org.osgi.framework.BundleContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -35,8 +36,8 @@ public class RepositoryEventHandler extends FeaturesSupport implements EventHand
private final Switch eventSwitch = new BasicSwitch(SWITCH_ID);
@Override
- public void init() {
- super.init();
+ public void init(BundleContext bundleContext) {
+ super.init(bundleContext);
}
@Override
http://git-wip-us.apache.org/repos/asf/karaf-cellar/blob/6c125c4f/features/src/main/java/org/apache/karaf/cellar/features/internal/osgi/Activator.java
----------------------------------------------------------------------
diff --git a/features/src/main/java/org/apache/karaf/cellar/features/internal/osgi/Activator.java b/features/src/main/java/org/apache/karaf/cellar/features/internal/osgi/Activator.java
index 296d309..dc3968c 100644
--- a/features/src/main/java/org/apache/karaf/cellar/features/internal/osgi/Activator.java
+++ b/features/src/main/java/org/apache/karaf/cellar/features/internal/osgi/Activator.java
@@ -87,7 +87,7 @@ public class Activator extends BaseActivator {
repositoryEventHandler.setFeaturesService(featuresService);
repositoryEventHandler.setClusterManager(clusterManager);
repositoryEventHandler.setGroupManager(groupManager);
- repositoryEventHandler.init();
+ repositoryEventHandler.init(bundleContext);
Hashtable props = new Hashtable();
props.put("managed", "true");
register(new Class[]{ EventHandler.class }, repositoryEventHandler, props);
@@ -98,7 +98,7 @@ public class Activator extends BaseActivator {
featuresEventHandler.setClusterManager(clusterManager);
featuresEventHandler.setGroupManager(groupManager);
featuresEventHandler.setConfigurationAdmin(configurationAdmin);
- featuresEventHandler.init();
+ featuresEventHandler.init(bundleContext);
register(new Class[]{ EventHandler.class }, featuresEventHandler, props);
LOGGER.debug("CELLAR FEATURE: init local features listener");
@@ -108,7 +108,7 @@ public class Activator extends BaseActivator {
localFeaturesListener.setEventProducer(eventProducer);
localFeaturesListener.setConfigurationAdmin(configurationAdmin);
localFeaturesListener.setFeaturesService(featuresService);
- localFeaturesListener.init();
+ localFeaturesListener.init(bundleContext);
register(FeaturesListener.class, localFeaturesListener);
LOGGER.debug("CELLAR FEATURE: init features synchronizer");
@@ -118,7 +118,7 @@ public class Activator extends BaseActivator {
featuresSynchronizer.setEventProducer(eventProducer);
featuresSynchronizer.setConfigurationAdmin(configurationAdmin);
featuresSynchronizer.setFeaturesService(featuresService);
- featuresSynchronizer.init();
+ featuresSynchronizer.init(bundleContext);
props = new Hashtable();
props.put("resource", "feature");
register(Synchronizer.class, featuresSynchronizer, props);
http://git-wip-us.apache.org/repos/asf/karaf-cellar/blob/6c125c4f/http/balancer/pom.xml
----------------------------------------------------------------------
diff --git a/http/balancer/pom.xml b/http/balancer/pom.xml
index 50fe351..5316b9d 100644
--- a/http/balancer/pom.xml
+++ b/http/balancer/pom.xml
@@ -84,6 +84,13 @@
<artifactId>slf4j-api</artifactId>
<scope>provided</scope>
</dependency>
+
+ <!-- Karaf features -->
+ <dependency>
+ <groupId>org.apache.karaf.features</groupId>
+ <artifactId>org.apache.karaf.features.core</artifactId>
+ <scope>provided</scope>
+ </dependency>
</dependencies>
<build>
http://git-wip-us.apache.org/repos/asf/karaf-cellar/blob/6c125c4f/http/balancer/src/main/java/org/apache/karaf/cellar/http/balancer/ServletSynchronizer.java
----------------------------------------------------------------------
diff --git a/http/balancer/src/main/java/org/apache/karaf/cellar/http/balancer/ServletSynchronizer.java b/http/balancer/src/main/java/org/apache/karaf/cellar/http/balancer/ServletSynchronizer.java
index 20fdf81..e21c26b 100644
--- a/http/balancer/src/main/java/org/apache/karaf/cellar/http/balancer/ServletSynchronizer.java
+++ b/http/balancer/src/main/java/org/apache/karaf/cellar/http/balancer/ServletSynchronizer.java
@@ -16,11 +16,13 @@ package org.apache.karaf.cellar.http.balancer;
import org.apache.karaf.cellar.core.*;
import org.apache.karaf.cellar.core.control.SwitchStatus;
import org.apache.karaf.cellar.core.event.EventProducer;
+import org.apache.karaf.features.BootFinished;
import org.osgi.framework.BundleContext;
import org.osgi.framework.ServiceReference;
import org.osgi.framework.ServiceRegistration;
import org.osgi.service.cm.Configuration;
import org.osgi.service.cm.ConfigurationAdmin;
+import org.osgi.util.tracker.ServiceTracker;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -39,7 +41,14 @@ public class ServletSynchronizer implements Synchronizer {
private BundleContext bundleContext;
private EventProducer eventProducer;
- public void init() {
+ public void init(BundleContext bundleContext) {
+ // wait the end of Karaf boot process
+ ServiceTracker tracker = new ServiceTracker(bundleContext, BootFinished.class, null);
+ try {
+ tracker.waitForService(120000);
+ } catch (Exception e) {
+ LOGGER.warn("Can't start BootFinished service tracker", e);
+ }
if (groupManager == null)
return;
Set<Group> groups = groupManager.listLocalGroups();
http://git-wip-us.apache.org/repos/asf/karaf-cellar/blob/6c125c4f/http/balancer/src/main/java/org/apache/karaf/cellar/http/balancer/internal/osgi/Activator.java
----------------------------------------------------------------------
diff --git a/http/balancer/src/main/java/org/apache/karaf/cellar/http/balancer/internal/osgi/Activator.java b/http/balancer/src/main/java/org/apache/karaf/cellar/http/balancer/internal/osgi/Activator.java
index 086d74e..58d87b1 100644
--- a/http/balancer/src/main/java/org/apache/karaf/cellar/http/balancer/internal/osgi/Activator.java
+++ b/http/balancer/src/main/java/org/apache/karaf/cellar/http/balancer/internal/osgi/Activator.java
@@ -100,7 +100,7 @@ public class Activator extends BaseActivator {
synchronizer.setProxyRegistry(proxyRegistry);
synchronizer.setGroupManager(groupManager);
synchronizer.setBundleContext(bundleContext);
- synchronizer.init();
+ synchronizer.init(bundleContext);
props = new Hashtable();
props.put("resource", "balanced.servlet");
register(Synchronizer.class, synchronizer, props);
http://git-wip-us.apache.org/repos/asf/karaf-cellar/blob/6c125c4f/obr/pom.xml
----------------------------------------------------------------------
diff --git a/obr/pom.xml b/obr/pom.xml
index 3dd75ba..e234464 100644
--- a/obr/pom.xml
+++ b/obr/pom.xml
@@ -63,6 +63,13 @@
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.bundlerepository</artifactId>
</dependency>
+
+ <!-- Karaf features -->
+ <dependency>
+ <groupId>org.apache.karaf.features</groupId>
+ <artifactId>org.apache.karaf.features.core</artifactId>
+ <scope>provided</scope>
+ </dependency>
</dependencies>
<build>
http://git-wip-us.apache.org/repos/asf/karaf-cellar/blob/6c125c4f/obr/src/main/java/org/apache/karaf/cellar/obr/ObrBundleEventHandler.java
----------------------------------------------------------------------
diff --git a/obr/src/main/java/org/apache/karaf/cellar/obr/ObrBundleEventHandler.java b/obr/src/main/java/org/apache/karaf/cellar/obr/ObrBundleEventHandler.java
index 5927284..9e9ad94 100644
--- a/obr/src/main/java/org/apache/karaf/cellar/obr/ObrBundleEventHandler.java
+++ b/obr/src/main/java/org/apache/karaf/cellar/obr/ObrBundleEventHandler.java
@@ -23,6 +23,7 @@ import org.apache.karaf.cellar.core.control.SwitchStatus;
import org.apache.karaf.cellar.core.event.EventHandler;
import org.apache.karaf.cellar.core.event.EventType;
import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleContext;
import org.osgi.framework.InvalidSyntaxException;
import org.osgi.framework.Version;
import org.osgi.service.cm.Configuration;
@@ -43,8 +44,8 @@ public class ObrBundleEventHandler extends ObrSupport implements EventHandler<Cl
private final Switch eventSwitch = new BasicSwitch(SWITCH_ID);
@Override
- public void init() {
- super.init();
+ public void init(BundleContext bundleContext) {
+ super.init(bundleContext);
}
@Override
http://git-wip-us.apache.org/repos/asf/karaf-cellar/blob/6c125c4f/obr/src/main/java/org/apache/karaf/cellar/obr/ObrSupport.java
----------------------------------------------------------------------
diff --git a/obr/src/main/java/org/apache/karaf/cellar/obr/ObrSupport.java b/obr/src/main/java/org/apache/karaf/cellar/obr/ObrSupport.java
index 83cb781..4fae5d8 100644
--- a/obr/src/main/java/org/apache/karaf/cellar/obr/ObrSupport.java
+++ b/obr/src/main/java/org/apache/karaf/cellar/obr/ObrSupport.java
@@ -25,7 +25,7 @@ public class ObrSupport extends CellarSupport {
protected BundleContext bundleContext;
protected RepositoryAdmin obrService;
- public void init() {
+ public void init(BundleContext bundleContext) {
// nothing to do
}
http://git-wip-us.apache.org/repos/asf/karaf-cellar/blob/6c125c4f/obr/src/main/java/org/apache/karaf/cellar/obr/ObrUrlEventHandler.java
----------------------------------------------------------------------
diff --git a/obr/src/main/java/org/apache/karaf/cellar/obr/ObrUrlEventHandler.java b/obr/src/main/java/org/apache/karaf/cellar/obr/ObrUrlEventHandler.java
index 19ca432..b4587c1 100644
--- a/obr/src/main/java/org/apache/karaf/cellar/obr/ObrUrlEventHandler.java
+++ b/obr/src/main/java/org/apache/karaf/cellar/obr/ObrUrlEventHandler.java
@@ -19,6 +19,7 @@ import org.apache.karaf.cellar.core.control.Switch;
import org.apache.karaf.cellar.core.control.SwitchStatus;
import org.apache.karaf.cellar.core.event.EventHandler;
import org.apache.karaf.cellar.core.event.EventType;
+import org.osgi.framework.BundleContext;
import org.osgi.service.cm.Configuration;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -35,8 +36,8 @@ public class ObrUrlEventHandler extends ObrSupport implements EventHandler<Clust
private final Switch eventSwitch = new BasicSwitch(SWITCH_ID);
@Override
- public void init() {
- super.init();
+ public void init(BundleContext bundleContext) {
+ super.init(bundleContext);
}
@Override
http://git-wip-us.apache.org/repos/asf/karaf-cellar/blob/6c125c4f/obr/src/main/java/org/apache/karaf/cellar/obr/ObrUrlSynchronizer.java
----------------------------------------------------------------------
diff --git a/obr/src/main/java/org/apache/karaf/cellar/obr/ObrUrlSynchronizer.java b/obr/src/main/java/org/apache/karaf/cellar/obr/ObrUrlSynchronizer.java
index 2937618..b6d75d5 100644
--- a/obr/src/main/java/org/apache/karaf/cellar/obr/ObrUrlSynchronizer.java
+++ b/obr/src/main/java/org/apache/karaf/cellar/obr/ObrUrlSynchronizer.java
@@ -20,7 +20,10 @@ import org.apache.karaf.cellar.core.Group;
import org.apache.karaf.cellar.core.Synchronizer;
import org.apache.karaf.cellar.core.event.EventProducer;
import org.apache.karaf.cellar.core.event.EventType;
+import org.apache.karaf.features.BootFinished;
+import org.osgi.framework.BundleContext;
import org.osgi.service.cm.Configuration;
+import org.osgi.util.tracker.ServiceTracker;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -43,7 +46,14 @@ public class ObrUrlSynchronizer extends ObrSupport implements Synchronizer {
}
@Override
- public void init() {
+ public void init(BundleContext bundleContext) {
+ // wait the end of Karaf boot process
+ ServiceTracker tracker = new ServiceTracker(bundleContext, BootFinished.class, null);
+ try {
+ tracker.waitForService(120000);
+ } catch (Exception e) {
+ LOGGER.warn("Can't start BootFinished service tracker", e);
+ }
if (groupManager == null)
return;
Set<Group> groups = groupManager.listLocalGroups();
http://git-wip-us.apache.org/repos/asf/karaf-cellar/blob/6c125c4f/obr/src/main/java/org/apache/karaf/cellar/obr/internal/osgi/Activator.java
----------------------------------------------------------------------
diff --git a/obr/src/main/java/org/apache/karaf/cellar/obr/internal/osgi/Activator.java b/obr/src/main/java/org/apache/karaf/cellar/obr/internal/osgi/Activator.java
index c826f3d..ea9fc9d 100644
--- a/obr/src/main/java/org/apache/karaf/cellar/obr/internal/osgi/Activator.java
+++ b/obr/src/main/java/org/apache/karaf/cellar/obr/internal/osgi/Activator.java
@@ -83,7 +83,7 @@ public class Activator extends BaseActivator {
urlEventHandler.setGroupManager(groupManager);
urlEventHandler.setConfigurationAdmin(configurationAdmin);
urlEventHandler.setObrService(repositoryAdmin);
- urlEventHandler.init();
+ urlEventHandler.init(bundleContext);
Hashtable props = new Hashtable();
props.put("managed", "true");
register(EventHandler.class, urlEventHandler, props);
@@ -94,7 +94,7 @@ public class Activator extends BaseActivator {
bundleEventHandler.setClusterManager(clusterManager);
bundleEventHandler.setGroupManager(groupManager);
bundleEventHandler.setConfigurationAdmin(configurationAdmin);
- bundleEventHandler.init();
+ bundleEventHandler.init(bundleContext);
register(EventHandler.class, bundleEventHandler, props);
LOGGER.debug("CELLAR OBR: init URL synchronizer");
@@ -104,7 +104,7 @@ public class Activator extends BaseActivator {
urlSynchronizer.setGroupManager(groupManager);
urlSynchronizer.setEventProducer(eventProducer);
urlSynchronizer.setConfigurationAdmin(configurationAdmin);
- urlSynchronizer.init();
+ urlSynchronizer.init(bundleContext);
props = new Hashtable();
props.put("resource", "obr.urls");
register(Synchronizer.class, urlSynchronizer, props);