You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ac...@apache.org on 2019/02/06 10:51:46 UTC

[camel] branch camel-2.x updated: CAMEL-13152: KJAR classloaded now set as CamelContext classloader for deployment-scoped contexts.

This is an automated email from the ASF dual-hosted git repository.

acosentino pushed a commit to branch camel-2.x
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/camel-2.x by this push:
     new 1ba4e4e  CAMEL-13152: KJAR classloaded now set as CamelContext classloader for deployment-scoped contexts.
1ba4e4e is described below

commit 1ba4e4e4b14a980c7031c748d3cfcd8b44e91942
Author: Duncan Doyle <Du...@gmail.com>
AuthorDate: Fri Feb 1 15:14:41 2019 +0100

    CAMEL-13152: KJAR classloaded now set as CamelContext classloader for deployment-scoped contexts.
---
 .../component/jbpm/server/CamelKieServerExtension.java    | 15 +++++++++------
 .../jbpm/server/CamelKieServerExtensionTest.java          |  4 ++--
 2 files changed, 11 insertions(+), 8 deletions(-)

diff --git a/components/camel-jbpm/src/main/java/org/apache/camel/component/jbpm/server/CamelKieServerExtension.java b/components/camel-jbpm/src/main/java/org/apache/camel/component/jbpm/server/CamelKieServerExtension.java
index 607867e..7299bf8 100644
--- a/components/camel-jbpm/src/main/java/org/apache/camel/component/jbpm/server/CamelKieServerExtension.java
+++ b/components/camel-jbpm/src/main/java/org/apache/camel/component/jbpm/server/CamelKieServerExtension.java
@@ -129,12 +129,13 @@ public class CamelKieServerExtension implements KieServerExtension {
         try (InputStream is = classloader.getResourceAsStream("camel-routes.xml")) {
             if (is != null) {
 
-                DefaultCamelContext context = (DefaultCamelContext)buildDeploymentContext(id);
+                DefaultCamelContext context = (DefaultCamelContext)buildDeploymentContext(id, classloader);
                 context.setName("KIE Server Camel context for container " + kieContainerInstance.getContainerId());
 
                 RoutesDefinition routes = context.loadRoutesDefinition(is);
                 annotateKJarRoutes(routes, id);
                 context.addRouteDefinitions(routes.getRoutes());
+                
                 context.start();
                 camelContexts.put(id, context);
 
@@ -258,8 +259,9 @@ public class CamelKieServerExtension implements KieServerExtension {
         }.buildCamelContext();
     }
 
-    protected CamelContext buildDeploymentContext(String identifier) {
-
+    protected CamelContext buildDeploymentContext(String identifier, ClassLoader classloader) {
+       
+        
         InternalRuntimeManager runtimeManager = (InternalRuntimeManager)RuntimeManagerRegistry.get().getManager(identifier);
 
         if (runtimeManager != null) {
@@ -269,9 +271,10 @@ public class CamelKieServerExtension implements KieServerExtension {
                 return deploymentContextBuilder.buildCamelContext();
             }
         }
-
-        return new CamelContextBuilder() {
-        }.buildCamelContext();
+        CamelContext camelContext = new CamelContextBuilder() { 
+        }.buildCamelContext();       
+        camelContext.setApplicationContextClassLoader(classloader);
+        return camelContext;
     }
 
     protected CamelContextBuilder discoverCamelContextBuilder() {
diff --git a/components/camel-jbpm/src/test/java/org/apache/camel/component/jbpm/server/CamelKieServerExtensionTest.java b/components/camel-jbpm/src/test/java/org/apache/camel/component/jbpm/server/CamelKieServerExtensionTest.java
index 596f05e..119c018 100644
--- a/components/camel-jbpm/src/test/java/org/apache/camel/component/jbpm/server/CamelKieServerExtensionTest.java
+++ b/components/camel-jbpm/src/test/java/org/apache/camel/component/jbpm/server/CamelKieServerExtensionTest.java
@@ -163,7 +163,7 @@ public class CamelKieServerExtensionTest {
         RuntimeManagerRegistry.get().register(runtimeManager);
 
         CamelKieServerExtension extension = new CamelKieServerExtension();
-        CamelContext context = extension.buildDeploymentContext(identifier);
+        CamelContext context = extension.buildDeploymentContext(identifier, this.getClass().getClassLoader());
         assertNotNull(context);
 
         context.stop();
@@ -190,7 +190,7 @@ public class CamelKieServerExtensionTest {
         RuntimeManagerRegistry.get().register(runtimeManager);
 
         CamelKieServerExtension extension = new CamelKieServerExtension();
-        CamelContext context = extension.buildDeploymentContext(identifier);
+        CamelContext context = extension.buildDeploymentContext(identifier, this.getClass().getClassLoader());
         assertNull(context);
 
     }