Author: eglynn
Date: Fri Jun  6 04:02:46 2008
New Revision: 663891

URL: http://svn.apache.org/viewvc?rev=663891&view=rev
Log:
Explicitly associating a classloader with the JAXBContext created at various 
points in the WS-RM, WS-Addressing & WS-Policy code, as the implicit usage of 
the thread context classloader breaks in an OSGi runtime. 

Modified:
    
cxf/trunk/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/ContextUtils.java
    
cxf/trunk/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/VersionTransformer.java
    
cxf/trunk/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/attachment/external/EndpointReferenceDomainExpressionBuilder.java
    cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/RMEndpoint.java
    
cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/soap/RMSoapInterceptor.java
    
cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/soap/SoapFaultFactory.java

Modified: 
cxf/trunk/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/ContextUtils.java
URL: 
http://svn.apache.org/viewvc/cxf/trunk/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/ContextUtils.java?rev=663891&r1=663890&r2=663891&view=diff
==============================================================================
--- 
cxf/trunk/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/ContextUtils.java
 (original)
+++ 
cxf/trunk/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/ContextUtils.java
 Fri Jun  6 04:02:46 2008
@@ -589,7 +589,10 @@
     public static JAXBContext getJAXBContext() throws JAXBException {
         synchronized (ContextUtils.class) {
             if (jaxbContext == null) {
-                jaxbContext = 
JAXBContext.newInstance(WSA_OBJECT_FACTORY.getClass());
+                jaxbContext =
+                    JAXBContext.newInstance(
+                        WSA_OBJECT_FACTORY.getClass().getPackage().getName(),
+                        WSA_OBJECT_FACTORY.getClass().getClassLoader());
             }
         }
         return jaxbContext;

Modified: 
cxf/trunk/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/VersionTransformer.java
URL: 
http://svn.apache.org/viewvc/cxf/trunk/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/VersionTransformer.java?rev=663891&r1=663890&r2=663891&view=diff
==============================================================================
--- 
cxf/trunk/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/VersionTransformer.java
 (original)
+++ 
cxf/trunk/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/VersionTransformer.java
 Fri Jun  6 04:02:46 2008
@@ -384,8 +384,10 @@
         public static JAXBContext getJAXBContext() throws JAXBException {
             synchronized (Names200408.class) {
                 if (jaxbContext == null) {
-                    jaxbContext = 
-                        
JAXBContext.newInstance(org.apache.cxf.ws.addressing.v200408.ObjectFactory.class);
+                    Class clz = 
org.apache.cxf.ws.addressing.v200408.ObjectFactory.class;
+                    jaxbContext =
+                        JAXBContext.newInstance(clz.getPackage().getName(),
+                                                clz.getClassLoader());
                 }
             }
             return jaxbContext;

Modified: 
cxf/trunk/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/attachment/external/EndpointReferenceDomainExpressionBuilder.java
URL: 
http://svn.apache.org/viewvc/cxf/trunk/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/attachment/external/EndpointReferenceDomainExpressionBuilder.java?rev=663891&r1=663890&r2=663891&view=diff
==============================================================================
--- 
cxf/trunk/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/attachment/external/EndpointReferenceDomainExpressionBuilder.java
 (original)
+++ 
cxf/trunk/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/attachment/external/EndpointReferenceDomainExpressionBuilder.java
 Fri Jun  6 04:02:46 2008
@@ -89,7 +89,8 @@
         }
         
         try {
-            JAXBContext context = 
JAXBContext.newInstance(EndpointReferenceType.class.getPackage().getName());
+            Class clz = EndpointReferenceType.class;
+            JAXBContext context = 
JAXBContext.newInstance(clz.getPackage().getName(), clz.getClassLoader());
             unmarshaller = context.createUnmarshaller();
         } catch (JAXBException ex) {
             throw new PolicyException(new 
Message("EPR_DOMAIN_EXPRESSION_BUILDER_INIT_EXC", BUNDLE, 

Modified: cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/RMEndpoint.java
URL: 
http://svn.apache.org/viewvc/cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/RMEndpoint.java?rev=663891&r1=663890&r2=663891&view=diff
==============================================================================
--- cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/RMEndpoint.java 
(original)
+++ cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/RMEndpoint.java Fri 
Jun  6 04:02:46 2008
@@ -26,6 +26,7 @@
 
 import javax.wsdl.extensions.ExtensibilityElement;
 import javax.xml.XMLConstants;
+import javax.xml.bind.JAXBContext;
 import javax.xml.bind.JAXBException;
 import javax.xml.namespace.QName;
 import javax.xml.transform.stream.StreamSource;
@@ -244,8 +245,11 @@
 
         DataBinding dataBinding = null;
         try {
-            dataBinding = new JAXBDataBinding(CreateSequenceType.class, 
CreateSequenceResponseType.class,
-                                              TerminateSequenceType.class, 
SequenceFaultType.class);
+            JAXBContext ctx =
+                JAXBContext.newInstance(
+                    CreateSequenceType.class.getPackage().getName(),
+                    CreateSequenceType.class.getClassLoader());
+            dataBinding = new JAXBDataBinding(ctx);
         } catch (JAXBException e) {
             throw new ServiceConstructionException(e);
         }

Modified: 
cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/soap/RMSoapInterceptor.java
URL: 
http://svn.apache.org/viewvc/cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/soap/RMSoapInterceptor.java?rev=663891&r1=663890&r2=663891&view=diff
==============================================================================
--- 
cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/soap/RMSoapInterceptor.java
 (original)
+++ 
cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/soap/RMSoapInterceptor.java
 Fri Jun  6 04:02:46 2008
@@ -384,7 +384,10 @@
      */
     private static synchronized JAXBContext getJAXBContext() throws 
JAXBException {
         if (jaxbContext == null) {
-            jaxbContext = JAXBContext.newInstance(WS_RM_PACKAGE);
+            jaxbContext =
+                JAXBContext.newInstance(
+                    WS_RM_PACKAGE,
+                    SequenceAcknowledgement.class.getClassLoader());
         }
         return jaxbContext;
     }

Modified: 
cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/soap/SoapFaultFactory.java
URL: 
http://svn.apache.org/viewvc/cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/soap/SoapFaultFactory.java?rev=663891&r1=663890&r2=663891&view=diff
==============================================================================
--- 
cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/soap/SoapFaultFactory.java
 (original)
+++ 
cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/soap/SoapFaultFactory.java
 Fri Jun  6 04:02:46 2008
@@ -103,7 +103,9 @@
         Document doc = factory.newDocumentBuilder().newDocument();
         Element elem = null;
         
-        JAXBContext ctx = JAXBContext.newInstance(WS_RM_PACKAGE);
+        JAXBContext ctx = JAXBContext.newInstance(
+            WS_RM_PACKAGE,
+            SequenceAcknowledgement.class.getClassLoader());
         Marshaller m = ctx.createMarshaller();
         if 
(RMConstants.getInvalidAcknowledgmentFaultCode().equals(fault.getSubCode())) {
             SequenceAcknowledgement ack = (SequenceAcknowledgement)detail;


Reply via email to