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 2006/11/15 16:55:57 UTC

svn commit: r475277 - in /webservices/axis2/branches/java/new-trunk/modules: addressing/src/org/apache/axis2/handlers/addressing/ addressing/test-resources/ addressing/test/org/apache/axis2/handlers/addressing/ kernel/src/org/apache/axis2/addressing/

Author: dims
Date: Wed Nov 15 07:55:56 2006
New Revision: 475277

URL: http://svn.apache.org/viewvc?view=rev&rev=475277
Log:
port addressing module changes

Modified:
    webservices/axis2/branches/java/new-trunk/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingFinalInHandler.java
    webservices/axis2/branches/java/new-trunk/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingInHandler.java
    webservices/axis2/branches/java/new-trunk/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingOutHandler.java
    webservices/axis2/branches/java/new-trunk/modules/addressing/test-resources/axis2.xml
    webservices/axis2/branches/java/new-trunk/modules/addressing/test-resources/eprTest.xml
    webservices/axis2/branches/java/new-trunk/modules/addressing/test/org/apache/axis2/handlers/addressing/AddressingOutHandlerTest.java
    webservices/axis2/branches/java/new-trunk/modules/kernel/src/org/apache/axis2/addressing/AddressingConstants.java

Modified: webservices/axis2/branches/java/new-trunk/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingFinalInHandler.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/new-trunk/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingFinalInHandler.java?view=diff&rev=475277&r1=475276&r2=475277
==============================================================================
--- webservices/axis2/branches/java/new-trunk/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingFinalInHandler.java (original)
+++ webservices/axis2/branches/java/new-trunk/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingFinalInHandler.java Wed Nov 15 07:55:56 2006
@@ -1,6 +1,7 @@
 package org.apache.axis2.handlers.addressing;
 
 import org.apache.axiom.om.OMAttribute;
+import org.apache.axiom.om.OMElement;
 import org.apache.axiom.soap.SOAPHeader;
 import org.apache.axiom.soap.SOAPHeaderBlock;
 import org.apache.axis2.AxisFault;
@@ -47,10 +48,16 @@
     protected void extractToEprReferenceParameters(EndpointReference toEPR, SOAPHeader header, String namespace) {
         Iterator headerBlocks = header.getChildElements();
         while (headerBlocks.hasNext()) {
-            SOAPHeaderBlock soapHeaderBlock = (SOAPHeaderBlock) headerBlocks.next();
-            OMAttribute isRefParamAttr = soapHeaderBlock.getAttribute(new QName(namespace, "IsReferenceParameter"));
+            OMElement headerElement = (OMElement) headerBlocks.next();
+            OMAttribute isRefParamAttr = headerElement.getAttribute(new QName(namespace, "IsReferenceParameter"));
+            if (log.isTraceEnabled()){
+                log.trace("extractToEprReferenceParameters: Checking header: "+headerElement.getQName());
+            }
             if (isRefParamAttr != null && "true".equals(isRefParamAttr.getAttributeValue())) {
-                toEPR.addReferenceParameter(soapHeaderBlock.getQName(), soapHeaderBlock.getText());
+                toEPR.addReferenceParameter(headerElement.getQName(), headerElement.getText());
+                if (log.isTraceEnabled()){
+                    log.trace("extractToEprReferenceParameters: Header: "+headerElement.getQName()+" has IsReferenceParameter attribute. Adding to toEPR.");
+                }
             }
         }
     }

Modified: webservices/axis2/branches/java/new-trunk/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingInHandler.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/new-trunk/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingInHandler.java?view=diff&rev=475277&r1=475276&r2=475277
==============================================================================
--- webservices/axis2/branches/java/new-trunk/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingInHandler.java (original)
+++ webservices/axis2/branches/java/new-trunk/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingInHandler.java Wed Nov 15 07:55:56 2006
@@ -52,7 +52,7 @@
                 log.debug("Another handler has processed the addressing headers. Nothing to do here.");
             }
 
-            return InvocationResponse.CONTINUE;        
+            return InvocationResponse.CONTINUE;
         }
         
         // check whether someone has explicitly set which addressing handler should run.
@@ -65,7 +65,7 @@
                 log.debug("This addressing handler does not match the specified namespace, " + namespace);
             }
 
-            return InvocationResponse.CONTINUE;        
+            return InvocationResponse.CONTINUE;
         }
 
         SOAPHeader header = null;
@@ -76,7 +76,7 @@
         // if there are not headers put a flag to disable addressing temporary
         if (header == null) {
             msgContext.setProperty(DISABLE_ADDRESSING_FOR_OUT_MESSAGES, Boolean.TRUE);
-            return InvocationResponse.CONTINUE;        
+            return InvocationResponse.CONTINUE;
         }
 
 		if(log.isDebugEnabled()) {
@@ -100,7 +100,8 @@
 				log.debug("No Headers present corresponding to " + addressingVersion);
 			}
         }
-        return InvocationResponse.CONTINUE;        
+        
+        return InvocationResponse.CONTINUE;
     }
 
     protected Options extractAddressingInformation(SOAPHeader header, MessageContext messageContext,
@@ -192,6 +193,11 @@
     	}else{
     		checkedHeaderNames.add(addressingHeaderName);
     	}
+        
+        if(log.isTraceEnabled()){
+            log.trace("checkDuplicateHeaders: addressingHeaderName="+addressingHeaderName+" isDuplicate="+shouldIgnore);
+        }
+        
     	return shouldIgnore;
     }
 
@@ -200,20 +206,32 @@
 
     private void extractRelatesToInformation(SOAPHeaderBlock soapHeaderBlock, String addressingNamespace, Options messageContextOptions) {
         String address = soapHeaderBlock.getText();
+        
+        // Extract the RelationshipType attribute if it exists
         OMAttribute relationshipType =
                 soapHeaderBlock.getAttribute(
                         new QName(AddressingConstants.WSA_RELATES_TO_RELATIONSHIP_TYPE));
-        String relationshipTypeDefaultValue =
+        
+        String relationshipTypeString = null;
+        
+        // If an attribute was found, use the value from it 
+        if(relationshipType!=null){
+            relationshipTypeString = relationshipType.getAttributeValue();
+        }else{ // Else use the appropriate default (depends on namespace in use)
+            relationshipTypeString =
                 Submission.WSA_NAMESPACE.equals(addressingNamespace)
                         ? Submission.WSA_DEFAULT_RELATIONSHIP_TYPE
                         : Final.WSA_DEFAULT_RELATIONSHIP_TYPE;
-        RelatesTo relatesTo =
-                new RelatesTo(
-                        address,
-                        relationshipType == null
-                                ? relationshipTypeDefaultValue
-                                : relationshipType.getAttributeValue());
+        }
+        
+        if(log.isTraceEnabled()){
+            log.trace("extractRelatesToInformation: Extracted Relationship. Value="+address+" RelationshipType="+relationshipTypeString);
+        }
+        
+        RelatesTo relatesTo = new RelatesTo(address, relationshipTypeString);
         messageContextOptions.addRelatesTo(relatesTo);
+        
+        // Completed processing of this header
         soapHeaderBlock.setProcessed();
     }
 
@@ -225,6 +243,9 @@
             messageContextOptions.setFaultTo(epr);
         }
         extractEPRInformation(soapHeaderBlock, epr, addressingNamespace, messageContext);
+        if(log.isTraceEnabled()){
+            log.trace("extractFaultToEPRInformation: Extracted FaultTo EPR: "+epr);
+        }
         soapHeaderBlock.setProcessed();
     }
 
@@ -236,6 +257,9 @@
             messageContextOptions.setReplyTo(epr);
         }
         extractEPRInformation(soapHeaderBlock, epr, addressingNamespace, messageContext);
+        if(log.isTraceEnabled()){
+            log.trace("extractReplyToEPRInformation: Extracted ReplyTo EPR: "+epr);
+        }
         soapHeaderBlock.setProcessed();
     }
 
@@ -248,6 +272,9 @@
             messageContextOptions.setFrom(epr);
         }
         extractEPRInformation(soapHeaderBlock, epr, addressingNamespace, messageContext);
+        if(log.isTraceEnabled()){
+            log.trace("extractFromEPRInformation: Extracted From EPR: "+epr);
+        }
         soapHeaderBlock.setProcessed();
     }
 
@@ -262,6 +289,9 @@
         extractToEprReferenceParameters(epr, header, namespace);
         soapHeaderBlock.setProcessed();
 
+        if(log.isTraceEnabled()){
+            log.trace("extractToEPRInformation: Extracted To EPR: "+epr);
+        }
     }
     
     //We assume that any action that already exists in the message context must be the
@@ -270,14 +300,19 @@
     private void extractActionInformation(SOAPHeaderBlock soapHeaderBlock, String addressingNamespace, MessageContext messageContext) throws AxisFault {
         Options messageContextOptions = messageContext.getOptions();
         String soapAction = messageContextOptions.getAction();
+        String wsaAction = soapHeaderBlock.getText();
+        
+        if(log.isTraceEnabled()){
+            log.trace("extractActionInformation: soapAction='"+soapAction+"' wsa:Action='"+wsaAction+"'");
+        }
         
         if (soapAction != null && !"".equals(soapAction)) {
-            if (!soapAction.equals(soapHeaderBlock.getText())) {
+            if (!soapAction.equals(wsaAction)) {
                 AddressingFaultsHelper.triggerActionMismatchFault(messageContext);
             }
         }
         else {
-            messageContextOptions.setAction(soapHeaderBlock.getText());            
+            messageContextOptions.setAction(wsaAction);            
         }
         
         soapHeaderBlock.setProcessed();        
@@ -293,8 +328,10 @@
     private void extractEPRInformation(SOAPHeaderBlock headerBlock, EndpointReference epr, String addressingNamespace, MessageContext messageContext) throws AxisFault {
         try {
             EndpointReferenceHelper.fromOM(epr, headerBlock, addressingNamespace);
-        }
-        catch (AxisFault af) {
+        }catch (AxisFault af) {
+            if(log.isTraceEnabled()){
+                log.trace("extractEPRInformation: Exception occurred deserialising an EndpointReference.",af);
+            }
             AddressingFaultsHelper.triggerMissingAddressInEPRFault(messageContext, headerBlock.getLocalName());
         }
     }

Modified: webservices/axis2/branches/java/new-trunk/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingOutHandler.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/new-trunk/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingOutHandler.java?view=diff&rev=475277&r1=475276&r2=475277
==============================================================================
--- webservices/axis2/branches/java/new-trunk/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingOutHandler.java (original)
+++ webservices/axis2/branches/java/new-trunk/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingOutHandler.java Wed Nov 15 07:55:56 2006
@@ -19,7 +19,6 @@
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMNamespace;
 import org.apache.axiom.om.util.ElementHelper;
-import org.apache.axiom.soap.SOAPConstants;
 import org.apache.axiom.soap.SOAPEnvelope;
 import org.apache.axiom.soap.SOAPFactory;
 import org.apache.axiom.soap.SOAPFault;
@@ -34,6 +33,7 @@
 import org.apache.axis2.client.Options;
 import org.apache.axis2.context.MessageContext;
 import org.apache.axis2.util.JavaUtils;
+import org.apache.axis2.util.Utils;
 
 import javax.xml.namespace.QName;
 
@@ -48,7 +48,7 @@
         Object property = msgContext.getProperty(DISABLE_ADDRESSING_FOR_OUT_MESSAGES);
         if (property != null && JavaUtils.isTrueExplicitly(property)) {
             log.debug("Addressing is disabled .....");
-            return InvocationResponse.CONTINUE;        
+            return InvocationResponse.CONTINUE;
         }
 
         Object addressingVersionFromCurrentMsgCtxt = msgContext.getProperty(WS_ADDRESSING_VERSION);
@@ -117,29 +117,56 @@
         
         // process mustUnderstand attribute, if required.
         processMustUnderstandProperty(envelope, msgContext, addressingNamespaceObject);
-
-        return InvocationResponse.CONTINUE;        
+        
+        return InvocationResponse.CONTINUE;
     }
 
     private void processWSAAction(Options messageContextOptions, SOAPEnvelope envelope,
-                                  MessageContext msgCtxt, OMNamespace addressingNamespaceObject, boolean replaceHeaders, boolean isFinalAddressingNamespace) {
+                                  MessageContext msgCtxt, OMNamespace addressingNamespaceObject, boolean replaceHeaders, boolean isFinalAddressingNamespace) throws AxisFault {
         String action = messageContextOptions.getAction();
+        
+        if(log.isTraceEnabled()){
+            log.trace("processWSAAction: action from messageContext: "+action);
+        }
         if(action == null || "".equals(action)){
             if(msgCtxt.getAxisOperation()!=null){
                 action = msgCtxt.getAxisOperation().getOutputAction();
+                if(log.isTraceEnabled()){
+                    log.trace("processWSAAction: action from AxisOperation: "+action);
+                }
             }
         }
         
+        // Use the correct fault action for the selected namespace
         if (Final.WSA_FAULT_ACTION.equals(action) || Submission.WSA_FAULT_ACTION.equals(action)) {
             action = isFinalAddressingNamespace ? Final.WSA_FAULT_ACTION : Submission.WSA_FAULT_ACTION;
         }
-        else if (Final.WSA_SOAP_FAULT_ACTION.equals(action) && !isFinalAddressingNamespace) {
+        else if (!isFinalAddressingNamespace && Final.WSA_SOAP_FAULT_ACTION.equals(action)) {
             action = Submission.WSA_FAULT_ACTION;
         }
-        
-        if (action != null && !isAddressingHeaderAlreadyAvailable(WSA_ACTION, envelope,
-                addressingNamespaceObject, replaceHeaders)) {
-            processStringInfo(action, WSA_ACTION, envelope, addressingNamespaceObject);
+
+        // If we need to add a wsa:Action header
+        if(!isAddressingHeaderAlreadyAvailable(WSA_ACTION, envelope,
+                addressingNamespaceObject, replaceHeaders)){
+            if(log.isTraceEnabled()){
+                log.trace("processWSAAction: No existing wsa:Action header found");
+            }
+            // If we don't have an action to add,
+            if(action == null || "".equals(action)){
+                if(log.isTraceEnabled()){
+                    log.trace("processWSAAction: No action to add to header");
+                }
+                // Fault unless validation has been explictily turned off
+                if(!Utils.isExplicitlyTrue(msgCtxt, AddressingConstants.DISABLE_OUTBOUND_ADDRESSING_VALIDATION)){
+                    throw new AxisFault("Unable to determine wsa:Action for outbound message");
+                }
+            }else{
+                if(log.isTraceEnabled()){
+                    log.trace("processWSAAction: Adding action to header: "+action);
+                }
+                // Otherwise just add the header
+                processStringInfo(action, WSA_ACTION, envelope, addressingNamespaceObject);
+            }
         }
     }
 
@@ -147,18 +174,18 @@
         OMElement detailElement = AddressingFaultsHelper.getDetailElementForAddressingFault(msgContext, addressingNamespaceObject);
         if(detailElement != null){
             //The difference between SOAP 1.1 and SOAP 1.2 fault messages is explained in the WS-Addressing Specs.
-            if(msgContext.isSOAP11() && isFinalAddressingNamespace){
+            if(isFinalAddressingNamespace && msgContext.isSOAP11()){
                 // Add detail as a wsa:FaultDetail header
                 if (!isAddressingHeaderAlreadyAvailable(Final.FAULT_HEADER_DETAIL, envelope, addressingNamespaceObject, replaceHeaders)) {
                     SOAPHeaderBlock faultDetail = envelope.getHeader().addHeaderBlock(Final.FAULT_HEADER_DETAIL, addressingNamespaceObject);
-                    faultDetail.addChild(detailElement);
+                    faultDetail.addChild(ElementHelper.importOMElement(detailElement, envelope.getOMFactory()));
                 }
             }
             else if (!msgContext.isSOAP11()) {
                 // Add detail to the Fault in the SOAP Body
                 SOAPFault fault = envelope.getBody().getFault();
                 if (fault != null && fault.getDetail() != null) {
-                    fault.getDetail().addDetailEntry(detailElement);
+                    fault.getDetail().addDetailEntry(ElementHelper.importOMElement(detailElement, envelope.getOMFactory()));
                 }
             }
         }
@@ -176,6 +203,9 @@
                     String relationshipType = relatesTo[i].getRelationshipType();
 
                     if (relatesToHeader != null) {
+                        
+                        // I think that if it's one of these two constants we can just not add the attribute
+                        // which would save some small amount of bandwidth and processing.
                         if (Final.WSA_DEFAULT_RELATIONSHIP_TYPE.equals(relationshipType) ||
                             Submission.WSA_DEFAULT_RELATIONSHIP_TYPE.equals(relationshipType)) {
                             relationshipType = isFinalAddressingNamespace ?
@@ -262,7 +292,7 @@
         if (epr == null) {
             epr = new EndpointReference(anonymous);
         }
-        else if (epr.hasNoneAddress() && !isFinalAddressingNamespace) {
+        else if (!isFinalAddressingNamespace && epr.hasNoneAddress()) {
             return; //Omit the header.
         }
         else if (epr.hasAnonymousAddress()) {
@@ -329,22 +359,10 @@
         Object flag = msgContext.getProperty(AddressingConstants.ADD_MUST_UNDERSTAND_TO_ADDRESSING_HEADERS);
         if (JavaUtils.isTrueExplicitly(flag)) {
             List headers = envelope.getHeader().getHeaderBlocksWithNSURI(addressingNamespaceObject.getNamespaceURI());
-            Iterator iterator = headers.iterator();
 
-            while (iterator.hasNext()) {
-                OMElement elem = (OMElement)iterator.next();
-                if(elem instanceof SOAPHeaderBlock) {
-                    SOAPHeaderBlock soapHeaderBlock = (SOAPHeaderBlock) elem;
-                    soapHeaderBlock.setMustUnderstand(true);  
-                } else {
-//                  Temp workaround to aviod hitting -  https://issues.apache.org/jira/browse/WSCOMMONS-103 
-//                  since Axis2 next release (1.1) will be based on Axiom 1.1 
-//                  We can get rid of this fix with the Axiom SNAPSHOT
-                    elem.addAttribute(SOAPConstants.ATTR_MUSTUNDERSTAND,
-                             "1",
-                            envelope.getNamespace());
-                }
-                
+            for (int i = 0, size = headers.size(); i < size; i++) {
+                SOAPHeaderBlock soapHeaderBlock = (SOAPHeaderBlock) headers.get(i);
+                soapHeaderBlock.setMustUnderstand(true);  
             }
         }
     }

Modified: webservices/axis2/branches/java/new-trunk/modules/addressing/test-resources/axis2.xml
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/new-trunk/modules/addressing/test-resources/axis2.xml?view=diff&rev=475277&r1=475276&r2=475277
==============================================================================
--- webservices/axis2/branches/java/new-trunk/modules/addressing/test-resources/axis2.xml (original)
+++ webservices/axis2/branches/java/new-trunk/modules/addressing/test-resources/axis2.xml Wed Nov 15 07:55:56 2006
@@ -18,6 +18,10 @@
                      class="org.apache.axis2.engine.AddressingBasedDispatcher">
                 <order phase="Dispatch"/>
             </handler>
+            <handler name="RequestURIOperationDispatcher"
+                     class="org.apache.axis2.engine.RequestURIOperationDispatcher">
+                <order phase="Dispatch"/>
+            </handler>
 
             <handler name="RequestURIBasedDispatcher"
                      class="org.apache.axis2.engine.RequestURIBasedDispatcher">

Modified: webservices/axis2/branches/java/new-trunk/modules/addressing/test-resources/eprTest.xml
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/new-trunk/modules/addressing/test-resources/eprTest.xml?view=diff&rev=475277&r1=475276&r2=475277
==============================================================================
--- webservices/axis2/branches/java/new-trunk/modules/addressing/test-resources/eprTest.xml (original)
+++ webservices/axis2/branches/java/new-trunk/modules/addressing/test-resources/eprTest.xml Wed Nov 15 07:55:56 2006
@@ -1,15 +1,17 @@
 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
-    <soapenv:Header xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing">
-        <wsa:Reference4>Value 400</wsa:Reference4>
-        <wsa:Reference1>Value 100</wsa:Reference1>
-        <wsa:Reference0>Value 0</wsa:Reference0>
-        <wsa:Reference2>Value 200</wsa:Reference2>
-        <wsa:Reference3>Value 300</wsa:Reference3>
-        <wsa:To>http://www.to.org/service/</wsa:To>
-        <wsa:ReplyTo>
-            <wsa:Address>
-                http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</wsa:Address>
-        </wsa:ReplyTo>
-    </soapenv:Header>
-    <soapenv:Body></soapenv:Body>
+	<soapenv:Header xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing">
+		<wsa:Reference4>Value 400</wsa:Reference4>
+		<wsa:Reference1>Value 100</wsa:Reference1>
+		<wsa:Reference0>Value 0</wsa:Reference0>
+		<wsa:Reference2>Value 200</wsa:Reference2>
+		<wsa:Reference3>Value 300</wsa:Reference3>
+		<wsa:To>http://www.to.org/service/</wsa:To>
+		<wsa:ReplyTo>
+			<wsa:Address>
+				http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous
+			</wsa:Address>
+		</wsa:ReplyTo>
+		<wsa:Action>http://www.actions.org/action</wsa:Action>
+	</soapenv:Header>
+	<soapenv:Body />
 </soapenv:Envelope>

Modified: webservices/axis2/branches/java/new-trunk/modules/addressing/test/org/apache/axis2/handlers/addressing/AddressingOutHandlerTest.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/new-trunk/modules/addressing/test/org/apache/axis2/handlers/addressing/AddressingOutHandlerTest.java?view=diff&rev=475277&r1=475276&r2=475277
==============================================================================
--- webservices/axis2/branches/java/new-trunk/modules/addressing/test/org/apache/axis2/handlers/addressing/AddressingOutHandlerTest.java (original)
+++ webservices/axis2/branches/java/new-trunk/modules/addressing/test/org/apache/axis2/handlers/addressing/AddressingOutHandlerTest.java Wed Nov 15 07:55:56 2006
@@ -67,6 +67,7 @@
         msgCtxt.setTo(epr);
         msgCtxt.setReplyTo(replyTo);
         msgCtxt.setEnvelope(defaultEnvelope);
+        msgCtxt.setWSAAction("http://www.actions.org/action");
         outHandler.invoke(msgCtxt);
 
         StAXSOAPModelBuilder omBuilder = testUtil.getOMBuilder("eprTest.xml");
@@ -98,8 +99,7 @@
         msgCtxt.setTo(epr);
         msgCtxt.setProperty(WS_ADDRESSING_VERSION, Submission.WSA_NAMESPACE);
 
-        epr =
-                new EndpointReference("http://www.replyTo.org/service/");
+        epr = new EndpointReference("http://www.replyTo.org/service/");
         msgCtxt.setReplyTo(epr);
 
         msgCtxt.setMessageID("123456-7890");
@@ -141,8 +141,7 @@
         msgCtxt.setTo(epr);
         msgCtxt.setProperty(WS_ADDRESSING_VERSION, Submission.WSA_NAMESPACE);
 
-        epr =
-                new EndpointReference("http://www.replyTo.org/service/");
+        epr = new EndpointReference("http://www.replyTo.org/service/");
         msgCtxt.setReplyTo(epr);
 
         msgCtxt.setMessageID("123456-7890");
@@ -174,6 +173,7 @@
         msgCtxt.setEnvelope(defaultEnvelope);
 
         msgCtxt.setTo(eprOne);
+        msgCtxt.setWSAAction("http://www.actions.org/action");
         outHandler.invoke(msgCtxt);
 
         // now the soap message within the msgCtxt must have a to header.
@@ -201,6 +201,7 @@
 
         msgCtxt.setProperty(REPLACE_ADDRESSING_HEADERS, Boolean.TRUE);
         msgCtxt.setTo(eprOne);
+        msgCtxt.setWSAAction("http://www.actions.org/action");
         outHandler.invoke(msgCtxt);
 
         assertTrue("http://whatever.org".equals(defaultEnvelope.getHeader().getFirstChildWithName(new QName(WSA_TO)).getText()));
@@ -223,6 +224,7 @@
 
         msgCtxt.setProperty(REPLACE_ADDRESSING_HEADERS, Boolean.FALSE);
         msgCtxt.setTo(eprOne);
+        msgCtxt.setWSAAction("http://www.actions.org/action");
         outHandler.invoke(msgCtxt);
 
         assertTrue("http://oldEPR.org".equals(defaultEnvelope.getHeader().getFirstChildWithName(new QName(WSA_TO)).getText()));

Modified: webservices/axis2/branches/java/new-trunk/modules/kernel/src/org/apache/axis2/addressing/AddressingConstants.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/new-trunk/modules/kernel/src/org/apache/axis2/addressing/AddressingConstants.java?view=diff&rev=475277&r1=475276&r2=475277
==============================================================================
--- webservices/axis2/branches/java/new-trunk/modules/kernel/src/org/apache/axis2/addressing/AddressingConstants.java (original)
+++ webservices/axis2/branches/java/new-trunk/modules/kernel/src/org/apache/axis2/addressing/AddressingConstants.java Wed Nov 15 07:55:56 2006
@@ -70,6 +70,15 @@
     public static final String DISABLE_ADDRESSING_FOR_OUT_MESSAGES = "disableAddressingForOutMessages";
     
     public static final String ADD_MUST_UNDERSTAND_TO_ADDRESSING_HEADERS = "addMustUnderstandToAddressingHeaders";
+    
+    /**
+     * This property, if set to Boolean.TRUE, will mean that the addressing handler allows partially
+     * ws-addressed messages to be sent even if they are then invalid rather than throwing a fault.
+     * 
+     * It is not clear how necessary this property is and it may be removed before the next release if
+     * it is not seen to be necessary - davidillsley@apache.org
+     */
+    public static final String DISABLE_OUTBOUND_ADDRESSING_VALIDATION = "disableAddressingOutboundValidation";
 
     public static final String WSAW_ANONYMOUS_PARAMETER_NAME = "wsawAnonymous";
     



---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org