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/20 07:06:47 UTC

svn commit: r191394 - 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/src/org/apache/...

Author: chinthaka
Date: Sun Jun 19 22:06:45 2005
New Revision: 191394

URL: http://svn.apache.org/viewcvs?rev=191394&view=rev
Log:
Adding WSA Final Support for Axis2. Currently this supports for incoming messages only. WSA Final support for outgoing messages will be added soon.

Added:
    webservices/axis/trunk/java/modules/addressing/src/org/apache/axis/handlers/addressing/AddressingException.java
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/org/apache/axis/handlers/addressing/AddressingInHandlerTest.java
    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/src/org/apache/axis/addressing/EndpointReference.java
    webservices/axis/trunk/java/modules/core/src/org/apache/axis/addressing/MessageInformationHeadersCollection.java
    webservices/axis/trunk/java/modules/core/src/org/apache/axis/addressing/ServiceName.java
    webservices/axis/trunk/java/modules/core/src/org/apache/axis/addressing/miheaders/RelatesTo.java
    webservices/axis/trunk/java/modules/core/src/org/apache/axis/receivers/AbstractInOutSyncMessageReceiver.java
    webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/AbstractTransportSender.java
    webservices/axis/trunk/java/modules/core/test/org/apache/axis/addressing/EndpointReferenceTypeTest.java

Added: webservices/axis/trunk/java/modules/addressing/src/org/apache/axis/handlers/addressing/AddressingException.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/addressing/src/org/apache/axis/handlers/addressing/AddressingException.java?rev=191394&view=auto
==============================================================================
--- webservices/axis/trunk/java/modules/addressing/src/org/apache/axis/handlers/addressing/AddressingException.java (added)
+++ webservices/axis/trunk/java/modules/addressing/src/org/apache/axis/handlers/addressing/AddressingException.java Sun Jun 19 22:06:45 2005
@@ -0,0 +1,36 @@
+package org.apache.axis.handlers.addressing;
+
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * author : Eran Chinthaka (chinthaka@apache.org)
+ */
+
+public class AddressingException extends Exception {
+    public AddressingException() {
+    }
+
+    public AddressingException(String message) {
+        super(message);
+    }
+
+    public AddressingException(Throwable cause) {
+        super(cause);
+    }
+
+    public AddressingException(String message, Throwable cause) {
+        super(message, cause);
+    }
+}

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=191394&r1=191393&r2=191394&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 Sun Jun 19 22:06:45 2005
@@ -17,6 +17,7 @@
 import javax.xml.namespace.QName;
 import java.util.ArrayList;
 import java.util.Iterator;
+
 /*
  * Copyright 2004,2005 The Apache Software Foundation.
  *
@@ -40,13 +41,14 @@
  * Date: May 10, 2005
  * Time: 11:53:20 AM
  */
-public class AddressingInHandler extends AbstractHandler {
+public class AddressingInHandler extends AbstractHandler implements AddressingConstants {
     /**
      * Eran Chinthaka (chinthaka@apache.org) Date : 03-04-2005 Time : 14:42
      */
 
     // this parameter has to be set by the module deployer.
     private boolean isAddressingOptional = true;
+    private String addressingNamespace = null;
 
     private Log logger = LogFactory.getLog(getClass());
 
@@ -54,25 +56,68 @@
     public void invoke(MessageContext msgContext) throws AxisFault {
         logger.debug("Starting Addressing IN Handler .........");
         SOAPHeader header = msgContext.getEnvelope().getHeader();
-        if(header == null){
+        if (header == null) {
             return;
         }
 
-        ArrayList addressingHeaders = header.getHeaderBolcksWithNSURI(AddressingConstants.WSA_NAMESPACE);
-        if (addressingHeaders != null) {
-            extractAddressingInformationFromHeaders(header, msgContext.getMessageInformationHeaders(),addressingHeaders);
-        } else {
-            // no addressing headers present
-            if(!isAddressingOptional){
-                throw new AxisFault("Addressing Handlers should present, but doesn't present in the incoming message !!");
+        ArrayList addressingHeaders = null;
+        try {
+            addressingHeaders = header.getHeaderBolcksWithNSURI(Submission.WSA_NAMESPACE);
+            if (addressingHeaders != null) {
+                addressingNamespace = Submission.WSA_NAMESPACE;
+                extractAddressingSubmissionInformationFromHeaders(header, msgContext.getMessageInformationHeaders(), addressingHeaders);
+            } else {
+                addressingHeaders = header.getHeaderBolcksWithNSURI(Final.WSA_NAMESPACE);
+                if (addressingHeaders != null) {
+                    addressingNamespace = Final.WSA_NAMESPACE;
+                    extractAddressingFinalInformationFromHeaders(header, msgContext.getMessageInformationHeaders(), addressingHeaders);
+                    extractReferenceParameters(header, msgContext.getMessageInformationHeaders());
+
+                } else {
+                    // Addressing headers are not present in the SOAP message
+                    if (!isAddressingOptional) {
+                        throw new AxisFault("Addressing Handlers should present, but doesn't present in the incoming message !!");
+                    }
+                    logger.debug("No Addressing Headers present in the IN message. Addressing In Handler does nothing.");
+                }
             }
-            logger.debug("No Addressing Headers present in the IN message. Addressing In Handler does nothing.");
+        } catch (AddressingException e) {
+            logger.info("Exception occurred in Addressing Module");
+            throw new AxisFault(e);
         }
+
+    }
+
+    /**
+     * WSA 1.0 specification mandates all the reference parameters to have a attribute as wsa:Type=’parameter’. So
+     * here this will check for header blocks with the above attribute and will put them in message information header collection
+     *
+     * @param header
+     * @param messageInformationHeaders
+     */
+    private void extractReferenceParameters(SOAPHeader header, MessageInformationHeadersCollection messageInformationHeaders) {
+        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())) {
+                messageInformationHeaders.addReferenceParameter(soapHeaderBlock);
+            }
+        }
+    }
+
+    private void extractAddressingFinalInformationFromHeaders(SOAPHeader header, MessageInformationHeadersCollection messageInformationHeaders, ArrayList addressingHeaders) throws AddressingException {
+        extractCommonAddressingParameters(header, messageInformationHeaders, addressingHeaders, Final.WSA_NAMESPACE);
+
+    }
+
+    private void extractAddressingSubmissionInformationFromHeaders(SOAPHeader header, MessageInformationHeadersCollection messageInformationHeaders, ArrayList addressingHeaders) throws AddressingException {
+        extractCommonAddressingParameters(header, messageInformationHeaders, addressingHeaders, Submission.WSA_NAMESPACE);
+
     }
 
-    public MessageInformationHeadersCollection extractAddressingInformationFromHeaders(SOAPHeader header, MessageInformationHeadersCollection messageInformationHeadersCollection,ArrayList addressingHeaders) {
-        if(messageInformationHeadersCollection == null){
-             messageInformationHeadersCollection = new MessageInformationHeadersCollection();
+    public MessageInformationHeadersCollection extractCommonAddressingParameters(SOAPHeader header, MessageInformationHeadersCollection messageInformationHeadersCollection, ArrayList addressingHeaders, String addressingNamespace) {
+        if (messageInformationHeadersCollection == null) {
+            messageInformationHeadersCollection = new MessageInformationHeadersCollection();
         }
 
         Iterator addressingHeadersIt = addressingHeaders.iterator();
@@ -81,40 +126,40 @@
             EndpointReference epr = null;
             if (AddressingConstants.WSA_TO.equals(soapHeaderBlock.getLocalName())) {
                 epr = messageInformationHeadersCollection.getTo();
-                if(epr == null){
-                    epr = new EndpointReference(AddressingConstants.WSA_TO, "");
+                if (epr == null) {
+                    epr = new EndpointReference(AddressingConstants.WSA_TO, soapHeaderBlock.getText());
                     messageInformationHeadersCollection.setTo(epr);
                 }
-                extractEPRInformation(soapHeaderBlock, epr);
             } else if (AddressingConstants.WSA_FROM.equals(soapHeaderBlock.getLocalName())) {
                 epr = messageInformationHeadersCollection.getFrom();
-                if(epr == null){
+                if (epr == null) {
                     epr = new EndpointReference(AddressingConstants.WSA_FROM, "");
                     messageInformationHeadersCollection.setFrom(epr);
                 }
-                extractEPRInformation(soapHeaderBlock, epr);
+                extractEPRInformation(soapHeaderBlock, epr, addressingNamespace);
             } else if (AddressingConstants.WSA_REPLY_TO.equals(soapHeaderBlock.getLocalName())) {
                 epr = messageInformationHeadersCollection.getReplyTo();
-                if( epr == null){
+                if (epr == null) {
                     epr = new EndpointReference(AddressingConstants.WSA_REPLY_TO, "");
                     messageInformationHeadersCollection.setReplyTo(epr);
                 }
-                extractEPRInformation(soapHeaderBlock, epr);
+                extractEPRInformation(soapHeaderBlock, epr, addressingNamespace);
             } else if (AddressingConstants.WSA_FAULT_TO.equals(soapHeaderBlock.getLocalName())) {
                 epr = messageInformationHeadersCollection.getFaultTo();
-                if( epr == null){
+                if (epr == null) {
                     epr = new EndpointReference(AddressingConstants.WSA_FAULT_TO, "");
                     messageInformationHeadersCollection.setTo(epr);
                 }
-                extractEPRInformation(soapHeaderBlock, epr);
+                extractEPRInformation(soapHeaderBlock, epr, addressingNamespace);
             } else if (AddressingConstants.WSA_MESSAGE_ID.equals(soapHeaderBlock.getLocalName())) {
                 messageInformationHeadersCollection.setMessageId(soapHeaderBlock.getText());
             } else if (AddressingConstants.WSA_ACTION.equals(soapHeaderBlock.getLocalName())) {
                 messageInformationHeadersCollection.setAction(soapHeaderBlock.getText());
             } else if (AddressingConstants.WSA_RELATES_TO.equals(soapHeaderBlock.getLocalName())) {
                 String address = soapHeaderBlock.getText();
-                OMAttribute relationshipType = soapHeaderBlock.getFirstAttribute(new QName(AddressingConstants.WSA_NAMESPACE, AddressingConstants.WSA_RELATES_TO_RELATIONSHIP_TYPE));
-                RelatesTo relatesTo = new RelatesTo(address, relationshipType == null ? "wsa:Reply" : relationshipType.getValue());
+                OMAttribute relationshipType = soapHeaderBlock.getFirstAttribute(new QName(AddressingConstants.WSA_RELATES_TO_RELATIONSHIP_TYPE));
+                String relationshipTypeDefaultValue = Submission.WSA_NAMESPACE.equals(addressingNamespace) ? Submission.WSA_RELATES_TO_RELATIONSHIP_TYPE_DEFAULT_VALUE : Final.WSA_RELATES_TO_RELATIONSHIP_TYPE_DEFAULT_VALUE;
+                RelatesTo relatesTo = new RelatesTo(address, relationshipType == null ? relationshipTypeDefaultValue : relationshipType.getValue());
                 messageInformationHeadersCollection.setRelatesTo(relatesTo);
             }
         }
@@ -123,8 +168,8 @@
     }
 
 
-    private void extractEPRInformation(SOAPHeaderBlock headerBlock, EndpointReference epr) {
-        OMElement address =  headerBlock.getFirstChildWithName(new QName(AddressingConstants.WSA_NAMESPACE, AddressingConstants.EPR_ADDRESS));
+    private void extractEPRInformation(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=191394&r1=191393&r2=191394&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 Sun Jun 19 22:06:45 2005
@@ -53,7 +53,7 @@
     private boolean overrideINMessageInformation = false;
 
     OMNamespace addressingNamespace =
-            OMAbstractFactory.getSOAP11Factory().createOMNamespace(WSA_NAMESPACE, "wsa");
+            OMAbstractFactory.getSOAP11Factory().createOMNamespace(Submission.WSA_NAMESPACE, "wsa");
 
     public void invoke(MessageContext msgContext) throws AxisFault {
 
@@ -68,7 +68,7 @@
 
         EndpointReference epr = messageInformationHeaders.getTo();
         if (epr != null) {
-            addToSOAPHeader(epr, AddressingConstants.WSA_TO, soapHeader);
+            processStringInfo(epr.getAddress(), AddressingConstants.WSA_TO, soapHeader);
         }
 
         String action = messageInformationHeaders.getAction();
@@ -105,7 +105,7 @@
         if (relatesToHeader != null)
             if ("".equals(relatesTo.getRelationshipType())) {
                 relatesToHeader.addAttribute(WSA_RELATES_TO_RELATIONSHIP_TYPE,
-                        WSA_RELATES_TO_RELATIONSHIP_TYPE_DEFAULT_VALUE,
+                        Submission.WSA_RELATES_TO_RELATIONSHIP_TYPE_DEFAULT_VALUE,
                         addressingNamespace);
             } else {
                 relatesToHeader.addAttribute(WSA_RELATES_TO_RELATIONSHIP_TYPE,
@@ -147,10 +147,10 @@
 
         }
 
-        QName portType = epr.getPortType();
+        QName portType = epr.getInterfaceName();
         if (portType != null) {
             SOAPHeaderBlock soapHeaderBlock =
-                    soapHeader.addHeaderBlock(EPR_PORT_TYPE, addressingNamespace);
+                    soapHeader.addHeaderBlock(Submission.EPR_PORT_TYPE, addressingNamespace);
             soapHeaderBlock.addChild(OMAbstractFactory.getSOAP11Factory().createText(portType.getPrefix() + ":" + portType.getLocalPart()));
         }
 
@@ -159,8 +159,8 @@
             SOAPHeaderBlock soapHeaderBlock =
                     soapHeader.addHeaderBlock(EPR_SERVICE_NAME,
                             addressingNamespace);
-            soapHeaderBlock.addAttribute(EPR_SERVICE_NAME_PORT_NAME,
-                    serviceName.getPortName(),
+            soapHeaderBlock.addAttribute(Submission.EPR_SERVICE_NAME_PORT_NAME,
+                    serviceName.getEndpointName(),
                     addressingNamespace);
             soapHeaderBlock.addChild(OMAbstractFactory.getSOAP11Factory().createText(serviceName.getName().getPrefix()
                     + ":"

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=191394&r1=191393&r2=191394&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/addressing/test-resources/OutHandlerTest.xml (original)
+++ webservices/axis/trunk/java/modules/addressing/test-resources/OutHandlerTest.xml Sun Jun 19 22:06:45 2005
@@ -3,9 +3,7 @@
         <wsa:From>
             <wsa:Address>http://www.from.org/service/</wsa:Address>
         </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>

Modified: webservices/axis/trunk/java/modules/addressing/test/org/apache/axis/handlers/addressing/AddressingInHandlerTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/addressing/test/org/apache/axis/handlers/addressing/AddressingInHandlerTest.java?rev=191394&r1=191393&r2=191394&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/addressing/test/org/apache/axis/handlers/addressing/AddressingInHandlerTest.java (original)
+++ webservices/axis/trunk/java/modules/addressing/test/org/apache/axis/handlers/addressing/AddressingInHandlerTest.java Sun Jun 19 22:06:45 2005
@@ -58,7 +58,7 @@
             
             SOAPHeader header = ((SOAPEnvelope) omBuilder.getDocumentElement()).getHeader();
             MessageInformationHeadersCollection messageInformationHeadersCollection =
-                    inHandler.extractAddressingInformationFromHeaders(header, null,header.getHeaderBolcksWithNSURI(AddressingConstants.WSA_NAMESPACE));
+                    inHandler.extractCommonAddressingParameters(header, null,header.getHeaderBolcksWithNSURI(AddressingConstants.Submission.WSA_NAMESPACE), AddressingConstants.Submission.WSA_NAMESPACE);
 
             if(messageInformationHeadersCollection == null){
                 fail("Addressing Information Headers have not been retrieved properly");

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=191394&r1=191393&r2=191394&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 Sun Jun 19 22:06:45 2005
@@ -54,7 +54,7 @@
 
     public void testAddToSOAPHeader() throws Exception {
         EndpointReference epr = new EndpointReference(WSA_FROM, "http://www.from.org/service/");
-        epr.setPortType(new QName("http://www.from.org/service/port/", "Port", "portNS"));
+        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();
@@ -67,7 +67,7 @@
 
         SOAPEnvelope defaultEnvelope = OMAbstractFactory.getSOAP11Factory().getDefaultEnvelope();
 
-        defaultEnvelope.getHeader().declareNamespace(WSA_NAMESPACE, "wsa");
+        defaultEnvelope.getHeader().declareNamespace(Submission.WSA_NAMESPACE, "wsa");
         outHandler.addToSOAPHeader(epr, WSA_FROM, defaultEnvelope.getHeader());
 
         StAXSOAPModelBuilder omBuilder = testUtil.getOMBuilder("eprTest.xml");
@@ -86,16 +86,15 @@
         mIHeaders.setFrom(epr);
 
         epr = new EndpointReference(WSA_TO, "http://www.to.org/service/");
-        referenceValues = new AnyContentType();
-        referenceValues.addReferenceValue(new QName("Reference1"), "Value 100");
-        epr.setReferenceProperties(referenceValues);
-        epr.setServiceName(new ServiceName(new QName("http://www.from.org/service/", "Service", "serviceNS"), "port"));
         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);
+        epr.setServiceName(new ServiceName(new QName("http://www.from.org/service/", "Service", "serviceNS"), "port"));
         referenceValues.addReferenceValue(new QName("Reference3"), "Value 300");
-        epr.setPortType(new QName("http://www.from.org/service/port/", "Port", "portNS"));
+        epr.setInterfaceName(new QName("http://www.from.org/service/port/", "Port", "portNS"));
         epr.setReferenceProperties(referenceValues);
 
         referenceValues = new AnyContentType();

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=191394&r1=191393&r2=191394&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 Sun Jun 19 22:06:45 2005
@@ -15,63 +15,58 @@
  */
 package org.apache.axis.addressing;
 
+import javax.xml.namespace.QName;
+
 /**
  * Interface AddressingConstants
  */
 public interface AddressingConstants {
 
-    public static final String WSA_NAMESPACE = "http://schemas.xmlsoap.org/ws/2004/08/addressing";
-    
-    /**
-     * Field WSA_MESSAGE_ID
-     */
+    // ====================== Common Message Addressing Properties ===================
     public static final String WSA_MESSAGE_ID = "MessageID";
-
-    /**
-     * Field WSA_RELATES_TO
-     */
     public static final String WSA_RELATES_TO = "RelatesTo";
-
-    /**
-     * Field WSA_RELATES_TO_RELATIONSHIP_TYPE
-     */
-    public static final String WSA_RELATES_TO_RELATIONSHIP_TYPE =
-            "RelationshipType";
-
-    public static final String WSA_RELATES_TO_RELATIONSHIP_TYPE_DEFAULT_VALUE =
-            "wsa:Reply";
-
-    /**
-     * Field WSA_TO
-     */
+    public static final String WSA_RELATES_TO_RELATIONSHIP_TYPE = "RelationshipType";
     public static final String WSA_TO = "To";
-
-    /**
-     * Field WSA_ACTION
-     */
-    public static final String WSA_ACTION = "Action";
-
-    /**
-     * Field WSA_FROM
-     */
     public static final String WSA_FROM = "From";
-
-    /**
-     * Field WSA_REPLY_TO
-     */
     public static final String WSA_REPLY_TO = "ReplyTo";
-
-    /**
-     * Field WSA_FAULT_TO
-     */
     public static final String WSA_FAULT_TO = "FaultTo";
+    public static final String WSA_ACTION = "Action";
 
+    // ====================== Common EPR Elements ============================
     public static final String EPR_ADDRESS = "Address";
-    public static final String EPR_REFERENCE_PROPERTIES = "ReferenceProperties";
     public static final String EPR_REFERENCE_PARAMETERS = "ReferenceParameters";
-    public static final String EPR_PORT_TYPE = "PortType";
     public static final String EPR_SERVICE_NAME = "ServiceName";
-    public static final String EPR_SERVICE_NAME_PORT_NAME = "PortName";
-    
-    public static final String EPR_ANONYMOUS_URL = "http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous";
+
+    // ======================================================================
+
+    public interface Submission {
+        // ====================== Addressing Submission Version Constants ===================
+        public static final String WSA_NAMESPACE = "http://schemas.xmlsoap.org/ws/2004/08/addressing";
+        public static final String WSA_RELATES_TO_RELATIONSHIP_TYPE_DEFAULT_VALUE = "wsa:Reply";
+        public static final String WSA_ANONYMOUS_URL = "http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous";
+
+        public static final String EPR_REFERENCE_PROPERTIES = "ReferenceProperties";
+        public static final String EPR_PORT_TYPE = "PortType";
+        public static final String EPR_SERVICE_NAME_PORT_NAME = "PortName";
+        // ==================================================================================
+
+    }
+
+    public interface Final {
+        // ====================== Addressing 1.0 Final Version Constants ====================
+        public static final String WSA_NAMESPACE = "http://www.w3.org/2005/02/addressing";
+        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_INTERFACE_NAME = "InterfaceName";
+        public static final String WSA_SERVICE_NAME_ENDPOINT_NAME = "EndpointName";
+        public static final String WSA_POLICIES = "Policies";
+        // ==================================================================================
+
+    }
+
+
 }

Modified: webservices/axis/trunk/java/modules/core/src/org/apache/axis/addressing/EndpointReference.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis/addressing/EndpointReference.java?rev=191394&r1=191393&r2=191394&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis/addressing/EndpointReference.java (original)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis/addressing/EndpointReference.java Sun Jun 19 22:06:45 2005
@@ -15,6 +15,8 @@
  */
 package org.apache.axis.addressing;
 
+import org.apache.axis.om.OMElement;
+
 import javax.xml.namespace.QName;
 
 /**
@@ -36,9 +38,9 @@
     private String address;
 
     /**
-     * Field portType
+     * Field interfaceName
      */
-    private QName portType;
+    private QName interfaceName;
 
     /**
      * Field referenceProperties
@@ -55,6 +57,8 @@
      */
     private ServiceName serviceName;
 
+    private OMElement policies;
+
     /**
      * @param messageInformationHeaderType this can be one of the followings
      *                                     AddressingConstants.WSA_FROM
@@ -106,21 +110,21 @@
     }
 
     /**
-     * Method getPortType
+     * Method getInterfaceName
      *
      * @return
      */
-    public QName getPortType() {
-        return portType;
+    public QName getInterfaceName() {
+        return interfaceName;
     }
 
     /**
-     * Method setPortType
+     * Method setInterfaceName
      *
-     * @param portType
+     * @param interfaceName
      */
-    public void setPortType(QName portType) {
-        this.portType = portType;
+    public void setInterfaceName(QName interfaceName) {
+        this.interfaceName = interfaceName;
     }
 
     /**
@@ -176,4 +180,14 @@
     public void setServiceName(ServiceName serviceName) {
         this.serviceName = serviceName;
     }
+
+    public OMElement getPolicies() {
+        return policies;
+    }
+
+    public void setPolicies(OMElement policies) {
+        this.policies = policies;
+    }
+
+    
 }

Modified: webservices/axis/trunk/java/modules/core/src/org/apache/axis/addressing/MessageInformationHeadersCollection.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis/addressing/MessageInformationHeadersCollection.java?rev=191394&r1=191393&r2=191394&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis/addressing/MessageInformationHeadersCollection.java (original)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis/addressing/MessageInformationHeadersCollection.java Sun Jun 19 22:06:45 2005
@@ -17,6 +17,9 @@
 
 import org.apache.axis.addressing.miheaders.RelatesTo;
 import org.apache.axis.soap.SOAPHeader;
+import org.apache.axis.om.OMElement;
+
+import java.util.ArrayList;
 
 /**
  * This holds the WSA Message Information Headers
@@ -58,6 +61,8 @@
      */
     private String messageId;
 
+    private ArrayList referenceParameters;
+
 
     /**
      * Addressing Header MUST have a to and an action
@@ -213,6 +218,21 @@
     public void setRelatesTo(RelatesTo relatesTo) {
 
         this.relatesTo = relatesTo;
+    }
+
+    public ArrayList getReferenceParameters() {
+        return referenceParameters;
+    }
+
+    public void setReferenceParameters(ArrayList referenceParameters) {
+        this.referenceParameters = referenceParameters;
+    }
+
+    public void addReferenceParameter(OMElement referenceParameter){
+        if(referenceParameters == null){
+            referenceParameters = new ArrayList(5);
+        }
+        referenceParameters.add(referenceParameter);
     }
 
     // --------------------------------------------------------------------------------------------

Modified: webservices/axis/trunk/java/modules/core/src/org/apache/axis/addressing/ServiceName.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis/addressing/ServiceName.java?rev=191394&r1=191393&r2=191394&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis/addressing/ServiceName.java (original)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis/addressing/ServiceName.java Sun Jun 19 22:06:45 2005
@@ -27,9 +27,9 @@
     private QName name;
 
     /**
-     * Field portName
+     * Field endpointName
      */
-    private String portName;
+    private String endpointName;
 
     /**
      * @param name
@@ -44,7 +44,7 @@
      */
     public ServiceName(QName name, String portName) {
         this.name = name;
-        this.portName = portName;
+        this.endpointName = portName;
     }
 
     /**
@@ -66,20 +66,20 @@
     }
 
     /**
-     * Method getPortName
+     * Method getEndpointName
      *
      * @return
      */
-    public String getPortName() {
-        return portName;
+    public String getEndpointName() {
+        return endpointName;
     }
 
     /**
-     * Method setPortName
+     * Method setEndpointName
      *
-     * @param portName
+     * @param endpointName
      */
-    public void setPortName(String portName) {
-        this.portName = portName;
+    public void setEndpointName(String endpointName) {
+        this.endpointName = endpointName;
     }
 }

Modified: webservices/axis/trunk/java/modules/core/src/org/apache/axis/addressing/miheaders/RelatesTo.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis/addressing/miheaders/RelatesTo.java?rev=191394&r1=191393&r2=191394&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis/addressing/miheaders/RelatesTo.java (original)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis/addressing/miheaders/RelatesTo.java Sun Jun 19 22:06:45 2005
@@ -27,7 +27,7 @@
     /**
      * Field relationshipType
      */
-    private String relationshipType = "wsa:Reply";
+    private String relationshipType;
 
     /**
      * Constructor RelatesTo

Modified: webservices/axis/trunk/java/modules/core/src/org/apache/axis/receivers/AbstractInOutSyncMessageReceiver.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis/receivers/AbstractInOutSyncMessageReceiver.java?rev=191394&r1=191393&r2=191394&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis/receivers/AbstractInOutSyncMessageReceiver.java (original)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis/receivers/AbstractInOutSyncMessageReceiver.java Sun Jun 19 22:06:45 2005
@@ -51,7 +51,7 @@
         messageInformationHeaders.setRelatesTo(
             new RelatesTo(
                 oldMessageInfoHeaders.getMessageId(),
-                AddressingConstants.WSA_RELATES_TO_RELATIONSHIP_TYPE_DEFAULT_VALUE));
+                AddressingConstants.Submission.WSA_RELATES_TO_RELATIONSHIP_TYPE_DEFAULT_VALUE));
         newmsgCtx.setMessageInformationHeaders(messageInformationHeaders);                
         newmsgCtx.setOperationContext(messgeCtx.getOperationContext());
         newmsgCtx.setServiceContext(messgeCtx.getServiceContext());

Modified: webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/AbstractTransportSender.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/AbstractTransportSender.java?rev=191394&r1=191393&r2=191394&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/AbstractTransportSender.java (original)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/AbstractTransportSender.java Sun Jun 19 22:06:45 2005
@@ -1,18 +1,18 @@
 /*
- * Copyright 2004,2005 The Apache Software Foundation.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
+* Copyright 2004,2005 The Apache Software Foundation.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+*      http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
 package org.apache.axis.transport;
 
 import java.io.OutputStream;
@@ -35,7 +35,7 @@
 
 /**
  * By the time this Class is invoked either the To EPR on the MessageContext should be set or
- * TRANSPORT_WRITER property set in the message Context with a Writer. This Class would write the 
+ * TRANSPORT_WRITER property set in the message Context with a Writer. This Class would write the
  * SOAPMessage using either of the methods in the order To then Writer.
  */
 public abstract class AbstractTransportSender extends AbstractHandler implements TransportSender {
@@ -76,7 +76,8 @@
         EndpointReference epr = null;
 
         if (msgContext.getTo() != null
-            && !AddressingConstants.EPR_ANONYMOUS_URL.equals(msgContext.getTo().getAddress())) {
+                && !AddressingConstants.Submission.WSA_ANONYMOUS_URL.equals(msgContext.getTo().getAddress())
+                && !AddressingConstants.Final.WSA_ANONYMOUS_URL.equals(msgContext.getTo().getAddress())) {
             epr = msgContext.getTo();
         }
 
@@ -95,7 +96,7 @@
                 throw new AxisFault("Both the TO and Property MessageContext.TRANSPORT_WRITER is Null, No where to send");
             }
         }
-        msgContext.getOperationContext().setProperty(Constants.RESPONSE_WRITTEN,Constants.VALUE_TRUE);
+        msgContext.getOperationContext().setProperty(Constants.RESPONSE_WRITTEN, Constants.VALUE_TRUE);
     }
 
     public void writeMessage(MessageContext msgContext, OutputStream out) throws AxisFault {
@@ -123,17 +124,19 @@
     }
 
     public abstract void startSendWithToAddress(MessageContext msgContext, OutputStream out)
-        throws AxisFault;
+            throws AxisFault;
+
     public abstract void finalizeSendWithToAddress(MessageContext msgContext)
-        throws AxisFault;
+            throws AxisFault;
+
+
+    public abstract void startSendWithOutputStreamFromIncomingConnection(MessageContext msgContext,
+                                                                         OutputStream out)
+            throws AxisFault;
+
+    public abstract void finalizeSendWithOutputStreamFromIncomingConnection(MessageContext msgContext)
+            throws AxisFault;
 
-    public abstract void startSendWithOutputStreamFromIncomingConnection(
-        MessageContext msgContext,
-    OutputStream out)
-        throws AxisFault;
-    public abstract void finalizeSendWithOutputStreamFromIncomingConnection(
-        MessageContext msgContext)
-        throws AxisFault;
 
     protected abstract OutputStream openTheConnection(EndpointReference epr) throws AxisFault;
 }

Modified: webservices/axis/trunk/java/modules/core/test/org/apache/axis/addressing/EndpointReferenceTypeTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/test/org/apache/axis/addressing/EndpointReferenceTypeTest.java?rev=191394&r1=191393&r2=191394&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/test/org/apache/axis/addressing/EndpointReferenceTypeTest.java (original)
+++ webservices/axis/trunk/java/modules/core/test/org/apache/axis/addressing/EndpointReferenceTypeTest.java Sun Jun 19 22:06:45 2005
@@ -56,8 +56,8 @@
 
     public void testGetAndSetPortType() {
         QName portType = new QName("www.someport.com", "port");
-        endpointReference.setPortType(portType);
-        assertEquals("PortType not set/get properly", portType, endpointReference.getPortType());
+        endpointReference.setInterfaceName(portType);
+        assertEquals("PortType not set/get properly", portType, endpointReference.getInterfaceName());
     }
 
     public void testGetAndSetReferenceProperties() {
@@ -99,7 +99,7 @@
         endpointReference.setServiceName(serviceName);
         retrievedServiceName = endpointReference.getServiceName();
         assertEquals("ServiceName name has not been get/set properly", serviceName.getName(), retrievedServiceName.getName());
-        assertEquals("ServiceName portName has not been get/set properly", serviceName.getPortName(), retrievedServiceName.getPortName());
+        assertEquals("ServiceName portName has not been get/set properly", serviceName.getEndpointName(), retrievedServiceName.getEndpointName());
     }
 
 }