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