[jbossws-commits] JBossWS SVN: r3399 - in trunk/jbossws-core/src: main/java/org/jboss/ws/core/soap and 1 other directories.

jbossws-commits at lists.jboss.org jbossws-commits at lists.jboss.org
Sat Jun 2 19:12:55 EDT 2007


Author: thomas.diesler at jboss.com
Date: 2007-06-02 19:12:55 -0400 (Sat, 02 Jun 2007)
New Revision: 3399

Added:
   trunk/jbossws-core/src/test/java/org/jboss/test/ws/jaxrpc/jbws1647/JBWS1647TestBase.java
Removed:
   trunk/jbossws-core/src/test/java/org/jboss/test/ws/jaxrpc/jbws1647/TestCaseBase.java
Modified:
   trunk/jbossws-core/src/main/java/org/jboss/ws/core/CommonSOAPBinding.java
   trunk/jbossws-core/src/main/java/org/jboss/ws/core/soap/EnvelopeBuilderDOM.java
   trunk/jbossws-core/src/main/java/org/jboss/ws/core/soap/SOAPElementImpl.java
   trunk/jbossws-core/src/main/java/org/jboss/ws/core/soap/SOAPMessageDispatcher.java
   trunk/jbossws-core/src/main/java/org/jboss/ws/core/soap/TextImpl.java
   trunk/jbossws-core/src/test/java/org/jboss/test/ws/jaxrpc/jbws1647/AbstractHandler.java
   trunk/jbossws-core/src/test/java/org/jboss/test/ws/jaxrpc/jbws1647/DocumentHandler.java
   trunk/jbossws-core/src/test/java/org/jboss/test/ws/jaxrpc/jbws1647/JBWS1647DocumentTestCase.java
   trunk/jbossws-core/src/test/java/org/jboss/test/ws/jaxrpc/jbws1647/JBWS1647RPCTestCase.java
   trunk/jbossws-core/src/test/java/org/jboss/test/ws/jaxrpc/jbws1647/RpcHandler.java
Log:
[JBWS-1647] Text Node Preservation For Messages Sent Across The Wire

Modified: trunk/jbossws-core/src/main/java/org/jboss/ws/core/CommonSOAPBinding.java
===================================================================
--- trunk/jbossws-core/src/main/java/org/jboss/ws/core/CommonSOAPBinding.java	2007-06-02 21:44:36 UTC (rev 3398)
+++ trunk/jbossws-core/src/main/java/org/jboss/ws/core/CommonSOAPBinding.java	2007-06-02 23:12:55 UTC (rev 3399)
@@ -288,14 +288,25 @@
          if (opMetaData.isMessageEndpoint() == false)
          {
             Style style = opMetaData.getStyle();
-            SOAPElement soapBodyElement = soapBody;
+            SOAPElement payloadParent = soapBody;
             if (style == Style.RPC)
             {
-               soapBodyElement = (SOAPBodyElement)soapBody.getChildElements().next();
-               Name elName = soapBodyElement.getElementName();
-
-               QName elQName = new QName(elName.getURI(), elName.getLocalName(), elName.getPrefix());
-               elQName = namespaceRegistry.registerQName(elQName);
+               payloadParent = null;
+               Iterator it = soapBody.getChildElements();
+               while (payloadParent == null && it.hasNext())
+               {
+                  Object childNode = it.next();
+                  if (childNode instanceof SOAPElement)
+                  {
+                     payloadParent = (SOAPElement)childNode;
+                  }
+               }
+               
+               if (payloadParent == null)
+                  throw new SOAPException("Cannot find RPC element in");
+               
+               QName elName = payloadParent.getElementQName();
+               elName = namespaceRegistry.registerQName(elName);
             }
 
             int numParameters = 0;
@@ -324,7 +335,7 @@
                   else
                   {
                      boolean isHeader = paramMetaData.isInHeader();
-                     SOAPElement element = isHeader ? soapHeader : soapBodyElement;
+                     SOAPElement element = isHeader ? soapHeader : payloadParent;
                      if (!isHeader)
                         numParameters++;
 
@@ -336,7 +347,7 @@
 
             // Verify the numer of parameters matches the actual message payload
             int numChildElements = 0;
-            Iterator itElements = soapBodyElement.getChildElements();
+            Iterator itElements = payloadParent.getChildElements();
             while (itElements.hasNext())
             {
                Node node = (Node)itElements.next();
@@ -804,44 +815,47 @@
       Iterator childElements = soapElement.getChildElements();
       while (childElements.hasNext())
       {
-         SOAPElementImpl childElement = (SOAPElementImpl)childElements.next();
+         Object childNode = childElements.next();
+         if (childNode instanceof SOAPElement)
+         {
+            SOAPElementImpl childElement = (SOAPElementImpl)childNode;
+            // If this message was manipulated by a handler the child may not be a content element
+            if (!(childElement instanceof SOAPContentElement))
+               childElement = (SOAPContentElement)soapElement.replaceChild(new SOAPContentElement(childElement), childElement);
 
-         // If this message was manipulated by a handler the child may not be a content element
-         if (!(childElement instanceof SOAPContentElement))
-            childElement = (SOAPContentElement)soapElement.replaceChild(new SOAPContentElement(childElement), childElement);
+            // The parameters are expected to be lazy
+            SOAPContentElement aux = (SOAPContentElement)childElement;
+            Name elName = aux.getElementName();
 
-         // The parameters are expected to be lazy
-         SOAPContentElement aux = (SOAPContentElement)childElement;
-         Name elName = aux.getElementName();
+            if (xmlName.equals(elName))
+            {
+               soapContentElement = aux;
+               soapContentElement.setParamMetaData(paramMetaData);
+               break;
+            }
 
-         if (xmlName.equals(elName))
-         {
-            soapContentElement = aux;
-            soapContentElement.setParamMetaData(paramMetaData);
-            break;
-         }
-
-         if (SOAP_ARRAY_NAME.equals(elName))
-         {
-            CommonMessageContext msgContext = MessageContextAssociation.peekMessageContext();
-            msgContext.put(CommonMessageContext.ALLOW_EXPAND_TO_DOM, Boolean.TRUE);
-            try
+            if (SOAP_ARRAY_NAME.equals(elName))
             {
-               QName compXMLName = paramMetaData.getXmlName();
-               Element compElement = DOMUtils.getFirstChildElement(aux);
-               // NPE when the soap encoded array size is 0 on the return path
-               // http://jira.jboss.org/jira/browse/JBWS-1285
-               if (compElement == null || compElement.getNodeName().equals(compXMLName.getLocalPart()))
+               CommonMessageContext msgContext = MessageContextAssociation.peekMessageContext();
+               msgContext.put(CommonMessageContext.ALLOW_EXPAND_TO_DOM, Boolean.TRUE);
+               try
                {
-                  soapContentElement = aux;
-                  soapContentElement.setParamMetaData(paramMetaData);
-                  break;
+                  QName compXMLName = paramMetaData.getXmlName();
+                  Element compElement = DOMUtils.getFirstChildElement(aux);
+                  // NPE when the soap encoded array size is 0 on the return path
+                  // http://jira.jboss.org/jira/browse/JBWS-1285
+                  if (compElement == null || compElement.getNodeName().equals(compXMLName.getLocalPart()))
+                  {
+                     soapContentElement = aux;
+                     soapContentElement.setParamMetaData(paramMetaData);
+                     break;
+                  }
                }
+               finally
+               {
+                  msgContext.remove(CommonMessageContext.ALLOW_EXPAND_TO_DOM);
+               }
             }
-            finally
-            {
-               msgContext.remove(CommonMessageContext.ALLOW_EXPAND_TO_DOM);
-            }
          }
       }
 

Modified: trunk/jbossws-core/src/main/java/org/jboss/ws/core/soap/EnvelopeBuilderDOM.java
===================================================================
--- trunk/jbossws-core/src/main/java/org/jboss/ws/core/soap/EnvelopeBuilderDOM.java	2007-06-02 21:44:36 UTC (rev 3398)
+++ trunk/jbossws-core/src/main/java/org/jboss/ws/core/soap/EnvelopeBuilderDOM.java	2007-06-02 23:12:55 UTC (rev 3399)
@@ -144,17 +144,9 @@
             }
             else
             {
-               log.warn("Ignore envelope chile element: " + elName);
+               log.warn("Ignore envelope child: " + elName);
             }
          }
-         else if (childType == Node.COMMENT_NODE)
-         {
-            appendCommentNode(soapEnv, child);
-         }
-         else if (childType == Node.TEXT_NODE)
-         {
-            appendTextNode(soapEnv, child);
-         }
          else
          {
             log.warn("Ignore child type: " + childType);
@@ -189,14 +181,6 @@
             DOMUtils.copyAttributes(destElement, srcElement);
             destElement.setXMLFragment(xmlFragment);
          }
-         else if (childType == Node.COMMENT_NODE)
-         {
-            appendCommentNode(soapHeader, child);
-         }
-         else if (childType == Node.TEXT_NODE)
-         {
-            appendTextNode(soapHeader, child);
-         }
          else
          {
             log.warn("Ignore child type: " + childType);

Modified: trunk/jbossws-core/src/main/java/org/jboss/ws/core/soap/SOAPElementImpl.java
===================================================================
--- trunk/jbossws-core/src/main/java/org/jboss/ws/core/soap/SOAPElementImpl.java	2007-06-02 21:44:36 UTC (rev 3398)
+++ trunk/jbossws-core/src/main/java/org/jboss/ws/core/soap/SOAPElementImpl.java	2007-06-02 23:12:55 UTC (rev 3399)
@@ -465,9 +465,7 @@
          }
          else if (node instanceof Text)
          {
-            String value = node.getNodeValue();
-            if (value.trim().length() > 0)
-               list.add(node);
+            list.add(node);
          }
       }
       return list.iterator();
@@ -835,7 +833,7 @@
             }
             else if (node instanceof TextImpl)
             {
-               out.write(node.getValue());
+               ((TextImpl)node).writeNode(out);
             }
             else
             {

Modified: trunk/jbossws-core/src/main/java/org/jboss/ws/core/soap/SOAPMessageDispatcher.java
===================================================================
--- trunk/jbossws-core/src/main/java/org/jboss/ws/core/soap/SOAPMessageDispatcher.java	2007-06-02 21:44:36 UTC (rev 3398)
+++ trunk/jbossws-core/src/main/java/org/jboss/ws/core/soap/SOAPMessageDispatcher.java	2007-06-02 23:12:55 UTC (rev 3399)
@@ -68,7 +68,7 @@
             if (wsaAction.equals(opAux.getSOAPAction()))
             {
                opMetaData = opAux;
-               if(log.isDebugEnabled()) log.debug("Use wsa:Action dispatch: " + wsaAction);
+               log.debug("Use wsa:Action dispatch: " + wsaAction);
                break;
             }
          }
@@ -86,9 +86,19 @@
       {
          SOAPBody soapBody = soapMessage.getSOAPBody();
 
+         SOAPBodyElement soapBodyElement = null;
          Iterator bodyChildren = soapBody.getChildElements();
-         if (bodyChildren.hasNext() == false)
+         while (bodyChildren.hasNext() && soapBodyElement == null)
          {
+            Object childNode = bodyChildren.next();
+            if (childNode instanceof SOAPBodyElement)
+            {
+               soapBodyElement = (SOAPBodyElement)childNode;
+            }
+         }
+
+         if (soapBodyElement == null)
+         {
             if (epMetaData.getStyle() == Style.RPC)
                throw new SOAPException("Empty SOAP body with no child element not supported for RPC");
 
@@ -97,7 +107,7 @@
             {
                if (opAux.getParameters().size() == 0)
                {
-                  if(log.isDebugEnabled()) log.debug ("Dispatching empty SOAP body");
+                  log.debug ("Dispatching empty SOAP body");
                   opMetaData = opAux;
                   break;
                }
@@ -105,7 +115,6 @@
          }
          else
          {
-            SOAPBodyElement soapBodyElement = (SOAPBodyElement)bodyChildren.next();
             Name soapName = soapBodyElement.getElementName();
             QName xmlElementName = new QName(soapName.getURI(), soapName.getLocalName());
             opMetaData = epMetaData.getOperation(xmlElementName);
@@ -119,14 +128,14 @@
          {
             if (opAux.isMessageEndpoint())
             {
-               if(log.isDebugEnabled()) log.debug("Use generic message style dispatch");
+               log.debug("Use generic message style dispatch");
                opMetaData = opAux;
                break;
             }
          }
       }
 
-      if(log.isDebugEnabled()) log.debug("getDispatchDestination: " + (opMetaData != null ? opMetaData.getQName() : null));
+      log.debug("getDispatchDestination: " + (opMetaData != null ? opMetaData.getQName() : null));
       return opMetaData;
    }
 }
\ No newline at end of file

Modified: trunk/jbossws-core/src/main/java/org/jboss/ws/core/soap/TextImpl.java
===================================================================
--- trunk/jbossws-core/src/main/java/org/jboss/ws/core/soap/TextImpl.java	2007-06-02 21:44:36 UTC (rev 3398)
+++ trunk/jbossws-core/src/main/java/org/jboss/ws/core/soap/TextImpl.java	2007-06-02 23:12:55 UTC (rev 3399)
@@ -21,6 +21,9 @@
 */
 package org.jboss.ws.core.soap;
 
+import java.io.IOException;
+import java.io.Writer;
+
 import org.w3c.dom.DOMException;
 import org.w3c.dom.Text;
 
@@ -55,6 +58,15 @@
       setNodeValue(value);
    }
 
+   public void writeNode(Writer out) throws IOException
+   {
+      String nodeValue = getNodeValue();
+      if (isComment() && !nodeValue.startsWith("<!--"))
+         out.write("<!--" + nodeValue + "-->");
+      else
+         out.write(nodeValue);
+   }
+   
    /**
     * Breaks this node into two nodes at the specified <code>offset</code>, keeping both in the tree as siblings.
     * <p/>
@@ -322,5 +334,4 @@
    {
       return null;
    }
-
 }

Modified: trunk/jbossws-core/src/test/java/org/jboss/test/ws/jaxrpc/jbws1647/AbstractHandler.java
===================================================================
--- trunk/jbossws-core/src/test/java/org/jboss/test/ws/jaxrpc/jbws1647/AbstractHandler.java	2007-06-02 21:44:36 UTC (rev 3398)
+++ trunk/jbossws-core/src/test/java/org/jboss/test/ws/jaxrpc/jbws1647/AbstractHandler.java	2007-06-02 23:12:55 UTC (rev 3399)
@@ -21,15 +21,16 @@
  */
 package org.jboss.test.ws.jaxrpc.jbws1647;
 
-import java.io.ByteArrayOutputStream;
-
 import javax.xml.namespace.QName;
 import javax.xml.rpc.handler.GenericHandler;
 import javax.xml.rpc.handler.MessageContext;
 import javax.xml.rpc.handler.soap.SOAPMessageContext;
+import javax.xml.soap.SOAPBody;
+import javax.xml.soap.SOAPEnvelope;
 import javax.xml.soap.SOAPMessage;
 
 import org.jboss.logging.Logger;
+import org.jboss.wsf.spi.utils.DOMWriter;
 
 /**
  * 
@@ -38,49 +39,39 @@
  */
 public abstract class AbstractHandler extends GenericHandler
 {
-
    private static final Logger log = Logger.getLogger(AbstractHandler.class);
 
-   public abstract String getExpectedMessage();
+   public abstract String getMessageBody();
 
    public boolean handleRequest(MessageContext msgContext)
    {
       log.info("handleRequest");
-      
-      boolean valid = false;
 
       SOAPMessageContext messageContext = (SOAPMessageContext)msgContext;
-
       SOAPMessage soapMessage = messageContext.getMessage();
-      ByteArrayOutputStream baos = new ByteArrayOutputStream();
 
-      String receivedMessage = "";
       try
       {
-         soapMessage.writeTo(baos);
-         receivedMessage = baos.toString();
+         SOAPEnvelope soapEnv = soapMessage.getSOAPPart().getEnvelope();
+         String wasEnv = DOMWriter.printNode(soapEnv, false);
+         String wasBody = wasEnv.substring(wasEnv.indexOf("<env:Body>"));
+         wasBody = wasBody.substring(0, wasBody.indexOf("</env:Envelope>"));
+         if (wasBody.equals(getMessageBody()) == false)
+         {
+            log.error("Exp Body: " + getMessageBody());
+            log.error("Was Body: " + wasBody);
+            throw new RuntimeException("Received message does not contain expected soap body.");
+         }
       }
       catch (Exception e)
       {
          throw new RuntimeException("Unable to process SOAPMessage", e);
       }
-
-      valid = getExpectedMessage().equals(receivedMessage);
-      if (valid == false)
-      {
-         log.error("Received message does not equal expected message.");
-         log.info("EXP - " + getExpectedMessage());
-         log.info("ACT - " + receivedMessage);
-
-         throw new RuntimeException("Received message does not equal expected message.");
-      }
-
-      return valid;
+      return true;
    }
 
    public QName[] getHeaders()
    {
       return null;
    }
-
 }

Modified: trunk/jbossws-core/src/test/java/org/jboss/test/ws/jaxrpc/jbws1647/DocumentHandler.java
===================================================================
--- trunk/jbossws-core/src/test/java/org/jboss/test/ws/jaxrpc/jbws1647/DocumentHandler.java	2007-06-02 21:44:36 UTC (rev 3398)
+++ trunk/jbossws-core/src/test/java/org/jboss/test/ws/jaxrpc/jbws1647/DocumentHandler.java	2007-06-02 23:12:55 UTC (rev 3399)
@@ -29,26 +29,20 @@
 public class DocumentHandler extends AbstractHandler
 {
 
-   public static final String MESSAGE = 
-      "<soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/' xmlns:typ='http://org.jboss.test.ws/jbws1647/types'>" +
-      "  <!-- Comment Before Header -->" +
-      "  <soapenv:Header></soapenv:Header>" +
-      "    <!-- Comment After Header, Before Body -->" +
-      "    <soapenv:Body>" +
-      "      <!-- Comment After Body -->" +
-      "      <typ:echoMessage xmlns:typ='http://org.jboss.test.ws/jbws1647/types'>" +
-      "        <!-- Comment After Wrapper -->" +
-      "        <String_1>My Message</String_1>" +
-      "        <!-- Comment After Parameter -->" +
-      "      </typ:echoMessage>" +
-      "      <!-- Comment Before Close Body -->" +
-      "    </soapenv:Body>" +
-      "  <!-- Comment Before Close Envelope -->" +
-      "</soapenv:Envelope>";
+   public static final String MESSAGE_BODY = 
+      "<env:Body>" +
+      "  <!-- Comment After Body -->" +
+      "  <typ:echoMessage xmlns:typ='http://org.jboss.test.ws/jbws1647/types'>" +
+      "    <!-- Comment After Wrapper -->" +
+      "    <String_1>My Message</String_1>" +
+      "    <!-- Comment After Parameter -->" +
+      "  </typ:echoMessage>" +
+      "  <!-- Comment Before Close Body -->" +
+      "</env:Body>";
       
-   public String getExpectedMessage()
+   public String getMessageBody()
    {
-      return MESSAGE;
+      return MESSAGE_BODY;
    }
 
 }

Modified: trunk/jbossws-core/src/test/java/org/jboss/test/ws/jaxrpc/jbws1647/JBWS1647DocumentTestCase.java
===================================================================
--- trunk/jbossws-core/src/test/java/org/jboss/test/ws/jaxrpc/jbws1647/JBWS1647DocumentTestCase.java	2007-06-02 21:44:36 UTC (rev 3398)
+++ trunk/jbossws-core/src/test/java/org/jboss/test/ws/jaxrpc/jbws1647/JBWS1647DocumentTestCase.java	2007-06-02 23:12:55 UTC (rev 3399)
@@ -33,7 +33,7 @@
  * @author darran.lofthouse at jboss.com
  * @since 15 May 2007
  */
-public class JBWS1647DocumentTestCase extends TestCaseBase
+public class JBWS1647DocumentTestCase extends JBWS1647TestBase
 {
 
    public static Test suite() throws Exception
@@ -43,10 +43,10 @@
 
    public String getMessage()
    {
-      return DocumentHandler.MESSAGE;
+      return "<env:Envelope xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'>" + DocumentHandler.MESSAGE_BODY + "</env:Envelope>";
    }
 
-   public String getToUrl()
+   public String getEndpointAddress()
    {
       return "http://" + getServerHost() + ":8080/jaxrpc-jbws1647-doclit/TestEndpoint";
    }

Modified: trunk/jbossws-core/src/test/java/org/jboss/test/ws/jaxrpc/jbws1647/JBWS1647RPCTestCase.java
===================================================================
--- trunk/jbossws-core/src/test/java/org/jboss/test/ws/jaxrpc/jbws1647/JBWS1647RPCTestCase.java	2007-06-02 21:44:36 UTC (rev 3398)
+++ trunk/jbossws-core/src/test/java/org/jboss/test/ws/jaxrpc/jbws1647/JBWS1647RPCTestCase.java	2007-06-02 23:12:55 UTC (rev 3399)
@@ -21,10 +21,10 @@
  */
 package org.jboss.test.ws.jaxrpc.jbws1647;
 
+import junit.framework.Test;
+
 import org.jboss.wsf.spi.test.JBossWSTestSetup;
 
-import junit.framework.Test;
-
 /**
  * Text Node Preservation For Messages Sent Across The Wire
  * 
@@ -33,7 +33,7 @@
  * @author darran.lofthouse at jboss.com
  * @since 14 May 2007
  */
-public class JBWS1647RPCTestCase extends TestCaseBase
+public class JBWS1647RPCTestCase extends JBWS1647TestBase
 {
 
    public static Test suite() throws Exception
@@ -43,10 +43,10 @@
 
    public String getMessage()
    {
-      return RpcHandler.MESSAGE;
+      return "<env:Envelope xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'>" + RpcHandler.MESSAGE_BODY + "</env:Envelope>";
    }
 
-   public String getToUrl()
+   public String getEndpointAddress()
    {
       return "http://" + getServerHost() + ":8080/jaxrpc-jbws1647-rpclit/TestEndpoint";
    }

Copied: trunk/jbossws-core/src/test/java/org/jboss/test/ws/jaxrpc/jbws1647/JBWS1647TestBase.java (from rev 3395, trunk/jbossws-core/src/test/java/org/jboss/test/ws/jaxrpc/jbws1647/TestCaseBase.java)
===================================================================
--- trunk/jbossws-core/src/test/java/org/jboss/test/ws/jaxrpc/jbws1647/JBWS1647TestBase.java	                        (rev 0)
+++ trunk/jbossws-core/src/test/java/org/jboss/test/ws/jaxrpc/jbws1647/JBWS1647TestBase.java	2007-06-02 23:12:55 UTC (rev 3399)
@@ -0,0 +1,58 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2007, 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.jaxrpc.jbws1647;
+
+import java.io.ByteArrayInputStream;
+
+import javax.xml.soap.MessageFactory;
+import javax.xml.soap.SOAPConnection;
+import javax.xml.soap.SOAPConnectionFactory;
+import javax.xml.soap.SOAPElement;
+import javax.xml.soap.SOAPMessage;
+
+import org.jboss.wsf.spi.test.JBossWSTest;
+
+/**
+ * 
+ * @author darran.lofthouse at jboss.com
+ * @since 15 May 2007
+ */
+public abstract class JBWS1647TestBase extends JBossWSTest
+{
+   public abstract String getMessage();
+
+   public abstract String getEndpointAddress();
+
+   public void testCall() throws Exception
+   {
+      MessageFactory msgFactory = MessageFactory.newInstance();
+      SOAPMessage soapMessage = msgFactory.createMessage(null, new ByteArrayInputStream(getMessage().getBytes()));
+
+      SOAPConnectionFactory conFactory = SOAPConnectionFactory.newInstance();
+      SOAPConnection con = conFactory.createConnection();
+      SOAPMessage resMessage = con.call(soapMessage, getEndpointAddress());
+
+      SOAPElement soapElement = (SOAPElement)resMessage.getSOAPBody().getChildElements().next();
+      assertEquals("echoMessageResponse", soapElement.getElementName().getLocalName());
+   }
+
+}

Modified: trunk/jbossws-core/src/test/java/org/jboss/test/ws/jaxrpc/jbws1647/RpcHandler.java
===================================================================
--- trunk/jbossws-core/src/test/java/org/jboss/test/ws/jaxrpc/jbws1647/RpcHandler.java	2007-06-02 21:44:36 UTC (rev 3398)
+++ trunk/jbossws-core/src/test/java/org/jboss/test/ws/jaxrpc/jbws1647/RpcHandler.java	2007-06-02 23:12:55 UTC (rev 3399)
@@ -29,26 +29,20 @@
 public class RpcHandler extends AbstractHandler
 {
 
-   public static final String MESSAGE = 
-      "<soapenv:Envelope xmlns:jbw='http://org.jboss.test.ws/jbws1647' xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/'>" +
-      "  <!-- Comment Before Header -->" +
-      "  <soapenv:Header></soapenv:Header>" +
-      "    <!-- Comment After Header, Before Body -->" +
-      "    <soapenv:Body>" +
-      "      <!-- Comment After Body -->" +
-      "      <jbw:echoMessage xmlns:jbw='http://org.jboss.test.ws/jbws1647'>" +
-      "        <!-- Comment After Operation -->" +
-      "        <String_1>My Message</String_1>" +
-      "        <!-- Comment After Parameter -->" +
-      "      </jbw:echoMessage>" +
-      "      <!-- Comment Before Close Body -->" +
-      "    </soapenv:Body>" +
-      "  <!-- Comment Before Close Envelope -->" +
-      "</soapenv:Envelope>";
+   public static final String MESSAGE_BODY = 
+      "<env:Body>" +
+      "  <!-- Comment After Body -->" +
+      "  <jbw:echoMessage xmlns:jbw='http://org.jboss.test.ws/jbws1647'>" +
+      "    <!-- Comment After Operation -->" +
+      "    <String_1>My Message</String_1>" +
+      "    <!-- Comment After Parameter -->" +
+      "  </jbw:echoMessage>" +
+      "  <!-- Comment Before Close Body -->" +
+      "</env:Body>";
    
-   public String getExpectedMessage()
+   public String getMessageBody()
    {
-      return MESSAGE;
+      return MESSAGE_BODY;
    }
 
 }

Deleted: trunk/jbossws-core/src/test/java/org/jboss/test/ws/jaxrpc/jbws1647/TestCaseBase.java
===================================================================
--- trunk/jbossws-core/src/test/java/org/jboss/test/ws/jaxrpc/jbws1647/TestCaseBase.java	2007-06-02 21:44:36 UTC (rev 3398)
+++ trunk/jbossws-core/src/test/java/org/jboss/test/ws/jaxrpc/jbws1647/TestCaseBase.java	2007-06-02 23:12:55 UTC (rev 3399)
@@ -1,58 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2007, 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.jaxrpc.jbws1647;
-
-import java.io.ByteArrayInputStream;
-
-import javax.xml.soap.MessageFactory;
-import javax.xml.soap.SOAPConnection;
-import javax.xml.soap.SOAPConnectionFactory;
-import javax.xml.soap.SOAPElement;
-import javax.xml.soap.SOAPMessage;
-
-import org.jboss.wsf.spi.test.JBossWSTest;
-
-/**
- * 
- * @author darran.lofthouse at jboss.com
- * @since 15 May 2007
- */
-public abstract class TestCaseBase extends JBossWSTest
-{
-   public abstract String getMessage();
-
-   public abstract String getToUrl();
-
-   public void testCall() throws Exception
-   {
-      MessageFactory msgFactory = MessageFactory.newInstance();
-      SOAPMessage soapMessage = msgFactory.createMessage(null, new ByteArrayInputStream(getMessage().getBytes()));
-
-      SOAPConnectionFactory conFactory = SOAPConnectionFactory.newInstance();
-      SOAPConnection con = conFactory.createConnection();
-      SOAPMessage resMessage = con.call(soapMessage, getToUrl());
-
-      SOAPElement soapElement = (SOAPElement)resMessage.getSOAPBody().getChildElements().next();
-      assertEquals("echoMessageResponse", soapElement.getElementName().getLocalName());
-   }
-
-}




More information about the jbossws-commits mailing list