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());