You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by da...@apache.org on 2007/05/26 02:41:13 UTC

svn commit: r541830 - in /webservices/axis2/trunk/java/modules/integration: ./ test/org/apache/axis2/engine/ test/org/apache/axis2/engine/util/ test/org/apache/axis2/integration/

Author: davidillsley
Date: Fri May 25 17:41:12 2007
New Revision: 541830

URL: http://svn.apache.org/viewvc?view=rev&rev=541830
Log:
Yes, more local transport tests.. seems to save about 6 seconds per test.

Added:
    webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/integration/LocalWithAddressingTestCase.java
Removed:
    webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/engine/util/RequestCounterMessageReceiver.java
Modified:
    webservices/axis2/trunk/java/modules/integration/itest-build.xml
    webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/engine/ServiceGroupContextTest.java
    webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/engine/util/RequestCounter.java
    webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/integration/LocalTestCase.java

Modified: webservices/axis2/trunk/java/modules/integration/itest-build.xml
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/integration/itest-build.xml?view=diff&rev=541830&r1=541829&r2=541830
==============================================================================
--- webservices/axis2/trunk/java/modules/integration/itest-build.xml (original)
+++ webservices/axis2/trunk/java/modules/integration/itest-build.xml Fri May 25 17:41:12 2007
@@ -125,6 +125,10 @@
     	                  tofile="target/test-resources/repository-client/conf/axis2.xml"/>
 		<mkdir dir="target/toWar/services/"/>
 
+		<mkdir dir="target/test-resources/local"/>
+		<copy file="../addressing/target/addressing-${addressing_version}.mar"
+		    	                  tofile="target/test-resources/local/addressing.mar"/>
+				
 		<!-- Create Chunked enabled Repository -->
 		<mkdir dir="target/test-resources/chunking-enabledRepository"/>
 		<mkdir dir="target/test-resources/chunking-enabledRepository/conf"/>

Modified: webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/engine/ServiceGroupContextTest.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/engine/ServiceGroupContextTest.java?view=diff&rev=541830&r1=541829&r2=541830
==============================================================================
--- webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/engine/ServiceGroupContextTest.java (original)
+++ webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/engine/ServiceGroupContextTest.java Fri May 25 17:41:12 2007
@@ -1,110 +1,53 @@
+/*
+ * 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.axis2.engine;
 
-import junit.framework.Test;
-import junit.framework.TestSuite;
-import org.apache.axiom.om.OMAbstractFactory;
 import org.apache.axiom.om.OMElement;
-import org.apache.axiom.soap.SOAPEnvelope;
-import org.apache.axiom.soap.SOAPFactory;
 import org.apache.axis2.Constants;
-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.AxisService;
 import org.apache.axis2.engine.util.RequestCounter;
-import org.apache.axis2.engine.util.RequestCounterMessageReceiver;
-import org.apache.axis2.integration.UtilServer;
-import org.apache.axis2.integration.UtilServerBasedTestCase;
-import org.apache.axis2.util.Utils;
-
-import javax.xml.namespace.QName;
-
-/*
-* Copyright 2001-2004 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.
-*
-*/
-
-public class ServiceGroupContextTest extends UtilServerBasedTestCase {
-
-    /**
-     * This test will first sends a request to a dummy service deployed. That service will get
-     * message contexts as inputs and will put a property in the service group context to count the
-     * number of requests. Then the client, upon receiving the response, extracts the sgc id from
-     * the received message (this will come as a reference parameter in the ReplyTo EPR) and sets
-     * that as a top level soap header in the next request to the same service group. Server will
-     * correctly identify the service group from the information sent by the client and retrieve the
-     * sgc earlier used and will use that for the current request as well. The service will retrieve
-     * the request count from the sgc and increase that by one.
-     * <p/>
-     * Test will asserts whether the client gets the number of requests as 2, when he invokes two
-     * times.
-     */
-
-    protected EndpointReference targetEPR = new EndpointReference("http://127.0.0.1:" +
-            (UtilServer.TESTING_PORT) +
-            "/axis2/services/RequestCounter");
-    protected QName serviceName = new QName("RequestCounter");
-    protected QName operationName = new QName("getRequestCount");
-    protected QName transportName = new QName("http://localhost/my", "NullTransport");
-    protected AxisService service;
-
-    public static Test suite() {
-        return getTestSetup(new TestSuite(ServiceGroupContextTest.class));
-    }
+import org.apache.axis2.integration.LocalWithAddressingTestCase;
 
+/**
+ * This test will first sends a request to a dummy service deployed. That service will get
+ * message contexts as inputs and will put a property in the service group context to count the
+ * number of requests. Then the client, upon receiving the response, extracts the sgc id from
+ * the received message (this will come as a reference parameter in the ReplyTo EPR) and sets
+ * that as a top level soap header in the next request to the same service group. Server will
+ * correctly identify the service group from the information sent by the client and retrieve the
+ * sgc earlier used and will use that for the current request as well. The service will retrieve
+ * the request count from the sgc and increase that by one.
+ * <p/>
+ * Test will asserts whether the client gets the number of requests as 2, when he invokes two
+ * times.
+ */
+public class ServiceGroupContextTest extends LocalWithAddressingTestCase {
     protected void setUp() throws Exception {
-        service = Utils.createSimpleService(serviceName, new RequestCounterMessageReceiver(),
-                                            RequestCounter.class.getName(), operationName);
-//        service.setScope(Constants.SCOPE_TRANSPORT_SESSION);
+    	super.setUp();
+    	AxisService service = deployClassAsService("RequestCounter", RequestCounter.class);
         service.setScope(Constants.SCOPE_SOAP_SESSION);
-        UtilServer.deployService(service);
-    }
-
-    protected void tearDown() throws Exception {
-        UtilServer.unDeployService(serviceName);
-        UtilServer.unDeployClientService();
     }
 
     public void testEchoXMLSync() throws Exception {
-        SOAPFactory fac = OMAbstractFactory.getSOAP11Factory();
-
-        SOAPEnvelope payload = fac.getDefaultEnvelope();
-        Options options = new Options();
-        options.setTo(targetEPR);
-        options.setManageSession(true);
-        options.setTransportInProtocol(Constants.TRANSPORT_HTTP);
-
-        options.setAction(operationName.getLocalPart());
+        ServiceClient sender = getClient("RequestCounter", "getRequestCount");
+        sender.getOptions().setManageSession(true);
+        
+        sender.sendReceive(null);
 
-        ConfigurationContext configContext =
-                ConfigurationContextFactory.createConfigurationContextFromFileSystem(
-                        "target/test-resources/integrationRepo", null);
-        configContext.getAxisConfiguration().engageModule("addressing");
-        ServiceClient sender = new ServiceClient(configContext, null);
-        sender.setOptions(options);
-
-        sender.sendReceive(payload.getBody().getFirstElement());
-
-        SOAPEnvelope defaultEnvelope = fac.getDefaultEnvelope();
-
-        //TODO : ple imporove this , what I have done is a hack
-        OMElement result2 = sender.sendReceive(defaultEnvelope.getBody().getFirstElement());
+        OMElement result2 = sender.sendReceive(null);
         String text = result2.getText();
         assertEquals("Number of requests should be 2", 2, Integer.parseInt(text));
     }
-
 }

Modified: webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/engine/util/RequestCounter.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/engine/util/RequestCounter.java?view=diff&rev=541830&r1=541829&r2=541830
==============================================================================
--- webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/engine/util/RequestCounter.java (original)
+++ webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/engine/util/RequestCounter.java Fri May 25 17:41:12 2007
@@ -1,10 +1,4 @@
-package org.apache.axis2.engine.util;
-
-import org.apache.axis2.context.MessageContext;
-
 /*
- * Copyright 2001-2004 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
@@ -18,21 +12,36 @@
  * limitations under the License.
  *
  */
+package org.apache.axis2.engine.util;
 
-public class RequestCounter {
+import javax.xml.namespace.QName;
 
-    public static final String REQUEST_COUNT = "Request_Count";
+import org.apache.axiom.om.OMAbstractFactory;
+import org.apache.axiom.om.OMElement;
+import org.apache.axis2.context.MessageContext;
+import org.apache.axis2.context.ServiceGroupContext;
+
+public class RequestCounter {
 
-    public void getRequestCount(MessageContext inMessageContext, MessageContext outMessageContext) {
-        Integer requestCount =
-                (Integer)inMessageContext.getServiceGroupContext().getProperty(REQUEST_COUNT);
-        if (requestCount == null) {
-            requestCount = new Integer(1);
-        } else {
-            requestCount = new Integer(requestCount.intValue() + 1);
-        }
+	private static final String REQUEST_COUNT = "Request_Count";
 
-        inMessageContext.getServiceGroupContext().setProperty(REQUEST_COUNT, requestCount);
-    }
+	public OMElement getRequestCount(OMElement oe) {
+		ServiceGroupContext sgc = MessageContext.getCurrentMessageContext().getServiceGroupContext();
+		
+		Integer requestCount = (Integer)sgc.getProperty(REQUEST_COUNT);
+		if (requestCount == null) {
+			requestCount = new Integer(1);
+		} else {
+			requestCount = new Integer(requestCount.intValue() + 1);
+		}
+
+		sgc.setProperty(REQUEST_COUNT, requestCount);
+		
+		QName qn = new QName("http://ws.apache.org/axis2/namespaces/", "RequestCount","axis2");
+		OMElement response = OMAbstractFactory.getOMFactory().createOMElement(qn);
+		response.setText(requestCount.toString());
+		
+		return response;
+	}
 
 }

Modified: webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/integration/LocalTestCase.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/integration/LocalTestCase.java?view=diff&rev=541830&r1=541829&r2=541830
==============================================================================
--- webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/integration/LocalTestCase.java (original)
+++ webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/integration/LocalTestCase.java Fri May 25 17:41:12 2007
@@ -71,12 +71,6 @@
         addOutPhases(serverConfig.getOutFlowPhases());
         addOutPhases(serverConfig.getOutFaultFlowPhases());
 
-        // NOTE : If you want addressing (which you probably do), we can do something
-        // like this, or we can pull it off the classpath (better solution?)
-        //
-        // serverConfig.deployModule("repo/modules/addressing.mar");
-        // serverConfig.engageModule("addressing");
-
         ///////////////////////////////////////////////////////////////////////
         // Set up raw message receivers for OMElement based tests
 

Added: webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/integration/LocalWithAddressingTestCase.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/integration/LocalWithAddressingTestCase.java?view=auto&rev=541830
==============================================================================
--- webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/integration/LocalWithAddressingTestCase.java (added)
+++ webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/integration/LocalWithAddressingTestCase.java Fri May 25 17:41:12 2007
@@ -0,0 +1,36 @@
+/*
+ * 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.axis2.integration;
+
+
+/**
+ * LocalWithAddressingTestCase is an extendable base class which provides common functionality
+ * for building JUnit tests which exercise Axis2 using the (fast, in-process)
+ * "local" transport (with the addressing module engaged).
+ */
+public class LocalWithAddressingTestCase extends LocalTestCase {
+    protected void setUp() throws Exception {
+    	super.setUp();
+        // NOTE : If you want addressing (which you probably do), we can do something
+        // like this, or we can pull it off the classpath (better solution?)
+        
+    	String addressingModuleLocation = System.getProperty("basedir",".")+"/target/test-resources/local/addressing.mar";
+    	
+        serverConfig.deployModule(addressingModuleLocation);
+        serverConfig.engageModule("addressing");
+        
+        clientCtx.getAxisConfiguration().deployModule(addressingModuleLocation);
+        clientCtx.getAxisConfiguration().engageModule("addressing");
+    }
+}



---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org