Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/server/axis2/AsyncEndpointImpl.java URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/server/axis2/AsyncEndpointImpl.java?rev=686626&r1=686625&r2=686626&view=diff ============================================================================== --- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/server/axis2/AsyncEndpointImpl.java (original) +++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/server/axis2/AsyncEndpointImpl.java Sun Aug 17 11:06:11 2008 @@ -28,7 +28,7 @@ public class AsyncEndpointImpl extends EndpointImpl implements AsyncEndpoint<MessageData> { private final MockMessageReceiver messageReceiver; - public AsyncEndpointImpl(AxisServer<?> server, AxisService service, MockMessageReceiver messageReceiver) { + public AsyncEndpointImpl(AxisServer server, AxisService service, MockMessageReceiver messageReceiver) { super(server, service); this.messageReceiver = messageReceiver; }
Added: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/server/axis2/AxisAsyncEndpointFactory.java URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/server/axis2/AxisAsyncEndpointFactory.java?rev=686626&view=auto ============================================================================== --- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/server/axis2/AxisAsyncEndpointFactory.java (added) +++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/server/axis2/AxisAsyncEndpointFactory.java Sun Aug 17 11:06:11 2008 @@ -0,0 +1,69 @@ +/* + * 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.server.axis2; + +import org.apache.axis2.description.AxisOperation; +import org.apache.axis2.description.AxisService; +import org.apache.axis2.description.InOnlyAxisOperation; +import org.apache.axis2.engine.AxisConfiguration; +import org.apache.synapse.transport.testkit.TestEnvironment; +import org.apache.synapse.transport.testkit.listener.AsyncChannel; +import org.apache.synapse.transport.testkit.message.MessageData; +import org.apache.synapse.transport.testkit.server.AsyncEndpoint; +import org.apache.synapse.transport.testkit.server.AsyncEndpointFactory; + +public class AxisAsyncEndpointFactory implements AsyncEndpointFactory<MessageData> { + private final AxisServer server; + private TestEnvironment env; + private AsyncChannel channel; + + public AxisAsyncEndpointFactory(AxisServer server) { + this.server = server; + } + + public AxisServer getServer() { + return server; + } + + @SuppressWarnings("unused") + private void setUp(TestEnvironment env, AsyncChannel channel) { + this.env = env; + this.channel = channel; + } + + public AsyncEndpoint<MessageData> createAsyncEndpoint(String contentType) throws Exception { + // Set up a test service with a default operation backed by a mock message + // receiver. The service is configured using the parameters specified by the + // implementation. + AxisService service = new AxisService("TestService"); + AxisOperation operation = new InOnlyAxisOperation(DefaultOperationDispatcher.DEFAULT_OPERATION_NAME); + MockMessageReceiver messageReceiver = new MockMessageReceiver(); + operation.setMessageReceiver(messageReceiver); + service.addOperation(operation); + channel.setupService(service); + if (contentType != null) { + env.setupContentType(service, contentType); + } + AxisConfiguration axisConfiguration = server.getAxisConfiguration(); + axisConfiguration.addService(service); +// server.addErrorListener(messageReceiver); + return new AsyncEndpointImpl(server, service, messageReceiver); + } +} Added: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/server/axis2/AxisEchoEndpointFactory.java URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/server/axis2/AxisEchoEndpointFactory.java?rev=686626&view=auto ============================================================================== --- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/server/axis2/AxisEchoEndpointFactory.java (added) +++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/server/axis2/AxisEchoEndpointFactory.java Sun Aug 17 11:06:11 2008 @@ -0,0 +1,75 @@ +/* + * 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.server.axis2; + +import org.apache.axis2.AxisFault; +import org.apache.axis2.Constants; +import org.apache.axis2.context.MessageContext; +import org.apache.axis2.description.AxisOperation; +import org.apache.axis2.description.AxisService; +import org.apache.axis2.description.InOutAxisOperation; +import org.apache.axis2.engine.AxisConfiguration; +import org.apache.axis2.receivers.AbstractInOutMessageReceiver; +import org.apache.synapse.transport.testkit.TestEnvironment; +import org.apache.synapse.transport.testkit.listener.RequestResponseChannel; +import org.apache.synapse.transport.testkit.server.Endpoint; +import org.apache.synapse.transport.testkit.server.EndpointFactory; + +public class AxisEchoEndpointFactory implements EndpointFactory { + private final AxisServer server; + private TestEnvironment env; + private RequestResponseChannel channel; + + public AxisEchoEndpointFactory(AxisServer server) { + this.server = server; + } + + public AxisServer getServer() { + return server; + } + + @SuppressWarnings("unused") + private void setUp(TestEnvironment env, RequestResponseChannel channel) { + this.env = env; + this.channel = channel; + } + + public Endpoint createEchoEndpoint(String contentType) throws Exception { + AxisService service = new AxisService("EchoService"); + AxisOperation operation = new InOutAxisOperation(DefaultOperationDispatcher.DEFAULT_OPERATION_NAME); + operation.setMessageReceiver(new AbstractInOutMessageReceiver() { + @Override + public void invokeBusinessLogic(MessageContext inMessage, MessageContext outMessage) throws AxisFault { + System.out.println(inMessage.getProperty(Constants.OUT_TRANSPORT_INFO)); + System.out.println(inMessage.getEnvelope()); + outMessage.setEnvelope(inMessage.getEnvelope()); + } + }); + service.addOperation(operation); + channel.setupService(service); + if (contentType != null) { + env.setupContentType(service, contentType); + } + + AxisConfiguration axisConfiguration = server.getAxisConfiguration(); + axisConfiguration.addService(service); + return new EndpointImpl(server, service); + } +} 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=686626&r1=686625&r2=686626&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 17 11:06:11 2008 @@ -20,38 +20,24 @@ package org.apache.synapse.transport.testkit.server.axis2; import org.apache.axis2.AxisFault; -import org.apache.axis2.Constants; import org.apache.axis2.addressing.EndpointReference; -import org.apache.axis2.context.MessageContext; -import org.apache.axis2.description.AxisOperation; import org.apache.axis2.description.AxisService; -import org.apache.axis2.description.InOnlyAxisOperation; -import org.apache.axis2.description.InOutAxisOperation; import org.apache.axis2.description.TransportInDescription; import org.apache.axis2.description.TransportOutDescription; import org.apache.axis2.engine.AxisConfiguration; import org.apache.axis2.engine.DispatchPhase; -import org.apache.axis2.receivers.AbstractInOutMessageReceiver; import org.apache.axis2.transport.TransportListener; import org.apache.synapse.transport.UtilsTransportServer; -import org.apache.synapse.transport.testkit.TestEnvironment; import org.apache.synapse.transport.testkit.TransportDescriptionFactory; -import org.apache.synapse.transport.testkit.listener.AsyncChannel; import org.apache.synapse.transport.testkit.listener.Channel; import org.apache.synapse.transport.testkit.listener.RequestResponseChannel; -import org.apache.synapse.transport.testkit.message.MessageData; -import org.apache.synapse.transport.testkit.server.AsyncEndpoint; -import org.apache.synapse.transport.testkit.server.AsyncEndpointFactory; -import org.apache.synapse.transport.testkit.server.Endpoint; -import org.apache.synapse.transport.testkit.server.EndpointFactory; import org.apache.synapse.transport.testkit.server.Server; -public class AxisServer<E extends TestEnvironment> implements Server<E>, AsyncEndpointFactory<E,AsyncChannel<? super E>,MessageData>, EndpointFactory<E,RequestResponseChannel<? super E>> { - private static Server<?> activeServer; +public class AxisServer implements Server { + private static AxisServer activeServer; private final TransportDescriptionFactory tdf; - private Channel<?> channel; private TransportListener listener; UtilsTransportServer server; @@ -59,9 +45,9 @@ this.tdf = tdf; } - public void start(E env, Channel<?> channel) throws Exception { + @SuppressWarnings("unused") + private void setUp(Channel channel) throws Exception { server = new UtilsTransportServer(); - this.channel = channel; if (activeServer != null) { throw new IllegalStateException(); @@ -97,7 +83,8 @@ server.start(); } - public void stop() throws Exception { + @SuppressWarnings("unused") + private void tearDown() throws Exception { server.stop(); Thread.sleep(100); // TODO: this is required for the NIO transport; check whether this is a bug server = null; @@ -114,49 +101,4 @@ return endpointReferences != null && endpointReferences.length > 0 ? endpointReferences[0].getAddress() : null; } - - public Server<E> getServer() { - return this; - } - - public AsyncEndpoint<MessageData> createAsyncEndpoint(E env, AsyncChannel<? super E> channel, String contentType) throws Exception { - // Set up a test service with a default operation backed by a mock message - // receiver. The service is configured using the parameters specified by the - // implementation. - AxisService service = new AxisService("TestService"); - AxisOperation operation = new InOnlyAxisOperation(DefaultOperationDispatcher.DEFAULT_OPERATION_NAME); - MockMessageReceiver messageReceiver = new MockMessageReceiver(); - operation.setMessageReceiver(messageReceiver); - service.addOperation(operation); - channel.setupService(service); - if (contentType != null) { - env.setupContentType(service, contentType); - } - AxisConfiguration axisConfiguration = server.getAxisConfiguration(); - axisConfiguration.addService(service); -// server.addErrorListener(messageReceiver); - return new AsyncEndpointImpl(this, service, messageReceiver); - } - - public Endpoint createEchoEndpoint(E env, RequestResponseChannel<? super E> channel, String contentType) throws Exception { - AxisService service = new AxisService("EchoService"); - AxisOperation operation = new InOutAxisOperation(DefaultOperationDispatcher.DEFAULT_OPERATION_NAME); - operation.setMessageReceiver(new AbstractInOutMessageReceiver() { - @Override - public void invokeBusinessLogic(MessageContext inMessage, MessageContext outMessage) throws AxisFault { - System.out.println(inMessage.getProperty(Constants.OUT_TRANSPORT_INFO)); - System.out.println(inMessage.getEnvelope()); - outMessage.setEnvelope(inMessage.getEnvelope()); - } - }); - service.addOperation(operation); - channel.setupService(service); - if (contentType != null) { - env.setupContentType(service, contentType); - } - - AxisConfiguration axisConfiguration = server.getAxisConfiguration(); - axisConfiguration.addService(service); - return new EndpointImpl(this, service); - } } Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/server/axis2/EndpointImpl.java URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/server/axis2/EndpointImpl.java?rev=686626&r1=686625&r2=686626&view=diff ============================================================================== --- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/server/axis2/EndpointImpl.java (original) +++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/server/axis2/EndpointImpl.java Sun Aug 17 11:06:11 2008 @@ -23,10 +23,10 @@ import org.apache.synapse.transport.testkit.server.Endpoint; public class EndpointImpl implements Endpoint { - private final AxisServer<?> server; + private final AxisServer server; private final AxisService service; - public EndpointImpl(AxisServer<?> server, AxisService service) { + public EndpointImpl(AxisServer server, AxisService service) { this.server = server; this.service = service; } Added: 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=686626&view=auto ============================================================================== --- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/TestResource.java (added) +++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/TestResource.java Sun Aug 17 11:06:11 2008 @@ -0,0 +1,123 @@ +/* + * 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.tests; + +import java.lang.reflect.Method; +import java.lang.reflect.Type; +import java.util.LinkedList; +import java.util.List; + +import org.apache.synapse.transport.testkit.Adapter; + +public class TestResource { + private static class Initializer { + private final Method method; + private final Object object; + private final Object[] args; + + public Initializer(Method method, Object object, Object[] args) { + this.method = method; + this.object = object; + this.args = args; + } + + public void execute() throws Exception { + method.invoke(object, args); + } + } + + private static class Finalizer { + private final Method method; + private final Object object; + + public Finalizer(Method method, Object object) { + this.method = method; + this.object = object; + } + + public void execute() throws Exception { + method.invoke(object); + } + } + + private final Object instance; + private final LinkedList<Initializer> initializers = new LinkedList<Initializer>(); + private final List<Finalizer> finalizers = new LinkedList<Finalizer>(); + + public TestResource(List<TestResource> resources, Object instance) { + this.instance = instance; + Object target = instance; + while (target instanceof Adapter) { + target = ((Adapter)target).getTarget(); + } + for (Class<?> clazz = target.getClass(); !clazz.equals(Object.class); + clazz = clazz.getSuperclass()) { + for (Method method : clazz.getDeclaredMethods()) { + String name = method.getName(); + if (name.equals("setUp")) { + Type[] parameterTypes = method.getGenericParameterTypes(); + Object[] args = new Object[parameterTypes.length]; + for (int i=0; i<parameterTypes.length; i++) { + Type parameterType = parameterTypes[i]; + if (!(parameterType instanceof Class)) { + throw new Error("Generic parameters not supported in " + method); + } + Class<?> parameterClass = (Class<?>)parameterType; + TestResource res = null; + for (TestResource resource : resources) { + Object obj = resource.getInstance(); + if (parameterClass.isInstance(obj)) { + if (res != null) { + throw new Error(); + } + res = resource; + } + } + if (res == null) { + throw new Error(target.getClass().getName() + " depends on " + parameterClass.getName() + ", but none found"); + } + args[i] = res.getInstance(); + } + method.setAccessible(true); + initializers.addFirst(new Initializer(method, target, args)); + } else if (name.equals("tearDown") && method.getParameterTypes().length == 0) { + method.setAccessible(true); + finalizers.add(new Finalizer(method, target)); + } + } + } + } + + public Object getInstance() { + return instance; + } + + public void setUp() throws Exception { + for (Initializer initializer : initializers) { + initializer.execute(); + } + } + + public void tearDown() throws Exception { + for (Finalizer finalizer : finalizers) { + finalizer.execute(); + } + } +} 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=686626&r1=686625&r2=686626&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 17 11:06:11 2008 @@ -19,23 +19,24 @@ package org.apache.synapse.transport.testkit.tests; +import java.util.LinkedList; +import java.util.List; +import java.util.ListIterator; import java.util.Map; import junit.framework.TestCase; import org.apache.synapse.transport.testkit.TestEnvironment; -import org.apache.synapse.transport.testkit.client.TestClient; import org.apache.synapse.transport.testkit.listener.Channel; import org.apache.synapse.transport.testkit.listener.ContentTypeMode; import org.apache.synapse.transport.testkit.name.NameComponent; import org.apache.synapse.transport.testkit.name.NameUtils; import org.apache.synapse.transport.testkit.server.Server; -public abstract class TransportTestCase<E extends TestEnvironment,C extends Channel<? super E>,L extends TestClient<? super E,? super C>> extends TestCase { - protected final E env; - protected final C channel; - protected final L client; - private final Server<? super E> server; +public abstract class TransportTestCase extends TestCase { + private final List<TestResource> resources = new LinkedList<TestResource>(); + private final TestEnvironment env; + private final Channel channel; protected final ContentTypeMode contentTypeMode; protected final String contentType; @@ -43,15 +44,24 @@ private boolean manageServer = true; - public TransportTestCase(E env, C channel, L client, Server<? super E> server, ContentTypeMode contentTypeMode, String contentType) { + public TransportTestCase(TestEnvironment env, Channel channel, Server server, ContentTypeMode contentTypeMode, String contentType) { this.env = env; this.channel = channel; - this.client = client; - this.server = server; this.contentTypeMode = contentTypeMode; this.contentType = contentType; + if (env != null) { + addResource(env); + } + addResource(channel); + if (server != null) { + addResource(server); + } } + protected void addResource(Object resource) { + resources.add(new TestResource(resources, resource)); + } + public Map<String,String> getNameComponents() { if (nameComponents == null) { nameComponents = NameUtils.getNameComponents("test", this); @@ -79,21 +89,16 @@ return testName; } - @NameComponent("channel") - public C getChannel() { - return channel; - } - - @NameComponent("client") - public L getClient() { - return client; - } - @NameComponent("env") - public E getEnvironment() { + public TestEnvironment getEnvironment() { return env; } + @NameComponent("channel") + public Channel getChannel() { + return channel; + } + // public void setServer(ListenerTestServer server){ // this.server = server; // manageServer = false; @@ -101,25 +106,15 @@ @Override protected void setUp() throws Exception { - if (env != null) { - env.setUp(); - } - channel.setUp(env); - if (server != null && manageServer) { - server.start(env, channel); + for (TestResource resource : resources) { + resource.setUp(); } - client.setUp(env, channel); } @Override protected void tearDown() throws Exception { - client.tearDown(); - if (server != null && manageServer) { - server.stop(); - } - channel.tearDown(); - if (env != null) { - env.tearDown(); + for (ListIterator<TestResource> it = resources.listIterator(resources.size()); it.hasPrevious(); ) { + it.previous().tearDown(); } } } \ No newline at end of file Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/BinaryTestCase.java URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/BinaryTestCase.java?rev=686626&r1=686625&r2=686626&view=diff ============================================================================== --- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/BinaryTestCase.java (original) +++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/BinaryTestCase.java Sun Aug 17 11:06:11 2008 @@ -32,10 +32,10 @@ import org.apache.synapse.transport.testkit.server.AsyncEndpointFactory; @DisplayName("AsyncBinary") -public class BinaryTestCase<E extends TestEnvironment,C extends AsyncChannel<? super E>> extends AsyncMessageTestCase<E,C,ByteArrayMessage,ByteArrayMessage> { +public class BinaryTestCase extends AsyncMessageTestCase<ByteArrayMessage,ByteArrayMessage> { private static final Random random = new Random(); - public BinaryTestCase(E env, C channel, AsyncTestClient<? super E,? super C,ByteArrayMessage> client, AsyncEndpointFactory<? super E,? super C,ByteArrayMessage> endpointFactory, ContentTypeMode contentTypeMode) { + public BinaryTestCase(TestEnvironment env, AsyncChannel channel, AsyncTestClient<ByteArrayMessage> client, AsyncEndpointFactory<ByteArrayMessage> endpointFactory, ContentTypeMode contentTypeMode) { super(env, channel, client, endpointFactory, contentTypeMode, "application/octet-stream", null); } Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/RESTTestCase.java URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/RESTTestCase.java?rev=686626&r1=686625&r2=686626&view=diff ============================================================================== --- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/RESTTestCase.java (original) +++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/RESTTestCase.java Sun Aug 17 11:06:11 2008 @@ -37,10 +37,10 @@ import org.apache.synapse.transport.testkit.server.AsyncEndpointFactory; @DisplayName("REST") -public class RESTTestCase<E extends TestEnvironment,C extends AsyncChannel<? super E>> extends AsyncMessageTestCase<E,C,RESTMessage,MessageData> { +public class RESTTestCase extends AsyncMessageTestCase<RESTMessage,MessageData> { private final RESTMessage message; - public RESTTestCase(E env, C channel, AsyncTestClient<? super E,? super C,RESTMessage> client, AsyncEndpointFactory<? super E,? super C,MessageData> endpointFactory, RESTMessage message) { + public RESTTestCase(TestEnvironment env, AsyncChannel channel, AsyncTestClient<RESTMessage> client, AsyncEndpointFactory<MessageData> endpointFactory, RESTMessage message) { super(env, channel, client, endpointFactory, ContentTypeMode.TRANSPORT, null, null); this.message = message; } Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/SwATestCase.java URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/SwATestCase.java?rev=686626&r1=686625&r2=686626&view=diff ============================================================================== --- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/SwATestCase.java (original) +++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/SwATestCase.java Sun Aug 17 11:06:11 2008 @@ -49,13 +49,13 @@ import org.apache.synapse.transport.testkit.server.AsyncEndpointFactory; @DisplayName("AsyncSwA") -public class SwATestCase<E extends TestEnvironment,C extends AsyncChannel<? super E>> extends AsyncMessageTestCase<E,C,ByteArrayMessage,MessageData> { +public class SwATestCase extends AsyncMessageTestCase<ByteArrayMessage,MessageData> { private static final Random random = new Random(); private byte[] attachmentContent; private String contentID; - public SwATestCase(E env, C channel, AsyncTestClient<? super E,? super C,ByteArrayMessage> client, AsyncEndpointFactory<? super E,? super C,MessageData> endpointFactory) { + public SwATestCase(TestEnvironment env, AsyncChannel channel, AsyncTestClient<ByteArrayMessage> client, AsyncEndpointFactory<MessageData> endpointFactory) { super(env, channel, client, endpointFactory, ContentTypeMode.TRANSPORT, null, null); } Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/TextPlainTestCase.java URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/TextPlainTestCase.java?rev=686626&r1=686625&r2=686626&view=diff ============================================================================== --- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/TextPlainTestCase.java (original) +++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/TextPlainTestCase.java Sun Aug 17 11:06:11 2008 @@ -31,10 +31,10 @@ import org.apache.synapse.transport.testkit.server.AsyncEndpointFactory; @DisplayName("AsyncTextPlain") -public class TextPlainTestCase<E extends TestEnvironment,C extends AsyncChannel<? super E>> extends AsyncMessageTestCase<E,C,StringMessage,StringMessage> { +public class TextPlainTestCase extends AsyncMessageTestCase<StringMessage,StringMessage> { private final MessageTestData data; - public TextPlainTestCase(E env, C channel, AsyncTestClient<? super E,? super C,StringMessage> client, AsyncEndpointFactory<? super E,? super C,StringMessage> endpointFactory, ContentTypeMode contentTypeMode, MessageTestData data) { + public TextPlainTestCase(TestEnvironment env, AsyncChannel channel, AsyncTestClient<StringMessage> client, AsyncEndpointFactory<StringMessage> endpointFactory, ContentTypeMode contentTypeMode, MessageTestData data) { super(env, channel, client, endpointFactory, contentTypeMode, "text/plain; charset=\"" + data.getCharset() + "\"", data.getCharset()); this.data = data; } Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/XMLAsyncMessageTestCase.java URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/XMLAsyncMessageTestCase.java?rev=686626&r1=686625&r2=686626&view=diff ============================================================================== --- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/XMLAsyncMessageTestCase.java (original) +++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/XMLAsyncMessageTestCase.java Sun Aug 17 11:06:11 2008 @@ -38,11 +38,11 @@ import org.apache.synapse.transport.testkit.server.AsyncEndpointFactory; @DisplayName("AsyncXML") -public class XMLAsyncMessageTestCase<E extends TestEnvironment,C extends AsyncChannel<? super E>> extends AsyncMessageTestCase<E,C,XMLMessage,MessageData> { +public class XMLAsyncMessageTestCase extends AsyncMessageTestCase<XMLMessage,MessageData> { private final XMLMessageType xmlMessageType; private final MessageTestData data; - public XMLAsyncMessageTestCase(E env, C channel, AsyncTestClient<? super E,? super C,XMLMessage> client, AsyncEndpointFactory<? super E,? super C,MessageData> endpointFactory, XMLMessageType xmlMessageType, ContentTypeMode contentTypeMode, String baseContentType, MessageTestData data) { + public XMLAsyncMessageTestCase(TestEnvironment env, AsyncChannel channel, AsyncTestClient<XMLMessage> client, AsyncEndpointFactory<MessageData> endpointFactory, XMLMessageType xmlMessageType, ContentTypeMode contentTypeMode, String baseContentType, MessageTestData data) { super(env, channel, client, endpointFactory, contentTypeMode, baseContentType + "; charset=\"" + data.getCharset() + "\"", data.getCharset()); this.xmlMessageType = xmlMessageType; this.data = data; Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/echo/XMLRequestResponseMessageTestCase.java URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/echo/XMLRequestResponseMessageTestCase.java?rev=686626&r1=686625&r2=686626&view=diff ============================================================================== --- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/echo/XMLRequestResponseMessageTestCase.java (original) +++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/echo/XMLRequestResponseMessageTestCase.java Sun Aug 17 11:06:11 2008 @@ -36,17 +36,26 @@ import org.apache.synapse.transport.testkit.tests.TransportTestCase; @DisplayName("EchoXML") -public class XMLRequestResponseMessageTestCase<E extends TestEnvironment,C extends RequestResponseChannel<? super E>> extends TransportTestCase<E,C,XMLRequestResponseTestClient<? super E,? super C>> { - private final EndpointFactory<? super E,? super C> endpointFactory; +public class XMLRequestResponseMessageTestCase extends TransportTestCase { + private final XMLRequestResponseTestClient client; + private final EndpointFactory endpointFactory; private final XMLMessageType xmlMessageType; private final MessageTestData data; // TODO: realign order of arguments with XMLAsyncMessageTestCase constructor - public XMLRequestResponseMessageTestCase(E env, C channel, XMLRequestResponseTestClient<? super E,? super C> client, EndpointFactory<? super E,? super C> endpointFactory, ContentTypeMode contentTypeMode, String contentType, XMLMessageType xmlMessageType, MessageTestData data) { - super(env, channel, client, endpointFactory.getServer(), contentTypeMode, contentType); + public XMLRequestResponseMessageTestCase(TestEnvironment env, RequestResponseChannel channel, XMLRequestResponseTestClient client, EndpointFactory endpointFactory, ContentTypeMode contentTypeMode, String contentType, XMLMessageType xmlMessageType, MessageTestData data) { + super(env, channel, endpointFactory.getServer(), contentTypeMode, contentType); + this.client = client; this.endpointFactory = endpointFactory; this.xmlMessageType = xmlMessageType; this.data = data; + addResource(client); + addResource(endpointFactory); + } + + @NameComponent("client") + public XMLRequestResponseTestClient getClient() { + return client; } @NameComponent("messageType") @@ -61,12 +70,12 @@ @Override protected void runTest() throws Throwable { - Endpoint endpoint = endpointFactory.createEchoEndpoint(env, channel, contentTypeMode == ContentTypeMode.SERVICE ? contentType : null); + Endpoint endpoint = endpointFactory.createEchoEndpoint(contentTypeMode == ContentTypeMode.SERVICE ? contentType : null); try { OMFactory factory = xmlMessageType.getOMFactory(); OMElement orgElement = factory.createOMElement(new QName("root")); orgElement.setText(data.getText()); - OMElement element = client.sendMessage(channel, endpoint.getEPR(), contentType, data.getCharset(), xmlMessageType, orgElement); + OMElement element = client.sendMessage(endpoint.getEPR(), contentType, data.getCharset(), xmlMessageType, orgElement); assertEquals(orgElement.getQName(), element.getQName()); assertEquals(orgElement.getText(), element.getText()); } finally { Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/vfs/VFSClient.java URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/vfs/VFSClient.java?rev=686626&r1=686625&r2=686626&view=diff ============================================================================== --- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/vfs/VFSClient.java (original) +++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/vfs/VFSClient.java Sun Aug 17 11:06:11 2008 @@ -19,17 +19,24 @@ package org.apache.synapse.transport.vfs; +import java.io.File; import java.io.FileOutputStream; import java.io.OutputStream; -import org.apache.synapse.transport.testkit.client.AbstractTestClient; import org.apache.synapse.transport.testkit.client.AsyncTestClient; import org.apache.synapse.transport.testkit.client.ClientOptions; import org.apache.synapse.transport.testkit.message.ByteArrayMessage; -public class VFSClient extends AbstractTestClient<VFSTestEnvironment,VFSFileChannel> implements AsyncTestClient<VFSTestEnvironment,VFSFileChannel,ByteArrayMessage> { - public void sendMessage(VFSFileChannel channel, ClientOptions options, ByteArrayMessage message) throws Exception { - OutputStream out = new FileOutputStream(channel.getRequestFile()); +public class VFSClient implements AsyncTestClient<ByteArrayMessage> { + private File requestFile; + + @SuppressWarnings("unused") + private void setUp(VFSFileChannel channel) { + requestFile = channel.getRequestFile(); + } + + public void sendMessage(ClientOptions options, ByteArrayMessage message) throws Exception { + OutputStream out = new FileOutputStream(requestFile); out.write(message.getContent()); out.close(); } Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/vfs/VFSFileChannel.java URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/vfs/VFSFileChannel.java?rev=686626&r1=686625&r2=686626&view=diff ============================================================================== --- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/vfs/VFSFileChannel.java (original) +++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/vfs/VFSFileChannel.java Sun Aug 17 11:06:11 2008 @@ -25,7 +25,7 @@ import org.apache.synapse.transport.testkit.listener.AbstractChannel; import org.apache.synapse.transport.testkit.listener.AsyncChannel; -public class VFSFileChannel extends AbstractChannel<VFSTestEnvironment> implements AsyncChannel<VFSTestEnvironment> { +public class VFSFileChannel extends AbstractChannel implements AsyncChannel { private final File requestFile; public VFSFileChannel(File requestFile) { @@ -43,8 +43,8 @@ service.addParameter("transport.vfs.ActionAfterProcess", "DELETE"); } - @Override - public void setUp(VFSTestEnvironment env) throws Exception { + @SuppressWarnings("unused") + private void setUp() throws Exception { requestFile.getParentFile().mkdirs(); requestFile.delete(); } 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=686626&r1=686625&r2=686626&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 17 11:06:11 2008 @@ -36,6 +36,7 @@ import org.apache.synapse.transport.testkit.listener.ContentTypeMode; 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; /** @@ -44,24 +45,25 @@ public class VFSTransportListenerTest extends TestCase { public static TestSuite suite() { // TODO: the VFS listener doesn't like reuseServer == true... - TransportTestSuite<VFSTestEnvironment> suite = new TransportTestSuite<VFSTestEnvironment>(false); + TransportTestSuite suite = new TransportTestSuite(false); TransportDescriptionFactory tdf = new SimpleTransportDescriptionFactory("vfs", VFSTransportListener.class, VFSTransportSender.class); VFSTestEnvironment env = new VFSTestEnvironment(); - AxisServer<VFSTestEnvironment> server = new AxisServer<VFSTestEnvironment>(tdf); + AxisServer server = new AxisServer(tdf); + AxisAsyncEndpointFactory asyncEndpointFactory = new AxisAsyncEndpointFactory(server); VFSFileChannel channel = new VFSFileChannel(new File("target/vfs3/req/in").getAbsoluteFile()); VFSClient vfsClient = new VFSClient(); - List<AsyncTestClient<? super VFSTestEnvironment,? super VFSFileChannel,XMLMessage>> clients = new LinkedList<AsyncTestClient<? super VFSTestEnvironment,? super VFSFileChannel,XMLMessage>>(); + List<AsyncTestClient<XMLMessage>> clients = new LinkedList<AsyncTestClient<XMLMessage>>(); clients.add(adapt(vfsClient, MessageConverter.XML_TO_BYTE)); clients.add(new AxisAsyncTestClient(tdf)); - for (AsyncTestClient<? super VFSTestEnvironment,? super VFSFileChannel,XMLMessage> client : clients) { - suite.addSOAPTests(env, channel, client, server, ContentTypeMode.SERVICE); - suite.addPOXTests(env, channel, client, server, ContentTypeMode.SERVICE); + for (AsyncTestClient<XMLMessage> client : clients) { + suite.addSOAPTests(env, channel, client, asyncEndpointFactory, ContentTypeMode.SERVICE); + suite.addPOXTests(env, channel, client, asyncEndpointFactory, ContentTypeMode.SERVICE); // Since VFS has no Content-Type header, SwA is not supported. } - suite.addTextPlainTests(env, channel, adapt(vfsClient, MessageConverter.STRING_TO_BYTE), adapt(server, MessageConverter.AXIS_TO_STRING), ContentTypeMode.SERVICE); - suite.addBinaryTest(env, channel, vfsClient, adapt(server, MessageConverter.AXIS_TO_BYTE), ContentTypeMode.SERVICE); + suite.addTextPlainTests(env, channel, adapt(vfsClient, MessageConverter.STRING_TO_BYTE), adapt(asyncEndpointFactory, MessageConverter.AXIS_TO_STRING), ContentTypeMode.SERVICE); + suite.addBinaryTest(env, channel, vfsClient, adapt(asyncEndpointFactory, MessageConverter.AXIS_TO_BYTE), ContentTypeMode.SERVICE); return suite; } } Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/vfs/VFSTransportSenderTest.java URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/vfs/VFSTransportSenderTest.java?rev=686626&r1=686625&r2=686626&view=diff ============================================================================== --- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/vfs/VFSTransportSenderTest.java (original) +++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/vfs/VFSTransportSenderTest.java Sun Aug 17 11:06:11 2008 @@ -39,22 +39,28 @@ public class VFSTransportSenderTest extends TestCase { public static TestSuite suite() { - TransportTestSuite<VFSTestEnvironment> suite = new TransportTestSuite<VFSTestEnvironment>(); + TransportTestSuite suite = new TransportTestSuite(); VFSTestEnvironment env = new VFSTestEnvironment(); TransportDescriptionFactory tdf = new SimpleTransportDescriptionFactory("vfs", VFSTransportListener.class, VFSTransportSender.class); - AsyncEndpointFactory<VFSTestEnvironment,VFSFileChannel,ByteArrayMessage> endpointFactory = - new AsyncEndpointFactory<VFSTestEnvironment,VFSFileChannel,ByteArrayMessage>() { + AsyncEndpointFactory<ByteArrayMessage> endpointFactory = + new AsyncEndpointFactory<ByteArrayMessage>() { - public Server<VFSTestEnvironment> getServer() { + private VFSFileChannel channel; + + public Server getServer() { return null; } - public AsyncEndpoint<ByteArrayMessage> createAsyncEndpoint( - VFSTestEnvironment env, VFSFileChannel channel, String contentType) + @SuppressWarnings("unused") + private void setUp(VFSFileChannel channel) { + this.channel = channel; + } + + public AsyncEndpoint<ByteArrayMessage> createAsyncEndpoint(String contentType) throws Exception { return new VFSMockAsyncEndpoint(channel, contentType);
