You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by cs...@apache.org on 2013/01/21 16:58:23 UTC

svn commit: r1436432 - /camel/trunk/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/AbstractRouteCommand.java

Author: cschneider
Date: Mon Jan 21 15:58:22 2013
New Revision: 1436432

URL: http://svn.apache.org/viewvc?rev=1436432&view=rev
Log:
CAMEL-5968 Set thread context classloader to bundle classloader for route commands

Modified:
    camel/trunk/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/AbstractRouteCommand.java

Modified: camel/trunk/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/AbstractRouteCommand.java
URL: http://svn.apache.org/viewvc/camel/trunk/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/AbstractRouteCommand.java?rev=1436432&r1=1436431&r2=1436432&view=diff
==============================================================================
--- camel/trunk/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/AbstractRouteCommand.java (original)
+++ camel/trunk/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/AbstractRouteCommand.java Mon Jan 21 15:58:22 2013
@@ -47,7 +47,15 @@ public abstract class AbstractRouteComma
         }
         for (Route camelRoute : camelRoutes) {
             CamelContext camelContext = camelRoute.getRouteContext().getCamelContext();
-            executeOnRoute(camelContext, camelRoute);
+            // Setting thread context classloader to the bundle classloader to enable
+            // legacy code that relies on it 
+            ClassLoader oldClassloader = Thread.currentThread().getContextClassLoader();
+            Thread.currentThread().setContextClassLoader(camelContext.getApplicationContextClassLoader());
+            try {
+            	executeOnRoute(camelContext, camelRoute);
+            } finally {
+            	Thread.currentThread().setContextClassLoader(oldClassloader);
+            }
         }
 
         return null;