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 2006/03/02 04:25:44 UTC

svn commit: r382270 - in /webservices/axis2/trunk/java/modules: addressing/src/META-INF/ addressing/src/org/apache/axis2/handlers/addressing/ core/src/org/apache/axis2/addressing/ core/src/org/apache/axis2/engine/ core/src/org/apache/axis2/transport/ht...

Author: chinthaka
Date: Wed Mar  1 19:25:43 2006
New Revision: 382270

URL: http://svn.apache.org/viewcvs?rev=382270&view=rev
Log:
- fixing test cases
- adding addressing in to out fault flow
- adding fromOM to EPR
- making To to be faultTo in a fault case

Modified:
    webservices/axis2/trunk/java/modules/addressing/src/META-INF/module.xml
    webservices/axis2/trunk/java/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingOutHandler.java
    webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/addressing/EndpointReference.java
    webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/engine/AxisEngine.java
    webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/AxisServlet.java
    webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/engine/EchoRawXMLTest.java
    webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/engine/FaultHandlingTest.java
    webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/engine/util/TestConstants.java

Modified: webservices/axis2/trunk/java/modules/addressing/src/META-INF/module.xml
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/addressing/src/META-INF/module.xml?rev=382270&r1=382269&r2=382270&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/addressing/src/META-INF/module.xml (original)
+++ webservices/axis2/trunk/java/modules/addressing/src/META-INF/module.xml Wed Mar  1 19:25:43 2006
@@ -15,4 +15,10 @@
             <order phase="MessageOut"/>
         </handler>
     </outflow>
+
+    <Outfaultflow>
+        <handler name="AddressingOutHandler" class="org.apache.axis2.handlers.addressing.AddressingOutHandler">
+            <order phase="MessageOut"/>
+        </handler>
+    </Outfaultflow>
 </module>

Modified: webservices/axis2/trunk/java/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingOutHandler.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingOutHandler.java?rev=382270&r1=382269&r2=382270&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingOutHandler.java (original)
+++ webservices/axis2/trunk/java/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingOutHandler.java Wed Mar  1 19:25:43 2006
@@ -48,6 +48,7 @@
 
     protected OMNamespace addressingNamespaceObject;
 
+    private MessageContext msgCtxt;
 
     public void invoke(MessageContext msgContext) throws AxisFault {
 
@@ -58,7 +59,7 @@
             log.info("Addressing is disbaled .....");
             return;
         }
-
+        this.msgCtxt = msgContext;
 
         Object addressingVersionFromCurrentMsgCtxt = msgContext.getProperty(WS_ADDRESSING_VERSION);
         if (addressingVersionFromCurrentMsgCtxt != null) {
@@ -221,16 +222,31 @@
         }
     }
 
-    private void processToEPR(Options messageContextOptions, SOAPEnvelope envelope) {
+    private void processToEPR(Options messageContextOptions, SOAPEnvelope envelope) throws AxisFault {
         EndpointReference epr = messageContextOptions.getTo();
         if (epr != null && !isAddressingHeaderAlreadyAvailable(WSA_TO, envelope, addressingNamespaceObject))
         {
-            String address = epr.getAddress();
+            Map referenceParameters = null;
+            String address = "";
+//            System.out.println("envelope = " + envelope);
+//            if (envelope.getBody().hasFault()) {
+//                MessageContext inMsgCtxt = msgCtxt.getOperationContext().getMessageContext(WSDLConstants.MESSAGE_LABEL_IN_VALUE);
+//                if (inMsgCtxt != null && inMsgCtxt.getFaultTo() != null && inMsgCtxt.getFaultTo().getAddress() != null)
+//                {
+//                    EndpointReference faultTo = inMsgCtxt.getFaultTo();
+//                    address = faultTo.getAddress();
+//                    referenceParameters = faultTo.getAllReferenceParameters();
+//                }
+//            } else {
+                address = epr.getAddress();
+                referenceParameters = epr.getAllReferenceParameters();
+//            }
+
             if (!"".equals(address) && address != null) {
                 SOAPHeaderBlock toHeaderBlock = envelope.getHeader().addHeaderBlock(WSA_TO, addressingNamespaceObject);
                 toHeaderBlock.setText(address);
             }
-            processReferenceInformation(epr.getAllReferenceParameters(), envelope.getHeader());
+            processReferenceInformation(referenceParameters, envelope.getHeader());
         }
     }
 

Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/addressing/EndpointReference.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/addressing/EndpointReference.java?rev=382270&r1=382269&r2=382270&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/addressing/EndpointReference.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/addressing/EndpointReference.java Wed Mar  1 19:25:43 2006
@@ -24,6 +24,7 @@
 import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.Iterator;
 import java.util.Map;
 
 /**
@@ -45,7 +46,7 @@
      * </EndpointReference>
      */
 
-
+    private String name;
     private String address;
     private OMElement metaData;
     private Map referenceParameters;
@@ -130,6 +131,14 @@
         this.metaData = metaData;
     }
 
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
     /**
      * Set a Map with QName as the key and an OMElement
      * as the value
@@ -138,6 +147,21 @@
      */
     public void setReferenceParameters(Map referenceParameters) {
         this.referenceParameters = referenceParameters;
+    }
+
+    public void fromOM(OMElement eprOMElement) {
+        setAddress(eprOMElement.getFirstChildWithName(new QName("Address")).getText());
+        Iterator refParams = eprOMElement.getChildrenWithName(new QName("ReferenceParameters"));
+        while (refParams.hasNext()) {
+            OMElement omElement = (OMElement) refParams.next();
+            addReferenceParameter(omElement);
+        }
+        setMetaData(eprOMElement.getFirstChildWithName(new QName("MetaData")));
+        setName(eprOMElement.getLocalName());
+    }
+
+    public void toOM() {
+        throw new UnsupportedOperationException("Yet to be implemented !!");
     }
 
 }

Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/engine/AxisEngine.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/engine/AxisEngine.java?rev=382270&r1=382269&r2=382270&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/engine/AxisEngine.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/engine/AxisEngine.java Wed Mar  1 19:25:43 2006
@@ -31,6 +31,7 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.ws.commons.om.OMAbstractFactory;
+import org.apache.ws.commons.om.OMElement;
 import org.apache.ws.commons.soap.SOAP11Constants;
 import org.apache.ws.commons.soap.SOAP12Constants;
 import org.apache.ws.commons.soap.SOAPEnvelope;
@@ -41,6 +42,7 @@
 import org.apache.ws.commons.soap.SOAPHeaderBlock;
 import org.apache.ws.commons.soap.SOAPProcessingException;
 
+import javax.xml.namespace.QName;
 import java.util.ArrayList;
 import java.util.Iterator;
 
@@ -142,7 +144,8 @@
         faultContext.setTransportOut(processingContext.getTransportOut());
 
         // register the fault message context
-        if (processingContext.getAxisOperation() != null && processingContext.getOperationContext() != null){
+        if (processingContext.getAxisOperation() != null && processingContext.getOperationContext() != null)
+        {
             processingContext.getAxisOperation().addFaultMessageContext(faultContext, processingContext.getOperationContext());
         }
 
@@ -156,7 +159,14 @@
 
         EndpointReference faultTo = processingContext.getFaultTo();
         if (faultTo != null) {
-            faultContext.setFaultTo(processingContext.getFaultTo());
+            faultContext.setTo(processingContext.getFaultTo());
+        } else
+        if (processingContext.getEnvelope().getHeader() != null && processingContext.getEnvelope().getHeader().getFirstChildWithName(new QName("FaultTo")) != null)
+        {
+            OMElement faultToElement = processingContext.getEnvelope().getHeader().getFirstChildWithName(new QName("FaultTo"));
+            faultTo = new EndpointReference("");
+            faultTo.fromOM(faultToElement);
+            faultContext.setTo(faultTo);
         }
 
         if (faultTo == null || AddressingConstants.Final.WSA_ANONYMOUS_URL.equals(faultTo.getAddress())
@@ -488,6 +498,10 @@
 
         // TODO: Make this clearer - should we have transport senders and messagereceivers as Handlers?
         if (!msgContext.isPaused()) {
+
+//            msgContext.setExecutionChain((ArrayList) msgContext.getConfigurationContext().getAxisConfiguration().getOutFaultFlow().clone());
+//            msgContext.setFLOW(MessageContext.OUT_FLOW);
+//            invoke(msgContext);
 
             // Actually send the SOAP Fault
             TransportSender sender = msgContext.getTransportOut().getSender();

Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/AxisServlet.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/AxisServlet.java?rev=382270&r1=382269&r2=382270&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/AxisServlet.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/AxisServlet.java Wed Mar  1 19:25:43 2006
@@ -201,10 +201,10 @@
             config.getServletContext().setAttribute(CONFIGURATION_CONTEXT, configContext);
             ListenerManager listenerManager = new ListenerManager();
             listenerManager.init(configContext);
-            TransportInDescription trsindes = new TransportInDescription(
+            TransportInDescription transportInDescription = new TransportInDescription(
                     new QName(Constants.TRANSPORT_HTTP));
-            trsindes.setReceiver(this);
-            listenerManager.addListener(trsindes, true);
+            transportInDescription.setReceiver(this);
+            listenerManager.addListener(transportInDescription, true);
         } catch (Exception e) {
             throw new ServletException(e);
         }

Modified: webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/engine/EchoRawXMLTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/engine/EchoRawXMLTest.java?rev=382270&r1=382269&r2=382270&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/engine/EchoRawXMLTest.java (original)
+++ webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/engine/EchoRawXMLTest.java Wed Mar  1 19:25:43 2006
@@ -39,6 +39,7 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.ws.commons.om.OMElement;
+import org.apache.ws.commons.soap.SOAP12Constants;
 
 import javax.xml.namespace.QName;
 
@@ -122,6 +123,7 @@
         OMElement payload = TestingUtils.createDummyOMElement();
         Options options = new Options();
         options.setTo(targetEPR);
+        options.setSoapVersionURI(SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI);
         options.setTransportInProtocol(Constants.TRANSPORT_HTTP);
 
         ConfigurationContext configContext =

Modified: webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/engine/FaultHandlingTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/engine/FaultHandlingTest.java?rev=382270&r1=382269&r2=382270&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/engine/FaultHandlingTest.java (original)
+++ webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/engine/FaultHandlingTest.java Wed Mar  1 19:25:43 2006
@@ -36,9 +36,12 @@
 import org.apache.ws.commons.soap.SOAPEnvelope;
 import org.apache.ws.commons.soap.SOAPFactory;
 import org.apache.ws.commons.soap.SOAPFault;
+import org.apache.ws.commons.soap.impl.llom.builder.StAXSOAPModelBuilder;
 import org.apache.wsdl.WSDLConstants;
 
+import javax.xml.stream.XMLInputFactory;
 import javax.xml.stream.XMLStreamException;
+import java.io.ByteArrayInputStream;
 import java.io.File;
 import java.util.ArrayList;
 
@@ -108,16 +111,39 @@
         assertEquals(fault.getCode().getValue().getText().trim(), SOAP11Constants.FAULT_CODE_SENDER);
 
     }
+     public void testRefParamsWithFaultTo() throws AxisFault, XMLStreamException {
+        SOAPEnvelope soapEnvelope = getSOAPEnvelopeWithRefParamsInFaultTo();
+        SOAPEnvelope resposeEnvelope = getResponse(soapEnvelope);
+
+         System.out.println("resposeEnvelope = " + resposeEnvelope);
+    }
+
+    private SOAPEnvelope getSOAPEnvelopeWithRefParamsInFaultTo() throws XMLStreamException {
+        String soap = "<env:Envelope xmlns:env=\"http://www.w3.org/2003/05/soap-envelope\" xmlns:wsa=\"http://www.w3.org/2005/08/addressing\">  \n" +
+                "      <env:Header>    \n" +
+                "         <wsa:Action>http://example.org/action/echoIn</wsa:Action>    \n" +
+                "         <wsa:To>http://www-lk.wso2.com:9762/axis2/services/wsaTestService/</wsa:To>    \n" +
+                "         <wsa:MessageID>urn:uuid:BAB79B77-E9AE-4B9F-A8B4-624BB9E7E919</wsa:MessageID>    \n" +
+                "         <wsa:ReplyTo>      \n" +
+                "            <wsa:Address>http://www.w3.org/2005/08/addressing/anonymous</wsa:Address>      \n" +
+                "            <wsa:ReferenceParameters xmlns:customer=\"http://example.org/customer\">        \n" +
+                "               <customer:CustomerKey>Key#123456789</customer:CustomerKey>      \n" +
+                "            </wsa:ReferenceParameters>    \n" +
+                "         </wsa:ReplyTo>    \n" +
+                "         <wsa:FaultTo>      \n" +
+                "            <wsa:Address>http://www.w3.org/2005/08/addressing/anonymous</wsa:Address>      \n" +
+                "            <wsa:ReferenceParameters xmlns:customer=\"http://example.org/customer\">        \n" +
+                "               <customer:CustomerKey>Fault#123456789</customer:CustomerKey>      \n" +
+                "            </wsa:ReferenceParameters>    \n" +
+                "         </wsa:FaultTo>  \n" +
+                "      </env:Header>  \n" +
+                "      <env:Body>    \n" +
+                "         <m:echoIn xmlns:m=\"http://example.org/echo\" />  \n" +
+                "      </env:Body>\n" +
+                "   </env:Envelope>";
+        return (SOAPEnvelope) new StAXSOAPModelBuilder(XMLInputFactory.newInstance().createXMLStreamReader(new ByteArrayInputStream(soap.getBytes())), SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI).getDocumentElement();
+    }
 
-//    public void testSOAPFaultSerializing(){
-//        try {
-//            SOAPEnvelope envelope = createEnvelope("soap/fault/test.xml");
-//            SOAPEnvelope response = getResponse(envelope);
-//             printElement(response);
-//            assertTrue(true);
-//        } catch (Exception e) {
-//        }
-//    }
 
     private void checkSOAPFaultContent(SOAPEnvelope soapEnvelope) {
         assertTrue(soapEnvelope.getBody().hasFault());

Modified: webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/engine/util/TestConstants.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/engine/util/TestConstants.java?rev=382270&r1=382269&r2=382270&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/engine/util/TestConstants.java (original)
+++ webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/engine/util/TestConstants.java Wed Mar  1 19:25:43 2006
@@ -27,6 +27,7 @@
 public interface TestConstants {
     public static final EndpointReference targetEPR = new EndpointReference(
             "http://127.0.0.1:" + (UtilServer.TESTING_PORT)
+//            "http://127.0.0.1:" + 5556
                     + "/axis2/services/EchoXMLService/echoOMElement");
 
     public static final QName serviceName = new QName("EchoXMLService");