Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/misc/MinConcurrencyTest.java URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/misc/MinConcurrencyTest.java?rev=688888&r1=688887&r2=688888&view=diff ============================================================================== --- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/misc/MinConcurrencyTest.java (original) +++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/misc/MinConcurrencyTest.java Mon Aug 25 14:26:56 2008 @@ -22,20 +22,25 @@ import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; +import javax.mail.internet.ContentType; + import org.apache.axiom.om.OMAbstractFactory; import org.apache.axiom.soap.SOAP11Constants; import org.apache.axiom.soap.SOAPEnvelope; import org.apache.axiom.soap.SOAPFactory; import org.apache.axis2.AxisFault; import org.apache.axis2.context.MessageContext; +import org.apache.axis2.description.AxisOperation; +import org.apache.axis2.description.InOnlyAxisOperation; import org.apache.axis2.engine.MessageReceiver; import org.apache.synapse.transport.testkit.client.ClientOptions; import org.apache.synapse.transport.testkit.client.axis2.AxisAsyncTestClient; import org.apache.synapse.transport.testkit.listener.AsyncChannel; import org.apache.synapse.transport.testkit.message.AxisMessage; import org.apache.synapse.transport.testkit.name.Name; -import org.apache.synapse.transport.testkit.server.Endpoint; +import org.apache.synapse.transport.testkit.server.axis2.AxisEndpoint; import org.apache.synapse.transport.testkit.server.axis2.AxisServer; +import org.apache.synapse.transport.testkit.server.axis2.DefaultOperationDispatcher; import org.apache.synapse.transport.testkit.tests.TestResourceSet; import org.apache.synapse.transport.testkit.tests.TransportTestCase; @@ -52,7 +57,6 @@ */ @Name("MinConcurrency") public class MinConcurrencyTest extends TransportTestCase { - private final AxisServer server; private final AsyncChannel[] channels; private final int messages; private final boolean preloadMessages; @@ -60,7 +64,6 @@ public MinConcurrencyTest(AxisServer server, AsyncChannel[] channels, int messages, boolean preloadMessages, Object... resources) { super(resources); - this.server = server; addResource(server); this.channels = channels; this.messages = messages; @@ -75,7 +78,7 @@ final CountDownLatch shutdownLatch = new CountDownLatch(1); final CountDownLatch concurrencyReachedLatch = new CountDownLatch(expectedConcurrency); - MessageReceiver messageReceiver = new MessageReceiver() { + final MessageReceiver messageReceiver = new MessageReceiver() { public void receive(MessageContext msgContext) throws AxisFault { concurrencyReachedLatch.countDown(); try { @@ -85,32 +88,44 @@ } }; - TestResourceSet[] resourceSets = new TestResourceSet[endpointCount]; - Endpoint[] endpoints = new Endpoint[endpointCount]; + TestResourceSet[] clientResourceSets = new TestResourceSet[endpointCount]; + TestResourceSet[] endpointResourceSets = new TestResourceSet[endpointCount]; try { for (int i=0; i<endpointCount; i++) { - TestResourceSet resources = new TestResourceSet(getResourceSet()); + TestResourceSet clientResourceSet = new TestResourceSet(getResourceSet()); AsyncChannel channel = channels[i]; - resources.addResource(channel); + clientResourceSet.addResource(channel); AxisAsyncTestClient client = new AxisAsyncTestClient(); - resources.addResource(client); - resources.setUp(); - resourceSets[i] = resources; + clientResourceSet.addResource(client); + clientResourceSet.setUp(); + clientResourceSets[i] = clientResourceSet; + + TestResourceSet endpointResourceSet = new TestResourceSet(clientResourceSet); + endpointResourceSet.addResource(new AxisEndpoint() { + @Override + protected AxisOperation createOperation() { + AxisOperation operation = new InOnlyAxisOperation(DefaultOperationDispatcher.DEFAULT_OPERATION_NAME); + operation.setMessageReceiver(messageReceiver); + return operation; + } + }); + if (!preloadMessages) { - // TODO: we need to support transports that use static Content-Type - endpoints[i] = server.createAsyncEndpoint(channel, messageReceiver, null); + endpointResourceSet.setUp(); + endpointResourceSets[i] = endpointResourceSet; } for (int j=0; j<messages; j++) { - ClientOptions options = new ClientOptions("UTF-8"); + ClientOptions options = new ClientOptions(new ContentType(SOAP11Constants.SOAP_11_CONTENT_TYPE), "UTF-8"); AxisMessage message = new AxisMessage(); message.setMessageType(SOAP11Constants.SOAP_11_CONTENT_TYPE); SOAPFactory factory = OMAbstractFactory.getSOAP11Factory(); SOAPEnvelope envelope = factory.getDefaultEnvelope(); message.setEnvelope(envelope); - client.sendMessage(options, message); + client.sendMessage(options, new ContentType(message.getMessageType()), message); } if (preloadMessages) { - endpoints[i] = server.createAsyncEndpoint(channel, messageReceiver, null); + endpointResourceSet.setUp(); + endpointResourceSets[i] = endpointResourceSet; } } @@ -122,11 +137,11 @@ } finally { shutdownLatch.countDown(); for (int i=0; i<endpointCount; i++) { - if (endpoints[i] != null) { - endpoints[i].remove(); + if (endpointResourceSets[i] != null) { + endpointResourceSets[i].tearDown(); } - if (resourceSets[i] != null) { - resourceSets[i].tearDown(); + if (clientResourceSets[i] != null) { + clientResourceSets[i].tearDown(); } } }
Added: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/util/ContentTypeUtil.java URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/util/ContentTypeUtil.java?rev=688888&view=auto ============================================================================== --- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/util/ContentTypeUtil.java (added) +++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/util/ContentTypeUtil.java Mon Aug 25 14:26:56 2008 @@ -0,0 +1,54 @@ +/* + * 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.util; + +import java.util.Enumeration; + +import javax.mail.internet.ContentType; +import javax.mail.internet.ParameterList; + +public class ContentTypeUtil { + private ContentTypeUtil() {} + + public static ContentType addCharset(ContentType contentType, String charset) { + ParameterList orgParamList = contentType.getParameterList(); + ParameterList paramList = new ParameterList(); + if (orgParamList != null) { + for (Enumeration<?> e = orgParamList.getNames(); e.hasMoreElements(); ) { + String name = (String)e.nextElement(); + paramList.set(name, orgParamList.get(name)); + } + } + paramList.set("charset", charset); + return new ContentType(contentType.getPrimaryType(), contentType.getSubType(), paramList); + } + + public static ContentType removeCharset(ContentType contentType) { + ParameterList orgParamList = contentType.getParameterList(); + ParameterList paramList = new ParameterList(); + for (Enumeration<?> e = orgParamList.getNames(); e.hasMoreElements(); ) { + String name = (String)e.nextElement(); + if (!name.equalsIgnoreCase("charset")) { + paramList.set(name, orgParamList.get(name)); + } + } + return new ContentType(contentType.getPrimaryType(), contentType.getSubType(), paramList); + } +} 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=688888&r1=688887&r2=688888&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 Mon Aug 25 14:26:56 2008 @@ -23,11 +23,14 @@ import java.io.FileOutputStream; import java.io.OutputStream; +import javax.mail.internet.ContentType; + import org.apache.synapse.transport.testkit.client.AsyncTestClient; import org.apache.synapse.transport.testkit.client.ClientOptions; -import org.apache.synapse.transport.testkit.message.ByteArrayMessage; +import org.apache.synapse.transport.testkit.name.Name; -public class VFSClient implements AsyncTestClient<ByteArrayMessage> { [EMAIL PROTECTED]("java.io") +public class VFSClient implements AsyncTestClient<byte[]> { private File requestFile; @SuppressWarnings("unused") @@ -35,9 +38,13 @@ requestFile = channel.getRequestFile(); } - public void sendMessage(ClientOptions options, ByteArrayMessage message) throws Exception { + public ContentType getContentType(ClientOptions options, ContentType contentType) { + return contentType; + } + + public void sendMessage(ClientOptions options, ContentType contentType, byte[] message) throws Exception { OutputStream out = new FileOutputStream(requestFile); - out.write(message.getContent()); + out.write(message); out.close(); } } \ No newline at end of file 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=688888&r1=688887&r2=688888&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 Mon Aug 25 14:26:56 2008 @@ -21,12 +21,14 @@ import java.io.File; + import org.apache.axis2.addressing.EndpointReference; import org.apache.axis2.description.AxisService; import org.apache.synapse.transport.testkit.listener.AbstractChannel; import org.apache.synapse.transport.testkit.listener.AsyncChannel; +import org.apache.synapse.transport.testkit.server.axis2.AxisServiceConfigurator; -public class VFSFileChannel extends AbstractChannel implements AsyncChannel { +public class VFSFileChannel extends AbstractChannel implements AsyncChannel, AxisServiceConfigurator { private final String path; private File requestFile; @@ -42,7 +44,6 @@ return new EndpointReference("vfs:" + requestFile.getAbsoluteFile().toURL()); } - @Override public void setupService(AxisService service) throws Exception { service.addParameter("transport.vfs.FileURI", "vfs:" + requestFile.toURL()); service.addParameter("transport.PollInterval", "50ms"); Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/vfs/VFSMockAsyncEndpoint.java URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/vfs/VFSMockAsyncEndpoint.java?rev=688888&r1=688887&r2=688888&view=diff ============================================================================== --- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/vfs/VFSMockAsyncEndpoint.java (original) +++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/vfs/VFSMockAsyncEndpoint.java Mon Aug 25 14:26:56 2008 @@ -25,28 +25,33 @@ import javax.mail.internet.ContentType; import org.apache.commons.io.IOUtils; -import org.apache.synapse.transport.testkit.message.ByteArrayMessage; +import org.apache.synapse.transport.testkit.client.ClientOptions; +import org.apache.synapse.transport.testkit.client.TestClient; +import org.apache.synapse.transport.testkit.message.IncomingMessage; +import org.apache.synapse.transport.testkit.name.Name; import org.apache.synapse.transport.testkit.server.AsyncEndpoint; import de.schlichtherle.io.FileInputStream; -public class VFSMockAsyncEndpoint implements AsyncEndpoint<ByteArrayMessage> { - private final VFSFileChannel channel; - private final ContentType contentType; [EMAIL PROTECTED]("mock") +public class VFSMockAsyncEndpoint implements AsyncEndpoint<byte[]> { + private VFSFileChannel channel; + private ContentType contentType; - public VFSMockAsyncEndpoint(VFSFileChannel channel, ContentType contentType) { + @SuppressWarnings("unused") + private void setUp(VFSFileChannel channel, TestClient client, ClientOptions options) { this.channel = channel; - this.contentType = contentType; + contentType = client.getContentType(options, options.getBaseContentType()); } - public ByteArrayMessage waitForMessage(int timeout) throws Throwable { + public IncomingMessage<byte[]> waitForMessage(int timeout) throws Throwable { long time = System.currentTimeMillis(); File file = channel.getRequestFile(); while (System.currentTimeMillis() < time + timeout) { if (file.exists()) { InputStream in = new FileInputStream(file); try { - return new ByteArrayMessage(contentType, IOUtils.toByteArray(in)); + return new IncomingMessage<byte[]>(contentType, IOUtils.toByteArray(in)); } finally { in.close(); } @@ -55,8 +60,4 @@ } return null; } - - public void remove() throws Exception { - // Nothing to do - } } Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/vfs/VFSTestEnvironment.java URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/vfs/VFSTestEnvironment.java?rev=688888&r1=688887&r2=688888&view=diff ============================================================================== --- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/vfs/VFSTestEnvironment.java (original) +++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/vfs/VFSTestEnvironment.java Mon Aug 25 14:26:56 2008 @@ -21,10 +21,7 @@ import java.io.File; -import org.apache.axis2.description.AxisService; -import org.apache.synapse.transport.testkit.TestEnvironment; - -public class VFSTestEnvironment extends TestEnvironment { +public class VFSTestEnvironment { private final File rootDir; public VFSTestEnvironment(File rootDir) { @@ -39,9 +36,4 @@ public File getRootDir() { return rootDir; } - - @Override - public void setupContentType(AxisService service, String contentType) throws Exception { - service.addParameter("transport.vfs.ContentType", contentType); - } } \ No newline at end of file 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=688888&r1=688887&r2=688888&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 Mon Aug 25 14:26:56 2008 @@ -33,10 +33,11 @@ import org.apache.synapse.transport.testkit.TransportTestSuite; import org.apache.synapse.transport.testkit.client.AsyncTestClient; import org.apache.synapse.transport.testkit.client.axis2.AxisAsyncTestClient; -import org.apache.synapse.transport.testkit.listener.ContentTypeMode; -import org.apache.synapse.transport.testkit.message.MessageConverter; +import org.apache.synapse.transport.testkit.message.MessageDecoder; +import org.apache.synapse.transport.testkit.message.MessageEncoder; 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.AxisAsyncEndpoint; +import org.apache.synapse.transport.testkit.server.axis2.ContentTypeServiceConfigurator; /** * TransportListenerTestTemplate implementation for the VFS transport. @@ -49,19 +50,20 @@ new SimpleTransportDescriptionFactory("vfs", VFSTransportListener.class, VFSTransportSender.class); VFSTestEnvironment env = new VFSTestEnvironment(new File("target/vfs3")); - AxisAsyncEndpointFactory asyncEndpointFactory = new AxisAsyncEndpointFactory(); + AxisAsyncEndpoint asyncEndpoint = new AxisAsyncEndpoint(); VFSFileChannel channel = new VFSFileChannel("req/in"); VFSClient vfsClient = new VFSClient(); List<AsyncTestClient<XMLMessage>> clients = new LinkedList<AsyncTestClient<XMLMessage>>(); - clients.add(adapt(vfsClient, MessageConverter.XML_TO_BYTE)); - clients.add(adapt(new AxisAsyncTestClient(), MessageConverter.XML_TO_AXIS)); + clients.add(adapt(vfsClient, MessageEncoder.XML_TO_BYTE)); + clients.add(adapt(new AxisAsyncTestClient(), MessageEncoder.XML_TO_AXIS)); + ContentTypeServiceConfigurator cfgtr = new ContentTypeServiceConfigurator("transport.vfs.ContentType"); for (AsyncTestClient<XMLMessage> client : clients) { - suite.addSOAPTests(channel, client, asyncEndpointFactory, ContentTypeMode.SERVICE, env, tdf); - suite.addPOXTests(channel, client, asyncEndpointFactory, ContentTypeMode.SERVICE, env, tdf); + suite.addSOAPTests(channel, client, asyncEndpoint, env, tdf, cfgtr); + suite.addPOXTests(channel, client, asyncEndpoint, env, tdf, cfgtr); // 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, tdf); - suite.addBinaryTest(channel, vfsClient, adapt(asyncEndpointFactory, MessageConverter.AXIS_TO_BYTE), ContentTypeMode.SERVICE, env, tdf); + suite.addTextPlainTests(channel, adapt(vfsClient, MessageEncoder.STRING_TO_BYTE), adapt(asyncEndpoint, MessageDecoder.AXIS_TO_STRING), env, tdf, cfgtr); + suite.addBinaryTest(channel, vfsClient, adapt(asyncEndpoint, MessageDecoder.AXIS_TO_BYTE), env, tdf, cfgtr); // suite.addTest(new MinConcurrencyTest(server, new AsyncChannel[] { new VFSFileChannel("req/in1"), new VFSFileChannel("req/in2") }, 1, true, env, tdf)); 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=688888&r1=688887&r2=688888&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 Mon Aug 25 14:26:56 2008 @@ -23,8 +23,6 @@ import java.io.File; -import javax.mail.internet.ContentType; - import junit.framework.TestCase; import junit.framework.TestSuite; @@ -32,11 +30,9 @@ import org.apache.synapse.transport.testkit.TransportDescriptionFactory; import org.apache.synapse.transport.testkit.TransportTestSuite; import org.apache.synapse.transport.testkit.client.axis2.AxisAsyncTestClient; -import org.apache.synapse.transport.testkit.listener.ContentTypeMode; -import org.apache.synapse.transport.testkit.message.ByteArrayMessage; -import org.apache.synapse.transport.testkit.message.MessageConverter; +import org.apache.synapse.transport.testkit.message.MessageDecoder; +import org.apache.synapse.transport.testkit.message.MessageEncoder; import org.apache.synapse.transport.testkit.server.AsyncEndpoint; -import org.apache.synapse.transport.testkit.server.AsyncEndpointFactory; public class VFSTransportSenderTest extends TestCase { public static TestSuite suite() { @@ -47,28 +43,13 @@ new SimpleTransportDescriptionFactory("vfs", VFSTransportListener.class, VFSTransportSender.class); - AsyncEndpointFactory<ByteArrayMessage> endpointFactory = - new AsyncEndpointFactory<ByteArrayMessage>() { - - private VFSFileChannel channel; - - @SuppressWarnings("unused") - private void setUp(VFSFileChannel channel) { - this.channel = channel; - } - - public AsyncEndpoint<ByteArrayMessage> createAsyncEndpoint(String contentType) - throws Exception { - - return new VFSMockAsyncEndpoint(channel, new ContentType(contentType)); - } - }; + AsyncEndpoint<byte[]> endpoint = new VFSMockAsyncEndpoint(); VFSFileChannel channel = new VFSFileChannel("req/in"); AxisAsyncTestClient client = new AxisAsyncTestClient(); - suite.addBinaryTest(channel, adapt(client, MessageConverter.BINARY_WRAPPER), endpointFactory, ContentTypeMode.SERVICE, env, tdf); - suite.addTextPlainTests(channel, adapt(client, MessageConverter.TEXT_WRAPPER), adapt(endpointFactory, MessageConverter.BYTE_TO_STRING), ContentTypeMode.SERVICE, env, tdf); + suite.addBinaryTest(channel, adapt(client, MessageEncoder.BINARY_WRAPPER), endpoint, env, tdf); + suite.addTextPlainTests(channel, adapt(client, MessageEncoder.TEXT_WRAPPER), adapt(endpoint, MessageDecoder.BYTE_TO_STRING), env, tdf); return suite; }
