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/07/30 23:13:53 UTC

svn commit: r681205 [1/2] - in /synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport: jms/ mail/ nhttp/ testkit/listener/ vfs/

Author: veithen
Date: Wed Jul 30 14:13:51 2008
New Revision: 681205

URL: http://svn.apache.org/viewvc?rev=681205&view=rev
Log:
Transport test kit: added support to build synchronous request/response test cases

Added:
    synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/jms/JMSAsyncChannel.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/testkit/listener/AsyncChannel.java
    synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/AsyncMessageTestCase.java   (contents, props changed)
      - copied, changed from r680174, synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/ListenerTestCase.java
    synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/AxisAsyncMessageSender.java   (contents, props changed)
      - copied, changed from r680174, synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/AxisMessageSender.java
    synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/AxisRequestResponseMessageSender.java
    synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/RequestResponseChannel.java
    synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/XMLAsyncMessageSender.java   (contents, props changed)
      - copied, changed from r680174, synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/XMLMessageSender.java
    synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/XMLAsyncMessageTestCase.java   (contents, props changed)
      - copied, changed from r680174, synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/XMLMessageTestCase.java
    synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/XMLMessageType.java
    synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/XMLRequestResponseMessageSender.java
    synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/XMLRequestResponseMessageTestCase.java   (with props)
Removed:
    synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/SOAPTestCase.java
    synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/XMLMessageSender.java
    synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/XMLMessageTestCase.java
Modified:
    synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/jms/JMSBytesMessageSender.java
    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/JMSListenerSetup.java
    synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/jms/JMSListenerTest.java
    synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/jms/JMSTextMessageSender.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/mail/MailSender.java
    synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/MailTransportListenerTest.java
    synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/nhttp/HttpChannel.java
    synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/nhttp/HttpCoreNIOListenerTest.java
    synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/nhttp/JavaNetSender.java
    synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/AbstractMessageSender.java
    synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/AxisMessageSender.java
    synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/BinaryPayloadSender.java
    synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/ListenerTestCase.java
    synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/ListenerTestServer.java
    synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/ListenerTestSuite.java
    synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/MessageSender.java
    synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/RESTSender.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/VFSTransportListenerTest.java

Added: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/jms/JMSAsyncChannel.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/jms/JMSAsyncChannel.java?rev=681205&view=auto
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/jms/JMSAsyncChannel.java (added)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/jms/JMSAsyncChannel.java Wed Jul 30 14:13:51 2008
@@ -0,0 +1,28 @@
+/*
+ *  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.jms;
+
+import org.apache.synapse.transport.testkit.listener.AsyncChannel;
+
+public class JMSAsyncChannel extends JMSChannel implements AsyncChannel<JMSListenerSetup> {
+    public JMSAsyncChannel(JMSListenerSetup setup, String destinationType) {
+        super(setup, destinationType, destinationType);
+    }
+}

Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/jms/JMSBytesMessageSender.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/jms/JMSBytesMessageSender.java?rev=681205&r1=681204&r2=681205&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/jms/JMSBytesMessageSender.java (original)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/jms/JMSBytesMessageSender.java Wed Jul 30 14:13:51 2008
@@ -24,19 +24,17 @@
 
 import org.apache.synapse.transport.base.BaseConstants;
 import org.apache.synapse.transport.testkit.listener.BinaryPayloadSender;
-import org.apache.synapse.transport.testkit.listener.Channel;
 
-public class JMSBytesMessageSender extends BinaryPayloadSender {
+public class JMSBytesMessageSender extends BinaryPayloadSender<JMSAsyncChannel> {
     public JMSBytesMessageSender() {
         super("ByteMessage");
     }
     
     @Override
-    public void sendMessage(Channel<?> _channel,
+    public void sendMessage(JMSAsyncChannel channel,
                             String endpointReference,
                             String contentType,
                             byte[] content) throws Exception {
-        JMSChannel channel = (JMSChannel)_channel;
         Session session = channel.createSession();
         BytesMessage message = session.createBytesMessage();
         if (contentType != null) {

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=681205&r1=681204&r2=681205&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 Wed Jul 30 14:13:51 2008
@@ -42,30 +42,24 @@
 import org.apache.synapse.transport.testkit.listener.AbstractChannel;
 import org.mockejb.jndi.MockContextFactory;
 
-import com.mockrunner.jms.DestinationManager;
 import com.mockrunner.mock.jms.MockDestination;
 
-public class JMSChannel extends AbstractChannel<JMSListenerSetup>{
+public abstract class JMSChannel extends AbstractChannel<JMSListenerSetup> {
     private static final OMFactory factory = OMAbstractFactory.getOMFactory();
     
-    private final boolean useTopic;
+    private final String destinationType;
     private String destinationName;
     private MockDestination destination;
     
-    public JMSChannel(JMSListenerSetup setup, boolean useTopic) {
-        super(useTopic ? "Topic" : "Queue", setup);
-        this.useTopic = useTopic;
+    public JMSChannel(JMSListenerSetup setup, String name, String destinationType) {
+        super(name, setup);
+        this.destinationType = destinationType;
     }
     
     @Override
     public void setUp() throws Exception {
-        DestinationManager destinationManager = setup.getDestinationManager();
-        destinationName = "dest";
-        if (useTopic) {
-            destination = destinationManager.createTopic(destinationName);
-        } else {
-            destination = destinationManager.createQueue(destinationName);
-        }
+        destinationName = "request";
+        destination = setup.createDestination(destinationType, destinationName);
         setup.getContext().bind(destinationName, destination);
     }
 
@@ -110,24 +104,20 @@
     @Override
     public TransportOutDescription createTransportOutDescription() throws Exception {
         TransportOutDescription trpOutDesc = new TransportOutDescription(JMSSender.TRANSPORT_NAME);
-        setupTransport(trpOutDesc);
+//        setupTransport(trpOutDesc);
         trpOutDesc.setSender(new JMSSender());
         return trpOutDesc;
     }
 
     @Override
     public void setupService(AxisService service) throws Exception {
-        service.addParameter(JMSConstants.CONFAC_PARAM,
-                useTopic ? JMSConstants.DESTINATION_TYPE_TOPIC
-                         : JMSConstants.DESTINATION_TYPE_QUEUE);
-        service.addParameter(JMSConstants.DEST_PARAM_TYPE,
-                useTopic ? JMSConstants.DESTINATION_TYPE_TOPIC
-                         : JMSConstants.DESTINATION_TYPE_QUEUE);
+        service.addParameter(JMSConstants.CONFAC_PARAM, destinationType);
+        service.addParameter(JMSConstants.DEST_PARAM_TYPE, destinationType);
         service.addParameter(JMSConstants.DEST_PARAM, destinationName);
     }
 
     public Session createSession() throws JMSException {
-        if (useTopic) {
+        if (destinationType.equals(JMSConstants.DESTINATION_TYPE_TOPIC)) {
             TopicConnection connection = setup.getTopicConnectionFactory().createTopicConnection();
             return connection.createTopicSession(false, Session.AUTO_ACKNOWLEDGE);
         } else {
@@ -137,7 +127,7 @@
     }
 
     public void send(Session session, Message message) throws JMSException {
-        if (useTopic) {
+        if (destinationType.equals(JMSConstants.DESTINATION_TYPE_TOPIC)) {
             ((TopicSession)session).createPublisher((Topic)destination).send(message);
         } else {
             ((QueueSession)session).createProducer(destination).send(message);

Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/jms/JMSListenerSetup.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/jms/JMSListenerSetup.java?rev=681205&r1=681204&r2=681205&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/jms/JMSListenerSetup.java (original)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/jms/JMSListenerSetup.java Wed Jul 30 14:13:51 2008
@@ -30,6 +30,7 @@
 
 import com.mockrunner.jms.ConfigurationManager;
 import com.mockrunner.jms.DestinationManager;
+import com.mockrunner.mock.jms.MockDestination;
 import com.mockrunner.mock.jms.MockQueueConnectionFactory;
 import com.mockrunner.mock.jms.MockTopicConnectionFactory;
 
@@ -65,8 +66,12 @@
         return context;
     }
 
-    public DestinationManager getDestinationManager() {
-        return destinationManager;
+    public MockDestination createDestination(String destinationType, String name) {
+        if (destinationType.equals(JMSConstants.DESTINATION_TYPE_TOPIC)) {
+            return destinationManager.createTopic(name);
+        } else {
+            return destinationManager.createQueue(name);
+        }
     }
 
     public QueueConnectionFactory getQueueConnectionFactory() {

Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/jms/JMSListenerTest.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/jms/JMSListenerTest.java?rev=681205&r1=681204&r2=681205&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/jms/JMSListenerTest.java (original)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/jms/JMSListenerTest.java Wed Jul 30 14:13:51 2008
@@ -19,16 +19,18 @@
 
 package org.apache.synapse.transport.jms;
 
+import java.util.LinkedList;
+import java.util.List;
+
 import junit.framework.TestCase;
 import junit.framework.TestSuite;
 
 import org.apache.axis2.context.MessageContext;
-import org.apache.synapse.transport.testkit.listener.AxisMessageSender;
+import org.apache.synapse.transport.testkit.listener.AxisAsyncMessageSender;
 import org.apache.synapse.transport.testkit.listener.ContentTypeMode;
-import org.apache.synapse.transport.testkit.listener.ListenerTestSetup;
 import org.apache.synapse.transport.testkit.listener.ListenerTestSuite;
 import org.apache.synapse.transport.testkit.listener.MessageTestData;
-import org.apache.synapse.transport.testkit.listener.XMLMessageSender;
+import org.apache.synapse.transport.testkit.listener.XMLAsyncMessageSender;
 
 public class JMSListenerTest extends TestCase {
     public static TestSuite suite() {
@@ -36,10 +38,15 @@
         JMSListenerSetup setup = new JMSListenerSetup();
         JMSBytesMessageSender bytesMessageSender = new JMSBytesMessageSender();
         JMSTextMessageSender textMessageSender = new JMSTextMessageSender();
-        for (boolean useTopic : new boolean[] { false, true }) {
-            JMSChannel channel = new JMSChannel(setup, useTopic);
+        List<XMLAsyncMessageSender<? super JMSAsyncChannel>> senders = new LinkedList<XMLAsyncMessageSender<? super JMSAsyncChannel>>();
+        senders.add(bytesMessageSender);
+        senders.add(textMessageSender);
+        senders.add(new AxisAsyncMessageSender());
+//        suite.addPOXTests(new JMSRequestResponseChannel(setup, JMSConstants.DESTINATION_TYPE_QUEUE, JMSConstants.DESTINATION_TYPE_QUEUE), new AxisRequestResponseMessageSender(), ContentTypeMode.TRANSPORT);
+        for (String destinationType : new String[] { JMSConstants.DESTINATION_TYPE_QUEUE, JMSConstants.DESTINATION_TYPE_TOPIC }) {
+            JMSAsyncChannel channel = new JMSAsyncChannel(setup, destinationType);
             for (ContentTypeMode contentTypeMode : ContentTypeMode.values()) {
-                for (XMLMessageSender sender : new XMLMessageSender[] { bytesMessageSender, textMessageSender, new AxisMessageSender() }) {
+                for (XMLAsyncMessageSender<? super JMSAsyncChannel> sender : senders) {
                     if (contentTypeMode == ContentTypeMode.TRANSPORT) {
                         suite.addSOAPTests(channel, sender, contentTypeMode);
                         suite.addPOXTests(channel, sender, contentTypeMode);

Added: 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=681205&view=auto
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/jms/JMSRequestResponseChannel.java (added)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/jms/JMSRequestResponseChannel.java Wed Jul 30 14:13:51 2008
@@ -0,0 +1,59 @@
+/*
+ *  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.jms;
+
+import org.apache.axis2.description.AxisService;
+import org.apache.synapse.transport.testkit.listener.RequestResponseChannel;
+
+import com.mockrunner.mock.jms.MockDestination;
+
+public class JMSRequestResponseChannel extends JMSChannel implements RequestResponseChannel<JMSListenerSetup> {
+    private final String replyDestinationType;
+    private String replyDestinationName;
+    private MockDestination replyDestination;
+    
+    public JMSRequestResponseChannel(JMSListenerSetup setup, String destinationType, String replyDestinationType) {
+        super(setup, destinationType + "-" + replyDestinationType, destinationType);
+        this.replyDestinationType = replyDestinationType;
+    }
+    
+    @Override
+    public void setUp() throws Exception {
+        super.setUp();
+        replyDestinationName = "response";
+        replyDestination = setup.createDestination(replyDestinationType, replyDestinationName);
+        setup.getContext().bind(replyDestinationName, replyDestination);
+    }
+
+    @Override
+    public void tearDown() throws Exception {
+        super.tearDown();
+        setup.getContext().unbind(replyDestinationName);
+        replyDestinationName = null;
+        replyDestination = null;
+    }
+
+    @Override
+    public void setupService(AxisService service) throws Exception {
+        super.setupService(service);
+        service.addParameter(JMSConstants.REPLY_PARAM_TYPE, replyDestinationType);
+        service.addParameter(JMSConstants.REPLY_PARAM, replyDestinationName);
+    }
+}

Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/jms/JMSTextMessageSender.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/jms/JMSTextMessageSender.java?rev=681205&r1=681204&r2=681205&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/jms/JMSTextMessageSender.java (original)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/jms/JMSTextMessageSender.java Wed Jul 30 14:13:51 2008
@@ -28,18 +28,17 @@
 import org.apache.axiom.om.OMOutputFormat;
 import org.apache.synapse.transport.base.BaseConstants;
 import org.apache.synapse.transport.testkit.listener.AbstractMessageSender;
-import org.apache.synapse.transport.testkit.listener.Channel;
-import org.apache.synapse.transport.testkit.listener.XMLMessageSender;
+import org.apache.synapse.transport.testkit.listener.XMLAsyncMessageSender;
+import org.apache.synapse.transport.testkit.listener.XMLMessageType;
 
-public class JMSTextMessageSender extends AbstractMessageSender implements XMLMessageSender {
+public class JMSTextMessageSender extends AbstractMessageSender<JMSAsyncChannel> implements XMLAsyncMessageSender<JMSAsyncChannel> {
     public JMSTextMessageSender() {
         super("TextMessage");
     }
 
-    public void sendMessage(Channel<?> _channel,
+    public void sendMessage(JMSAsyncChannel channel,
             String endpointReference, String contentType, String charset,
-            OMElement omMessage) throws Exception {
-        JMSChannel channel = (JMSChannel)_channel;
+            XMLMessageType xmlMessageType, OMElement payload) throws Exception {
         Session session = channel.createSession();
         TextMessage message = session.createTextMessage();
         if (contentType != null) {
@@ -48,7 +47,7 @@
         OMOutputFormat format = new OMOutputFormat();
         format.setIgnoreXMLDeclaration(true);
         StringWriter sw = new StringWriter();
-        omMessage.serializeAndConsume(sw, format);
+        xmlMessageType.getMessage(payload).serializeAndConsume(sw, format);
         message.setText(sw.toString());
         channel.send(session, message);
     }

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=681205&r1=681204&r2=681205&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 Wed Jul 30 14:13:51 2008
@@ -22,9 +22,10 @@
 import org.apache.axis2.description.AxisService;
 import org.apache.axis2.description.TransportInDescription;
 import org.apache.synapse.transport.testkit.listener.AbstractChannel;
+import org.apache.synapse.transport.testkit.listener.AsyncChannel;
 import org.apache.synapse.transport.testkit.listener.ListenerTestSetup;
 
-public class MailChannel extends AbstractChannel<ListenerTestSetup> {
+public class MailChannel extends AbstractChannel<ListenerTestSetup> implements AsyncChannel<ListenerTestSetup> {
     private final String address;
     
     public MailChannel(String address) {

Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/MailSender.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/MailSender.java?rev=681205&r1=681204&r2=681205&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/MailSender.java (original)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/MailSender.java Wed Jul 30 14:13:51 2008
@@ -31,16 +31,15 @@
 import javax.mail.util.ByteArrayDataSource;
 
 import org.apache.synapse.transport.testkit.listener.BinaryPayloadSender;
-import org.apache.synapse.transport.testkit.listener.Channel;
 
-public abstract class MailSender extends BinaryPayloadSender {
+public abstract class MailSender extends BinaryPayloadSender<MailChannel> {
     @Override
-    public void sendMessage(Channel<?> channel, String endpointReference, String contentType, byte[] content) throws Exception {
+    public void sendMessage(MailChannel channel, String endpointReference, String contentType, byte[] content) throws Exception {
         Properties props = new Properties();
         props.put("mail.smtp.class", TestTransport.class.getName());
         Session session = Session.getInstance(props);
         MimeMessage msg = new MimeMessage(session);
-        msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(((MailChannel)channel).getAddress()));
+        msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(channel.getAddress()));
         msg.setFrom(new InternetAddress("test-sender@localhost"));
         msg.setSentDate(new Date());
         DataHandler dh = new DataHandler(new ByteArrayDataSource(content, contentType));

Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/MailTransportListenerTest.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/MailTransportListenerTest.java?rev=681205&r1=681204&r2=681205&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/MailTransportListenerTest.java (original)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/MailTransportListenerTest.java Wed Jul 30 14:13:51 2008
@@ -19,6 +19,8 @@
 
 package org.apache.synapse.transport.mail;
 
+import java.util.LinkedList;
+import java.util.List;
 
 import junit.framework.TestCase;
 import junit.framework.TestSuite;
@@ -31,7 +33,10 @@
     public static TestSuite suite() {
         ListenerTestSuite suite = new ListenerTestSuite();
         MailChannel channel = new MailChannel("test-account@localhost");
-        for (BinaryPayloadSender sender : new BinaryPayloadSender[] { new MimeSender(), new MultipartSender() }) {
+        List<BinaryPayloadSender<? super MailChannel>> senders = new LinkedList<BinaryPayloadSender<? super MailChannel>>();
+        senders.add(new MimeSender());
+        senders.add(new MultipartSender());
+        for (BinaryPayloadSender<? super MailChannel> sender : senders) {
             // TODO: SOAP 1.2 tests don't work yet for mail transport
             suite.addSOAP11Test(channel, sender, ContentTypeMode.TRANSPORT, ListenerTestSuite.ASCII_TEST_DATA);
             suite.addSOAP11Test(channel, sender, ContentTypeMode.TRANSPORT, ListenerTestSuite.UTF8_TEST_DATA);

Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/nhttp/HttpChannel.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/nhttp/HttpChannel.java?rev=681205&r1=681204&r2=681205&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/nhttp/HttpChannel.java (original)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/nhttp/HttpChannel.java Wed Jul 30 14:13:51 2008
@@ -22,9 +22,11 @@
 import org.apache.axis2.description.TransportInDescription;
 import org.apache.axis2.description.TransportOutDescription;
 import org.apache.synapse.transport.testkit.listener.AbstractChannel;
+import org.apache.synapse.transport.testkit.listener.AsyncChannel;
 import org.apache.synapse.transport.testkit.listener.ListenerTestSetup;
+import org.apache.synapse.transport.testkit.listener.RequestResponseChannel;
 
-public class HttpChannel extends AbstractChannel<ListenerTestSetup> {
+public class HttpChannel extends AbstractChannel<ListenerTestSetup> implements AsyncChannel<ListenerTestSetup>, RequestResponseChannel<ListenerTestSetup> {
     public HttpChannel() {
         super(ListenerTestSetup.DEFAULT);
     }

Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/nhttp/HttpCoreNIOListenerTest.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/nhttp/HttpCoreNIOListenerTest.java?rev=681205&r1=681204&r2=681205&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/nhttp/HttpCoreNIOListenerTest.java (original)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/nhttp/HttpCoreNIOListenerTest.java Wed Jul 30 14:13:51 2008
@@ -19,23 +19,31 @@
 
 package org.apache.synapse.transport.nhttp;
 
+import java.util.LinkedList;
+import java.util.List;
+
 import junit.framework.TestCase;
 import junit.framework.TestSuite;
 
-import org.apache.synapse.transport.testkit.listener.AxisMessageSender;
+import org.apache.synapse.transport.testkit.listener.AxisAsyncMessageSender;
+import org.apache.synapse.transport.testkit.listener.AxisRequestResponseMessageSender;
 import org.apache.synapse.transport.testkit.listener.ContentTypeMode;
 import org.apache.synapse.transport.testkit.listener.ListenerTestSuite;
-import org.apache.synapse.transport.testkit.listener.XMLMessageSender;
+import org.apache.synapse.transport.testkit.listener.XMLAsyncMessageSender;
 
 public class HttpCoreNIOListenerTest extends TestCase {
     public static TestSuite suite() {
         ListenerTestSuite suite = new ListenerTestSuite();
         HttpChannel channel = new HttpChannel();
         JavaNetSender javaNetSender = new JavaNetSender();
-        for (XMLMessageSender sender : new XMLMessageSender[] { javaNetSender, new AxisMessageSender() }) {
+        List<XMLAsyncMessageSender<? super HttpChannel>> senders = new LinkedList<XMLAsyncMessageSender<? super HttpChannel>>();
+        senders.add(javaNetSender);
+        senders.add(new AxisAsyncMessageSender());
+        for (XMLAsyncMessageSender<? super HttpChannel> sender : senders) {
             suite.addSOAPTests(channel, sender, ContentTypeMode.TRANSPORT);
             suite.addPOXTests(channel, sender, ContentTypeMode.TRANSPORT);
         }
+//        suite.addPOXTests(channel, new AxisRequestResponseMessageSender(), ContentTypeMode.TRANSPORT);
         suite.addSwATests(channel, javaNetSender);
         suite.addTextPlainTests(channel, javaNetSender, ContentTypeMode.TRANSPORT);
         suite.addBinaryTest(channel, javaNetSender, ContentTypeMode.TRANSPORT);

Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/nhttp/JavaNetSender.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/nhttp/JavaNetSender.java?rev=681205&r1=681204&r2=681205&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/nhttp/JavaNetSender.java (original)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/nhttp/JavaNetSender.java Wed Jul 30 14:13:51 2008
@@ -25,18 +25,18 @@
 import java.net.URLConnection;
 
 import org.apache.commons.io.IOUtils;
+import org.apache.synapse.transport.testkit.listener.AsyncChannel;
 import org.apache.synapse.transport.testkit.listener.BinaryPayloadSender;
-import org.apache.synapse.transport.testkit.listener.Channel;
 import org.apache.synapse.transport.testkit.listener.DefaultOperationDispatcher;
 import org.apache.synapse.transport.testkit.listener.RESTSender;
 
-public class JavaNetSender extends BinaryPayloadSender implements RESTSender {
+public class JavaNetSender extends BinaryPayloadSender<AsyncChannel<?>> implements RESTSender<AsyncChannel<?>> {
     public JavaNetSender() {
         super("java.net");
     }
     
     @Override
-    public void sendMessage(Channel<?> channel, String endpointReference, String contentType, byte[] content) throws Exception {
+    public void sendMessage(AsyncChannel<?> channel, String endpointReference, String contentType, byte[] content) throws Exception {
         URLConnection connection = new URL(endpointReference).openConnection();
         connection.setDoOutput(true);
         connection.setDoInput(true);

Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/AbstractMessageSender.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/AbstractMessageSender.java?rev=681205&r1=681204&r2=681205&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/AbstractMessageSender.java (original)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/AbstractMessageSender.java Wed Jul 30 14:13:51 2008
@@ -19,7 +19,7 @@
 
 package org.apache.synapse.transport.testkit.listener;
 
-public abstract class AbstractMessageSender implements MessageSender {
+public abstract class AbstractMessageSender<C extends Channel<?>> implements MessageSender<C> {
     private final String name;
     
     public AbstractMessageSender(String name) {
@@ -34,7 +34,7 @@
         nameBuilder.addComponent("sender", name);
     }
     
-    public void setUp(Channel<?> channel) throws Exception {
+    public void setUp(C channel) throws Exception {
     }
     
     public void tearDown() throws Exception {

Added: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/AsyncChannel.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/AsyncChannel.java?rev=681205&view=auto
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/AsyncChannel.java (added)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/AsyncChannel.java Wed Jul 30 14:13:51 2008
@@ -0,0 +1,23 @@
+/*
+ *  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.listener;
+
+public interface AsyncChannel<T extends ListenerTestSetup> extends Channel<T> {
+}

Copied: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/AsyncMessageTestCase.java (from r680174, synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/ListenerTestCase.java)
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/AsyncMessageTestCase.java?p2=synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/AsyncMessageTestCase.java&p1=synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/ListenerTestCase.java&r1=680174&r2=681205&rev=681205&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/ListenerTestCase.java (original)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/AsyncMessageTestCase.java Wed Jul 30 14:13:51 2008
@@ -21,70 +21,14 @@
 
 import java.util.concurrent.TimeUnit;
 
-import junit.framework.TestCase;
-
 import org.apache.axis2.description.AxisOperation;
 import org.apache.axis2.description.AxisService;
 import org.apache.axis2.description.InOnlyAxisOperation;
 import org.apache.axis2.engine.AxisConfiguration;
 
-public abstract class ListenerTestCase<S extends MessageSender> extends TestCase {
-    private final String name;
-    private final Channel<?> channel;
-    private final S sender;
-    private final ContentTypeMode contentTypeMode;
-    private final String contentType;
-    
-    private ListenerTestServer server;
-    private boolean manageServer = true;
-    
-    public ListenerTestCase(Channel<?> channel, S sender, String name, ContentTypeMode contentTypeMode, String contentType) {
-        this.channel = channel;
-        this.sender = sender;
-        this.name = name;
-        this.contentTypeMode = contentTypeMode;
-        this.contentType = contentType;
-    }
-    
-    @Override
-    public String getName() {
-        String testName = super.getName();
-        if (testName == null) {
-            NameBuilder nameBuilder = new NameBuilder();
-            nameBuilder.addComponent("test", name);
-            channel.buildName(nameBuilder);
-            buildName(nameBuilder);
-            nameBuilder.addComponent("contentTypeMode", contentTypeMode.toString().toLowerCase());
-            testName = nameBuilder.toString();
-            setName(testName);
-        }
-        return testName;
-    }
-
-    protected void buildName(NameBuilder name) {
-        sender.buildName(name);
-    }
-    
-    public Channel<?> getChannel() {
-        return channel;
-    }
-
-    public ListenerTestSetup getSetup() {
-        return channel.getSetup();
-    }
-    
-    public void setServer(ListenerTestServer server){
-        this.server = server;
-        manageServer = false;
-    }
-    
-    @Override
-    protected void setUp() throws Exception {
-        if (manageServer) {
-            server = new ListenerTestServer(channel);
-            server.start();
-        }
-        sender.setUp(channel);
+public abstract class AsyncMessageTestCase<C extends AsyncChannel<?>,S extends MessageSender<? super C>> extends ListenerTestCase<C,S> {
+    public AsyncMessageTestCase(C channel, S sender, String name, ContentTypeMode contentTypeMode, String contentType) {
+        super(channel, sender, name, contentTypeMode, contentType);
     }
 
     @Override
@@ -123,15 +67,6 @@
         checkMessageData(messageData);
     }
     
-    @Override
-    protected void tearDown() throws Exception {
-        sender.tearDown();
-        if (manageServer) {
-            server.stop();
-            server = null;
-        }
-    }
-
     protected abstract void sendMessage(S sender, String endpointReference, String contentType) throws Exception;
     protected abstract void checkMessageData(MessageData messageData) throws Exception;
 }
\ No newline at end of file

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

Copied: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/AxisAsyncMessageSender.java (from r680174, synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/AxisMessageSender.java)
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/AxisAsyncMessageSender.java?p2=synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/AxisAsyncMessageSender.java&p1=synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/AxisMessageSender.java&r1=680174&r2=681205&rev=681205&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/AxisMessageSender.java (original)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/AxisAsyncMessageSender.java Wed Jul 30 14:13:51 2008
@@ -19,86 +19,18 @@
 
 package org.apache.synapse.transport.testkit.listener;
 
-import java.io.File;
-
-import org.apache.axiom.om.OMAbstractFactory;
 import org.apache.axiom.om.OMElement;
-import org.apache.axiom.soap.SOAP11Constants;
-import org.apache.axiom.soap.SOAP12Constants;
-import org.apache.axiom.soap.SOAPEnvelope;
-import org.apache.axis2.Constants;
-import org.apache.axis2.addressing.EndpointReference;
-import org.apache.axis2.client.OperationClient;
-import org.apache.axis2.client.Options;
 import org.apache.axis2.client.ServiceClient;
-import org.apache.axis2.context.ConfigurationContext;
-import org.apache.axis2.context.ConfigurationContextFactory;
-import org.apache.axis2.context.MessageContext;
-import org.apache.axis2.description.TransportOutDescription;
-import org.apache.axis2.engine.AxisConfiguration;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
 
-public class AxisMessageSender extends AbstractMessageSender implements XMLMessageSender {
-    private static final Log log = LogFactory.getLog(AxisMessageSender.class);
-    
-    private TransportOutDescription trpOutDesc;
-    private ConfigurationContext cfgCtx;
-    
-    public AxisMessageSender() {
+public class AxisAsyncMessageSender extends AxisMessageSender<AsyncChannel<?>> implements XMLAsyncMessageSender<AsyncChannel<?>> {
+    public AxisAsyncMessageSender() {
         super("axis");
     }
 
-    @Override
-    public void setUp(Channel<?> channel) throws Exception {
-        super.setUp(channel);
-        cfgCtx =
-            ConfigurationContextFactory.createConfigurationContextFromFileSystem(
-                    new File("target/test_rep").getAbsolutePath());
-        AxisConfiguration axisCfg = cfgCtx.getAxisConfiguration();
-
-        trpOutDesc = channel.createTransportOutDescription();
-        axisCfg.addTransportOut(trpOutDesc);
-        trpOutDesc.getSender().init(cfgCtx, trpOutDesc);
-    }
-
-    public void sendMessage(Channel<?> channel,
+    public void sendMessage(AsyncChannel<?> channel,
             String endpointReference, String contentType, String charset,
-            OMElement message) throws Exception {
+            XMLMessageType xmlMessageType, OMElement payload) throws Exception {
         
-        Options options = new Options();
-        options.setTo(new EndpointReference(endpointReference));
-
-        ServiceClient serviceClient = new ServiceClient(cfgCtx, null);
-        serviceClient.setOptions(options);
-        
-        OperationClient mepClient = serviceClient.createClient(ServiceClient.ANON_OUT_ONLY_OP);
-        MessageContext mc = new MessageContext();
-        SOAPEnvelope envelope;
-        String messageType;
-        if (message instanceof SOAPEnvelope) {
-            envelope = (SOAPEnvelope)message;
-            String ns = message.getNamespace().getNamespaceURI();
-            if (ns.equals(SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI)) {
-                messageType = SOAP12Constants.SOAP_12_CONTENT_TYPE;
-            } else {
-                messageType = SOAP11Constants.SOAP_11_CONTENT_TYPE;
-            }
-        } else {
-            envelope = OMAbstractFactory.getSOAP11Factory().getDefaultEnvelope();
-            envelope.getBody().addChild(message);
-            messageType = "application/xml";
-        }
-        mc.setEnvelope(envelope);
-        mc.setProperty(Constants.Configuration.MESSAGE_TYPE, messageType);
-        mc.setProperty(Constants.Configuration.CHARACTER_SET_ENCODING, charset);
-        mepClient.addMessageContext(mc);
-        log.info("Sending to " + endpointReference);
-        mepClient.execute(false);
-    }
-
-    @Override
-    public void tearDown() throws Exception {
-        trpOutDesc.getSender().stop();
+        createClient(endpointReference, ServiceClient.ANON_OUT_ONLY_OP, xmlMessageType, payload, charset).execute(false);
     }
 }

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

Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/AxisMessageSender.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/AxisMessageSender.java?rev=681205&r1=681204&r2=681205&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/AxisMessageSender.java (original)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/AxisMessageSender.java Wed Jul 30 14:13:51 2008
@@ -21,11 +21,10 @@
 
 import java.io.File;
 
-import org.apache.axiom.om.OMAbstractFactory;
+import javax.xml.namespace.QName;
+
 import org.apache.axiom.om.OMElement;
-import org.apache.axiom.soap.SOAP11Constants;
-import org.apache.axiom.soap.SOAP12Constants;
-import org.apache.axiom.soap.SOAPEnvelope;
+import org.apache.axis2.AxisFault;
 import org.apache.axis2.Constants;
 import org.apache.axis2.addressing.EndpointReference;
 import org.apache.axis2.client.OperationClient;
@@ -39,18 +38,18 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
-public class AxisMessageSender extends AbstractMessageSender implements XMLMessageSender {
+public class AxisMessageSender<C extends Channel<?>> extends AbstractMessageSender<C> {
     private static final Log log = LogFactory.getLog(AxisMessageSender.class);
     
     private TransportOutDescription trpOutDesc;
     private ConfigurationContext cfgCtx;
     
-    public AxisMessageSender() {
-        super("axis");
+    public AxisMessageSender(String name) {
+        super(name);
     }
-
+    
     @Override
-    public void setUp(Channel<?> channel) throws Exception {
+    public void setUp(C channel) throws Exception {
         super.setUp(channel);
         cfgCtx =
             ConfigurationContextFactory.createConfigurationContextFromFileSystem(
@@ -62,9 +61,14 @@
         trpOutDesc.getSender().init(cfgCtx, trpOutDesc);
     }
 
-    public void sendMessage(Channel<?> channel,
-            String endpointReference, String contentType, String charset,
-            OMElement message) throws Exception {
+    @Override
+    public void tearDown() throws Exception {
+        super.tearDown();
+        trpOutDesc.getSender().stop();
+    }
+    
+    protected OperationClient createClient(String endpointReference, QName operationQName, XMLMessageType xmlMessageType, OMElement payload, String charset) throws AxisFault {
+        log.info("Sending to " + endpointReference);
         
         Options options = new Options();
         options.setTo(new EndpointReference(endpointReference));
@@ -72,33 +76,12 @@
         ServiceClient serviceClient = new ServiceClient(cfgCtx, null);
         serviceClient.setOptions(options);
         
-        OperationClient mepClient = serviceClient.createClient(ServiceClient.ANON_OUT_ONLY_OP);
-        MessageContext mc = new MessageContext();
-        SOAPEnvelope envelope;
-        String messageType;
-        if (message instanceof SOAPEnvelope) {
-            envelope = (SOAPEnvelope)message;
-            String ns = message.getNamespace().getNamespaceURI();
-            if (ns.equals(SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI)) {
-                messageType = SOAP12Constants.SOAP_12_CONTENT_TYPE;
-            } else {
-                messageType = SOAP11Constants.SOAP_11_CONTENT_TYPE;
-            }
-        } else {
-            envelope = OMAbstractFactory.getSOAP11Factory().getDefaultEnvelope();
-            envelope.getBody().addChild(message);
-            messageType = "application/xml";
-        }
-        mc.setEnvelope(envelope);
-        mc.setProperty(Constants.Configuration.MESSAGE_TYPE, messageType);
+        OperationClient mepClient = serviceClient.createClient(operationQName);
+        MessageContext mc = xmlMessageType.createMessageContext(payload);
         mc.setProperty(Constants.Configuration.CHARACTER_SET_ENCODING, charset);
+        mc.setServiceContext(serviceClient.getServiceContext());
         mepClient.addMessageContext(mc);
-        log.info("Sending to " + endpointReference);
-        mepClient.execute(false);
-    }
-
-    @Override
-    public void tearDown() throws Exception {
-        trpOutDesc.getSender().stop();
+        
+        return mepClient;
     }
 }

Added: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/AxisRequestResponseMessageSender.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/AxisRequestResponseMessageSender.java?rev=681205&view=auto
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/AxisRequestResponseMessageSender.java (added)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/AxisRequestResponseMessageSender.java Wed Jul 30 14:13:51 2008
@@ -0,0 +1,43 @@
+/*
+ *  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.listener;
+
+import org.apache.axiom.om.OMElement;
+import org.apache.axis2.client.OperationClient;
+import org.apache.axis2.client.ServiceClient;
+import org.apache.axis2.context.MessageContext;
+import org.apache.axis2.wsdl.WSDLConstants;
+
+public class AxisRequestResponseMessageSender extends AxisMessageSender<RequestResponseChannel<?>> implements XMLRequestResponseMessageSender<RequestResponseChannel<?>> {
+    public AxisRequestResponseMessageSender() {
+        super("axis");
+    }
+
+    public OMElement sendMessage(RequestResponseChannel<?> channel,
+            String endpointReference, String contentType, String charset,
+            XMLMessageType xmlMessageType, OMElement payload) throws Exception {
+        
+        OperationClient mepClient = createClient(endpointReference, ServiceClient.ANON_OUT_IN_OP, xmlMessageType, payload, charset);
+        mepClient.execute(true);
+        
+        MessageContext response = mepClient.getMessageContext(WSDLConstants.MESSAGE_LABEL_IN_VALUE);
+        return response.getEnvelope().getBody().getFirstElement();
+    }
+}

Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/BinaryPayloadSender.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/BinaryPayloadSender.java?rev=681205&r1=681204&r2=681205&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/BinaryPayloadSender.java (original)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/BinaryPayloadSender.java Wed Jul 30 14:13:51 2008
@@ -24,7 +24,7 @@
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMOutputFormat;
 
-public abstract class BinaryPayloadSender extends AbstractMessageSender implements XMLMessageSender {
+public abstract class BinaryPayloadSender<C extends AsyncChannel<?>> extends AbstractMessageSender<C> implements XMLAsyncMessageSender<C> {
     public BinaryPayloadSender() {
         super();
     }
@@ -33,12 +33,12 @@
         super(name);
     }
 
-    public void sendMessage(Channel<?> channel, String endpointReference, String contentType, String charset, OMElement message) throws Exception {
+    public void sendMessage(C channel, String endpointReference, String contentType, String charset, XMLMessageType xmlMessageType, OMElement payload) throws Exception {
         ByteArrayOutputStream baos = new ByteArrayOutputStream();
         OMOutputFormat outputFormat = new OMOutputFormat();
         outputFormat.setCharSetEncoding(charset);
         outputFormat.setIgnoreXMLDeclaration(true);
-        message.serializeAndConsume(baos, outputFormat);
+        xmlMessageType.getMessage(payload).serializeAndConsume(baos, outputFormat);
         sendMessage(channel, endpointReference, contentType, baos.toByteArray());
     }
 
@@ -52,5 +52,5 @@
      * @param content the content of the message
      * @throws Exception
      */
-    public abstract void sendMessage(Channel<?> channel, String endpointReference, String contentType, byte[] content) throws Exception;
+    public abstract void sendMessage(C channel, String endpointReference, String contentType, byte[] content) throws Exception;
 }
\ No newline at end of file

Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/ListenerTestCase.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/ListenerTestCase.java?rev=681205&r1=681204&r2=681205&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/ListenerTestCase.java (original)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/ListenerTestCase.java Wed Jul 30 14:13:51 2008
@@ -19,33 +19,26 @@
 
 package org.apache.synapse.transport.testkit.listener;
 
-import java.util.concurrent.TimeUnit;
-
 import junit.framework.TestCase;
 
-import org.apache.axis2.description.AxisOperation;
-import org.apache.axis2.description.AxisService;
-import org.apache.axis2.description.InOnlyAxisOperation;
-import org.apache.axis2.engine.AxisConfiguration;
-
-public abstract class ListenerTestCase<S extends MessageSender> extends TestCase {
+public abstract class ListenerTestCase<C extends Channel<?>,S extends MessageSender<? super C>> extends TestCase {
     private final String name;
-    private final Channel<?> channel;
-    private final S sender;
-    private final ContentTypeMode contentTypeMode;
-    private final String contentType;
+    protected final C channel;
+    protected final S sender;
+    protected final ContentTypeMode contentTypeMode;
+    protected final String contentType;
     
-    private ListenerTestServer server;
+    protected ListenerTestServer server;
     private boolean manageServer = true;
-    
-    public ListenerTestCase(Channel<?> channel, S sender, String name, ContentTypeMode contentTypeMode, String contentType) {
+
+    public ListenerTestCase(C channel, S sender, String name, ContentTypeMode contentTypeMode, String contentType) {
         this.channel = channel;
         this.sender = sender;
         this.name = name;
         this.contentTypeMode = contentTypeMode;
         this.contentType = contentType;
     }
-    
+
     @Override
     public String getName() {
         String testName = super.getName();
@@ -65,7 +58,7 @@
         sender.buildName(name);
     }
     
-    public Channel<?> getChannel() {
+    public C getChannel() {
         return channel;
     }
 
@@ -88,42 +81,6 @@
     }
 
     @Override
-    protected void runTest() throws Throwable {
-        // 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 (contentTypeMode == ContentTypeMode.SERVICE) {
-            channel.getSetup().setupContentType(service, contentType);
-        }
-        
-        // Run the test.
-        MessageData messageData;
-        AxisConfiguration axisConfiguration = server.getAxisConfiguration();
-        axisConfiguration.addService(service);
-//        server.addErrorListener(messageReceiver);
-        try {
-            sendMessage(sender, server.getEPR(service),
-                    contentTypeMode == ContentTypeMode.TRANSPORT ? contentType : null);
-            messageData = messageReceiver.waitForMessage(8, TimeUnit.SECONDS);
-            if (messageData == null) {
-                fail("Failed to get message");
-            }
-        }
-        finally {
-//            server.removeErrorListener(messageReceiver);
-            axisConfiguration.removeService(service.getName());
-        }
-        
-        checkMessageData(messageData);
-    }
-    
-    @Override
     protected void tearDown() throws Exception {
         sender.tearDown();
         if (manageServer) {
@@ -131,7 +88,4 @@
             server = null;
         }
     }
-
-    protected abstract void sendMessage(S sender, String endpointReference, String contentType) throws Exception;
-    protected abstract void checkMessageData(MessageData messageData) throws Exception;
 }
\ No newline at end of file

Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/ListenerTestServer.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/ListenerTestServer.java?rev=681205&r1=681204&r2=681205&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/ListenerTestServer.java (original)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/ListenerTestServer.java Wed Jul 30 14:13:51 2008
@@ -23,6 +23,7 @@
 import org.apache.axis2.addressing.EndpointReference;
 import org.apache.axis2.description.AxisService;
 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.transport.TransportListener;
@@ -61,9 +62,16 @@
         
         channel.getSetup().beforeStartup();
         
+        TransportOutDescription trpOutDesc;
+        if (channel instanceof RequestResponseChannel) {
+            trpOutDesc = ((RequestResponseChannel<?>)channel).createTransportOutDescription();
+        } else {
+            trpOutDesc = null;
+        }
+        
         TransportInDescription trpInDesc = channel.createTransportInDescription();
         listener = trpInDesc.getReceiver();
-        addTransport(trpInDesc);
+        addTransport(trpInDesc, trpOutDesc);
         
         AxisConfiguration axisConfiguration = getAxisConfiguration();
         

Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/ListenerTestSuite.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/ListenerTestSuite.java?rev=681205&r1=681204&r2=681205&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/ListenerTestSuite.java (original)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/ListenerTestSuite.java Wed Jul 30 14:13:51 2008
@@ -20,10 +20,7 @@
 package org.apache.synapse.transport.testkit.listener;
 
 import java.io.ByteArrayOutputStream;
-import java.io.InputStream;
 import java.io.StringWriter;
-import java.net.URL;
-import java.net.URLConnection;
 import java.util.Arrays;
 import java.util.Enumeration;
 import java.util.Iterator;
@@ -41,7 +38,6 @@
 import org.apache.axiom.attachments.ByteArrayDataSource;
 import org.apache.axiom.om.OMAbstractFactory;
 import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.OMFactory;
 import org.apache.axiom.om.OMNode;
 import org.apache.axiom.om.OMOutputFormat;
 import org.apache.axiom.om.OMText;
@@ -52,7 +48,6 @@
 import org.apache.axiom.soap.SOAPBody;
 import org.apache.axiom.soap.SOAPEnvelope;
 import org.apache.axiom.soap.SOAPFactory;
-import org.apache.commons.io.IOUtils;
 import org.apache.synapse.transport.base.BaseConstants;
 
 public class ListenerTestSuite extends TestSuite {
@@ -80,54 +75,44 @@
         this(true);
     }
 
-    public void addSOAP11Test(Channel<?> channel, XMLMessageSender sender, ContentTypeMode contentTypeMode, MessageTestData data) {
-        addTest(new SOAPTestCase(channel, sender, "SOAP11", contentTypeMode, SOAP11Constants.SOAP_11_CONTENT_TYPE, data) {
-            @Override
-            protected SOAPFactory getOMFactory() {
-                return OMAbstractFactory.getSOAP11Factory();
-            }
-        });
+    public <C extends AsyncChannel<?>> void addSOAP11Test(C channel, XMLAsyncMessageSender<? super C> sender, ContentTypeMode contentTypeMode, MessageTestData data) {
+        addTest(new XMLAsyncMessageTestCase<C>(channel, sender, XMLMessageType.SOAP11, "SOAP11", contentTypeMode, SOAP11Constants.SOAP_11_CONTENT_TYPE, data));
     }
     
-    public void addSOAP12Test(Channel<?> channel, XMLMessageSender sender, ContentTypeMode contentTypeMode, MessageTestData data) {
-        addTest(new SOAPTestCase(channel, sender, "SOAP12", contentTypeMode, SOAP12Constants.SOAP_12_CONTENT_TYPE, data) {
-            @Override
-            protected SOAPFactory getOMFactory() {
-                return OMAbstractFactory.getSOAP12Factory();
-            }
-        });
+    public <C extends AsyncChannel<?>> void addSOAP12Test(C channel, XMLAsyncMessageSender<? super C> sender, ContentTypeMode contentTypeMode, MessageTestData data) {
+        addTest(new XMLAsyncMessageTestCase<C>(channel, sender, XMLMessageType.SOAP12, "SOAP12", contentTypeMode, SOAP12Constants.SOAP_12_CONTENT_TYPE, data));
     }
     
-    public void addSOAPTests(Channel<?> channel, XMLMessageSender sender, ContentTypeMode contentTypeMode) {
+    public <C extends AsyncChannel<?>> void addSOAPTests(C channel, XMLAsyncMessageSender<? super C> sender, ContentTypeMode contentTypeMode) {
         for (MessageTestData data : messageTestData) {
             addSOAP11Test(channel, sender, contentTypeMode, data);
             addSOAP12Test(channel, sender, contentTypeMode, data);
         }
     }
     
-    public void addPOXTest(Channel<?> channel, XMLMessageSender sender, ContentTypeMode contentTypeMode, MessageTestData data) {
-        addTest(new XMLMessageTestCase(channel, sender, "POX", contentTypeMode, "application/xml", data) {
-            @Override
-            protected OMFactory getOMFactory() {
-                return OMAbstractFactory.getOMFactory();
-            }
-
-            @Override
-            protected OMElement getMessage(OMElement payload) {
-                return payload;
-            }
-        });
+    public <C extends AsyncChannel<?>> void addPOXTest(C channel, XMLAsyncMessageSender<? super C> sender, ContentTypeMode contentTypeMode, MessageTestData data) {
+        addTest(new XMLAsyncMessageTestCase<C>(channel, sender, XMLMessageType.POX, "POX", contentTypeMode, "application/xml", data));
+    }
+    
+    public <C extends AsyncChannel<?>> void addPOXTests(C channel, XMLAsyncMessageSender<? super C> sender, ContentTypeMode contentTypeMode) {
+        for (MessageTestData data : messageTestData) {
+            addPOXTest(channel, sender, contentTypeMode, data);
+        }
+    }
+    
+    public <C extends RequestResponseChannel<?>> void addPOXTest(C channel, XMLRequestResponseMessageSender<? super C> sender, ContentTypeMode contentTypeMode, MessageTestData data) {
+        addTest(new XMLRequestResponseMessageTestCase<C>(channel, sender, "POXEcho", contentTypeMode, "application/xml", XMLMessageType.POX, data));
     }
     
-    public void addPOXTests(Channel<?> channel, XMLMessageSender sender, ContentTypeMode contentTypeMode) {
+    public <C extends RequestResponseChannel<?>> void addPOXTests(C channel, XMLRequestResponseMessageSender<? super C> sender, ContentTypeMode contentTypeMode) {
         for (MessageTestData data : messageTestData) {
             addPOXTest(channel, sender, contentTypeMode, data);
         }
     }
     
     // TODO: this test actually only makes sense if the transport supports a Content-Type header
-    public void addSwATests(Channel<?> channel, BinaryPayloadSender sender) {
-        addTest(new ListenerTestCase<BinaryPayloadSender>(channel, sender, "SOAPWithAttachments", ContentTypeMode.TRANSPORT, null) {
+    public <C extends AsyncChannel<?>> void addSwATests(C channel, BinaryPayloadSender<? super C> sender) {
+        addTest(new AsyncMessageTestCase<C,BinaryPayloadSender<? super C>>(channel, sender, "SOAPWithAttachments", ContentTypeMode.TRANSPORT, null) {
             private byte[] attachmentContent;
             private String contentID;
             
@@ -140,7 +125,7 @@
             }
 
             @Override
-            protected void sendMessage(BinaryPayloadSender sender, String endpointReference, String contentType) throws Exception {
+            protected void sendMessage(BinaryPayloadSender<? super C> sender, String endpointReference, String contentType) throws Exception {
                 SOAPFactory factory = OMAbstractFactory.getSOAP12Factory();
                 SOAPEnvelope orgEnvelope = factory.createSOAPEnvelope();
                 SOAPBody orgBody = factory.createSOAPBody();
@@ -171,8 +156,8 @@
         });
     }
     
-    public void addTextPlainTest(Channel<?> channel, BinaryPayloadSender sender, ContentTypeMode contentTypeMode, final MessageTestData data) {
-        addTest(new ListenerTestCase<BinaryPayloadSender>(channel, sender, "TextPlain", contentTypeMode, "text/plain; charset=\"" + data.getCharset() + "\"") {
+    public <C extends AsyncChannel<?>> void addTextPlainTest(C channel, BinaryPayloadSender<? super C> sender, ContentTypeMode contentTypeMode, final MessageTestData data) {
+        addTest(new AsyncMessageTestCase<C,BinaryPayloadSender<? super C>>(channel, sender, "TextPlain", contentTypeMode, "text/plain; charset=\"" + data.getCharset() + "\"") {
             @Override
             protected void buildName(NameBuilder name) {
                 super.buildName(name);
@@ -180,7 +165,7 @@
             }
             
             @Override
-            protected void sendMessage(BinaryPayloadSender sender, String endpointReference, String contentType) throws Exception {
+            protected void sendMessage(BinaryPayloadSender<? super C> sender, String endpointReference, String contentType) throws Exception {
                 sender.sendMessage(getChannel(), endpointReference, contentType, data.getText().getBytes(data.getCharset()));
             }
             
@@ -194,14 +179,14 @@
         });
     }
     
-    public void addTextPlainTests(Channel<?> channel, BinaryPayloadSender sender, ContentTypeMode contentTypeMode) {
+    public <C extends AsyncChannel<?>> void addTextPlainTests(C channel, BinaryPayloadSender<? super C> sender, ContentTypeMode contentTypeMode) {
         for (MessageTestData data : messageTestData) {
             addTextPlainTest(channel, sender, contentTypeMode, data);
         }
     }
     
-    public void addBinaryTest(Channel<?> channel, BinaryPayloadSender sender, ContentTypeMode contentTypeMode) {
-        addTest(new ListenerTestCase<BinaryPayloadSender>(channel, sender, "Binary", contentTypeMode, "application/octet-stream") {
+    public <C extends AsyncChannel<?>> void addBinaryTest(C channel, BinaryPayloadSender<? super C> sender, ContentTypeMode contentTypeMode) {
+        addTest(new AsyncMessageTestCase<C, BinaryPayloadSender<? super C>>(channel, sender, "Binary", contentTypeMode, "application/octet-stream") {
             private byte[] content;
             
             @Override
@@ -212,7 +197,7 @@
             }
 
             @Override
-            protected void sendMessage(BinaryPayloadSender sender, String endpointReference, String contentType) throws Exception {
+            protected void sendMessage(BinaryPayloadSender<? super C> sender, String endpointReference, String contentType) throws Exception {
                 sender.sendMessage(getChannel(), endpointReference, contentType, content);
             }
             
@@ -230,10 +215,10 @@
         });
     }
 
-    public void addRESTTests(Channel<?> channel, RESTSender sender) {
-        addTest(new ListenerTestCase<RESTSender>(channel, sender, "REST", ContentTypeMode.TRANSPORT, null) {
+    public <C extends AsyncChannel<?>> void addRESTTests(C channel, RESTSender<? super C> sender) {
+        addTest(new AsyncMessageTestCase<C,RESTSender<? super C>>(channel, sender, "REST", ContentTypeMode.TRANSPORT, null) {
             @Override
-            protected void sendMessage(RESTSender sender, String endpointReference, String contentType) throws Exception {
+            protected void sendMessage(RESTSender<? super C> sender, String endpointReference, String contentType) throws Exception {
                 sender.sendMessage(endpointReference);
             }
         
@@ -250,7 +235,7 @@
             super.run(result);
         } else {
             LinkedList<Test> tests = new LinkedList<Test>();
-            for (Enumeration e = tests(); e.hasMoreElements(); ) {
+            for (Enumeration<?> e = tests(); e.hasMoreElements(); ) {
                 tests.add((Test)e.nextElement());
             }
             while (!tests.isEmpty()) {
@@ -258,8 +243,8 @@
                     return;
                 }
                 Test test = tests.removeFirst();
-                if (test instanceof ListenerTestCase) {
-                    ListenerTestCase<?> listenerTest = (ListenerTestCase<?>)test;
+                if (test instanceof AsyncMessageTestCase) {
+                    AsyncMessageTestCase<?,?> listenerTest = (AsyncMessageTestCase<?,?>)test;
                     Channel<?> channel = listenerTest.getChannel();
                     ListenerTestServer server;
                     try {
@@ -276,8 +261,8 @@
                             return;
                         }
                         test = it.next();
-                        if (test instanceof ListenerTestCase) {
-                            listenerTest = (ListenerTestCase<?>)test;
+                        if (test instanceof AsyncMessageTestCase) {
+                            listenerTest = (AsyncMessageTestCase<?,?>)test;
                             if (listenerTest.getChannel() == channel) {
                                 it.remove();
                                 listenerTest.setServer(server);

Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/MessageSender.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/MessageSender.java?rev=681205&r1=681204&r2=681205&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/MessageSender.java (original)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/MessageSender.java Wed Jul 30 14:13:51 2008
@@ -19,8 +19,8 @@
 
 package org.apache.synapse.transport.testkit.listener;
 
-public interface MessageSender {
+public interface MessageSender<C extends Channel<?>> {
     void buildName(NameBuilder nameBuilder);
-    void setUp(Channel<?> channel) throws Exception;
+    void setUp(C channel) throws Exception;
     void tearDown() throws Exception;
 }
\ No newline at end of file

Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/RESTSender.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/RESTSender.java?rev=681205&r1=681204&r2=681205&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/RESTSender.java (original)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/RESTSender.java Wed Jul 30 14:13:51 2008
@@ -19,6 +19,6 @@
 
 package org.apache.synapse.transport.testkit.listener;
 
-public interface RESTSender extends MessageSender {
+public interface RESTSender<C extends AsyncChannel<?>> extends MessageSender<C> {
     void sendMessage(String endpointReference) throws Exception;
 }

Added: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/RequestResponseChannel.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/RequestResponseChannel.java?rev=681205&view=auto
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/RequestResponseChannel.java (added)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/RequestResponseChannel.java Wed Jul 30 14:13:51 2008
@@ -0,0 +1,23 @@
+/*
+ *  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.listener;
+
+public interface RequestResponseChannel<T extends ListenerTestSetup> extends Channel<T> {
+}

Copied: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/XMLAsyncMessageSender.java (from r680174, synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/XMLMessageSender.java)
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/XMLAsyncMessageSender.java?p2=synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/XMLAsyncMessageSender.java&p1=synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/XMLMessageSender.java&r1=680174&r2=681205&rev=681205&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/XMLMessageSender.java (original)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/XMLAsyncMessageSender.java Wed Jul 30 14:13:51 2008
@@ -21,6 +21,6 @@
 
 import org.apache.axiom.om.OMElement;
 
-public interface XMLMessageSender extends MessageSender {
-    void sendMessage(Channel<?> channel, String endpointReference, String contentType, String charset, OMElement message) throws Exception;
+public interface XMLAsyncMessageSender<C extends AsyncChannel<?>> extends MessageSender<C> {
+    void sendMessage(C channel, String endpointReference, String contentType, String charset, XMLMessageType xmlMessageType, OMElement payload) throws Exception;
 }
\ No newline at end of file

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

Copied: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/XMLAsyncMessageTestCase.java (from r680174, synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/XMLMessageTestCase.java)
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/XMLAsyncMessageTestCase.java?p2=synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/XMLAsyncMessageTestCase.java&p1=synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/XMLMessageTestCase.java&r1=680174&r2=681205&rev=681205&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/XMLMessageTestCase.java (original)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/XMLAsyncMessageTestCase.java Wed Jul 30 14:13:51 2008
@@ -25,13 +25,14 @@
 import org.apache.axiom.om.OMFactory;
 import org.apache.axiom.soap.SOAPEnvelope;
 
-public abstract class XMLMessageTestCase extends ListenerTestCase<XMLMessageSender> {
+public class XMLAsyncMessageTestCase<C extends AsyncChannel<?>> extends AsyncMessageTestCase<C,XMLAsyncMessageSender<? super C>> {
+    private final XMLMessageType xmlMessageType;
     private final MessageTestData data;
     private OMElement orgElement;
-    protected OMFactory factory;
     
-    public XMLMessageTestCase(Channel<?> channel, XMLMessageSender sender, String baseName, ContentTypeMode contentTypeMode, String baseContentType, MessageTestData data) {
+    public XMLAsyncMessageTestCase(C channel, XMLAsyncMessageSender<? super C> sender, XMLMessageType xmlMessageType, String baseName, ContentTypeMode contentTypeMode, String baseContentType, MessageTestData data) {
         super(channel, sender, baseName, contentTypeMode, baseContentType + "; charset=\"" + data.getCharset() + "\"");
+        this.xmlMessageType = xmlMessageType;
         this.data = data;
     }
     
@@ -44,7 +45,7 @@
     @Override
     protected void setUp() throws Exception {
         super.setUp();
-        factory = getOMFactory();
+        OMFactory factory = xmlMessageType.getOMFactory();
         orgElement = factory.createOMElement(new QName("root"));
         orgElement.setText(data.getText());
     }
@@ -58,10 +59,7 @@
     }
 
     @Override
-    protected void sendMessage(XMLMessageSender sender, String endpointReference, String contentType) throws Exception {
-        sender.sendMessage(getChannel(), endpointReference, contentType, data.getCharset(), getMessage(orgElement));
+    protected void sendMessage(XMLAsyncMessageSender<? super C> sender, String endpointReference, String contentType) throws Exception {
+        sender.sendMessage(getChannel(), endpointReference, contentType, data.getCharset(), xmlMessageType, orgElement);
     }
-    
-    protected abstract OMFactory getOMFactory();
-    protected abstract OMElement getMessage(OMElement payload);
 }
\ No newline at end of file

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

Added: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/XMLMessageType.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/XMLMessageType.java?rev=681205&view=auto
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/XMLMessageType.java (added)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/XMLMessageType.java Wed Jul 30 14:13:51 2008
@@ -0,0 +1,91 @@
+/*
+ *  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.listener;
+
+import org.apache.axiom.om.OMAbstractFactory;
+import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.OMFactory;
+import org.apache.axiom.soap.SOAP11Constants;
+import org.apache.axiom.soap.SOAP12Constants;
+import org.apache.axiom.soap.SOAPBody;
+import org.apache.axiom.soap.SOAPEnvelope;
+import org.apache.axiom.soap.SOAPFactory;
+import org.apache.axis2.AxisFault;
+import org.apache.axis2.Constants;
+import org.apache.axis2.context.MessageContext;
+
+public interface XMLMessageType {
+    class SOAP implements XMLMessageType {
+        private final SOAPFactory factory;
+        private final String messageType;
+
+        public SOAP(SOAPFactory factory, String messageType) {
+            this.factory = factory;
+            this.messageType = messageType;
+        }
+
+        public OMFactory getOMFactory() {
+            return factory;
+        }
+        
+        public SOAPEnvelope getMessage(OMElement payload) {
+            SOAPEnvelope envelope = factory.createSOAPEnvelope();
+            SOAPBody body = factory.createSOAPBody();
+            body.addChild(payload);
+            envelope.addChild(body);
+            return envelope;
+        }
+
+        public MessageContext createMessageContext(OMElement payload) throws AxisFault {
+            MessageContext mc = new MessageContext();
+            mc.setEnvelope(getMessage(payload));
+            mc.setProperty(Constants.Configuration.MESSAGE_TYPE, messageType);
+            return mc;
+        }
+    }
+    
+    XMLMessageType SOAP11 = new SOAP(OMAbstractFactory.getSOAP11Factory(), SOAP11Constants.SOAP_11_CONTENT_TYPE);
+    XMLMessageType SOAP12 = new SOAP(OMAbstractFactory.getSOAP12Factory(), SOAP12Constants.SOAP_12_CONTENT_TYPE);
+    
+    XMLMessageType POX = new XMLMessageType() {
+        private final OMFactory factory = OMAbstractFactory.getOMFactory();
+
+        public OMFactory getOMFactory() {
+            return factory;
+        }
+        
+        public OMElement getMessage(OMElement payload) {
+            return payload;
+        }
+
+        public MessageContext createMessageContext(OMElement payload) throws AxisFault {
+            MessageContext mc = new MessageContext();
+            SOAPEnvelope envelope = OMAbstractFactory.getSOAP11Factory().getDefaultEnvelope();
+            envelope.getBody().addChild(payload);
+            mc.setEnvelope(envelope);
+            mc.setProperty(Constants.Configuration.MESSAGE_TYPE, "application/xml");
+            return mc;
+        }
+    };
+    
+    OMFactory getOMFactory();
+    OMElement getMessage(OMElement payload);
+    MessageContext createMessageContext(OMElement payload) throws AxisFault;
+}

Added: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/XMLRequestResponseMessageSender.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/XMLRequestResponseMessageSender.java?rev=681205&view=auto
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/XMLRequestResponseMessageSender.java (added)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/XMLRequestResponseMessageSender.java Wed Jul 30 14:13:51 2008
@@ -0,0 +1,26 @@
+/*
+ *  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.listener;
+
+import org.apache.axiom.om.OMElement;
+
+public interface XMLRequestResponseMessageSender<C extends RequestResponseChannel<?>> extends MessageSender<C> {
+    OMElement sendMessage(C channel, String endpointReference, String contentType, String charset, XMLMessageType xmlMessageType, OMElement payload) throws Exception;
+}