Repository: camel
Updated Branches:
  refs/heads/master 2cff2f15f -> 546a8ad67


CAMEL-7728 Setup the TCCL before create the instance from the BaseResolver


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/546a8ad6
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/546a8ad6
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/546a8ad6

Branch: refs/heads/master
Commit: 546a8ad67fc6060bd6e7d338b992a62bf5663d9a
Parents: 42473e5
Author: Willem Jiang <willem.ji...@gmail.com>
Authored: Thu Aug 21 14:16:14 2014 +0800
Committer: Willem Jiang <willem.ji...@gmail.com>
Committed: Thu Aug 21 14:16:41 2014 +0800

----------------------------------------------------------------------
 .../main/java/org/apache/camel/impl/osgi/Activator.java | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/546a8ad6/camel-core/src/main/java/org/apache/camel/impl/osgi/Activator.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/impl/osgi/Activator.java 
b/camel-core/src/main/java/org/apache/camel/impl/osgi/Activator.java
index 7ef56f5..9502a1d 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/osgi/Activator.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/osgi/Activator.java
@@ -387,7 +387,17 @@ public class Activator implements BundleActivator, 
BundleTrackerCustomizer {
             }
             URL url = bundle.getEntry(path);
             LOG.trace("The entry {}'s url is {}", name, url);
-            return createInstance(name, url, context.getInjector());
+            //Setup the TCCL with Camel context application class loader
+            ClassLoader oldClassLoader = 
Thread.currentThread().getContextClassLoader();
+            try {
+                ClassLoader  newClassLoader = 
context.getApplicationContextClassLoader();
+                if (newClassLoader != null) {
+                    
Thread.currentThread().setContextClassLoader(newClassLoader);
+                }
+                return createInstance(name, url, context.getInjector());
+            } finally {
+                Thread.currentThread().setContextClassLoader(oldClassLoader);  
 
+            }
         }
 
         @SuppressWarnings("unchecked")

Reply via email to