You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commons-dev@ws.apache.org by ch...@apache.org on 2006/03/15 08:09:07 UTC
svn commit: r385985 - in /webservices/commons/modules/axiom:
src/org/apache/ws/commons/attachments/ src/org/apache/ws/commons/om/
src/org/apache/ws/commons/om/impl/ src/org/apache/ws/commons/om/impl/llom/
src/org/apache/ws/commons/om/impl/llom/util/ sr...
Author: chinthaka
Date: Tue Mar 14 23:09:05 2006
New Revision: 385985
URL: http://svn.apache.org/viewcvs?rev=385985&view=rev
Log:
removing SOAPLinkedListImplFactory.
Added:
webservices/commons/modules/axiom/test/org/apache/ws/commons/soap/SOAPFactoryTest.java
Removed:
webservices/commons/modules/axiom/src/org/apache/ws/commons/soap/impl/llom/factory/
Modified:
webservices/commons/modules/axiom/src/org/apache/ws/commons/attachments/MIMEHelper.java
webservices/commons/modules/axiom/src/org/apache/ws/commons/om/OMAbstractFactory.java
webservices/commons/modules/axiom/src/org/apache/ws/commons/om/impl/MIMEOutputUtils.java
webservices/commons/modules/axiom/src/org/apache/ws/commons/om/impl/llom/OMNodeImpl.java
webservices/commons/modules/axiom/src/org/apache/ws/commons/om/impl/llom/OMSerializerUtil.java
webservices/commons/modules/axiom/src/org/apache/ws/commons/om/impl/llom/OMTextImpl.java
webservices/commons/modules/axiom/src/org/apache/ws/commons/om/impl/llom/util/XMLComparator.java
webservices/commons/modules/axiom/src/org/apache/ws/commons/om/util/Base64.java
webservices/commons/modules/axiom/src/org/apache/ws/commons/soap/impl/llom/SOAPEnvelopeImpl.java
webservices/commons/modules/axiom/src/org/apache/ws/commons/soap/impl/llom/SOAPFaultImpl.java
webservices/commons/modules/axiom/src/org/apache/ws/commons/soap/impl/llom/SOAPFaultTextImpl.java
webservices/commons/modules/axiom/src/org/apache/ws/commons/soap/impl/llom/builder/StAXSOAPModelBuilder.java
webservices/commons/modules/axiom/src/org/apache/ws/commons/soap/impl/llom/soap11/SOAP11Factory.java
webservices/commons/modules/axiom/src/org/apache/ws/commons/soap/impl/llom/soap12/SOAP12Factory.java
Modified: webservices/commons/modules/axiom/src/org/apache/ws/commons/attachments/MIMEHelper.java
URL: http://svn.apache.org/viewcvs/webservices/commons/modules/axiom/src/org/apache/ws/commons/attachments/MIMEHelper.java?rev=385985&r1=385984&r2=385985&view=diff
==============================================================================
--- webservices/commons/modules/axiom/src/org/apache/ws/commons/attachments/MIMEHelper.java (original)
+++ webservices/commons/modules/axiom/src/org/apache/ws/commons/attachments/MIMEHelper.java Tue Mar 14 23:09:05 2006
@@ -16,10 +16,10 @@
package org.apache.ws.commons.attachments;
-import org.apache.ws.commons.om.OMException;
-import org.apache.ws.commons.om.impl.MTOMConstants;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.ws.commons.om.OMException;
+import org.apache.ws.commons.om.impl.MTOMConstants;
import javax.activation.DataHandler;
import javax.mail.MessagingException;
Modified: webservices/commons/modules/axiom/src/org/apache/ws/commons/om/OMAbstractFactory.java
URL: http://svn.apache.org/viewcvs/webservices/commons/modules/axiom/src/org/apache/ws/commons/om/OMAbstractFactory.java?rev=385985&r1=385984&r2=385985&view=diff
==============================================================================
--- webservices/commons/modules/axiom/src/org/apache/ws/commons/om/OMAbstractFactory.java (original)
+++ webservices/commons/modules/axiom/src/org/apache/ws/commons/om/OMAbstractFactory.java Tue Mar 14 23:09:05 2006
@@ -17,7 +17,6 @@
package org.apache.ws.commons.om;
import org.apache.ws.commons.soap.SOAPFactory;
-import org.apache.ws.commons.soap.impl.llom.factory.SOAPLinkedListImplFactory;
public class OMAbstractFactory {
public static final String OM_FACTORY_NAME_PROPERTY = "om.factory";
@@ -107,17 +106,4 @@
return FactoryFinder.findSOAP12Factory(classLoader);
}
- /**
- * WARNING - DO NOT USE THIS METHOD !!!!!.
- * This method is used in the case where we do not know the correct SOAP version to be used.
- * We can do some operation using the factory returned from this, without knowing the SOAP version.
- * But most of the methods have not been implemented.
- * We use this in the builder, where we want to first create the SOAP envelope to get the SOAP version.
- * So this method is to solve the chicken and egg problem, we have. If you do not know the SOAP version to be used
- * to process a particluar SOAP message you have recd, use this method to buid the SOAP envelope, and then extract the SOAP
- * version from that envlope and switch to the proper factory using that.
- */
- public static SOAPFactory getDefaultSOAPFactory() {
- return new SOAPLinkedListImplFactory();
- }
}
Modified: webservices/commons/modules/axiom/src/org/apache/ws/commons/om/impl/MIMEOutputUtils.java
URL: http://svn.apache.org/viewcvs/webservices/commons/modules/axiom/src/org/apache/ws/commons/om/impl/MIMEOutputUtils.java?rev=385985&r1=385984&r2=385985&view=diff
==============================================================================
--- webservices/commons/modules/axiom/src/org/apache/ws/commons/om/impl/MIMEOutputUtils.java (original)
+++ webservices/commons/modules/axiom/src/org/apache/ws/commons/om/impl/MIMEOutputUtils.java Tue Mar 14 23:09:05 2006
@@ -19,9 +19,9 @@
import org.apache.ws.commons.om.OMException;
import org.apache.ws.commons.om.OMText;
+import javax.activation.DataHandler;
import javax.mail.MessagingException;
import javax.mail.internet.MimeBodyPart;
-import javax.activation.DataHandler;
import java.io.IOException;
import java.io.OutputStream;
import java.io.StringWriter;
Modified: webservices/commons/modules/axiom/src/org/apache/ws/commons/om/impl/llom/OMNodeImpl.java
URL: http://svn.apache.org/viewcvs/webservices/commons/modules/axiom/src/org/apache/ws/commons/om/impl/llom/OMNodeImpl.java?rev=385985&r1=385984&r2=385985&view=diff
==============================================================================
--- webservices/commons/modules/axiom/src/org/apache/ws/commons/om/impl/llom/OMNodeImpl.java (original)
+++ webservices/commons/modules/axiom/src/org/apache/ws/commons/om/impl/llom/OMNodeImpl.java Tue Mar 14 23:09:05 2006
@@ -16,22 +16,16 @@
package org.apache.ws.commons.om.impl.llom;
-import java.io.OutputStream;
-import java.io.Writer;
+import org.apache.ws.commons.om.*;
+import org.apache.ws.commons.om.impl.OMContainerEx;
+import org.apache.ws.commons.om.impl.OMNodeEx;
+import org.apache.ws.commons.om.impl.OMOutputImpl;
import javax.xml.stream.XMLOutputFactory;
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamWriter;
-
-import org.apache.ws.commons.om.OMContainer;
-import org.apache.ws.commons.om.OMException;
-import org.apache.ws.commons.om.OMFactory;
-import org.apache.ws.commons.om.OMNode;
-import org.apache.ws.commons.om.OMOutputFormat;
-import org.apache.ws.commons.om.OMXMLParserWrapper;
-import org.apache.ws.commons.om.impl.OMContainerEx;
-import org.apache.ws.commons.om.impl.OMNodeEx;
-import org.apache.ws.commons.om.impl.OMOutputImpl;
+import java.io.OutputStream;
+import java.io.Writer;
/**
* Class OMNodeImpl
Modified: webservices/commons/modules/axiom/src/org/apache/ws/commons/om/impl/llom/OMSerializerUtil.java
URL: http://svn.apache.org/viewcvs/webservices/commons/modules/axiom/src/org/apache/ws/commons/om/impl/llom/OMSerializerUtil.java?rev=385985&r1=385984&r2=385985&view=diff
==============================================================================
--- webservices/commons/modules/axiom/src/org/apache/ws/commons/om/impl/llom/OMSerializerUtil.java (original)
+++ webservices/commons/modules/axiom/src/org/apache/ws/commons/om/impl/llom/OMSerializerUtil.java Tue Mar 14 23:09:05 2006
@@ -193,11 +193,11 @@
serializeEndpart(omOutput);
}
- public static void serializeByPullStream(OMElement element, org.apache.ws.commons.om.impl.OMOutputImpl omOutput) throws XMLStreamException {
+ public static void serializeByPullStream(OMElement element, OMOutputImpl omOutput) throws XMLStreamException {
serializeByPullStream(element, omOutput, false);
}
- public static void serializeByPullStream(OMElement element, org.apache.ws.commons.om.impl.OMOutputImpl omOutput, boolean cache) throws XMLStreamException {
+ public static void serializeByPullStream(OMElement element, OMOutputImpl omOutput, boolean cache) throws XMLStreamException {
StreamingOMSerializer streamingOMSerializer = new StreamingOMSerializer();
if (cache) {
streamingOMSerializer.serialize(element.getXMLStreamReader(),
Modified: webservices/commons/modules/axiom/src/org/apache/ws/commons/om/impl/llom/OMTextImpl.java
URL: http://svn.apache.org/viewcvs/webservices/commons/modules/axiom/src/org/apache/ws/commons/om/impl/llom/OMTextImpl.java?rev=385985&r1=385984&r2=385985&view=diff
==============================================================================
--- webservices/commons/modules/axiom/src/org/apache/ws/commons/om/impl/llom/OMTextImpl.java (original)
+++ webservices/commons/modules/axiom/src/org/apache/ws/commons/om/impl/llom/OMTextImpl.java Tue Mar 14 23:09:05 2006
@@ -17,18 +17,11 @@
package org.apache.ws.commons.om.impl.llom;
-import org.apache.ws.commons.om.OMAttribute;
-import org.apache.ws.commons.om.OMConstants;
-import org.apache.ws.commons.om.OMElement;
-import org.apache.ws.commons.om.OMException;
-import org.apache.ws.commons.om.OMFactory;
-import org.apache.ws.commons.om.OMNamespace;
-import org.apache.ws.commons.om.OMText;
-import org.apache.ws.commons.om.OMXMLParserWrapper;
-import org.apache.ws.commons.om.util.Base64;
-import org.apache.ws.commons.om.util.UUIDGenerator;
+import org.apache.ws.commons.om.*;
import org.apache.ws.commons.om.impl.OMOutputImpl;
import org.apache.ws.commons.om.impl.llom.mtom.MTOMStAXSOAPModelBuilder;
+import org.apache.ws.commons.om.util.Base64;
+import org.apache.ws.commons.om.util.UUIDGenerator;
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamWriter;
Modified: webservices/commons/modules/axiom/src/org/apache/ws/commons/om/impl/llom/util/XMLComparator.java
URL: http://svn.apache.org/viewcvs/webservices/commons/modules/axiom/src/org/apache/ws/commons/om/impl/llom/util/XMLComparator.java?rev=385985&r1=385984&r2=385985&view=diff
==============================================================================
--- webservices/commons/modules/axiom/src/org/apache/ws/commons/om/impl/llom/util/XMLComparator.java (original)
+++ webservices/commons/modules/axiom/src/org/apache/ws/commons/om/impl/llom/util/XMLComparator.java Tue Mar 14 23:09:05 2006
@@ -16,13 +16,13 @@
package org.apache.ws.commons.om.impl.llom.util;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import org.apache.ws.commons.om.OMAttribute;
import org.apache.ws.commons.om.OMElement;
import org.apache.ws.commons.om.OMNamespace;
import org.apache.ws.commons.om.OMNode;
import org.apache.ws.commons.om.impl.llom.exception.XMLComparisonException;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
import java.util.Iterator;
import java.util.Vector;
Modified: webservices/commons/modules/axiom/src/org/apache/ws/commons/om/util/Base64.java
URL: http://svn.apache.org/viewcvs/webservices/commons/modules/axiom/src/org/apache/ws/commons/om/util/Base64.java?rev=385985&r1=385984&r2=385985&view=diff
==============================================================================
--- webservices/commons/modules/axiom/src/org/apache/ws/commons/om/util/Base64.java (original)
+++ webservices/commons/modules/axiom/src/org/apache/ws/commons/om/util/Base64.java Tue Mar 14 23:09:05 2006
@@ -1,7 +1,7 @@
package org.apache.ws.commons.om.util;
-import java.io.OutputStream;
import java.io.IOException;
+import java.io.OutputStream;
import java.io.Writer;
/*
Modified: webservices/commons/modules/axiom/src/org/apache/ws/commons/soap/impl/llom/SOAPEnvelopeImpl.java
URL: http://svn.apache.org/viewcvs/webservices/commons/modules/axiom/src/org/apache/ws/commons/soap/impl/llom/SOAPEnvelopeImpl.java?rev=385985&r1=385984&r2=385985&view=diff
==============================================================================
--- webservices/commons/modules/axiom/src/org/apache/ws/commons/soap/impl/llom/SOAPEnvelopeImpl.java (original)
+++ webservices/commons/modules/axiom/src/org/apache/ws/commons/soap/impl/llom/SOAPEnvelopeImpl.java Tue Mar 14 23:09:05 2006
@@ -16,23 +16,9 @@
package org.apache.ws.commons.soap.impl.llom;
-import org.apache.ws.commons.om.OMAbstractFactory;
-import org.apache.ws.commons.om.OMConstants;
-import org.apache.ws.commons.om.OMElement;
-import org.apache.ws.commons.om.OMException;
-import org.apache.ws.commons.om.OMNamespace;
-import org.apache.ws.commons.om.OMNode;
-import org.apache.ws.commons.om.OMXMLParserWrapper;
+import org.apache.ws.commons.om.*;
import org.apache.ws.commons.om.impl.OMOutputImpl;
-import org.apache.ws.commons.soap.SOAP11Constants;
-import org.apache.ws.commons.soap.SOAP12Constants;
-import org.apache.ws.commons.soap.SOAPBody;
-import org.apache.ws.commons.soap.SOAPConstants;
-import org.apache.ws.commons.soap.SOAPEnvelope;
-import org.apache.ws.commons.soap.SOAPFactory;
-import org.apache.ws.commons.soap.SOAPHeader;
-import org.apache.ws.commons.soap.SOAPProcessingException;
-import org.apache.ws.commons.soap.impl.llom.factory.SOAPLinkedListImplFactory;
+import org.apache.ws.commons.soap.*;
import javax.xml.namespace.QName;
import javax.xml.stream.XMLStreamException;
@@ -85,7 +71,7 @@
}
private void inferFactory() {
- if (factory instanceof SOAPLinkedListImplFactory && ns != null) {
+ if (ns != null) {
if (SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI.equals(ns.getName())) {
factory = OMAbstractFactory.getSOAP12Factory();
} else if (SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI.equals(ns.getName())) {
Modified: webservices/commons/modules/axiom/src/org/apache/ws/commons/soap/impl/llom/SOAPFaultImpl.java
URL: http://svn.apache.org/viewcvs/webservices/commons/modules/axiom/src/org/apache/ws/commons/soap/impl/llom/SOAPFaultImpl.java?rev=385985&r1=385984&r2=385985&view=diff
==============================================================================
--- webservices/commons/modules/axiom/src/org/apache/ws/commons/soap/impl/llom/SOAPFaultImpl.java (original)
+++ webservices/commons/modules/axiom/src/org/apache/ws/commons/soap/impl/llom/SOAPFaultImpl.java Tue Mar 14 23:09:05 2006
@@ -16,34 +16,18 @@
package org.apache.ws.commons.soap.impl.llom;
-import java.io.PrintWriter;
-import java.io.StringWriter;
-import java.util.Iterator;
-
-import javax.xml.namespace.QName;
-import javax.xml.stream.XMLStreamException;
-
-import org.apache.ws.commons.om.OMConstants;
-import org.apache.ws.commons.om.OMElement;
-import org.apache.ws.commons.om.OMException;
-import org.apache.ws.commons.om.OMNamespace;
-import org.apache.ws.commons.om.OMNode;
-import org.apache.ws.commons.om.OMXMLParserWrapper;
+import org.apache.ws.commons.om.*;
import org.apache.ws.commons.om.impl.OMNodeEx;
import org.apache.ws.commons.om.impl.llom.OMElementImpl;
import org.apache.ws.commons.om.impl.llom.OMSerializerUtil;
import org.apache.ws.commons.om.impl.llom.serialize.StreamWriterToContentHandlerConverter;
-import org.apache.ws.commons.soap.SOAP12Constants;
-import org.apache.ws.commons.soap.SOAPBody;
-import org.apache.ws.commons.soap.SOAPConstants;
-import org.apache.ws.commons.soap.SOAPFactory;
-import org.apache.ws.commons.soap.SOAPFault;
-import org.apache.ws.commons.soap.SOAPFaultCode;
-import org.apache.ws.commons.soap.SOAPFaultDetail;
-import org.apache.ws.commons.soap.SOAPFaultNode;
-import org.apache.ws.commons.soap.SOAPFaultReason;
-import org.apache.ws.commons.soap.SOAPFaultRole;
-import org.apache.ws.commons.soap.SOAPProcessingException;
+import org.apache.ws.commons.soap.*;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+import java.io.PrintWriter;
+import java.io.StringWriter;
+import java.util.Iterator;
/**
* Class SOAPFaultImpl
Modified: webservices/commons/modules/axiom/src/org/apache/ws/commons/soap/impl/llom/SOAPFaultTextImpl.java
URL: http://svn.apache.org/viewcvs/webservices/commons/modules/axiom/src/org/apache/ws/commons/soap/impl/llom/SOAPFaultTextImpl.java?rev=385985&r1=385984&r2=385985&view=diff
==============================================================================
--- webservices/commons/modules/axiom/src/org/apache/ws/commons/soap/impl/llom/SOAPFaultTextImpl.java (original)
+++ webservices/commons/modules/axiom/src/org/apache/ws/commons/soap/impl/llom/SOAPFaultTextImpl.java Tue Mar 14 23:09:05 2006
@@ -16,16 +16,11 @@
package org.apache.ws.commons.soap.impl.llom;
-import org.apache.ws.commons.om.OMAbstractFactory;
import org.apache.ws.commons.om.OMAttribute;
import org.apache.ws.commons.om.OMNamespace;
import org.apache.ws.commons.om.OMXMLParserWrapper;
import org.apache.ws.commons.om.impl.llom.OMAttributeImpl;
-import org.apache.ws.commons.soap.SOAP12Constants;
-import org.apache.ws.commons.soap.SOAPFactory;
-import org.apache.ws.commons.soap.SOAPFaultReason;
-import org.apache.ws.commons.soap.SOAPFaultText;
-import org.apache.ws.commons.soap.SOAPProcessingException;
+import org.apache.ws.commons.soap.*;
import javax.xml.namespace.QName;
Modified: webservices/commons/modules/axiom/src/org/apache/ws/commons/soap/impl/llom/builder/StAXSOAPModelBuilder.java
URL: http://svn.apache.org/viewcvs/webservices/commons/modules/axiom/src/org/apache/ws/commons/soap/impl/llom/builder/StAXSOAPModelBuilder.java?rev=385985&r1=385984&r2=385985&view=diff
==============================================================================
--- webservices/commons/modules/axiom/src/org/apache/ws/commons/soap/impl/llom/builder/StAXSOAPModelBuilder.java (original)
+++ webservices/commons/modules/axiom/src/org/apache/ws/commons/soap/impl/llom/builder/StAXSOAPModelBuilder.java Tue Mar 14 23:09:05 2006
@@ -18,23 +18,10 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.apache.ws.commons.om.OMAbstractFactory;
-import org.apache.ws.commons.om.OMDocument;
-import org.apache.ws.commons.om.OMElement;
-import org.apache.ws.commons.om.OMException;
-import org.apache.ws.commons.om.OMNamespace;
-import org.apache.ws.commons.om.OMNode;
+import org.apache.ws.commons.om.*;
import org.apache.ws.commons.om.impl.OMNodeEx;
import org.apache.ws.commons.om.impl.llom.builder.StAXOMBuilder;
-import org.apache.ws.commons.soap.SOAP11Constants;
-import org.apache.ws.commons.soap.SOAP12Constants;
-import org.apache.ws.commons.soap.SOAPBody;
-import org.apache.ws.commons.soap.SOAPConstants;
-import org.apache.ws.commons.soap.SOAPEnvelope;
-import org.apache.ws.commons.soap.SOAPFactory;
-import org.apache.ws.commons.soap.SOAPHeader;
-import org.apache.ws.commons.soap.SOAPMessage;
-import org.apache.ws.commons.soap.SOAPProcessingException;
+import org.apache.ws.commons.soap.*;
import javax.xml.stream.XMLStreamReader;
@@ -86,7 +73,7 @@
private String senderfaultCode;
private String receiverfaultCode;
private boolean processingMandatoryFaultElements;
-
+
// We need to have soap factory, temporary, until we find out the correct SOAP version. If user has not provided
// a SOAP factory, internally we are creating a default one. This flag will be set if we create one internally, to
// warn that this should be replaced later.
@@ -95,22 +82,15 @@
/**
* Constructor StAXSOAPModelBuilder
* soapVersion parameter is to give the soap version from the transport. For example, in HTTP case
- * you can identify the version of the soap message u have recd by looking at the HTTP headers.
+ * you can identify the version of the soap message u have recd by looking at the HTTP headers.
* It is used to check whether the actual soap message contained is of that version.
* If one is creates the builder from the transport, then can just pass null for version.
*
* @param parser
- * @param soapVersion parameter is to give the soap version for the transport.
+ * @param soapVersion parameter is to give the soap version for the transport.
*/
public StAXSOAPModelBuilder(XMLStreamReader parser, String soapVersion) {
super(parser);
- soapFactory = OMAbstractFactory.getDefaultSOAPFactory();
- isTempSOAPFactory = true;
- soapMessage = soapFactory.createSOAPMessage(this);
- this.document = soapMessage;
- if(parser.getCharacterEncodingScheme() != null) {
- document.setCharsetEncoding(parser.getCharacterEncodingScheme());
- }
identifySOAPVersion(soapVersion);
}
@@ -119,8 +99,8 @@
* @param factory
* @param soapVersion parameter is to give the soap version from the transport. For example, in
* HTTP case you can identify the version of the soap message u have recd by looking at
- * the HTTP headers. It is used to check whether the actual soap message
- * contained is of that version.If one is creates the builder from the transport,
+ * the HTTP headers. It is used to check whether the actual soap message
+ * contained is of that version.If one is creates the builder from the transport,
* then can just pass null for version.
*/
public StAXSOAPModelBuilder(XMLStreamReader parser, SOAPFactory factory, String soapVersion) {
@@ -142,23 +122,24 @@
envelopeNamespace = soapEnvelope.getNamespace();
String namespaceName = envelopeNamespace.getName();
- if ((soapVersionURIFromTransport != null) && !(soapVersionURIFromTransport.equals(namespaceName))) {
+ if ((soapVersionURIFromTransport != null) && !(soapVersionURIFromTransport.equals(namespaceName)))
+ {
throw new SOAPProcessingException("Transport level information does not match with SOAP" +
" Message namespace URI", envelopeNamespace.getPrefix() + ":" + SOAPConstants.FAULT_CODE_VERSION_MISMATCH);
}
- if(isTempSOAPFactory) {
- if (SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI.equals(namespaceName)) {
- soapFactory = OMAbstractFactory.getSOAP12Factory();
- log.debug("Starting to process SOAP 1.2 message");
- } else if (SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI.equals(namespaceName)) {
- soapFactory = OMAbstractFactory.getSOAP11Factory();
- log.debug("Starting to process SOAP 1.1 message");
-
- } else {
- throw new SOAPProcessingException("Only SOAP 1.1 or SOAP 1.2 messages are supported in the" +
- " system", SOAPConstants.FAULT_CODE_VERSION_MISMATCH);
- }
+ if (isTempSOAPFactory) {
+ if (SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI.equals(namespaceName)) {
+ soapFactory = OMAbstractFactory.getSOAP12Factory();
+ log.debug("Starting to process SOAP 1.2 message");
+ } else if (SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI.equals(namespaceName)) {
+ soapFactory = OMAbstractFactory.getSOAP11Factory();
+ log.debug("Starting to process SOAP 1.1 message");
+
+ } else {
+ throw new SOAPProcessingException("Only SOAP 1.1 or SOAP 1.2 messages are supported in the" +
+ " system", SOAPConstants.FAULT_CODE_VERSION_MISMATCH);
+ }
}
}
@@ -224,10 +205,35 @@
boolean isEnvelope) {
OMElement element = null;
if (parent == null) {
+
+ // Now I've found a SOAP Envelope, now create SOAPDocument and SOAPEnvelope here.
+
if (!elementName.equalsIgnoreCase(SOAPConstants.SOAPENVELOPE_LOCAL_NAME)) {
throw new SOAPProcessingException("First Element must contain the local name, "
+ SOAPConstants.SOAPENVELOPE_LOCAL_NAME, SOAPConstants.FAULT_CODE_VERSION_MISMATCH);
}
+
+ // determine SOAP version and from that determine a proper factory here.
+ String namespaceURI = this.parser.getNamespaceURI();
+ if (SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI.equals(namespaceURI)) {
+ soapFactory = OMAbstractFactory.getSOAP12Factory();
+ log.debug("Starting to process SOAP 1.2 message");
+ } else if (SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI.equals(namespaceURI)) {
+ soapFactory = OMAbstractFactory.getSOAP11Factory();
+ log.debug("Starting to process SOAP 1.1 message");
+
+ } else {
+ throw new SOAPProcessingException("Only SOAP 1.1 or SOAP 1.2 messages are supported in the" +
+ " system", SOAPConstants.FAULT_CODE_VERSION_MISMATCH);
+ }
+
+ // create a SOAPMessage to hold the SOAP envelope and assign the SOAP envelope in that.
+ soapMessage = soapFactory.createSOAPMessage(this);
+ this.document = soapMessage;
+ if (parser.getCharacterEncodingScheme() != null) {
+ document.setCharsetEncoding(parser.getCharacterEncodingScheme());
+ }
+
envelope = soapFactory.createSOAPEnvelope(this);
element = envelope;
processNamespaceData(element, true);
@@ -298,7 +304,8 @@
processingMandatoryFaultElements = true;
if (SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI.equals(envelopeNamespace.getName())) {
builderHelper = new SOAP12BuilderHelper(this);
- } else if (SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI.equals(envelopeNamespace.getName())) {
+ } else
+ if (SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI.equals(envelopeNamespace.getName())) {
builderHelper = new SOAP11BuilderHelper(this);
}
@@ -380,7 +387,8 @@
if (isSOAPElement) {
if (node.getNamespace() != null &&
!node.getNamespace().getName().equals(SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI) &&
- !node.getNamespace().getName().equals(SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI)) {
+ !node.getNamespace().getName().equals(SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI))
+ {
throw new SOAPProcessingException("invalid SOAP namespace URI. " +
"Only " + SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI +
" and " + SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI +
@@ -417,11 +425,11 @@
return (OMDocument) this.soapMessage;
}
- /**
- * @return Returns the soapFactory.
- */
- protected SOAPFactory getSoapFactory() {
- return soapFactory;
- }
+ /**
+ * @return Returns the soapFactory.
+ */
+ protected SOAPFactory getSoapFactory() {
+ return soapFactory;
+ }
}
Modified: webservices/commons/modules/axiom/src/org/apache/ws/commons/soap/impl/llom/soap11/SOAP11Factory.java
URL: http://svn.apache.org/viewcvs/webservices/commons/modules/axiom/src/org/apache/ws/commons/soap/impl/llom/soap11/SOAP11Factory.java?rev=385985&r1=385984&r2=385985&view=diff
==============================================================================
--- webservices/commons/modules/axiom/src/org/apache/ws/commons/soap/impl/llom/soap11/SOAP11Factory.java (original)
+++ webservices/commons/modules/axiom/src/org/apache/ws/commons/soap/impl/llom/soap11/SOAP11Factory.java Tue Mar 14 23:09:05 2006
@@ -19,25 +19,12 @@
import org.apache.ws.commons.om.OMNamespace;
import org.apache.ws.commons.om.OMXMLParserWrapper;
import org.apache.ws.commons.om.impl.llom.OMNamespaceImpl;
-import org.apache.ws.commons.soap.SOAP11Constants;
-import org.apache.ws.commons.soap.SOAPBody;
-import org.apache.ws.commons.soap.SOAPEnvelope;
-import org.apache.ws.commons.soap.SOAPFault;
-import org.apache.ws.commons.soap.SOAPFaultCode;
-import org.apache.ws.commons.soap.SOAPFaultDetail;
-import org.apache.ws.commons.soap.SOAPFaultNode;
-import org.apache.ws.commons.soap.SOAPFaultReason;
-import org.apache.ws.commons.soap.SOAPFaultRole;
-import org.apache.ws.commons.soap.SOAPFaultSubCode;
-import org.apache.ws.commons.soap.SOAPFaultText;
-import org.apache.ws.commons.soap.SOAPFaultValue;
-import org.apache.ws.commons.soap.SOAPHeader;
-import org.apache.ws.commons.soap.SOAPHeaderBlock;
-import org.apache.ws.commons.soap.SOAPProcessingException;
+import org.apache.ws.commons.om.impl.llom.factory.OMLinkedListImplFactory;
+import org.apache.ws.commons.soap.*;
import org.apache.ws.commons.soap.impl.llom.SOAPEnvelopeImpl;
-import org.apache.ws.commons.soap.impl.llom.factory.SOAPLinkedListImplFactory;
+import org.apache.ws.commons.soap.impl.llom.SOAPMessageImpl;
-public class SOAP11Factory extends SOAPLinkedListImplFactory {
+public class SOAP11Factory extends OMLinkedListImplFactory implements SOAPFactory {
/**
* Eran Chinthaka (chinthaka@apache.org)
*/
@@ -272,6 +259,40 @@
createSOAPHeader(env);
createSOAPBody(env);
return env;
+ }
+
+ public SOAPEnvelope getDefaultFaultEnvelope() throws SOAPProcessingException {
+ SOAPEnvelope defaultEnvelope = getDefaultEnvelope();
+ SOAPFault fault = createSOAPFault(defaultEnvelope.getBody());
+
+ SOAPFaultCode faultCode = createSOAPFaultCode(fault);
+ createSOAPFaultValue(faultCode);
+
+ SOAPFaultReason reason = createSOAPFaultReason(fault);
+ createSOAPFaultText(reason);
+
+ createSOAPFaultDetail(fault);
+
+ return defaultEnvelope;
+ }
+
+ public SOAPMessage createSOAPMessage() {
+ return new SOAPMessageImpl();
+ }
+
+ public SOAPMessage createSOAPMessage(OMXMLParserWrapper builder) {
+ return new SOAPMessageImpl(builder);
+ }
+
+
+ public SOAPMessage createSOAPMessage(SOAPEnvelope envelope, OMXMLParserWrapper parserWrapper) {
+ return new SOAPMessageImpl(envelope, parserWrapper);
+ }
+
+
+
+ public SOAPEnvelope createSOAPEnvelope(OMXMLParserWrapper builder) {
+ return new SOAPEnvelopeImpl(builder, this);
}
Modified: webservices/commons/modules/axiom/src/org/apache/ws/commons/soap/impl/llom/soap12/SOAP12Factory.java
URL: http://svn.apache.org/viewcvs/webservices/commons/modules/axiom/src/org/apache/ws/commons/soap/impl/llom/soap12/SOAP12Factory.java?rev=385985&r1=385984&r2=385985&view=diff
==============================================================================
--- webservices/commons/modules/axiom/src/org/apache/ws/commons/soap/impl/llom/soap12/SOAP12Factory.java (original)
+++ webservices/commons/modules/axiom/src/org/apache/ws/commons/soap/impl/llom/soap12/SOAP12Factory.java Tue Mar 14 23:09:05 2006
@@ -19,25 +19,12 @@
import org.apache.ws.commons.om.OMNamespace;
import org.apache.ws.commons.om.OMXMLParserWrapper;
import org.apache.ws.commons.om.impl.llom.OMNamespaceImpl;
-import org.apache.ws.commons.soap.SOAP12Constants;
-import org.apache.ws.commons.soap.SOAPBody;
-import org.apache.ws.commons.soap.SOAPEnvelope;
-import org.apache.ws.commons.soap.SOAPFault;
-import org.apache.ws.commons.soap.SOAPFaultCode;
-import org.apache.ws.commons.soap.SOAPFaultDetail;
-import org.apache.ws.commons.soap.SOAPFaultNode;
-import org.apache.ws.commons.soap.SOAPFaultReason;
-import org.apache.ws.commons.soap.SOAPFaultRole;
-import org.apache.ws.commons.soap.SOAPFaultSubCode;
-import org.apache.ws.commons.soap.SOAPFaultText;
-import org.apache.ws.commons.soap.SOAPFaultValue;
-import org.apache.ws.commons.soap.SOAPHeader;
-import org.apache.ws.commons.soap.SOAPHeaderBlock;
-import org.apache.ws.commons.soap.SOAPProcessingException;
+import org.apache.ws.commons.om.impl.llom.factory.OMLinkedListImplFactory;
+import org.apache.ws.commons.soap.*;
import org.apache.ws.commons.soap.impl.llom.SOAPEnvelopeImpl;
-import org.apache.ws.commons.soap.impl.llom.factory.SOAPLinkedListImplFactory;
+import org.apache.ws.commons.soap.impl.llom.SOAPMessageImpl;
-public class SOAP12Factory extends SOAPLinkedListImplFactory {
+public class SOAP12Factory extends OMLinkedListImplFactory implements SOAPFactory {
/**
* Eran Chinthaka (chinthaka@apache.org)
*/
@@ -270,5 +257,41 @@
return env;
}
+
+ public SOAPEnvelope getDefaultFaultEnvelope() throws SOAPProcessingException {
+ SOAPEnvelope defaultEnvelope = getDefaultEnvelope();
+ SOAPFault fault = createSOAPFault(defaultEnvelope.getBody());
+
+ SOAPFaultCode faultCode = createSOAPFaultCode(fault);
+ createSOAPFaultValue(faultCode);
+
+ SOAPFaultReason reason = createSOAPFaultReason(fault);
+ createSOAPFaultText(reason);
+
+ createSOAPFaultDetail(fault);
+
+ return defaultEnvelope;
+ }
+
+ public SOAPMessage createSOAPMessage() {
+ return new SOAPMessageImpl();
+ }
+
+ public SOAPMessage createSOAPMessage(OMXMLParserWrapper builder) {
+ return new SOAPMessageImpl(builder);
+ }
+
+
+ public SOAPMessage createSOAPMessage(SOAPEnvelope envelope, OMXMLParserWrapper parserWrapper) {
+ return new SOAPMessageImpl(envelope, parserWrapper);
+ }
+
+
+
+ public SOAPEnvelope createSOAPEnvelope(OMXMLParserWrapper builder) {
+ return new SOAPEnvelopeImpl(builder, this);
+ }
+
+
}
Added: webservices/commons/modules/axiom/test/org/apache/ws/commons/soap/SOAPFactoryTest.java
URL: http://svn.apache.org/viewcvs/webservices/commons/modules/axiom/test/org/apache/ws/commons/soap/SOAPFactoryTest.java?rev=385985&view=auto
==============================================================================
--- webservices/commons/modules/axiom/test/org/apache/ws/commons/soap/SOAPFactoryTest.java (added)
+++ webservices/commons/modules/axiom/test/org/apache/ws/commons/soap/SOAPFactoryTest.java Tue Mar 14 23:09:05 2006
@@ -0,0 +1,54 @@
+package org.apache.ws.commons.soap;
+
+import junit.framework.TestCase;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.ws.commons.soap.impl.llom.builder.StAXSOAPModelBuilder;
+
+import javax.xml.stream.XMLInputFactory;
+import javax.xml.stream.XMLStreamException;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+
+/*
+ * Copyright 2001-2004 The Apache Software Foundation.
+ *
+ * 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.
+ *
+ */
+
+public class SOAPFactoryTest extends TestCase {
+
+ protected static final String SOAP11_FILE_NAME = "test-resources/soap/soap11/soap11message.xml";
+ protected static final String SOAP12_FILE_NAME = "test-resources/soap/soap12message.xml";
+ private Log log = LogFactory.getLog(getClass());
+
+ public void testSOAPFactory() {
+
+ try {
+ SOAPEnvelope soapEnvelope = (SOAPEnvelope) new StAXSOAPModelBuilder(XMLInputFactory.newInstance().
+ createXMLStreamReader(new FileInputStream(SOAP11_FILE_NAME)), null).getDocumentElement();
+ assertTrue(soapEnvelope != null);
+
+ soapEnvelope = (SOAPEnvelope) new StAXSOAPModelBuilder(XMLInputFactory.newInstance().
+ createXMLStreamReader(new FileInputStream(SOAP12_FILE_NAME)), null).getDocumentElement();
+ assertTrue(soapEnvelope != null);
+ } catch (XMLStreamException e) {
+ fail("Can not load soap envelope. Exception = "+ e);
+ } catch (FileNotFoundException e) {
+ fail("Given XML can not be found. Exception = "+ e);
+ }
+
+ }
+
+}