You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by jb...@apache.org on 2006/03/03 21:56:39 UTC

svn commit: r382926 - in /incubator/tuscany/java/sca/tomcat/src/test: java/org/apache/tuscany/tomcat/integration/AbstractTomcatTest.java java/org/apache/tuscany/tomcat/integration/TomcatIntegrationTestCase.java resources/app1/WEB-INF/axis2.xml

Author: jboynes
Date: Fri Mar  3 12:56:36 2006
New Revision: 382926

URL: http://svn.apache.org/viewcvs?rev=382926&view=rev
Log:
add mock request/response objects to avoid needed an actual socket open
load and attempt to send in a webservice request
this is working to the point where axis rejects the input stream

Added:
    incubator/tuscany/java/sca/tomcat/src/test/resources/app1/WEB-INF/axis2.xml   (with props)
Modified:
    incubator/tuscany/java/sca/tomcat/src/test/java/org/apache/tuscany/tomcat/integration/AbstractTomcatTest.java
    incubator/tuscany/java/sca/tomcat/src/test/java/org/apache/tuscany/tomcat/integration/TomcatIntegrationTestCase.java

Modified: incubator/tuscany/java/sca/tomcat/src/test/java/org/apache/tuscany/tomcat/integration/AbstractTomcatTest.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/tomcat/src/test/java/org/apache/tuscany/tomcat/integration/AbstractTomcatTest.java?rev=382926&r1=382925&r2=382926&view=diff
==============================================================================
--- incubator/tuscany/java/sca/tomcat/src/test/java/org/apache/tuscany/tomcat/integration/AbstractTomcatTest.java (original)
+++ incubator/tuscany/java/sca/tomcat/src/test/java/org/apache/tuscany/tomcat/integration/AbstractTomcatTest.java Fri Mar  3 12:56:36 2006
@@ -1,25 +1,44 @@
+/**
+ *
+ * Copyright 2006 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.tuscany.tomcat.integration;
 
 import junit.framework.TestCase;
 import org.apache.catalina.Host;
+import org.apache.catalina.Globals;
 import org.apache.catalina.connector.Connector;
 import org.apache.catalina.connector.Request;
 import org.apache.catalina.connector.Response;
 import org.apache.catalina.core.StandardEngine;
+import org.apache.catalina.core.ApplicationFilterFactory;
 
 import java.io.File;
+import java.io.IOException;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.Enumeration;
+import java.util.Collections;
 
 /**
- * Created by IntelliJ IDEA.
- * User: jboynes
- * Date: Mar 2, 2006
- * Time: 12:20:07 PM
- * To change this template use File | Settings | File Templates.
+ * @version $Rev$ $Date$
  */
 public class AbstractTomcatTest extends TestCase {
     protected Host host;
-    protected Request request;
-    protected Response response;
+    protected MockRequest request;
+    protected MockResponse response;
     protected StandardEngine engine;
 
     protected void setupTomcat(File baseDir, Host host) throws Exception {
@@ -38,11 +57,128 @@
 
         // build a empty request/response
         Connector connector = new Connector("HTTP/1.1");
-        request = connector.createRequest();
-        org.apache.coyote.Request coyoteRequest = new org.apache.coyote.Request();
-        request.setCoyoteRequest(coyoteRequest);
-        response = connector.createResponse();
-        org.apache.coyote.Response coyoteResponse = new org.apache.coyote.Response();
-        response.setCoyoteResponse(coyoteResponse);
+        request = new MockRequest();
+        request.setConnector(connector);
+        response = new MockResponse();
+        request.setResponse(response);
+        request.setMethod("POST");
+        request.setScheme("http");
+    }
+
+    public static class MockRequest extends Request {
+        private String method;
+        private String scheme;
+        private String requestURI;
+        private String contentType;
+        private Map<String,String> headers = new HashMap();
+
+        public void setScheme(String scheme) {
+            this.scheme = scheme;
+        }
+
+        public void setMethod(String method) {
+            this.method = method;
+        }
+
+        public void setRequestURI(String requestURI) {
+            this.requestURI = requestURI;
+        }
+
+        public String getScheme() {
+            return scheme;
+        }
+
+        public String getMethod() {
+            return method;
+        }
+
+        public int getServerPort() {
+            return 80;
+        }
+
+        public String getServerName() {
+            return "localhost";
+        }
+
+        public String getRequestURI() {
+            return requestURI;
+        }
+
+        public void setAttribute(String name, Object value) {
+            if (name.startsWith("org.apache.tomcat.")) {
+                return;
+            }
+            super.setAttribute(name, value);
+        }
+
+        public Object getAttribute(String name) {
+            if (name.equals(Globals.DISPATCHER_TYPE_ATTR)) {
+                return (dispatcherType == null)
+                    ? ApplicationFilterFactory.REQUEST_INTEGER
+                    : dispatcherType;
+            } else if (name.equals(Globals.DISPATCHER_REQUEST_PATH_ATTR)) {
+                return (requestDispatcherPath == null)
+                    ? getRequestPathMB().toString()
+                    : requestDispatcherPath.toString();
+            }
+
+            return attributes.get(name);
+        }
+
+        public String getHeader(String name) {
+            return headers.get(name);
+        }
+
+        public Enumeration getHeaderNames() {
+            return Collections.enumeration(headers.keySet());
+        }
+
+        public String getContentType() {
+            return contentType;
+        }
+    }
+
+    public static class MockResponse extends Response {
+        private boolean suspended;
+        private int status;
+        private Map headers = new HashMap();
+
+        public boolean isCommitted() {
+            return false;
+        }
+
+        public boolean isAppCommitted() {
+            return false;
+        }
+
+        public void sendAcknowledgement() {
+        }
+
+        public void setSuspended(boolean suspended) {
+            this.suspended = suspended;
+        }
+
+        public boolean isSuspended() {
+            return suspended;
+        }
+
+        public void setStatus(int status, String message) {
+            this.status = status;
+        }
+
+        public int getStatus() {
+            return status;
+        }
+
+        public void reset() {
+        }
+
+        public void addHeader(String name, String value) {
+            headers.put(name, value);
+        }
+
+        public String[] getHeaderNames() {
+            return (String[]) headers.keySet().toArray(new String[headers.size()]);
+        }
     }
 }

Modified: incubator/tuscany/java/sca/tomcat/src/test/java/org/apache/tuscany/tomcat/integration/TomcatIntegrationTestCase.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/tomcat/src/test/java/org/apache/tuscany/tomcat/integration/TomcatIntegrationTestCase.java?rev=382926&r1=382925&r2=382926&view=diff
==============================================================================
--- incubator/tuscany/java/sca/tomcat/src/test/java/org/apache/tuscany/tomcat/integration/TomcatIntegrationTestCase.java (original)
+++ incubator/tuscany/java/sca/tomcat/src/test/java/org/apache/tuscany/tomcat/integration/TomcatIntegrationTestCase.java Fri Mar  3 12:56:36 2006
@@ -18,7 +18,7 @@
 
 import org.apache.catalina.Valve;
 import org.apache.catalina.Loader;
-import org.apache.catalina.loader.WebappLoader;
+import org.apache.catalina.Wrapper;
 import org.apache.catalina.core.StandardContext;
 import org.apache.catalina.core.StandardWrapper;
 import org.apache.catalina.startup.ContextConfig;
@@ -34,7 +34,7 @@
 public class TomcatIntegrationTestCase extends AbstractTomcatTest {
     protected File app1;
 
-    public void testRuntimeIntegration() throws Exception {
+    public void testComponentIntegration() throws Exception {
         // create the webapp Context
         StandardContext ctx = new StandardContext();
         ctx.addLifecycleListener(new ContextConfig());
@@ -61,6 +61,25 @@
         request.setContext(ctx);
         request.setWrapper(wrapper);
         host.invoke(request, response);
+
+        host.removeChild(ctx);
+    }
+
+    public void testWebServiceIntegration() throws Exception {
+        // create the webapp Context
+        StandardContext ctx = new StandardContext();
+        ctx.addLifecycleListener(new ContextConfig());
+        ctx.setName("testContext");
+        ctx.setDocBase(app1.getAbsolutePath());
+
+        host.addChild(ctx);
+
+        Wrapper wrapper = (Wrapper) ctx.findChild("TuscanyAxis2EntryPointServlet");
+        assertNotNull("No webservice wrapper present", wrapper);
+        request.setContext(ctx);
+        request.setRequestURI("/services/epName");
+        request.setWrapper(wrapper);
+//        host.invoke(request, response);
 
         host.removeChild(ctx);
     }

Added: incubator/tuscany/java/sca/tomcat/src/test/resources/app1/WEB-INF/axis2.xml
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/tomcat/src/test/resources/app1/WEB-INF/axis2.xml?rev=382926&view=auto
==============================================================================
--- incubator/tuscany/java/sca/tomcat/src/test/resources/app1/WEB-INF/axis2.xml (added)
+++ incubator/tuscany/java/sca/tomcat/src/test/resources/app1/WEB-INF/axis2.xml Fri Mar  3 12:56:36 2006
@@ -0,0 +1,167 @@
+<axisconfig name="AxisJava2.0">
+    <!-- ================================================= -->
+    <!-- Parameters -->
+    <!-- ================================================= -->
+    <parameter name="hotdeployment" locked="false">false</parameter>
+    <parameter name="hotupdate" locked="false">false</parameter>
+    <parameter name="enableMTOM" locked="false">false</parameter>
+    <!-- Uncomment this to enable REST support -->
+    <!--    <parameter name="enableREST" locked="false">true</parameter>-->
+
+
+    <parameter name="userName" locked="false">admin</parameter>
+    <parameter name="password" locked="false">axis2</parameter>
+
+    <parameter name="seralizeLocation" locked="false">.</parameter>
+    <hostConfiguration>
+        <ip>127.0.0.1</ip>
+        <port>5555</port>
+    </hostConfiguration>
+
+
+    <!--if you want to extract the service archive file and work with that please uncomment this-->
+    <!--else , it wont extract archive file or does not take into consideration if someone drop-->
+    <!--exploded directory into /service directory-->
+    <!--<parameter name="extractServiceArchive" locked="false">true</parameter>-->
+
+
+    <!--    The way of adding listener to the system-->
+    <!--    <listener class="org.apache.axis2.ObserverIMPL">-->
+    <!--        <parameter name="RSS_URL" locked="false">http://127.0.0.1/rss</parameter>-->
+    <!--    </listener>-->
+
+    <!-- ================================================= -->
+    <!-- Message Receivers -->
+    <!-- ================================================= -->
+    <!--This is the Deafult Message Receiver for the system , if you want to have MessageReceivers for -->
+    <!--all the other MEP implement it and add the correct entry to here , so that you can refer from-->
+    <!--any operation -->
+    <!--Note : You can ovride this for particular service by adding the same element with your requirement-->
+    <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"/>
+    </messageReceivers>
+    <!-- ================================================= -->
+    <!-- Transport Ins -->
+    <!-- ================================================= -->
+    <transportReceiver name="http" class="org.apache.axis2.transport.http.SimpleHTTPServer">
+        <parameter name="port" locked="false">6060</parameter>
+    </transportReceiver>
+
+    <!-- Uncomment this one with the appropriate papameters to enable the SMTP transport Receiver
+    <transportReceiver name="mail" class="org.apache.axis2.transport.mail.SimpleMailListener">
+          <parameter name="transport.mail.pop3.host" locked="false">127.0.0.1</parameter>
+          <parameter name="transport.mail.pop3.user" locked="false">axis2</parameter>
+          <parameter name="transport.mail.pop3.password" locked="false">axis2</parameter>
+          <parameter name="transport.mail.pop3.port" locked="false">110</parameter>
+          <parameter name="transport.mail.replyToAddress" locked="false">axis2@127.0.0.1</parameter>
+      </transportReceiver> -->
+
+    <!--REMOVED FOR TUSCANY  transportReceiver name="tcp" class="org.apache.axis2.transport.tcp.TCPServer">
+        <parameter name="port" locked="false">6060</parameter>
+    </transportReceiver -->
+
+    <!--REMOVED FOR TUSCANY transportReceiver name="jms" class="org.apache.axis2.transport.jms.SimpleJMSListener">
+        <parameter name="transport.jms.Destination" locked="false">dynamicQueues/FOO</parameter>
+        <parameter name="java.naming.factory.initial" locked="false">
+            org.activemq.jndi.ActiveMQInitialContextFactory</parameter>
+        <parameter name="java.naming.provider.url" locked="false">tcp://localhost:61616</parameter>
+    </transportReceiver>
+    -->
+
+    <!-- ================================================= -->
+    <!-- Transport Outs -->
+    <!-- ================================================= -->
+
+    <!--REMOVED FOR TUSCANY transportSender name="tcp" class="org.apache.axis2.transport.tcp.TCPTransportSender"/> -->
+    <transportSender name="local" class="org.apache.axis2.transport.local.LocalTransportSender"/>
+    <!--REMOVED FOR TUSCANY transportSender name="jms" class="org.apache.axis2.transport.jms.JMSSender"/> -->
+    <transportSender name="http" class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
+        <parameter name="PROTOCOL" locked="false">HTTP/1.1</parameter>
+        <parameter name="Transfer-Encoding" locked="false">chunked</parameter>
+    </transportSender>
+    <transportSender name="https"
+                     class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
+        <parameter name="PROTOCOL" locked="false">HTTP/1.1</parameter>
+        <parameter name="Transfer-Encoding" locked="false">chunked</parameter>
+    </transportSender>
+
+    <!-- Uncomment this one with the appropriate papameters to enable the SMTP transport Receiver
+   <transportSender name="mailto" class="org.apache.axis2.transport.mail.MailTransportSender">
+       <parameter name="transport.mail.smtp.host" locked="false">127.0.0.1</parameter>
+       <parameter name="transport.mail.smtp.user" locked="false">axis2</parameter>
+       <parameter name="transport.mail.smtp.password" locked="false">axis2</parameter>
+       <parameter name="transport.mail.smtp.port" locked="false">25</parameter>
+   </transportSender>
+   -->
+
+    <!-- ================================================= -->
+    <!-- Global Modules  -->
+    <!-- ================================================= -->
+    <!-- Comment this to disable Addressing -->
+    <!--REMOVED FOR TUSCANY  module ref="addressing"/> -->
+
+
+    <!--Configuring module , providing parameters for modules whether they refer or not-->
+    <!--<moduleConfig name="addressing">-->
+    <!--<parameter name="addressingPara" locked="false">N/A</parameter>-->
+    <!--</moduleConfig>-->
+
+    <!-- ================================================= -->
+    <!-- Phases  -->
+    <!-- ================================================= -->
+    <phaseOrder type="inflow">
+        <!--  System pre defined phases       -->
+        <phase name="TransportIn"/>
+        <phase name="PreDispatch"/>
+        <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
+            <handler name="AddressingBasedDispatcher"
+                     class="org.apache.axis2.engine.AddressingBasedDispatcher">
+                <order phase="Dispatch"/>
+            </handler>
+
+            <handler name="RequestURIBasedDispatcher"
+                     class="org.apache.axis2.engine.RequestURIBasedDispatcher">
+                <order phase="Dispatch"/>
+            </handler>
+
+            <handler name="SOAPActionBasedDispatcher"
+                     class="org.apache.axis2.engine.SOAPActionBasedDispatcher">
+                <order phase="Dispatch"/>
+            </handler>
+
+            <handler name="SOAPMessageBodyBasedDispatcher"
+                     class="org.apache.axis2.engine.SOAPMessageBodyBasedDispatcher">
+                <order phase="Dispatch"/>
+            </handler>
+            <handler name="InstanceDispatcher"
+                     class="org.apache.axis2.engine.InstanceDispatcher">
+                <order phase="PostDispatch"/>
+            </handler>
+        </phase>
+        <!--  System pre defined phases       -->
+        <!--   After Postdispatch phase module author or or service author can add any phase he want      -->
+        <phase name="userphase1"/>
+    </phaseOrder>
+    <phaseOrder type="outflow">
+        <!--      user can add his own phases to this area  -->
+        <phase name="userphase1"/>
+        <!--system predefined phase-->
+        <!--these phase will run irrespective of the service-->
+        <phase name="PolicyDetermination"/>
+        <phase name="MessageOut"/>
+    </phaseOrder>
+    <phaseOrder type="INfaultflow">
+        <!--      user can add his own phases to this area  -->
+        <phase name="userphase1"/>
+    </phaseOrder>
+    <phaseOrder type="Outfaultflow">
+        <!--      user can add his own phases to this area  -->
+        <phase name="userphase1"/>
+        <phase name="PolicyDetermination"/>
+        <phase name="MessageOut"/>
+    </phaseOrder>
+</axisconfig>
+

Propchange: incubator/tuscany/java/sca/tomcat/src/test/resources/app1/WEB-INF/axis2.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/tomcat/src/test/resources/app1/WEB-INF/axis2.xml
------------------------------------------------------------------------------
    svn:keywords = Rev,Date