[CAMEL-8984] Explicitly start OsgiCamelContextPublisher, it didn't unregister 
OSGi service


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/9aa1ab93
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/9aa1ab93
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/9aa1ab93

Branch: refs/heads/master
Commit: 9aa1ab935a24f210a8592e08a34fc6cc5ed10eea
Parents: ab84590
Author: Grzegorz Grzybek <gr.grzy...@gmail.com>
Authored: Mon Jul 20 10:22:21 2015 +0200
Committer: Grzegorz Grzybek <gr.grzy...@gmail.com>
Committed: Mon Jul 20 14:51:37 2015 +0200

----------------------------------------------------------------------
 .../camel/blueprint/CamelContextFactoryBean.java      | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/9aa1ab93/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/CamelContextFactoryBean.java
----------------------------------------------------------------------
diff --git 
a/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/CamelContextFactoryBean.java
 
b/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/CamelContextFactoryBean.java
index 2ae5729..1cdcf19 100644
--- 
a/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/CamelContextFactoryBean.java
+++ 
b/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/CamelContextFactoryBean.java
@@ -179,6 +179,8 @@ public class CamelContextFactoryBean extends 
AbstractCamelContextFactoryBean<Blu
     private BundleContext bundleContext;
     @XmlTransient
     private boolean implicitId;
+    @XmlTransient
+    private OsgiCamelContextPublisher osgiCamelContextPublisher;
 
     public Class<BlueprintCamelContext> getObjectType() {
         return BlueprintCamelContext.class;
@@ -301,7 +303,9 @@ public class CamelContextFactoryBean extends 
AbstractCamelContextFactoryBean<Blu
         ClassLoader cl = new 
BundleDelegatingClassLoader(bundleContext.getBundle());
         LOG.debug("Set the application context classloader to: {}", cl);
         getContext().setApplicationContextClassLoader(cl);
-        getContext().getManagementStrategy().addEventNotifier(new 
OsgiCamelContextPublisher(bundleContext));
+        osgiCamelContextPublisher = new 
OsgiCamelContextPublisher(bundleContext);
+        osgiCamelContextPublisher.start();
+        
getContext().getManagementStrategy().addEventNotifier(osgiCamelContextPublisher);
         try {
             
getClass().getClassLoader().loadClass("org.osgi.service.event.EventAdmin");
             getContext().getManagementStrategy().addEventNotifier(new 
OsgiEventAdminNotifier(bundleContext));
@@ -313,6 +317,14 @@ public class CamelContextFactoryBean extends 
AbstractCamelContextFactoryBean<Blu
         setupRoutes();
     }
 
+    @Override
+    public void destroy() throws Exception {
+        super.destroy();
+        if (osgiCamelContextPublisher != null) {
+            osgiCamelContextPublisher.shutdown();
+        }
+    }
+
     public String getDependsOn() {
         return dependsOn;
     }

Reply via email to