You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by bi...@apache.org on 2008/01/17 21:45:36 UTC
svn commit: r612972 - in /incubator/cxf/trunk:
systests/src/test/java/org/apache/cxf/systest/mtom/
testutils/src/main/java/org/apache/cxf/mtom_xop/
testutils/src/main/resources/wsdl/
Author: bimargulies
Date: Thu Jan 17 12:45:34 2008
New Revision: 612972
URL: http://svn.apache.org/viewvc?rev=612972&view=rev
Log:
Add a failing MTOM test case.
Modified:
incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/mtom/ClientMtomXopTest.java
incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/mtom/TestAttachmentOutInterceptor.java
incubator/cxf/trunk/testutils/src/main/java/org/apache/cxf/mtom_xop/TestMtomImpl.java
incubator/cxf/trunk/testutils/src/main/resources/wsdl/mtom_xop.wsdl
Modified: incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/mtom/ClientMtomXopTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/mtom/ClientMtomXopTest.java?rev=612972&r1=612971&r2=612972&view=diff
==============================================================================
--- incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/mtom/ClientMtomXopTest.java (original)
+++ incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/mtom/ClientMtomXopTest.java Thu Jan 17 12:45:34 2008
@@ -39,6 +39,7 @@
import org.apache.cxf.jaxws.support.JaxWsEndpointImpl;
import org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean;
import org.apache.cxf.mime.TestMtom;
+import org.apache.cxf.mime.types.XopStringType;
import org.apache.cxf.service.Service;
import org.apache.cxf.service.factory.ReflectionServiceFactoryBean;
import org.apache.cxf.service.model.EndpointInfo;
@@ -53,51 +54,36 @@
public static final QName MTOM_PORT = new QName("http://cxf.apache.org/mime", "TestMtomPort");
public static final QName MTOM_SERVICE = new QName("http://cxf.apache.org/mime", "TestMtomService");
-
@BeforeClass
public static void startServers() throws Exception {
TestUtilities.setKeepAliveSystemProperty(false);
assertTrue("server did not launch correctly", launchServer(Server.class));
}
-
+
@AfterClass
public static void cleanup() {
TestUtilities.recoverKeepAliveSystemProperty();
}
/*
- @Test
- @Ignore
- public void testMtomSWA() throws Exception {
- TestMtom mtomPort = createPort(MTOM_SERVICE, MTOM_PORT, TestMtom.class);
- try {
- InputStream pre = this.getClass().getResourceAsStream("/wsdl/mtom_xop.wsdl");
- long fileSize = 0;
- for (int i = pre.read(); i != -1; i = pre.read()) {
- fileSize++;
- }
+ * @Test @Ignore public void testMtomSWA() throws Exception { TestMtom
+ * mtomPort = createPort(MTOM_SERVICE, MTOM_PORT, TestMtom.class); try {
+ * InputStream pre =
+ * this.getClass().getResourceAsStream("/wsdl/mtom_xop.wsdl"); long fileSize =
+ * 0; for (int i = pre.read(); i != -1; i = pre.read()) { fileSize++; }
+ * ByteArrayDataSource bads = new
+ * ByteArrayDataSource(this.getClass().getResourceAsStream(
+ * "/wsdl/mtom_xop.wsdl"), "application/octet-stream"); DataHandler dh = new
+ * DataHandler(bads); DataHandler dhResp = mtomPort.testSWA(dh); DataSource
+ * ds = dhResp.getDataSource(); InputStream in = ds.getInputStream(); long
+ * count = 0; for (int i = in.read(); i != -1; i = in.read()) { count++; }
+ * assertEquals("attachemnt length different", fileSize, count); } catch
+ * (UndeclaredThrowableException ex) { throw (Exception) ex.getCause(); } }
+ */
- ByteArrayDataSource bads = new ByteArrayDataSource(this.getClass().getResourceAsStream(
- "/wsdl/mtom_xop.wsdl"), "application/octet-stream");
- DataHandler dh = new DataHandler(bads);
- DataHandler dhResp = mtomPort.testSWA(dh);
- DataSource ds = dhResp.getDataSource();
- InputStream in = ds.getInputStream();
-
- long count = 0;
- for (int i = in.read(); i != -1; i = in.read()) {
- count++;
- }
- assertEquals("attachemnt length different", fileSize, count);
- } catch (UndeclaredThrowableException ex) {
- throw (Exception) ex.getCause();
- }
- }
- */
-
@Test
public void testMtomXop() throws Exception {
- TestMtom mtomPort = createPort(MTOM_SERVICE, MTOM_PORT, TestMtom.class, true);
+ TestMtom mtomPort = createPort(MTOM_SERVICE, MTOM_PORT, TestMtom.class, true, true);
try {
InputStream pre = this.getClass().getResourceAsStream("/wsdl/mtom_xop.wsdl");
long fileSize = 0;
@@ -105,24 +91,40 @@
fileSize++;
}
Holder<DataHandler> param = new Holder<DataHandler>();
- byte[] data = new byte[(int) fileSize];
+ byte[] data = new byte[(int)fileSize];
this.getClass().getResourceAsStream("/wsdl/mtom_xop.wsdl").read(data);
-
+
param.value = new DataHandler(new ByteArrayDataSource(data, "application/octet-stream"));
Holder<String> name = new Holder<String>("call detail");
mtomPort.testXop(name, param);
assertEquals("name unchanged", "return detail + call detail", name.value);
assertNotNull(param.value);
} catch (UndeclaredThrowableException ex) {
- throw (Exception) ex.getCause();
+ throw (Exception)ex.getCause();
+ }
+ }
+
+ @org.junit.Ignore
+ @Test
+ public void testMtoMString() throws Exception {
+ TestMtom mtomPort = createPort(MTOM_SERVICE, MTOM_PORT, TestMtom.class, true, false);
+ InputStream pre = this.getClass().getResourceAsStream("/wsdl/mtom_xop.wsdl");
+ long fileSize = 0;
+ for (int i = pre.read(); i != -1; i = pre.read()) {
+ fileSize++;
}
+ byte[] data = new byte[(int)fileSize];
+ this.getClass().getResourceAsStream("/wsdl/mtom_xop.wsdl").read(data);
+ String stringValue = new String(data, "utf-8");
+ XopStringType xsv = new XopStringType();
+ xsv.setAttachinfo(stringValue);
+ xsv.setName("eman");
+ XopStringType r = mtomPort.testXopString(xsv);
+ assertNotNull(r);
}
- private static <T> T createPort(QName serviceName,
- QName portName,
- Class<T> serviceEndpointInterface,
- boolean enableMTOM)
- throws Exception {
+ private static <T> T createPort(QName serviceName, QName portName, Class<T> serviceEndpointInterface,
+ boolean enableMTOM, boolean installInterceptors) throws Exception {
Bus bus = BusFactory.getDefaultBus();
ReflectionServiceFactoryBean serviceFactory = new JaxWsServiceFactoryBean();
serviceFactory.setBus(bus);
@@ -134,14 +136,17 @@
JaxWsEndpointImpl jaxwsEndpoint = new JaxWsEndpointImpl(bus, service, ei);
SOAPBinding jaxWsSoapBinding = new SOAPBindingImpl(ei.getBinding());
jaxWsSoapBinding.setMTOMEnabled(enableMTOM);
-
- jaxwsEndpoint.getBinding().getInInterceptors().add(new TestMultipartMessageInterceptor());
- jaxwsEndpoint.getBinding().getOutInterceptors().add(new TestAttachmentOutInterceptor());
-
+
+ if (installInterceptors) {
+ jaxwsEndpoint.getBinding().getInInterceptors().add(new TestMultipartMessageInterceptor());
+ jaxwsEndpoint.getBinding().getOutInterceptors().add(new TestAttachmentOutInterceptor());
+ }
+
Client client = new ClientImpl(bus, jaxwsEndpoint);
InvocationHandler ih = new JaxWsClientProxy(client, jaxwsEndpoint.getJaxwsBinding());
- Object obj = Proxy.newProxyInstance(serviceEndpointInterface.getClassLoader(), new Class[] {
- serviceEndpointInterface, BindingProvider.class }, ih);
+ Object obj = Proxy
+ .newProxyInstance(serviceEndpointInterface.getClassLoader(),
+ new Class[] {serviceEndpointInterface, BindingProvider.class}, ih);
return serviceEndpointInterface.cast(obj);
}
}
Modified: incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/mtom/TestAttachmentOutInterceptor.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/mtom/TestAttachmentOutInterceptor.java?rev=612972&r1=612971&r2=612972&view=diff
==============================================================================
--- incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/mtom/TestAttachmentOutInterceptor.java (original)
+++ incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/mtom/TestAttachmentOutInterceptor.java Thu Jan 17 12:45:34 2008
@@ -35,7 +35,7 @@
}
public void handleMessage(Message message) throws Fault {
- Assert.assertEquals("check attachment count", message.getAttachments().size(), 1);
+ Assert.assertEquals("check attachment count", 1, message.getAttachments().size());
Attachment att = message.getAttachments().iterator().next();
Assert.assertNotNull("Attachment is null", att);
Assert.assertNotNull("Attachment content-type is null", att.getDataHandler().getDataSource()
Modified: incubator/cxf/trunk/testutils/src/main/java/org/apache/cxf/mtom_xop/TestMtomImpl.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/testutils/src/main/java/org/apache/cxf/mtom_xop/TestMtomImpl.java?rev=612972&r1=612971&r2=612972&view=diff
==============================================================================
--- incubator/cxf/trunk/testutils/src/main/java/org/apache/cxf/mtom_xop/TestMtomImpl.java (original)
+++ incubator/cxf/trunk/testutils/src/main/java/org/apache/cxf/mtom_xop/TestMtomImpl.java Thu Jan 17 12:45:34 2008
@@ -24,6 +24,7 @@
import javax.xml.ws.Holder;
import org.apache.cxf.mime.TestMtom;
+import org.apache.cxf.mime.types.XopStringType;
@WebService(serviceName = "TestMtomService",
portName = "TestMtomPort",
@@ -34,8 +35,13 @@
public class TestMtomImpl implements TestMtom {
public void testXop(Holder<String> name, Holder<DataHandler> attachinfo) {
- // TODO Auto-generated method stub
name.value = "return detail + " + name.value;
+ }
+
+ public XopStringType testXopString(XopStringType data) {
+ XopStringType d2 = new XopStringType();
+ d2.setAttachinfo("This is the cereal shot from guns" + data.getAttachinfo());
+ return d2;
}
}
Modified: incubator/cxf/trunk/testutils/src/main/resources/wsdl/mtom_xop.wsdl
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/testutils/src/main/resources/wsdl/mtom_xop.wsdl?rev=612972&r1=612971&r2=612972&view=diff
==============================================================================
--- incubator/cxf/trunk/testutils/src/main/resources/wsdl/mtom_xop.wsdl (original)
+++ incubator/cxf/trunk/testutils/src/main/resources/wsdl/mtom_xop.wsdl Thu Jan 17 12:45:34 2008
@@ -33,13 +33,20 @@
<element name="attachinfo" type="xsd:base64Binary" xmime:expectedContentTypes="application/octet-stream"/>
</sequence>
</complexType>
+ <complexType name="XopStringType">
+ <sequence>
+ <element name="name" type="xsd:string" />
+ <element name="attachinfo" type="xsd:base64Binary" xmime:expectedContentTypes="text/plain"/>
+ </sequence>
+ </complexType>
<element name="testXop" type="types:XopType" />
<element name="testXopResponse" type="types:XopType" />
+ <element name="testXopStringArgument" type="types:XopStringType"/>
+ <element name="testXopStringResponse" type="types:XopStringType"/>
</schema>
</wsdl:types>
-
<wsdl:message name="testXopIn">
<wsdl:part name="data" element="types:testXop" />
</wsdl:message>
@@ -48,6 +55,13 @@
<wsdl:part name="data" element="types:testXopResponse" />
</wsdl:message>
+ <wsdl:message name="testXopStringIn">
+ <wsdl:part name="data" element="types:testXopStringArgument" />
+ </wsdl:message>
+
+ <wsdl:message name="testXopStringOut">
+ <wsdl:part name="data" element="types:testXopStringResponse" />
+ </wsdl:message>
<wsdl:portType name="TestMtom">
@@ -56,12 +70,27 @@
<wsdl:output message="tns:testXopOut" />
</wsdl:operation>
+ <wsdl:operation name="testXopString">
+ <wsdl:input message="tns:testXopStringIn" />
+ <wsdl:output message="tns:testXopStringOut" />
+ </wsdl:operation>
+
</wsdl:portType>
<wsdl:binding name="TestMtomBinding" type="tns:TestMtom">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="testXop">
+ <soap:operation soapAction="" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+
+ <wsdl:operation name="testXopString">
<soap:operation soapAction="" />
<wsdl:input>
<soap:body use="literal" />