This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch camel-karaf-3.14.x
in repository https://gitbox.apache.org/repos/asf/camel-karaf.git
The following commit(s) were added to refs/heads/camel-karaf-3.14.x by this
push:
new 5a720e87 CAMEL-18094: camel-cxf-blueprint - Must inject CamelContext
via depends-on
5a720e87 is described below
commit 5a720e875f42e9923d5a81b1b2375c452a6d204a
Author: Claus Ibsen <[email protected]>
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;
}