Author: veithen
Date: Thu Sep 25 14:24:50 2008
New Revision: 699095

URL: http://svn.apache.org/viewvc?rev=699095&view=rev
Log:
Transport test kit: some changes that will allow us to build tests for async 
request-response

Added:
    
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/jms/ConcurrencyTest.java
    
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/jms/ReplyToMode.java
    
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/axis2/AxisServiceConfigurator.java
   (contents, props changed)
      - copied, changed from r698148, 
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/axis2/endpoint/AxisServiceConfigurator.java
Removed:
    
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/axis2/endpoint/AxisServiceConfigurator.java
Modified:
    
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/jms/JMSChannel.java
    
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/jms/JMSRequestResponseChannel.java
    
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/MailChannel.java
    
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/axis2/endpoint/AxisEndpoint.java
    
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/axis2/endpoint/ContentTypeServiceConfigurator.java
    
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/vfs/VFSFileChannel.java
    
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/vfs/VFSRequestResponseFileChannel.java

Added: 
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/jms/ConcurrencyTest.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/jms/ConcurrencyTest.java?rev=699095&view=auto
==============================================================================
--- 
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/jms/ConcurrencyTest.java
 (added)
+++ 
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/jms/ConcurrencyTest.java
 Thu Sep 25 14:24:50 2008
@@ -0,0 +1,97 @@
+package org.apache.synapse.transport.jms;
+
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.atomic.AtomicInteger;
+
+import javax.mail.internet.ContentType;
+import javax.xml.namespace.QName;
+
+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.axis2.transport.jms.JMSConstants;
+import org.apache.synapse.transport.testkit.client.AsyncTestClient;
+import org.apache.synapse.transport.testkit.client.ClientOptions;
+import org.apache.synapse.transport.testkit.server.axis2.AxisEndpoint;
+import org.apache.synapse.transport.testkit.tests.TestResourceSet;
+import org.apache.synapse.transport.testkit.tests.TransportTestCase;
+
+public class ConcurrencyTest extends TransportTestCase {
+    private static class BlockingMessageReceiver implements MessageReceiver {
+        private final CountDownLatch latch = new CountDownLatch(1);
+        private final AtomicInteger messageCount = new AtomicInteger();
+        
+        public void receive(MessageContext msgContext) throws AxisFault {
+            System.out.println("MESSAGE");
+            messageCount.incrementAndGet();
+            try {
+                latch.await();
+            } catch (InterruptedException ex) {
+            }
+        }
+        
+        public void unblock() {
+            latch.countDown();
+        }
+        
+        public int getMessageCount() {
+            return messageCount.get();
+        }
+    }
+    
+    private final JMSAsyncChannel channel = new 
JMSAsyncChannel(JMSConstants.DESTINATION_TYPE_QUEUE, ContentTypeMode.TRANSPORT);
+    private final AsyncTestClient<byte[]> client = new 
JMSAsyncClient<byte[]>(JMSBytesMessageFactory.INSTANCE);
+    
+    public ConcurrencyTest() {
+        addResource(new JMSTransportDescriptionFactory(false, false));
+        addResource(new QpidTestEnvironment());
+        addResource(channel);
+        addResource(client);
+    }
+    
+    public void _test() throws Exception {
+        final BlockingMessageReceiver messageReceiver = new 
BlockingMessageReceiver();
+        
+        TestResourceSet resources = new TestResourceSet(getResourceSet());
+        resources.addResource(new AxisEndpoint() {
+            @Override
+            protected AxisOperation createOperation() {
+                AxisOperation operation = new InOnlyAxisOperation(new 
QName("default"));
+                operation.setMessageReceiver(messageReceiver);
+                return operation;
+            }
+        });
+        
+        resources.setUp();
+        
+        ClientOptions options = new ClientOptions(new 
ContentType("application/octet-stream"), null);
+        for (int i=0; i<100; i++) {
+            client.sendMessage(options, options.getBaseContentType(), new 
byte[2048]);
+        }
+        
+        Thread.sleep(500);
+        
+        int messagesReceived = messageReceiver.getMessageCount();
+        
+        new Thread() {
+            @Override
+            public void run() {
+                try {
+                    Thread.sleep(500);
+                } catch (InterruptedException ex) {
+                }
+                messageReceiver.unblock();
+            }
+        }.start();
+        
+        resources.tearDown();
+        
+        int remainingInQueue = channel.getMessageCount();
+        
+        System.out.println("Messages received by MessageReceiver: " + 
messagesReceived);
+        System.out.println("Remaining in queue: " + remainingInQueue);
+        System.out.println("Total accepted: " + 
messageReceiver.getMessageCount());
+    }
+}

Modified: 
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/jms/JMSChannel.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/jms/JMSChannel.java?rev=699095&r1=699094&r2=699095&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/jms/JMSChannel.java
 (original)
+++ 
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/jms/JMSChannel.java
 Thu Sep 25 14:24:50 2008
@@ -32,7 +32,7 @@
 import org.apache.axis2.addressing.EndpointReference;
 import org.apache.axis2.description.AxisService;
 import org.apache.axis2.transport.jms.JMSConstants;
-import 
org.apache.synapse.transport.testkit.axis2.endpoint.AxisServiceConfigurator;
+import org.apache.synapse.transport.testkit.axis2.AxisServiceConfigurator;
 import org.apache.synapse.transport.testkit.name.Key;
 
 public abstract class JMSChannel implements AxisServiceConfigurator {
@@ -135,7 +135,7 @@
                 "&transport.jms.ConnectionFactoryJNDIName=" + 
connectionFactoryJNDIName);
     }
 
-    public void setupService(AxisService service) throws Exception {
+    public void setupService(AxisService service, boolean isClientSide) throws 
Exception {
         service.addParameter(JMSConstants.CONFAC_PARAM, connectionFactoryName);
         service.addParameter(JMSConstants.DEST_PARAM_TYPE, destinationType);
         service.addParameter(JMSConstants.DEST_PARAM, jndiName);

Modified: 
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/jms/JMSRequestResponseChannel.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/jms/JMSRequestResponseChannel.java?rev=699095&r1=699094&r2=699095&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/jms/JMSRequestResponseChannel.java
 (original)
+++ 
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/jms/JMSRequestResponseChannel.java
 Thu Sep 25 14:24:50 2008
@@ -61,8 +61,8 @@
     }
 
     @Override
-    public void setupService(AxisService service) throws Exception {
-        super.setupService(service);
+    public void setupService(AxisService service, boolean isClientSide) throws 
Exception {
+        super.setupService(service, isClientSide);
         service.addParameter(JMSConstants.REPLY_PARAM_TYPE, 
replyDestinationType);
         service.addParameter(JMSConstants.REPLY_PARAM, replyJndiName);
     }

Added: 
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/jms/ReplyToMode.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/jms/ReplyToMode.java?rev=699095&view=auto
==============================================================================
--- 
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/jms/ReplyToMode.java
 (added)
+++ 
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/jms/ReplyToMode.java
 Thu Sep 25 14:24:50 2008
@@ -0,0 +1,15 @@
+package org.apache.synapse.transport.jms;
+
+public enum ReplyToMode {
+    /**
+     * The reply to destination is configured on the endpoint and the
+     * clients doesn't set the reply to destination in the JMS message. 
+     */
+    ENDPOINT,
+    
+    /**
+     * The client specifies the reply to destination in the corresponding
+     * JMS header.
+     */
+    CLIENT
+}

Modified: 
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/MailChannel.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/MailChannel.java?rev=699095&r1=699094&r2=699095&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/MailChannel.java
 (original)
+++ 
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/MailChannel.java
 Thu Sep 25 14:24:50 2008
@@ -29,8 +29,8 @@
 import org.apache.axis2.context.MessageContext;
 import org.apache.axis2.description.AxisService;
 import org.apache.axis2.transport.mail.MailConstants;
+import org.apache.synapse.transport.testkit.axis2.AxisServiceConfigurator;
 import org.apache.synapse.transport.testkit.axis2.client.AxisTestClientSetup;
-import 
org.apache.synapse.transport.testkit.axis2.endpoint.AxisServiceConfigurator;
 import org.apache.synapse.transport.testkit.channel.AsyncChannel;
 import org.apache.synapse.transport.testkit.channel.RequestResponseChannel;
 
@@ -38,16 +38,12 @@
     private MailTestEnvironment env;
     private MailTestEnvironment.Account sender;
     private MailTestEnvironment.Account recipient;
-    private Map<String,String> senderInProperties;
-    private Map<String,String> recipientInProperties;
     
     @SuppressWarnings("unused")
     private void setUp(MailTestEnvironment env) throws Exception {
         this.env = env;
         sender = env.allocateAccount();
-        senderInProperties = env.getInProperties(sender);
         recipient = env.allocateAccount();
-        recipientInProperties = env.getInProperties(recipient);
     }
     
     @SuppressWarnings("unused")
@@ -68,7 +64,7 @@
     
     public Session getReplySession() {
         Properties props = new Properties();
-        props.putAll(senderInProperties);
+        props.putAll(env.getInProperties(sender));
         return Session.getInstance(props);
     }
 
@@ -76,12 +72,13 @@
         return new EndpointReference("mailto:"; + recipient.getAddress());
     }
 
-    public void setupService(AxisService service) throws Exception {
+    public void setupService(AxisService service, boolean isClientSide) throws 
Exception {
+        MailTestEnvironment.Account account = isClientSide ? sender : 
recipient;
         service.addParameter("transport.mail.Protocol", env.getProtocol());
-        service.addParameter("transport.mail.Address", recipient.getAddress());
+        service.addParameter("transport.mail.Address", account.getAddress());
         service.addParameter("transport.PollInterval", "50ms");
         
-        for (Map.Entry<String,String> prop : recipientInProperties.entrySet()) 
{
+        for (Map.Entry<String,String> prop : 
env.getInProperties(account).entrySet()) {
             service.addParameter(prop.getKey(), prop.getValue());
         }
     }

Copied: 
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/axis2/AxisServiceConfigurator.java
 (from r698148, 
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/axis2/endpoint/AxisServiceConfigurator.java)
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/axis2/AxisServiceConfigurator.java?p2=synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/axis2/AxisServiceConfigurator.java&p1=synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/axis2/endpoint/AxisServiceConfigurator.java&r1=698148&r2=699095&rev=699095&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/axis2/endpoint/AxisServiceConfigurator.java
 (original)
+++ 
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/axis2/AxisServiceConfigurator.java
 Thu Sep 25 14:24:50 2008
@@ -17,7 +17,7 @@
  *  under the License.
  */
 
-package org.apache.synapse.transport.testkit.axis2.endpoint;
+package org.apache.synapse.transport.testkit.axis2;
 
 
 import org.apache.axis2.description.AxisService;
@@ -31,7 +31,8 @@
      * The default implementation does nothing.
      * 
      * @param service
+     * @param isClientSide TODO
      * @throws Exception
      */
-    void setupService(AxisService service) throws Exception;
+    void setupService(AxisService service, boolean isClientSide) throws 
Exception;
 }

Propchange: 
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/axis2/AxisServiceConfigurator.java
------------------------------------------------------------------------------
    svn:mergeinfo = 

Modified: 
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/axis2/endpoint/AxisEndpoint.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/axis2/endpoint/AxisEndpoint.java?rev=699095&r1=699094&r2=699095&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/axis2/endpoint/AxisEndpoint.java
 (original)
+++ 
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/axis2/endpoint/AxisEndpoint.java
 Thu Sep 25 14:24:50 2008
@@ -24,6 +24,7 @@
 
 import org.apache.axis2.description.AxisOperation;
 import org.apache.axis2.description.AxisService;
+import org.apache.synapse.transport.testkit.axis2.AxisServiceConfigurator;
 import org.apache.synapse.transport.testkit.channel.Channel;
 import org.apache.synapse.transport.testkit.name.Name;
 import org.apache.synapse.transport.testkit.server.Endpoint;
@@ -49,7 +50,7 @@
         service.addParameter(AxisService.SUPPORT_SINGLE_OP, true);
         if (configurators != null) {
             for (AxisServiceConfigurator configurator : configurators) {
-                configurator.setupService(service);
+                configurator.setupService(service, false);
             }
         }
         server.getAxisConfiguration().addService(service);

Modified: 
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/axis2/endpoint/ContentTypeServiceConfigurator.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/axis2/endpoint/ContentTypeServiceConfigurator.java?rev=699095&r1=699094&r2=699095&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/axis2/endpoint/ContentTypeServiceConfigurator.java
 (original)
+++ 
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/axis2/endpoint/ContentTypeServiceConfigurator.java
 Thu Sep 25 14:24:50 2008
@@ -22,6 +22,7 @@
 import javax.mail.internet.ContentType;
 
 import org.apache.axis2.description.AxisService;
+import org.apache.synapse.transport.testkit.axis2.AxisServiceConfigurator;
 import org.apache.synapse.transport.testkit.client.ClientOptions;
 import org.apache.synapse.transport.testkit.client.TestClient;
 
@@ -38,7 +39,7 @@
         contentType = client.getContentType(options, 
options.getBaseContentType());
     }
 
-    public void setupService(AxisService service) throws Exception {
+    public void setupService(AxisService service, boolean isClientSide) throws 
Exception {
         service.addParameter(parameterName, contentType.toString());
     }
 }

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=699095&r1=699094&r2=699095&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
 Thu Sep 25 14:24:50 2008
@@ -23,7 +23,7 @@
 
 import org.apache.axis2.addressing.EndpointReference;
 import org.apache.axis2.description.AxisService;
-import 
org.apache.synapse.transport.testkit.axis2.endpoint.AxisServiceConfigurator;
+import org.apache.synapse.transport.testkit.axis2.AxisServiceConfigurator;
 
 public class VFSFileChannel implements AxisServiceConfigurator {
     private final String path;
@@ -41,7 +41,7 @@
         return new EndpointReference("vfs:" + 
requestFile.getAbsoluteFile().toURL());
     }
 
-    public void setupService(AxisService service) throws Exception {
+    public void setupService(AxisService service, boolean isClientSide) throws 
Exception {
         service.addParameter("transport.vfs.FileURI", "vfs:" + 
requestFile.toURL());
         service.addParameter("transport.PollInterval", "50ms");
         service.addParameter("transport.vfs.ActionAfterProcess", "DELETE");

Modified: 
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/vfs/VFSRequestResponseFileChannel.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/vfs/VFSRequestResponseFileChannel.java?rev=699095&r1=699094&r2=699095&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/vfs/VFSRequestResponseFileChannel.java
 (original)
+++ 
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/vfs/VFSRequestResponseFileChannel.java
 Thu Sep 25 14:24:50 2008
@@ -38,8 +38,8 @@
     }
 
     @Override
-    public void setupService(AxisService service) throws Exception {
-        super.setupService(service);
+    public void setupService(AxisService service, boolean isClientSide) throws 
Exception {
+        super.setupService(service, isClientSide);
         service.addParameter("transport.vfs.ReplyFileURI", "vfs:" + 
replyFile.toURL());
     }
     


Reply via email to