You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2022/05/13 11:37:51 UTC
[camel-karaf] branch main updated: CAMEL-18094: camel-cxf-blueprint - Must inject CamelContext via depends-on
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-karaf.git
The following commit(s) were added to refs/heads/main by this push:
new 826a3c66 CAMEL-18094: camel-cxf-blueprint - Must inject CamelContext via depends-on
826a3c66 is described below
commit 826a3c6659db0f52b3e85cb55a26e33274e01668
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Fri May 13 13:37:00 2022 +0200
CAMEL-18094: camel-cxf-blueprint - Must inject CamelContext via depends-on
---
.../camel/component/cxf/blueprint/CxfBlueprintEndpoint.java | 9 +++++++++
.../component/cxf/blueprint/EndpointDefinitionParser.java | 7 +++++++
.../component/cxf/jaxrs/blueprint/CxfRsBlueprintEndpoint.java | 10 +++++++++-
3 files changed, 25 insertions(+), 1 deletion(-)
diff --git a/components/camel-cxf-blueprint/src/main/java/org/apache/camel/component/cxf/blueprint/CxfBlueprintEndpoint.java b/components/camel-cxf-blueprint/src/main/java/org/apache/camel/component/cxf/blueprint/CxfBlueprintEndpoint.java
index 205b879c..ecdcfcba 100644
--- a/components/camel-cxf-blueprint/src/main/java/org/apache/camel/component/cxf/blueprint/CxfBlueprintEndpoint.java
+++ b/components/camel-cxf-blueprint/src/main/java/org/apache/camel/component/cxf/blueprint/CxfBlueprintEndpoint.java
@@ -21,6 +21,7 @@ import org.apache.camel.component.cxf.CxfComponent;
import org.apache.camel.component.cxf.CxfEndpoint;
import org.apache.cxf.BusFactory;
import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceReference;
import org.osgi.service.blueprint.container.BlueprintContainer;
public class CxfBlueprintEndpoint extends CxfEndpoint {
@@ -34,6 +35,14 @@ public class CxfBlueprintEndpoint extends CxfEndpoint {
bundleContext = context;
}
+ @Override
+ protected void doInit() throws Exception {
+ if (getCamelContext() == null) {
+ setCamelContext(blueprintCamelContext);
+ }
+ super.doInit();
+ }
+
public void destroy() {
// Clean up the BusFactory's defaultBus
// This method is not called magically, blueprint
diff --git a/components/camel-cxf-blueprint/src/main/java/org/apache/camel/component/cxf/blueprint/EndpointDefinitionParser.java b/components/camel-cxf-blueprint/src/main/java/org/apache/camel/component/cxf/blueprint/EndpointDefinitionParser.java
index 248e3c0b..ede1cab2 100644
--- a/components/camel-cxf-blueprint/src/main/java/org/apache/camel/component/cxf/blueprint/EndpointDefinitionParser.java
+++ b/components/camel-cxf-blueprint/src/main/java/org/apache/camel/component/cxf/blueprint/EndpointDefinitionParser.java
@@ -93,6 +93,13 @@ public class EndpointDefinitionParser extends AbstractBeanDefinitionParser {
endpointConfig.addArgument(createRef(context, "blueprintBundleContext"),
BundleContext.class.getName(), 1);
+ // depends on camel context to have it injected
+ if (endpointConfig.getDependsOn().size() > 0) {
+ String cid = endpointConfig.getDependsOn().get(0);
+ endpointConfig.addProperty("blueprintCamelContext", createRef(context, cid));
+ endpointConfig.setDestroyMethod("destroy");
+ }
+
return endpointConfig;
}
diff --git a/components/camel-cxf-blueprint/src/main/java/org/apache/camel/component/cxf/jaxrs/blueprint/CxfRsBlueprintEndpoint.java b/components/camel-cxf-blueprint/src/main/java/org/apache/camel/component/cxf/jaxrs/blueprint/CxfRsBlueprintEndpoint.java
index 3ad2478e..2fd2446f 100644
--- a/components/camel-cxf-blueprint/src/main/java/org/apache/camel/component/cxf/jaxrs/blueprint/CxfRsBlueprintEndpoint.java
+++ b/components/camel-cxf-blueprint/src/main/java/org/apache/camel/component/cxf/jaxrs/blueprint/CxfRsBlueprintEndpoint.java
@@ -45,7 +45,15 @@ public class CxfRsBlueprintEndpoint extends CxfRsEndpoint {
setBlueprintContainer(support.getBlueprintContainer());
setBundleContext(support.getBundleContext());
}
-
+
+ @Override
+ protected void doInit() throws Exception {
+ if (getCamelContext() == null) {
+ setCamelContext(blueprintCamelContext);
+ }
+ super.doInit();
+ }
+
public BlueprintContainer getBlueprintContainer() {
return blueprintContainer;
}