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 pr...@apache.org on 2008/01/18 17:32:44 UTC

svn commit: r613198 - in /webservices/axis2/trunk/java/modules: addressing/src/META-INF/ addressing/src/org/apache/axis2/addressing/ addressing/src/org/apache/axis2/handlers/addressing/ addressing/test/org/apache/axis2/handlers/addressing/ kernel/src/o...

Author: pradine
Date: Fri Jan 18 08:32:38 2008
New Revision: 613198

URL: http://svn.apache.org/viewvc?rev=613198&view=rev
Log:
Changes related to AXIS2-3456.

Removed:
    webservices/axis2/trunk/java/modules/addressing/src/org/apache/axis2/addressing/AddressingModule.java
    webservices/axis2/trunk/java/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingFinalInHandler.java
    webservices/axis2/trunk/java/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingSubmissionInHandler.java
Modified:
    webservices/axis2/trunk/java/modules/addressing/src/META-INF/module.xml
    webservices/axis2/trunk/java/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingInFaultHandler.java
    webservices/axis2/trunk/java/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingInHandler.java
    webservices/axis2/trunk/java/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingOutHandler.java
    webservices/axis2/trunk/java/modules/addressing/test/org/apache/axis2/handlers/addressing/AddressingFinalInHandlerTest.java
    webservices/axis2/trunk/java/modules/addressing/test/org/apache/axis2/handlers/addressing/AddressingInFaultHandlerTest.java
    webservices/axis2/trunk/java/modules/addressing/test/org/apache/axis2/handlers/addressing/AddressingInHandlerTestBase.java
    webservices/axis2/trunk/java/modules/addressing/test/org/apache/axis2/handlers/addressing/AddressingSubmissionInHandlerTest.java
    webservices/axis2/trunk/java/modules/addressing/test/org/apache/axis2/handlers/addressing/AddressingValidationHandlerTest.java
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/addressing/AddressingConstants.java

Modified: webservices/axis2/trunk/java/modules/addressing/src/META-INF/module.xml
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/addressing/src/META-INF/module.xml?rev=613198&r1=613197&r2=613198&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/addressing/src/META-INF/module.xml (original)
+++ webservices/axis2/trunk/java/modules/addressing/src/META-INF/module.xml Fri Jan 18 08:32:38 2008
@@ -16,13 +16,10 @@
   ~ specific language governing permissions and limitations
   ~ under the License.
   -->
-<module name="addressing" class="org.apache.axis2.addressing.AddressingModule">
+<module name="addressing">
     <Description>This is the WS-Addressing implementation on Axis2, supporting the WS-Addressing 1.0 Recommendation, as well as the Submission version (2004/08).</Description>
     <InFlow>
-        <handler name="AddressingFinalInHandler" class="org.apache.axis2.handlers.addressing.AddressingFinalInHandler">
-            <order phase="Addressing" before="AddressingBasedDispatcher"/>
-        </handler>
-        <handler name="AddressingSubmissionInHandler" class="org.apache.axis2.handlers.addressing.AddressingSubmissionInHandler">
+        <handler name="AddressingInHandler" class="org.apache.axis2.handlers.addressing.AddressingInHandler">
             <order phase="Addressing" before="AddressingBasedDispatcher"/>
         </handler>
         <handler name="AddressingValidationHandler" class="org.apache.axis2.handlers.addressing.AddressingValidationHandler">
@@ -44,10 +41,7 @@
     </OutFaultFlow>
 
     <InFaultFlow>
-        <handler name="AddressingFinalInHandler" class="org.apache.axis2.handlers.addressing.AddressingFinalInHandler">
-            <order phase="Addressing" before="AddressingBasedDispatcher"/>
-        </handler>
-        <handler name="AddressingSubmissionInHandler" class="org.apache.axis2.handlers.addressing.AddressingSubmissionInHandler">
+        <handler name="AddressingInHandler" class="org.apache.axis2.handlers.addressing.AddressingInHandler">
             <order phase="Addressing" before="AddressingBasedDispatcher"/>
         </handler>
         <handler name="AddressingInFaultHandler" class="org.apache.axis2.handlers.addressing.AddressingInFaultHandler">

Modified: webservices/axis2/trunk/java/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingInFaultHandler.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingInFaultHandler.java?rev=613198&r1=613197&r2=613198&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingInFaultHandler.java (original)
+++ webservices/axis2/trunk/java/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingInFaultHandler.java Fri Jan 18 08:32:38 2008
@@ -37,7 +37,6 @@
 import org.apache.axis2.context.MessageContext;
 import org.apache.axis2.handlers.AbstractHandler;
 
-import javax.xml.namespace.QName;
 import java.util.Iterator;
 
 /**

Modified: webservices/axis2/trunk/java/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingInHandler.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingInHandler.java?rev=613198&r1=613197&r2=613198&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingInHandler.java (original)
+++ webservices/axis2/trunk/java/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingInHandler.java Fri Jan 18 08:32:38 2008
@@ -20,16 +20,20 @@
 package org.apache.axis2.handlers.addressing;
 
 import org.apache.axiom.om.OMAttribute;
+import org.apache.axiom.om.OMElement;
 import org.apache.axiom.soap.RolePlayer;
-import org.apache.axiom.soap.SOAP12Constants;
 import org.apache.axiom.soap.SOAPHeader;
 import org.apache.axiom.soap.SOAPHeaderBlock;
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.Constants;
-import org.apache.axis2.addressing.*;
+import org.apache.axis2.addressing.AddressingConstants;
+import org.apache.axis2.addressing.AddressingFaultsHelper;
+import org.apache.axis2.addressing.EndpointReference;
+import org.apache.axis2.addressing.EndpointReferenceHelper;
+import org.apache.axis2.addressing.RelatesTo;
 import org.apache.axis2.client.Options;
 import org.apache.axis2.context.MessageContext;
-import org.apache.axis2.description.HandlerDescription;
+import org.apache.axis2.description.Parameter;
 import org.apache.axis2.handlers.AbstractHandler;
 import org.apache.axis2.util.JavaUtils;
 import org.apache.axis2.util.LoggingControl;
@@ -40,50 +44,22 @@
 import javax.xml.namespace.QName;
 import java.util.ArrayList;
 import java.util.Iterator;
-import java.util.List;
 
-public abstract class AddressingInHandler extends AbstractHandler implements AddressingConstants {
+public class AddressingInHandler extends AbstractHandler implements AddressingConstants {
 
-    protected String addressingNamespace = Final.WSA_NAMESPACE;  // defaulting to final version
-    protected String addressingVersion = null;
-
-    public static final String DISABLE_REF_PARAMETER_EXTRACT = "disableRefParamExtract";
+    private static final int TO_FLAG = 1, FROM_FLAG = 2, REPLYTO_FLAG = 3,
+            FAULTO_FLAG = 4, MESSAGEID_FLAG = 6, ACTION_FLAG = 0;
 
     private static final Log log = LogFactory.getLog(AddressingInHandler.class);
 
-    private boolean disableRefparamExtract = false;
-
-    public void init(HandlerDescription handlerdesc) {
-        super.init(handlerdesc);
-        disableRefparamExtract = JavaUtils.isTrueExplicitly(
-                Utils.getParameterValue(handlerdesc.getParameter(DISABLE_REF_PARAMETER_EXTRACT)));
-        if (LoggingControl.debugLoggingAllowed && log.isDebugEnabled()) {
-            log.debug("AddressingInHandler.init disableRefparamExtract=" + disableRefparamExtract);
-        }
-    }
-
     public InvocationResponse invoke(MessageContext msgContext) throws AxisFault {
-        // if another handler has already processed the addressing headers, do not do anything here.
-        if (JavaUtils.isTrueExplicitly(msgContext.getLocalProperty(IS_ADDR_INFO_ALREADY_PROCESSED),
-                                       false)) {
-            if (LoggingControl.debugLoggingAllowed && log.isDebugEnabled()) {
-                log.debug(
-                        "Another handler has processed the addressing headers. Nothing to do here.");
-            }
-            return InvocationResponse.CONTINUE;
-        }
-
-        // check whether someone has explicitly set which addressing handler should run.
-        String namespace = (String) msgContext.getProperty(WS_ADDRESSING_VERSION);
-        if (namespace == null) {
-            namespace = addressingNamespace;
-        } else if (!namespace.equals(addressingNamespace)) {
-            if (LoggingControl.debugLoggingAllowed && log.isDebugEnabled()) {
-                log.debug("This addressing handler does not match the specified namespace, " +
-                          namespace);
-            }
+        // check whether to process reference parameters.
+        Parameter param = msgContext.getParameter(DISABLE_REF_PARAMETER_EXTRACT);
+        String value = Utils.getParameterValue(param);
+        boolean disableRefparamExtract = JavaUtils.isTrueExplicitly(value);
 
-            return InvocationResponse.CONTINUE;
+        if (LoggingControl.debugLoggingAllowed && log.isDebugEnabled()) {
+            log.debug("disableRefparamExtract=" + disableRefparamExtract);
         }
 
         SOAPHeader header = msgContext.getEnvelope().getHeader();
@@ -96,35 +72,57 @@
             return InvocationResponse.CONTINUE;
         }
 
-        if (LoggingControl.debugLoggingAllowed && log.isDebugEnabled()) {
-            log.debug("Starting " + addressingVersion + " IN handler ...");
+        // check whether someone has explicitly set which addressing namespace to expect.
+        Iterator iterator = null;
+        String namespace = (String) msgContext.getProperty(WS_ADDRESSING_VERSION);
+        
+        if (namespace == null) {
+            namespace = Final.WSA_NAMESPACE;
+            iterator = header.getHeadersToProcess(rolePlayer, namespace);
+
+            if (!iterator.hasNext()) {
+                if (LoggingControl.debugLoggingAllowed && log.isDebugEnabled()) {
+                    log.debug("No Headers present corresponding to " + namespace);
+                }
+
+                namespace = Submission.WSA_NAMESPACE;
+                iterator = header.getHeadersToProcess(rolePlayer, namespace);
+            }
+        }
+        else if (Final.WSA_NAMESPACE.equals(namespace) || Submission.WSA_NAMESPACE.equals(namespace)) {
+            iterator = header.getHeadersToProcess(rolePlayer, namespace);
+        }
+        else {
+            msgContext.setProperty(DISABLE_ADDRESSING_FOR_OUT_MESSAGES, Boolean.TRUE);
+            if (LoggingControl.debugLoggingAllowed && log.isDebugEnabled()) {
+                log.debug("No Headers present corresponding to any supported WS-Addresing namespace.");
+            }            
+
+            return InvocationResponse.CONTINUE;
         }
 
-        Iterator iterator = header.getHeadersToProcess(rolePlayer, namespace);
         if (iterator.hasNext()) {
             msgContext.setProperty(WS_ADDRESSING_VERSION, namespace);
             msgContext.setProperty(DISABLE_ADDRESSING_FOR_OUT_MESSAGES, Boolean.FALSE);
 
             if (LoggingControl.debugLoggingAllowed && log.isDebugEnabled()) {
-                log.debug(addressingVersion +
+                log.debug(namespace +
                           " Headers present in the SOAP message. Starting to process ...");
             }
-            if (extractAddressingInformation(header, msgContext, iterator, namespace)) {
+            if (extractAddressingInformation(header, msgContext, iterator, namespace, disableRefparamExtract)) {
                 msgContext.setProperty(IS_ADDR_INFO_ALREADY_PROCESSED, Boolean.TRUE);
             }
-        } else {
+        }
+        else {
             msgContext.setProperty(DISABLE_ADDRESSING_FOR_OUT_MESSAGES, Boolean.TRUE);
             if (LoggingControl.debugLoggingAllowed && log.isDebugEnabled()) {
-                log.debug("No Headers present corresponding to " + addressingVersion);
+                log.debug("No Headers present corresponding to " + namespace);
             }
         }
 
         return InvocationResponse.CONTINUE;
     }
 
-    protected static final int TO_FLAG = 1, FROM_FLAG = 2, REPLYTO_FLAG = 3,
-            FAULTO_FLAG = 4, MESSAGEID_FLAG = 6, ACTION_FLAG = 0;
-
     /**
      * Pull addressing headers out from the SOAP message.
      *
@@ -132,11 +130,12 @@
      * @param messageContext the active MessageContext
      * @param headers an Iterator over the addressing headers targeted to me
      * @param namespace the addressing namespace
+     * @param disableRefparamExtract whether to disable processing of reference parameters or not.
      * @return true if addressing information was found
      * @throws AxisFault if an error occurs
      */
-    protected boolean extractAddressingInformation(SOAPHeader header, MessageContext messageContext,
-                                                   Iterator headers, String namespace)
+    boolean extractAddressingInformation(SOAPHeader header, MessageContext messageContext,
+                                                   Iterator headers, String namespace, boolean disableRefparamExtract)
             throws AxisFault {
         Options messageContextOptions = messageContext.getOptions();
 
@@ -207,7 +206,8 @@
             extractToEPRInformation(toBlock,
                                     messageContextOptions,
                                     header,
-                                    namespace);
+                                    namespace,
+                                    disableRefparamExtract);
         }
         if (messageIDBlock != null && !ignoreHeaders[MESSAGEID_FLAG]) {
             extractMessageIDInformation(messageIDBlock, messageContext);
@@ -238,55 +238,84 @@
         }
 
         // check for the presence of madatory addressing headers
-        checkForMandatoryHeaders(checkedHeaderNames, messageContext);
+        checkForMandatoryHeaders(checkedHeaderNames, messageContext, namespace);
 
         // provide default values for headers that have not been found.
-        setDefaults(checkedHeaderNames, messageContext);
+        setDefaults(checkedHeaderNames, messageContext, namespace);
 
         return true;
     }
 
-    // Copied from SOAPHeaderImpl.java - some reconciliation probably a good idea....
-    protected boolean isInRole(SOAPHeaderBlock soapHeaderBlock,
-                               RolePlayer rolePlayer,
-                               boolean isSOAP11) {
-        String role = soapHeaderBlock.getRole();
-
-        // 1. If role is ultimatedest, go by what the rolePlayer says
-        if (role == null || role.equals("") ||
-            (!isSOAP11 &&
-             role.equals(SOAP12Constants.SOAP_ROLE_ULTIMATE_RECEIVER))) {
-            return (rolePlayer == null || rolePlayer.isUltimateDestination());
+    private void checkForMandatoryHeaders(boolean[] alreadyFoundAddrHeader,
+                                            MessageContext messageContext,
+                                            String namespace) throws AxisFault {
+        if (Final.WSA_NAMESPACE.equals(namespace)) {
+            //Unable to validate the wsa:MessageID header here as we do not yet know which MEP
+            //is in effect.
+            // @see AddressingValidationHandler#checkMessageIDHeader
+            
+            if (!alreadyFoundAddrHeader[ACTION_FLAG]) {
+                AddressingFaultsHelper
+                .triggerMessageAddressingRequiredFault(messageContext, WSA_ACTION);
+            }
         }
+        else {
+            if (!alreadyFoundAddrHeader[TO_FLAG]) {
+                AddressingFaultsHelper.triggerMessageAddressingRequiredFault(messageContext, WSA_TO);
+            }
 
-        // 2. If role is next, always return true
-        if (role.equals(soapHeaderBlock.getVersion().getNextRoleURI())) return true;
+            if (!alreadyFoundAddrHeader[ACTION_FLAG]) {
+                AddressingFaultsHelper
+                        .triggerMessageAddressingRequiredFault(messageContext, WSA_ACTION);
+            }
 
-        // 3. If role is none, always return false
-        if (!isSOAP11 && role.equals(SOAP12Constants.SOAP_ROLE_NONE)) {
-            return false;
+            if (alreadyFoundAddrHeader[REPLYTO_FLAG] ||
+                    alreadyFoundAddrHeader[FAULTO_FLAG]) {
+
+                if (!alreadyFoundAddrHeader[MESSAGEID_FLAG]) {
+                    AddressingFaultsHelper
+                            .triggerMessageAddressingRequiredFault(messageContext, WSA_MESSAGE_ID);
+                }
+            }            
         }
+    }
 
-        // 4. Return t/f depending on match
-        List roles = (rolePlayer == null) ? null : rolePlayer.getRoles();
-        if (roles != null) {
-            for (int i = 0; i < roles.size(); i++) {
-                String thisRole = (String) roles.get(i);
-                if (thisRole.equals(role)) return true;
+    private void setDefaults(boolean[] alreadyFoundAddrHeader, MessageContext messageContext, String namespace) {
+        if (Final.WSA_NAMESPACE.equals(namespace)) {
+            //According to the WS-Addressing spec, we should default the wsa:To header to the
+            //anonymous URI. Doing that, however, might prevent a different value from being
+            //used instead, such as the transport URL. Therefore, we only apply the default
+            //on the inbound response side of a synchronous request-response exchange.
+            if (!alreadyFoundAddrHeader[TO_FLAG] && !messageContext.isServerSide()) {
+                if (log.isTraceEnabled()) {
+                    log.trace(messageContext.getLogIDString() +
+                    " setDefaults: Setting WS-Addressing default value for the To property.");
+                }
+                messageContext.setTo(new EndpointReference(Final.WSA_ANONYMOUS_URL));
+            }
+            
+            if (!alreadyFoundAddrHeader[REPLYTO_FLAG]) {
+                messageContext.setReplyTo(new EndpointReference(Final.WSA_ANONYMOUS_URL));
+                if (log.isTraceEnabled()) {
+                    log.trace(messageContext.getLogIDString() +
+                    " setDefaults: Setting WS-Addressing default value for the ReplyTo property.");
+                }
             }
         }
-
-        return false;
+        else {
+            //The none URI is not defined in the 2004/08 spec, but it is used here anyway
+            //as a flag to indicate the correct semantics to apply, i.e. in the 2004/08 spec
+            //the absence of a ReplyTo header indicates that a response is NOT required.
+            if (!alreadyFoundAddrHeader[REPLYTO_FLAG]) {
+                messageContext.setReplyTo(new EndpointReference(Final.WSA_NONE_URI));
+                if (log.isTraceEnabled()) {
+                    log.trace(
+                            "setDefaults: Setting WS-Addressing default value for the ReplyTo property.");
+                }
+            }            
+        }
     }
 
-    protected abstract void checkForMandatoryHeaders(boolean[] alreadyFoundAddrHeader,
-                                                     MessageContext messageContext)
-            throws AxisFault;
-
-    protected abstract void setDefaults(boolean[] alreadyFoundAddrHeader,
-                                        MessageContext messageContext) throws AxisFault;
-
-
     private void checkDuplicateHeaders(String addressingHeaderName, int headerFlag,
                                        boolean[] checkedHeaderNames, boolean[] ignoreHeaders,
                                        ArrayList duplicateHeaderNames) {//throws AxisFault {
@@ -306,10 +335,6 @@
         }
     }
 
-    protected abstract void extractToEprReferenceParameters(EndpointReference toEPR,
-                                                            SOAPHeader header, String namespace);
-
-
     private void extractRelatesToInformation(SOAPHeaderBlock soapHeaderBlock,
                                              Options messageContextOptions) {
         String address = soapHeaderBlock.getText();
@@ -390,7 +415,7 @@
 
     private void extractToEPRInformation(SOAPHeaderBlock soapHeaderBlock,
                                          Options messageContextOptions, SOAPHeader header,
-                                         String namespace) {
+                                         String namespace, boolean disableRefparamExtract) {
 
         EndpointReference epr;
         //here the addressing epr overidde what ever already there in the message context
@@ -416,6 +441,37 @@
 
         if (log.isTraceEnabled()) {
             log.trace("extractToEPRInformation: Extracted To EPR: " + epr);
+        }
+    }
+
+    private void extractToEprReferenceParameters(EndpointReference toEPR, SOAPHeader header,
+                                                   String namespace) {
+        if (Final.WSA_NAMESPACE.equals(namespace)) {
+            Iterator headerBlocks = header.getChildElements();
+            while (headerBlocks.hasNext()) {
+                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(headerElement);
+                    if (log.isTraceEnabled()) {
+                        log.trace("extractToEprReferenceParameters: Header: " +
+                                headerElement.getQName() +
+                        " has IsReferenceParameter attribute. Adding to toEPR.");
+                    }
+                }
+            }
+        }
+        else {
+            // there is no exact way to identify ref parameters for Submission version. So let's have a handler
+            // at the end of the flow, which puts all the handlers (which are of course mustUnderstand=false)
+            // as reference parameters
+
+            // TODO : Chinthaka
         }
     }
 

Modified: webservices/axis2/trunk/java/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingOutHandler.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingOutHandler.java?rev=613198&r1=613197&r2=613198&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 Fri Jan 18 08:32:38 2008
@@ -40,7 +40,6 @@
 import org.apache.axis2.context.MessageContext;
 import org.apache.axis2.description.AxisEndpoint;
 import org.apache.axis2.description.AxisService;
-import org.apache.axis2.description.HandlerDescription;
 import org.apache.axis2.description.Parameter;
 import org.apache.axis2.handlers.AbstractHandler;
 import org.apache.axis2.util.JavaUtils;
@@ -59,20 +58,6 @@
 
     private static final Log log = LogFactory.getLog(AddressingOutHandler.class);
 
-    /** This variable should only be updated inside the {@link #init(HandlerDescription)} method. */
-    private boolean includeOptionalHeaders = false;
-
-    /** Initialize the addressing out handler. */
-    public void init(HandlerDescription arg0) {
-        super.init(arg0);
-
-        //Determine whether to include optional addressing headers in the output message.
-        //The default is not to include any headers that can be safely omitted.
-        Parameter param = arg0.getParameter(INCLUDE_OPTIONAL_HEADERS);
-        String value = Utils.getParameterValue(param);
-        includeOptionalHeaders = JavaUtils.isTrueExplicitly(value);
-    }
-
     public InvocationResponse invoke(MessageContext msgContext) throws AxisFault {
         // it should be able to disable addressing by some one.
         if (msgContext.isPropertyTrue(DISABLE_ADDRESSING_FOR_OUT_MESSAGES)) {
@@ -93,7 +78,9 @@
                 Submission.WSA_NAMESPACE.equals(addressingVersionFromCurrentMsgCtxt);
 
         // Determine whether to include optional addressing headers in the output.
-        boolean includeOptionalHeaders = this.includeOptionalHeaders ||
+        Parameter param = msgContext.getParameter(INCLUDE_OPTIONAL_HEADERS);
+        String value = Utils.getParameterValue(param);
+        boolean includeOptionalHeaders = JavaUtils.isTrueExplicitly(value) ||
                                             msgContext.isPropertyTrue(INCLUDE_OPTIONAL_HEADERS);
 
         // Determine if a MustUnderstand attribute will be added to all headers in the

Modified: webservices/axis2/trunk/java/modules/addressing/test/org/apache/axis2/handlers/addressing/AddressingFinalInHandlerTest.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/addressing/test/org/apache/axis2/handlers/addressing/AddressingFinalInHandlerTest.java?rev=613198&r1=613197&r2=613198&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/addressing/test/org/apache/axis2/handlers/addressing/AddressingFinalInHandlerTest.java (original)
+++ webservices/axis2/trunk/java/modules/addressing/test/org/apache/axis2/handlers/addressing/AddressingFinalInHandlerTest.java Fri Jan 18 08:32:38 2008
@@ -46,7 +46,7 @@
 
     protected void setUp() throws Exception {
         super.setUp();
-        inHandler = new AddressingFinalInHandler();
+        inHandler = new AddressingInHandler();
         addressingNamespace = AddressingConstants.Final.WSA_NAMESPACE;
         versionDirectory = "final";
         fromAddress = "http://www.w3.org/2005/08/addressing/anonymous";

Modified: webservices/axis2/trunk/java/modules/addressing/test/org/apache/axis2/handlers/addressing/AddressingInFaultHandlerTest.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/addressing/test/org/apache/axis2/handlers/addressing/AddressingInFaultHandlerTest.java?rev=613198&r1=613197&r2=613198&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/addressing/test/org/apache/axis2/handlers/addressing/AddressingInFaultHandlerTest.java (original)
+++ webservices/axis2/trunk/java/modules/addressing/test/org/apache/axis2/handlers/addressing/AddressingInFaultHandlerTest.java Fri Jan 18 08:32:38 2008
@@ -87,7 +87,7 @@
         MessageContext msgContext = new MessageContext();
         msgContext.setConfigurationContext(ConfigurationContextFactory.createDefaultConfigurationContext());
         msgContext.setEnvelope(envelope);
-        AddressingFinalInHandler afih = new AddressingFinalInHandler();
+        AddressingInHandler afih = new AddressingInHandler();
         afih.invoke(msgContext);
         AddressingInFaultHandler aifh = new AddressingInFaultHandler();
         aifh.invoke(msgContext);

Modified: webservices/axis2/trunk/java/modules/addressing/test/org/apache/axis2/handlers/addressing/AddressingInHandlerTestBase.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/addressing/test/org/apache/axis2/handlers/addressing/AddressingInHandlerTestBase.java?rev=613198&r1=613197&r2=613198&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/addressing/test/org/apache/axis2/handlers/addressing/AddressingInHandlerTestBase.java (original)
+++ webservices/axis2/trunk/java/modules/addressing/test/org/apache/axis2/handlers/addressing/AddressingInHandlerTestBase.java Fri Jan 18 08:32:38 2008
@@ -35,7 +35,6 @@
 import org.apache.axis2.context.ConfigurationContext;
 import org.apache.axis2.context.ConfigurationContextFactory;
 import org.apache.axis2.context.MessageContext;
-import org.apache.axis2.engine.AxisConfiguration;
 import org.apache.axis2.handlers.util.TestUtil;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -76,7 +75,7 @@
                 .getAxisConfiguration().getParameterValue(Constants.SOAP_ROLE_PLAYER_PARAMETER);
         Iterator addressingHeaderBlocks = header.getHeadersToProcess(rolePlayer, addressingNamespace);
         inHandler.extractAddressingInformation(header, mc, addressingHeaderBlocks,
-                                               addressingNamespace);
+                                               addressingNamespace, false);
     }
 
     protected Options extractAddressingInformationFromHeaders(RolePlayer rolePlayer) throws Exception{

Modified: webservices/axis2/trunk/java/modules/addressing/test/org/apache/axis2/handlers/addressing/AddressingSubmissionInHandlerTest.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/addressing/test/org/apache/axis2/handlers/addressing/AddressingSubmissionInHandlerTest.java?rev=613198&r1=613197&r2=613198&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/addressing/test/org/apache/axis2/handlers/addressing/AddressingSubmissionInHandlerTest.java (original)
+++ webservices/axis2/trunk/java/modules/addressing/test/org/apache/axis2/handlers/addressing/AddressingSubmissionInHandlerTest.java Fri Jan 18 08:32:38 2008
@@ -41,7 +41,7 @@
 
     protected void setUp() throws Exception {
         super.setUp();
-        inHandler = new AddressingSubmissionInHandler();
+        inHandler = new AddressingInHandler();
         addressingNamespace = AddressingConstants.Submission.WSA_NAMESPACE;
         versionDirectory = "submission";
         fromAddress = "http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous";

Modified: webservices/axis2/trunk/java/modules/addressing/test/org/apache/axis2/handlers/addressing/AddressingValidationHandlerTest.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/addressing/test/org/apache/axis2/handlers/addressing/AddressingValidationHandlerTest.java?rev=613198&r1=613197&r2=613198&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/addressing/test/org/apache/axis2/handlers/addressing/AddressingValidationHandlerTest.java (original)
+++ webservices/axis2/trunk/java/modules/addressing/test/org/apache/axis2/handlers/addressing/AddressingValidationHandlerTest.java Fri Jan 18 08:32:38 2008
@@ -34,7 +34,7 @@
 import javax.xml.namespace.QName;
 
 public class AddressingValidationHandlerTest extends TestCase implements AddressingConstants {
-    AddressingInHandler inHandler = new AddressingFinalInHandler();
+    AddressingInHandler inHandler = new AddressingInHandler();
     AddressingValidationHandler validationHandler = new AddressingValidationHandler();
     String addressingNamespace = AddressingConstants.Final.WSA_NAMESPACE;
     String versionDirectory = "final";

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/addressing/AddressingConstants.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/addressing/AddressingConstants.java?rev=613198&r1=613197&r2=613198&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/addressing/AddressingConstants.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/addressing/AddressingConstants.java Fri Jan 18 08:32:38 2008
@@ -110,6 +110,12 @@
      * WSDL to an AxisEndpoint object.
      */
     static final String REFERENCE_PARAMETER_PARAMETER = "referenceParameters";
+
+    /**
+     * This parameter is used to decide whether the reference parameters in an inbound request
+     * message are to be processed or not.
+     */
+    static final String DISABLE_REF_PARAMETER_EXTRACT = "disableRefParamExtract";
     
     static final String WSAM_INVOCATION_PATTERN_PARAMETER_NAME = "wsamInvocationPattern";
     static final String WSAM_INVOCATION_PATTERN_SYNCHRONOUS = "synchronous";



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