Author: ningjiang
Date: Fri Jun 24 06:13:56 2011
New Revision: 1139162

URL: http://svn.apache.org/viewvc?rev=1139162&view=rev
Log:
CAMEL-4137 still need to set the TCCL for load the BlueprintBus

Modified:
    
camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/blueprint/CxfNamespaceHandler.java

Modified: 
camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/blueprint/CxfNamespaceHandler.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/blueprint/CxfNamespaceHandler.java?rev=1139162&r1=1139161&r2=1139162&view=diff
==============================================================================
--- 
camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/blueprint/CxfNamespaceHandler.java
 (original)
+++ 
camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/blueprint/CxfNamespaceHandler.java
 Fri Jun 24 06:13:56 2011
@@ -21,16 +21,22 @@ import java.net.URL;
 import java.util.Arrays;
 import java.util.HashSet;
 import java.util.Set;
+
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
+
 import org.apache.aries.blueprint.NamespaceHandler;
 import org.apache.aries.blueprint.ParserContext;
 import org.apache.cxf.bus.blueprint.BlueprintBus;
 import org.osgi.service.blueprint.reflect.ComponentMetadata;
 import org.osgi.service.blueprint.reflect.Metadata;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 
 
 public class CxfNamespaceHandler implements NamespaceHandler {
+    private static final Logger LOG = 
LoggerFactory.getLogger(CxfNamespaceHandler.class);
 
     public URL getSchemaLocation(String s) {
         return 
getClass().getClassLoader().getResource("schema/blueprint/camel-cxf.xsd");
@@ -42,18 +48,16 @@ public class CxfNamespaceHandler impleme
     }
 
     public Metadata parse(Element element, ParserContext context) {
-        ClassLoader oldClassLoader = 
Thread.currentThread().getContextClassLoader();
         Metadata answer = null;
-        try {
-            
Thread.currentThread().setContextClassLoader(BlueprintBus.class.getClassLoader());
-            String s = element.getLocalName();
-            if ("cxfEndpoint".equals(s)) {
-                answer = new EndpointDefinitionParser().parse(element, 
context);
-            }
-        } finally {
-            //TODO https://issues.apache.org/jira/browse/CAMEL-4137
-            //Thread.currentThread().setContextClassLoader(oldClassLoader);
+        String s = element.getLocalName();
+        // Setting the thread context classloader to workaround the issue 
BlueprintBus ClassLoader
+        // This line can be removed when CXF 2.4.2 is released.
+        
Thread.currentThread().setContextClassLoader(BlueprintBus.class.getClassLoader());
+        if ("cxfEndpoint".equals(s)) {
+            LOG.debug("parsing the cxfEndpoint element");
+            answer = new EndpointDefinitionParser().parse(element, context);
         }
+        
         return answer;
     }
 


Reply via email to