From 1fe742addf9550ae389ebf554c337da604779144 Mon Sep 17 00:00:00 2001 From: Juergen Hoeller Date: Tue, 29 Jul 2014 16:22:47 +0200 Subject: [PATCH] MessagingExceptionTranslator lives in support subpackage now Issue: SPR-12038 --- .../jms/core/JmsMessagingTemplate.java | 19 ++++++++++--------- .../jms/core/JmsOperations.java | 3 +++ .../springframework/jms/core/JmsTemplate.java | 3 ++- .../JmsMessagingExceptionTranslator.java | 10 ++++------ .../JmsMessagingExceptionTranslatorTests.java | 3 ++- .../MessagingExceptionTranslator.java | 17 ++++++++++------- 6 files changed, 31 insertions(+), 24 deletions(-) rename spring-jms/src/main/java/org/springframework/jms/{core => support}/JmsMessagingExceptionTranslator.java (89%) rename spring-jms/src/test/java/org/springframework/jms/{core => support}/JmsMessagingExceptionTranslatorTests.java (95%) rename spring-messaging/src/main/java/org/springframework/messaging/{ => support}/MessagingExceptionTranslator.java (73%) diff --git a/spring-jms/src/main/java/org/springframework/jms/core/JmsMessagingTemplate.java b/spring-jms/src/main/java/org/springframework/jms/core/JmsMessagingTemplate.java index a1b42b7833..19648ab680 100644 --- a/spring-jms/src/main/java/org/springframework/jms/core/JmsMessagingTemplate.java +++ b/spring-jms/src/main/java/org/springframework/jms/core/JmsMessagingTemplate.java @@ -23,15 +23,16 @@ import javax.jms.Session; import org.springframework.beans.factory.InitializingBean; import org.springframework.jms.JmsException; +import org.springframework.jms.support.JmsMessagingExceptionTranslator; import org.springframework.jms.support.converter.MessageConverter; import org.springframework.jms.support.converter.MessagingMessageConverter; import org.springframework.jms.support.converter.SimpleMessageConverter; import org.springframework.messaging.Message; import org.springframework.messaging.MessagingException; -import org.springframework.messaging.MessagingExceptionTranslator; import org.springframework.messaging.converter.MessageConversionException; import org.springframework.messaging.core.AbstractMessagingTemplate; import org.springframework.messaging.core.MessagePostProcessor; +import org.springframework.messaging.support.MessagingExceptionTranslator; import org.springframework.util.Assert; /** @@ -230,14 +231,14 @@ public class JmsMessagingTemplate extends AbstractMessagingTemplate } @Override - public Message sendAndReceive(String destinationName, Message requestMessage) - throws MessagingException { + public Message sendAndReceive(String destinationName, Message requestMessage) throws MessagingException { return doSendAndReceive(destinationName, requestMessage); } @Override public T convertSendAndReceive(String destinationName, Object request, Class targetClass) throws MessagingException { + return convertSendAndReceive(destinationName, request, null, targetClass); } @@ -324,8 +325,8 @@ public class JmsMessagingTemplate extends AbstractMessagingTemplate @Override protected Message doSendAndReceive(Destination destination, Message requestMessage) { try { - javax.jms.Message jmsMessage = this.jmsTemplate - .sendAndReceive(destination, createMessageCreator(requestMessage)); + javax.jms.Message jmsMessage = this.jmsTemplate.sendAndReceive( + destination, createMessageCreator(requestMessage)); return doConvert(jmsMessage); } catch (JmsException ex) { @@ -335,8 +336,8 @@ public class JmsMessagingTemplate extends AbstractMessagingTemplate protected Message doSendAndReceive(String destinationName, Message requestMessage) { try { - javax.jms.Message jmsMessage = this.jmsTemplate - .sendAndReceive(destinationName, createMessageCreator(requestMessage)); + javax.jms.Message jmsMessage = this.jmsTemplate.sendAndReceive( + destinationName, createMessageCreator(requestMessage)); return doConvert(jmsMessage); } catch (JmsException ex) { @@ -396,10 +397,10 @@ public class JmsMessagingTemplate extends AbstractMessagingTemplate return this.messageConverter.toMessage(this.message, session); } catch (JMSException ex) { - throw new MessageConversionException("Could not convert '" + message + "'", ex); + throw new MessageConversionException("Could not convert '" + this.message + "'", ex); } catch (JmsException ex) { - throw new MessageConversionException("Could not convert '" + message + "'", ex); + throw new MessageConversionException("Could not convert '" + this.message + "'", ex); } } } diff --git a/spring-jms/src/main/java/org/springframework/jms/core/JmsOperations.java b/spring-jms/src/main/java/org/springframework/jms/core/JmsOperations.java index 35037ed92a..ba66ef695f 100644 --- a/spring-jms/src/main/java/org/springframework/jms/core/JmsOperations.java +++ b/spring-jms/src/main/java/org/springframework/jms/core/JmsOperations.java @@ -367,6 +367,7 @@ public interface JmsOperations { * @return the reply, possibly {@code null} if the message could not be received, * for example due to a timeout * @throws JmsException checked JMSException converted to unchecked + * @since 4.1 */ Message sendAndReceive(MessageCreator messageCreator) throws JmsException; @@ -380,6 +381,7 @@ public interface JmsOperations { * @return the reply, possibly {@code null} if the message could not be received, * for example due to a timeout * @throws JmsException checked JMSException converted to unchecked + * @since 4.1 */ Message sendAndReceive(Destination destination, MessageCreator messageCreator) throws JmsException; @@ -394,6 +396,7 @@ public interface JmsOperations { * @return the reply, possibly {@code null} if the message could not be received, * for example due to a timeout * @throws JmsException checked JMSException converted to unchecked + * @since 4.1 */ Message sendAndReceive(String destinationName, MessageCreator messageCreator) throws JmsException; diff --git a/spring-jms/src/main/java/org/springframework/jms/core/JmsTemplate.java b/spring-jms/src/main/java/org/springframework/jms/core/JmsTemplate.java index 571cca7ad2..d1d9caecee 100644 --- a/spring-jms/src/main/java/org/springframework/jms/core/JmsTemplate.java +++ b/spring-jms/src/main/java/org/springframework/jms/core/JmsTemplate.java @@ -936,6 +936,7 @@ public class JmsTemplate extends JmsDestinationAccessor implements JmsOperations */ protected Message doSendAndReceive(Session session, Destination destination, MessageCreator messageCreator) throws JMSException { + Assert.notNull(messageCreator, "MessageCreator must not be null"); TemporaryQueue responseQueue = null; MessageProducer producer = null; @@ -963,7 +964,7 @@ public class JmsTemplate extends JmsDestinationAccessor implements JmsOperations /** * A variant of {@link #execute(SessionCallback, boolean)} that explicitly - * creates a non transactional session. The given {@link SessionCallback} + * creates a non-transactional {@link Session}. The given {@link SessionCallback} * does not participate in an existing transaction. */ private T executeLocal(SessionCallback action, boolean startConnection) throws JmsException { diff --git a/spring-jms/src/main/java/org/springframework/jms/core/JmsMessagingExceptionTranslator.java b/spring-jms/src/main/java/org/springframework/jms/support/JmsMessagingExceptionTranslator.java similarity index 89% rename from spring-jms/src/main/java/org/springframework/jms/core/JmsMessagingExceptionTranslator.java rename to spring-jms/src/main/java/org/springframework/jms/support/JmsMessagingExceptionTranslator.java index 01e3f49662..d4052680af 100644 --- a/spring-jms/src/main/java/org/springframework/jms/core/JmsMessagingExceptionTranslator.java +++ b/spring-jms/src/main/java/org/springframework/jms/support/JmsMessagingExceptionTranslator.java @@ -14,14 +14,14 @@ * limitations under the License. */ -package org.springframework.jms.core; +package org.springframework.jms.support; import org.springframework.jms.InvalidDestinationException; import org.springframework.jms.JmsException; import org.springframework.jms.support.converter.MessageConversionException; import org.springframework.jms.support.destination.DestinationResolutionException; import org.springframework.messaging.MessagingException; -import org.springframework.messaging.MessagingExceptionTranslator; +import org.springframework.messaging.support.MessagingExceptionTranslator; /** * {@link MessagingExceptionTranslator} capable of translating {@link JmsException} @@ -41,16 +41,14 @@ public class JmsMessagingExceptionTranslator implements MessagingExceptionTransl } private MessagingException convertJmsException(JmsException ex) { - if (ex instanceof DestinationResolutionException || - ex instanceof InvalidDestinationException) { + if (ex instanceof DestinationResolutionException || ex instanceof InvalidDestinationException) { return new org.springframework.messaging.core.DestinationResolutionException(ex.getMessage(), ex); } if (ex instanceof MessageConversionException) { return new org.springframework.messaging.converter.MessageConversionException(ex.getMessage(), ex); } - - // Fallback return new MessagingException(ex.getMessage(), ex); } + } diff --git a/spring-jms/src/test/java/org/springframework/jms/core/JmsMessagingExceptionTranslatorTests.java b/spring-jms/src/test/java/org/springframework/jms/support/JmsMessagingExceptionTranslatorTests.java similarity index 95% rename from spring-jms/src/test/java/org/springframework/jms/core/JmsMessagingExceptionTranslatorTests.java rename to spring-jms/src/test/java/org/springframework/jms/support/JmsMessagingExceptionTranslatorTests.java index b9a71931a6..ee4335a5b2 100644 --- a/spring-jms/src/test/java/org/springframework/jms/core/JmsMessagingExceptionTranslatorTests.java +++ b/spring-jms/src/test/java/org/springframework/jms/support/JmsMessagingExceptionTranslatorTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.jms.core; +package org.springframework.jms.support; import org.junit.Test; @@ -31,4 +31,5 @@ public class JmsMessagingExceptionTranslatorTests { public void translateNonJmsException() { assertNull(translator.translateExceptionIfPossible(new NullPointerException())); } + } diff --git a/spring-messaging/src/main/java/org/springframework/messaging/MessagingExceptionTranslator.java b/spring-messaging/src/main/java/org/springframework/messaging/support/MessagingExceptionTranslator.java similarity index 73% rename from spring-messaging/src/main/java/org/springframework/messaging/MessagingExceptionTranslator.java rename to spring-messaging/src/main/java/org/springframework/messaging/support/MessagingExceptionTranslator.java index 0dc5fa026b..23d8152c50 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/MessagingExceptionTranslator.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/support/MessagingExceptionTranslator.java @@ -14,7 +14,9 @@ * limitations under the License. */ -package org.springframework.messaging; +package org.springframework.messaging.support; + +import org.springframework.messaging.MessagingException; /** * Interface implemented by Spring integrations with messaging technologies @@ -31,14 +33,15 @@ public interface MessagingExceptionTranslator { /** * Translate the given runtime exception thrown by a messaging implementation - * to a corresponding exception from Spring's generic {@link MessagingException} - * hierarchy, if possible. - *

Do not translate exceptions that are not understand by this translator: - * for example, if resulting from user code and unrelated to messaging. - * @param ex a RuntimeException thrown + * to a corresponding exception from Spring's generic + * {@link org.springframework.messaging.MessagingException} hierarchy, if possible. + *

Do not translate exceptions that are not understood by this translator: + * for example, if resulting from user code or otherwise unrelated to messaging. + * @param ex a RuntimeException to translate * @return the corresponding MessagingException (or {@code null} if the * exception could not be translated, as in this case it may result from - * user code rather than an actual messaging problem) + * user code rather than from an actual messaging problem) */ MessagingException translateExceptionIfPossible(RuntimeException ex); + }