[SMXCOMP-945]OsgiJbiComponent should use camel ServiceSupport to manage the lifecycle
git-svn-id: https://svn.apache.org/repos/asf/servicemix/components/branches/components-2011.02.x@1381564 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/engines/servicemix-camel/src/main/java/org/apache/servicemix/camel/JbiComponent.java b/engines/servicemix-camel/src/main/java/org/apache/servicemix/camel/JbiComponent.java
index f31661e..b0fba3f 100644
--- a/engines/servicemix-camel/src/main/java/org/apache/servicemix/camel/JbiComponent.java
+++ b/engines/servicemix-camel/src/main/java/org/apache/servicemix/camel/JbiComponent.java
@@ -16,14 +16,17 @@
*/
package org.apache.servicemix.camel;
+import java.util.Map;
+
import javax.xml.namespace.QName;
import org.apache.camel.*;
+import org.apache.camel.impl.DefaultComponent;
import org.apache.camel.processor.UnitOfWorkProcessor;
import org.apache.servicemix.common.util.URIResolver;
import org.apache.servicemix.id.IdGenerator;
-public class JbiComponent implements Component {
+public class JbiComponent extends DefaultComponent {
private CamelComponent camelJbiComponent;
private CamelContext camelContext;
@@ -169,4 +172,10 @@
}
return processor;
}
+
+ @Override
+ protected Endpoint createEndpoint(String uri, String remaining, Map<String, Object> parameters)
+ throws Exception {
+ return createEndpoint(uri);
+ }
}
diff --git a/engines/servicemix-camel/src/main/java/org/apache/servicemix/camel/osgi/OsgiJbiComponent.java b/engines/servicemix-camel/src/main/java/org/apache/servicemix/camel/osgi/OsgiJbiComponent.java
index 8695213..6d72946 100644
--- a/engines/servicemix-camel/src/main/java/org/apache/servicemix/camel/osgi/OsgiJbiComponent.java
+++ b/engines/servicemix-camel/src/main/java/org/apache/servicemix/camel/osgi/OsgiJbiComponent.java
@@ -21,18 +21,19 @@
import org.osgi.framework.BundleContext;
import org.osgi.framework.FrameworkUtil;
import org.osgi.framework.ServiceReference;
-import org.springframework.beans.factory.DisposableBean;
-import org.springframework.beans.factory.InitializingBean;
+
/**
* OSGi-specific servicemix-camel {@link JbiComponent} implementation that looks up the {@link CamelComponent} in the OSGi Service Registry
*/
-public class OsgiJbiComponent extends JbiComponent implements InitializingBean, DisposableBean {
+public class OsgiJbiComponent extends JbiComponent {
private BundleContext bundleContext;
private ServiceReference reference;
- public void afterPropertiesSet() throws Exception {
+ @Override
+ public void start() throws Exception {
+ super.start();
// get the servicemix-camel bundle's context
bundleContext = FrameworkUtil.getBundle(OsgiJbiComponent.class).getBundleContext();
@@ -45,7 +46,9 @@
setCamelJbiComponent(component);
}
- public void destroy() throws Exception {
+ @Override
+ public void stop() throws Exception {
+ super.stop();
if (reference != null) {
bundleContext.ungetService(reference);
}