You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@synapse.apache.org by ve...@apache.org on 2008/08/18 22:21:03 UTC
svn commit: r686863 [1/2] - in
/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport:
jms/ mail/ nhttp/ testkit/ testkit/client/ testkit/client/axis2/
testkit/listener/ testkit/message/ testkit/name/ testkit/server/ testkit/...
Author: veithen
Date: Mon Aug 18 13:21:02 2008
New Revision: 686863
URL: http://svn.apache.org/viewvc?rev=686863&view=rev
Log:
Transport test kit: Added support for request/response test cases with non Axis clients. Implemented one for the mail transport.
Added:
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/FlatLayout.java
- copied, changed from r686289, synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/MimeClient.java
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/MailAsyncClient.java
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/MailRequestResponseClient.java
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/MessageLayout.java
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/MultipartLayout.java
- copied, changed from r686289, synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/MultipartClient.java
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/client/RequestResponseTestClient.java
- copied, changed from r686626, synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/client/XMLRequestResponseTestClient.java
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/client/RequestResponseTestClientAdapter.java
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/message/AxisMessage.java
- copied, changed from r686043, synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/message/MessageData.java
Removed:
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/MimeClient.java
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/MultipartClient.java
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/client/XMLRequestResponseTestClient.java
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/message/MessageData.java
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/message/XMLMessageType.java
Modified:
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/jms/JMSBytesMessageClient.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/mail/MailChannel.java
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/MailClient.java
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/MailTestEnvironment.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/HttpCoreNIOListenerTest.java
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/nhttp/JavaNetClient.java
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/AdapterUtils.java
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/TransportTestSuite.java
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/client/axis2/AxisAsyncTestClient.java
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/client/axis2/AxisRequestResponseTestClient.java
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/client/axis2/AxisTestClient.java
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/AsyncMessageTestCase.java
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/message/ByteArrayMessage.java
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/message/MessageConverter.java
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/message/XMLMessage.java
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/name/NameUtils.java
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/server/AsyncEndpointFactory.java
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/server/AsyncEndpointFactoryAdapter.java
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/server/EndpointFactory.java
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/server/axis2/AsyncEndpointImpl.java
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/server/axis2/AxisAsyncEndpointFactory.java
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/server/axis2/AxisEchoEndpointFactory.java
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/server/axis2/AxisServer.java
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/server/axis2/MockMessageReceiver.java
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/TestResource.java
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/TransportTestCase.java
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/BinaryTestCase.java
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/RESTTestCase.java
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/SwATestCase.java
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/TextPlainTestCase.java
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/XMLAsyncMessageTestCase.java
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/echo/XMLRequestResponseMessageTestCase.java
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/vfs/VFSMockAsyncEndpoint.java
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/vfs/VFSTransportListenerTest.java
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/vfs/VFSTransportSenderTest.java
Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/jms/JMSBytesMessageClient.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/jms/JMSBytesMessageClient.java?rev=686863&r1=686862&r2=686863&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/jms/JMSBytesMessageClient.java (original)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/jms/JMSBytesMessageClient.java Mon Aug 18 13:21:02 2008
@@ -33,7 +33,7 @@
ByteArrayMessage message) throws Exception {
BytesMessage jmsMessage = session.createBytesMessage();
if (message.getContentType() != null) {
- jmsMessage.setStringProperty(BaseConstants.CONTENT_TYPE, message.getContentType());
+ jmsMessage.setStringProperty(BaseConstants.CONTENT_TYPE, message.getContentType().toString());
}
jmsMessage.writeBytes(message.getContent());
producer.send(jmsMessage);
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=686863&r1=686862&r2=686863&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 Mon Aug 18 13:21:02 2008
@@ -46,43 +46,43 @@
TransportTestSuite suite = new TransportTestSuite();
JMSTestEnvironment env = new QpidTestEnvironment();
TransportDescriptionFactory tdf = new JMSTransportDescriptionFactory();
- AxisServer server = new AxisServer(tdf);
- AxisAsyncEndpointFactory asyncEndpointFactory = new AxisAsyncEndpointFactory(server);
- AxisEchoEndpointFactory echoEndpointFactory = new AxisEchoEndpointFactory(server);
+ AxisServer server = new AxisServer();
+ AxisAsyncEndpointFactory asyncEndpointFactory = new AxisAsyncEndpointFactory();
+ AxisEchoEndpointFactory echoEndpointFactory = new AxisEchoEndpointFactory();
JMSBytesMessageClient bytesMessageClient = new JMSBytesMessageClient();
JMSTextMessageClient textMessageClient = new JMSTextMessageClient();
List<AsyncTestClient<XMLMessage>> clients = new LinkedList<AsyncTestClient<XMLMessage>>();
clients.add(adapt(bytesMessageClient, MessageConverter.XML_TO_BYTE));
clients.add(adapt(textMessageClient, MessageConverter.XML_TO_STRING));
- clients.add(new AxisAsyncTestClient(tdf));
- clients.add(new JMSAxisAsyncClient(tdf, JMSConstants.JMS_BYTE_MESSAGE));
- clients.add(new JMSAxisAsyncClient(tdf, JMSConstants.JMS_TEXT_MESSAGE));
- suite.addPOXTests(env, new JMSRequestResponseChannel(JMSConstants.DESTINATION_TYPE_QUEUE, JMSConstants.DESTINATION_TYPE_QUEUE), new AxisRequestResponseTestClient(tdf), echoEndpointFactory, ContentTypeMode.TRANSPORT);
- suite.addPOXTests(env, new JMSRequestResponseChannel(JMSConstants.DESTINATION_TYPE_QUEUE, JMSConstants.DESTINATION_TYPE_QUEUE), new AxisRequestResponseTestClient(tdf), new MockEchoEndpointFactory(), ContentTypeMode.TRANSPORT);
+ clients.add(adapt(new AxisAsyncTestClient(tdf), MessageConverter.XML_TO_AXIS));
+ clients.add(adapt(new JMSAxisAsyncClient(tdf, JMSConstants.JMS_BYTE_MESSAGE), MessageConverter.XML_TO_AXIS));
+ clients.add(adapt(new JMSAxisAsyncClient(tdf, JMSConstants.JMS_TEXT_MESSAGE), MessageConverter.XML_TO_AXIS));
+ suite.addPOXTests(new JMSRequestResponseChannel(JMSConstants.DESTINATION_TYPE_QUEUE, JMSConstants.DESTINATION_TYPE_QUEUE), adapt(new AxisRequestResponseTestClient(tdf), MessageConverter.XML_TO_AXIS, MessageConverter.AXIS_TO_XML), echoEndpointFactory, ContentTypeMode.TRANSPORT, env, server, tdf);
+ suite.addPOXTests(new JMSRequestResponseChannel(JMSConstants.DESTINATION_TYPE_QUEUE, JMSConstants.DESTINATION_TYPE_QUEUE), adapt(new AxisRequestResponseTestClient(tdf), MessageConverter.XML_TO_AXIS, MessageConverter.AXIS_TO_XML), new MockEchoEndpointFactory(), ContentTypeMode.TRANSPORT, env);
for (String destinationType : new String[] { JMSConstants.DESTINATION_TYPE_QUEUE, JMSConstants.DESTINATION_TYPE_TOPIC }) {
JMSAsyncChannel channel = new JMSAsyncChannel(destinationType);
for (ContentTypeMode contentTypeMode : ContentTypeMode.values()) {
for (AsyncTestClient<XMLMessage> client : clients) {
if (contentTypeMode == ContentTypeMode.TRANSPORT) {
- suite.addSOAPTests(env, channel, client, asyncEndpointFactory, contentTypeMode);
- suite.addPOXTests(env, channel, client, asyncEndpointFactory, contentTypeMode);
+ suite.addSOAPTests(channel, client, asyncEndpointFactory, contentTypeMode, env, server, tdf);
+ suite.addPOXTests(channel, client, asyncEndpointFactory, contentTypeMode, env, server, tdf);
} else {
// If no content type header is used, SwA can't be used and the JMS transport
// always uses the default charset encoding
- suite.addSOAP11Test(env, channel, client, asyncEndpointFactory, contentTypeMode, new MessageTestData(null, TransportTestSuite.testString,
- MessageContext.DEFAULT_CHAR_SET_ENCODING));
- suite.addSOAP12Test(env, channel, client, asyncEndpointFactory, contentTypeMode, new MessageTestData(null, TransportTestSuite.testString,
- MessageContext.DEFAULT_CHAR_SET_ENCODING));
- suite.addPOXTest(env, channel, client, asyncEndpointFactory, contentTypeMode, new MessageTestData(null, TransportTestSuite.testString,
- MessageContext.DEFAULT_CHAR_SET_ENCODING));
+ suite.addSOAP11Test(channel, client, asyncEndpointFactory, contentTypeMode, new MessageTestData(null, TransportTestSuite.testString,
+ MessageContext.DEFAULT_CHAR_SET_ENCODING), env, server, tdf);
+ suite.addSOAP12Test(channel, client, asyncEndpointFactory, contentTypeMode, new MessageTestData(null, TransportTestSuite.testString,
+ MessageContext.DEFAULT_CHAR_SET_ENCODING), env, server, tdf);
+ suite.addPOXTest(channel, client, asyncEndpointFactory, contentTypeMode, new MessageTestData(null, TransportTestSuite.testString,
+ MessageContext.DEFAULT_CHAR_SET_ENCODING), env, server, tdf);
}
}
if (contentTypeMode == ContentTypeMode.TRANSPORT) {
- suite.addSwATests(env, channel, bytesMessageClient, asyncEndpointFactory);
+ suite.addSwATests(channel, bytesMessageClient, asyncEndpointFactory, env, server, tdf);
}
// TODO: these tests are temporarily disabled because of SYNAPSE-304
// addTextPlainTests(strategy, suite);
- suite.addBinaryTest(env, channel, bytesMessageClient, adapt(asyncEndpointFactory, MessageConverter.AXIS_TO_BYTE), contentTypeMode);
+ suite.addBinaryTest(channel, bytesMessageClient, adapt(asyncEndpointFactory, MessageConverter.AXIS_TO_BYTE), contentTypeMode, env, server, tdf);
}
}
return suite;
Copied: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/FlatLayout.java (from r686289, synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/MimeClient.java)
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/FlatLayout.java?p2=synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/FlatLayout.java&p1=synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/MimeClient.java&r1=686289&r2=686863&rev=686863&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/MimeClient.java (original)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/FlatLayout.java Mon Aug 18 13:21:02 2008
@@ -24,10 +24,9 @@
import org.apache.synapse.transport.testkit.name.DisplayName;
-@DisplayName("mime")
-public class MimeClient extends MailClient {
- @Override
- protected void setupMessage(MimeMessage msg, DataHandler dh) throws Exception {
+@DisplayName("flat")
+public class FlatLayout implements MessageLayout {
+ public void setupMessage(MimeMessage msg, DataHandler dh) throws Exception {
msg.setDataHandler(dh);
}
}
\ No newline at end of file
Added: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/MailAsyncClient.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/MailAsyncClient.java?rev=686863&view=auto
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/MailAsyncClient.java (added)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/MailAsyncClient.java Mon Aug 18 13:21:02 2008
@@ -0,0 +1,34 @@
+/*
+ * 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.mail;
+
+import org.apache.synapse.transport.testkit.client.AsyncTestClient;
+import org.apache.synapse.transport.testkit.client.ClientOptions;
+import org.apache.synapse.transport.testkit.message.ByteArrayMessage;
+
+public class MailAsyncClient extends MailClient implements AsyncTestClient<ByteArrayMessage> {
+ public MailAsyncClient(MessageLayout layout) {
+ super(layout);
+ }
+
+ public void sendMessage(ClientOptions options, ByteArrayMessage message) throws Exception {
+ sendMessage(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=686863&r1=686862&r2=686863&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 Mon Aug 18 13:21:02 2008
@@ -20,34 +20,54 @@
package org.apache.synapse.transport.mail;
import java.util.Map;
+import java.util.Properties;
+
+import javax.mail.Session;
import org.apache.axis2.description.AxisService;
import org.apache.synapse.transport.testkit.listener.AbstractChannel;
import org.apache.synapse.transport.testkit.listener.AsyncChannel;
+import org.apache.synapse.transport.testkit.listener.RequestResponseChannel;
+
+import com.icegreen.greenmail.user.GreenMailUser;
-public class MailChannel extends AbstractChannel implements AsyncChannel {
- private String address;
+public class MailChannel extends AbstractChannel implements AsyncChannel, RequestResponseChannel {
+ private GreenMailUser sender;
+ private GreenMailUser recipient;
private String protocol;
- private Map<String,String> inProperties;
+ private Map<String,String> senderInProperties;
+ private Map<String,String> recipientInProperties;
@SuppressWarnings("unused")
private void setUp(MailTestEnvironment env) throws Exception {
protocol = env.getProtocol();
- inProperties = env.getInProperties();
- address = env.getAddress();
+ sender = env.getUser(0);
+ senderInProperties = env.getInProperties(0);
+ recipient = env.getUser(1);
+ recipientInProperties = env.getInProperties(1);
+ }
+
+ public GreenMailUser getSender() {
+ return sender;
}
- public String getAddress() {
- return address;
+ public GreenMailUser getRecipient() {
+ return recipient;
+ }
+
+ public Session getReplySession() {
+ Properties props = new Properties();
+ props.putAll(senderInProperties);
+ return Session.getInstance(props);
}
@Override
public void setupService(AxisService service) throws Exception {
service.addParameter("transport.mail.Protocol", protocol);
- service.addParameter("transport.mail.Address", address);
+ service.addParameter("transport.mail.Address", recipient.getEmail());
service.addParameter("transport.PollInterval", "1");
- for (Map.Entry<String,String> prop : inProperties.entrySet()) {
+ for (Map.Entry<String,String> prop : recipientInProperties.entrySet()) {
service.addParameter(prop.getKey(), prop.getValue());
}
}
Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/MailClient.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/MailClient.java?rev=686863&r1=686862&r2=686863&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/MailClient.java (original)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/MailClient.java Mon Aug 18 13:21:02 2008
@@ -20,7 +20,6 @@
package org.apache.synapse.transport.mail;
import java.util.Date;
-import java.util.Map;
import java.util.Properties;
import javax.activation.DataHandler;
@@ -31,32 +30,43 @@
import javax.mail.internet.MimeMessage;
import javax.mail.util.ByteArrayDataSource;
-import org.apache.synapse.transport.testkit.client.AsyncTestClient;
-import org.apache.synapse.transport.testkit.client.ClientOptions;
+import org.apache.axiom.om.util.UUIDGenerator;
import org.apache.synapse.transport.testkit.message.ByteArrayMessage;
+import org.apache.synapse.transport.testkit.name.NameComponent;
-public abstract class MailClient implements AsyncTestClient<ByteArrayMessage> {
- private Map<String,String> outProperties;
+public abstract class MailClient {
+ private final MessageLayout layout;
private MailChannel channel;
+ private Session session;
+ public MailClient(MessageLayout layout) {
+ this.layout = layout;
+ }
+
+ @NameComponent("layout")
+ public MessageLayout getLayout() {
+ return layout;
+ }
+
@SuppressWarnings("unused")
private void setUp(MailTestEnvironment env, MailChannel channel) throws Exception {
- outProperties = env.getOutProperties();
+ Properties props = new Properties();
+ props.putAll(env.getOutProperties());
+ session = Session.getInstance(props);
this.channel = channel;
}
- public void sendMessage(ClientOptions options, ByteArrayMessage message) throws Exception {
- Properties props = new Properties();
- props.putAll(outProperties);
- Session session = Session.getInstance(props);
+ protected String sendMessage(ByteArrayMessage message) throws Exception {
+ String msgId = UUIDGenerator.getUUID();
MimeMessage msg = new MimeMessage(session);
- msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(channel.getAddress()));
- msg.setFrom(new InternetAddress("test-sender@localhost"));
+ msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(channel.getRecipient().getEmail()));
+ msg.setFrom(new InternetAddress(channel.getSender().getEmail()));
msg.setSentDate(new Date());
- DataHandler dh = new DataHandler(new ByteArrayDataSource(message.getContent(), message.getContentType()));
- setupMessage(msg, dh);
+ msg.setHeader(MailConstants.MAIL_HEADER_MESSAGE_ID, msgId);
+ msg.setHeader(MailConstants.MAIL_HEADER_X_MESSAGE_ID, msgId);
+ DataHandler dh = new DataHandler(new ByteArrayDataSource(message.getContent(), message.getContentType().toString()));
+ layout.setupMessage(msg, dh);
Transport.send(msg);
+ return msgId;
}
-
- protected abstract void setupMessage(MimeMessage msg, DataHandler dh) throws Exception;
}
Added: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/MailRequestResponseClient.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/MailRequestResponseClient.java?rev=686863&view=auto
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/MailRequestResponseClient.java (added)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/MailRequestResponseClient.java Mon Aug 18 13:21:02 2008
@@ -0,0 +1,121 @@
+/*
+ * 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.mail;
+
+import java.io.ByteArrayOutputStream;
+import java.util.Arrays;
+
+import javax.mail.Flags;
+import javax.mail.Folder;
+import javax.mail.Message;
+import javax.mail.MessagingException;
+import javax.mail.Session;
+import javax.mail.Store;
+import javax.mail.internet.ContentType;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.synapse.transport.testkit.client.ClientOptions;
+import org.apache.synapse.transport.testkit.client.RequestResponseTestClient;
+import org.apache.synapse.transport.testkit.message.ByteArrayMessage;
+
+import com.icegreen.greenmail.user.GreenMailUser;
+
+public class MailRequestResponseClient extends MailClient implements RequestResponseTestClient<ByteArrayMessage,ByteArrayMessage> {
+ private static final Log log = LogFactory.getLog(MailRequestResponseClient.class);
+
+ private Store store;
+
+ public MailRequestResponseClient(MessageLayout layout) {
+ super(layout);
+ }
+
+ @SuppressWarnings("unused")
+ private void setUp(MailTestEnvironment env, MailChannel channel) throws MessagingException {
+ Session session = channel.getReplySession();
+ session.setDebug(log.isTraceEnabled());
+ store = session.getStore(env.getProtocol());
+ GreenMailUser sender = channel.getSender();
+ store.connect(sender.getLogin(), sender.getPassword());
+ }
+
+ @SuppressWarnings("unused")
+ private void tearDown() throws MessagingException {
+ store.close();
+ store = null;
+ }
+
+ public ByteArrayMessage sendMessage(ClientOptions options, ByteArrayMessage message) throws Exception {
+ String msgId = sendMessage(message);
+ Message reply = waitForReply(msgId);
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ reply.getDataHandler().writeTo(baos);
+ return new ByteArrayMessage(new ContentType(reply.getContentType()), baos.toByteArray());
+ }
+
+ private Message waitForReply(String msgId) throws Exception {
+ Thread.yield();
+ Thread.sleep(100);
+
+ Message reply = null;
+ boolean replyNotFound = true;
+ int retryCount = 50;
+ while (replyNotFound) {
+ log.debug("Checking for response ... with MessageID : " + msgId);
+ reply = getMessage(msgId);
+ if (reply != null) {
+ replyNotFound = false;
+ } else {
+ if (retryCount-- > 0) {
+ Thread.sleep(100);
+ } else {
+ break;
+ }
+ }
+ }
+ return reply;
+ }
+
+ private Message getMessage(String requestMsgId) {
+ try {
+ Folder folder = store.getFolder(MailConstants.DEFAULT_FOLDER);
+ folder.open(Folder.READ_WRITE);
+ Message[] msgs = folder.getMessages();
+ log.debug(msgs.length + " replies in reply mailbox");
+ for (Message m:msgs) {
+ String[] inReplyTo = m.getHeader(MailConstants.MAIL_HEADER_IN_REPLY_TO);
+ log.debug("Got reply to : " + Arrays.toString(inReplyTo));
+ if (inReplyTo != null && inReplyTo.length > 0) {
+ for (int j=0; j<inReplyTo.length; j++) {
+ if (requestMsgId.equals(inReplyTo[j])) {
+ m.setFlag(Flags.Flag.DELETED, true);
+ return m;
+ }
+ }
+ }
+ m.setFlag(Flags.Flag.DELETED, true);
+ }
+ folder.close(true);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+}
Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/MailTestEnvironment.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/MailTestEnvironment.java?rev=686863&r1=686862&r2=686863&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/MailTestEnvironment.java (original)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/MailTestEnvironment.java Mon Aug 18 13:21:02 2008
@@ -22,15 +22,17 @@
import java.util.HashMap;
import java.util.Map;
+import org.apache.axis2.description.Parameter;
+import org.apache.axis2.description.TransportInDescription;
+import org.apache.axis2.description.TransportOutDescription;
import org.apache.synapse.transport.testkit.TestEnvironment;
+import org.apache.synapse.transport.testkit.TransportDescriptionFactory;
+import com.icegreen.greenmail.user.GreenMailUser;
import com.icegreen.greenmail.util.GreenMail;
import com.icegreen.greenmail.util.ServerSetup;
-public class MailTestEnvironment extends TestEnvironment {
- private static final String ADDRESS = "test-account";
- private static final String PASSWORD = "password";
-
+public class MailTestEnvironment extends TestEnvironment implements TransportDescriptionFactory {
private static final ServerSetup SMTP =
new ServerSetup(7025, "127.0.0.1", ServerSetup.PROTOCOL_SMTP);
@@ -38,11 +40,15 @@
new ServerSetup(7110, "127.0.0.1", ServerSetup.PROTOCOL_POP3);
private GreenMail greenMail;
+ private GreenMailUser[] users;
@SuppressWarnings("unused")
private void setUp() throws Exception {
greenMail = new GreenMail(new ServerSetup[] { SMTP, POP3 });
- greenMail.setUser(ADDRESS, PASSWORD);
+ users = new GreenMailUser[10];
+ for (int i=0; i<10; i++) {
+ users[i] = greenMail.setUser("test" + i, "password");
+ }
greenMail.start();
}
@@ -50,22 +56,23 @@
private void tearDown() throws Exception {
greenMail.stop();
greenMail = null;
+ users = null;
}
public String getProtocol() {
return "pop3";
}
- public String getAddress() {
- return ADDRESS;
+ public GreenMailUser getUser(int i) {
+ return users[i];
}
- public Map<String,String> getInProperties() {
+ public Map<String,String> getInProperties(int i) {
Map<String,String> props = new HashMap<String,String>();
props.put("mail.pop3.host", "localhost");
props.put("mail.pop3.port", String.valueOf(POP3.getPort()));
- props.put("mail.pop3.user", ADDRESS);
- props.put("mail.pop3.password", PASSWORD);
+ props.put("mail.pop3.user", users[i].getLogin());
+ props.put("mail.pop3.password", users[i].getPassword());
return props;
}
@@ -75,4 +82,19 @@
props.put("mail.smtp.port", String.valueOf(SMTP.getPort()));
return props;
}
+
+ public TransportInDescription createTransportInDescription() throws Exception {
+ TransportInDescription trpInDesc = new TransportInDescription(MailConstants.TRANSPORT_NAME);
+ trpInDesc.setReceiver(new MailTransportListener());
+ return trpInDesc;
+ }
+
+ public TransportOutDescription createTransportOutDescription() throws Exception {
+ TransportOutDescription trpOutDesc = new TransportOutDescription(MailConstants.TRANSPORT_NAME);
+ trpOutDesc.setSender(new MailTransportSender());
+ for (Map.Entry<String,String> prop : getOutProperties().entrySet()) {
+ trpOutDesc.addParameter(new Parameter(prop.getKey(), prop.getValue()));
+ }
+ return trpOutDesc;
+ }
}
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=686863&r1=686862&r2=686863&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 Mon Aug 18 13:21:02 2008
@@ -36,6 +36,7 @@
import org.apache.synapse.transport.testkit.message.MessageConverter;
import org.apache.synapse.transport.testkit.message.XMLMessage;
import org.apache.synapse.transport.testkit.server.axis2.AxisAsyncEndpointFactory;
+import org.apache.synapse.transport.testkit.server.axis2.AxisEchoEndpointFactory;
import org.apache.synapse.transport.testkit.server.axis2.AxisServer;
public class MailTransportListenerTest extends TestCase {
@@ -45,30 +46,28 @@
// TODO: these test don't work; need more analysis why this is so
suite.addExclude("(&(messageType=SOAP12)(data=Latin1))");
suite.addExclude("(&(messageType=POX)(data=Latin1))");
- suite.addExclude("(&(client=multipart)(data=Latin1))");
- suite.addExclude("(&(client=multipart)(messageType=POX))");
+ suite.addExclude("(&(layout=multipart)(data=Latin1))");
+ suite.addExclude("(&(layout=multipart)(messageType=POX))");
suite.addExclude("(test=AsyncSwA)");
suite.addExclude("(test=AsyncBinary)");
suite.addExclude("(&(test=AsyncTextPlain)(!(data=ASCII)))");
MailTestEnvironment env = new MailTestEnvironment();
- TransportDescriptionFactory tdf =
- new SimpleTransportDescriptionFactory(MailConstants.TRANSPORT_NAME,
- MailTransportListener.class, MailTransportSender.class);
- AxisServer axisServer = new AxisServer(tdf);
- AxisAsyncEndpointFactory asyncEndpointFactory = new AxisAsyncEndpointFactory(axisServer);
+ AxisServer axisServer = new AxisServer();
+ AxisAsyncEndpointFactory asyncEndpointFactory = new AxisAsyncEndpointFactory();
MailChannel channel = new MailChannel();
- List<MailClient> clients = new LinkedList<MailClient>();
- clients.add(new MimeClient());
- clients.add(new MultipartClient());
- for (MailClient client : clients) {
+ suite.addPOXTests(channel, adapt(new MailRequestResponseClient(new FlatLayout()), MessageConverter.XML_TO_BYTE, MessageConverter.BYTE_TO_XML), new AxisEchoEndpointFactory(), ContentTypeMode.TRANSPORT, env, axisServer);
+ List<MailAsyncClient> clients = new LinkedList<MailAsyncClient>();
+ clients.add(new MailAsyncClient(new FlatLayout()));
+ clients.add(new MailAsyncClient(new MultipartLayout()));
+ for (MailAsyncClient client : clients) {
AsyncTestClient<XMLMessage> xmlClient = adapt(client, MessageConverter.XML_TO_BYTE);
- suite.addSOAPTests(env, channel, xmlClient, asyncEndpointFactory, ContentTypeMode.TRANSPORT);
- suite.addPOXTests(env, channel, xmlClient, asyncEndpointFactory, ContentTypeMode.TRANSPORT);
- suite.addSwATests(env, channel, client, asyncEndpointFactory);
- suite.addTextPlainTests(env, channel, AdapterUtils.adapt(client, MessageConverter.STRING_TO_BYTE), AdapterUtils.adapt(asyncEndpointFactory, MessageConverter.AXIS_TO_STRING), ContentTypeMode.TRANSPORT);
- suite.addBinaryTest(env, channel, client, AdapterUtils.adapt(asyncEndpointFactory, MessageConverter.AXIS_TO_BYTE), ContentTypeMode.TRANSPORT);
+ suite.addSOAPTests(channel, xmlClient, asyncEndpointFactory, ContentTypeMode.TRANSPORT, env, axisServer);
+ suite.addPOXTests(channel, xmlClient, asyncEndpointFactory, ContentTypeMode.TRANSPORT, env, axisServer);
+ suite.addSwATests(channel, client, asyncEndpointFactory, env, axisServer);
+ suite.addTextPlainTests(channel, adapt(client, MessageConverter.STRING_TO_BYTE), AdapterUtils.adapt(asyncEndpointFactory, MessageConverter.AXIS_TO_STRING), ContentTypeMode.TRANSPORT, env, axisServer);
+ suite.addBinaryTest(channel, client, adapt(asyncEndpointFactory, MessageConverter.AXIS_TO_BYTE), ContentTypeMode.TRANSPORT, env, axisServer);
}
return suite;
}
Added: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/MessageLayout.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/MessageLayout.java?rev=686863&view=auto
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/MessageLayout.java (added)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/MessageLayout.java Mon Aug 18 13:21:02 2008
@@ -0,0 +1,27 @@
+/*
+ * 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.mail;
+
+import javax.activation.DataHandler;
+import javax.mail.internet.MimeMessage;
+
+public interface MessageLayout {
+ void setupMessage(MimeMessage msg, DataHandler dh) throws Exception;
+}
Copied: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/MultipartLayout.java (from r686289, synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/MultipartClient.java)
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/MultipartLayout.java?p2=synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/MultipartLayout.java&p1=synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/MultipartClient.java&r1=686289&r2=686863&rev=686863&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/MultipartClient.java (original)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/MultipartLayout.java Mon Aug 18 13:21:02 2008
@@ -27,9 +27,8 @@
import org.apache.synapse.transport.testkit.name.DisplayName;
@DisplayName("multipart")
-public class MultipartClient extends MailClient {
- @Override
- protected void setupMessage(MimeMessage msg, DataHandler dh) throws Exception {
+public class MultipartLayout implements MessageLayout {
+ public void setupMessage(MimeMessage msg, DataHandler dh) throws Exception {
MimeMultipart multipart = new MimeMultipart();
MimeBodyPart part1 = new MimeBodyPart();
part1.setContent("This is an automated message.", "text/plain");
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=686863&r1=686862&r2=686863&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 Mon Aug 18 13:21:02 2008
@@ -68,22 +68,22 @@
// Change to tdfSimple if you want to check the behavior of Axis' blocking HTTP transport
TransportDescriptionFactory tdf = tdfNIO;
- AxisServer axisServer = new AxisServer(tdf);
- AxisAsyncEndpointFactory asyncEndpointFactory = new AxisAsyncEndpointFactory(axisServer);
+ AxisServer axisServer = new AxisServer();
+ AxisAsyncEndpointFactory asyncEndpointFactory = new AxisAsyncEndpointFactory();
HttpChannel channel = new HttpChannel();
JavaNetClient javaNetClient = new JavaNetClient();
List<AsyncTestClient<XMLMessage>> clients = new LinkedList<AsyncTestClient<XMLMessage>>();
clients.add(adapt(javaNetClient, MessageConverter.XML_TO_BYTE));
- clients.add(new AxisAsyncTestClient(tdf));
+ clients.add(adapt(new AxisAsyncTestClient(tdf), MessageConverter.XML_TO_AXIS));
for (AsyncTestClient<XMLMessage> client : clients) {
- suite.addSOAPTests(env, channel, client, asyncEndpointFactory, ContentTypeMode.TRANSPORT);
- suite.addPOXTests(env, channel, client, asyncEndpointFactory, ContentTypeMode.TRANSPORT);
+ suite.addSOAPTests(channel, client, asyncEndpointFactory, ContentTypeMode.TRANSPORT, env, axisServer, tdf);
+ suite.addPOXTests(channel, client, asyncEndpointFactory, ContentTypeMode.TRANSPORT, env, axisServer, tdf);
}
// suite.addPOXTests(channel, new AxisRequestResponseMessageSender(), ContentTypeMode.TRANSPORT);
- suite.addSwATests(env, channel, javaNetClient, asyncEndpointFactory);
- suite.addTextPlainTests(env, channel, adapt(javaNetClient, MessageConverter.STRING_TO_BYTE), adapt(asyncEndpointFactory, MessageConverter.AXIS_TO_STRING), ContentTypeMode.TRANSPORT);
- suite.addBinaryTest(env, channel, javaNetClient, adapt(asyncEndpointFactory, MessageConverter.AXIS_TO_BYTE), ContentTypeMode.TRANSPORT);
- suite.addRESTTests(env, channel, new JavaNetRESTClient(), asyncEndpointFactory);
+ suite.addSwATests(channel, javaNetClient, asyncEndpointFactory, env, axisServer, tdf);
+ suite.addTextPlainTests(channel, adapt(javaNetClient, MessageConverter.STRING_TO_BYTE), adapt(asyncEndpointFactory, MessageConverter.AXIS_TO_STRING), ContentTypeMode.TRANSPORT, env, axisServer, tdf);
+ suite.addBinaryTest(channel, javaNetClient, adapt(asyncEndpointFactory, MessageConverter.AXIS_TO_BYTE), ContentTypeMode.TRANSPORT, env, axisServer, tdf);
+ suite.addRESTTests(channel, new JavaNetRESTClient(), asyncEndpointFactory, env, axisServer, tdf);
return suite;
}
}
Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/nhttp/JavaNetClient.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/nhttp/JavaNetClient.java?rev=686863&r1=686862&r2=686863&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/nhttp/JavaNetClient.java (original)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/nhttp/JavaNetClient.java Mon Aug 18 13:21:02 2008
@@ -36,7 +36,7 @@
URLConnection connection = new URL(options.getEndpointReference()).openConnection();
connection.setDoOutput(true);
connection.setDoInput(true);
- connection.setRequestProperty("Content-Type", message.getContentType());
+ connection.setRequestProperty("Content-Type", message.getContentType().toString());
OutputStream out = connection.getOutputStream();
out.write(message.getContent());
out.close();
Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/AdapterUtils.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/AdapterUtils.java?rev=686863&r1=686862&r2=686863&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/AdapterUtils.java (original)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/AdapterUtils.java Mon Aug 18 13:21:02 2008
@@ -21,13 +21,19 @@
import org.apache.synapse.transport.testkit.client.AsyncTestClient;
import org.apache.synapse.transport.testkit.client.AsyncTestClientAdapter;
+import org.apache.synapse.transport.testkit.client.RequestResponseTestClient;
+import org.apache.synapse.transport.testkit.client.RequestResponseTestClientAdapter;
import org.apache.synapse.transport.testkit.message.MessageConverter;
import org.apache.synapse.transport.testkit.server.AsyncEndpointFactory;
import org.apache.synapse.transport.testkit.server.AsyncEndpointFactoryAdapter;
public class AdapterUtils {
- public static <M,N> AsyncTestClient<M> adapt(AsyncTestClient<N> parent, MessageConverter<M,N> converter) {
- return new AsyncTestClientAdapter<M,N>(parent, converter);
+ public static <M,N> AsyncTestClient<M> adapt(AsyncTestClient<N> target, MessageConverter<M,N> converter) {
+ return new AsyncTestClientAdapter<M,N>(target, converter);
+ }
+
+ public static <M,N,O,P> RequestResponseTestClient<M,O> adapt(RequestResponseTestClient<N,P> target, MessageConverter<M,N> requestConverter, MessageConverter<P,O> responseConverter) {
+ return new RequestResponseTestClientAdapter<M,N,O,P>(target, requestConverter, responseConverter);
}
public static <M,N> AsyncEndpointFactory<M> adapt(AsyncEndpointFactory<N> targetFactory, MessageConverter<N,M> converter) {
Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/TransportTestSuite.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/TransportTestSuite.java?rev=686863&r1=686862&r2=686863&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/TransportTestSuite.java (original)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/TransportTestSuite.java Mon Aug 18 13:21:02 2008
@@ -30,19 +30,18 @@
import org.apache.axiom.soap.SOAP11Constants;
import org.apache.axiom.soap.SOAP12Constants;
import org.apache.synapse.transport.testkit.client.AsyncTestClient;
-import org.apache.synapse.transport.testkit.client.XMLRequestResponseTestClient;
+import org.apache.synapse.transport.testkit.client.RequestResponseTestClient;
import org.apache.synapse.transport.testkit.filter.FilterExpression;
import org.apache.synapse.transport.testkit.filter.FilterExpressionParser;
import org.apache.synapse.transport.testkit.listener.AsyncChannel;
import org.apache.synapse.transport.testkit.listener.ContentTypeMode;
import org.apache.synapse.transport.testkit.listener.MessageTestData;
import org.apache.synapse.transport.testkit.listener.RequestResponseChannel;
+import org.apache.synapse.transport.testkit.message.AxisMessage;
import org.apache.synapse.transport.testkit.message.ByteArrayMessage;
-import org.apache.synapse.transport.testkit.message.MessageData;
import org.apache.synapse.transport.testkit.message.RESTMessage;
import org.apache.synapse.transport.testkit.message.StringMessage;
import org.apache.synapse.transport.testkit.message.XMLMessage;
-import org.apache.synapse.transport.testkit.message.XMLMessageType;
import org.apache.synapse.transport.testkit.message.RESTMessage.Parameter;
import org.apache.synapse.transport.testkit.server.AsyncEndpointFactory;
import org.apache.synapse.transport.testkit.server.EndpointFactory;
@@ -92,62 +91,62 @@
excludes.add(FilterExpressionParser.parse(filter));
}
- public void addSOAP11Test(TestEnvironment env, AsyncChannel channel, AsyncTestClient<XMLMessage> client, AsyncEndpointFactory<MessageData> endpointFactory, ContentTypeMode contentTypeMode, MessageTestData data) {
- addTest(new XMLAsyncMessageTestCase(env, channel, client, endpointFactory, XMLMessageType.SOAP11, contentTypeMode, SOAP11Constants.SOAP_11_CONTENT_TYPE, data));
+ public void addSOAP11Test(AsyncChannel channel, AsyncTestClient<XMLMessage> client, AsyncEndpointFactory<AxisMessage> endpointFactory, ContentTypeMode contentTypeMode, MessageTestData data, Object... resources) {
+ addTest(new XMLAsyncMessageTestCase(channel, client, endpointFactory, XMLMessage.Type.SOAP11, contentTypeMode, SOAP11Constants.SOAP_11_CONTENT_TYPE, data, resources));
}
- public void addSOAP12Test(TestEnvironment env, AsyncChannel channel, AsyncTestClient<XMLMessage> client, AsyncEndpointFactory<MessageData> endpointFactory, ContentTypeMode contentTypeMode, MessageTestData data) {
- addTest(new XMLAsyncMessageTestCase(env, channel, client, endpointFactory, XMLMessageType.SOAP12, contentTypeMode, SOAP12Constants.SOAP_12_CONTENT_TYPE, data));
+ public void addSOAP12Test(AsyncChannel channel, AsyncTestClient<XMLMessage> client, AsyncEndpointFactory<AxisMessage> endpointFactory, ContentTypeMode contentTypeMode, MessageTestData data, Object... resources) {
+ addTest(new XMLAsyncMessageTestCase(channel, client, endpointFactory, XMLMessage.Type.SOAP12, contentTypeMode, SOAP12Constants.SOAP_12_CONTENT_TYPE, data, resources));
}
- public void addSOAPTests(TestEnvironment env, AsyncChannel channel, AsyncTestClient<XMLMessage> client, AsyncEndpointFactory<MessageData> endpointFactory, ContentTypeMode contentTypeMode) {
+ public void addSOAPTests(AsyncChannel channel, AsyncTestClient<XMLMessage> client, AsyncEndpointFactory<AxisMessage> endpointFactory, ContentTypeMode contentTypeMode, Object... resources) {
for (MessageTestData data : messageTestData) {
- addSOAP11Test(env, channel, client, endpointFactory, contentTypeMode, data);
- addSOAP12Test(env, channel, client, endpointFactory, contentTypeMode, data);
+ addSOAP11Test(channel, client, endpointFactory, contentTypeMode, data, resources);
+ addSOAP12Test(channel, client, endpointFactory, contentTypeMode, data, resources);
}
}
- public void addPOXTest(TestEnvironment env, AsyncChannel channel, AsyncTestClient<XMLMessage> client, AsyncEndpointFactory<MessageData> endpointFactory, ContentTypeMode contentTypeMode, MessageTestData data) {
- addTest(new XMLAsyncMessageTestCase(env, channel, client, endpointFactory, XMLMessageType.POX, contentTypeMode, "application/xml", data));
+ public void addPOXTest(AsyncChannel channel, AsyncTestClient<XMLMessage> client, AsyncEndpointFactory<AxisMessage> endpointFactory, ContentTypeMode contentTypeMode, MessageTestData data, Object... resources) {
+ addTest(new XMLAsyncMessageTestCase(channel, client, endpointFactory, XMLMessage.Type.POX, contentTypeMode, "application/xml", data, resources));
}
- public void addPOXTests(TestEnvironment env, AsyncChannel channel, AsyncTestClient<XMLMessage> client, AsyncEndpointFactory<MessageData> endpointFactory, ContentTypeMode contentTypeMode) {
+ public void addPOXTests(AsyncChannel channel, AsyncTestClient<XMLMessage> client, AsyncEndpointFactory<AxisMessage> endpointFactory, ContentTypeMode contentTypeMode, Object... resources) {
for (MessageTestData data : messageTestData) {
- addPOXTest(env, channel, client, endpointFactory, contentTypeMode, data);
+ addPOXTest(channel, client, endpointFactory, contentTypeMode, data, resources);
}
}
- public void addPOXTest(TestEnvironment env, RequestResponseChannel channel, XMLRequestResponseTestClient client, EndpointFactory endpointFactory, ContentTypeMode contentTypeMode, MessageTestData data) {
- addTest(new XMLRequestResponseMessageTestCase(env, channel, client, endpointFactory, contentTypeMode, "application/xml", XMLMessageType.POX, data));
+ public void addPOXTest(RequestResponseChannel channel, RequestResponseTestClient<XMLMessage,XMLMessage> client, EndpointFactory endpointFactory, ContentTypeMode contentTypeMode, MessageTestData data, Object... resources) {
+ addTest(new XMLRequestResponseMessageTestCase(channel, client, endpointFactory, contentTypeMode, "application/xml", XMLMessage.Type.POX, data, resources));
}
- public void addPOXTests(TestEnvironment env, RequestResponseChannel channel, XMLRequestResponseTestClient client, EndpointFactory endpointFactory, ContentTypeMode contentTypeMode) {
+ public void addPOXTests(RequestResponseChannel channel, RequestResponseTestClient<XMLMessage,XMLMessage> client, EndpointFactory endpointFactory, ContentTypeMode contentTypeMode, Object... resources) {
for (MessageTestData data : messageTestData) {
- addPOXTest(env, channel, client, endpointFactory, contentTypeMode, data);
+ addPOXTest(channel, client, endpointFactory, contentTypeMode, data, resources);
}
}
// TODO: this test actually only makes sense if the transport supports a Content-Type header
- public void addSwATests(TestEnvironment env, AsyncChannel channel, AsyncTestClient<ByteArrayMessage> client, AsyncEndpointFactory<MessageData> endpointFactory) {
- addTest(new SwATestCase(env, channel, client, endpointFactory));
+ public void addSwATests(AsyncChannel channel, AsyncTestClient<ByteArrayMessage> client, AsyncEndpointFactory<AxisMessage> endpointFactory, Object... resources) {
+ addTest(new SwATestCase(channel, client, endpointFactory, resources));
}
- public void addTextPlainTest(TestEnvironment env, AsyncChannel channel, AsyncTestClient<StringMessage> client, AsyncEndpointFactory<StringMessage> endpointFactory, ContentTypeMode contentTypeMode, MessageTestData data) {
- addTest(new TextPlainTestCase(env, channel, client, endpointFactory, contentTypeMode, data));
+ public void addTextPlainTest(AsyncChannel channel, AsyncTestClient<StringMessage> client, AsyncEndpointFactory<StringMessage> endpointFactory, ContentTypeMode contentTypeMode, MessageTestData data, Object... resources) {
+ addTest(new TextPlainTestCase(channel, client, endpointFactory, contentTypeMode, data, resources));
}
- public void addTextPlainTests(TestEnvironment env, AsyncChannel channel, AsyncTestClient<StringMessage> client, AsyncEndpointFactory<StringMessage> endpointFactory, ContentTypeMode contentTypeMode) {
+ public void addTextPlainTests(AsyncChannel channel, AsyncTestClient<StringMessage> client, AsyncEndpointFactory<StringMessage> endpointFactory, ContentTypeMode contentTypeMode, Object... resources) {
for (MessageTestData data : messageTestData) {
- addTextPlainTest(env, channel, client, endpointFactory, contentTypeMode, data);
+ addTextPlainTest(channel, client, endpointFactory, contentTypeMode, data, resources);
}
}
- public void addBinaryTest(TestEnvironment env, AsyncChannel channel, AsyncTestClient<ByteArrayMessage> client, AsyncEndpointFactory<ByteArrayMessage> endpointFactory, ContentTypeMode contentTypeMode) {
- addTest(new BinaryTestCase(env, channel, client, endpointFactory, contentTypeMode));
+ public void addBinaryTest(AsyncChannel channel, AsyncTestClient<ByteArrayMessage> client, AsyncEndpointFactory<ByteArrayMessage> endpointFactory, ContentTypeMode contentTypeMode, Object... resources) {
+ addTest(new BinaryTestCase(channel, client, endpointFactory, contentTypeMode, resources));
}
- public void addRESTTests(TestEnvironment env, AsyncChannel channel, AsyncTestClient<RESTMessage> client, AsyncEndpointFactory<MessageData> endpointFactory) {
- addTest(new RESTTestCase(env, channel, client, endpointFactory, restTestMessage1));
+ public void addRESTTests(AsyncChannel channel, AsyncTestClient<RESTMessage> client, AsyncEndpointFactory<AxisMessage> endpointFactory, Object... resources) {
+ addTest(new RESTTestCase(channel, client, endpointFactory, restTestMessage1, resources));
// TODO: regression test for SYNAPSE-431
// addTest(new RESTTestCase(env, channel, client, endpointFactory, restTestMessage2));
}
Copied: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/client/RequestResponseTestClient.java (from r686626, synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/client/XMLRequestResponseTestClient.java)
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/client/RequestResponseTestClient.java?p2=synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/client/RequestResponseTestClient.java&p1=synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/client/XMLRequestResponseTestClient.java&r1=686626&r2=686863&rev=686863&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/client/XMLRequestResponseTestClient.java (original)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/client/RequestResponseTestClient.java Mon Aug 18 13:21:02 2008
@@ -19,9 +19,6 @@
package org.apache.synapse.transport.testkit.client;
-import org.apache.axiom.om.OMElement;
-import org.apache.synapse.transport.testkit.message.XMLMessageType;
-
-public interface XMLRequestResponseTestClient extends TestClient {
- OMElement sendMessage(String endpointReference, String contentType, String charset, XMLMessageType xmlMessageType, OMElement payload) throws Exception;
+public interface RequestResponseTestClient<M,N> extends TestClient {
+ N sendMessage(ClientOptions options, M message) throws Exception;
}
Added: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/client/RequestResponseTestClientAdapter.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/client/RequestResponseTestClientAdapter.java?rev=686863&view=auto
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/client/RequestResponseTestClientAdapter.java (added)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/client/RequestResponseTestClientAdapter.java Mon Aug 18 13:21:02 2008
@@ -0,0 +1,45 @@
+/*
+ * 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.client;
+
+import org.apache.synapse.transport.testkit.Adapter;
+import org.apache.synapse.transport.testkit.message.MessageConverter;
+
+public class RequestResponseTestClientAdapter<M,N,O,P> implements RequestResponseTestClient<M,O>, Adapter {
+ private final RequestResponseTestClient<N,P> target;
+ private final MessageConverter<M,N> requestConverter;
+ private final MessageConverter<P,O> responseConverter;
+
+ public RequestResponseTestClientAdapter(RequestResponseTestClient<N,P> target,
+ MessageConverter<M,N> requestConverter,
+ MessageConverter<P,O> responseConverter) {
+ this.target = target;
+ this.requestConverter = requestConverter;
+ this.responseConverter = responseConverter;
+ }
+
+ public RequestResponseTestClient<N,P> getTarget() {
+ return target;
+ }
+
+ public O sendMessage(ClientOptions options, M message) throws Exception {
+ return responseConverter.convert(options, target.sendMessage(options, requestConverter.convert(options, message)));
+ }
+}
Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/client/axis2/AxisAsyncTestClient.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/client/axis2/AxisAsyncTestClient.java?rev=686863&r1=686862&r2=686863&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/client/axis2/AxisAsyncTestClient.java (original)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/client/axis2/AxisAsyncTestClient.java Mon Aug 18 13:21:02 2008
@@ -23,16 +23,16 @@
import org.apache.synapse.transport.testkit.TransportDescriptionFactory;
import org.apache.synapse.transport.testkit.client.AsyncTestClient;
import org.apache.synapse.transport.testkit.client.ClientOptions;
-import org.apache.synapse.transport.testkit.message.XMLMessage;
+import org.apache.synapse.transport.testkit.message.AxisMessage;
import org.apache.synapse.transport.testkit.name.DisplayName;
@DisplayName("axis")
-public class AxisAsyncTestClient extends AxisTestClient implements AsyncTestClient<XMLMessage> {
+public class AxisAsyncTestClient extends AxisTestClient implements AsyncTestClient<AxisMessage> {
public AxisAsyncTestClient(TransportDescriptionFactory tdf) {
super(tdf);
}
- public void sendMessage(ClientOptions options, XMLMessage message) throws Exception {
- createClient(options.getEndpointReference(), ServiceClient.ANON_OUT_ONLY_OP, message.getXmlMessageType(), message.getPayload(), options.getCharset()).execute(false);
+ public void sendMessage(ClientOptions options, AxisMessage message) throws Exception {
+ createClient(options, message, ServiceClient.ANON_OUT_ONLY_OP).execute(false);
}
}
Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/client/axis2/AxisRequestResponseTestClient.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/client/axis2/AxisRequestResponseTestClient.java?rev=686863&r1=686862&r2=686863&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/client/axis2/AxisRequestResponseTestClient.java (original)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/client/axis2/AxisRequestResponseTestClient.java Mon Aug 18 13:21:02 2008
@@ -19,29 +19,24 @@
package org.apache.synapse.transport.testkit.client.axis2;
-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;
import org.apache.synapse.transport.testkit.TransportDescriptionFactory;
-import org.apache.synapse.transport.testkit.client.XMLRequestResponseTestClient;
-import org.apache.synapse.transport.testkit.message.XMLMessageType;
+import org.apache.synapse.transport.testkit.client.ClientOptions;
+import org.apache.synapse.transport.testkit.client.RequestResponseTestClient;
+import org.apache.synapse.transport.testkit.message.AxisMessage;
import org.apache.synapse.transport.testkit.name.DisplayName;
@DisplayName("axis")
-public class AxisRequestResponseTestClient extends AxisTestClient implements XMLRequestResponseTestClient {
+public class AxisRequestResponseTestClient extends AxisTestClient implements RequestResponseTestClient<AxisMessage,AxisMessage> {
public AxisRequestResponseTestClient(TransportDescriptionFactory tdf) {
super(tdf);
}
- public OMElement sendMessage(String endpointReference, String contentType, String charset,
- XMLMessageType xmlMessageType, OMElement payload) throws Exception {
-
- OperationClient mepClient = createClient(endpointReference, ServiceClient.ANON_OUT_IN_OP, xmlMessageType, payload, charset);
+ public AxisMessage sendMessage(ClientOptions options, AxisMessage message) throws Exception {
+ OperationClient mepClient = createClient(options, message, ServiceClient.ANON_OUT_IN_OP);
mepClient.execute(true);
-
- MessageContext response = mepClient.getMessageContext(WSDLConstants.MESSAGE_LABEL_IN_VALUE);
- return response.getEnvelope().getBody().getFirstElement();
+ return new AxisMessage(mepClient.getMessageContext(WSDLConstants.MESSAGE_LABEL_IN_VALUE));
}
}
Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/client/axis2/AxisTestClient.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/client/axis2/AxisTestClient.java?rev=686863&r1=686862&r2=686863&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/client/axis2/AxisTestClient.java (original)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/client/axis2/AxisTestClient.java Mon Aug 18 13:21:02 2008
@@ -23,7 +23,6 @@
import javax.xml.namespace.QName;
-import org.apache.axiom.om.OMElement;
import org.apache.axis2.AxisFault;
import org.apache.axis2.Constants;
import org.apache.axis2.client.OperationClient;
@@ -37,9 +36,10 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.synapse.transport.testkit.TransportDescriptionFactory;
+import org.apache.synapse.transport.testkit.client.ClientOptions;
import org.apache.synapse.transport.testkit.client.TestClient;
import org.apache.synapse.transport.testkit.listener.Channel;
-import org.apache.synapse.transport.testkit.message.XMLMessageType;
+import org.apache.synapse.transport.testkit.message.AxisMessage;
public class AxisTestClient implements TestClient {
private static final Log log = LogFactory.getLog(AxisTestClient.class);
@@ -73,20 +73,24 @@
trpOutDesc.getSender().stop();
}
- protected OperationClient createClient(String endpointReference, QName operationQName, XMLMessageType xmlMessageType, OMElement payload, String charset) throws AxisFault {
+ protected OperationClient createClient(ClientOptions options, AxisMessage message, QName operationQName) throws AxisFault {
+ String endpointReference = options.getEndpointReference();
log.info("Sending to " + endpointReference);
- Options options = new Options();
- options.setTo(channel.createEndpointReference(endpointReference));
+ Options axisOptions = new Options();
+ axisOptions.setTo(channel.createEndpointReference(endpointReference));
ServiceClient serviceClient = new ServiceClient(cfgCtx, null);
- serviceClient.setOptions(options);
+ serviceClient.setOptions(axisOptions);
OperationClient mepClient = serviceClient.createClient(operationQName);
- MessageContext mc = xmlMessageType.createMessageContext(payload);
+ MessageContext mc = new MessageContext();
+ mc.setProperty(Constants.Configuration.MESSAGE_TYPE, message.getMessageType());
+ mc.setEnvelope(message.getEnvelope());
+ mc.setAttachmentMap(message.getAttachments());
channel.setupRequestMessageContext(mc);
setupRequestMessageContext(mc);
- mc.setProperty(Constants.Configuration.CHARACTER_SET_ENCODING, charset);
+ mc.setProperty(Constants.Configuration.CHARACTER_SET_ENCODING, options.getCharset());
mc.setServiceContext(serviceClient.getServiceContext());
mepClient.addMessageContext(mc);
Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/AsyncMessageTestCase.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/AsyncMessageTestCase.java?rev=686863&r1=686862&r2=686863&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/AsyncMessageTestCase.java (original)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/AsyncMessageTestCase.java Mon Aug 18 13:21:02 2008
@@ -19,7 +19,6 @@
package org.apache.synapse.transport.testkit.listener;
-import org.apache.synapse.transport.testkit.TestEnvironment;
import org.apache.synapse.transport.testkit.client.AsyncTestClient;
import org.apache.synapse.transport.testkit.client.ClientOptions;
import org.apache.synapse.transport.testkit.name.NameComponent;
@@ -32,11 +31,13 @@
private final String charset;
private final AsyncEndpointFactory<N> endpointFactory;
- public AsyncMessageTestCase(TestEnvironment env, AsyncChannel channel, AsyncTestClient<M> client, AsyncEndpointFactory<N> endpointFactory, ContentTypeMode contentTypeMode, String contentType, String charset) {
- super(env, channel, endpointFactory.getServer(), contentTypeMode, contentType);
+ // TODO: maybe we don't need an explicit AsyncChannel
+ public AsyncMessageTestCase(AsyncChannel channel, AsyncTestClient<M> client, AsyncEndpointFactory<N> endpointFactory, ContentTypeMode contentTypeMode, String contentType, String charset, Object... resources) {
+ super(contentTypeMode, contentType, resources);
this.client = client;
this.endpointFactory = endpointFactory;
this.charset = charset;
+ addResource(channel);
addResource(client);
addResource(endpointFactory);
}
Copied: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/message/AxisMessage.java (from r686043, synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/message/MessageData.java)
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/message/AxisMessage.java?p2=synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/message/AxisMessage.java&p1=synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/message/MessageData.java&r1=686043&r2=686863&rev=686863&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/message/MessageData.java (original)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/message/AxisMessage.java Mon Aug 18 13:21:02 2008
@@ -21,6 +21,8 @@
import org.apache.axiom.attachments.Attachments;
import org.apache.axiom.soap.SOAPEnvelope;
+import org.apache.axis2.Constants;
+import org.apache.axis2.context.MessageContext;
import org.apache.synapse.transport.testkit.server.axis2.MockMessageReceiver;
/**
@@ -28,20 +30,45 @@
* This class is used by {@link MockMessageReceiver} because it is not safe to
* keep a reference to the {@link org.apache.axis2.context.MessageContext} object.
*/
-public class MessageData {
- private final SOAPEnvelope envelope;
- private final Attachments attachments;
+public class AxisMessage {
+ private String messageType;
+ private SOAPEnvelope envelope;
+ private Attachments attachments;
- public MessageData(SOAPEnvelope envelope, Attachments attachments) {
- this.envelope = envelope;
- this.attachments = attachments;
+ public AxisMessage() {
+ }
+
+ public AxisMessage(MessageContext msgContext) {
+ envelope = msgContext.getEnvelope();
+ envelope.build();
+ attachments = msgContext.getAttachmentMap();
+ // Make sure that all attachments are read
+ attachments.getAllContentIDs();
+ setAttachments(attachments);
+ messageType = (String)msgContext.getProperty(Constants.Configuration.MESSAGE_TYPE);
+ }
+
+ public String getMessageType() {
+ return messageType;
+ }
+
+ public void setMessageType(String messageType) {
+ this.messageType = messageType;
}
public SOAPEnvelope getEnvelope() {
return envelope;
}
+ public void setEnvelope(SOAPEnvelope envelope) {
+ this.envelope = envelope;
+ }
+
public Attachments getAttachments() {
return attachments;
}
-}
\ No newline at end of file
+
+ public void setAttachments(Attachments attachments) {
+ this.attachments = attachments;
+ }
+}
Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/message/ByteArrayMessage.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/message/ByteArrayMessage.java?rev=686863&r1=686862&r2=686863&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/message/ByteArrayMessage.java (original)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/message/ByteArrayMessage.java Mon Aug 18 13:21:02 2008
@@ -19,16 +19,18 @@
package org.apache.synapse.transport.testkit.message;
+import javax.mail.internet.ContentType;
+
public class ByteArrayMessage {
- private final String contentType;
+ private final ContentType contentType;
private final byte[] content;
- public ByteArrayMessage(String contentType, byte[] content) {
+ public ByteArrayMessage(ContentType contentType, byte[] content) {
this.contentType = contentType;
this.content = content;
}
- public String getContentType() {
+ public ContentType getContentType() {
return contentType;
}
Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/message/MessageConverter.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/message/MessageConverter.java?rev=686863&r1=686862&r2=686863&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/message/MessageConverter.java (original)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/message/MessageConverter.java Mon Aug 18 13:21:02 2008
@@ -19,29 +19,36 @@
package org.apache.synapse.transport.testkit.message;
+import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.StringWriter;
import javax.activation.DataHandler;
import javax.mail.internet.ContentType;
+import javax.xml.stream.XMLInputFactory;
+import javax.xml.stream.XMLStreamReader;
import junit.framework.Assert;
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;
+import org.apache.axiom.om.impl.builder.StAXOMBuilder;
+import org.apache.axiom.om.util.StAXUtils;
import org.apache.axiom.soap.SOAPEnvelope;
+import org.apache.axiom.soap.SOAPFactory;
+import org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder;
import org.apache.synapse.transport.base.BaseConstants;
import org.apache.synapse.transport.testkit.client.ClientOptions;
public interface MessageConverter<T,U> {
- MessageConverter<MessageData,ByteArrayMessage> AXIS_TO_BYTE =
- new MessageConverter<MessageData,ByteArrayMessage>() {
+ MessageConverter<AxisMessage,ByteArrayMessage> AXIS_TO_BYTE =
+ new MessageConverter<AxisMessage,ByteArrayMessage>() {
- public ByteArrayMessage convert(ClientOptions options, MessageData message) throws Exception {
+ public ByteArrayMessage convert(ClientOptions options, AxisMessage message) throws Exception {
SOAPEnvelope envelope = message.getEnvelope();
OMElement wrapper = envelope.getBody().getFirstElement();
Assert.assertEquals(BaseConstants.DEFAULT_BINARY_WRAPPER, wrapper.getQName());
@@ -53,10 +60,10 @@
}
};
- MessageConverter<MessageData,StringMessage> AXIS_TO_STRING =
- new MessageConverter<MessageData,StringMessage>() {
+ MessageConverter<AxisMessage,StringMessage> AXIS_TO_STRING =
+ new MessageConverter<AxisMessage,StringMessage>() {
- public StringMessage convert(ClientOptions options, MessageData message) throws Exception {
+ public StringMessage convert(ClientOptions options, AxisMessage message) throws Exception {
SOAPEnvelope envelope = message.getEnvelope();
OMElement wrapper = envelope.getBody().getFirstElement();
Assert.assertEquals(BaseConstants.DEFAULT_TEXT_WRAPPER, wrapper.getQName());
@@ -64,6 +71,46 @@
}
};
+ MessageConverter<XMLMessage,AxisMessage> XML_TO_AXIS =
+ new MessageConverter<XMLMessage,AxisMessage>() {
+
+ public AxisMessage convert(ClientOptions options, XMLMessage message) throws Exception {
+ XMLMessage.Type type = message.getType();
+ AxisMessage result = new AxisMessage();
+ SOAPFactory factory;
+ if (type == XMLMessage.Type.SOAP12) {
+ factory = OMAbstractFactory.getSOAP12Factory();
+ } else {
+ factory = OMAbstractFactory.getSOAP11Factory();
+ }
+ result.setMessageType(type.getContentType());
+ SOAPEnvelope envelope = factory.getDefaultEnvelope();
+ envelope.getBody().addChild(message.getPayload());
+ result.setEnvelope(envelope);
+ return result;
+ }
+ };
+
+ MessageConverter<AxisMessage,XMLMessage> AXIS_TO_XML =
+ new MessageConverter<AxisMessage,XMLMessage>() {
+
+ public XMLMessage convert(ClientOptions options, AxisMessage message) throws Exception {
+ XMLMessage.Type type = null;
+ for (XMLMessage.Type candidate : XMLMessage.Type.values()) {
+ if (candidate.getContentType().equals(message.getMessageType())) {
+ type = candidate;
+ break;
+ }
+ }
+ if (type == null) {
+ // TODO: make this an error later
+ type = XMLMessage.Type.POX;
+// throw new UnsupportedOperationException("Content type " + message.getMessageType() + " not supported");
+ }
+ return new XMLMessage(message.getMessageType(), message.getEnvelope().getBody().getFirstElement(), type);
+ }
+ };
+
MessageConverter<XMLMessage,ByteArrayMessage> XML_TO_BYTE =
new MessageConverter<XMLMessage,ByteArrayMessage>() {
@@ -72,8 +119,36 @@
OMOutputFormat outputFormat = new OMOutputFormat();
outputFormat.setCharSetEncoding(options.getCharset());
outputFormat.setIgnoreXMLDeclaration(true);
- message.getXmlMessageType().getMessage(message.getPayload()).serializeAndConsume(baos, outputFormat);
- return new ByteArrayMessage(message.getContentType(), baos.toByteArray());
+ message.getMessageElement().serializeAndConsume(baos, outputFormat);
+ return new ByteArrayMessage(new ContentType(message.getContentType()), baos.toByteArray());
+ }
+ };
+
+ MessageConverter<ByteArrayMessage,XMLMessage> BYTE_TO_XML =
+ new MessageConverter<ByteArrayMessage,XMLMessage>() {
+
+ public XMLMessage convert(ClientOptions options, ByteArrayMessage message) throws Exception {
+ ContentType contentType = message.getContentType();
+ String baseType = contentType.getBaseType();
+ String charset = contentType.getParameter("charset");
+ XMLStreamReader reader = StAXUtils.createXMLStreamReader(new ByteArrayInputStream(message.getContent()), charset);
+ XMLMessage.Type type = null;
+ for (XMLMessage.Type candidate : XMLMessage.Type.values()) {
+ if (candidate.getContentType().equals(baseType)) {
+ type = candidate;
+ break;
+ }
+ }
+ if (type == null) {
+ throw new Exception("Unrecognized content type " + baseType);
+ }
+ OMElement payload;
+ if (type == XMLMessage.Type.POX) {
+ payload = new StAXOMBuilder(reader).getDocumentElement();
+ } else {
+ payload = new StAXSOAPModelBuilder(reader).getSOAPEnvelope().getBody().getFirstElement();
+ }
+ return new XMLMessage(contentType.toString(), payload, type);
}
};
@@ -84,31 +159,41 @@
OMOutputFormat format = new OMOutputFormat();
format.setIgnoreXMLDeclaration(true);
StringWriter sw = new StringWriter();
- message.getXmlMessageType().getMessage(message.getPayload()).serializeAndConsume(sw, format);
+ message.getMessageElement().serializeAndConsume(sw, format);
return new StringMessage(message.getContentType(), sw.toString());
}
};
- MessageConverter<ByteArrayMessage,XMLMessage> BINARY_WRAPPER =
- new MessageConverter<ByteArrayMessage,XMLMessage>() {
+ MessageConverter<ByteArrayMessage,AxisMessage> BINARY_WRAPPER =
+ new MessageConverter<ByteArrayMessage,AxisMessage>() {
- public XMLMessage convert(ClientOptions options, ByteArrayMessage message) throws Exception {
- OMFactory omFactory = XMLMessageType.SOAP11.getOMFactory();
- OMElement wrapper = omFactory.createOMElement(BaseConstants.DEFAULT_BINARY_WRAPPER);
+ public AxisMessage convert(ClientOptions options, ByteArrayMessage message) throws Exception {
+ AxisMessage result = new AxisMessage();
+ result.setMessageType("application/octet-stream");
+ SOAPFactory factory = OMAbstractFactory.getSOAP11Factory();
+ SOAPEnvelope envelope = factory.getDefaultEnvelope();
+ OMElement wrapper = factory.createOMElement(BaseConstants.DEFAULT_BINARY_WRAPPER);
DataHandler dataHandler = new DataHandler(new ByteArrayDataSource(message.getContent()));
- wrapper.addChild(omFactory.createOMText(dataHandler, true));
- return new XMLMessage(message.getContentType(), wrapper, XMLMessageType.SOAP11);
+ wrapper.addChild(factory.createOMText(dataHandler, true));
+ envelope.getBody().addChild(wrapper);
+ result.setEnvelope(envelope);
+ return result;
}
};
- MessageConverter<StringMessage,XMLMessage> TEXT_WRAPPER =
- new MessageConverter<StringMessage,XMLMessage>() {
-
- public XMLMessage convert(ClientOptions options, StringMessage message) throws Exception {
- OMFactory omFactory = XMLMessageType.SOAP11.getOMFactory();
- OMElement wrapper = omFactory.createOMElement(BaseConstants.DEFAULT_TEXT_WRAPPER);
- wrapper.addChild(omFactory.createOMText(message.getContent()));
- return new XMLMessage(message.getContentType(), wrapper, XMLMessageType.SOAP11);
+ MessageConverter<StringMessage,AxisMessage> TEXT_WRAPPER =
+ new MessageConverter<StringMessage,AxisMessage>() {
+
+ public AxisMessage convert(ClientOptions options, StringMessage message) throws Exception {
+ AxisMessage result = new AxisMessage();
+ result.setMessageType("application/octet-stream");
+ SOAPFactory factory = OMAbstractFactory.getSOAP11Factory();
+ SOAPEnvelope envelope = factory.getDefaultEnvelope();
+ OMElement wrapper = factory.createOMElement(BaseConstants.DEFAULT_TEXT_WRAPPER);
+ wrapper.addChild(factory.createOMText(message.getContent()));
+ envelope.getBody().addChild(wrapper);
+ result.setEnvelope(envelope);
+ return result;
}
};
@@ -116,7 +201,7 @@
new MessageConverter<StringMessage,ByteArrayMessage>() {
public ByteArrayMessage convert(ClientOptions options, StringMessage message) throws Exception {
- return new ByteArrayMessage(message.getContentType(), message.getContent().getBytes(options.getCharset()));
+ return new ByteArrayMessage(new ContentType(message.getContentType()), message.getContent().getBytes(options.getCharset()));
}
};
@@ -124,9 +209,9 @@
new MessageConverter<ByteArrayMessage,StringMessage>() {
public StringMessage convert(ClientOptions options, ByteArrayMessage message) throws Exception {
- ContentType contentType = new ContentType(message.getContentType());
+ ContentType contentType = message.getContentType();
String charset = contentType.getParameter("charset");
- return new StringMessage(message.getContentType(), new String(message.getContent(), charset));
+ return new StringMessage(contentType.toString(), new String(message.getContent(), charset));
}
};