You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@synapse.apache.org by ve...@apache.org on 2008/08/25 23:26:59 UTC
svn commit: r688888 [2/3] - in
/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport:
jms/ mail/ nhttp/ testkit/ testkit/client/ testkit/client/axis2/
testkit/listener/ testkit/message/ testkit/server/ testkit/server/axis2/ ...
Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/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=688888&r1=688887&r2=688888&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 25 14:26:56 2008
@@ -19,12 +19,15 @@
package org.apache.synapse.transport.testkit.client.axis2;
+import javax.mail.internet.ContentType;
+
import org.apache.axis2.client.OperationClient;
import org.apache.axis2.client.ServiceClient;
import org.apache.axis2.wsdl.WSDLConstants;
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.message.IncomingMessage;
public class AxisRequestResponseTestClient extends AxisTestClient implements RequestResponseTestClient<AxisMessage,AxisMessage> {
public AxisRequestResponseTestClient(AxisTestClientSetup setup) {
@@ -35,9 +38,9 @@
super();
}
- public AxisMessage sendMessage(ClientOptions options, AxisMessage message) throws Exception {
+ public IncomingMessage<AxisMessage> sendMessage(ClientOptions options, ContentType contentType, AxisMessage message) throws Exception {
OperationClient mepClient = createClient(options, message, ServiceClient.ANON_OUT_IN_OP);
mepClient.execute(true);
- return new AxisMessage(mepClient.getMessageContext(WSDLConstants.MESSAGE_LABEL_IN_VALUE));
+ return new IncomingMessage<AxisMessage>(null, 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=688888&r1=688887&r2=688888&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 25 14:26:56 2008
@@ -19,6 +19,7 @@
package org.apache.synapse.transport.testkit.client.axis2;
+import javax.mail.internet.ContentType;
import javax.xml.namespace.QName;
import org.apache.axis2.Constants;
@@ -35,6 +36,7 @@
import org.apache.synapse.transport.testkit.message.AxisMessage;
import org.apache.synapse.transport.testkit.name.Name;
import org.apache.synapse.transport.testkit.name.Named;
+import org.apache.synapse.transport.testkit.util.ContentTypeUtil;
@Name("axis")
public class AxisTestClient implements TestClient {
@@ -64,6 +66,16 @@
this.channel = channel;
}
+ public ContentType getContentType(ClientOptions options, ContentType contentType) {
+ // TODO: this may be incorrect in some cases
+ String charset = options.getCharset();
+ if (charset == null) {
+ return contentType;
+ } else {
+ return ContentTypeUtil.addCharset(contentType, options.getCharset());
+ }
+ }
+
protected OperationClient createClient(ClientOptions options, AxisMessage message, QName operationQName) throws Exception {
EndpointReference epr = channel.getEndpointReference();
log.info("Sending to " + epr.getAddress());
Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/AbstractChannel.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/AbstractChannel.java?rev=688888&r1=688887&r2=688888&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/AbstractChannel.java (original)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/AbstractChannel.java Mon Aug 25 14:26:56 2008
@@ -20,12 +20,8 @@
package org.apache.synapse.transport.testkit.listener;
import org.apache.axis2.context.MessageContext;
-import org.apache.axis2.description.AxisService;
public abstract class AbstractChannel implements Channel {
- public void setupService(AxisService service) throws Exception {
- }
-
public void setupRequestMessageContext(MessageContext msgContext) {
}
}
Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/Channel.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/Channel.java?rev=688888&r1=688887&r2=688888&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/Channel.java (original)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/listener/Channel.java Mon Aug 25 14:26:56 2008
@@ -21,23 +21,10 @@
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.context.MessageContext;
-import org.apache.axis2.description.AxisService;
-import org.apache.axis2.description.Parameter;
public interface Channel {
String CONTEXT_PATH = "/services";
- /**
- * Set up the service so that it can receive messages through the transport under test.
- * Implementations will typically call {@link AxisService#addParameter(Parameter)} to
- * setup the service parameters required by the transport.
- * The default implementation does nothing.
- *
- * @param service
- * @throws Exception
- */
- void setupService(AxisService service) throws Exception;
-
void setupRequestMessageContext(MessageContext msgContext);
EndpointReference getEndpointReference() throws Exception;
Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/message/AxisMessage.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/message/AxisMessage.java?rev=688888&r1=688887&r2=688888&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/message/AxisMessage.java (original)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/message/AxisMessage.java Mon Aug 25 14:26:56 2008
@@ -23,7 +23,6 @@
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;
/**
* Class encapsulating a SOAP envelope and an attachment map.
Added: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/message/IncomingMessage.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/message/IncomingMessage.java?rev=688888&view=auto
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/message/IncomingMessage.java (added)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/message/IncomingMessage.java Mon Aug 25 14:26:56 2008
@@ -0,0 +1,40 @@
+/*
+ * 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.message;
+
+import javax.mail.internet.ContentType;
+
+public class IncomingMessage<M> {
+ private final ContentType contentType;
+ private final M data;
+
+ public IncomingMessage(ContentType contentType, M data) {
+ this.contentType = contentType;
+ this.data = data;
+ }
+
+ public ContentType getContentType() {
+ return contentType;
+ }
+
+ public M getData() {
+ return data;
+ }
+}
Added: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/message/MessageDecoder.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/message/MessageDecoder.java?rev=688888&view=auto
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/message/MessageDecoder.java (added)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/message/MessageDecoder.java Mon Aug 25 14:26:56 2008
@@ -0,0 +1,124 @@
+/*
+ * 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.message;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+
+import javax.activation.DataHandler;
+import javax.mail.internet.ContentType;
+import javax.xml.stream.XMLStreamReader;
+
+import junit.framework.Assert;
+
+import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.OMNode;
+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.impl.builder.StAXSOAPModelBuilder;
+import org.apache.synapse.transport.base.BaseConstants;
+
+public interface MessageDecoder<T,U> {
+ MessageDecoder<AxisMessage,byte[]> AXIS_TO_BYTE =
+ new MessageDecoder<AxisMessage,byte[]>() {
+
+ public byte[] decode(ContentType contentType, AxisMessage message) throws Exception {
+ SOAPEnvelope envelope = message.getEnvelope();
+ OMElement wrapper = envelope.getBody().getFirstElement();
+ Assert.assertEquals(BaseConstants.DEFAULT_BINARY_WRAPPER, wrapper.getQName());
+ OMNode child = wrapper.getFirstOMChild();
+ Assert.assertTrue(child instanceof OMText);
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ ((DataHandler)((OMText)child).getDataHandler()).writeTo(baos);
+ return baos.toByteArray();
+ }
+ };
+
+ MessageDecoder<AxisMessage,String> AXIS_TO_STRING =
+ new MessageDecoder<AxisMessage,String>() {
+
+ public String decode(ContentType contentType, AxisMessage message) throws Exception {
+ SOAPEnvelope envelope = message.getEnvelope();
+ OMElement wrapper = envelope.getBody().getFirstElement();
+ Assert.assertEquals(BaseConstants.DEFAULT_TEXT_WRAPPER, wrapper.getQName());
+ return wrapper.getText();
+ }
+ };
+
+ MessageDecoder<AxisMessage,XMLMessage> AXIS_TO_XML =
+ new MessageDecoder<AxisMessage,XMLMessage>() {
+
+ public XMLMessage decode(ContentType contentType, 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.getEnvelope().getBody().getFirstElement(), type);
+ }
+ };
+
+ MessageDecoder<byte[],XMLMessage> BYTE_TO_XML =
+ new MessageDecoder<byte[],XMLMessage>() {
+
+ public XMLMessage decode(ContentType contentType, byte[] message) throws Exception {
+ String baseType = contentType.getBaseType();
+ String charset = contentType.getParameter("charset");
+ XMLStreamReader reader = StAXUtils.createXMLStreamReader(new ByteArrayInputStream(message), charset);
+ XMLMessage.Type type = null;
+ for (XMLMessage.Type candidate : XMLMessage.Type.values()) {
+ if (candidate.getContentType().getBaseType().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(payload, type);
+ }
+ };
+
+ MessageDecoder<byte[],String> BYTE_TO_STRING =
+ new MessageDecoder<byte[],String>() {
+
+ public String decode(ContentType contentType, byte[] message) throws Exception {
+ String charset = contentType.getParameter("charset");
+ return new String(message, charset);
+ }
+ };
+
+ U decode(ContentType contentType, T message) throws Exception;
+}
Copied: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/message/MessageEncoder.java (from r688412, 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/MessageEncoder.java?p2=synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/message/MessageEncoder.java&p1=synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/message/MessageConverter.java&r1=688412&r2=688888&rev=688888&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/MessageEncoder.java Mon Aug 25 14:26:56 2008
@@ -19,62 +19,32 @@
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.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;
+import org.apache.synapse.transport.testkit.util.ContentTypeUtil;
-public interface MessageConverter<T,U> {
- MessageConverter<AxisMessage,ByteArrayMessage> AXIS_TO_BYTE =
- new MessageConverter<AxisMessage,ByteArrayMessage>() {
-
- 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());
- OMNode child = wrapper.getFirstOMChild();
- Assert.assertTrue(child instanceof OMText);
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- ((DataHandler)((OMText)child).getDataHandler()).writeTo(baos);
- return new ByteArrayMessage(null, baos.toByteArray());
- }
- };
-
- MessageConverter<AxisMessage,StringMessage> AXIS_TO_STRING =
- new MessageConverter<AxisMessage,StringMessage>() {
+public interface MessageEncoder<T,U> {
+ MessageEncoder<XMLMessage,AxisMessage> XML_TO_AXIS =
+ new MessageEncoder<XMLMessage,AxisMessage>() {
- 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());
- return new StringMessage(null, wrapper.getText());
+ public ContentType getContentType(ClientOptions options, ContentType contentType) {
+ return contentType;
}
- };
-
- MessageConverter<XMLMessage,AxisMessage> XML_TO_AXIS =
- new MessageConverter<XMLMessage,AxisMessage>() {
- public AxisMessage convert(ClientOptions options, XMLMessage message) throws Exception {
+ public AxisMessage encode(ClientOptions options, XMLMessage message) throws Exception {
XMLMessage.Type type = message.getType();
AxisMessage result = new AxisMessage();
SOAPFactory factory;
@@ -83,7 +53,7 @@
} else {
factory = OMAbstractFactory.getSOAP11Factory();
}
- result.setMessageType(type.getContentType());
+ result.setMessageType(type.getContentType().toString());
SOAPEnvelope envelope = factory.getDefaultEnvelope();
envelope.getBody().addChild(message.getPayload());
result.setEnvelope(envelope);
@@ -91,89 +61,53 @@
}
};
- MessageConverter<AxisMessage,XMLMessage> AXIS_TO_XML =
- new MessageConverter<AxisMessage,XMLMessage>() {
+ MessageEncoder<XMLMessage,byte[]> XML_TO_BYTE =
+ new MessageEncoder<XMLMessage,byte[]>() {
- 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);
+ public ContentType getContentType(ClientOptions options, ContentType contentType) {
+ return ContentTypeUtil.addCharset(contentType, options.getCharset());
}
- };
-
- MessageConverter<XMLMessage,ByteArrayMessage> XML_TO_BYTE =
- new MessageConverter<XMLMessage,ByteArrayMessage>() {
- public ByteArrayMessage convert(ClientOptions options, XMLMessage message) throws Exception {
+ public byte[] encode(ClientOptions options, XMLMessage message) throws Exception {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
OMOutputFormat outputFormat = new OMOutputFormat();
outputFormat.setCharSetEncoding(options.getCharset());
outputFormat.setIgnoreXMLDeclaration(true);
message.getMessageElement().serializeAndConsume(baos, outputFormat);
- return new ByteArrayMessage(new ContentType(message.getContentType()), baos.toByteArray());
+ return baos.toByteArray();
}
};
- MessageConverter<ByteArrayMessage,XMLMessage> BYTE_TO_XML =
- new MessageConverter<ByteArrayMessage,XMLMessage>() {
+ MessageEncoder<XMLMessage,String> XML_TO_STRING =
+ new MessageEncoder<XMLMessage,String>() {
- 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);
+ public ContentType getContentType(ClientOptions options, ContentType contentType) {
+ return contentType;
}
- };
-
- MessageConverter<XMLMessage,StringMessage> XML_TO_STRING =
- new MessageConverter<XMLMessage,StringMessage>() {
- public StringMessage convert(ClientOptions options, XMLMessage message) throws Exception {
+ public String encode(ClientOptions options, XMLMessage message) throws Exception {
OMOutputFormat format = new OMOutputFormat();
format.setIgnoreXMLDeclaration(true);
StringWriter sw = new StringWriter();
message.getMessageElement().serializeAndConsume(sw, format);
- return new StringMessage(message.getContentType(), sw.toString());
+ return sw.toString();
}
};
- MessageConverter<ByteArrayMessage,AxisMessage> BINARY_WRAPPER =
- new MessageConverter<ByteArrayMessage,AxisMessage>() {
+ MessageEncoder<byte[],AxisMessage> BINARY_WRAPPER =
+ new MessageEncoder<byte[],AxisMessage>() {
+
+ public ContentType getContentType(ClientOptions options, ContentType contentType) {
+ return contentType;
+ }
- public AxisMessage convert(ClientOptions options, ByteArrayMessage message) throws Exception {
+ public AxisMessage encode(ClientOptions options, byte[] 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()));
+ DataHandler dataHandler = new DataHandler(new ByteArrayDataSource(message));
wrapper.addChild(factory.createOMText(dataHandler, true));
envelope.getBody().addChild(wrapper);
result.setEnvelope(envelope);
@@ -181,39 +115,38 @@
}
};
- MessageConverter<StringMessage,AxisMessage> TEXT_WRAPPER =
- new MessageConverter<StringMessage,AxisMessage>() {
+ MessageEncoder<String,AxisMessage> TEXT_WRAPPER =
+ new MessageEncoder<String,AxisMessage>() {
- public AxisMessage convert(ClientOptions options, StringMessage message) throws Exception {
+ public ContentType getContentType(ClientOptions options, ContentType contentType) {
+ return contentType;
+ }
+
+ public AxisMessage encode(ClientOptions options, String message) throws Exception {
AxisMessage result = new AxisMessage();
- result.setMessageType("application/octet-stream");
+ result.setMessageType("text/plain");
SOAPFactory factory = OMAbstractFactory.getSOAP11Factory();
SOAPEnvelope envelope = factory.getDefaultEnvelope();
OMElement wrapper = factory.createOMElement(BaseConstants.DEFAULT_TEXT_WRAPPER);
- wrapper.addChild(factory.createOMText(message.getContent()));
+ wrapper.addChild(factory.createOMText(message));
envelope.getBody().addChild(wrapper);
result.setEnvelope(envelope);
return result;
}
};
- MessageConverter<StringMessage,ByteArrayMessage> STRING_TO_BYTE =
- new MessageConverter<StringMessage,ByteArrayMessage>() {
+ MessageEncoder<String,byte[]> STRING_TO_BYTE =
+ new MessageEncoder<String,byte[]>() {
- public ByteArrayMessage convert(ClientOptions options, StringMessage message) throws Exception {
- return new ByteArrayMessage(new ContentType(message.getContentType()), message.getContent().getBytes(options.getCharset()));
+ public ContentType getContentType(ClientOptions options, ContentType contentType) {
+ return ContentTypeUtil.addCharset(contentType, options.getCharset());
}
- };
-
- MessageConverter<ByteArrayMessage,StringMessage> BYTE_TO_STRING =
- new MessageConverter<ByteArrayMessage,StringMessage>() {
- public StringMessage convert(ClientOptions options, ByteArrayMessage message) throws Exception {
- ContentType contentType = message.getContentType();
- String charset = contentType.getParameter("charset");
- return new StringMessage(contentType.toString(), new String(message.getContent(), charset));
+ public byte[] encode(ClientOptions options, String message) throws Exception {
+ return message.getBytes(options.getCharset());
}
};
- U convert(ClientOptions options, T message) throws Exception;
+ ContentType getContentType(ClientOptions options, ContentType contentType);
+ U encode(ClientOptions options, T message) throws Exception;
}
Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/message/XMLMessage.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/message/XMLMessage.java?rev=688888&r1=688887&r2=688888&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/message/XMLMessage.java (original)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/message/XMLMessage.java Mon Aug 25 14:26:56 2008
@@ -19,6 +19,9 @@
package org.apache.synapse.transport.testkit.message;
+import javax.mail.internet.ContentType;
+import javax.mail.internet.ParseException;
+
import org.apache.axiom.om.OMAbstractFactory;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.soap.SOAP11Constants;
@@ -38,25 +41,23 @@
this.contentType = contentType;
}
- public String getContentType() {
- return contentType;
+ public ContentType getContentType() {
+ try {
+ return new ContentType(contentType);
+ } catch (ParseException ex) {
+ throw new Error(ex);
+ }
}
}
- private final String contentType;
private final Type type;
private final OMElement payload;
- public XMLMessage(String contentType, OMElement payload, Type type) {
- this.contentType = contentType;
+ public XMLMessage(OMElement payload, Type type) {
this.payload = payload;
this.type = type;
}
- public String getContentType() {
- return contentType;
- }
-
public Type getType() {
return type;
}
Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/server/AsyncEndpoint.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/server/AsyncEndpoint.java?rev=688888&r1=688887&r2=688888&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/server/AsyncEndpoint.java (original)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/server/AsyncEndpoint.java Mon Aug 25 14:26:56 2008
@@ -19,6 +19,8 @@
package org.apache.synapse.transport.testkit.server;
+import org.apache.synapse.transport.testkit.message.IncomingMessage;
+
public interface AsyncEndpoint<M> extends Endpoint {
- M waitForMessage(int timeout) throws Throwable;
+ IncomingMessage<M> waitForMessage(int timeout) throws Throwable;
}
Copied: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/server/AsyncEndpointAdapter.java (from r688412, synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/server/AsyncEndpointFactoryAdapter.java)
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/server/AsyncEndpointAdapter.java?p2=synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/server/AsyncEndpointAdapter.java&p1=synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/server/AsyncEndpointFactoryAdapter.java&r1=688412&r2=688888&rev=688888&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/server/AsyncEndpointFactoryAdapter.java (original)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/server/AsyncEndpointAdapter.java Mon Aug 25 14:26:56 2008
@@ -19,34 +19,33 @@
package org.apache.synapse.transport.testkit.server;
+import javax.mail.internet.ContentType;
+
import org.apache.synapse.transport.testkit.Adapter;
-import org.apache.synapse.transport.testkit.message.MessageConverter;
+import org.apache.synapse.transport.testkit.message.IncomingMessage;
+import org.apache.synapse.transport.testkit.message.MessageDecoder;
-public class AsyncEndpointFactoryAdapter<M,N> implements AsyncEndpointFactory<M>, Adapter {
- private final AsyncEndpointFactory<N> targetFactory;
- private final MessageConverter<N,M> converter;
+public class AsyncEndpointAdapter<M,N> implements AsyncEndpoint<M>, Adapter {
+ private final AsyncEndpoint<N> target;
+ private final MessageDecoder<N,M> decoder;
- public AsyncEndpointFactoryAdapter(AsyncEndpointFactory<N> targetFactory, MessageConverter<N,M> converter) {
- this.targetFactory = targetFactory;
- this.converter = converter;
+ public AsyncEndpointAdapter(AsyncEndpoint<N> target, MessageDecoder<N,M> decoder) {
+ this.target = target;
+ this.decoder = decoder;
}
- public AsyncEndpointFactory<N> getTarget() {
- return targetFactory;
+ public AsyncEndpoint<N> getTarget() {
+ return target;
}
- public AsyncEndpoint<M> createAsyncEndpoint(String contentType) throws Exception {
- final AsyncEndpoint<N> targetEndpoint = targetFactory.createAsyncEndpoint(contentType);
- final MessageConverter<N,M> converter = this.converter;
- return new AsyncEndpoint<M>() {
- public M waitForMessage(int timeout) throws Throwable {
- N message = targetEndpoint.waitForMessage(timeout);
- return message == null ? null : converter.convert(null, message);
- }
-
- public void remove() throws Exception {
- targetEndpoint.remove();
- }
- };
+ public IncomingMessage<M> waitForMessage(int timeout) throws Throwable {
+ IncomingMessage<N> message = target.waitForMessage(timeout);
+ if (message == null) {
+ return null;
+ } else {
+ ContentType contentType = message.getContentType();
+ return new IncomingMessage<M>(contentType,
+ decoder.decode(contentType, message.getData()));
+ }
}
}
Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/server/Endpoint.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/server/Endpoint.java?rev=688888&r1=688887&r2=688888&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/server/Endpoint.java (original)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/server/Endpoint.java Mon Aug 25 14:26:56 2008
@@ -19,6 +19,8 @@
package org.apache.synapse.transport.testkit.server;
+import org.apache.synapse.transport.testkit.name.Key;
+
+@Key("endpoint")
public interface Endpoint {
- void remove() throws Exception;
}
Copied: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/server/axis2/AxisAsyncEndpoint.java (from r688412, synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/server/axis2/AxisAsyncEndpointFactory.java)
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/server/axis2/AxisAsyncEndpoint.java?p2=synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/server/axis2/AxisAsyncEndpoint.java&p1=synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/server/axis2/AxisAsyncEndpointFactory.java&r1=688412&r2=688888&rev=688888&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/server/axis2/AxisAsyncEndpointFactory.java (original)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/server/axis2/AxisAsyncEndpoint.java Mon Aug 25 14:26:56 2008
@@ -19,30 +19,62 @@
package org.apache.synapse.transport.testkit.server.axis2;
+import java.util.concurrent.BlockingQueue;
+import java.util.concurrent.LinkedBlockingQueue;
+import java.util.concurrent.TimeUnit;
+
+import org.apache.axis2.AxisFault;
+import org.apache.axis2.context.MessageContext;
import org.apache.axis2.description.AxisOperation;
-import org.apache.axis2.description.AxisService;
import org.apache.axis2.description.InOnlyAxisOperation;
-import org.apache.synapse.transport.testkit.listener.AsyncChannel;
+import org.apache.axis2.engine.MessageReceiver;
import org.apache.synapse.transport.testkit.message.AxisMessage;
+import org.apache.synapse.transport.testkit.message.IncomingMessage;
import org.apache.synapse.transport.testkit.server.AsyncEndpoint;
-import org.apache.synapse.transport.testkit.server.AsyncEndpointFactory;
-public class AxisAsyncEndpointFactory implements AsyncEndpointFactory<AxisMessage> {
- private AxisServer server;
- private AsyncChannel channel;
+public class AxisAsyncEndpoint extends AxisEndpoint implements AsyncEndpoint<AxisMessage>, MessageReceiver /*, TransportErrorListener*/ {
+ private interface Event {
+ IncomingMessage<AxisMessage> process() throws Throwable;
+ }
+
+ private BlockingQueue<Event> queue;
@SuppressWarnings("unused")
- private void setUp(AxisServer server, AsyncChannel channel) {
- this.server = server;
- this.channel = channel;
+ private void setUp() {
+ queue = new LinkedBlockingQueue<Event>();
}
- public AsyncEndpoint<AxisMessage> createAsyncEndpoint(String contentType) throws Exception {
+ @Override
+ protected AxisOperation createOperation() {
AxisOperation operation = new InOnlyAxisOperation(DefaultOperationDispatcher.DEFAULT_OPERATION_NAME);
- MockMessageReceiver messageReceiver = new MockMessageReceiver();
- operation.setMessageReceiver(messageReceiver);
- AxisService service = server.deployService(channel, operation, contentType);
-// server.addErrorListener(messageReceiver);
- return new AsyncEndpointImpl(server, service, messageReceiver);
+ operation.setMessageReceiver(this);
+ return operation;
+ }
+
+ public void receive(MessageContext messageCtx) throws AxisFault {
+ final AxisMessage messageData = new AxisMessage(messageCtx);
+ queue.add(new Event() {
+ public IncomingMessage<AxisMessage> process() throws Throwable {
+ return new IncomingMessage<AxisMessage>(null, messageData);
+ }
+ });
+ }
+
+// public void error(final TransportError error) {
+// queue.add(new Event() {
+// public MessageData process() throws Throwable {
+// throw error.getException();
+// }
+// });
+// }
+
+ public IncomingMessage<AxisMessage> waitForMessage(int timeout) throws Throwable {
+ Event event = queue.poll(timeout, TimeUnit.MILLISECONDS);
+ return event == null ? null : event.process();
+ }
+
+ @SuppressWarnings("unused")
+ private void tearDown() {
+ queue = null;
}
}
Copied: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/server/axis2/AxisEchoEndpoint.java (from r688412, synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/server/axis2/AxisEchoEndpointFactory.java)
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/server/axis2/AxisEchoEndpoint.java?p2=synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/server/axis2/AxisEchoEndpoint.java&p1=synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/server/axis2/AxisEchoEndpointFactory.java&r1=688412&r2=688888&rev=688888&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/server/axis2/AxisEchoEndpointFactory.java (original)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/server/axis2/AxisEchoEndpoint.java Mon Aug 25 14:26:56 2008
@@ -22,24 +22,12 @@
import org.apache.axis2.AxisFault;
import org.apache.axis2.context.MessageContext;
import org.apache.axis2.description.AxisOperation;
-import org.apache.axis2.description.AxisService;
import org.apache.axis2.description.InOutAxisOperation;
import org.apache.axis2.receivers.AbstractInOutMessageReceiver;
-import org.apache.synapse.transport.testkit.listener.RequestResponseChannel;
-import org.apache.synapse.transport.testkit.server.Endpoint;
-import org.apache.synapse.transport.testkit.server.EndpointFactory;
-public class AxisEchoEndpointFactory implements EndpointFactory {
- private AxisServer server;
- private RequestResponseChannel channel;
-
- @SuppressWarnings("unused")
- private void setUp(AxisServer server, RequestResponseChannel channel) {
- this.server = server;
- this.channel = channel;
- }
-
- public Endpoint createEchoEndpoint(String contentType) throws Exception {
+public class AxisEchoEndpoint extends AxisEndpoint {
+ @Override
+ protected AxisOperation createOperation() {
AxisOperation operation = new InOutAxisOperation(DefaultOperationDispatcher.DEFAULT_OPERATION_NAME);
operation.setMessageReceiver(new AbstractInOutMessageReceiver() {
@Override
@@ -47,7 +35,6 @@
outMessage.setEnvelope(inMessage.getEnvelope());
}
});
- AxisService service = server.deployService(channel, operation, contentType);
- return new EndpointImpl(server, service);
+ return operation;
}
}
Added: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/server/axis2/AxisEndpoint.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/server/axis2/AxisEndpoint.java?rev=688888&view=auto
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/server/axis2/AxisEndpoint.java (added)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/server/axis2/AxisEndpoint.java Mon Aug 25 14:26:56 2008
@@ -0,0 +1,64 @@
+/*
+ * 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.server.axis2;
+
+import java.net.URI;
+import java.util.UUID;
+
+import org.apache.axis2.description.AxisOperation;
+import org.apache.axis2.description.AxisService;
+import org.apache.synapse.transport.testkit.listener.Channel;
+import org.apache.synapse.transport.testkit.name.Name;
+import org.apache.synapse.transport.testkit.server.Endpoint;
+
+@Name("axis")
+public abstract class AxisEndpoint implements Endpoint {
+ private AxisServer server;
+ private AxisService service;
+
+ @SuppressWarnings("unused")
+ private void setUp(AxisServer server, Channel channel, AxisServiceConfigurator[] configurators) throws Exception {
+ this.server = server;
+ String path = new URI(channel.getEndpointReference().getAddress()).getPath();
+ String serviceName;
+ if (path != null && path.startsWith(Channel.CONTEXT_PATH + "/")) {
+ serviceName = path.substring(Channel.CONTEXT_PATH.length()+1);
+ } else {
+ serviceName = "TestService-" + UUID.randomUUID();
+ }
+ service = new AxisService(serviceName);
+ service.addOperation(createOperation());
+ if (configurators != null) {
+ for (AxisServiceConfigurator configurator : configurators) {
+ configurator.setupService(service);
+ }
+ }
+ server.getAxisConfiguration().addService(service);
+ }
+
+ @SuppressWarnings("unused")
+ private void tearDown() throws Exception {
+ server.getAxisConfiguration().removeService(service.getName());
+ server = null;
+ service = null;
+ }
+
+ protected abstract AxisOperation createOperation();
+}
Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/server/axis2/AxisServer.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/server/axis2/AxisServer.java?rev=688888&r1=688887&r2=688888&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/server/axis2/AxisServer.java (original)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/server/axis2/AxisServer.java Mon Aug 25 14:26:56 2008
@@ -19,27 +19,19 @@
package org.apache.synapse.transport.testkit.server.axis2;
-import java.net.URI;
import java.util.Iterator;
-import java.util.UUID;
import org.apache.axis2.AxisFault;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.context.ConfigurationContext;
-import org.apache.axis2.description.AxisOperation;
import org.apache.axis2.description.AxisService;
-import org.apache.axis2.description.InOnlyAxisOperation;
import org.apache.axis2.description.TransportInDescription;
import org.apache.axis2.description.TransportOutDescription;
import org.apache.axis2.engine.AxisConfiguration;
-import org.apache.axis2.engine.MessageReceiver;
import org.apache.axis2.engine.Phase;
import org.apache.axis2.transport.TransportListener;
import org.apache.synapse.transport.UtilsTransportServer;
-import org.apache.synapse.transport.testkit.TestEnvironment;
import org.apache.synapse.transport.testkit.TransportDescriptionFactory;
-import org.apache.synapse.transport.testkit.listener.Channel;
-import org.apache.synapse.transport.testkit.server.Endpoint;
import org.apache.synapse.transport.testkit.server.Server;
public class AxisServer implements Server {
@@ -47,13 +39,11 @@
private TransportListener listener;
private UtilsTransportServer server;
- private TestEnvironment env;
private AxisServer() {}
@SuppressWarnings("unused")
- private void setUp(TestEnvironment env, TransportDescriptionFactory tdf) throws Exception {
- this.env = env;
+ private void setUp(TransportDescriptionFactory tdf) throws Exception {
server = new UtilsTransportServer();
@@ -93,37 +83,12 @@
server.stop();
listener = null;
server = null;
- env = null;
}
public AxisConfiguration getAxisConfiguration() {
return server.getAxisConfiguration();
}
- public AxisService deployService(Channel channel, AxisOperation operation, String contentType) throws Exception {
- String path = new URI(channel.getEndpointReference().getAddress()).getPath();
- String serviceName;
- if (path != null && path.startsWith(Channel.CONTEXT_PATH + "/")) {
- serviceName = path.substring(Channel.CONTEXT_PATH.length()+1);
- } else {
- serviceName = "TestService-" + UUID.randomUUID();
- }
- AxisService service = new AxisService(serviceName);
- service.addOperation(operation);
- channel.setupService(service);
- if (contentType != null) {
- env.setupContentType(service, contentType);
- }
- server.getAxisConfiguration().addService(service);
- return service;
- }
-
- public Endpoint createAsyncEndpoint(Channel channel, MessageReceiver messageReceiver, String contentType) throws Exception {
- AxisOperation operation = new InOnlyAxisOperation(DefaultOperationDispatcher.DEFAULT_OPERATION_NAME);
- operation.setMessageReceiver(messageReceiver);
- return new EndpointImpl(this, deployService(channel, operation, contentType));
- }
-
public String getEPR(AxisService service) throws AxisFault {
EndpointReference[] endpointReferences =
listener.getEPRsForService(service.getName(), "localhost");
Added: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/server/axis2/AxisServiceConfigurator.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/server/axis2/AxisServiceConfigurator.java?rev=688888&view=auto
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/server/axis2/AxisServiceConfigurator.java (added)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/server/axis2/AxisServiceConfigurator.java Mon Aug 25 14:26:56 2008
@@ -0,0 +1,37 @@
+/*
+ * 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.server.axis2;
+
+
+import org.apache.axis2.description.AxisService;
+import org.apache.axis2.description.Parameter;
+
+public interface AxisServiceConfigurator {
+ /**
+ * Set up the service so that it can receive messages through the transport under test.
+ * Implementations will typically call {@link AxisService#addParameter(Parameter)} to
+ * setup the service parameters required by the transport.
+ * The default implementation does nothing.
+ *
+ * @param service
+ * @throws Exception
+ */
+ void setupService(AxisService service) throws Exception;
+}
Added: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/server/axis2/ContentTypeServiceConfigurator.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/server/axis2/ContentTypeServiceConfigurator.java?rev=688888&view=auto
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/server/axis2/ContentTypeServiceConfigurator.java (added)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/server/axis2/ContentTypeServiceConfigurator.java Mon Aug 25 14:26:56 2008
@@ -0,0 +1,44 @@
+/*
+ * 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.server.axis2;
+
+import javax.mail.internet.ContentType;
+
+import org.apache.axis2.description.AxisService;
+import org.apache.synapse.transport.testkit.client.ClientOptions;
+import org.apache.synapse.transport.testkit.client.TestClient;
+
+public class ContentTypeServiceConfigurator implements AxisServiceConfigurator {
+ private final String parameterName;
+ private ContentType contentType;
+
+ public ContentTypeServiceConfigurator(String parameterName) {
+ this.parameterName = parameterName;
+ }
+
+ @SuppressWarnings("unused")
+ private void setUp(TestClient client, ClientOptions options) {
+ contentType = client.getContentType(options, options.getBaseContentType());
+ }
+
+ public void setupService(AxisService service) throws Exception {
+ service.addParameter(parameterName, contentType.toString());
+ }
+}
Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/MessageTestCase.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/MessageTestCase.java?rev=688888&r1=688887&r2=688888&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/MessageTestCase.java (original)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/MessageTestCase.java Mon Aug 25 14:26:56 2008
@@ -19,21 +19,16 @@
package org.apache.synapse.transport.testkit.tests;
-import org.apache.synapse.transport.testkit.listener.ContentTypeMode;
-import org.apache.synapse.transport.testkit.name.Key;
+import javax.mail.internet.ContentType;
+
+import org.apache.synapse.transport.testkit.client.ClientOptions;
public class MessageTestCase extends TransportTestCase {
- protected final ContentTypeMode contentTypeMode;
- protected final String contentType;
+ protected final ClientOptions options;
- public MessageTestCase(ContentTypeMode contentTypeMode, String contentType, Object... resources) {
+ public MessageTestCase(ContentType contentType, String charset, Object... resources) {
super(resources);
- this.contentTypeMode = contentTypeMode;
- this.contentType = contentType;
- }
-
- @Key("contentTypeMode")
- public ContentTypeMode getContentTypeMode() {
- return contentTypeMode;
+ options = new ClientOptions(contentType, charset);
+ addResource(options);
}
}
Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/TestResource.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/TestResource.java?rev=688888&r1=688887&r2=688888&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/TestResource.java (original)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/TestResource.java Mon Aug 25 14:26:56 2008
@@ -19,6 +19,7 @@
package org.apache.synapse.transport.testkit.tests;
+import java.lang.reflect.Array;
import java.lang.reflect.Method;
import java.lang.reflect.Type;
import java.util.HashSet;
@@ -89,18 +90,30 @@
throw new Error("Generic parameters not supported in " + method);
}
Class<?> parameterClass = (Class<?>)parameterType;
- TestResource[] resources = resourceSet.findResources(parameterClass, true);
- if (resources.length == 0) {
- throw new Error(target.getClass().getName() + " depends on " +
- parameterClass.getName() + ", but none found");
- } else if (resources.length > 1) {
- throw new Error(target.getClass().getName() + " depends on " +
- parameterClass.getName() + ", but multiple candidates found");
-
+ if (parameterClass.isArray()) {
+ Class<?> componentType = parameterClass.getComponentType();
+ TestResource[] resources = resourceSet.findResources(componentType, true);
+ Object[] arg = (Object[])Array.newInstance(componentType, resources.length);
+ for (int j=0; j<resources.length; j++) {
+ TestResource resource = resources[j];
+ directDependencies.add(resource);
+ arg[j] = resource.getInstance();
+ }
+ args[i] = arg;
+ } else {
+ TestResource[] resources = resourceSet.findResources(parameterClass, true);
+ if (resources.length == 0) {
+ throw new Error(target.getClass().getName() + " depends on " +
+ parameterClass.getName() + ", but none found");
+ } else if (resources.length > 1) {
+ throw new Error(target.getClass().getName() + " depends on " +
+ parameterClass.getName() + ", but multiple candidates found");
+
+ }
+ TestResource resource = resources[0];
+ directDependencies.add(resource);
+ args[i] = resource.getInstance();
}
- TestResource resource = resources[0];
- directDependencies.add(resource);
- args[i] = resource.getInstance();
}
method.setAccessible(true);
initializers.addFirst(new Initializer(method, target, args));
@@ -120,6 +133,10 @@
return target;
}
+ public boolean hasLifecycle() {
+ return !(initializers.isEmpty() && finalizers.isEmpty());
+ }
+
public void setUp() throws Exception {
for (Initializer initializer : initializers) {
initializer.execute();
@@ -147,15 +164,12 @@
@Override
public String toString() {
- String result = getShortName(instance.getClass());
- if (target != instance) {
- result += "(" + getShortName(target.getClass()) + ")";
+ Class<?> clazz = target.getClass();
+ String simpleName = clazz.getSimpleName();
+ if (simpleName.length() > 0) {
+ return simpleName;
+ } else {
+ return "<anonymous " + clazz.getSuperclass().getSimpleName() + ">";
}
- return result;
- }
-
- private static String getShortName(Class<?> clazz) {
- String name = clazz.getName();
- return name.substring(name.lastIndexOf('.')+1);
}
}
Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/TestResourceSet.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/TestResourceSet.java?rev=688888&r1=688887&r2=688888&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/TestResourceSet.java (original)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/TestResourceSet.java Mon Aug 25 14:26:56 2008
@@ -20,6 +20,7 @@
package org.apache.synapse.transport.testkit.tests;
import java.lang.reflect.Field;
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
@@ -132,7 +133,18 @@
status = Status.SETUP;
}
+ private static List<TestResource> filterOnHasLifecycle(List<TestResource> resources) {
+ List<TestResource> result = new ArrayList<TestResource>(resources.size());
+ for (TestResource resource : resources) {
+ if (resource.hasLifecycle()) {
+ result.add(resource);
+ }
+ }
+ return result;
+ }
+
private static void setUp(List<TestResource> resources) throws Exception {
+ resources = filterOnHasLifecycle(resources);
if (!resources.isEmpty()) {
log.info("Setting up: " + resources);
for (TestResource resource : resources) {
@@ -197,6 +209,7 @@
}
private static void tearDown(List<TestResource> resources) throws Exception {
+ resources = filterOnHasLifecycle(resources);
if (!resources.isEmpty()) {
log.info("Tearing down: " + resources);
for (ListIterator<TestResource> it = resources.listIterator(resources.size()); it.hasPrevious(); ) {
Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/AsyncMessageTestCase.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/AsyncMessageTestCase.java?rev=688888&r1=688887&r2=688888&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/AsyncMessageTestCase.java (original)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/AsyncMessageTestCase.java Mon Aug 25 14:26:56 2008
@@ -19,49 +19,38 @@
package org.apache.synapse.transport.testkit.tests.async;
+import javax.mail.internet.ContentType;
+
import org.apache.synapse.transport.testkit.client.AsyncTestClient;
-import org.apache.synapse.transport.testkit.client.ClientOptions;
import org.apache.synapse.transport.testkit.listener.AsyncChannel;
-import org.apache.synapse.transport.testkit.listener.ContentTypeMode;
import org.apache.synapse.transport.testkit.server.AsyncEndpoint;
-import org.apache.synapse.transport.testkit.server.AsyncEndpointFactory;
import org.apache.synapse.transport.testkit.tests.MessageTestCase;
public abstract class AsyncMessageTestCase<M,N> extends MessageTestCase {
private final AsyncTestClient<M> client;
- private final String charset;
- private final AsyncEndpointFactory<N> endpointFactory;
+ private final AsyncEndpoint<N> endpoint;
// 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);
+ public AsyncMessageTestCase(AsyncChannel channel, AsyncTestClient<M> client, AsyncEndpoint<N> endpoint, ContentType contentType, String charset, Object... resources) {
+ super(contentType, charset, resources);
this.client = client;
- this.endpointFactory = endpointFactory;
- this.charset = charset;
+ this.endpoint = endpoint;
addResource(channel);
addResource(client);
- addResource(endpointFactory);
+ addResource(endpoint);
}
@Override
protected void runTest() throws Throwable {
- AsyncEndpoint<N> endpoint = endpointFactory.createAsyncEndpoint(contentTypeMode == ContentTypeMode.SERVICE ? contentType : null);
-
M message = prepareMessage();
// Run the test.
N messageData;
- try {
- ClientOptions options = new ClientOptions(charset);
// contentTypeMode == ContentTypeMode.TRANSPORT ? contentType : null);
- client.sendMessage(options, message);
- messageData = endpoint.waitForMessage(8000);
- if (messageData == null) {
- fail("Failed to get message");
- }
- }
- finally {
- endpoint.remove();
+ client.sendMessage(options, options.getBaseContentType(), message);
+ messageData = endpoint.waitForMessage(8000).getData();
+ if (messageData == null) {
+ fail("Failed to get message");
}
checkMessageData(message, messageData);
Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/BinaryTestCase.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/BinaryTestCase.java?rev=688888&r1=688887&r2=688888&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/BinaryTestCase.java (original)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/BinaryTestCase.java Mon Aug 25 14:26:56 2008
@@ -26,28 +26,26 @@
import org.apache.synapse.transport.testkit.client.AsyncTestClient;
import org.apache.synapse.transport.testkit.listener.AsyncChannel;
-import org.apache.synapse.transport.testkit.listener.ContentTypeMode;
-import org.apache.synapse.transport.testkit.message.ByteArrayMessage;
import org.apache.synapse.transport.testkit.name.Name;
-import org.apache.synapse.transport.testkit.server.AsyncEndpointFactory;
+import org.apache.synapse.transport.testkit.server.AsyncEndpoint;
@Name("AsyncBinary")
-public class BinaryTestCase extends AsyncMessageTestCase<ByteArrayMessage,ByteArrayMessage> {
+public class BinaryTestCase extends AsyncMessageTestCase<byte[],byte[]> {
private static final Random random = new Random();
- public BinaryTestCase(AsyncChannel channel, AsyncTestClient<ByteArrayMessage> client, AsyncEndpointFactory<ByteArrayMessage> endpointFactory, ContentTypeMode contentTypeMode, Object... resources) {
- super(channel, client, endpointFactory, contentTypeMode, "application/octet-stream", null, resources);
+ public BinaryTestCase(AsyncChannel channel, AsyncTestClient<byte[]> client, AsyncEndpoint<byte[]> endpoint, Object... resources) {
+ super(channel, client, endpoint, new ContentType("application", "octet-stream", null), null, resources);
}
@Override
- protected ByteArrayMessage prepareMessage() throws Exception {
+ protected byte[] prepareMessage() throws Exception {
byte[] content = new byte[8192];
random.nextBytes(content);
- return new ByteArrayMessage(new ContentType("application", "octet-stream", null), content);
+ return content;
}
@Override
- protected void checkMessageData(ByteArrayMessage message, ByteArrayMessage messageData) throws Exception {
- assertTrue(Arrays.equals(message.getContent(), messageData.getContent()));
+ protected void checkMessageData(byte[] message, byte[] messageData) throws Exception {
+ assertTrue(Arrays.equals(message, messageData));
}
}
Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/RESTTestCase.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/RESTTestCase.java?rev=688888&r1=688887&r2=688888&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/RESTTestCase.java (original)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/RESTTestCase.java Mon Aug 25 14:26:56 2008
@@ -27,19 +27,18 @@
import org.apache.axiom.om.OMElement;
import org.apache.synapse.transport.testkit.client.AsyncTestClient;
import org.apache.synapse.transport.testkit.listener.AsyncChannel;
-import org.apache.synapse.transport.testkit.listener.ContentTypeMode;
import org.apache.synapse.transport.testkit.message.AxisMessage;
import org.apache.synapse.transport.testkit.message.RESTMessage;
import org.apache.synapse.transport.testkit.message.RESTMessage.Parameter;
import org.apache.synapse.transport.testkit.name.Name;
-import org.apache.synapse.transport.testkit.server.AsyncEndpointFactory;
+import org.apache.synapse.transport.testkit.server.AsyncEndpoint;
@Name("REST")
public class RESTTestCase extends AsyncMessageTestCase<RESTMessage,AxisMessage> {
private final RESTMessage message;
- public RESTTestCase(AsyncChannel channel, AsyncTestClient<RESTMessage> client, AsyncEndpointFactory<AxisMessage> endpointFactory, RESTMessage message, Object... resources) {
- super(channel, client, endpointFactory, ContentTypeMode.TRANSPORT, null, null, resources);
+ public RESTTestCase(AsyncChannel channel, AsyncTestClient<RESTMessage> client, AsyncEndpoint<AxisMessage> endpoint, RESTMessage message, Object... resources) {
+ super(channel, client, endpoint, null, null, resources);
this.message = message;
}
Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/SwATestCase.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/SwATestCase.java?rev=688888&r1=688887&r2=688888&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/SwATestCase.java (original)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/SwATestCase.java Mon Aug 25 14:26:56 2008
@@ -25,7 +25,6 @@
import java.util.Random;
import javax.activation.DataHandler;
-import javax.mail.internet.ContentType;
import javax.xml.namespace.QName;
import org.apache.axiom.attachments.Attachments;
@@ -35,27 +34,24 @@
import org.apache.axiom.om.OMOutputFormat;
import org.apache.axiom.om.impl.MIMEOutputUtils;
import org.apache.axiom.om.util.UUIDGenerator;
-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.synapse.transport.testkit.client.AsyncTestClient;
import org.apache.synapse.transport.testkit.listener.AsyncChannel;
-import org.apache.synapse.transport.testkit.listener.ContentTypeMode;
import org.apache.synapse.transport.testkit.message.AxisMessage;
-import org.apache.synapse.transport.testkit.message.ByteArrayMessage;
import org.apache.synapse.transport.testkit.name.Name;
-import org.apache.synapse.transport.testkit.server.AsyncEndpointFactory;
+import org.apache.synapse.transport.testkit.server.AsyncEndpoint;
@Name("AsyncSwA")
-public class SwATestCase extends AsyncMessageTestCase<ByteArrayMessage,AxisMessage> {
+public class SwATestCase extends AsyncMessageTestCase<byte[],AxisMessage> {
private static final Random random = new Random();
private byte[] attachmentContent;
private String contentID;
- public SwATestCase(AsyncChannel channel, AsyncTestClient<ByteArrayMessage> client, AsyncEndpointFactory<AxisMessage> endpointFactory, Object... resources) {
- super(channel, client, endpointFactory, ContentTypeMode.TRANSPORT, null, null, resources);
+ public SwATestCase(AsyncChannel channel, AsyncTestClient<byte[]> client, AsyncEndpoint<AxisMessage> endpoint, Object... resources) {
+ super(channel, client, endpoint, null, null, resources);
}
@Override
@@ -67,7 +63,7 @@
}
@Override
- protected ByteArrayMessage prepareMessage() throws Exception {
+ protected byte[] prepareMessage() throws Exception {
SOAPFactory factory = OMAbstractFactory.getSOAP12Factory();
SOAPEnvelope orgEnvelope = factory.createSOAPEnvelope();
SOAPBody orgBody = factory.createSOAPBody();
@@ -83,11 +79,12 @@
orgAttachments.addDataHandler(contentID, new DataHandler(new ByteArrayDataSource(attachmentContent, "application/octet-stream")));
ByteArrayOutputStream baos = new ByteArrayOutputStream();
MIMEOutputUtils.writeSOAPWithAttachmentsMessage(writer, baos, orgAttachments, outputFormat);
- return new ByteArrayMessage(new ContentType(outputFormat.getContentTypeForSwA(SOAP12Constants.SOAP_12_CONTENT_TYPE)), baos.toByteArray());
+// return new ByteArrayMessage(new ContentType(outputFormat.getContentTypeForSwA(SOAP12Constants.SOAP_12_CONTENT_TYPE)), baos.toByteArray());
+ return baos.toByteArray();
}
@Override
- protected void checkMessageData(ByteArrayMessage message, AxisMessage messageData) throws Exception {
+ protected void checkMessageData(byte[] message, AxisMessage messageData) throws Exception {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
Attachments attachments = messageData.getAttachments();
DataHandler dataHandler = attachments.getDataHandler(contentID);
Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/TextPlainTestCase.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/TextPlainTestCase.java?rev=688888&r1=688887&r2=688888&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/TextPlainTestCase.java (original)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/TextPlainTestCase.java Mon Aug 25 14:26:56 2008
@@ -19,21 +19,21 @@
package org.apache.synapse.transport.testkit.tests.async;
+import javax.mail.internet.ContentType;
+
import org.apache.synapse.transport.testkit.client.AsyncTestClient;
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.message.StringMessage;
import org.apache.synapse.transport.testkit.name.Name;
import org.apache.synapse.transport.testkit.name.Named;
-import org.apache.synapse.transport.testkit.server.AsyncEndpointFactory;
+import org.apache.synapse.transport.testkit.server.AsyncEndpoint;
@Name("AsyncTextPlain")
-public class TextPlainTestCase extends AsyncMessageTestCase<StringMessage,StringMessage> {
+public class TextPlainTestCase extends AsyncMessageTestCase<String,String> {
private final MessageTestData data;
- public TextPlainTestCase(AsyncChannel channel, AsyncTestClient<StringMessage> client, AsyncEndpointFactory<StringMessage> endpointFactory, ContentTypeMode contentTypeMode, MessageTestData data, Object... resources) {
- super(channel, client, endpointFactory, contentTypeMode, "text/plain; charset=\"" + data.getCharset() + "\"", data.getCharset(), resources);
+ public TextPlainTestCase(AsyncChannel channel, AsyncTestClient<String> client, AsyncEndpoint<String> endpoint, MessageTestData data, Object... resources) {
+ super(channel, client, endpoint, new ContentType("text", "plain", null), data.getCharset(), resources);
this.data = data;
}
@@ -43,15 +43,15 @@
}
@Override
- protected StringMessage prepareMessage() throws Exception {
- return new StringMessage(contentType, data.getText());
+ protected String prepareMessage() throws Exception {
+ return data.getText();
}
@Override
- protected void checkMessageData(StringMessage message, StringMessage messageData) throws Exception {
+ protected void checkMessageData(String message, String messageData) throws Exception {
// Some transport protocols add a newline at the end of the payload. Therefore trim the
// strings before comparison.
// TODO: investigate this a bit further
- assertEquals(message.getContent().trim(), messageData.getContent().trim());
+ assertEquals(message.trim(), messageData.trim());
}
}
Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/XMLAsyncMessageTestCase.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/XMLAsyncMessageTestCase.java?rev=688888&r1=688887&r2=688888&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/XMLAsyncMessageTestCase.java (original)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/XMLAsyncMessageTestCase.java Mon Aug 25 14:26:56 2008
@@ -27,22 +27,21 @@
import org.apache.axiom.soap.SOAPEnvelope;
import org.apache.synapse.transport.testkit.client.AsyncTestClient;
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.message.AxisMessage;
import org.apache.synapse.transport.testkit.message.XMLMessage;
import org.apache.synapse.transport.testkit.name.Key;
import org.apache.synapse.transport.testkit.name.Name;
import org.apache.synapse.transport.testkit.name.Named;
-import org.apache.synapse.transport.testkit.server.AsyncEndpointFactory;
+import org.apache.synapse.transport.testkit.server.AsyncEndpoint;
@Name("AsyncXML")
public class XMLAsyncMessageTestCase extends AsyncMessageTestCase<XMLMessage,AxisMessage> {
private final XMLMessage.Type xmlMessageType;
private final MessageTestData data;
- public XMLAsyncMessageTestCase(AsyncChannel channel, AsyncTestClient<XMLMessage> client, AsyncEndpointFactory<AxisMessage> endpointFactory, XMLMessage.Type xmlMessageType, ContentTypeMode contentTypeMode, String baseContentType, MessageTestData data, Object... resources) {
- super(channel, client, endpointFactory, contentTypeMode, baseContentType + "; charset=\"" + data.getCharset() + "\"", data.getCharset(), resources);
+ public XMLAsyncMessageTestCase(AsyncChannel channel, AsyncTestClient<XMLMessage> client, AsyncEndpoint<AxisMessage> endpoint, XMLMessage.Type xmlMessageType, MessageTestData data, Object... resources) {
+ super(channel, client, endpoint, xmlMessageType.getContentType(), data.getCharset(), resources);
this.xmlMessageType = xmlMessageType;
this.data = data;
}
@@ -62,7 +61,7 @@
OMFactory factory = OMAbstractFactory.getOMFactory();
OMElement orgElement = factory.createOMElement(new QName("root"));
orgElement.setText(data.getText());
- return new XMLMessage(contentType, orgElement, xmlMessageType);
+ return new XMLMessage(orgElement, xmlMessageType);
}
@Override
Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/echo/RequestResponseMessageTestCase.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/echo/RequestResponseMessageTestCase.java?rev=688888&r1=688887&r2=688888&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/echo/RequestResponseMessageTestCase.java (original)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/echo/RequestResponseMessageTestCase.java Mon Aug 25 14:26:56 2008
@@ -19,40 +19,29 @@
package org.apache.synapse.transport.testkit.tests.echo;
-import org.apache.synapse.transport.testkit.client.ClientOptions;
+import javax.mail.internet.ContentType;
+
import org.apache.synapse.transport.testkit.client.RequestResponseTestClient;
-import org.apache.synapse.transport.testkit.listener.ContentTypeMode;
import org.apache.synapse.transport.testkit.listener.RequestResponseChannel;
import org.apache.synapse.transport.testkit.server.Endpoint;
-import org.apache.synapse.transport.testkit.server.EndpointFactory;
import org.apache.synapse.transport.testkit.tests.MessageTestCase;
public abstract class RequestResponseMessageTestCase<M,N> extends MessageTestCase {
private final RequestResponseTestClient<M,N> client;
- private final String charset;
- private final EndpointFactory endpointFactory;
// TODO: maybe we don't need an explicit RequestResponseChannel
- public RequestResponseMessageTestCase(RequestResponseChannel channel, RequestResponseTestClient<M,N> client, EndpointFactory endpointFactory, ContentTypeMode contentTypeMode, String contentType, String charset, Object... resources) {
- super(contentTypeMode, contentType, resources);
+ public RequestResponseMessageTestCase(RequestResponseChannel channel, RequestResponseTestClient<M,N> client, Endpoint endpoint, ContentType contentType, String charset, Object... resources) {
+ super(contentType, charset, resources);
this.client = client;
- this.endpointFactory = endpointFactory;
- this.charset = charset;
addResource(channel);
addResource(client);
- addResource(endpointFactory);
+ addResource(endpoint);
}
@Override
protected void runTest() throws Throwable {
- Endpoint endpoint = endpointFactory.createEchoEndpoint(contentTypeMode == ContentTypeMode.SERVICE ? contentType : null);
M request = prepareRequest();
- N response;
- try {
- response = client.sendMessage(new ClientOptions(charset), request);
- } finally {
- endpoint.remove();
- }
+ N response = client.sendMessage(options, options.getBaseContentType(), request).getData();
checkResponse(request, response);
}
Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/echo/XMLRequestResponseMessageTestCase.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/echo/XMLRequestResponseMessageTestCase.java?rev=688888&r1=688887&r2=688888&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/echo/XMLRequestResponseMessageTestCase.java (original)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/echo/XMLRequestResponseMessageTestCase.java Mon Aug 25 14:26:56 2008
@@ -25,23 +25,21 @@
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMFactory;
import org.apache.synapse.transport.testkit.client.RequestResponseTestClient;
-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.XMLMessage;
import org.apache.synapse.transport.testkit.name.Key;
import org.apache.synapse.transport.testkit.name.Name;
import org.apache.synapse.transport.testkit.name.Named;
-import org.apache.synapse.transport.testkit.server.EndpointFactory;
+import org.apache.synapse.transport.testkit.server.Endpoint;
@Name("EchoXML")
public class XMLRequestResponseMessageTestCase extends RequestResponseMessageTestCase<XMLMessage,XMLMessage> {
private final XMLMessage.Type xmlMessageType;
private final MessageTestData data;
- // TODO: realign order of arguments with XMLAsyncMessageTestCase constructor
- public XMLRequestResponseMessageTestCase(RequestResponseChannel channel, RequestResponseTestClient<XMLMessage,XMLMessage> client, EndpointFactory endpointFactory, ContentTypeMode contentTypeMode, String contentType, XMLMessage.Type xmlMessageType, MessageTestData data, Object... resources) {
- super(channel, client, endpointFactory, contentTypeMode, contentType, data.getCharset(), resources);
+ public XMLRequestResponseMessageTestCase(RequestResponseChannel channel, RequestResponseTestClient<XMLMessage,XMLMessage> client, Endpoint endpoint, XMLMessage.Type xmlMessageType, MessageTestData data, Object... resources) {
+ super(channel, client, endpoint, xmlMessageType.getContentType(), data.getCharset(), resources);
this.xmlMessageType = xmlMessageType;
this.data = data;
}
@@ -61,7 +59,7 @@
OMFactory factory = OMAbstractFactory.getOMFactory();
OMElement orgElement = factory.createOMElement(new QName("root"));
orgElement.setText(data.getText());
- return new XMLMessage(contentType, orgElement, xmlMessageType);
+ return new XMLMessage(orgElement, xmlMessageType);
}
@Override