From 4e804631b1686d51a159cfb829fadf8e4eb64788 Mon Sep 17 00:00:00 2001 From: Arjen Poutsma Date: Tue, 13 Nov 2007 17:00:51 +0000 Subject: [PATCH] Javadoc --- .../ws/transport/jms/JmsMessageSender.java | 23 +++++++++++++++++-- .../ws/transport/jms/JmsSenderConnection.java | 3 ++- .../transport/jms/JmsTransportException.java | 2 ++ .../jms/support/JmsTransportUtilsTest.java | 20 ++++++++-------- .../{jms => support}/EchoPayloadEndpoint.java | 2 +- .../transport/jms/jms-applicationContext.xml | 4 ++-- 6 files changed, 38 insertions(+), 16 deletions(-) rename support/src/test/java/org/springframework/ws/transport/{jms => support}/EchoPayloadEndpoint.java (94%) diff --git a/support/src/main/java/org/springframework/ws/transport/jms/JmsMessageSender.java b/support/src/main/java/org/springframework/ws/transport/jms/JmsMessageSender.java index eed92cbf..fc63d7d5 100644 --- a/support/src/main/java/org/springframework/ws/transport/jms/JmsMessageSender.java +++ b/support/src/main/java/org/springframework/ws/transport/jms/JmsMessageSender.java @@ -20,6 +20,7 @@ import java.io.IOException; import java.net.URI; import javax.jms.BytesMessage; import javax.jms.Connection; +import javax.jms.ConnectionFactory; import javax.jms.Destination; import javax.jms.JMSException; import javax.jms.MessageConsumer; @@ -37,7 +38,8 @@ import org.springframework.ws.transport.WebServiceMessageSender; import org.springframework.ws.transport.jms.support.JmsTransportUtils; /** - * {@link WebServiceMessageSender} implementation that uses JMS {@link BytesMessage}. + * {@link WebServiceMessageSender} implementation that uses JMS {@link BytesMessage}s. Requires a JMS {@link + * ConnectionFactory} to operate. *

* This message sender supports URI's of the following format:

jms:destination[?param-name=param-value][&param-name=param-value]* *
where the characters :, ?, and & stand for @@ -58,7 +60,7 @@ import org.springframework.ws.transport.jms.support.JmsTransportUtils; * Some examples of JMS URIs are: *

*

jms:SomeQueue
jms:SomeTopic?priority=3&deliveryMode=NON_PERSISTENT
- * jms:RequestQueue?replyToName=ResponseName
+ * jms:RequestQueue?replyToName=ResponseQueueName * * @author Arjen Poutsma * @see IRI Scheme for Java(tm) Message @@ -72,9 +74,26 @@ public class JmsMessageSender extends JmsDestinationAccessor implements WebServi private long receiveTimeout = DEFAULT_RECEIVE_TIMEOUT; + /** + * Create a new JmsMessageSender + *

+ * Note: The ConnectionFactory has to be set before using the instance. This constructor can be used to + * prepare a JmsTemplate via a BeanFactory, typically setting the ConnectionFactory via setConnectionFactory. + * + * @see #setConnectionFactory(ConnectionFactory) + */ public JmsMessageSender() { } + /** + * Create a new JmsMessageSender, given a ConnectionFactory. + * + * @param connectionFactory the ConnectionFactory to obtain Connections from + */ + public JmsMessageSender(ConnectionFactory connectionFactory) { + setConnectionFactory(connectionFactory); + } + /** * Set the timeout to use for receive calls. The default is -1, which means no timeout. * diff --git a/support/src/main/java/org/springframework/ws/transport/jms/JmsSenderConnection.java b/support/src/main/java/org/springframework/ws/transport/jms/JmsSenderConnection.java index 66aba84e..713bec42 100644 --- a/support/src/main/java/org/springframework/ws/transport/jms/JmsSenderConnection.java +++ b/support/src/main/java/org/springframework/ws/transport/jms/JmsSenderConnection.java @@ -40,7 +40,8 @@ import org.springframework.ws.transport.WebServiceConnection; import org.springframework.ws.transport.support.EnumerationIterator; /** - * Implementation of {@link WebServiceConnection} that is used for client-side JMS access. + * Implementation of {@link WebServiceConnection} that is used for client-side JMS access. Exposes a {@link + * BytesMessage} request and response message. * * @author Arjen Poutsma * @since 1.1.0 diff --git a/support/src/main/java/org/springframework/ws/transport/jms/JmsTransportException.java b/support/src/main/java/org/springframework/ws/transport/jms/JmsTransportException.java index 51ead6a4..62d1ab0e 100644 --- a/support/src/main/java/org/springframework/ws/transport/jms/JmsTransportException.java +++ b/support/src/main/java/org/springframework/ws/transport/jms/JmsTransportException.java @@ -32,11 +32,13 @@ public class JmsTransportException extends TransportException { public JmsTransportException(String msg, JMSException ex) { super(msg + ": " + ex.getMessage()); + initCause(ex); jmsException = ex; } public JmsTransportException(JMSException ex) { super(ex.getMessage()); + initCause(ex); jmsException = ex; } diff --git a/support/src/test/java/org/springframework/ws/transport/jms/support/JmsTransportUtilsTest.java b/support/src/test/java/org/springframework/ws/transport/jms/support/JmsTransportUtilsTest.java index 42ba9579..9f2ac769 100644 --- a/support/src/test/java/org/springframework/ws/transport/jms/support/JmsTransportUtilsTest.java +++ b/support/src/test/java/org/springframework/ws/transport/jms/support/JmsTransportUtilsTest.java @@ -24,6 +24,16 @@ import junit.framework.TestCase; public class JmsTransportUtilsTest extends TestCase { + public void testGetDestinationName() throws Exception { + URI uri = new URI("jms:RequestQueue?replyToName=RESP_QUEUE"); + String destinationName = JmsTransportUtils.getDestinationName(uri); + assertEquals("Invalid destination", "RequestQueue", destinationName); + + uri = new URI("jms:RequestQueue"); + destinationName = JmsTransportUtils.getDestinationName(uri); + assertEquals("Invalid destination", "RequestQueue", destinationName); + } + public void testGetDeliveryMode() throws Exception { URI uri = new URI("jms:RequestQueue?deliveryMode=NON_PERSISTENT"); int deliveryMode = JmsTransportUtils.getDeliveryMode(uri); @@ -67,14 +77,4 @@ public class JmsTransportUtilsTest extends TestCase { replyToName = JmsTransportUtils.getReplyToName(uri); assertNull("Invalid replyToName", replyToName); } - - public void testGetDestinationName() throws Exception { - URI uri = new URI("jms:RequestQueue?replyToName=RESP_QUEUE"); - String destinationName = JmsTransportUtils.getDestinationName(uri); - assertEquals("Invalid destination", "RequestQueue", destinationName); - - uri = new URI("jms:RequestQueue"); - destinationName = JmsTransportUtils.getDestinationName(uri); - assertEquals("Invalid destination", "RequestQueue", destinationName); - } } \ No newline at end of file diff --git a/support/src/test/java/org/springframework/ws/transport/jms/EchoPayloadEndpoint.java b/support/src/test/java/org/springframework/ws/transport/support/EchoPayloadEndpoint.java similarity index 94% rename from support/src/test/java/org/springframework/ws/transport/jms/EchoPayloadEndpoint.java rename to support/src/test/java/org/springframework/ws/transport/support/EchoPayloadEndpoint.java index 874258c8..a1754c84 100644 --- a/support/src/test/java/org/springframework/ws/transport/jms/EchoPayloadEndpoint.java +++ b/support/src/test/java/org/springframework/ws/transport/support/EchoPayloadEndpoint.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.ws.transport.jms; +package org.springframework.ws.transport.support; import javax.xml.transform.Source; diff --git a/support/src/test/resources/org/springframework/ws/transport/jms/jms-applicationContext.xml b/support/src/test/resources/org/springframework/ws/transport/jms/jms-applicationContext.xml index 7a561a18..a133ed53 100644 --- a/support/src/test/resources/org/springframework/ws/transport/jms/jms-applicationContext.xml +++ b/support/src/test/resources/org/springframework/ws/transport/jms/jms-applicationContext.xml @@ -1,6 +1,6 @@ + xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"> @@ -33,7 +33,7 @@ - +