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 ch...@apache.org on 2005/06/23 10:58:56 UTC

svn commit: r193115 - in /webservices/axis/trunk/java/modules: addressing/src/org/apache/axis/handlers/addressing/ addressing/test-resources/ addressing/test/org/apache/axis/handlers/addressing/ core/src/org/apache/axis/addressing/ core/test-resources/...

Author: chinthaka
Date: Thu Jun 23 01:58:54 2005
New Revision: 193115

URL: http://svn.apache.org/viewcvs?rev=193115&view=rev
Log:
Fixing addressing support with new spec features.
Fixed test cases
Fixed a bug in OM

Modified:
    webservices/axis/trunk/java/modules/addressing/src/org/apache/axis/handlers/addressing/AddressingInHandler.java
    webservices/axis/trunk/java/modules/addressing/src/org/apache/axis/handlers/addressing/AddressingOutHandler.java
    webservices/axis/trunk/java/modules/addressing/test-resources/OutHandlerTest.xml
    webservices/axis/trunk/java/modules/addressing/test-resources/eprTest.xml
    webservices/axis/trunk/java/modules/addressing/test/org/apache/axis/handlers/addressing/AddressingOutHandlerTest.java
    webservices/axis/trunk/java/modules/core/src/org/apache/axis/addressing/AddressingConstants.java
    webservices/axis/trunk/java/modules/core/test-resources/OutHandlerTest.xml
    webservices/axis/trunk/java/modules/wsdl/src/org/apache/wsdl/WSDLConstants.java
    webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/impl/llom/OMElementImpl.java
    webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/impl/llom/util/XMLComparator.java

Modified: webservices/axis/trunk/java/modules/addressing/src/org/apache/axis/handlers/addressing/AddressingInHandler.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/addressing/src/org/apache/axis/handlers/addressing/AddressingInHandler.java?rev=193115&r1=193114&r2=193115&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/addressing/src/org/apache/axis/handlers/addressing/AddressingInHandler.java (original)
+++ webservices/axis/trunk/java/modules/addressing/src/org/apache/axis/handlers/addressing/AddressingInHandler.java Thu Jun 23 01:58:54 2005
@@ -81,6 +81,7 @@
                     logger.debug("No Addressing Headers present in the IN message. Addressing In Handler does nothing.");
                 }
             }
+            msgContext.setProperty(WS_ADDRESSING_VERSION, addressingNamespace, true);
         } catch (AddressingException e) {
             logger.info("Exception occurred in Addressing Module");
             throw new AxisFault(e);
@@ -99,7 +100,7 @@
         Iterator headerBlocks = header.getChildren();
         while (headerBlocks.hasNext()) {
             SOAPHeaderBlock soapHeaderBlock = (SOAPHeaderBlock) headerBlocks.next();
-            if (Final.WSA_TYPE_ATTRIBUTE_VALUE.equals(soapHeaderBlock.getFirstAttribute(new QName(Final.WSA_NAMESPACE, Final.WSA_TYPE_ATTRIBUTE)).getValue())) {
+            if (Final.WSA_TYPE_ATTRIBUTE_VALUE.equals(soapHeaderBlock.getFirstAttribute(new QName(Final.WSA_NAMESPACE, Final.WSA_IS_REFERENCE_PARAMETER_ATTRIBUTE)).getValue())) {
                 messageInformationHeaders.addReferenceParameter(soapHeaderBlock);
             }
         }
@@ -136,21 +137,21 @@
                     epr = new EndpointReference(AddressingConstants.WSA_FROM, "");
                     messageInformationHeadersCollection.setFrom(epr);
                 }
-                extractEPRInformation(soapHeaderBlock, epr, addressingNamespace);
+                extractEPRAddressInformation(soapHeaderBlock, epr, addressingNamespace);
             } else if (AddressingConstants.WSA_REPLY_TO.equals(soapHeaderBlock.getLocalName())) {
                 epr = messageInformationHeadersCollection.getReplyTo();
                 if (epr == null) {
                     epr = new EndpointReference(AddressingConstants.WSA_REPLY_TO, "");
                     messageInformationHeadersCollection.setReplyTo(epr);
                 }
-                extractEPRInformation(soapHeaderBlock, epr, addressingNamespace);
+                extractEPRAddressInformation(soapHeaderBlock, epr, addressingNamespace);
             } else if (AddressingConstants.WSA_FAULT_TO.equals(soapHeaderBlock.getLocalName())) {
                 epr = messageInformationHeadersCollection.getFaultTo();
                 if (epr == null) {
                     epr = new EndpointReference(AddressingConstants.WSA_FAULT_TO, "");
                     messageInformationHeadersCollection.setTo(epr);
                 }
-                extractEPRInformation(soapHeaderBlock, epr, addressingNamespace);
+                extractEPRAddressInformation(soapHeaderBlock, epr, addressingNamespace);
             } else if (AddressingConstants.WSA_MESSAGE_ID.equals(soapHeaderBlock.getLocalName())) {
                 messageInformationHeadersCollection.setMessageId(soapHeaderBlock.getText());
             } else if (AddressingConstants.WSA_ACTION.equals(soapHeaderBlock.getLocalName())) {
@@ -168,7 +169,7 @@
     }
 
 
-    private void extractEPRInformation(SOAPHeaderBlock headerBlock, EndpointReference epr, String addressingNamespace) {
+    private void extractEPRAddressInformation(SOAPHeaderBlock headerBlock, EndpointReference epr, String addressingNamespace) {
         OMElement address = headerBlock.getFirstChildWithName(new QName(addressingNamespace, AddressingConstants.EPR_ADDRESS));
         if (address != null) {
             epr.setAddress(address.getText());

Modified: webservices/axis/trunk/java/modules/addressing/src/org/apache/axis/handlers/addressing/AddressingOutHandler.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/addressing/src/org/apache/axis/handlers/addressing/AddressingOutHandler.java?rev=193115&r1=193114&r2=193115&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/addressing/src/org/apache/axis/handlers/addressing/AddressingOutHandler.java (original)
+++ webservices/axis/trunk/java/modules/addressing/src/org/apache/axis/handlers/addressing/AddressingOutHandler.java Thu Jun 23 01:58:54 2005
@@ -1,6 +1,7 @@
 package org.apache.axis.handlers.addressing;
 
 import org.apache.axis.addressing.*;
+import org.apache.axis.addressing.AddressingConstants.Submission;
 import org.apache.axis.addressing.miheaders.RelatesTo;
 import org.apache.axis.context.MessageContext;
 import org.apache.axis.engine.AxisFault;
@@ -10,9 +11,11 @@
 import org.apache.axis.om.OMNamespace;
 import org.apache.axis.soap.SOAPHeader;
 import org.apache.axis.soap.SOAPHeaderBlock;
+import org.apache.wsdl.WSDLConstants;
 
 import javax.xml.namespace.QName;
 import java.util.Iterator;
+
 /*
  * Copyright 2004,2005 The Apache Software Foundation.
  *
@@ -52,8 +55,8 @@
     // boolean variable will create room for that.
     private boolean overrideINMessageInformation = false;
 
-    OMNamespace addressingNamespace =
-            OMAbstractFactory.getSOAP11Factory().createOMNamespace(Submission.WSA_NAMESPACE, "wsa");
+    OMNamespace addressingNamespaceObject;
+    String addressingNamespace;
 
     public void invoke(MessageContext msgContext) throws AxisFault {
 
@@ -61,6 +64,25 @@
             return;
         }
 
+        // check for a IN message context, else default to WSA Submission
+        if (msgContext.getOperationContext() != null) {
+            MessageContext inMessageContext = msgContext.getOperationContext().getMessageContext(WSDLConstants.MESSAGE_LABEL_IN);
+            if (inMessageContext == null) {
+                addressingNamespace = Submission.WSA_NAMESPACE; // setting Submission version as the default addressing namespace
+            } else {
+                addressingNamespace = (String) inMessageContext.getProperty(WS_ADDRESSING_VERSION);
+                if (addressingNamespace == null) {
+                    addressingNamespace = Submission.WSA_NAMESPACE; // Addressing version has not been set in the IN path
+                }
+            }
+        }
+
+        if (addressingNamespace == null || "".equals(addressingNamespace)) {
+            addressingNamespace = Submission.WSA_NAMESPACE;
+        }
+        addressingNamespaceObject = OMAbstractFactory.getOMFactory().createOMNamespace(addressingNamespace, WSA_DEFAULT_PRFIX);
+
+
         MessageInformationHeadersCollection messageInformationHeaders =
                 msgContext.getMessageInformationHeaders();
         SOAPHeader soapHeader = msgContext.getEnvelope().getHeader();
@@ -68,7 +90,19 @@
 
         EndpointReference epr = messageInformationHeaders.getTo();
         if (epr != null) {
-            processStringInfo(epr.getAddress(), AddressingConstants.WSA_TO, soapHeader);
+
+            String address = epr.getAddress();
+            if (!"".equals(address) && address != null) {
+                SOAPHeaderBlock toHeaderBlock = soapHeader.addHeaderBlock(WSA_TO, addressingNamespaceObject);
+                toHeaderBlock.setText(address);
+            }
+
+            AnyContentType referenceParameters = epr.getReferenceParameters();
+            if (referenceParameters != null) {
+                processAnyContentType(referenceParameters, soapHeader);
+            }
+
+            addToHeader(epr, soapHeader);
         }
 
         String action = messageInformationHeaders.getAction();
@@ -85,6 +119,7 @@
         if (epr != null) {//optional
             addToSOAPHeader(epr, AddressingConstants.WSA_FROM, soapHeader);
         }
+
         epr = messageInformationHeaders.getFaultTo();
         if (epr != null) {//optional
             addToSOAPHeader(epr, AddressingConstants.WSA_FAULT_TO, soapHeader);
@@ -106,24 +141,22 @@
             if ("".equals(relatesTo.getRelationshipType())) {
                 relatesToHeader.addAttribute(WSA_RELATES_TO_RELATIONSHIP_TYPE,
                         Submission.WSA_RELATES_TO_RELATIONSHIP_TYPE_DEFAULT_VALUE,
-                        addressingNamespace);
+                        addressingNamespaceObject);
             } else {
                 relatesToHeader.addAttribute(WSA_RELATES_TO_RELATIONSHIP_TYPE,
                         relatesTo.getRelationshipType(),
-                        addressingNamespace);
+                        addressingNamespaceObject);
             }
     }
 
 
-
-
     private OMElement processStringInfo(String value,
                                         String type,
                                         SOAPHeader soapHeader) {
         if (!"".equals(value) && value != null) {
             SOAPHeaderBlock soapHeaderBlock =
-                    soapHeader.addHeaderBlock(type, addressingNamespace);
-            soapHeaderBlock.addChild(OMAbstractFactory.getSOAP11Factory().createText(value));
+                    soapHeader.addHeaderBlock(type, addressingNamespaceObject);
+            soapHeaderBlock.addChild(OMAbstractFactory.getOMFactory().createText(value));
             return soapHeaderBlock;
         }
         return null;
@@ -135,57 +168,90 @@
         if (epr == null) {
             return;
         }
+
+        SOAPHeaderBlock soapHeaderBlock =
+                soapHeader.addHeaderBlock(type, addressingNamespaceObject);
+
         String address = epr.getAddress();
         if (!"".equals(address) && address != null) {
-            SOAPHeaderBlock soapHeaderBlock =
-                    soapHeader.addHeaderBlock(type, addressingNamespace);
             OMElement addressElement =
-                    OMAbstractFactory.getSOAP11Factory().createOMElement(EPR_ADDRESS,
-                            addressingNamespace);
+                    OMAbstractFactory.getOMFactory().createOMElement(EPR_ADDRESS,
+                            addressingNamespaceObject);
             soapHeaderBlock.addChild(addressElement);
             addressElement.setText(address);
+        }
+
+        addToHeader(epr, soapHeaderBlock);
+
+
+        AnyContentType referenceParameters = epr.getReferenceParameters();
+        if (referenceParameters != null) {
+            OMElement reference =
+                    OMAbstractFactory.getOMFactory().createOMElement(EPR_REFERENCE_PARAMETERS, addressingNamespaceObject);
+            soapHeaderBlock.addChild(reference);
+            processAnyContentType(referenceParameters, reference);
 
         }
 
-        QName portType = epr.getInterfaceName();
-        if (portType != null) {
-            SOAPHeaderBlock soapHeaderBlock =
-                    soapHeader.addHeaderBlock(Submission.EPR_PORT_TYPE, addressingNamespace);
-            soapHeaderBlock.addChild(OMAbstractFactory.getSOAP11Factory().createText(portType.getPrefix() + ":" + portType.getLocalPart()));
+        if (Submission.WSA_NAMESPACE.equals(addressingNamespace)) {
+            AnyContentType referenceProperties = epr.getReferenceProperties();
+            if (referenceProperties != null) {
+                OMElement reference =
+                        OMAbstractFactory.getOMFactory().createOMElement(Submission.EPR_REFERENCE_PROPERTIES, addressingNamespaceObject);
+                soapHeader.addChild(reference);
+                processAnyContentType(referenceParameters, reference);
+            }
+
+        }
+
+    }
+
+    private void addToHeader(EndpointReference epr, OMElement parentElement) {
+
+
+        QName interfaceQName = epr.getInterfaceName();
+        if (interfaceQName != null) {
+            OMElement interfaceName =
+                    OMAbstractFactory.getOMFactory().createOMElement(addressingNamespace.equals(Submission.WSA_NAMESPACE) ? Submission.EPR_PORT_TYPE : Final.WSA_INTERFACE_NAME, addressingNamespaceObject);
+            interfaceName.addChild(OMAbstractFactory.getOMFactory().createText(interfaceQName.getPrefix() + ":" + interfaceQName.getLocalPart()));
+            parentElement.addChild(interfaceName);
         }
 
         ServiceName serviceName = epr.getServiceName();
         if (serviceName != null) {
-            SOAPHeaderBlock soapHeaderBlock =
-                    soapHeader.addHeaderBlock(EPR_SERVICE_NAME,
-                            addressingNamespace);
-            soapHeaderBlock.addAttribute(Submission.EPR_SERVICE_NAME_PORT_NAME,
+            OMElement serviceNameElement =
+                    OMAbstractFactory.getOMFactory().createOMElement(EPR_SERVICE_NAME,
+                            addressingNamespaceObject);
+            serviceNameElement.addAttribute(addressingNamespace.equals(Submission.WSA_NAMESPACE) ? Submission.EPR_SERVICE_NAME_PORT_NAME : Final.WSA_SERVICE_NAME_ENDPOINT_NAME,
                     serviceName.getEndpointName(),
-                    addressingNamespace);
-            soapHeaderBlock.addChild(OMAbstractFactory.getSOAP11Factory().createText(serviceName.getName().getPrefix()
+                    addressingNamespaceObject);
+            serviceNameElement.addChild(OMAbstractFactory.getOMFactory().createText(serviceName.getName().getPrefix()
                     + ":"
                     + serviceName.getName().getLocalPart()));
+            parentElement.addChild(serviceNameElement);
         }
 
-        AnyContentType referenceParameters = epr.getReferenceParameters();
-        processAnyContentType(referenceParameters, soapHeader);
-
-        AnyContentType referenceProperties = epr.getReferenceProperties();
-        processAnyContentType(referenceProperties, soapHeader);
 
     }
 
-    private void processAnyContentType(AnyContentType referenceParameters,
-                                       SOAPHeader soapHeader) {
-        if (referenceParameters != null) {
-            Iterator iterator = referenceParameters.getKeys();
+
+    private void processAnyContentType
+            (AnyContentType
+            referenceValues,
+             OMElement
+            parentElement) {
+        if (referenceValues != null) {
+            Iterator iterator = referenceValues.getKeys();
             while (iterator.hasNext()) {
                 QName key = (QName) iterator.next();
-                String value = referenceParameters.getReferenceValue(key);
+                String value = referenceValues.getReferenceValue(key);
                 OMElement omElement =
-                        OMAbstractFactory.getSOAP11Factory().createOMElement(key, soapHeader);
-                soapHeader.addChild(omElement);
-                omElement.addChild(OMAbstractFactory.getSOAP11Factory().createText(value));
+                        OMAbstractFactory.getOMFactory().createOMElement(key, parentElement);
+                if (Final.WSA_NAMESPACE.equals(addressingNamespace)) {
+                    omElement.addAttribute(Final.WSA_IS_REFERENCE_PARAMETER_ATTRIBUTE, Final.WSA_TYPE_ATTRIBUTE_VALUE, addressingNamespaceObject);
+
+                }
+                omElement.setText(value);
             }
         }
     }

Modified: webservices/axis/trunk/java/modules/addressing/test-resources/OutHandlerTest.xml
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/addressing/test-resources/OutHandlerTest.xml?rev=193115&r1=193114&r2=193115&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/addressing/test-resources/OutHandlerTest.xml (original)
+++ webservices/axis/trunk/java/modules/addressing/test-resources/OutHandlerTest.xml Thu Jun 23 01:58:54 2005
@@ -1,14 +1,15 @@
 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
-    <soapenv:Header xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing">
+    <soapenv:Header xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:myRef="http://reference.org">
         <wsa:From>
             <wsa:Address>http://www.from.org/service/</wsa:Address>
+            <wsa:ReferenceParameters>
+                <Reference2>Value 200</Reference2>
+            </wsa:ReferenceParameters>
         </wsa:From>
         <wsa:To>http://www.to.org/service/</wsa:To>
         <wsa:MessageID>123456-7890</wsa:MessageID>
-        <soapenv:Reference4>Value 400</soapenv:Reference4>
-        <soapenv:Reference1>Value 100</soapenv:Reference1>
-        <soapenv:Reference2>Value 200</soapenv:Reference2>
-        <soapenv:Reference3>Value 300</soapenv:Reference3>
+        <myRef:Reference4>Value 400</myRef:Reference4>
+        <myRef:Reference3>Value 300</myRef:Reference3>
         <wsa:ServiceName wsa:PortName="port">serviceNS:Service</wsa:ServiceName>
         <wsa:PortType>portNS:Port</wsa:PortType>
         <wsa:Action>http://www.actions.org/action</wsa:Action>

Modified: webservices/axis/trunk/java/modules/addressing/test-resources/eprTest.xml
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/addressing/test-resources/eprTest.xml?rev=193115&r1=193114&r2=193115&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/addressing/test-resources/eprTest.xml (original)
+++ webservices/axis/trunk/java/modules/addressing/test-resources/eprTest.xml Thu Jun 23 01:58:54 2005
@@ -1,15 +1,13 @@
 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
     <soapenv:Header xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing">
-        <soapenv:Reference4>Value 400</soapenv:Reference4>
-        <soapenv:Reference1>Value 100</soapenv:Reference1>
-        <soapenv:Reference0>Value 0</soapenv:Reference0>
-        <soapenv:Reference2>Value 200</soapenv:Reference2>
-        <soapenv:Reference3>Value 300</soapenv:Reference3>
+        <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:ServiceName wsa:PortName="port">serviceNS:Service</wsa:ServiceName>
         <wsa:PortType>portNS:Port</wsa:PortType>
-        <wsa:From>
-            <wsa:Address>http://www.from.org/service/</wsa:Address>
-        </wsa:From>
+        <wsa:To>http://www.to.org/service/</wsa:To>
     </soapenv:Header>
     <soapenv:Body></soapenv:Body>
 </soapenv:Envelope>

Modified: webservices/axis/trunk/java/modules/addressing/test/org/apache/axis/handlers/addressing/AddressingOutHandlerTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/addressing/test/org/apache/axis/handlers/addressing/AddressingOutHandlerTest.java?rev=193115&r1=193114&r2=193115&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/addressing/test/org/apache/axis/handlers/addressing/AddressingOutHandlerTest.java (original)
+++ webservices/axis/trunk/java/modules/addressing/test/org/apache/axis/handlers/addressing/AddressingOutHandlerTest.java Thu Jun 23 01:58:54 2005
@@ -9,6 +9,7 @@
 import org.apache.axis.addressing.EndpointReference;
 import org.apache.axis.addressing.MessageInformationHeadersCollection;
 import org.apache.axis.addressing.ServiceName;
+import org.apache.axis.addressing.AddressingConstants.Submission;
 import org.apache.axis.addressing.miheaders.RelatesTo;
 import org.apache.axis.context.MessageContext;
 import org.apache.axis.handlers.util.TestUtil;
@@ -53,13 +54,13 @@
     }
 
     public void testAddToSOAPHeader() throws Exception {
-        EndpointReference epr = new EndpointReference(WSA_FROM, "http://www.from.org/service/");
+        EndpointReference epr = new EndpointReference(WSA_TO, "http://www.to.org/service/");
         epr.setInterfaceName(new QName("http://www.from.org/service/port/", "Port", "portNS"));
         epr.setServiceName(new ServiceName(new QName("http://www.from.org/service/", "Service", "serviceNS"), "port"));
 
         AnyContentType anyContentType = new AnyContentType();
         for (int i = 0; i < 5; i++) {
-            anyContentType.addReferenceValue(new QName("Reference" + i), "Value " + i * 100);
+            anyContentType.addReferenceValue(new QName(Submission.WSA_NAMESPACE, "Reference" + i), "Value " + i * 100);
 
         }
 
@@ -68,7 +69,10 @@
         SOAPEnvelope defaultEnvelope = OMAbstractFactory.getSOAP11Factory().getDefaultEnvelope();
 
         defaultEnvelope.getHeader().declareNamespace(Submission.WSA_NAMESPACE, "wsa");
-        outHandler.addToSOAPHeader(epr, WSA_FROM, defaultEnvelope.getHeader());
+        MessageContext msgCtxt = new MessageContext(null);
+        msgCtxt.setTo(epr);
+        msgCtxt.setEnvelope(defaultEnvelope);
+        outHandler.invoke(msgCtxt);
 
         StAXSOAPModelBuilder omBuilder = testUtil.getOMBuilder("eprTest.xml");
         XMLComparator xmlComparator = new XMLComparator();
@@ -86,20 +90,17 @@
         mIHeaders.setFrom(epr);
 
         epr = new EndpointReference(WSA_TO, "http://www.to.org/service/");
-        mIHeaders.setTo(epr);
-
-        epr = new EndpointReference(WSA_REPLY_TO, "http://www.replyTo.org/service/");
         referenceValues = new AnyContentType();
-        referenceValues.addReferenceValue(new QName("Reference1"), "Value 100");
-        epr.setReferenceProperties(referenceValues);
+        referenceValues.addReferenceValue(new QName("http://reference.org","Reference4", "myRef"), "Value 400");
+        referenceValues.addReferenceValue(new QName("http://reference.org","Reference3", "myRef"), "Value 300");
+        epr.setReferenceParameters(referenceValues);
+
         epr.setServiceName(new ServiceName(new QName("http://www.from.org/service/", "Service", "serviceNS"), "port"));
-        referenceValues.addReferenceValue(new QName("Reference3"), "Value 300");
+
         epr.setInterfaceName(new QName("http://www.from.org/service/port/", "Port", "portNS"));
-        epr.setReferenceProperties(referenceValues);
+        mIHeaders.setTo(epr);
 
-        referenceValues = new AnyContentType();
-        referenceValues.addReferenceValue(new QName("Reference4"), "Value 400");
-        epr.setReferenceParameters(referenceValues);
+        epr = new EndpointReference(WSA_REPLY_TO, "http://www.replyTo.org/service/");
         mIHeaders.setReplyTo(epr);
 
         mIHeaders.setMessageId("123456-7890");

Modified: webservices/axis/trunk/java/modules/core/src/org/apache/axis/addressing/AddressingConstants.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis/addressing/AddressingConstants.java?rev=193115&r1=193114&r2=193115&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis/addressing/AddressingConstants.java (original)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis/addressing/AddressingConstants.java Thu Jun 23 01:58:54 2005
@@ -58,8 +58,8 @@
         public static final String WSA_RELATES_TO_RELATIONSHIP_TYPE_DEFAULT_VALUE = "http://www.w3.org/2005/02/addressing/reply";
         public static final String WSA_ANONYMOUS_URL = "http://www.w3.org/2005/02/addressing/role/anonymous";
 
-        public static final String WSA_TYPE_ATTRIBUTE = "Type";
-        public static final String WSA_TYPE_ATTRIBUTE_VALUE = "parameter";
+        public static final String WSA_IS_REFERENCE_PARAMETER_ATTRIBUTE = "IsReferenceParameter";
+        public static final String WSA_TYPE_ATTRIBUTE_VALUE = "true";
 
         public static final String WSA_INTERFACE_NAME = "InterfaceName";
         public static final String WSA_SERVICE_NAME_ENDPOINT_NAME = "EndpointName";
@@ -68,5 +68,8 @@
 
     }
 
+
+    public static final String WS_ADDRESSING_VERSION = "WSAddressingVersion";
+    public static final String WSA_DEFAULT_PRFIX = "wsa";
 
 }

Modified: webservices/axis/trunk/java/modules/core/test-resources/OutHandlerTest.xml
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/test-resources/OutHandlerTest.xml?rev=193115&r1=193114&r2=193115&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/test-resources/OutHandlerTest.xml (original)
+++ webservices/axis/trunk/java/modules/core/test-resources/OutHandlerTest.xml Thu Jun 23 01:58:54 2005
@@ -1,16 +1,15 @@
 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
-    <soapenv:Header xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing">
+    <soapenv:Header xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:myRef="http://reference.org">
         <wsa:From>
             <wsa:Address>http://www.from.org/service/</wsa:Address>
+            <wsa:ReferenceParameters>
+                <Reference2>Value 200</Reference2>
+            </wsa:ReferenceParameters>
         </wsa:From>
-        <wsa:To>
-            <wsa:Address>http://www.to.org/service/</wsa:Address>
-        </wsa:To>
+        <wsa:To>http://www.to.org/service/</wsa:To>
         <wsa:MessageID>123456-7890</wsa:MessageID>
-        <soapenv:Reference4>Value 400</soapenv:Reference4>
-        <soapenv:Reference1>Value 100</soapenv:Reference1>
-        <soapenv:Reference2>Value 200</soapenv:Reference2>
-        <soapenv:Reference3>Value 300</soapenv:Reference3>
+        <myRef:Reference4>Value 400</myRef:Reference4>
+        <myRef:Reference3>Value 300</myRef:Reference3>
         <wsa:ServiceName wsa:PortName="port">serviceNS:Service</wsa:ServiceName>
         <wsa:PortType>portNS:Port</wsa:PortType>
         <wsa:Action>http://www.actions.org/action</wsa:Action>

Modified: webservices/axis/trunk/java/modules/wsdl/src/org/apache/wsdl/WSDLConstants.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/wsdl/src/org/apache/wsdl/WSDLConstants.java?rev=193115&r1=193114&r2=193115&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/wsdl/src/org/apache/wsdl/WSDLConstants.java (original)
+++ webservices/axis/trunk/java/modules/wsdl/src/org/apache/wsdl/WSDLConstants.java Thu Jun 23 01:58:54 2005
@@ -114,7 +114,7 @@
 	 * following WSDL 2.0 defined MEPs: In-Only, Robust In-Only, In-Out,
 	 * In-Optional-Out, Out-In, Out-Optional-In.
 	 */
-	public static final int MESSAGE_LABEL_IN = 0;
+	public static final byte MESSAGE_LABEL_IN = 0;
 	
 	public static final String MESSAGE_LABEL_IN_VALUE = "In";
 

Modified: webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/impl/llom/OMElementImpl.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/impl/llom/OMElementImpl.java?rev=193115&r1=193114&r2=193115&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/impl/llom/OMElementImpl.java (original)
+++ webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/impl/llom/OMElementImpl.java Thu Jun 23 01:58:54 2005
@@ -149,31 +149,33 @@
         if (!"".equals(namespaceURI)) {
             ns = findNamespace(qname.getNamespaceURI(),
                     qname.getPrefix());
-        } else {
-            if (parent != null) {
-                ns = parent.getNamespace();
-            } else {
-                throw new OMException("Element can not be declared without a namespaceURI. Every Element should be namespace qualified");
-            }
-        }
+//        } else {
+//            if (parent != null) {
+//                ns = parent.getNamespace();
+//            } else {
+//                throw new OMException("Element can not be declared without a namespaceURI. Every Element should be namespace qualified");
+//            }
+//        }
 
-        /**
-         * What is left now is
-         *  1. nsURI = null & parent != null, but ns = null
-         *  2. nsURI != null, (parent doesn't have an ns with given URI), but ns = null
-         */
-        if ((ns == null) && !"".equals(namespaceURI)) {
-            String prefix = qname.getPrefix();
-            if (!"".equals(prefix)) {
-                ns = declareNamespace(namespaceURI, prefix);
-            } else {
-                ns = declareNamespace(namespaceURI, getNextNamespacePrefix());
+            /**
+             * What is left now is
+             *  1. nsURI = null & parent != null, but ns = null
+             *  2. nsURI != null, (parent doesn't have an ns with given URI), but ns = null
+             */
+            if ((ns == null) && !"".equals(namespaceURI)) {
+                String prefix = qname.getPrefix();
+                if (!"".equals(prefix)) {
+                    ns = declareNamespace(namespaceURI, prefix);
+                } else {
+                    ns = declareNamespace(namespaceURI, getNextNamespacePrefix());
+                }
+            }
+            if (ns != null) {
+                this.setNamespace(ns);
+//            throw new OMException("Element can not be declared without a namespaceURI. Every Element should be namespace qualified");
+                  
             }
         }
-        if (ns == null) {
-            throw new OMException("Element can not be declared without a namespaceURI. Every Element should be namespace qualified");
-        }
-        this.setNamespace(ns);
     }
 
     /**

Modified: webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/impl/llom/util/XMLComparator.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/impl/llom/util/XMLComparator.java?rev=193115&r1=193114&r2=193115&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/impl/llom/util/XMLComparator.java (original)
+++ webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/impl/llom/util/XMLComparator.java Thu Jun 23 01:58:54 2005
@@ -34,18 +34,18 @@
 
 
     public boolean compare(OMElement elementOne, OMElement elementTwo) throws XMLComparisonException {
-        if(elementOne == null && elementTwo == null){
+        if (elementOne == null && elementTwo == null) {
             log.info("Both Elements are null.");
             return true;
         }
-        if(elementOne == null && elementTwo != null){
+        if (elementOne == null && elementTwo != null) {
             throw new XMLComparisonException("Element One is null and Element Two is not null");
         }
-        if(elementOne != null && elementTwo == null){
+        if (elementOne != null && elementTwo == null) {
             throw new XMLComparisonException("Element Two is null and Element One is not null");
         }
 
-        log.info("Now Checking "+ elementOne.getLocalName() + " and " + elementTwo.getLocalName() + "=============================");
+        log.info("Now Checking " + elementOne.getLocalName() + " and " + elementTwo.getLocalName() + "=============================");
 
         log.info("Comparing Element Names .......");
         compare("Elements names are not equal. ", elementOne.getLocalName(), elementTwo.getLocalName());
@@ -80,13 +80,16 @@
         Iterator elementOneChildren = elementOne.getChildren();
         while (elementOneChildren.hasNext()) {
             OMNode omNode = (OMNode) elementOneChildren.next();
-            if(omNode instanceof OMElement){
+            if (omNode instanceof OMElement) {
                 OMElement elementOneChild = (OMElement) omNode;
+                if("Reference4".equals(elementOneChild.getLocalName())){
+                    System.out.println("Reference4");
+                }
                 OMElement elementTwoChild = elementTwo.getFirstChildWithName(elementOneChild.getQName());
-                if(elementTwoChild == null){
+                if (elementTwoChild == null) {
                     throw new XMLComparisonException(" There is no " + elementOneChild.getLocalName() + " element under " + elementTwo.getLocalName());
                 }
-                compare(elementOneChild,  elementTwoChild);
+                compare(elementOneChild, elementTwoChild);
             }
         }
     }
@@ -99,40 +102,40 @@
         while (attributes.hasNext()) {
             OMAttribute omAttribute = (OMAttribute) attributes.next();
             OMAttribute attr = elementTwo.getFirstAttribute(omAttribute.getQName());
-            if(attr == null){
-                throw new XMLComparisonException("Attributes are not the same in two elements. Attribute "+ omAttribute.getLocalName() + " != ");
+            if (attr == null) {
+                throw new XMLComparisonException("Attributes are not the same in two elements. Attribute " + omAttribute.getLocalName() + " != ");
             }
             elementOneAtribCount++;
         }
 
         Iterator elementTwoIter = elementTwo.getAttributes();
         while (elementTwoIter.hasNext()) {
-           elementTwoIter.next();
+            elementTwoIter.next();
             elementTwoAtribCount++;
 
         }
 
-        if(elementOneAtribCount != elementTwoAtribCount){
-             throw new XMLComparisonException("Attributes are not the same in two elements.");
+        if (elementOneAtribCount != elementTwoAtribCount) {
+            throw new XMLComparisonException("Attributes are not the same in two elements.");
         }
     }
 
     private void compare(String failureNotice, String one, String two) throws XMLComparisonException {
-        if(!one.equals(two)){
-            throw new XMLComparisonException(failureNotice+ one + " != " + two);
+        if (!one.equals(two)) {
+            throw new XMLComparisonException(failureNotice + one + " != " + two);
         }
     }
 
     private void compare(String failureNotice, OMNamespace one, OMNamespace two) throws XMLComparisonException {
-        if(one == null && two == null){
+        if (one == null && two == null) {
             return;
-        }else if(one != null && two == null){
+        } else if (one != null && two == null) {
             throw new XMLComparisonException("First Namespace is NOT null. But the second is null");
-        }else if(one == null && two != null){
+        } else if (one == null && two != null) {
             throw new XMLComparisonException("First Namespace is null. But the second is NOT null");
         }
 
-        if(!one.getName().equals(two.getName())){
+        if (!one.getName().equals(two.getName())) {
             throw new XMLComparisonException(failureNotice + one + " != " + two);
         }