You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by di...@apache.org on 2005/07/14 05:13:43 UTC

svn commit: r218974 - in /webservices/axis/trunk/java/modules: core/src/org/apache/axis2/transport/ core/src/org/apache/axis2/transport/http/ xml/src/org/apache/axis2/attachments/ xml/src/org/apache/axis2/om/impl/ xml/src/org/apache/axis2/om/impl/llom/...

Author: dims
Date: Wed Jul 13 20:13:40 2005
New Revision: 218974

URL: http://svn.apache.org/viewcvs?rev=218974&view=rev
Log:
The comment at top of OutputImpl makes it VERY clear that transport takes
the decisions. Let's just reflect that fact, clean up code and make it
a reality :)


Modified:
    webservices/axis/trunk/java/modules/core/src/org/apache/axis2/transport/AbstractTransportSender.java
    webservices/axis/trunk/java/modules/core/src/org/apache/axis2/transport/http/CommonsHTTPTransportSender.java
    webservices/axis/trunk/java/modules/core/src/org/apache/axis2/transport/http/HTTPTransportSender.java
    webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/attachments/ImageDataSource.java
    webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/om/impl/OMOutputImpl.java
    webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/om/impl/llom/OMTextImpl.java
    webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/om/impl/llom/serialize/StreamingOMSerializer.java

Modified: webservices/axis/trunk/java/modules/core/src/org/apache/axis2/transport/AbstractTransportSender.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis2/transport/AbstractTransportSender.java?rev=218974&r1=218973&r2=218974&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis2/transport/AbstractTransportSender.java (original)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis2/transport/AbstractTransportSender.java Wed Jul 13 20:13:40 2005
@@ -47,6 +47,7 @@
      */
     private Log log = LogFactory.getLog(getClass());
 
+    protected OMOutputImpl omOutput = new OMOutputImpl();
 
     /**
      * Field NAME
@@ -77,7 +78,7 @@
         //put a <parameter name="doREST" value="true"/> at the axis2.xml
         msgContext.setDoingMTOM(HTTPTransportUtils.doWriteMTOM(msgContext));
 
-        OutputStream out = null;
+        OutputStream out;
 
         EndpointReference epr = null;
 
@@ -129,20 +130,11 @@
         }
 
         if (outputMessage != null) {
-            OMOutputImpl omOutput = null;
-
             try {
-                if (msgContext.isDoingMTOM()) {
-                    omOutput = new org.apache.axis2.om.impl.OMOutputImpl(out, true);
-                    outputMessage.serialize(omOutput);
-                    omOutput.flush();
-                    out.flush();
-                } else {
-                    omOutput = new OMOutputImpl(out, false);
-                    outputMessage.serialize(omOutput);
-                    omOutput.flush();
-                    out.flush();
-                }
+                omOutput.setOutputStream(out, msgContext.isDoingMTOM());
+                outputMessage.serialize(omOutput);
+                omOutput.flush();
+                out.flush();
             } catch (Exception e) {
                 throw new AxisFault("Stream error", e);
             }

Modified: webservices/axis/trunk/java/modules/core/src/org/apache/axis2/transport/http/CommonsHTTPTransportSender.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis2/transport/http/CommonsHTTPTransportSender.java?rev=218974&r1=218973&r2=218974&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis2/transport/http/CommonsHTTPTransportSender.java (original)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis2/transport/http/CommonsHTTPTransportSender.java Wed Jul 13 20:13:40 2005
@@ -61,6 +61,8 @@
 
     protected OMElement outputMessage;
 
+    protected OMOutputImpl omOutput = new OMOutputImpl();
+
     public CommonsHTTPTransportSender() {
     } //default
 
@@ -80,7 +82,7 @@
                 epr = msgContext.getTo();
             }
 
-            OMElement dataOut = null;
+            OMElement dataOut;
             if (msgContext.isDoingREST()) {
                 dataOut = msgContext.getEnvelope().getFirstElement();
             } else {
@@ -93,8 +95,8 @@
             } else {
                 OutputStream out = (OutputStream) msgContext
                         .getProperty(MessageContext.TRANSPORT_OUT);
-                OMOutputImpl output = new OMOutputImpl(out, false);
-                dataOut.serialize(output);
+                omOutput.setOutputStream(out, false);
+                dataOut.serialize(omOutput);
             }
             msgContext.getOperationContext().setProperty(
                     Constants.RESPONSE_WRITTEN, Constants.VALUE_TRUE);
@@ -118,8 +120,7 @@
             //Configure the transport
             String soapAction = msgContext.getWSAAction();
             //settign soapAction
-            String soapActionString = soapAction == null ? "" : soapAction
-                    .toString();
+            String soapActionString = soapAction == null ? "" : soapAction;
 
             PostMethod postMethod = new PostMethod();
             postMethod.setPath(url.getFile());
@@ -129,12 +130,12 @@
                             chuncked, msgContext.isDoingMTOM()));
             if (!httpVersion.equals(HTTPConstants.HEADER_PROTOCOL_10)
                     && chuncked) {
-                ((PostMethod) postMethod).setContentChunked(true);
+                postMethod.setContentChunked(true);
             }
 
             if (msgContext.isDoingMTOM()) {
                 postMethod.setRequestHeader(HTTPConstants.HEADER_CONTENT_TYPE,
-                        OMOutputImpl.getContentType(true));
+                        omOutput.getOptimizedContentType());
             } else {
                 postMethod.setRequestHeader(HTTPConstants.HEADER_CONTENT_TYPE,
                         "text/xml; charset=utf-8");
@@ -276,9 +277,9 @@
         public void writeRequest(OutputStream out) throws IOException {
             try {
                 if (chuncked || doingMTOM) {
-                    OMOutputImpl output = new OMOutputImpl(out, doingMTOM);
-                    element.serialize(output);
-                    output.flush();
+                    omOutput.setOutputStream(out, doingMTOM);
+                    element.serialize(omOutput);
+                    omOutput.flush();
                     out.flush();
                 } else {
                     if (bytes == null) {

Modified: webservices/axis/trunk/java/modules/core/src/org/apache/axis2/transport/http/HTTPTransportSender.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis2/transport/http/HTTPTransportSender.java?rev=218974&r1=218973&r2=218974&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis2/transport/http/HTTPTransportSender.java (original)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis2/transport/http/HTTPTransportSender.java Wed Jul 13 20:13:40 2005
@@ -22,7 +22,6 @@
 import org.apache.axis2.description.Parameter;
 import org.apache.axis2.description.TransportOutDescription;
 import org.apache.axis2.engine.AxisFault;
-import org.apache.axis2.om.impl.OMOutputImpl;
 import org.apache.axis2.soap.impl.llom.soap11.SOAP11Constants;
 import org.apache.axis2.soap.impl.llom.soap12.SOAP12Constants;
 import org.apache.axis2.transport.AbstractTransportSender;
@@ -69,7 +68,7 @@
                     "\n");
             if (doMTOM) {
                 buf.append(HTTPConstants.HEADER_CONTENT_TYPE).append(": ")
-                        .append(OMOutputImpl.getContentType(true))
+                        .append(omOutput.getOptimizedContentType())
                         .append("\n");
             } else {
                 String nsURI = msgContext.getEnvelope().getNamespace().getName();
@@ -159,7 +158,7 @@
             TransportSenderInfo transportInfo =
                     (TransportSenderInfo) msgContext.getProperty(
                             TRANSPORT_SENDER_INFO);
-            InputStream in = null;
+            InputStream in;
             if (chuncked || msgContext.isDoingMTOM()) {
                 if (chuncked) {
                     ((ChunkedOutputStream) out).eos();
@@ -244,7 +243,7 @@
                     HTTPConstants.HTTPOutTransportInfo);
             if (httpOutTransportInfo != null) {
                 httpOutTransportInfo.setContentType(
-                        OMOutputImpl.getContentType(true));
+                        omOutput.getOptimizedContentType());
             } else {
                 throw new AxisFault(
                         "Property " + HTTPConstants.HTTPOutTransportInfo +

Modified: webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/attachments/ImageDataSource.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/attachments/ImageDataSource.java?rev=218974&r1=218973&r2=218974&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/attachments/ImageDataSource.java (original)
+++ webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/attachments/ImageDataSource.java Wed Jul 13 20:13:40 2005
@@ -58,7 +58,7 @@
 
     public String getContentType() {
         return contentType;
-    } // getContentType
+    } // getOptimizedContentType
 
     public InputStream getInputStream() throws IOException {
         if (os.size() != 0) {

Modified: webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/om/impl/OMOutputImpl.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/om/impl/OMOutputImpl.java?rev=218974&r1=218973&r2=218974&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/om/impl/OMOutputImpl.java (original)
+++ webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/om/impl/OMOutputImpl.java Wed Jul 13 20:13:40 2005
@@ -15,7 +15,6 @@
  */
 package org.apache.axis2.om.impl;
 
-import org.apache.axis2.om.impl.MIMEOutputUtils;
 import org.apache.axis2.om.OMText;
 
 import javax.xml.stream.FactoryConfigurationError;
@@ -39,22 +38,23 @@
     private ByteArrayOutputStream bufferedSoapOutStream;
     private static String mimeBoundary = "----=_AxIs2_Def_boundary_=42214532";
 
-    /**
-     * @param xmlWriter if it is guaranteed for not using attachments one can use this
-     */
+    public OMOutputImpl() {
+    }
+
     public OMOutputImpl(XMLStreamWriter xmlWriter) {
         this.xmlWriter = xmlWriter;
     }
 
-    /**
-     * @throws FactoryConfigurationError
-     * @throws XMLStreamException
-     */
-    public OMOutputImpl(OutputStream outStream, boolean doOptimise)
+    public OMOutputImpl(OutputStream outStream, boolean doOptimize)
+            throws XMLStreamException, FactoryConfigurationError {
+        setOutputStream(outStream, doOptimize);
+    }
+
+    public void setOutputStream(OutputStream outStream, boolean doOptimize)
             throws XMLStreamException, FactoryConfigurationError {
-        this.doOptimize = doOptimise;
+        this.doOptimize = doOptimize;
         this.outStream = outStream;
-        if (doOptimise) {
+        if (doOptimize) {
             bufferedSoapOutStream = new ByteArrayOutputStream();
             xmlWriter =
                     XMLOutputFactory.newInstance().createXMLStreamWriter(
@@ -67,10 +67,6 @@
         }
     }
 
-    public XMLStreamWriter getXmlStreamWriter() {
-        return xmlWriter;
-    }
-
     public void flush() throws XMLStreamException {
         xmlWriter.flush();
         if (doOptimize) {
@@ -79,22 +75,23 @@
         }
     }
 
-    public boolean doOptimise() {
+    public boolean isOptimized() {
         return doOptimize;
     }
 
-    public static String getContentType(boolean doOptimize) {
-        if (doOptimize) {
-            return org.apache.axis2.om.impl.MIMEOutputUtils.getContentTypeForMime(mimeBoundary);
-        }
-        //TODO have to check whether SOAP1.1 & SOAP 1.2
-        return null;
+    public String getOptimizedContentType() {
+        return org.apache.axis2.om.impl.MIMEOutputUtils.getContentTypeForMime(mimeBoundary);
     }
 
     public void writeOptimized(OMText node) {
         binaryNodeList.add(node);
     }
 
-    public void complete() throws XMLStreamException {
+    public void setXmlStreamWriter(XMLStreamWriter xmlWriter) {
+        this.xmlWriter = xmlWriter;
+    }
+
+    public XMLStreamWriter getXmlStreamWriter() {
+        return xmlWriter;
     }
 }

Modified: webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/om/impl/llom/OMTextImpl.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/om/impl/llom/OMTextImpl.java?rev=218974&r1=218973&r2=218974&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/om/impl/llom/OMTextImpl.java (original)
+++ webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/om/impl/llom/OMTextImpl.java Wed Jul 13 20:13:40 2005
@@ -269,7 +269,7 @@
         if (!this.isBinary) {
             serializeWithCache(omOutput);
         } else {
-            if (omOutput.doOptimise()) {
+            if (omOutput.isOptimized()) {
                 // send binary as MTOM optimised
                 this.attribute =
                         new OMAttributeImpl("href",

Modified: webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/om/impl/llom/serialize/StreamingOMSerializer.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/om/impl/llom/serialize/StreamingOMSerializer.java?rev=218974&r1=218973&r2=218974&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/om/impl/llom/serialize/StreamingOMSerializer.java (original)
+++ webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/om/impl/llom/serialize/StreamingOMSerializer.java Wed Jul 13 20:13:40 2005
@@ -61,10 +61,6 @@
      */
     public void serialize(XMLStreamReader obj, OMOutputImpl omOutput)
             throws XMLStreamException {
-        if (!(obj instanceof XMLStreamReader)) {
-            throw new UnsupportedOperationException(
-                    "Unsupported input object. Must be of the the type XMLStreamReader");
-        }
         XMLStreamReader node = (XMLStreamReader) obj;
         serializeNode(node, omOutput);
     }