Author: antelder
Date: Sat May 13 02:26:52 2006
New Revision: 406055
URL: http://svn.apache.org/viewcvs?rev=406055&view=rev
Log:
Fixes for TUSCANY-333 and TUSCANY-307
Added:
incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/util/SDODataBinding.java
Removed:
incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/databinding/AxiomHelper.java
incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/databinding/DataBinding.java
incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/databinding/SDODataBinding.java
incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/util/ClassLoaderHelper.java
incubator/tuscany/java/sca/bindings/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/util/AxiomHelperTestCase.java
Modified:
incubator/tuscany/java/sca/bindings/binding.axis2/pom.xml
incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/builder/ExternalWebServiceBuilder.java
incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/config/WSEntryPointContextFactory.java
incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/entrypoint/WebServiceEntryPointInOutSyncMessageReceiver.java
incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/entrypoint/WebServiceEntryPointServlet.java
incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/externalservice/Axis2OperationInvoker.java
incubator/tuscany/java/sca/bindings/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/builder/ExternalWebServiceBuilderTestCase.java
incubator/tuscany/java/sca/bindings/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/util/SDODataBindingTestCase.java
incubator/tuscany/java/sca/databinding/sdo/src/main/java/org/apache/tuscany/databinding/sdo/SDOXMLHelper.java
incubator/tuscany/java/sca/databinding/sdo/src/test/java/org/apache/tuscany/databinding/sdo/SDOXMLHelperTestCase.java
Modified: incubator/tuscany/java/sca/bindings/binding.axis2/pom.xml
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/bindings/binding.axis2/pom.xml?rev=406055&r1=406054&r2=406055&view=diff
==============================================================================
--- incubator/tuscany/java/sca/bindings/binding.axis2/pom.xml (original)
+++ incubator/tuscany/java/sca/bindings/binding.axis2/pom.xml Sat May 13
02:26:52 2006
@@ -37,6 +37,13 @@
</dependency>
<dependency>
+ <groupId>org.apache.tuscany.databinding</groupId>
+ <artifactId>tuscany-databinding-sdo</artifactId> <!-- Reqd for E4X
-->
+ <version>${pom.version}</version>
+ <scope>compile</scope>
+ </dependency>
+
+ <dependency>
<groupId>org.apache.tuscany.sca.containers</groupId>
<artifactId>tuscany-container-java</artifactId>
<version>${pom.version}</version>
Modified:
incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/builder/ExternalWebServiceBuilder.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/builder/ExternalWebServiceBuilder.java?rev=406055&r1=406054&r2=406055&view=diff
==============================================================================
---
incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/builder/ExternalWebServiceBuilder.java
(original)
+++
incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/builder/ExternalWebServiceBuilder.java
Sat May 13 02:26:52 2006
@@ -35,10 +35,9 @@
import org.apache.axis2.description.AxisService;
import org.apache.tuscany.binding.axis2.assembly.WebServiceBinding;
import org.apache.tuscany.binding.axis2.config.WSExternalServiceContextFactory;
-import org.apache.tuscany.binding.axis2.databinding.DataBinding;
-import org.apache.tuscany.binding.axis2.databinding.SDODataBinding;
import org.apache.tuscany.binding.axis2.externalservice.Axis2OperationInvoker;
import org.apache.tuscany.binding.axis2.externalservice.Axis2ServiceInvoker;
+import org.apache.tuscany.binding.axis2.util.SDODataBinding;
import org.apache.tuscany.binding.axis2.util.TuscanyAxisConfigurator;
import org.apache.tuscany.binding.axis2.util.WebServiceOperationMetaData;
import org.apache.tuscany.binding.axis2.util.WebServicePortMetaData;
@@ -72,8 +71,9 @@
ServiceClient serviceClient =
createServiceClient(externalService.getName(), wsdlDefinition, wsPortMetaData);
TypeHelper typeHelper = wsBinding.getTypeHelper();
+ ClassLoader cl = wsBinding.getResourceLoader().getClassLoader();
Class serviceInterface =
externalService.getConfiguredService().getPort().getServiceContract().getInterface();
- Map<String, Axis2OperationInvoker> invokers =
createOperationInvokers(serviceInterface, typeHelper, wsPortMetaData);
+ Map<String, Axis2OperationInvoker> invokers =
createOperationInvokers(serviceInterface, typeHelper, cl, wsPortMetaData);
Axis2ServiceInvoker axis2Client = new
Axis2ServiceInvoker(serviceClient, invokers);
@@ -110,7 +110,7 @@
/**
* Create and configure an Axis2OperationInvoker for each operation in the
externalService
*/
- protected Map<String, Axis2OperationInvoker> createOperationInvokers(Class
sc, TypeHelper typeHelper, WebServicePortMetaData wsPortMetaData) {
+ protected Map<String, Axis2OperationInvoker> createOperationInvokers(Class
sc, TypeHelper typeHelper, ClassLoader cl, WebServicePortMetaData
wsPortMetaData) {
SOAPFactory soapFactory = OMAbstractFactory.getSOAP11Factory();
String portTypeNS = wsPortMetaData.getPortTypeName().getNamespaceURI();
Map<String, Axis2OperationInvoker> invokers = new HashMap<String,
Axis2OperationInvoker>();
@@ -121,7 +121,7 @@
WebServiceOperationMetaData operationMetaData =
wsPortMetaData.getOperationMetaData(methodName);
boolean isWrapped = operationMetaData.isDocLitWrapped();
List<?> sig = operationMetaData.getOperationSignature();
- DataBinding dataBinding = new SDODataBinding(typeHelper,
sig.size() > 0 ? (QName) sig.get(0) : null, isWrapped);
+ SDODataBinding dataBinding = new SDODataBinding(cl, typeHelper,
sig.size() > 0 ? (QName) sig.get(0) : null, isWrapped);
Options options = new Options();
options.setTo(new EndpointReference(wsPortMetaData.getEndpoint()));
Modified:
incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/config/WSEntryPointContextFactory.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/config/WSEntryPointContextFactory.java?rev=406055&r1=406054&r2=406055&view=diff
==============================================================================
---
incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/config/WSEntryPointContextFactory.java
(original)
+++
incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/config/WSEntryPointContextFactory.java
Sat May 13 02:26:52 2006
@@ -40,10 +40,9 @@
import org.apache.axis2.description.WSDL2AxisServiceBuilder;
import org.apache.axis2.wsdl.WSDLConstants;
import org.apache.tuscany.binding.axis2.assembly.WebServiceBinding;
-import org.apache.tuscany.binding.axis2.databinding.DataBinding;
-import org.apache.tuscany.binding.axis2.databinding.SDODataBinding;
import
org.apache.tuscany.binding.axis2.entrypoint.WebServiceEntryPointInOutSyncMessageReceiver;
import org.apache.tuscany.binding.axis2.entrypoint.WebServiceEntryPointServlet;
+import org.apache.tuscany.binding.axis2.util.SDODataBinding;
import org.apache.tuscany.binding.axis2.util.WebServiceOperationMetaData;
import org.apache.tuscany.binding.axis2.util.WebServicePortMetaData;
import org.apache.tuscany.core.builder.BuilderConfigException;
@@ -230,6 +229,7 @@
axisService.setServiceDescription("Tuscany configured AxisService for
EntryPoint: '" + entryPointName + '\'');
TypeHelper typeHelper = wsBinding.getTypeHelper();
+ ClassLoader cl = wsBinding.getResourceLoader().getClassLoader();
Class<?> serviceInterface = entryPointContext.getServiceInterface();
@@ -244,9 +244,9 @@
QName responseTypeQN = omd.getOutputPart(0).getElementName();
Method operationMethod = getMethod(serviceInterface,
operationName);
- DataBinding dataBinding = new SDODataBinding(typeHelper,
responseTypeQN, omd.isDocLitWrapped());
+ SDODataBinding dataBinding = new SDODataBinding(cl, typeHelper,
responseTypeQN, omd.isDocLitWrapped());
WebServiceEntryPointInOutSyncMessageReceiver msgrec = new
WebServiceEntryPointInOutSyncMessageReceiver(entryPointProxy, operationMethod,
- dataBinding);
+ dataBinding, cl);
AxisOperation axisOp = axisService.getOperation(operationQN);
axisOp.setMessageExchangePattern(WSDLConstants.MEP_URI_IN_OUT);
Modified:
incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/entrypoint/WebServiceEntryPointInOutSyncMessageReceiver.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/entrypoint/WebServiceEntryPointInOutSyncMessageReceiver.java?rev=406055&r1=406054&r2=406055&view=diff
==============================================================================
---
incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/entrypoint/WebServiceEntryPointInOutSyncMessageReceiver.java
(original)
+++
incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/entrypoint/WebServiceEntryPointInOutSyncMessageReceiver.java
Sat May 13 02:26:52 2006
@@ -24,8 +24,7 @@
import org.apache.axis2.Constants;
import org.apache.axis2.context.MessageContext;
import org.apache.axis2.receivers.AbstractInOutSyncMessageReceiver;
-import org.apache.tuscany.binding.axis2.databinding.DataBinding;
-import org.apache.tuscany.binding.axis2.util.ClassLoaderHelper;
+import org.apache.tuscany.binding.axis2.util.SDODataBinding;
import org.apache.tuscany.core.wire.InvocationRuntimeException;
public class WebServiceEntryPointInOutSyncMessageReceiver extends
AbstractInOutSyncMessageReceiver {
@@ -34,12 +33,15 @@
protected Method operationMethod;
- protected DataBinding dataBinding;
+ protected SDODataBinding dataBinding;
+
+ protected ClassLoader classLoader;
- public WebServiceEntryPointInOutSyncMessageReceiver(Object
entryPointProxy, Method operationMethod, DataBinding dataBinding) {
+ public WebServiceEntryPointInOutSyncMessageReceiver(Object
entryPointProxy, Method operationMethod, SDODataBinding dataBinding,
ClassLoader classLoader) {
this.entryPointProxy = entryPointProxy;
this.operationMethod = operationMethod;
this.dataBinding = dataBinding;
+ this.classLoader = classLoader;
}
@Override
@@ -50,14 +52,17 @@
Object[] request = dataBinding.fromOMElement(requestOM);
Object response;
- ClassLoader oldCL = ClassLoaderHelper.setApplicationClassLoader();
+ ClassLoader tccl = Thread.currentThread().getContextClassLoader();
try {
-
+ if (tccl != classLoader) {
+ Thread.currentThread().setContextClassLoader(classLoader);
+ }
+
response = operationMethod.invoke(entryPointProxy, request);
} finally {
- if (oldCL != null) {
- Thread.currentThread().setContextClassLoader(oldCL);
+ if (tccl != classLoader) {
+ Thread.currentThread().setContextClassLoader(tccl);
}
}
Modified:
incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/entrypoint/WebServiceEntryPointServlet.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/entrypoint/WebServiceEntryPointServlet.java?rev=406055&r1=406054&r2=406055&view=diff
==============================================================================
---
incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/entrypoint/WebServiceEntryPointServlet.java
(original)
+++
incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/entrypoint/WebServiceEntryPointServlet.java
Sat May 13 02:26:52 2006
@@ -26,7 +26,6 @@
import org.apache.axis2.description.AxisService;
import org.apache.axis2.transport.http.AxisServlet;
-import org.apache.tuscany.binding.axis2.util.ClassLoaderHelper;
/**
* @version $Rev: 383148 $ $Date: 2006-03-04 08:07:17 -0800 (Sat, 04 Mar 2006)
$
@@ -42,9 +41,13 @@
}
public void init(final ServletConfig config) throws ServletException {
- ClassLoaderHelper.initApplicationClassLoader();
+ ClassLoader tccl = Thread.currentThread().getContextClassLoader();
+ ClassLoader scl = this.getClass().getClassLoader();
try {
- ClassLoaderHelper.setSystemClassLoader();
+ if (tccl != scl) {
+ Thread.currentThread().setContextClassLoader(scl);
+ }
+
try {
super.init(config);
@@ -54,36 +57,57 @@
} catch (Exception e) {
throw new ServletException(e);
}
+
} finally {
- ClassLoaderHelper.setApplicationClassLoader();
+ if (tccl != scl) {
+ Thread.currentThread().setContextClassLoader(tccl);
+ }
}
}
@Override
protected void doGet(final HttpServletRequest arg0, final
HttpServletResponse arg1) throws ServletException, IOException {
- ClassLoaderHelper.initApplicationClassLoader();
+ ClassLoader tccl = Thread.currentThread().getContextClassLoader();
+ ClassLoader scl = this.getClass().getClassLoader();
try {
- ClassLoaderHelper.setSystemClassLoader();
- super.doGet(arg0, arg1);
- } catch (Exception e) {
- e.printStackTrace();
- throw new ServletException(e);
+ if (tccl != scl) {
+ Thread.currentThread().setContextClassLoader(scl);
+ }
+
+ try {
+ super.doGet(arg0, arg1);
+ } catch (Exception e) {
+ e.printStackTrace();
+ throw new ServletException(e);
+ }
+
} finally {
- ClassLoaderHelper.setApplicationClassLoader();
+ if (tccl != scl) {
+ Thread.currentThread().setContextClassLoader(tccl);
+ }
}
}
@Override
protected void doPost(final HttpServletRequest arg0, final
HttpServletResponse arg1) throws ServletException, IOException {
- ClassLoaderHelper.initApplicationClassLoader();
+ ClassLoader tccl = Thread.currentThread().getContextClassLoader();
+ ClassLoader scl = this.getClass().getClassLoader();
try {
- ClassLoaderHelper.setSystemClassLoader();
- super.doPost(arg0, arg1);
- } catch (Exception e) {
- e.printStackTrace();
- throw new ServletException(e);
+ if (tccl != scl) {
+ Thread.currentThread().setContextClassLoader(scl);
+ }
+
+ try {
+ super.doPost(arg0, arg1);
+ } catch (Exception e) {
+ e.printStackTrace();
+ throw new ServletException(e);
+ }
+
} finally {
- ClassLoaderHelper.setApplicationClassLoader();
+ if (tccl != scl) {
+ Thread.currentThread().setContextClassLoader(tccl);
+ }
}
}
}
Modified:
incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/externalservice/Axis2OperationInvoker.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/externalservice/Axis2OperationInvoker.java?rev=406055&r1=406054&r2=406055&view=diff
==============================================================================
---
incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/externalservice/Axis2OperationInvoker.java
(original)
+++
incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/externalservice/Axis2OperationInvoker.java
Sat May 13 02:26:52 2006
@@ -25,8 +25,7 @@
import org.apache.axis2.client.Options;
import org.apache.axis2.context.MessageContext;
import org.apache.axis2.wsdl.WSDLConstants;
-import org.apache.tuscany.binding.axis2.databinding.DataBinding;
-import org.apache.tuscany.binding.axis2.util.ClassLoaderHelper;
+import org.apache.tuscany.binding.axis2.util.SDODataBinding;
/**
* Axis2OperationInvoker uses an Axis2 OperationClient to invoke a remote web
service
@@ -37,11 +36,11 @@
public Options options;
- public DataBinding dataBinding;
+ public SDODataBinding dataBinding;
private SOAPFactory soapFactory;
- public Axis2OperationInvoker(QName wsdlOperationName, Options options,
DataBinding dataBinding, SOAPFactory soapFactory) {
+ public Axis2OperationInvoker(QName wsdlOperationName, Options options,
SDODataBinding dataBinding, SOAPFactory soapFactory) {
this.wsdlOperationName = wsdlOperationName;
this.options = options;
this.dataBinding = dataBinding;
@@ -72,14 +71,18 @@
operationClient.addMessageContext(requestMC);
- ClassLoader oldCL = ClassLoaderHelper.setSystemClassLoader();
+ ClassLoader tccl = Thread.currentThread().getContextClassLoader();
+ ClassLoader scl = this.getClass().getClassLoader();
try {
+ if (tccl != scl) {
+ Thread.currentThread().setContextClassLoader(scl);
+ }
operationClient.execute(true);
} finally {
- if (oldCL != null) {
- Thread.currentThread().setContextClassLoader(oldCL);
+ if (tccl != scl) {
+ Thread.currentThread().setContextClassLoader(tccl);
}
}
Added:
incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/util/SDODataBinding.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/util/SDODataBinding.java?rev=406055&view=auto
==============================================================================
---
incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/util/SDODataBinding.java
(added)
+++
incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/util/SDODataBinding.java
Sat May 13 02:26:52 2006
@@ -0,0 +1,104 @@
+/**
+ * Copyright 2005 The Apache Software Foundation or its licensors, as
applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.binding.axis2.util;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.FactoryConfigurationError;
+import javax.xml.stream.XMLInputFactory;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import org.apache.axiom.om.OMAbstractFactory;
+import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.OMXMLParserWrapper;
+import org.apache.axiom.om.impl.llom.factory.OMXMLBuilderFactory;
+import org.apache.tuscany.core.wire.InvocationRuntimeException;
+import org.apache.tuscany.databinding.sdo.SDOXMLHelper;
+import org.apache.tuscany.sdo.util.SDOUtil;
+import org.osoa.sca.ServiceRuntimeException;
+
+import commonj.sdo.DataObject;
+import commonj.sdo.helper.TypeHelper;
+import commonj.sdo.helper.XMLHelper;
+
+/**
+ * DataBinding for converting between AXIOM OMElement and Java Objects
+ */
+public class SDODataBinding {
+
+ private ClassLoader classLoader;
+
+ private TypeHelper typeHelper;
+
+ private QName elementQName;
+
+ private boolean isWrapped;
+
+ public SDODataBinding(ClassLoader classLoader, TypeHelper typeHelper,
QName elementQName, boolean isWrapped) {
+ this.classLoader = classLoader;
+ this.typeHelper = typeHelper;
+ this.elementQName = elementQName;
+ this.isWrapped = isWrapped;
+ }
+
+ public Object[] fromOMElement(OMElement omElement) {
+ try {
+
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+
+ omElement.serialize(baos);
+
+ baos.flush();
+ baos.close();
+
+ return SDOXMLHelper.toObjects(classLoader,typeHelper,
baos.toByteArray(), isWrapped);
+
+ } catch (IOException e) {
+ throw new InvocationRuntimeException(e);
+ } catch (XMLStreamException e) {
+ throw new InvocationRuntimeException(e);
+ }
+ }
+
+ public OMElement toOMElement(Object[] os) {
+ try {
+
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+
+ DataObject dataObject = SDOXMLHelper.toDataObject(classLoader,
typeHelper, os, elementQName, isWrapped);
+ XMLHelper xmlHelper = SDOUtil.createXMLHelper(typeHelper);
+ xmlHelper.save(dataObject, elementQName.getNamespaceURI(),
elementQName.getLocalPart(), baos);
+ baos.close();
+
+ XMLStreamReader xsr =
XMLInputFactory.newInstance().createXMLStreamReader(new
ByteArrayInputStream(baos.toByteArray()));
+ OMXMLParserWrapper builder =
OMXMLBuilderFactory.createStAXOMBuilder(OMAbstractFactory.getOMFactory(), xsr);
+ OMElement omElement = builder.getDocumentElement();
+
+ return omElement;
+
+ } catch (IOException e) {
+ throw new ServiceRuntimeException(e);
+ } catch (XMLStreamException e) {
+ throw new ServiceRuntimeException(e);
+ } catch (FactoryConfigurationError e) {
+ throw new ServiceRuntimeException(e);
+ }
+ }
+}
Modified:
incubator/tuscany/java/sca/bindings/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/builder/ExternalWebServiceBuilderTestCase.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/bindings/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/builder/ExternalWebServiceBuilderTestCase.java?rev=406055&r1=406054&r2=406055&view=diff
==============================================================================
---
incubator/tuscany/java/sca/bindings/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/builder/ExternalWebServiceBuilderTestCase.java
(original)
+++
incubator/tuscany/java/sca/bindings/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/builder/ExternalWebServiceBuilderTestCase.java
Sat May 13 02:26:52 2006
@@ -33,6 +33,7 @@
import org.apache.tuscany.binding.axis2.externalservice.Axis2ServiceInvoker;
import org.apache.tuscany.binding.axis2.util.WebServicePortMetaData;
import org.apache.tuscany.common.resource.ResourceLoader;
+import org.apache.tuscany.common.resource.impl.ResourceLoaderImpl;
import org.apache.tuscany.core.extension.ExternalServiceContextFactory;
import org.apache.tuscany.model.assembly.AssemblyContext;
import org.apache.tuscany.model.assembly.AssemblyInitializationException;
@@ -65,7 +66,7 @@
Port port = definition.getService(SERVICE_NAME).getPort(PORTNAME);
WebServicePortMetaData wspmd = new WebServicePortMetaData(definition,
port, null, false);
- Map<String, Axis2OperationInvoker> invokers =
builder.createOperationInvokers(Foo.class, null, wspmd);
+ Map<String, Axis2OperationInvoker> invokers =
builder.createOperationInvokers(Foo.class, null,
getClass().getClassLoader(),wspmd);
assertNotNull(invokers);
assertEquals(1, invokers.size());
@@ -335,8 +336,7 @@
}
public ResourceLoader getResourceLoader() {
-
- return null;
+ return new
ResourceLoaderImpl(Thread.currentThread().getContextClassLoader());
}
public void setResourceLoader(ResourceLoader resourceLoader) {
Modified:
incubator/tuscany/java/sca/bindings/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/util/SDODataBindingTestCase.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/bindings/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/util/SDODataBindingTestCase.java?rev=406055&r1=406054&r2=406055&view=diff
==============================================================================
---
incubator/tuscany/java/sca/bindings/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/util/SDODataBindingTestCase.java
(original)
+++
incubator/tuscany/java/sca/bindings/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/util/SDODataBindingTestCase.java
Sat May 13 02:26:52 2006
@@ -23,7 +23,6 @@
import junit.framework.TestCase;
import org.apache.axiom.om.OMElement;
-import org.apache.tuscany.binding.axis2.databinding.SDODataBinding;
import org.apache.tuscany.sdo.util.DataObjectUtil;
import org.apache.tuscany.sdo.util.SDOUtil;
@@ -111,10 +110,10 @@
url = getClass().getResource("CreditScoreDocLit.wsdl");
xsdHelper.define(url.openStream(), null);
- this.greetingDB = new SDODataBinding(typeHelper, GREETING_QN,
true);
- this.docLitWrappedDB = new SDODataBinding(typeHelper,
DOCLITWRAPPED_QN, true);
+ this.greetingDB = new
SDODataBinding(getClass().getClassLoader(),typeHelper, GREETING_QN, true);
+ this.docLitWrappedDB = new
SDODataBinding(getClass().getClassLoader(),typeHelper, DOCLITWRAPPED_QN, true);
- this.docLitDB = new SDODataBinding(typeHelper, DOCLIT_QN, false);
+ this.docLitDB = new
SDODataBinding(getClass().getClassLoader(),typeHelper, DOCLIT_QN, false);
} finally {
Thread.currentThread().setContextClassLoader(cl);
Modified:
incubator/tuscany/java/sca/databinding/sdo/src/main/java/org/apache/tuscany/databinding/sdo/SDOXMLHelper.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/databinding/sdo/src/main/java/org/apache/tuscany/databinding/sdo/SDOXMLHelper.java?rev=406055&r1=406054&r2=406055&view=diff
==============================================================================
---
incubator/tuscany/java/sca/databinding/sdo/src/main/java/org/apache/tuscany/databinding/sdo/SDOXMLHelper.java
(original)
+++
incubator/tuscany/java/sca/databinding/sdo/src/main/java/org/apache/tuscany/databinding/sdo/SDOXMLHelper.java
Sat May 13 02:26:52 2006
@@ -55,6 +55,7 @@
* @param isWrapped
*
* @return the array of deserialized Java objects
+ * @deprecated TUSCANY-333 use the method that takes a ClassLoader
*/
public static Object[] toObjects(TypeHelper typeHelper, byte[] xmlBytes,
boolean isWrapped) {
DataObject dataObject = toDataObject(typeHelper, xmlBytes);
@@ -93,6 +94,7 @@
* @param typeNS
* @param typeName
* @return a byte array containing the XML
+ * @deprecated TUSCANY-333 use the method that takes a ClassLoader
*/
public static byte[] toXMLBytes(TypeHelper typeHelper, Object[] os, QName
elementQName, boolean isWrapped) {
DataObject dataObject = toDataObject(typeHelper, os, elementQName,
isWrapped);
@@ -106,6 +108,7 @@
* @param typeNS
* @param typeName
* @return a byte array containing the XML bytes
+ * @deprecated TUSCANY-333 use the method that takes a ClassLoader
*/
public static byte[] toXMLbytes(TypeHelper typeHelper, DataObject
dataObject, QName elementQName) {
try {
@@ -127,6 +130,7 @@
*
* @param xmlBytes
* @return a DataObject
+ * @deprecated TUSCANY-333 use the method that takes a ClassLoader
*/
public static DataObject toDataObject(TypeHelper typeHelper, byte[]
xmlBytes) {
try {
@@ -148,6 +152,7 @@
* @param typeName
* @param os
* @return the DataObject
+ * @deprecated TUSCANY-333 use the method that takes a ClassLoader
*/
public static DataObject toDataObject(TypeHelper typeHelper, Object[] os,
QName elementQName, boolean isWrapped) {
XSDHelper xsdHelper = SDOUtil.createXSDHelper(typeHelper);
@@ -174,5 +179,86 @@
}
}
}
+
+// ---
+ public static DataObject toDataObject(ClassLoader classLoader, TypeHelper
typeHelper, Object[] os, QName elementQName, boolean isWrapped) {
+ ClassLoader tccl = Thread.currentThread().getContextClassLoader();
+ try {
+ if (tccl != classLoader) {
+ Thread.currentThread().setContextClassLoader(classLoader);
+ }
+
+ return toDataObject(typeHelper, os, elementQName, isWrapped);
+
+ } finally {
+ if (tccl != classLoader) {
+ Thread.currentThread().setContextClassLoader(tccl);
+ }
+ }
+ }
+
+ public static DataObject toDataObject(ClassLoader classLoader, TypeHelper
typeHelper, byte[] xmlBytes) {
+ ClassLoader tccl = Thread.currentThread().getContextClassLoader();
+ try {
+ if (tccl != classLoader) {
+ Thread.currentThread().setContextClassLoader(classLoader);
+ }
+
+ return toDataObject(typeHelper, xmlBytes);
+
+ } finally {
+ if (tccl != classLoader) {
+ Thread.currentThread().setContextClassLoader(tccl);
+ }
+ }
+ }
+
+ public static byte[] toXMLbytes(ClassLoader classLoader, TypeHelper
typeHelper, DataObject dataObject, QName elementQName) {
+ ClassLoader tccl = Thread.currentThread().getContextClassLoader();
+ try {
+ if (tccl != classLoader) {
+ Thread.currentThread().setContextClassLoader(classLoader);
+ }
+
+ return toXMLbytes(typeHelper, dataObject, elementQName);
+
+ } finally {
+ if (tccl != classLoader) {
+ Thread.currentThread().setContextClassLoader(tccl);
+ }
+ }
+ }
+
+ public static byte[] toXMLBytes(ClassLoader classLoader, TypeHelper
typeHelper, Object[] os, QName elementQName, boolean isWrapped) {
+ ClassLoader tccl = Thread.currentThread().getContextClassLoader();
+ try {
+ if (tccl != classLoader) {
+ Thread.currentThread().setContextClassLoader(classLoader);
+ }
+
+ return toXMLBytes(typeHelper, os, elementQName, isWrapped);
+
+ } finally {
+ if (tccl != classLoader) {
+ Thread.currentThread().setContextClassLoader(tccl);
+ }
+ }
+ }
+
+ public static Object[] toObjects(ClassLoader classLoader, TypeHelper
typeHelper, byte[] xmlBytes, boolean isWrapped) {
+ ClassLoader tccl = Thread.currentThread().getContextClassLoader();
+ try {
+ if (tccl != classLoader) {
+ Thread.currentThread().setContextClassLoader(classLoader);
+ }
+
+ return toObjects(typeHelper, xmlBytes, isWrapped);
+
+ } finally {
+ if (tccl != classLoader) {
+ Thread.currentThread().setContextClassLoader(tccl);
+ }
+ }
+ }
}
Modified:
incubator/tuscany/java/sca/databinding/sdo/src/test/java/org/apache/tuscany/databinding/sdo/SDOXMLHelperTestCase.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/databinding/sdo/src/test/java/org/apache/tuscany/databinding/sdo/SDOXMLHelperTestCase.java?rev=406055&r1=406054&r2=406055&view=diff
==============================================================================
---
incubator/tuscany/java/sca/databinding/sdo/src/test/java/org/apache/tuscany/databinding/sdo/SDOXMLHelperTestCase.java
(original)
+++
incubator/tuscany/java/sca/databinding/sdo/src/test/java/org/apache/tuscany/databinding/sdo/SDOXMLHelperTestCase.java
Sat May 13 02:26:52 2006
@@ -27,6 +27,8 @@
private DataObject greetingDOB;
private byte[] greetingXML;
+
+ private ClassLoader appCL;
public static final QName DOCLIT_QN = new
QName("http://www.example.org/creditscore/doclit/", "getCreditScoreRequest");
@@ -35,13 +37,13 @@
private DataObject nonWrappedDOB;
public void testXMLBytes1() {
- byte[] xmlBytes = SDOXMLHelper.toXMLbytes(typeHelper, greetingDOB,
GREETING_QN);
+ byte[] xmlBytes = SDOXMLHelper.toXMLbytes(appCL, typeHelper,
greetingDOB, GREETING_QN);
assertNotNull(xmlBytes);
assertTrue(new
String(xmlBytes).contains("<helloworldaxis:in0>petra</helloworldaxis:in0>"));
}
public void testXMLBytes2() {
- byte[] xmlBytes = SDOXMLHelper.toXMLBytes(typeHelper, new Object[] {
GREETING_NAME }, GREETING_QN, true);
+ byte[] xmlBytes = SDOXMLHelper.toXMLBytes(appCL, typeHelper, new
Object[] { GREETING_NAME }, GREETING_QN, true);
assertNotNull(xmlBytes);
assertTrue(new String(xmlBytes).contains(GREETING_XML));
}
@@ -54,13 +56,13 @@
// }
public void testToDataObject1() {
- DataObject dataObject = SDOXMLHelper.toDataObject(typeHelper,
greetingXML);
+ DataObject dataObject = SDOXMLHelper.toDataObject(appCL, typeHelper,
greetingXML);
assertNotNull(dataObject);
assertEquals(GREETING_NAME, dataObject.getString(0));
}
public void testToDataObject2() {
- DataObject dataObject = SDOXMLHelper.toDataObject(typeHelper, new
Object[] { GREETING_NAME }, GREETING_QN, true);
+ DataObject dataObject = SDOXMLHelper.toDataObject(appCL, typeHelper,
new Object[] { GREETING_NAME }, GREETING_QN, true);
assertNotNull(dataObject);
assertEquals(GREETING_NAME, dataObject.getString(0));
}
@@ -75,7 +77,7 @@
// }
public void testToObjects1() {
- Object[] os = SDOXMLHelper.toObjects(typeHelper, greetingXML, true);
+ Object[] os = SDOXMLHelper.toObjects(appCL, typeHelper, greetingXML,
true);
assertNotNull(os);
assertEquals(1, os.length);
assertEquals(GREETING_NAME, os[0]);
@@ -99,15 +101,16 @@
DataObjectUtil.initRuntime();
ClassLoader cl = Thread.currentThread().getContextClassLoader();
try {
-
Thread.currentThread().setContextClassLoader(getClass().getClassLoader());
+ appCL = getClass().getClassLoader();
+ Thread.currentThread().setContextClassLoader(appCL);
typeHelper = SDOUtil.createTypeHelper();
XSDHelper xsdHelper = SDOUtil.createXSDHelper(typeHelper);
URL url = getClass().getResource("helloworld.wsdl");
xsdHelper.define(url.openStream(), null);
url = getClass().getResource("CreditScoreDocLit.wsdl");
xsdHelper.define(url.openStream(), null);
- greetingDOB = SDOXMLHelper.toDataObject(typeHelper, new Object[] {
GREETING_NAME }, GREETING_QN, true);
- greetingXML = SDOXMLHelper.toXMLBytes(typeHelper, new Object[] {
GREETING_NAME }, GREETING_QN, true);
+ greetingDOB = SDOXMLHelper.toDataObject(appCL, typeHelper, new
Object[] { GREETING_NAME }, GREETING_QN, true);
+ greetingXML = SDOXMLHelper.toXMLBytes(appCL, typeHelper, new
Object[] { GREETING_NAME }, GREETING_QN, true);
DataFactory dataFactory = SDOUtil.createDataFactory(typeHelper);
nonWrappedDOB =
dataFactory.create("http://www.example.org/creditscore/doclit/", "Customer");