Partial revert of https://git.opendaylight.org/gerrit/#/c/27874/
[controller.git] / opendaylight / config / config-manager / src / main / java / org / opendaylight / controller / config / manager / impl / osgi / mapping / ModuleInfoBundleTracker.java
index 1006513fe9bcf7efeff49074f57ac8f4256b8407..e22fb4d919615becd5ed7d80c48396731be90622 100644 (file)
@@ -38,30 +38,35 @@ public final class ModuleInfoBundleTracker implements AutoCloseable,
 
 
     private final RefreshingSCPModuleInfoRegistry moduleInfoRegistry;
-    private final BundleTracker<Collection<ObjectRegistration<YangModuleInfo>>> bundleTracker;
+    private BundleTracker<Collection<ObjectRegistration<YangModuleInfo>>> bundleTracker;
     private boolean starting;
 
     public ModuleInfoBundleTracker(BundleContext context, RefreshingSCPModuleInfoRegistry moduleInfoRegistry) {
         this.moduleInfoRegistry = moduleInfoRegistry;
-        bundleTracker = new BundleTracker<>(context, Bundle.RESOLVED | Bundle.STARTING |
-                Bundle.STOPPING | Bundle.ACTIVE, this);
     }
 
-    public void open() {
-        LOG.debug("ModuleInfoBundleTracker open starting");
+    public void open(BundleTracker<Collection<ObjectRegistration<YangModuleInfo>>> bundleTracker) {
+        LOG.debug("ModuleInfoBundleTracker open starting with bundleTracker {}", bundleTracker);
 
-        starting = true;
-        bundleTracker.open();
+        if(bundleTracker != null) {
+            this.bundleTracker = bundleTracker;
+            starting = true;
+            bundleTracker.open();
 
-        starting = false;
-        moduleInfoRegistry.updateService();
+            starting = false;
+            moduleInfoRegistry.updateService();
+        } else {
+            starting = false;
+        }
 
         LOG.debug("ModuleInfoBundleTracker open complete");
     }
 
     @Override
     public void close() {
-        bundleTracker.close();
+        if(bundleTracker != null) {
+            bundleTracker.close();
+        }
     }
 
     @Override