You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by sc...@apache.org on 2006/08/12 18:49:21 UTC

svn commit: r431052 - in /webservices/axis2/trunk/java/modules/jaxws: ./ src/org/apache/axis2/jaxws/client/ src/org/apache/axis2/jaxws/i18n/ src/org/apache/axis2/jaxws/message/ src/org/apache/axis2/jaxws/message/databinding/ src/org/apache/axis2/jaxws/...

Author: scheu
Date: Sat Aug 12 09:49:20 2006
New Revision: 431052

URL: http://svn.apache.org/viewvc?rev=431052&view=rev
Log:
AXIS2-1017
Dispatch(SOAPMessage) initial support + validating testcase
Co-Contributors: Nikhil Thaker (first pass/testcase) and Rich Scheuerle (follow-on improvements/cleanup)

Added:
    webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/SOAPEnvelopeBlock.java
    webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/impl/SOAPEnvelopeBlockFactoryImpl.java
    webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/impl/SOAPEnvelopeBlockImpl.java
    webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/factory/SOAPEnvelopeBlockFactory.java
    webservices/axis2/trunk/java/modules/jaxws/test-resources/xml/
    webservices/axis2/trunk/java/modules/jaxws/test-resources/xml/soapmessage.xml
Modified:
    webservices/axis2/trunk/java/modules/jaxws/   (props changed)
    webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/client/XMLDispatch.java
    webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/i18n/resource.properties
    webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/Block.java
    webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/XMLPart.java
    webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/impl/   (props changed)
    webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/factory/MessageFactory.java
    webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/factory/XMLPartFactory.java
    webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/BlockImpl.java
    webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/MessageFactoryImpl.java
    webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/MessageImpl.java
    webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/XMLPartBase.java
    webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/XMLPartFactoryImpl.java
    webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/XMLPartImpl.java
    webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/XMLSpineImpl.java
    webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/registry/FactoryRegistry.java
    webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/   (props changed)
    webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/DispatchTestSuite.java

Propchange: webservices/axis2/trunk/java/modules/jaxws/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Sat Aug 12 09:49:20 2006
@@ -0,0 +1,2 @@
+
+target

Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/client/XMLDispatch.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/client/XMLDispatch.java?rev=431052&r1=431051&r2=431052&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/client/XMLDispatch.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/client/XMLDispatch.java Sat Aug 12 09:49:20 2006
@@ -17,7 +17,8 @@
 package org.apache.axis2.jaxws.client;
 
 import javax.xml.namespace.QName;
-import javax.xml.stream.XMLStreamException;
+import javax.xml.soap.SOAPEnvelope;
+import javax.xml.soap.SOAPMessage;
 import javax.xml.transform.Source;
 import javax.xml.ws.Service.Mode;
 
@@ -27,10 +28,10 @@
 import org.apache.axis2.jaxws.impl.AsyncListener;
 import org.apache.axis2.jaxws.message.Block;
 import org.apache.axis2.jaxws.message.Message;
-import org.apache.axis2.jaxws.message.MessageException;
 import org.apache.axis2.jaxws.message.Protocol;
 import org.apache.axis2.jaxws.message.factory.BlockFactory;
 import org.apache.axis2.jaxws.message.factory.MessageFactory;
+import org.apache.axis2.jaxws.message.factory.SOAPEnvelopeBlockFactory;
 import org.apache.axis2.jaxws.message.factory.SourceBlockFactory;
 import org.apache.axis2.jaxws.message.factory.XMLStringBlockFactory;
 import org.apache.axis2.jaxws.message.util.ProtocolUtil;
@@ -75,6 +76,7 @@
         }
         
         Block block = null;
+        
         blockFactoryType = getBlockFactory(value);
         BlockFactory factory = (BlockFactory) FactoryRegistry.getFactory(blockFactoryType);
         if (log.isDebugEnabled()) {
@@ -92,23 +94,24 @@
                 Protocol proto = ProtocolUtil.getProtocolForBinding(port.getBindingID());               
                 message = mf.create(proto);
                 message.setBodyBlock(0, block);
-            } catch (XMLStreamException e) {
-                e.printStackTrace();
-            } catch (MessageException e) {
-                e.printStackTrace();
+            } catch (Exception e) {
+            	throw ExceptionFactory.makeWebServiceException(e);
             }
         }
         else if (mode.equals(Mode.MESSAGE)) {
-            try {
-                //QName soapEnvQname = new QName("http://schemas.xmlsoap.org/soap/envelope/", "Envelope");
-                block = factory.createFrom(value, null, null);
-                
-                MessageFactory mf = (MessageFactory) FactoryRegistry.getFactory(MessageFactory.class);
-                message = mf.createFrom(block.getXMLStreamReader(true));
-            } catch (XMLStreamException e) {
-                e.printStackTrace();
-            } catch (MessageException e) {
-                e.printStackTrace();
+            try {
+            	MessageFactory mf = (MessageFactory) FactoryRegistry.getFactory(MessageFactory.class);
+            	// If the value contains just the xml data, then you can create the Message directly from the 
+            	// Block.  If the value contains attachments, you need to do more.  
+            	// TODO For now the only value that contains Attachments is SOAPMessage
+            	if (value instanceof SOAPMessage) {
+            		message = mf.createFrom((SOAPMessage) value);
+            	} else {
+            		block = factory.createFrom(value, null, null);
+            		message = mf.createFrom(block, null);
+            	}
+            } catch (Exception e) {
+            	throw ExceptionFactory.makeWebServiceException(e);
             }
         }
 
@@ -125,32 +128,32 @@
         
         try {
             if (mode.equals(Mode.PAYLOAD)) {
-                    BlockFactory factory = (BlockFactory) FactoryRegistry.getFactory(blockFactoryType);
-                    block = message.getBodyBlock(0, null, factory);
-            }
-            else if (mode.equals(Mode.MESSAGE)) {
-                    // TODO: Make this conversion more efficient
-                    OMElement messageOM = message.getAsOMElement();
-                    QName soapEnvQname = new QName("http://schemas.xmlsoap.org/soap/envelope/", "Envelope");
-                    
-                    XMLStringBlockFactory stringFactory = (XMLStringBlockFactory) FactoryRegistry.getFactory(XMLStringBlockFactory.class);
-                    Block stringBlock = stringFactory.createFrom(messageOM.toString(), null, soapEnvQname);
+				BlockFactory factory = (BlockFactory) FactoryRegistry
+						.getFactory(blockFactoryType);
+				block = message.getBodyBlock(0, null, factory);
+				value = block.getBusinessObject(true);
+				
+			} else if (mode.equals(Mode.MESSAGE)) {
+			   if (blockFactoryType.equals(SOAPEnvelopeBlockFactory.class)) {
+				   // This is an indication that we are in SOAPMessage Dispatch
+				   // Return the SOAPMessage
+				   value = message.getAsSOAPMessage();
+				   
+			   } else {
+				   // TODO: This doesn't seem right to me. We should not have an intermediate StringBlock.  
+				   // This is not performant. Scheu 
+				   OMElement messageOM = message.getAsOMElement();
+				   String stringValue = messageOM.toString();  
+				   QName soapEnvQname = new QName("http://schemas.xmlsoap.org/soap/envelope/", "Envelope");
                     
-                    BlockFactory factory = (BlockFactory) FactoryRegistry.getFactory(blockFactoryType);
-                    block = factory.createFrom(stringBlock, null);
-            }
-
-            if (log.isDebugEnabled()) {
-                if (block == null) {
-                    log.debug("Block type: " + block.getClass());
-                    log.debug("Block contents: " + block.traceString(""));
-                }
-                else {
-                    log.debug("A null block was created");
-                }
-            }
-
-            value = block.getBusinessObject(true);
+				   XMLStringBlockFactory stringFactory = (XMLStringBlockFactory) FactoryRegistry.getFactory(XMLStringBlockFactory.class);
+				   Block stringBlock = stringFactory.createFrom(stringValue, null, soapEnvQname);   
+				   BlockFactory factory = (BlockFactory) FactoryRegistry.getFactory(blockFactoryType);
+				   block = factory.createFrom(stringBlock, null);
+				   value = block.getBusinessObject(true);
+			   }
+			}
+            
         } catch (Exception e) {
             if (log.isDebugEnabled()) {
                 log.debug("An error occured while creating the block");
@@ -176,6 +179,14 @@
         else if (Source.class.isAssignableFrom(o.getClass())) {
             System.out.println(">> returning SourceBlockFactory");
             return SourceBlockFactory.class;
+        }
+        else if (SOAPMessage.class.isAssignableFrom(o.getClass())) {
+            System.out.println(">> returning SOAPMessageFactory");
+            return SOAPEnvelopeBlockFactory.class;
+        } 
+        else if (SOAPEnvelope.class.isAssignableFrom(o.getClass())) {
+            System.out.println(">> returning SOAPEnvelope");
+            return SOAPEnvelopeBlockFactory.class;
         }
         
         System.out.println(">> ERROR: Factory not found");

Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/i18n/resource.properties
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/i18n/resource.properties?rev=431052&r1=431051&r2=431052&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/i18n/resource.properties (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/i18n/resource.properties Sat Aug 12 09:49:20 2006
@@ -92,4 +92,5 @@
 JAXBWrapperErr5=Internal Assertion Error. Number of child names does not match the number of bean properties in JAXB class {0}.
 JAXBWrapperErr6=Internal Assertion Error. JAXB object {0} does not have a bean property named {1}.
 JAXBSourceNamespaceErr=The DOMSource must be Namespace Aware.
+AttachmentsNotSupported=SAAJ Attachments are not supported yet.
 protoNotFound00=An associated Protocol was not found for the binding {0}.

Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/Block.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/Block.java?rev=431052&r1=431051&r2=431052&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/Block.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/Block.java Sat Aug 12 09:49:20 2006
@@ -37,6 +37,9 @@
  * 	* BusinessObject
  * 	* StAX object
  * 
+ * Note that the whole Message can also be thought of as a Block.  Thus a Message
+ * can be createFrom a Block and written as a Block.
+ * 
  * In addition, each of the accessors has a consume parameter.  If
  * consume is true, the Block is no longer valid after the message is called.
  * (i.e. the implementation does not need to cache the information)

Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/XMLPart.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/XMLPart.java?rev=431052&r1=431051&r2=431052&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/XMLPart.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/XMLPart.java Sat Aug 12 09:49:20 2006
@@ -95,6 +95,20 @@
 	public OMElement getAsOMElement() throws MessageException;
 	
 	/**
+	 * getAsBlock
+	 * Get the entire xml part as a Block
+	 * The BlockFactory and object context are passed in to help create the 
+	 * proper kind of block.
+	 * 
+	 * @return Block
+	 * @throws MessageException
+	 */
+	public Block getAsBlock(
+			Object context, 
+			BlockFactory blockFactory)  
+		throws MessageException, XMLStreamException;
+	
+	/**
 	 * getNumBodyBlocks
 	 * @return number of body blocks
 	 * @throws MessageException

Added: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/SOAPEnvelopeBlock.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/SOAPEnvelopeBlock.java?rev=431052&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/SOAPEnvelopeBlock.java (added)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/SOAPEnvelopeBlock.java Sat Aug 12 09:49:20 2006
@@ -0,0 +1,28 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ * Copyright 2006 International Business Machines Corp.
+ *
+ * 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.axis2.jaxws.message.databinding;
+
+import org.apache.axis2.jaxws.message.Block;
+
+/**
+ * SOAPEnvelopeBlock
+ * Block represented by an SAAJ SOAPEnvelope. This kind of block is useful
+ * for building the initial Message
+ */
+public interface SOAPEnvelopeBlock extends Block {
+	
+}

Propchange: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/impl/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Sat Aug 12 09:49:20 2006
@@ -0,0 +1,3 @@
+
+SOAPEnvelopeBlockFactoryImpl.java
+SOAPEnvelopeBlockImpl.java

Added: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/impl/SOAPEnvelopeBlockFactoryImpl.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/impl/SOAPEnvelopeBlockFactoryImpl.java?rev=431052&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/impl/SOAPEnvelopeBlockFactoryImpl.java (added)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/impl/SOAPEnvelopeBlockFactoryImpl.java Sat Aug 12 09:49:20 2006
@@ -0,0 +1,46 @@
+/**
+ * 
+ */
+package org.apache.axis2.jaxws.message.databinding.impl;
+
+import javax.xml.namespace.QName;
+import javax.xml.soap.SOAPEnvelope;
+import javax.xml.stream.XMLStreamException;
+
+import org.apache.axiom.om.OMElement;
+import org.apache.axis2.jaxws.message.Block;
+import org.apache.axis2.jaxws.message.MessageException;
+import org.apache.axis2.jaxws.message.factory.SOAPEnvelopeBlockFactory;
+import org.apache.axis2.jaxws.message.impl.BlockFactoryImpl;
+
+
+/**
+ * Creates a SOAPEnvelopeBlock
+ */
+public class SOAPEnvelopeBlockFactoryImpl extends BlockFactoryImpl implements
+		SOAPEnvelopeBlockFactory {
+
+	/**
+	 * Default Constructor required for Factory 
+	 */
+	public SOAPEnvelopeBlockFactoryImpl() {
+		super();
+	}
+
+	/* (non-Javadoc)
+	 * @see org.apache.axis2.jaxws.message.factory.BlockFactory#createFrom(org.apache.axiom.om.OMElement, java.lang.Object, javax.xml.namespace.QName)
+	 */
+	public Block createFrom(OMElement omElement, Object context, QName qName)
+			throws XMLStreamException {		
+		return new SOAPEnvelopeBlockImpl(omElement, null, qName, this);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.apache.axis2.jaxws.message.factory.BlockFactory#createFrom(java.lang.Object, java.lang.Object, javax.xml.namespace.QName)
+	 */
+	public Block createFrom(Object businessObject, Object context, QName qName)
+			throws MessageException {
+		return new SOAPEnvelopeBlockImpl((SOAPEnvelope) businessObject, null, qName, this);
+	}
+
+}

Added: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/impl/SOAPEnvelopeBlockImpl.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/impl/SOAPEnvelopeBlockImpl.java?rev=431052&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/impl/SOAPEnvelopeBlockImpl.java (added)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/impl/SOAPEnvelopeBlockImpl.java Sat Aug 12 09:49:20 2006
@@ -0,0 +1,100 @@
+/**
+ * 
+ */
+package org.apache.axis2.jaxws.message.databinding.impl;
+
+import javax.xml.bind.JAXBContext;
+import javax.xml.namespace.QName;
+import javax.xml.soap.SOAPElement;
+import javax.xml.soap.SOAPEnvelope;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+
+import org.apache.axiom.om.OMElement;
+import org.apache.axis2.jaxws.message.Message;
+import org.apache.axis2.jaxws.message.MessageException;
+import org.apache.axis2.jaxws.message.databinding.SOAPEnvelopeBlock;
+import org.apache.axis2.jaxws.message.factory.BlockFactory;
+import org.apache.axis2.jaxws.message.factory.MessageFactory;
+import org.apache.axis2.jaxws.message.impl.BlockImpl;
+import org.apache.axis2.jaxws.message.util.SOAPElementReader;
+import org.apache.axis2.jaxws.registry.FactoryRegistry;
+
+/**
+ * 
+ *
+ */
+public class SOAPEnvelopeBlockImpl extends BlockImpl implements SOAPEnvelopeBlock {
+
+	/**
+	 * Called by SOAPEnvelopeBlockFactory
+	 * @param busObject
+	 * @param busContext
+	 * @param qName
+	 * @param factory
+	 */
+	public SOAPEnvelopeBlockImpl(Object busObject, Object busContext,
+			QName qName, BlockFactory factory) {
+		super(busObject, 
+				busContext, 
+				(qName==null) ? getQName((SOAPEnvelope)busObject): qName , 
+				factory);
+	}
+
+	/**
+	 * Called by SOAPEnvelopeBlockFactory
+	 * @param omElement
+	 * @param busContext
+	 * @param qName
+	 * @param factory
+	 */
+	public SOAPEnvelopeBlockImpl(OMElement omElement, Object busContext,
+			QName qName, BlockFactory factory) {
+		super(omElement, busContext, qName, factory);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.apache.axis2.jaxws.message.impl.BlockImpl#_getBOFromReader(javax.xml.stream.XMLStreamReader, java.lang.Object)
+	 */
+	@Override
+	protected Object _getBOFromReader(XMLStreamReader reader, Object busContext)
+			throws XMLStreamException, MessageException {
+		
+		// TODO Temporary solution.  The better way is to get an OM
+		// and convert with the SAAJConverter
+		MessageFactory mf = (MessageFactory) FactoryRegistry.getFactory(MessageFactory.class);
+		Message message = mf.createFrom(reader);
+		SOAPEnvelope env = message.getAsSOAPEnvelope();
+		this.setQName(getQName(env));
+		return env;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.apache.axis2.jaxws.message.impl.BlockImpl#_getReaderFromBO(java.lang.Object, java.lang.Object)
+	 */
+	@Override
+	protected XMLStreamReader _getReaderFromBO(Object busObj, Object busContext)
+			throws XMLStreamException, MessageException {
+		return new SOAPElementReader((SOAPElement)busObj);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.apache.axis2.jaxws.message.impl.BlockImpl#_outputFromBO(java.lang.Object, java.lang.Object, javax.xml.stream.XMLStreamWriter)
+	 */
+	@Override
+	protected void _outputFromBO(Object busObject, Object busContext,
+			XMLStreamWriter writer) throws XMLStreamException, MessageException {
+		XMLStreamReader reader = _getReaderFromBO(busObject, busContext);
+		_outputFromReader(reader, writer);	
+	}
+
+	/**
+	 * Get the QName of the envelope
+	 * @param env
+	 * @return QName
+	 */
+	private static QName getQName(SOAPEnvelope env) {
+		return new QName(env.getNamespaceURI(), env.getLocalName(),env.getPrefix());
+	}
+}

Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/factory/MessageFactory.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/factory/MessageFactory.java?rev=431052&r1=431051&r2=431052&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/factory/MessageFactory.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/factory/MessageFactory.java Sat Aug 12 09:49:20 2006
@@ -16,10 +16,13 @@
  */
 package org.apache.axis2.jaxws.message.factory;
 
+import javax.xml.namespace.QName;
+import javax.xml.soap.SOAPMessage;
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamReader;
 
 import org.apache.axiom.om.OMElement;
+import org.apache.axis2.jaxws.message.Block;
 import org.apache.axis2.jaxws.message.Message;
 import org.apache.axis2.jaxws.message.MessageException;
 import org.apache.axis2.jaxws.message.Protocol;
@@ -27,33 +30,50 @@
 /**
  * MessageFactory
  * 
- * Creates a Message object.  The two common patterns are:
+ * Creates a Message object.  The common patterns are:
  *   - Create an empty message for a specific protocol
- *   - Create a message sourced from OM (XMLStreamReader)
+ *   - Create a message with the xml sourced from OM (XMLStreamReader)
+ *   - Create a message (xml + attachments) from a SOAPMessage
  *   
  * The FactoryRegistry should be used to get access to the Factory
  * @see org.apache.axis2.jaxws.registry.FactoryRegistry
  */
 public interface MessageFactory {
 	/**
-	 * create Message from XMLStreamReader
+	 * create Message with the xml from the XMLStreamReader
 	 * @param reader XMLStreamReader
 	 * @throws XMLStreamException
 	 */
 	public Message createFrom(XMLStreamReader reader) throws XMLStreamException, MessageException;
 	
 	/**
-	 * createBlock from OMElement
+	 * create Message with the xml from the OMElement
 	 * @param omElement OMElement
 	 * @throws XMLStreamException
 	 */
 	public Message createFrom(OMElement omElement) throws XMLStreamException, MessageException;
 	
 	/**
+	 * create Message from a Block
+	 * @param block
+	 * @param context Associated Context or null
+	 * @throws XMLStreamException
+	 */
+	public Message createFrom(Block other, Object context) throws XMLStreamException, MessageException;
+
+	/**
+	 * create Message from SOAPMessage
+	 * The xml and attachments from the SOAPMessage are used to populate the new Message
+	 * @param SOAPMessage
+	 * @throws XMLStreamException, MessageException
+	 */
+	public Message createFrom(SOAPMessage message) throws XMLStreamException, MessageException;
+
+	
+	/**
 	 * create empty Message of the specified protocol
 	 * @param protocol
 	 * @throws XMLStreamException
 	 */
 	public Message create(Protocol protocol) throws XMLStreamException, MessageException;
-	
 }

Added: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/factory/SOAPEnvelopeBlockFactory.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/factory/SOAPEnvelopeBlockFactory.java?rev=431052&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/factory/SOAPEnvelopeBlockFactory.java (added)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/factory/SOAPEnvelopeBlockFactory.java Sat Aug 12 09:49:20 2006
@@ -0,0 +1,30 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ * Copyright 2006 International Business Machines Corp.
+ *
+ * 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.axis2.jaxws.message.factory;
+
+
+/**
+ * SOAPEnvelopeBlockFactory
+ * 
+ * Creates a SOAPEnvelopeBlock
+ * 
+ * The FactoryRegistry should be used to get access to the Factory
+ * @see org.apache.axis2.jaxws.registry.FactoryRegistry
+ */
+public interface SOAPEnvelopeBlockFactory extends BlockFactory {
+
+}

Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/factory/XMLPartFactory.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/factory/XMLPartFactory.java?rev=431052&r1=431051&r2=431052&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/factory/XMLPartFactory.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/factory/XMLPartFactory.java Sat Aug 12 09:49:20 2006
@@ -16,6 +16,7 @@
  */
 package org.apache.axis2.jaxws.message.factory;
 
+import javax.xml.soap.SOAPEnvelope;
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamReader;
 
@@ -49,6 +50,13 @@
 	 */
 	public XMLPart createFrom(OMElement omElement) throws XMLStreamException, MessageException;
 	
+	/**
+	 * create XMLPart from SOAPEnvelope
+	 * @param soapEnvelope SOAPEnvelope
+	 * @throws MessageException
+	 */
+	public XMLPart createFrom(SOAPEnvelope soapEnvelope) throws XMLStreamException, MessageException;
+
 	/**
 	 * create empty XMLPart of the specified protocol
 	 * @param protocol

Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/BlockImpl.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/BlockImpl.java?rev=431052&r1=431051&r2=431052&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/BlockImpl.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/BlockImpl.java Sat Aug 12 09:49:20 2006
@@ -40,7 +40,6 @@
  *   _getBOFromReader
  *   _getReaderFromBO
  *   _outputFromBO
- *   _getQName
  * 
  * In addtion, the derived class may want to override the following:
  *   _getBOFromBO ...if the BusinessObject is consumed when read (i.e. it is an InputSource)

Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/MessageFactoryImpl.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/MessageFactoryImpl.java?rev=431052&r1=431051&r2=431052&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/MessageFactoryImpl.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/MessageFactoryImpl.java Sat Aug 12 09:49:20 2006
@@ -16,15 +16,21 @@
  */
 package org.apache.axis2.jaxws.message.impl;
 
+import javax.xml.namespace.QName;
+import javax.xml.soap.SOAPMessage;
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamReader;
 
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.soap.SOAPEnvelope;
 import org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder;
+import org.apache.axis2.jaxws.ExceptionFactory;
+import org.apache.axis2.jaxws.i18n.Messages;
+import org.apache.axis2.jaxws.message.Block;
 import org.apache.axis2.jaxws.message.Message;
 import org.apache.axis2.jaxws.message.MessageException;
 import org.apache.axis2.jaxws.message.Protocol;
+import org.apache.axis2.jaxws.message.databinding.SOAPEnvelopeBlock;
 import org.apache.axis2.jaxws.message.factory.MessageFactory;
 
 /**
@@ -60,6 +66,34 @@
 	 */
 	public Message create(Protocol protocol) throws XMLStreamException, MessageException {
 		return new MessageImpl(protocol);
+	}
+
+
+	/* (non-Javadoc)
+	 * @see org.apache.axis2.jaxws.message.factory.MessageFactory#createFrom(javax.xml.soap.SOAPMessage)
+	 */
+	public Message createFrom(SOAPMessage message) throws XMLStreamException, MessageException {
+		try {
+			Message m = new MessageImpl(message.getSOAPPart().getEnvelope());
+			if (message.countAttachments() > 0) {
+				throw ExceptionFactory.makeMessageException(Messages.getMessage("AttachmentsNotSupported"));
+			}
+			return m;
+		} catch (Exception e) {
+			throw ExceptionFactory.makeMessageException(e);
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.apache.axis2.jaxws.message.factory.MessageFactory#createFrom(org.apache.axis2.jaxws.message.Block, java.lang.Object)
+	 */
+	public Message createFrom(Block block, Object context) throws XMLStreamException, MessageException {
+		
+		// Small optimization to quickly consider the SOAPEnvelope case
+		if (block instanceof SOAPEnvelopeBlock) {
+			return new MessageImpl((SOAPEnvelope) block.getBusinessObject(true));
+		}
+		return createFrom(block.getXMLStreamReader(true));
 	}
 
 }

Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/MessageImpl.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/MessageImpl.java?rev=431052&r1=431051&r2=431052&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/MessageImpl.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/MessageImpl.java Sat Aug 12 09:49:20 2006
@@ -16,9 +16,13 @@
  */
 package org.apache.axis2.jaxws.message.impl;
 
+import java.io.ByteArrayInputStream;
 import java.util.ArrayList;
 import java.util.List;
 
+import javax.xml.soap.MessageFactory;
+import javax.xml.soap.MimeHeaders;
+import javax.xml.soap.SOAPEnvelope;
 import javax.xml.soap.SOAPMessage;
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamReader;
@@ -37,6 +41,8 @@
 import org.apache.axis2.jaxws.message.factory.XMLPartFactory;
 import org.apache.axis2.jaxws.registry.FactoryRegistry;
 
+import com.ibm.jvm.util.ByteArrayOutputStream;
+
 /**
  * MessageImpl
  * A Message is an XML part + Attachments.
@@ -76,13 +82,65 @@
 		xmlPart = factory.createFrom(root);
 		protocol = xmlPart.getProtocol();
 	}
+	
+	/**
+	 * Message is constructed by the MessageFactory.
+	 * This constructor creates a message from the specified root.
+	 * @param root
+	 */
+	MessageImpl(SOAPEnvelope root) throws MessageException, XMLStreamException  {
+		XMLPartFactory factory = (XMLPartFactory) FactoryRegistry.getFactory(XMLPartFactory.class);
+		xmlPart = factory.createFrom(root);
+		protocol = xmlPart.getProtocol();
+	}
 
 	/* (non-Javadoc)
 	 * @see org.apache.axis2.jaxws.message.Message#getAsSOAPMessage()
 	 */
 	public SOAPMessage getAsSOAPMessage() throws MessageException {
-		// TODO Missing implementation
-		throw ExceptionFactory.makeMessageException(Messages.getMessage("MethodNotImplemented", "MessageImpl.getAsSOAPMessage()"));
+
+		// TODO: 
+		// This is a non performant way to create SOAPMessage. I will serialize
+		// the xmlpart content and then create an InputStream of byte.
+		// Finally create SOAPMessage using this InputStream.
+		// The real solution may involve using non-spec, implementation
+		// constructors to create a Message from an Envelope
+		try {
+			// Get OMElement from XMLPart.
+			OMElement element = xmlPart.getAsOMElement();
+			ByteArrayOutputStream outStream = new ByteArrayOutputStream();
+			element.serialize(outStream);
+
+			// Create InputStream
+			ByteArrayInputStream inStream = new ByteArrayInputStream(outStream
+					.toByteArray());
+			MessageFactory mf = MessageFactory.newInstance();
+
+			// Create soapMessage object from Message Factory using the input
+			// stream created from OM.
+
+			// TODO should we read the MIME Header from JAXWS MessageContext.
+			// For now I will create a default header
+			MimeHeaders defaultHeader = new MimeHeaders();
+
+			// FIXME: Need to toggle based on SOAP 1.1 or SOAP 1.2
+			defaultHeader.addHeader("Content-type", "text/xml; charset=UTF-8");
+			SOAPMessage soapMessage = mf.createMessage(defaultHeader, inStream);
+			return soapMessage;
+		} catch (Exception e) {
+			throw ExceptionFactory.makeMessageException(e);
+		}
+
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.apache.axis2.jaxws.message.XMLPart#getAsBlock(java.lang.Object,
+	 *      org.apache.axis2.jaxws.message.factory.BlockFactory)
+	 */
+	public Block getAsBlock(Object context, BlockFactory blockFactory) throws MessageException, XMLStreamException {
+		return xmlPart.getAsBlock(context, blockFactory);
 	}
 
 	/* (non-Javadoc)

Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/XMLPartBase.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/XMLPartBase.java?rev=431052&r1=431051&r2=431052&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/XMLPartBase.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/XMLPartBase.java Sat Aug 12 09:49:20 2006
@@ -18,6 +18,7 @@
 
 import javax.xml.namespace.QName;
 import javax.xml.soap.SOAPEnvelope;
+import javax.xml.soap.SOAPFactory;
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamReader;
 import javax.xml.stream.XMLStreamWriter;
@@ -33,6 +34,7 @@
 import org.apache.axis2.jaxws.message.Protocol;
 import org.apache.axis2.jaxws.message.XMLPart;
 import org.apache.axis2.jaxws.message.factory.BlockFactory;
+import org.apache.axis2.jaxws.message.factory.SOAPEnvelopeBlockFactory;
 
 /**
  * XMLPartBase class for an XMLPart
@@ -125,6 +127,25 @@
 		}
 	}
 	
+	/**
+	 * XMLPart should be constructed via the XMLPartFactory.
+	 * This constructor creates an XMLPart from the specified root.
+	 * @param root
+	 * @throws MessageException
+	 */
+	XMLPartBase(SOAPEnvelope root) throws MessageException {
+		content = root;
+		contentType = SOAPENVELOPE;
+		String ns = root.getNamespaceURI();
+		if (ns.equals(SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI)) {
+			protocol = Protocol.soap11;
+		} else if (ns.equals(SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI)) {
+			protocol = Protocol.soap12;
+		} else {
+			throw ExceptionFactory.makeMessageException(Messages.getMessage("RESTIsNotSupported"));
+		}
+	}
+	
 	private void setContent(Object content, int contentType) {
 		this.content = content;
 		this.contentType = contentType;
@@ -193,6 +214,25 @@
 
 	public SOAPEnvelope getAsSOAPEnvelope() throws MessageException {
 		return getContentAsSOAPEnvelope();
+	}
+
+	/* (non-Javadoc)
+	 * @see org.apache.axis2.jaxws.message.XMLPart#getAsBlock(java.lang.Object, org.apache.axis2.jaxws.message.factory.BlockFactory)
+	 */
+	public Block getAsBlock(Object context, BlockFactory blockFactory) throws MessageException, XMLStreamException {
+		
+		// Get the content as the specfied block.  There is some optimization here to prevent unnecessary copies.
+		// More optimization may be added later.
+		Block block = null;
+		if (contentType == OM) {
+			block = blockFactory.createFrom((OMElement) content, context, null);
+		} else if (contentType == SOAPENVELOPE && 
+			blockFactory instanceof SOAPEnvelopeBlockFactory)	{
+			block = blockFactory.createFrom((SOAPEnvelope) content, null, null );
+		} else {
+			block = blockFactory.createFrom(getAsOMElement(), null, null);
+		}
+		return block;
 	}
 
 	public Protocol getProtocol() {

Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/XMLPartFactoryImpl.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/XMLPartFactoryImpl.java?rev=431052&r1=431051&r2=431052&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/XMLPartFactoryImpl.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/XMLPartFactoryImpl.java Sat Aug 12 09:49:20 2006
@@ -62,4 +62,11 @@
 		return new XMLPartImpl(protocol);
 	}
 
+	/* (non-Javadoc)
+	 * @see org.apache.axis2.jaxws.message.factory.XMLPartFactory#createFrom(javax.xml.soap.SOAPEnvelope)
+	 */
+	public XMLPart createFrom(javax.xml.soap.SOAPEnvelope soapEnvelope) throws XMLStreamException, MessageException {
+		return new XMLPartImpl(soapEnvelope);
+	}
+
 }

Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/XMLPartImpl.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/XMLPartImpl.java?rev=431052&r1=431051&r2=431052&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/XMLPartImpl.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/XMLPartImpl.java Sat Aug 12 09:49:20 2006
@@ -59,6 +59,16 @@
 		super(root);
 	}
 	
+	/**
+	 * XMLPart should be constructed via the XMLPartFactory.
+	 * This constructor creates an XMLPart from the specified root.
+	 * @param root
+	 * @throws MessageException
+	 */
+	XMLPartImpl(SOAPEnvelope root) throws MessageException {
+		super(root);
+	}
+	
 	@Override
 	protected OMElement _convertSE2OM(SOAPEnvelope se) throws MessageException {
 		return getSAAJConverter().toOM(se);

Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/XMLSpineImpl.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/XMLSpineImpl.java?rev=431052&r1=431051&r2=431052&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/XMLSpineImpl.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/XMLSpineImpl.java Sat Aug 12 09:49:20 2006
@@ -221,6 +221,12 @@
 	public OMElement getAsOMElement() throws MessageException {
 		throw ExceptionFactory.makeMessageInternalException(Messages.getMessage("NeverCalled", "XMLSpineImpl.getAsOMElement()"), null);
 	}
+	
+	
+
+	public Block getAsBlock(Object context, BlockFactory blockFactory) throws MessageException, XMLStreamException {
+		throw ExceptionFactory.makeMessageInternalException(Messages.getMessage("NeverCalled", "XMLSpineImpl.getAsBlock()"), null);
+	}
 
 	/* (non-Javadoc)
 	 * @see org.apache.axis2.jaxws.message.XMLPart#getNumBodyBlocks()

Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/registry/FactoryRegistry.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/registry/FactoryRegistry.java?rev=431052&r1=431051&r2=431052&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/registry/FactoryRegistry.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/registry/FactoryRegistry.java Sat Aug 12 09:49:20 2006
@@ -24,12 +24,14 @@
 import org.apache.axis2.jaxws.client.factory.ProxyHandlerFactory;
 import org.apache.axis2.jaxws.message.databinding.impl.JAXBBlockFactoryImpl;
 import org.apache.axis2.jaxws.message.databinding.impl.OMBlockFactoryImpl;
+import org.apache.axis2.jaxws.message.databinding.impl.SOAPEnvelopeBlockFactoryImpl;
 import org.apache.axis2.jaxws.message.databinding.impl.SourceBlockFactoryImpl;
 import org.apache.axis2.jaxws.message.databinding.impl.XMLStringBlockFactoryImpl;
 import org.apache.axis2.jaxws.message.factory.JAXBBlockFactory;
 import org.apache.axis2.jaxws.message.factory.MessageFactory;
 import org.apache.axis2.jaxws.message.factory.OMBlockFactory;
 import org.apache.axis2.jaxws.message.factory.SAAJConverterFactory;
+import org.apache.axis2.jaxws.message.factory.SOAPEnvelopeBlockFactory;
 import org.apache.axis2.jaxws.message.factory.SourceBlockFactory;
 import org.apache.axis2.jaxws.message.factory.XMLPartFactory;
 import org.apache.axis2.jaxws.message.factory.XMLStringBlockFactory;
@@ -50,6 +52,7 @@
 		table.put(JAXBBlockFactory.class, new JAXBBlockFactoryImpl());
 		table.put(OMBlockFactory.class, new OMBlockFactoryImpl());
 		table.put(SourceBlockFactory.class, new SourceBlockFactoryImpl());
+		table.put(SOAPEnvelopeBlockFactory.class, new SOAPEnvelopeBlockFactoryImpl());
 		table.put(MessageFactory.class, new MessageFactoryImpl());
 		table.put(XMLPartFactory.class, new XMLPartFactoryImpl());
 		table.put(SAAJConverterFactory.class, new SAAJConverterFactoryImpl());

Added: webservices/axis2/trunk/java/modules/jaxws/test-resources/xml/soapmessage.xml
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/test-resources/xml/soapmessage.xml?rev=431052&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/test-resources/xml/soapmessage.xml (added)
+++ webservices/axis2/trunk/java/modules/jaxws/test-resources/xml/soapmessage.xml Sat Aug 12 09:49:20 2006
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?> 
+	<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
+ 		<soap:Body> 
+			<ns2:invoke xmlns:ns2="http://org.test.soapmessage"><invoke_str>some request</invoke_str></ns2:invoke>
+		</soap:Body>
+	</soap:Envelope>
\ No newline at end of file

Propchange: webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Sat Aug 12 09:49:20 2006
@@ -0,0 +1,2 @@
+
+SOAPMessageDispatch.java

Modified: webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/DispatchTestSuite.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/DispatchTestSuite.java?rev=431052&r1=431051&r2=431052&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/DispatchTestSuite.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/DispatchTestSuite.java Sat Aug 12 09:49:20 2006
@@ -31,8 +31,7 @@
         suite.addTestSuite(StreamSourceDispatch.class);
         suite.addTestSuite(DOMSourceDispatch.class);
         suite.addTestSuite(SAXSourceDispatch.class);
-        // FIXME: Add this test in
-        
+        suite.addTestSuite(SOAPMessageDispatch.class);
         suite.addTestSuite(JAXBDispatch.class);
         suite.addTestSuite(JAXBSourceDispatch.class);
         return suite;



---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org