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 he...@apache.org on 2005/07/28 14:57:04 UTC

svn commit: r225762 - /webservices/axis/trunk/java/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingInHandler.java

Author: hemapani
Date: Thu Jul 28 05:56:59 2005
New Revision: 225762

URL: http://svn.apache.org/viewcvs?rev=225762&view=rev
Log:
fix the http://issues.apache.org/jira/browse/AXIS2-79

Modified:
    webservices/axis/trunk/java/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingInHandler.java

Modified: webservices/axis/trunk/java/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingInHandler.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingInHandler.java?rev=225762&r1=225761&r2=225762&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingInHandler.java (original)
+++ webservices/axis/trunk/java/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingInHandler.java Thu Jul 28 05:56:59 2005
@@ -52,7 +52,6 @@
 
     private Log logger = LogFactory.getLog(getClass());
 
-
     public void invoke(MessageContext msgContext) throws AxisFault {
         logger.debug("Starting Addressing IN Handler .........");
         SOAPHeader header = msgContext.getEnvelope().getHeader();
@@ -62,37 +61,33 @@
 
         ArrayList addressingHeaders = null;
         try {
-            addressingHeaders =
-                    header.getHeaderBlocksWithNSURI(Submission.WSA_NAMESPACE);
+            addressingHeaders = header.getHeaderBlocksWithNSURI(Submission.WSA_NAMESPACE);
             if (addressingHeaders != null) {
                 addressingNamespace = Submission.WSA_NAMESPACE;
-                extractAddressingSubmissionInformationFromHeaders(header,
-                        msgContext.getMessageInformationHeaders(),
-                        addressingHeaders);
+                extractAddressingSubmissionInformationFromHeaders(
+                    header,
+                    msgContext.getMessageInformationHeaders(),
+                    addressingHeaders);
             } else {
-                addressingHeaders =
-                        header.getHeaderBlocksWithNSURI(Final.WSA_NAMESPACE);
+                addressingHeaders = header.getHeaderBlocksWithNSURI(Final.WSA_NAMESPACE);
                 if (addressingHeaders != null) {
                     addressingNamespace = Final.WSA_NAMESPACE;
-                    extractAddressingFinalInformationFromHeaders(header,
-                            msgContext.getMessageInformationHeaders(),
-                            addressingHeaders);
-                    extractReferenceParameters(header,
-                            msgContext.getMessageInformationHeaders());
+                    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 !!");
+                        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.");
+                        "No Addressing Headers present in the IN message. Addressing In Handler does nothing.");
                 }
             }
-            msgContext.setProperty(WS_ADDRESSING_VERSION,
-                    addressingNamespace,
-                    true);
+            msgContext.setProperty(WS_ADDRESSING_VERSION, addressingNamespace, true);
         } catch (AddressingException e) {
             logger.info("Exception occurred in Addressing Module");
             throw new AxisFault(e);
@@ -107,125 +102,108 @@
      * @param header
      * @param messageInformationHeaders
      */
-    private void extractReferenceParameters(SOAPHeader header,
-                                            MessageInformationHeadersCollection 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_IS_REFERENCE_PARAMETER_ATTRIBUTE))
-                    .getValue())) {
-                messageInformationHeaders.addReferenceParameter(
-                        soapHeaderBlock);
+            if (Final
+                .WSA_TYPE_ATTRIBUTE_VALUE
+                .equals(
+                    soapHeaderBlock
+                        .getFirstAttribute(
+                            new QName(
+                                Final.WSA_NAMESPACE,
+                                Final.WSA_IS_REFERENCE_PARAMETER_ATTRIBUTE))
+                        .getValue())) {
+                messageInformationHeaders.addReferenceParameter(soapHeaderBlock);
             }
         }
     }
 
     private void extractAddressingFinalInformationFromHeaders(
-            SOAPHeader header,
-            MessageInformationHeadersCollection messageInformationHeaders,
-            ArrayList addressingHeaders)
-            throws AddressingException {
-        extractCommonAddressingParameters(header,
-                messageInformationHeaders,
-                addressingHeaders,
-                Final.WSA_NAMESPACE);
+        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);
+        SOAPHeader header,
+        MessageInformationHeadersCollection messageInformationHeaders,
+        ArrayList addressingHeaders)
+        throws AddressingException {
+        extractCommonAddressingParameters(
+            header,
+            messageInformationHeaders,
+            addressingHeaders,
+            Submission.WSA_NAMESPACE);
     }
 
     public MessageInformationHeadersCollection extractCommonAddressingParameters(
-            SOAPHeader header,
-            MessageInformationHeadersCollection messageInformationHeadersCollection,
-            ArrayList addressingHeaders,
-            String addressingNamespace)
-            throws AddressingException {
+        SOAPHeader header,
+        MessageInformationHeadersCollection messageInformationHeadersCollection,
+        ArrayList addressingHeaders,
+        String addressingNamespace)
+        throws AddressingException {
         if (messageInformationHeadersCollection == null) {
-            messageInformationHeadersCollection =
-                    new MessageInformationHeadersCollection();
+            messageInformationHeadersCollection = new MessageInformationHeadersCollection();
         }
 
         Iterator addressingHeadersIt = addressingHeaders.iterator();
         while (addressingHeadersIt.hasNext()) {
             SOAPHeaderBlock soapHeaderBlock = (SOAPHeaderBlock) addressingHeadersIt.next();
             EndpointReference epr = null;
-            if (AddressingConstants.WSA_TO.equals(
-                    soapHeaderBlock.getLocalName())) {
-                epr = messageInformationHeadersCollection.getTo();
-                if (epr == null) {
-                    epr =
-                            new EndpointReference(AddressingConstants.WSA_TO,
-                                    soapHeaderBlock.getText());
-                    messageInformationHeadersCollection.setTo(epr);
-                }
-            } else if (AddressingConstants.WSA_FROM.equals(
-                    soapHeaderBlock.getLocalName())) {
+            if (AddressingConstants.WSA_TO.equals(soapHeaderBlock.getLocalName())) {
+                //here the addressing epr overidde what ever already there is 
+                epr = new EndpointReference(AddressingConstants.WSA_TO, soapHeaderBlock.getText());
+                messageInformationHeadersCollection.setTo(epr);
+            } else if (AddressingConstants.WSA_FROM.equals(soapHeaderBlock.getLocalName())) {
                 epr = messageInformationHeadersCollection.getFrom();
                 if (epr == null) {
-                    epr =
-                            new EndpointReference(AddressingConstants.WSA_FROM,
-                                    "");
+                    epr = new EndpointReference(AddressingConstants.WSA_FROM, "");
                     messageInformationHeadersCollection.setFrom(epr);
                 }
-                extractEPRAddressInformation(soapHeaderBlock,
-                        epr,
-                        addressingNamespace);
-            } else if (AddressingConstants.WSA_REPLY_TO.equals(
-                    soapHeaderBlock.getLocalName())) {
+                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, "");
+                    epr = new EndpointReference(AddressingConstants.WSA_REPLY_TO, "");
                     messageInformationHeadersCollection.setReplyTo(epr);
                 }
-                extractEPRAddressInformation(soapHeaderBlock,
-                        epr,
-                        addressingNamespace);
-            } else if (AddressingConstants.WSA_FAULT_TO.equals(
-                    soapHeaderBlock.getLocalName())) {
+                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, "");
+                    epr = new EndpointReference(AddressingConstants.WSA_FAULT_TO, "");
                     messageInformationHeadersCollection.setFaultTo(epr);
                 }
-                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())) {
-                messageInformationHeadersCollection.setAction(
-                        soapHeaderBlock.getText());
-            } else if (AddressingConstants.WSA_RELATES_TO.equals(
-                    soapHeaderBlock.getLocalName())) {
+                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())) {
+                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_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());
+                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);
             }
         }
@@ -233,18 +211,16 @@
         return messageInformationHeadersCollection;
     }
 
-
-    private void extractEPRAddressInformation(SOAPHeaderBlock headerBlock,
-                                              EndpointReference epr,
-                                              String addressingNamespace) {
-        OMElement address = headerBlock.getFirstChildWithName(new QName(
-                addressingNamespace,
-                AddressingConstants.EPR_ADDRESS));
+    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());
         }
 
-
     }
 }
-