Author: heiko.braun(a)jboss.com
Date: 2006-12-08 11:00:45 -0500 (Fri, 08 Dec 2006)
New Revision: 1616
Added:
trunk/src/test/java/org/jboss/test/ws/jaxws/xop/doclit/MTOMProtocolHandler.java
trunk/src/test/java/org/jboss/test/ws/jaxws/xop/doclit/XOPBase.java
trunk/src/test/java/org/jboss/test/ws/jaxws/xop/doclit/XOPHandlerTestCase.java
Modified:
trunk/src/test/java/org/jboss/test/ws/jaxws/xop/doclit/XOPTestCase.java
Log:
Added JAX-WS MTOM handler test case
Added: trunk/src/test/java/org/jboss/test/ws/jaxws/xop/doclit/MTOMProtocolHandler.java
===================================================================
---
trunk/src/test/java/org/jboss/test/ws/jaxws/xop/doclit/MTOMProtocolHandler.java 2006-12-08
15:00:40 UTC (rev 1615)
+++
trunk/src/test/java/org/jboss/test/ws/jaxws/xop/doclit/MTOMProtocolHandler.java 2006-12-08
16:00:45 UTC (rev 1616)
@@ -0,0 +1,36 @@
+package org.jboss.test.ws.jaxws.xop.doclit;
+
+import org.jboss.ws.core.jaxws.handler.GenericSOAPHandler;
+import org.jboss.ws.core.CommonMessageContext;
+import org.jboss.logging.Logger;
+
+import javax.xml.ws.handler.MessageContext;
+import javax.xml.soap.SOAPMessage;
+import java.io.ByteArrayOutputStream;
+
+class MTOMProtocolHandler extends GenericSOAPHandler
+{
+ private Logger log = Logger.getLogger(MTOMProtocolHandler.class);
+
+ protected boolean handleOutbound(MessageContext msgContext) {
+ return dumpMessage(msgContext);
+ }
+
+ protected boolean handleInbound(MessageContext msgContext) {
+ return dumpMessage(msgContext);
+ }
+
+ private boolean dumpMessage(MessageContext context) {
+ try
+ {
+ SOAPMessage msg = ((CommonMessageContext)context).getSOAPMessage();
+ ByteArrayOutputStream bout = new ByteArrayOutputStream();
+ msg.writeTo(bout);
+ log.info(bout.toString());
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+
+ return true;
+ }
+}
\ No newline at end of file
Added: trunk/src/test/java/org/jboss/test/ws/jaxws/xop/doclit/XOPBase.java
===================================================================
--- trunk/src/test/java/org/jboss/test/ws/jaxws/xop/doclit/XOPBase.java 2006-12-08
15:00:40 UTC (rev 1615)
+++ trunk/src/test/java/org/jboss/test/ws/jaxws/xop/doclit/XOPBase.java 2006-12-08
16:00:45 UTC (rev 1616)
@@ -0,0 +1,108 @@
+package org.jboss.test.ws.jaxws.xop.doclit;
+
+import org.jboss.test.ws.JBossWSTest;
+import org.jboss.test.ws.jaxrpc.xop.XOPTestSupport;
+
+import javax.activation.DataHandler;
+import javax.xml.transform.Source;
+import javax.xml.ws.soap.SOAPBinding;
+import java.net.URL;
+import java.awt.image.BufferedImage;
+import java.awt.*;
+import java.io.InputStream;
+
+/**
+ * Created by IntelliJ IDEA.
+ * User: hbraun
+ * Date: 08.12.2006
+ * Time: 16:02:37
+ * To change this template use File | Settings | File Templates.
+ */
+public abstract class XOPBase extends JBossWSTest {
+
+ protected MTOMEndpoint port;
+ protected SOAPBinding binding;
+
+ protected abstract MTOMEndpoint getPort();
+ protected abstract SOAPBinding getBinding();
+
+ public void testDHRoundtrip() throws Exception
+ {
+ getBinding().setMTOMEnabled(true);
+
+ URL url = new URL("file:resources/jaxws/xop/shared/attach.jpeg");
+ DataHandler dh = new DataHandler(url);
+ DHResponse response = getPort().echoDataHandler(new DHRequest(dh));
+ assertNotNull(response);
+ assertEquals(response.getDataHandler().getContentType(), "image/jpeg");
+ assertTrue(response.getDataHandler().getContent() instanceof BufferedImage);
+ }
+
+ public void testDHResponseOptimzed() throws Exception
+ {
+ getBinding().setMTOMEnabled(false);
+
+ URL url = new URL("file:resources/jaxws/xop/shared/attach.jpeg");
+ DataHandler dh = new DataHandler(url);
+ DHResponse response = getPort().echoDataHandler(new DHRequest(dh));
+ assertNotNull(response);
+ assertEquals(response.getDataHandler().getContentType(),
"application/octet-stream");
+ assertTrue("Wrong java type returned",
response.getDataHandler().getContent() instanceof InputStream);
+ }
+
+ public void testImgRoundtrip() throws Exception
+ {
+ getBinding().setMTOMEnabled(true);
+
+ Image img = XOPTestSupport.createTestImage();
+ ImageRequest request = new ImageRequest();
+ request.setData(img);
+
+ ImageResponse response = getPort().echoImage(request);
+
+ assertNotNull(response);
+ assertTrue(response.getData() instanceof Image);
+ }
+
+ public void testImgResponseOptimized() throws Exception
+ {
+ getBinding().setMTOMEnabled(false);
+
+ Image img = XOPTestSupport.createTestImage();
+ ImageRequest request = new ImageRequest();
+ request.setData(img);
+
+ ImageResponse response = getPort().echoImage(request);
+
+ assertNotNull(response);
+ assertTrue(response.getData() instanceof Image);
+ }
+
+ public void testSrcRoundtrip() throws Exception
+ {
+ getBinding().setMTOMEnabled(true);
+
+ Source src = XOPTestSupport.createTestSource();
+ SourceRequest request = new SourceRequest();
+ request.setData(src);
+
+ SourceResponse response = getPort().echoSource(request);
+
+ assertNotNull(response);
+ assertTrue(response.getData() instanceof Source);
+ }
+
+ public void testSrcResponseOptimized() throws Exception
+ {
+ getBinding().setMTOMEnabled(false);
+
+ Source src = XOPTestSupport.createTestSource();
+ SourceRequest request = new SourceRequest();
+ request.setData(src);
+
+ SourceResponse response = getPort().echoSource(request);
+
+ assertNotNull(response);
+ assertTrue(response.getData() instanceof Source);
+ }
+}
Added: trunk/src/test/java/org/jboss/test/ws/jaxws/xop/doclit/XOPHandlerTestCase.java
===================================================================
---
trunk/src/test/java/org/jboss/test/ws/jaxws/xop/doclit/XOPHandlerTestCase.java 2006-12-08
15:00:40 UTC (rev 1615)
+++
trunk/src/test/java/org/jboss/test/ws/jaxws/xop/doclit/XOPHandlerTestCase.java 2006-12-08
16:00:45 UTC (rev 1616)
@@ -0,0 +1,78 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2005, JBoss Inc., and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
+*/
+package org.jboss.test.ws.jaxws.xop.doclit;
+
+import org.jboss.test.ws.JBossWSTestSetup;
+import org.jboss.logging.Logger;
+import junit.framework.Test;
+
+import javax.xml.namespace.QName;
+import javax.xml.ws.BindingProvider;
+import javax.xml.ws.soap.SOAPBinding;
+import java.net.URL;
+
+/**
+ * @author Heiko Braun <heiko.braun(a)jboss.com>
+ * @version $Id$
+ * @since 05.12.2006
+ */
+public class XOPHandlerTestCase extends XOPBase {
+
+ public final String TARGET_ENDPOINT_ADDRESS = "http://" + getServerHost() +
":8080/jaxws-xop-doclit/MTOMEndpointBean";
+
+ private Logger log = Logger.getLogger(XOPHandlerTestCase.class);
+
+ public static Test suite()
+ {
+ return JBossWSTestSetup.newTestSetup(XOPHandlerTestCase.class,
"jaxws-xop-doclit.jar, jaxws-xop-doclit-client.jar");
+ }
+
+ protected void setUp() throws Exception
+ {
+
+ QName serviceName = new QName("http://org.jboss.ws/xop/doclit",
"MTOMService");
+ URL wsdlURL = new URL(TARGET_ENDPOINT_ADDRESS+"?wsdl");
+
+ javax.xml.ws.Service service = javax.xml.ws.Service.create(wsdlURL, serviceName);
+ port = service.getPort(MTOMEndpoint.class);
+
+ // enable MTOM
+ binding = (SOAPBinding)((BindingProvider) port).getBinding();
+ binding.getHandlerChain().add(new MTOMProtocolHandler());
+
+ // debug request/reponse
+
+ /*BindingProvider bp = (BindingProvider)port;
+ Map<String,Object> context = bp.getRequestContext();
+ context.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, "http://" +
getServerHost() + ":8081/jaxws-xop-doclit/MTOMEndpointBean");
+ */
+ }
+
+ protected MTOMEndpoint getPort() {
+ return port;
+ }
+
+ protected SOAPBinding getBinding() {
+ return binding;
+ }
+
+}
\ No newline at end of file
Modified: trunk/src/test/java/org/jboss/test/ws/jaxws/xop/doclit/XOPTestCase.java
===================================================================
--- trunk/src/test/java/org/jboss/test/ws/jaxws/xop/doclit/XOPTestCase.java 2006-12-08
15:00:40 UTC (rev 1615)
+++ trunk/src/test/java/org/jboss/test/ws/jaxws/xop/doclit/XOPTestCase.java 2006-12-08
16:00:45 UTC (rev 1616)
@@ -42,13 +42,10 @@
* @version $Id$
* @since 05.12.2006
*/
-public class XOPTestCase extends JBossWSTest {
+public class XOPTestCase extends XOPBase {
public final String TARGET_ENDPOINT_ADDRESS = "http://" + getServerHost() +
":8080/jaxws-xop-doclit/MTOMEndpointBean";
- private MTOMEndpoint port;
- private SOAPBinding binding;
-
public static Test suite()
{
return JBossWSTestSetup.newTestSetup(XOPTestCase.class, "jaxws-xop-doclit.jar,
jaxws-xop-doclit-client.jar");
@@ -68,89 +65,18 @@
// debug request/reponse
- BindingProvider bp = (BindingProvider)port;
+ /*BindingProvider bp = (BindingProvider)port;
Map<String,Object> context = bp.getRequestContext();
context.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, "http://" +
getServerHost() + ":8081/jaxws-xop-doclit/MTOMEndpointBean");
-
+ */
}
- public void testDHRoundtrip() throws Exception
- {
- binding.setMTOMEnabled(true);
-
- URL url = new URL("file:resources/jaxws/xop/shared/attach.jpeg");
- DataHandler dh = new DataHandler(url);
- DHResponse response = port.echoDataHandler(new DHRequest(dh));
- assertNotNull(response);
- assertEquals(response.getDataHandler().getContentType(), "image/jpeg");
- assertTrue(response.getDataHandler().getContent() instanceof BufferedImage);
+ protected MTOMEndpoint getPort() {
+ return port;
}
- public void testDHResponseOptimzed() throws Exception
- {
- binding.setMTOMEnabled(false);
-
- URL url = new URL("file:resources/jaxws/xop/shared/attach.jpeg");
- DataHandler dh = new DataHandler(url);
- DHResponse response = port.echoDataHandler(new DHRequest(dh));
- assertNotNull(response);
- assertEquals(response.getDataHandler().getContentType(),
"application/octet-stream");
- assertTrue("Wrong java type returned",
response.getDataHandler().getContent() instanceof InputStream);
+ protected SOAPBinding getBinding() {
+ return binding;
}
- public void testImgRoundtrip() throws Exception
- {
- binding.setMTOMEnabled(true);
-
- Image img = XOPTestSupport.createTestImage();
- ImageRequest request = new ImageRequest();
- request.setData(img);
-
- ImageResponse response = port.echoImage(request);
-
- assertNotNull(response);
- assertTrue(response.getData() instanceof Image);
- }
-
- public void testImgResponseOptimized() throws Exception
- {
- binding.setMTOMEnabled(false);
-
- Image img = XOPTestSupport.createTestImage();
- ImageRequest request = new ImageRequest();
- request.setData(img);
-
- ImageResponse response = port.echoImage(request);
-
- assertNotNull(response);
- assertTrue(response.getData() instanceof Image);
- }
-
- public void testSrcRoundtrip() throws Exception
- {
- binding.setMTOMEnabled(true);
-
- Source src = XOPTestSupport.createTestSource();
- SourceRequest request = new SourceRequest();
- request.setData(src);
-
- SourceResponse response = port.echoSource(request);
-
- assertNotNull(response);
- assertTrue(response.getData() instanceof Source);
- }
-
- public void testSrcResponseOptimized() throws Exception
- {
- binding.setMTOMEnabled(false);
-
- Source src = XOPTestSupport.createTestSource();
- SourceRequest request = new SourceRequest();
- request.setData(src);
-
- SourceResponse response = port.echoSource(request);
-
- assertNotNull(response);
- assertTrue(response.getData() instanceof Source);
- }
}
\ No newline at end of file