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 di...@apache.org on 2005/12/29 02:02:42 UTC

svn commit: r359669 - in /webservices/axis2/trunk/java/modules: adb/src/org/apache/axis2/databinding/ addressing/src/org/apache/axis2/handlers/addressing/ core/src/org/apache/axis2/transport/http/

Author: dims
Date: Wed Dec 28 17:02:36 2005
New Revision: 359669

URL: http://svn.apache.org/viewcvs?rev=359669&view=rev
Log:
So near, yet so far :) Trying to get ADBSOAPModelBuilder to serialize directly to the output stream, trying to silence various triggers that can build the om tree.

- There is no chance that a wsa header will be directly a child of soapenvelope. this code tries to look at soapbody and hence triggers om building.
- Don't check for checkEnvelopeForOptimise on the envelope *IF* a flag is present in message context explicitly switching off mtom.
- Some convenience changes to ADBSOAPModelBuilder

TODO:
ADBSOAPModelBuilder has a cache flag, which triggers om building when next() is called, need to silence that next.


Modified:
    webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/databinding/ADBSOAPModelBuilder.java
    webservices/axis2/trunk/java/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingOutHandler.java
    webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/HTTPTransportUtils.java

Modified: webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/databinding/ADBSOAPModelBuilder.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/databinding/ADBSOAPModelBuilder.java?rev=359669&r1=359668&r2=359669&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/databinding/ADBSOAPModelBuilder.java (original)
+++ webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/databinding/ADBSOAPModelBuilder.java Wed Dec 28 17:02:36 2005
@@ -14,17 +14,23 @@
  * Builds a SOAPEnvelope around an ADB pull parser
  */
 public class ADBSOAPModelBuilder extends StAXOMBuilder {
-    SOAPBody body = null;
+    private SOAPBody body = null;
+    private SOAPEnvelope envelope = null;
     
     public ADBSOAPModelBuilder(XMLStreamReader parser, SOAPFactory factory) {
         super(factory, parser);
+
         document = factory.createSOAPMessage(this);
-        SOAPEnvelope env = factory.getDefaultEnvelope();
-        document.addChild(env);
-        body = env.getBody();
-        ((OMNodeEx)body).setComplete(false);
+        envelope = factory.getDefaultEnvelope();
+        document.addChild(envelope);
+        body = envelope.getBody();
+
+        envelope.setBuilder(this);
+        envelope.getHeader().setBuilder(this);
         body.setBuilder(this);
         lastNode = body;
+
+        ((OMNodeEx)body).setComplete(false);
     }
 
     public int next() throws OMException {
@@ -39,5 +45,9 @@
             throw new OMException(e);
         }
         return ret;
+    }
+
+    public SOAPEnvelope getEnvelope() {
+        return envelope;
     }
 }

Modified: webservices/axis2/trunk/java/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingOutHandler.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingOutHandler.java?rev=359669&r1=359668&r2=359669&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingOutHandler.java (original)
+++ webservices/axis2/trunk/java/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingOutHandler.java Wed Dec 28 17:02:36 2005
@@ -289,12 +289,7 @@
     }
 
     private boolean isAddressingHeaderAlreadyAvailable(String name, SOAPEnvelope envelope, OMNamespace addressingNamespaceObject) {
-        boolean isAvail = envelope.getFirstChildWithName(new QName(addressingNamespaceObject.getName(), name, addressingNamespaceObject.getPrefix())) != null;
-        if(!isAvail && envelope.getHeader() != null){
-            // check in headers too
-            isAvail = envelope.getHeader().getFirstChildWithName(new QName(addressingNamespaceObject.getName(), name, addressingNamespaceObject.getPrefix())) != null;
-        }
-        return isAvail;
+        return envelope.getHeader().getFirstChildWithName(new QName(addressingNamespaceObject.getName(), name, addressingNamespaceObject.getPrefix())) != null;
     }
 }
 

Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/HTTPTransportUtils.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/HTTPTransportUtils.java?rev=359669&r1=359668&r2=359669&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/HTTPTransportUtils.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/HTTPTransportUtils.java Wed Dec 28 17:02:36 2005
@@ -96,11 +96,13 @@
         if (msgContext.getParameter(Constants.Configuration.ENABLE_MTOM) != null) {
             enableMTOM = Constants.VALUE_TRUE.equals(
                     msgContext.getParameter(Constants.Configuration.ENABLE_MTOM).getValue());
-        } else if (msgContext.getProperty(Constants.Configuration.ENABLE_MTOM) != null) {
+        } 
+        
+        if (msgContext.getProperty(Constants.Configuration.ENABLE_MTOM) != null) {
             enableMTOM = Constants.VALUE_TRUE.equals(
                     msgContext.getProperty(Constants.Configuration.ENABLE_MTOM));
         }
-
+        
         boolean forceMIME =
                 Constants.VALUE_TRUE.equals(msgContext.getProperty(Constants.Configuration.FORCE_MIME));
 
@@ -108,6 +110,11 @@
             return true;
         }
 
+        // If MTOM is explicitly disabled, no need to check the envelope
+        if(!enableMTOM) {
+            return false;
+        }
+        
         boolean envelopeContainsOptimise =
                 HTTPTransportUtils.checkEnvelopeForOptimise(msgContext.getEnvelope());