You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@synapse.apache.org by ve...@apache.org on 2008/08/24 16:36:54 UTC

svn commit: r688519 - in /synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport: jms/ mail/ nhttp/ testkit/client/axis2/ testkit/server/axis2/ testkit/tests/ vfs/

Author: veithen
Date: Sun Aug 24 07:36:53 2008
New Revision: 688519

URL: http://svn.apache.org/viewvc?rev=688519&view=rev
Log:
Transport test kit: optimized resource lifecycle.

Added:
    synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/client/axis2/AxisTestClientContext.java
Modified:
    synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/jms/JMSListenerTest.java
    synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/MailTransportListenerTest.java
    synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/nhttp/HttpCoreNIOListenerTest.java
    synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/client/axis2/AxisTestClient.java
    synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/server/axis2/AxisServer.java
    synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/TestResource.java
    synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/TestResourceSet.java
    synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/TransportTestCase.java
    synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/vfs/VFSTransportListenerTest.java

Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/jms/JMSListenerTest.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/jms/JMSListenerTest.java?rev=688519&r1=688518&r2=688519&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/jms/JMSListenerTest.java (original)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/jms/JMSListenerTest.java Sun Aug 24 07:36:53 2008
@@ -47,7 +47,6 @@
     public static TestSuite suite() {
         TransportTestSuite suite = new TransportTestSuite();
         TransportDescriptionFactory tdf = new JMSTransportDescriptionFactory();
-        AxisServer server = new AxisServer();
         AxisAsyncEndpointFactory asyncEndpointFactory = new AxisAsyncEndpointFactory();
         AxisEchoEndpointFactory echoEndpointFactory = new AxisEchoEndpointFactory();
         JMSBytesMessageClient bytesMessageClient = new JMSBytesMessageClient();
@@ -59,35 +58,35 @@
         clients.add(adapt(new AxisAsyncTestClient(new JMSAxisTestClientSetup(JMSConstants.JMS_BYTE_MESSAGE)), MessageConverter.XML_TO_AXIS));
         clients.add(adapt(new AxisAsyncTestClient(new JMSAxisTestClientSetup(JMSConstants.JMS_TEXT_MESSAGE)), MessageConverter.XML_TO_AXIS));
         for (JMSTestEnvironment env : new JMSTestEnvironment[] { new QpidTestEnvironment(), new ActiveMQTestEnvironment() }) {
-            suite.addPOXTests(new JMSRequestResponseChannel(JMSConstants.DESTINATION_TYPE_QUEUE, JMSConstants.DESTINATION_TYPE_QUEUE), adapt(new AxisRequestResponseTestClient(), MessageConverter.XML_TO_AXIS, MessageConverter.AXIS_TO_XML), echoEndpointFactory, ContentTypeMode.TRANSPORT, env, server, tdf);
+            suite.addPOXTests(new JMSRequestResponseChannel(JMSConstants.DESTINATION_TYPE_QUEUE, JMSConstants.DESTINATION_TYPE_QUEUE), adapt(new AxisRequestResponseTestClient(), MessageConverter.XML_TO_AXIS, MessageConverter.AXIS_TO_XML), echoEndpointFactory, ContentTypeMode.TRANSPORT, env, tdf);
             suite.addPOXTests(new JMSRequestResponseChannel(JMSConstants.DESTINATION_TYPE_QUEUE, JMSConstants.DESTINATION_TYPE_QUEUE), adapt(new AxisRequestResponseTestClient(), MessageConverter.XML_TO_AXIS, MessageConverter.AXIS_TO_XML), new MockEchoEndpointFactory(), ContentTypeMode.TRANSPORT, env, tdf);
             for (String destinationType : new String[] { JMSConstants.DESTINATION_TYPE_QUEUE, JMSConstants.DESTINATION_TYPE_TOPIC }) {
                 JMSAsyncChannel channel = new JMSAsyncChannel(destinationType);
                 for (ContentTypeMode contentTypeMode : ContentTypeMode.values()) {
                     for (AsyncTestClient<XMLMessage> client : clients) {
                         if (contentTypeMode == ContentTypeMode.TRANSPORT) {
-                            suite.addSOAPTests(channel, client, asyncEndpointFactory, contentTypeMode, env, server, tdf);
-                            suite.addPOXTests(channel, client, asyncEndpointFactory, contentTypeMode, env, server, tdf);
+                            suite.addSOAPTests(channel, client, asyncEndpointFactory, contentTypeMode, env, tdf);
+                            suite.addPOXTests(channel, client, asyncEndpointFactory, contentTypeMode, env, tdf);
                         } else {
                             // If no content type header is used, SwA can't be used and the JMS transport
                             // always uses the default charset encoding
                             suite.addSOAP11Test(channel, client, asyncEndpointFactory, contentTypeMode, new MessageTestData(null, TransportTestSuite.testString,
-                                    MessageContext.DEFAULT_CHAR_SET_ENCODING), env, server, tdf);
+                                    MessageContext.DEFAULT_CHAR_SET_ENCODING), env, tdf);
                             suite.addSOAP12Test(channel, client, asyncEndpointFactory, contentTypeMode, new MessageTestData(null, TransportTestSuite.testString,
-                                    MessageContext.DEFAULT_CHAR_SET_ENCODING), env, server, tdf);
+                                    MessageContext.DEFAULT_CHAR_SET_ENCODING), env, tdf);
                             suite.addPOXTest(channel, client, asyncEndpointFactory, contentTypeMode, new MessageTestData(null, TransportTestSuite.testString,
-                                    MessageContext.DEFAULT_CHAR_SET_ENCODING), env, server, tdf);
+                                    MessageContext.DEFAULT_CHAR_SET_ENCODING), env, tdf);
                         }
                     }
                     if (contentTypeMode == ContentTypeMode.TRANSPORT) {
-                        suite.addSwATests(channel, bytesMessageClient, asyncEndpointFactory, env, server, tdf);
+                        suite.addSwATests(channel, bytesMessageClient, asyncEndpointFactory, env, tdf);
                     }
                     // TODO: these tests are temporarily disabled because of SYNAPSE-304
                     // addTextPlainTests(strategy, suite);
-                    suite.addBinaryTest(channel, bytesMessageClient, adapt(asyncEndpointFactory, MessageConverter.AXIS_TO_BYTE), contentTypeMode, env, server, tdf);
+                    suite.addBinaryTest(channel, bytesMessageClient, adapt(asyncEndpointFactory, MessageConverter.AXIS_TO_BYTE), contentTypeMode, env, tdf);
                 }
             }
-            suite.addTest(new MinConcurrencyTest(server, new AsyncChannel[] {
+            suite.addTest(new MinConcurrencyTest(AxisServer.INSTANCE, new AsyncChannel[] {
                     new JMSAsyncChannel("endpoint1", JMSConstants.DESTINATION_TYPE_QUEUE),
                     new JMSAsyncChannel("endpoint2", JMSConstants.DESTINATION_TYPE_QUEUE) },
                     2, false, env, tdf));

Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/MailTransportListenerTest.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/MailTransportListenerTest.java?rev=688519&r1=688518&r2=688519&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/MailTransportListenerTest.java (original)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/MailTransportListenerTest.java Sun Aug 24 07:36:53 2008
@@ -56,27 +56,26 @@
         
         MailTestEnvironment env = new GreenMailTestEnvironment();
         
-        AxisServer axisServer = new AxisServer();
         AxisAsyncEndpointFactory asyncEndpointFactory = new AxisAsyncEndpointFactory();
         MailChannel channel = new MailChannel();
-        suite.addPOXTests(channel, adapt(new MailRequestResponseClient(new FlatLayout()), MessageConverter.XML_TO_BYTE, MessageConverter.BYTE_TO_XML), new AxisEchoEndpointFactory(), ContentTypeMode.TRANSPORT, env, axisServer);
+        suite.addPOXTests(channel, adapt(new MailRequestResponseClient(new FlatLayout()), MessageConverter.XML_TO_BYTE, MessageConverter.BYTE_TO_XML), new AxisEchoEndpointFactory(), ContentTypeMode.TRANSPORT, env);
         List<MailAsyncClient> clients = new LinkedList<MailAsyncClient>();
         clients.add(new MailAsyncClient(new FlatLayout()));
         clients.add(new MailAsyncClient(new MultipartLayout()));
         for (MailAsyncClient client : clients) {
             AsyncTestClient<XMLMessage> xmlClient = adapt(client, MessageConverter.XML_TO_BYTE);
-            suite.addSOAPTests(channel, xmlClient, asyncEndpointFactory, ContentTypeMode.TRANSPORT, env, axisServer);
-            suite.addPOXTests(channel, xmlClient, asyncEndpointFactory, ContentTypeMode.TRANSPORT, env, axisServer);
-            suite.addSwATests(channel, client, asyncEndpointFactory, env, axisServer);
-            suite.addTextPlainTests(channel, adapt(client, MessageConverter.STRING_TO_BYTE), AdapterUtils.adapt(asyncEndpointFactory, MessageConverter.AXIS_TO_STRING), ContentTypeMode.TRANSPORT, env, axisServer);
-            suite.addBinaryTest(channel, client, adapt(asyncEndpointFactory, MessageConverter.AXIS_TO_BYTE), ContentTypeMode.TRANSPORT, env, axisServer);
+            suite.addSOAPTests(channel, xmlClient, asyncEndpointFactory, ContentTypeMode.TRANSPORT, env);
+            suite.addPOXTests(channel, xmlClient, asyncEndpointFactory, ContentTypeMode.TRANSPORT, env);
+            suite.addSwATests(channel, client, asyncEndpointFactory, env);
+            suite.addTextPlainTests(channel, adapt(client, MessageConverter.STRING_TO_BYTE), AdapterUtils.adapt(asyncEndpointFactory, MessageConverter.AXIS_TO_STRING), ContentTypeMode.TRANSPORT, env);
+            suite.addBinaryTest(channel, client, adapt(asyncEndpointFactory, MessageConverter.AXIS_TO_BYTE), ContentTypeMode.TRANSPORT, env);
         }
         AxisAsyncTestClient axisClient = new AxisAsyncTestClient();
-        suite.addSOAPTests(channel, adapt(axisClient, MessageConverter.XML_TO_AXIS), asyncEndpointFactory, ContentTypeMode.TRANSPORT, env, axisServer);
-        suite.addPOXTests(channel, adapt(axisClient, MessageConverter.XML_TO_AXIS), asyncEndpointFactory, ContentTypeMode.TRANSPORT, env, axisServer);
-        suite.addTextPlainTests(channel, adapt(axisClient, MessageConverter.TEXT_WRAPPER), AdapterUtils.adapt(asyncEndpointFactory, MessageConverter.AXIS_TO_STRING), ContentTypeMode.TRANSPORT, env, axisServer);
-        suite.addBinaryTest(channel, adapt(axisClient, MessageConverter.BINARY_WRAPPER), adapt(asyncEndpointFactory, MessageConverter.AXIS_TO_BYTE), ContentTypeMode.TRANSPORT, env, axisServer);
-        suite.addTest(new MinConcurrencyTest(axisServer, new MailChannel[] { new MailChannel(), new MailChannel() }, 2, true, env));
+        suite.addSOAPTests(channel, adapt(axisClient, MessageConverter.XML_TO_AXIS), asyncEndpointFactory, ContentTypeMode.TRANSPORT, env);
+        suite.addPOXTests(channel, adapt(axisClient, MessageConverter.XML_TO_AXIS), asyncEndpointFactory, ContentTypeMode.TRANSPORT, env);
+        suite.addTextPlainTests(channel, adapt(axisClient, MessageConverter.TEXT_WRAPPER), AdapterUtils.adapt(asyncEndpointFactory, MessageConverter.AXIS_TO_STRING), ContentTypeMode.TRANSPORT, env);
+        suite.addBinaryTest(channel, adapt(axisClient, MessageConverter.BINARY_WRAPPER), adapt(asyncEndpointFactory, MessageConverter.AXIS_TO_BYTE), ContentTypeMode.TRANSPORT, env);
+        suite.addTest(new MinConcurrencyTest(AxisServer.INSTANCE, new MailChannel[] { new MailChannel(), new MailChannel() }, 2, true, env));
         return suite;
     }
 }

Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/nhttp/HttpCoreNIOListenerTest.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/nhttp/HttpCoreNIOListenerTest.java?rev=688519&r1=688518&r2=688519&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/nhttp/HttpCoreNIOListenerTest.java (original)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/nhttp/HttpCoreNIOListenerTest.java Sun Aug 24 07:36:53 2008
@@ -70,7 +70,6 @@
         // Change to tdfSimple if you want to check the behavior of Axis' blocking HTTP transport 
         TransportDescriptionFactory tdf = tdfNIO;
         
-        AxisServer axisServer = new AxisServer();
         AxisAsyncEndpointFactory asyncEndpointFactory = new AxisAsyncEndpointFactory();
 //        AxisEchoEndpointFactory echoEndpointFactory = new AxisEchoEndpointFactory();
         HttpChannel channel = new HttpChannel();
@@ -80,15 +79,15 @@
         clients.add(adapt(new AxisAsyncTestClient(new HttpAxisTestClientSetup(false)), MessageConverter.XML_TO_AXIS));
         clients.add(adapt(new AxisAsyncTestClient(new HttpAxisTestClientSetup(true)), MessageConverter.XML_TO_AXIS));
         for (AsyncTestClient<XMLMessage> client : clients) {
-            suite.addSOAPTests(channel, client, asyncEndpointFactory, ContentTypeMode.TRANSPORT, env, axisServer, tdf);
-            suite.addPOXTests(channel, client, asyncEndpointFactory, ContentTypeMode.TRANSPORT, env, axisServer, tdf);
+            suite.addSOAPTests(channel, client, asyncEndpointFactory, ContentTypeMode.TRANSPORT, env, tdf);
+            suite.addPOXTests(channel, client, asyncEndpointFactory, ContentTypeMode.TRANSPORT, env, tdf);
         }
 //        suite.addPOXTests(channel, adapt(new AxisRequestResponseTestClient(), MessageConverter.XML_TO_AXIS, MessageConverter.AXIS_TO_XML), echoEndpointFactory, ContentTypeMode.TRANSPORT, env, axisServer, tdf);
-        suite.addSwATests(channel, javaNetClient, asyncEndpointFactory, env, axisServer, tdf);
-        suite.addTextPlainTests(channel, adapt(javaNetClient, MessageConverter.STRING_TO_BYTE), adapt(asyncEndpointFactory, MessageConverter.AXIS_TO_STRING), ContentTypeMode.TRANSPORT, env, axisServer, tdf);
-        suite.addBinaryTest(channel, javaNetClient, adapt(asyncEndpointFactory, MessageConverter.AXIS_TO_BYTE), ContentTypeMode.TRANSPORT, env, axisServer, tdf);
-        suite.addRESTTests(channel, new JavaNetRESTClient(), asyncEndpointFactory, env, axisServer, tdf);
-        suite.addTest(new MinConcurrencyTest(axisServer, new AsyncChannel[] { new HttpChannel(), new HttpChannel() }, 2, false, env, tdf));
+        suite.addSwATests(channel, javaNetClient, asyncEndpointFactory, env, tdf);
+        suite.addTextPlainTests(channel, adapt(javaNetClient, MessageConverter.STRING_TO_BYTE), adapt(asyncEndpointFactory, MessageConverter.AXIS_TO_STRING), ContentTypeMode.TRANSPORT, env, tdf);
+        suite.addBinaryTest(channel, javaNetClient, adapt(asyncEndpointFactory, MessageConverter.AXIS_TO_BYTE), ContentTypeMode.TRANSPORT, env, tdf);
+        suite.addRESTTests(channel, new JavaNetRESTClient(), asyncEndpointFactory, env, tdf);
+        suite.addTest(new MinConcurrencyTest(AxisServer.INSTANCE, new AsyncChannel[] { new HttpChannel(), new HttpChannel() }, 2, false, env, tdf));
         return suite;
     }
 }

Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/client/axis2/AxisTestClient.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/client/axis2/AxisTestClient.java?rev=688519&r1=688518&r2=688519&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/client/axis2/AxisTestClient.java (original)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/client/axis2/AxisTestClient.java Sun Aug 24 07:36:53 2008
@@ -19,8 +19,6 @@
 
 package org.apache.synapse.transport.testkit.client.axis2;
 
-import java.io.File;
-
 import javax.xml.namespace.QName;
 
 import org.apache.axis2.Constants;
@@ -28,14 +26,9 @@
 import org.apache.axis2.client.OperationClient;
 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.context.MessageContext;
-import org.apache.axis2.description.TransportOutDescription;
-import org.apache.axis2.engine.AxisConfiguration;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.synapse.transport.testkit.TransportDescriptionFactory;
 import org.apache.synapse.transport.testkit.client.ClientOptions;
 import org.apache.synapse.transport.testkit.client.TestClient;
 import org.apache.synapse.transport.testkit.listener.Channel;
@@ -49,9 +42,8 @@
     
     private final AxisTestClientSetup setup;
     
+    private AxisTestClientContext context;
     private Channel channel;
-    private TransportOutDescription trpOutDesc;
-    private ConfigurationContext cfgCtx;
     
     public AxisTestClient(AxisTestClientSetup setup) {
         this.setup = setup;
@@ -67,24 +59,11 @@
     }
 
     @SuppressWarnings("unused")
-    private void setUp(TransportDescriptionFactory tdf, Channel channel) throws Exception {
+    private void setUp(AxisTestClientContext context, Channel channel) throws Exception {
+        this.context = context;
         this.channel = channel;
-        
-        cfgCtx =
-            ConfigurationContextFactory.createConfigurationContextFromFileSystem(
-                    new File("target/test_rep").getAbsolutePath());
-        AxisConfiguration axisCfg = cfgCtx.getAxisConfiguration();
-
-        trpOutDesc = tdf.createTransportOutDescription();
-        axisCfg.addTransportOut(trpOutDesc);
-        trpOutDesc.getSender().init(cfgCtx, trpOutDesc);
     }
 
-    @SuppressWarnings("unused")
-    private void tearDown() throws Exception {
-        trpOutDesc.getSender().stop();
-    }
-    
     protected OperationClient createClient(ClientOptions options, AxisMessage message, QName operationQName) throws Exception {
         EndpointReference epr = channel.getEndpointReference();
         log.info("Sending to " + epr.getAddress());
@@ -92,7 +71,7 @@
         Options axisOptions = new Options();
         axisOptions.setTo(epr);
 
-        ServiceClient serviceClient = new ServiceClient(cfgCtx, null);
+        ServiceClient serviceClient = new ServiceClient(context.getConfigurationContext(), null);
         serviceClient.setOptions(axisOptions);
         
         OperationClient mepClient = serviceClient.createClient(operationQName);

Added: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/client/axis2/AxisTestClientContext.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/client/axis2/AxisTestClientContext.java?rev=688519&view=auto
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/client/axis2/AxisTestClientContext.java (added)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/client/axis2/AxisTestClientContext.java Sun Aug 24 07:36:53 2008
@@ -0,0 +1,58 @@
+/*
+ *  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.synapse.transport.testkit.client.axis2;
+
+import java.io.File;
+
+import org.apache.axis2.context.ConfigurationContext;
+import org.apache.axis2.context.ConfigurationContextFactory;
+import org.apache.axis2.description.TransportOutDescription;
+import org.apache.axis2.engine.AxisConfiguration;
+import org.apache.synapse.transport.testkit.TransportDescriptionFactory;
+
+public class AxisTestClientContext {
+    public static final AxisTestClientContext INSTANCE = new AxisTestClientContext();
+    
+    private TransportOutDescription trpOutDesc;
+    private ConfigurationContext cfgCtx;
+    
+    private AxisTestClientContext() {}
+    
+    @SuppressWarnings("unused")
+    private void setUp(TransportDescriptionFactory tdf) throws Exception {
+        cfgCtx =
+            ConfigurationContextFactory.createConfigurationContextFromFileSystem(
+                    new File("target/test_rep").getAbsolutePath());
+        AxisConfiguration axisCfg = cfgCtx.getAxisConfiguration();
+
+        trpOutDesc = tdf.createTransportOutDescription();
+        axisCfg.addTransportOut(trpOutDesc);
+        trpOutDesc.getSender().init(cfgCtx, trpOutDesc);
+    }
+    
+    @SuppressWarnings("unused")
+    private void tearDown() throws Exception {
+        trpOutDesc.getSender().stop();
+    }
+
+    public ConfigurationContext getConfigurationContext() {
+        return cfgCtx;
+    }
+}

Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/server/axis2/AxisServer.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/server/axis2/AxisServer.java?rev=688519&r1=688518&r2=688519&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/server/axis2/AxisServer.java (original)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/server/axis2/AxisServer.java Sun Aug 24 07:36:53 2008
@@ -43,23 +43,20 @@
 import org.apache.synapse.transport.testkit.server.Server;
 
 public class AxisServer implements Server {
-    private static AxisServer activeServer;
+    public static final AxisServer INSTANCE = new AxisServer();
     
     private TransportListener listener;
     private UtilsTransportServer server;
     private TestEnvironment env;
     
+    private AxisServer() {}
+    
     @SuppressWarnings("unused")
     private void setUp(TestEnvironment env, TransportDescriptionFactory tdf) throws Exception {
         this.env = env;
         
         server = new UtilsTransportServer();
         
-        if (activeServer != null) {
-            throw new IllegalStateException();
-        }
-        activeServer = this;
-        
         TransportOutDescription trpOutDesc = tdf.createTransportOutDescription();
         TransportInDescription trpInDesc = tdf.createTransportInDescription();
         listener = trpInDesc.getReceiver();
@@ -97,7 +94,6 @@
         listener = null;
         server = null;
         env = null;
-        activeServer = null;
     }
     
     public AxisConfiguration getAxisConfiguration() {

Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/TestResource.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/TestResource.java?rev=688519&r1=688518&r2=688519&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/TestResource.java (original)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/TestResource.java Sun Aug 24 07:36:53 2008
@@ -75,7 +75,7 @@
         this.target = target;
     }
     
-    public void resolve(List<TestResource> resources) {
+    public void resolve(TestResourceSet resourceSet) {
         for (Class<?> clazz = target.getClass(); !clazz.equals(Object.class);
                 clazz = clazz.getSuperclass()) {
             for (Method method : clazz.getDeclaredMethods()) {
@@ -89,23 +89,18 @@
                             throw new Error("Generic parameters not supported in " + method);
                         }
                         Class<?> parameterClass = (Class<?>)parameterType;
-                        TestResource res = null;
-                        for (TestResource resource : resources) {
-                            if (resource != this) {
-                                Object obj = resource.getInstance();
-                                if (parameterClass.isInstance(obj)) {
-                                    if (res != null) {
-                                        throw new Error(target.getClass().getName() + " depends on " + parameterClass.getName() + ", but multiple candidates found");
-                                    }
-                                    res = resource;
-                                }
-                            }
+                        TestResource[] resources = resourceSet.findResources(parameterClass, true);
+                        if (resources.length == 0) {
+                            throw new Error(target.getClass().getName() + " depends on " +
+                                    parameterClass.getName() + ", but none found");
+                        } else if (resources.length > 1) {
+                            throw new Error(target.getClass().getName() + " depends on " +
+                                    parameterClass.getName() + ", but multiple candidates found");
+                            
                         }
-                        if (res == null) {
-                            throw new Error(target.getClass().getName() + " depends on " + parameterClass.getName() + ", but none found");
-                        }
-                        directDependencies.add(res);
-                        args[i] = res.getInstance();
+                        TestResource resource = resources[0];
+                        directDependencies.add(resource);
+                        args[i] = resource.getInstance();
                     }
                     method.setAccessible(true);
                     initializers.addFirst(new Initializer(method, target, args));

Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/TestResourceSet.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/TestResourceSet.java?rev=688519&r1=688518&r2=688519&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/TestResourceSet.java (original)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/TestResourceSet.java Sun Aug 24 07:36:53 2008
@@ -19,6 +19,8 @@
 
 package org.apache.synapse.transport.testkit.tests;
 
+import java.lang.reflect.Field;
+import java.util.Arrays;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.ListIterator;
@@ -32,7 +34,8 @@
     private static Log log = LogFactory.getLog(TestResourceSet.class);
     
     private final TestResourceSet parent;
-    private final List<TestResource> resources = new LinkedList<TestResource>();
+    private final List<TestResource> unresolvedResources = new LinkedList<TestResource>();
+    private final List<TestResource> resolvedResources = new LinkedList<TestResource>();
     private Status status = Status.UNRESOLVED;
     
     public TestResourceSet(TestResourceSet parent) {
@@ -47,7 +50,7 @@
         if (status != Status.UNRESOLVED) {
             throw new IllegalStateException();
         }
-        resources.add(new TestResource(resource));
+        unresolvedResources.add(new TestResource(resource));
     }
     
     public void addResources(Object... resources) {
@@ -57,9 +60,12 @@
     }
     
     public Object[] getResources() {
-        Object[] result = new Object[resources.size()];
+        if (status == Status.UNRESOLVED) {
+            throw new IllegalStateException();
+        }
+        Object[] result = new Object[resolvedResources.size()];
         int i = 0;
-        for (TestResource resource : resources) {
+        for (TestResource resource : resolvedResources) {
             result[i++] = resource.getInstance();
         }
         return result;
@@ -67,24 +73,62 @@
     
     public void resolve() {
         if (status == Status.UNRESOLVED) {
-            List<TestResource> availableResources = new LinkedList<TestResource>();
-            if (parent != null) {
-                availableResources.addAll(parent.resources);
-            }
-            availableResources.addAll(resources);
-            for (TestResource resource : resources) {
-                resource.resolve(availableResources);
+            while (!unresolvedResources.isEmpty()) {
+                resolveResource(unresolvedResources.get(0));
             }
             status = Status.RESOLVED;
         }
     }
     
+    private void resolveResource(TestResource resource) {
+        unresolvedResources.remove(resource);
+        resource.resolve(this);
+        resolvedResources.add(resource);
+    }
+    
+    TestResource[] findResources(Class<?> clazz, boolean allowAutoCreate) {
+        List<TestResource> result = new LinkedList<TestResource>();
+        if (parent != null) {
+            result.addAll(Arrays.asList(parent.findResources(clazz, false)));
+        }
+        for (TestResource resource : resolvedResources) {
+            if (clazz.isInstance(resource.getInstance())) {
+                result.add(resource);
+            }
+        }
+        List<TestResource> unresolvedMatchingResources = new LinkedList<TestResource>();
+        for (TestResource resource : unresolvedResources) {
+            if (clazz.isInstance(resource.getInstance())) {
+                unresolvedMatchingResources.add(resource);
+            }
+        }
+        for (TestResource resource : unresolvedMatchingResources) {
+            resolveResource(resource);
+            result.add(resource);
+        }
+        if (allowAutoCreate && result.isEmpty()) {
+            TestResource resource;
+            try {
+                Field field = clazz.getField("INSTANCE");
+                resource = new TestResource(field.get(null));
+            } catch (Throwable ex) {
+                resource = null;
+            }
+            if (resource != null) {
+                unresolvedResources.add(resource);
+                resolveResource(resource);
+                result.add(resource);
+            }
+        }
+        return result.toArray(new TestResource[result.size()]);
+    }
+    
     public void setUp() throws Exception {
         resolve();
         if (status != Status.RESOLVED) {
             throw new IllegalStateException();
         }
-        setUp(resources);
+        setUp(resolvedResources);
         status = Status.SETUP;
     }
     
@@ -98,7 +142,7 @@
     }
     
     private TestResource lookup(Object instance) {
-        for (TestResource resource : resources) {
+        for (TestResource resource : resolvedResources) {
             if (resource.getTarget() == instance) {
                 return resource;
             }
@@ -115,9 +159,9 @@
             throw new IllegalStateException();
         }
         List<TestResource> oldResourcesToTearDown = new LinkedList<TestResource>();
-        List<TestResource> resourcesToSetUp = new LinkedList<TestResource>(resources);
+        List<TestResource> resourcesToSetUp = new LinkedList<TestResource>(resolvedResources);
         List<TestResource> resourcesToKeep = new LinkedList<TestResource>();
-        for (TestResource oldResource : old.resources) {
+        for (TestResource oldResource : old.resolvedResources) {
             boolean keep;
             TestResource resource = lookup(oldResource.getTarget());
             if (resource == null) {
@@ -149,7 +193,7 @@
         if (status != Status.SETUP) {
             throw new IllegalStateException();
         }
-        tearDown(resources);
+        tearDown(resolvedResources);
     }
     
     private static void tearDown(List<TestResource> resources) throws Exception {
@@ -163,6 +207,6 @@
 
     @Override
     public String toString() {
-        return resources.toString();
+        return resolvedResources.toString();
     }
 }

Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/TransportTestCase.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/TransportTestCase.java?rev=688519&r1=688518&r2=688519&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/TransportTestCase.java (original)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/TransportTestCase.java Sun Aug 24 07:36:53 2008
@@ -47,6 +47,7 @@
         if (nameComponents == null) {
             nameComponents = new LinkedHashMap<String,String>();
             NameUtils.getNameComponents(nameComponents, this);
+            resourceSet.resolve();
             for (Object resource : resourceSet.getResources()) {
                 NameUtils.getNameComponents(nameComponents, resource);
             }

Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/vfs/VFSTransportListenerTest.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/vfs/VFSTransportListenerTest.java?rev=688519&r1=688518&r2=688519&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/vfs/VFSTransportListenerTest.java (original)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/vfs/VFSTransportListenerTest.java Sun Aug 24 07:36:53 2008
@@ -37,7 +37,6 @@
 import org.apache.synapse.transport.testkit.message.MessageConverter;
 import org.apache.synapse.transport.testkit.message.XMLMessage;
 import org.apache.synapse.transport.testkit.server.axis2.AxisAsyncEndpointFactory;
-import org.apache.synapse.transport.testkit.server.axis2.AxisServer;
 
 /**
  * TransportListenerTestTemplate implementation for the VFS transport.
@@ -50,7 +49,6 @@
             new SimpleTransportDescriptionFactory("vfs", VFSTransportListener.class,
                     VFSTransportSender.class);
         VFSTestEnvironment env = new VFSTestEnvironment(new File("target/vfs3"));
-        AxisServer server = new AxisServer();
         AxisAsyncEndpointFactory asyncEndpointFactory = new AxisAsyncEndpointFactory();
         VFSFileChannel channel = new VFSFileChannel("req/in");
         VFSClient vfsClient = new VFSClient();
@@ -58,12 +56,12 @@
         clients.add(adapt(vfsClient, MessageConverter.XML_TO_BYTE));
         clients.add(adapt(new AxisAsyncTestClient(), MessageConverter.XML_TO_AXIS));
         for (AsyncTestClient<XMLMessage> client : clients) {
-            suite.addSOAPTests(channel, client, asyncEndpointFactory, ContentTypeMode.SERVICE, env, server, tdf);
-            suite.addPOXTests(channel, client, asyncEndpointFactory, ContentTypeMode.SERVICE, env, server, tdf);
+            suite.addSOAPTests(channel, client, asyncEndpointFactory, ContentTypeMode.SERVICE, env, tdf);
+            suite.addPOXTests(channel, client, asyncEndpointFactory, ContentTypeMode.SERVICE, env, tdf);
             // Since VFS has no Content-Type header, SwA is not supported.
         }
-        suite.addTextPlainTests(channel, adapt(vfsClient, MessageConverter.STRING_TO_BYTE), adapt(asyncEndpointFactory, MessageConverter.AXIS_TO_STRING), ContentTypeMode.SERVICE, env, server, tdf);
-        suite.addBinaryTest(channel, vfsClient, adapt(asyncEndpointFactory, MessageConverter.AXIS_TO_BYTE), ContentTypeMode.SERVICE, env, server, tdf);
+        suite.addTextPlainTests(channel, adapt(vfsClient, MessageConverter.STRING_TO_BYTE), adapt(asyncEndpointFactory, MessageConverter.AXIS_TO_STRING), ContentTypeMode.SERVICE, env, tdf);
+        suite.addBinaryTest(channel, vfsClient, adapt(asyncEndpointFactory, MessageConverter.AXIS_TO_BYTE), ContentTypeMode.SERVICE, env, tdf);
 //        suite.addTest(new MinConcurrencyTest(server, new AsyncChannel[] { new VFSFileChannel("req/in1"), new VFSFileChannel("req/in2") }, 1, true, env, tdf));
         return suite;
     }