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/25 23:26:59 UTC
svn commit: r688888 [3/3] - in
/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport:
jms/ mail/ nhttp/ testkit/ testkit/client/ testkit/client/axis2/
testkit/listener/ testkit/message/ testkit/server/ testkit/server/axis2/ ...
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> {
+@Name("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;
+@Name("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;
}