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;