You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-commits@axis.apache.org by ve...@apache.org on 2011/05/27 23:46:16 UTC

svn commit: r1128474 - in /axis/axis2/java/core/trunk/modules/transport/local: ./ test-resources/ test-resources/org/ test-resources/org/apache/ test-resources/org/apache/axis2/ test-resources/org/apache/axis2/transport/ test-resources/org/apache/axis2...

Author: veithen
Date: Fri May 27 21:46:16 2011
New Revision: 1128474

URL: http://svn.apache.org/viewvc?rev=1128474&view=rev
Log:
Added a basic unit test for the local transport.

Added:
    axis/axis2/java/core/trunk/modules/transport/local/test/
    axis/axis2/java/core/trunk/modules/transport/local/test-resources/
    axis/axis2/java/core/trunk/modules/transport/local/test-resources/org/
    axis/axis2/java/core/trunk/modules/transport/local/test-resources/org/apache/
    axis/axis2/java/core/trunk/modules/transport/local/test-resources/org/apache/axis2/
    axis/axis2/java/core/trunk/modules/transport/local/test-resources/org/apache/axis2/transport/
    axis/axis2/java/core/trunk/modules/transport/local/test-resources/org/apache/axis2/transport/local/
    axis/axis2/java/core/trunk/modules/transport/local/test-resources/org/apache/axis2/transport/local/axis2.xml   (with props)
    axis/axis2/java/core/trunk/modules/transport/local/test/org/
    axis/axis2/java/core/trunk/modules/transport/local/test/org/apache/
    axis/axis2/java/core/trunk/modules/transport/local/test/org/apache/axis2/
    axis/axis2/java/core/trunk/modules/transport/local/test/org/apache/axis2/transport/
    axis/axis2/java/core/trunk/modules/transport/local/test/org/apache/axis2/transport/local/
    axis/axis2/java/core/trunk/modules/transport/local/test/org/apache/axis2/transport/local/EchoMessageReceiver.java   (with props)
    axis/axis2/java/core/trunk/modules/transport/local/test/org/apache/axis2/transport/local/LocalTransportTest.java   (with props)
Modified:
    axis/axis2/java/core/trunk/modules/transport/local/pom.xml

Modified: axis/axis2/java/core/trunk/modules/transport/local/pom.xml
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/transport/local/pom.xml?rev=1128474&r1=1128473&r2=1128474&view=diff
==============================================================================
--- axis/axis2/java/core/trunk/modules/transport/local/pom.xml (original)
+++ axis/axis2/java/core/trunk/modules/transport/local/pom.xml Fri May 27 21:46:16 2011
@@ -39,6 +39,11 @@
     <build>
         <sourceDirectory>src</sourceDirectory>
         <testSourceDirectory>test</testSourceDirectory>
+        <testResources>
+            <testResource>
+                <directory>test-resources</directory>
+            </testResource>
+        </testResources>
         <plugins>
             <plugin>
                 <artifactId>maven-remote-resources-plugin</artifactId>
@@ -95,5 +100,10 @@
             <artifactId>axis2-kernel</artifactId>
             <version>${project.version}</version>
         </dependency>
+        <dependency>
+            <groupId>xmlunit</groupId>
+            <artifactId>xmlunit</artifactId>
+            <scope>test</scope>
+        </dependency>
     </dependencies>
 </project>

Added: axis/axis2/java/core/trunk/modules/transport/local/test-resources/org/apache/axis2/transport/local/axis2.xml
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/transport/local/test-resources/org/apache/axis2/transport/local/axis2.xml?rev=1128474&view=auto
==============================================================================
--- axis/axis2/java/core/trunk/modules/transport/local/test-resources/org/apache/axis2/transport/local/axis2.xml (added)
+++ axis/axis2/java/core/trunk/modules/transport/local/test-resources/org/apache/axis2/transport/local/axis2.xml Fri May 27 21:46:16 2011
@@ -0,0 +1,157 @@
+<?xml version="1.0"?>
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one
+  ~ or more contributor license agreements. See the NOTICE file
+  ~ distributed with this work for additional information
+  ~ regarding copyright ownership. The ASF licenses this file
+  ~ to you 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.
+  -->
+<axisconfig name="AxisJava2.0">
+    <parameter name="hotdeployment">false</parameter>
+    <parameter name="hotupdate">false</parameter>
+    <parameter name="enableMTOM">false</parameter>
+    <parameter name="disableREST">true</parameter>
+    
+    <messageReceivers>
+        <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only"
+                         class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver"/>
+        <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"
+                         class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
+        <messageReceiver mep="http://www.w3.org/2006/01/wsdl/in-only"
+                         class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver"/>
+        <messageReceiver mep="http://www.w3.org/2006/01/wsdl/in-out"
+                         class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
+    </messageReceivers>
+
+    <messageFormatters>
+        <messageFormatter contentType="application/x-www-form-urlencoded"
+                         class="org.apache.axis2.transport.http.XFormURLEncodedFormatter"/>
+        <messageFormatter contentType="multipart/form-data"
+                         class="org.apache.axis2.transport.http.MultipartFormDataFormatter"/>
+        <messageFormatter contentType="application/xml"
+                         class="org.apache.axis2.transport.http.ApplicationXMLFormatter"/>
+        <messageFormatter contentType="text/xml"
+                         class="org.apache.axis2.transport.http.SOAPMessageFormatter"/>
+        <messageFormatter contentType="application/soap+xml"
+                         class="org.apache.axis2.transport.http.SOAPMessageFormatter"/>
+    </messageFormatters>
+
+    <messageBuilders>
+        <messageBuilder contentType="application/xml"
+                         class="org.apache.axis2.builder.ApplicationXMLBuilder"/>
+        <messageBuilder contentType="application/x-www-form-urlencoded"
+                         class="org.apache.axis2.builder.XFormURLEncodedBuilder"/>
+    </messageBuilders>
+
+    <transportSender name="local" class="org.apache.axis2.transport.local.LocalTransportSender"/>
+
+    <!-- ================================================= -->
+    <!-- Phases  -->
+    <!-- ================================================= -->
+    <phaseOrder type="InFlow">
+        <!--  System pre-defined phases       -->
+         <phase name="Transport">
+            <handler name="RequestURIBasedDispatcher"
+                     class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher">
+                <order phase="Transport"/>
+            </handler>
+            <handler name="SOAPActionBasedDispatcher"
+                     class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher">
+                <order phase="Transport"/>
+            </handler>
+         </phase>
+        <phase name="Addressing">
+            <handler name="AddressingBasedDispatcher"
+                     class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
+                <order phase="Addressing"/>
+            </handler>
+        </phase>
+        <phase name="Security"/>
+        <phase name="PreDispatch"/>
+        <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
+            <handler name="RequestURIBasedDispatcher"
+                     class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
+            <handler name="SOAPActionBasedDispatcher"
+                     class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
+            <handler name="RequestURIOperationDispatcher"
+                     class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
+            <handler name="SOAPMessageBodyBasedDispatcher"
+                     class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
+
+            <handler name="HTTPLocationBasedDispatcher"
+                     class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
+        </phase>
+        <!--  System pre defined phases       -->
+        <phase name="RMPhase"/>
+        <phase name="OpPhase"/>
+        <!--   After Postdispatch phase module author or or service author can add any phase he want      -->
+        <phase name="OperationInPhase"/>
+    </phaseOrder>
+    <phaseOrder type="OutFlow">
+        <phase name="RMPhase"/>
+        <phase name="OpPhase"/>
+        <!--      user can add his own phases to this area  -->
+        <phase name="OperationOutPhase"/>
+        <!--system predefined phase-->
+        <!--these phase will run irrespective of the service-->
+        <phase name="PolicyDetermination"/>
+        <phase name="MessageOut"/>
+	    <phase name="Security"/>
+    </phaseOrder>
+    <phaseOrder type="InFaultFlow">
+        <phase name="Transport">
+            <handler name="RequestURIBasedDispatcher"
+                     class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher">
+                <order phase="Transport"/>
+            </handler>
+            <handler name="SOAPActionBasedDispatcher"
+                     class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher">
+                <order phase="Transport"/>
+            </handler>
+        </phase>
+        <phase name="Addressing">
+             <handler name="AddressingBasedDispatcher"
+                     class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
+                 <order phase="Addressing"/>
+            </handler>
+        </phase>
+        <phase name="Security"/>
+        <phase name="PreDispatch"/>
+        <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
+            <handler name="RequestURIBasedDispatcher"
+                     class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
+            <handler name="SOAPActionBasedDispatcher"
+                     class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
+            <handler name="RequestURIOperationDispatcher"
+                     class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
+            <handler name="SOAPMessageBodyBasedDispatcher"
+                     class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
+
+            <handler name="HTTPLocationBasedDispatcher"
+                     class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
+        </phase>
+        <phase name="RMPhase"/>
+        <phase name="OpPhase"/>
+        <!--      user can add his own phases to this area  -->
+        <phase name="OperationInFaultPhase"/>
+    </phaseOrder>
+    <phaseOrder type="OutFaultFlow">
+        <!--      user can add his own phases to this area  -->
+        <phase name="OperationOutFaultPhase"/>
+        <phase name="RMPhase"/>
+        <phase name="PolicyDetermination"/>
+        <phase name="MessageOut"/>
+        <phase name="Security"/>
+    </phaseOrder>
+</axisconfig>
\ No newline at end of file

Propchange: axis/axis2/java/core/trunk/modules/transport/local/test-resources/org/apache/axis2/transport/local/axis2.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Added: axis/axis2/java/core/trunk/modules/transport/local/test/org/apache/axis2/transport/local/EchoMessageReceiver.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/transport/local/test/org/apache/axis2/transport/local/EchoMessageReceiver.java?rev=1128474&view=auto
==============================================================================
--- axis/axis2/java/core/trunk/modules/transport/local/test/org/apache/axis2/transport/local/EchoMessageReceiver.java (added)
+++ axis/axis2/java/core/trunk/modules/transport/local/test/org/apache/axis2/transport/local/EchoMessageReceiver.java Fri May 27 21:46:16 2011
@@ -0,0 +1,43 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.axis2.transport.local;
+
+import org.apache.axiom.attachments.Attachments;
+import org.apache.axis2.AxisFault;
+import org.apache.axis2.context.MessageContext;
+import org.apache.axis2.receivers.AbstractInOutMessageReceiver;
+
+public class EchoMessageReceiver extends AbstractInOutMessageReceiver {
+    @Override
+    public void invokeBusinessLogic(MessageContext inMessage, MessageContext outMessage)
+            throws AxisFault {
+        
+        outMessage.setEnvelope(inMessage.getEnvelope());
+        Attachments inAttachments = inMessage.getAttachmentMap();
+        Attachments outAttachments = outMessage.getAttachmentMap();
+        for (String contentId : inAttachments.getAllContentIDs()) {
+            if (!contentId.equals(inAttachments.getSOAPPartContentID())) {
+                outAttachments.addDataHandler(contentId,
+                        inAttachments.getDataHandler(contentId));
+            }
+        }
+        outMessage.setDoingSwA(inMessage.isDoingSwA());
+        outMessage.setDoingMTOM(inMessage.isDoingMTOM());
+    }
+}

Propchange: axis/axis2/java/core/trunk/modules/transport/local/test/org/apache/axis2/transport/local/EchoMessageReceiver.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: axis/axis2/java/core/trunk/modules/transport/local/test/org/apache/axis2/transport/local/LocalTransportTest.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/transport/local/test/org/apache/axis2/transport/local/LocalTransportTest.java?rev=1128474&view=auto
==============================================================================
--- axis/axis2/java/core/trunk/modules/transport/local/test/org/apache/axis2/transport/local/LocalTransportTest.java (added)
+++ axis/axis2/java/core/trunk/modules/transport/local/test/org/apache/axis2/transport/local/LocalTransportTest.java Fri May 27 21:46:16 2011
@@ -0,0 +1,63 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.axis2.transport.local;
+
+import javax.xml.namespace.QName;
+
+import org.apache.axiom.om.OMAbstractFactory;
+import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.OMFactory;
+import org.apache.axis2.addressing.EndpointReference;
+import org.apache.axis2.client.Options;
+import org.apache.axis2.client.ServiceClient;
+import org.apache.axis2.context.ConfigurationContext;
+import org.apache.axis2.context.ConfigurationContextFactory;
+import org.apache.axis2.description.AxisOperation;
+import org.apache.axis2.description.AxisService;
+import org.apache.axis2.description.InOutAxisOperation;
+import org.custommonkey.xmlunit.XMLAssert;
+import org.junit.Test;
+
+public class LocalTransportTest {
+    @Test
+    public void test() throws Exception {
+        ConfigurationContext configurationContext =
+            ConfigurationContextFactory.createConfigurationContextFromURIs(
+                    LocalTransportTest.class.getResource("axis2.xml"), null);
+        
+        AxisService service = new AxisService("Echo");
+        AxisOperation operation = new InOutAxisOperation(new QName("echo"));
+        operation.setMessageReceiver(new EchoMessageReceiver());
+        service.addOperation(operation);
+        service.addParameter(AxisService.SUPPORT_SINGLE_OP, true);
+        configurationContext.getAxisConfiguration().addService(service);
+        
+        OMFactory factory = OMAbstractFactory.getOMFactory();
+        OMElement requestElement = factory.createOMElement("test", "urn:test", "t");
+        requestElement.setText("Hi there!");
+        
+        Options options = new Options();
+        options.setTo(new EndpointReference("local://localhost/axis2/services/Echo"));
+        ServiceClient serviceClient = new ServiceClient(configurationContext, null);
+        serviceClient.setOptions(options);
+        OMElement responseElement = serviceClient.sendReceive(requestElement);
+        
+        XMLAssert.assertXMLEqual(requestElement.toString(), responseElement.toString());
+    }
+}

Propchange: axis/axis2/java/core/trunk/modules/transport/local/test/org/apache/axis2/transport/local/LocalTransportTest.java
------------------------------------------------------------------------------
    svn:eol-style = native