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);
+        }
+
+    }
+
+}