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;
+}