From c4163c7475c2798786c94a6510a6ab197b5e30d3 Mon Sep 17 00:00:00 2001 From: Juergen Hoeller Date: Fri, 6 Dec 2013 18:24:33 +0100 Subject: [PATCH] Moved messaging.support.converter to messaging.converter; moved messaging.support.tcp to messaging.tcp; moved messaging.support.channel to messaging.support itself; moved handler.condition to handler itself; reworked handler.method into handler.support --- .../springframework/messaging/Message.java | 1 - .../messaging/MessageChannel.java | 9 ++-- .../messaging/MessageDeliveryException.java | 1 - .../messaging/MessageHandler.java | 1 - .../messaging/MessageHandlingException.java | 3 -- .../messaging/MessageHeaders.java | 23 ++++---- .../messaging/MessagingException.java | 6 +-- .../messaging/PollableChannel.java | 4 +- .../messaging/SubscribableChannel.java | 3 -- .../converter/AbstractMessageConverter.java | 3 +- .../converter/ByteArrayMessageConverter.java | 2 +- .../converter/CompositeMessageConverter.java | 2 +- .../converter/ContentTypeResolver.java | 2 +- .../converter/DefaultContentTypeResolver.java | 2 +- .../MappingJackson2MessageConverter.java | 2 +- .../converter/MessageConversionException.java | 2 +- .../converter/MessageConverter.java | 2 +- .../converter/SimpleMessageConverter.java | 4 +- .../converter/StringMessageConverter.java | 2 +- .../messaging/converter/package-info.java | 4 ++ ...DestinationResolvingMessagingTemplate.java | 8 ++- .../core/AbstractMessageSendingTemplate.java | 11 ++-- .../core/AbstractMessagingTemplate.java | 1 + ...toryMessageChannelDestinationResolver.java | 20 +++---- .../core/DestinationResolutionException.java | 12 ----- .../messaging/core/DestinationResolver.java | 2 - ...onResolvingMessageReceivingOperations.java | 4 +- ...esolvingMessageRequestReplyOperations.java | 25 ++++----- ...tionResolvingMessageSendingOperations.java | 15 ++---- .../core/GenericMessagingTemplate.java | 2 + .../messaging/core/MessagePostProcessor.java | 5 +- .../core/MessageReceivingOperations.java | 16 ++---- .../core/MessageRequestReplyOperations.java | 38 ++++++------- .../core/MessageSendingOperations.java | 21 +++----- .../AbstractMessageCondition.java | 12 ++--- .../DestinationPatternsMessageCondition.java | 12 ++--- .../handler/{method => }/HandlerMethod.java | 2 +- .../{method => }/HandlerMethodSelector.java | 2 +- .../{condition => }/MessageCondition.java | 2 +- .../handler/annotation/MessageMapping.java | 6 +-- .../handler/annotation/PathVariable.java | 2 +- .../messaging/handler/annotation/Payload.java | 2 +- .../handler/annotation/ValueConstants.java | 4 +- ...tractNamedValueMethodArgumentResolver.java | 2 +- ...otationExceptionHandlerMethodResolver.java | 4 +- .../HeadersMethodArgumentResolver.java | 2 +- .../MessageMethodArgumentResolver.java | 2 +- .../support/PayloadArgumentResolver.java | 4 +- .../messaging/handler/package-info.java | 4 ++ ...bstractExceptionHandlerMethodResolver.java | 2 +- .../AbstractMethodMessageHandler.java | 54 +++++++++++-------- .../HandlerMethodArgumentResolver.java | 2 +- ...andlerMethodArgumentResolverComposite.java | 2 +- .../HandlerMethodReturnValueHandler.java | 2 +- ...dlerMethodReturnValueHandlerComposite.java | 2 +- .../InvocableHandlerMethod.java | 7 +-- .../{method => support}/package-info.java | 2 +- .../messaging/simp/SimpMessagingTemplate.java | 1 + .../simp/annotation/package-info.java | 4 +- .../PrincipalMethodArgumentResolver.java | 2 +- .../SendToMethodReturnValueHandler.java | 2 +- .../SimpAnnotationMethodMessageHandler.java | 30 +++++------ .../SubscriptionMethodReturnValueHandler.java | 6 +-- .../simp/annotation/support/package-info.java | 5 ++ .../AbstractMessageBrokerConfiguration.java | 26 ++++++--- .../simp/config/ChannelRegistration.java | 4 +- .../handler/AbstractBrokerMessageHandler.java | 1 + .../simp/handler/SimpMessageMappingInfo.java | 8 +-- .../SimpMessageTypeMessageCondition.java | 2 +- .../UserDestinationMessageHandler.java | 7 ++- .../stomp/StompBrokerRelayMessageHandler.java | 17 +++--- .../messaging/simp/stomp/StompDecoder.java | 1 + .../{channel => }/AbstractMessageChannel.java | 9 ++-- .../AbstractSubscribableChannel.java | 20 +++---- .../{channel => }/ChannelInterceptor.java | 2 +- .../ChannelInterceptorAdapter.java | 8 +-- .../ChannelInterceptorChain.java | 2 +- .../ExecutorSubscribableChannel.java | 2 +- .../support/channel/package-info.java | 5 -- .../support/converter/package-info.java | 4 -- .../messaging/support/package-info.java | 5 +- .../messaging/support/tcp/package-info.java | 9 ---- .../tcp/FixedIntervalReconnectStrategy.java | 2 +- .../{support => }/tcp/ReconnectStrategy.java | 2 +- .../{support => }/tcp/TcpConnection.java | 2 +- .../tcp/TcpConnectionHandler.java | 2 +- .../{support => }/tcp/TcpOperations.java | 2 +- .../messaging/tcp/package-info.java | 9 ++++ ...tractPromiseToListenableFutureAdapter.java | 2 +- ...roughPromiseToListenableFutureAdapter.java | 2 +- .../reactor}/ReactorNettyTcpClient.java | 7 ++- .../reactor}/ReactorTcpConnection.java | 3 +- .../messaging/tcp/reactor/package-info.java | 4 ++ .../AbstractMessageConverterTests.java | 4 +- .../DefaultContentTypeResolverTests.java | 5 +- .../MappingJackson2MessageConverterTests.java | 4 +- .../StringMessageConverterTests.java | 4 +- ...nationResolvingMessagingTemplateTests.java | 19 ++++--- .../core/GenericMessagingTemplateTests.java | 24 +++++---- ...tinationPatternsMessageConditionTests.java | 9 ++-- .../HeaderMethodArgumentResolverTests.java | 1 + ...thVariableMethodArgumentResolverTests.java | 1 + .../support/PayloadArgumentResolverTests.java | 4 +- .../SendToMethodReturnValueHandlerTests.java | 2 +- ...criptionMethodReturnValueHandlerTests.java | 2 +- .../MessageBrokerConfigurationTests.java | 27 +++++----- ...mpAnnotationMethodMessageHandlerTests.java | 3 +- ...erRelayMessageHandlerIntegrationTests.java | 11 ++-- .../StompBrokerRelayMessageHandlerTests.java | 8 +-- .../ChannelInterceptorTests.java | 3 +- ...java => PublishSubscribeChannelTests.java} | 4 +- .../MessageBrokerBeanDefinitionParser.java | 14 ++--- .../socket/config/spring-websocket-4.0.xsd | 2 +- .../HandlersBeanDefinitionParserTests.java | 32 ++++++----- ...essageBrokerBeanDefinitionParserTests.java | 22 +++++--- .../WebMvcStompEndpointRegistrationTests.java | 3 +- ...essageBrokerConfigurationSupportTests.java | 6 +-- .../SimpAnnotationMethodIntegrationTests.java | 4 +- ...websocket-config-broker-customchannels.xml | 4 +- 119 files changed, 409 insertions(+), 425 deletions(-) rename spring-messaging/src/main/java/org/springframework/messaging/{support => }/converter/AbstractMessageConverter.java (99%) rename spring-messaging/src/main/java/org/springframework/messaging/{support => }/converter/ByteArrayMessageConverter.java (96%) rename spring-messaging/src/main/java/org/springframework/messaging/{support => }/converter/CompositeMessageConverter.java (98%) rename spring-messaging/src/main/java/org/springframework/messaging/{support => }/converter/ContentTypeResolver.java (94%) rename spring-messaging/src/main/java/org/springframework/messaging/{support => }/converter/DefaultContentTypeResolver.java (96%) rename spring-messaging/src/main/java/org/springframework/messaging/{support => }/converter/MappingJackson2MessageConverter.java (98%) rename spring-messaging/src/main/java/org/springframework/messaging/{support => }/converter/MessageConversionException.java (95%) rename spring-messaging/src/main/java/org/springframework/messaging/{support => }/converter/MessageConverter.java (97%) rename spring-messaging/src/main/java/org/springframework/messaging/{support => }/converter/SimpleMessageConverter.java (91%) rename spring-messaging/src/main/java/org/springframework/messaging/{support => }/converter/StringMessageConverter.java (97%) create mode 100644 spring-messaging/src/main/java/org/springframework/messaging/converter/package-info.java rename spring-messaging/src/main/java/org/springframework/messaging/handler/{condition => }/AbstractMessageCondition.java (89%) rename spring-messaging/src/main/java/org/springframework/messaging/handler/{condition => }/DestinationPatternsMessageCondition.java (94%) rename spring-messaging/src/main/java/org/springframework/messaging/handler/{method => }/HandlerMethod.java (99%) rename spring-messaging/src/main/java/org/springframework/messaging/handler/{method => }/HandlerMethodSelector.java (98%) rename spring-messaging/src/main/java/org/springframework/messaging/handler/{condition => }/MessageCondition.java (97%) create mode 100644 spring-messaging/src/main/java/org/springframework/messaging/handler/package-info.java rename spring-messaging/src/main/java/org/springframework/messaging/handler/{method => support}/AbstractExceptionHandlerMethodResolver.java (98%) rename spring-messaging/src/main/java/org/springframework/messaging/handler/{method => support}/AbstractMethodMessageHandler.java (93%) rename spring-messaging/src/main/java/org/springframework/messaging/handler/{method => support}/HandlerMethodArgumentResolver.java (97%) rename spring-messaging/src/main/java/org/springframework/messaging/handler/{method => support}/HandlerMethodArgumentResolverComposite.java (98%) rename spring-messaging/src/main/java/org/springframework/messaging/handler/{method => support}/HandlerMethodReturnValueHandler.java (97%) rename spring-messaging/src/main/java/org/springframework/messaging/handler/{method => support}/HandlerMethodReturnValueHandlerComposite.java (98%) rename spring-messaging/src/main/java/org/springframework/messaging/handler/{method => support}/InvocableHandlerMethod.java (97%) rename spring-messaging/src/main/java/org/springframework/messaging/handler/{method => support}/package-info.java (58%) rename spring-messaging/src/main/java/org/springframework/messaging/simp/{handler => annotation/support}/SimpAnnotationMethodMessageHandler.java (90%) create mode 100644 spring-messaging/src/main/java/org/springframework/messaging/simp/annotation/support/package-info.java rename spring-messaging/src/main/java/org/springframework/messaging/support/{channel => }/AbstractMessageChannel.java (96%) rename spring-messaging/src/main/java/org/springframework/messaging/support/{channel => }/AbstractSubscribableChannel.java (97%) rename spring-messaging/src/main/java/org/springframework/messaging/support/{channel => }/ChannelInterceptor.java (97%) rename spring-messaging/src/main/java/org/springframework/messaging/support/{channel => }/ChannelInterceptorAdapter.java (83%) rename spring-messaging/src/main/java/org/springframework/messaging/support/{channel => }/ChannelInterceptorChain.java (98%) rename spring-messaging/src/main/java/org/springframework/messaging/support/{channel => }/ExecutorSubscribableChannel.java (97%) delete mode 100644 spring-messaging/src/main/java/org/springframework/messaging/support/channel/package-info.java delete mode 100644 spring-messaging/src/main/java/org/springframework/messaging/support/converter/package-info.java delete mode 100644 spring-messaging/src/main/java/org/springframework/messaging/support/tcp/package-info.java rename spring-messaging/src/main/java/org/springframework/messaging/{support => }/tcp/FixedIntervalReconnectStrategy.java (95%) rename spring-messaging/src/main/java/org/springframework/messaging/{support => }/tcp/ReconnectStrategy.java (95%) rename spring-messaging/src/main/java/org/springframework/messaging/{support => }/tcp/TcpConnection.java (97%) rename spring-messaging/src/main/java/org/springframework/messaging/{support => }/tcp/TcpConnectionHandler.java (96%) rename spring-messaging/src/main/java/org/springframework/messaging/{support => }/tcp/TcpOperations.java (97%) create mode 100644 spring-messaging/src/main/java/org/springframework/messaging/tcp/package-info.java rename spring-messaging/src/main/java/org/springframework/messaging/{support/tcp => tcp/reactor}/AbstractPromiseToListenableFutureAdapter.java (98%) rename spring-messaging/src/main/java/org/springframework/messaging/{support/tcp => tcp/reactor}/PassThroughPromiseToListenableFutureAdapter.java (95%) rename spring-messaging/src/main/java/org/springframework/messaging/{support/tcp => tcp/reactor}/ReactorNettyTcpClient.java (94%) rename spring-messaging/src/main/java/org/springframework/messaging/{support/tcp => tcp/reactor}/ReactorTcpConnection.java (94%) create mode 100644 spring-messaging/src/main/java/org/springframework/messaging/tcp/reactor/package-info.java rename spring-messaging/src/test/java/org/springframework/messaging/{support => }/converter/AbstractMessageConverterTests.java (96%) rename spring-messaging/src/test/java/org/springframework/messaging/{support => }/converter/DefaultContentTypeResolverTests.java (89%) rename spring-messaging/src/test/java/org/springframework/messaging/{support => }/converter/MappingJackson2MessageConverterTests.java (97%) rename spring-messaging/src/test/java/org/springframework/messaging/{support => }/converter/StringMessageConverterTests.java (96%) rename spring-messaging/src/test/java/org/springframework/messaging/handler/{condition => }/DestinationPatternsMessageConditionTests.java (93%) rename spring-messaging/src/test/java/org/springframework/messaging/support/{channel => }/ChannelInterceptorTests.java (97%) rename spring-messaging/src/test/java/org/springframework/messaging/support/{channel/PublishSubscibeChannelTests.java => PublishSubscribeChannelTests.java} (97%) diff --git a/spring-messaging/src/main/java/org/springframework/messaging/Message.java b/spring-messaging/src/main/java/org/springframework/messaging/Message.java index 42f3aa9374..b93988e9bd 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/Message.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/Message.java @@ -22,7 +22,6 @@ package org.springframework.messaging; * @author Mark Fisher * @author Arjen Poutsma * @since 4.0 - * * @see org.springframework.messaging.support.MessageBuilder */ public interface Message { diff --git a/spring-messaging/src/main/java/org/springframework/messaging/MessageChannel.java b/spring-messaging/src/main/java/org/springframework/messaging/MessageChannel.java index ffbe6699f9..f64ff0bf49 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/MessageChannel.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/MessageChannel.java @@ -35,10 +35,8 @@ public interface MessageChannel { * the method returns {@code true}. If the message cannot be sent due to a * non-fatal reason, the method returns {@code false}. The method may also * throw a RuntimeException in case of non-recoverable errors. - *

- * This method may block indefinitely, depending on the implementation. + *

This method may block indefinitely, depending on the implementation. * To provide a maximum wait time, use {@link #send(Message, long)}. - * * @param message the message to send * @return whether or not the message was sent */ @@ -47,11 +45,10 @@ public interface MessageChannel { /** * Send a message, blocking until either the message is accepted or the * specified timeout period elapses. - * * @param message the message to send * @param timeout the timeout in milliseconds or {@link #INDEFINITE_TIMEOUT} - * @return {@code true} if the message is sent, {@code false} if not including - * a timeout of an interrupt of the send + * @return {@code true} if the message is sent, {@code false} if not + * including a timeout of an interrupt of the send */ boolean send(Message message, long timeout); diff --git a/spring-messaging/src/main/java/org/springframework/messaging/MessageDeliveryException.java b/spring-messaging/src/main/java/org/springframework/messaging/MessageDeliveryException.java index 716ce1aaee..e208fabe6e 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/MessageDeliveryException.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/MessageDeliveryException.java @@ -25,7 +25,6 @@ package org.springframework.messaging; @SuppressWarnings("serial") public class MessageDeliveryException extends MessagingException { - public MessageDeliveryException(String description) { super(description); } diff --git a/spring-messaging/src/main/java/org/springframework/messaging/MessageHandler.java b/spring-messaging/src/main/java/org/springframework/messaging/MessageHandler.java index 23aa0ba177..d5ed9adbd3 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/MessageHandler.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/MessageHandler.java @@ -27,7 +27,6 @@ public interface MessageHandler { /** * Handle the given message. - * * @param message the message to be handled */ void handleMessage(Message message) throws MessagingException; diff --git a/spring-messaging/src/main/java/org/springframework/messaging/MessageHandlingException.java b/spring-messaging/src/main/java/org/springframework/messaging/MessageHandlingException.java index 48529b1392..e1243b90e3 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/MessageHandlingException.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/MessageHandlingException.java @@ -16,9 +16,6 @@ package org.springframework.messaging; -import org.springframework.messaging.Message; -import org.springframework.messaging.MessagingException; - /** * Exception that indicates an error occurred during message handling. * diff --git a/spring-messaging/src/main/java/org/springframework/messaging/MessageHeaders.java b/spring-messaging/src/main/java/org/springframework/messaging/MessageHeaders.java index e27dafc3f4..0f15080521 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/MessageHeaders.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/MessageHeaders.java @@ -21,7 +21,6 @@ import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.Serializable; import java.util.ArrayList; -import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.HashMap; @@ -33,6 +32,7 @@ import java.util.UUID; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; + import org.springframework.util.AlternativeJdkIdGenerator; import org.springframework.util.IdGenerator; @@ -63,7 +63,6 @@ import org.springframework.util.IdGenerator; * @author Mark Fisher * @author Gary Russell * @since 4.0 - * * @see org.springframework.messaging.support.MessageBuilder * @see org.springframework.messaging.support.MessageHeaderAccessor */ @@ -93,8 +92,6 @@ public final class MessageHeaders implements Map, Serializable { public static final String CONTENT_TYPE = "contentType"; - public static final List HEADER_NAMES = Arrays.asList(ID, TIMESTAMP); - private final Map headers; @@ -102,7 +99,7 @@ public final class MessageHeaders implements Map, Serializable { public MessageHeaders(Map headers) { this.headers = (headers != null) ? new HashMap(headers) : new HashMap(); this.headers.put(ID, ((idGenerator != null) ? idGenerator : defaultIdGenerator).generateId()); - this.headers.put(TIMESTAMP, new Long(System.currentTimeMillis())); + this.headers.put(TIMESTAMP, System.currentTimeMillis()); } @@ -199,31 +196,31 @@ public final class MessageHeaders implements Map, Serializable { // Unsupported operations /** - * Since MessageHeaders are immutable the call to this method will result in {@link UnsupportedOperationException} + * Since MessageHeaders are immutable, the call to this method will result in {@link UnsupportedOperationException}. */ public Object put(String key, Object value) { - throw new UnsupportedOperationException("MessageHeaders is immutable."); + throw new UnsupportedOperationException("MessageHeaders is immutable"); } /** - * Since MessageHeaders are immutable the call to this method will result in {@link UnsupportedOperationException} + * Since MessageHeaders are immutable, the call to this method will result in {@link UnsupportedOperationException}. */ public void putAll(Map t) { - throw new UnsupportedOperationException("MessageHeaders is immutable."); + throw new UnsupportedOperationException("MessageHeaders is immutable"); } /** - * Since MessageHeaders are immutable the call to this method will result in {@link UnsupportedOperationException} + * Since MessageHeaders are immutable, the call to this method will result in {@link UnsupportedOperationException}. */ public Object remove(Object key) { - throw new UnsupportedOperationException("MessageHeaders is immutable."); + throw new UnsupportedOperationException("MessageHeaders is immutable"); } /** - * Since MessageHeaders are immutable the call to this method will result in {@link UnsupportedOperationException} + * Since MessageHeaders are immutable, the call to this method will result in {@link UnsupportedOperationException}. */ public void clear() { - throw new UnsupportedOperationException("MessageHeaders is immutable."); + throw new UnsupportedOperationException("MessageHeaders is immutable"); } // Serialization methods diff --git a/spring-messaging/src/main/java/org/springframework/messaging/MessagingException.java b/spring-messaging/src/main/java/org/springframework/messaging/MessagingException.java index a301b885c9..8cd33d6cce 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/MessagingException.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/MessagingException.java @@ -26,7 +26,7 @@ package org.springframework.messaging; @SuppressWarnings("serial") public class MessagingException extends RuntimeException { - private volatile Message failedMessage; + private final Message failedMessage; public MessagingException(Message message) { @@ -64,8 +64,4 @@ public class MessagingException extends RuntimeException { return this.failedMessage; } - public void setFailedMessage(Message message) { - this.failedMessage = message; - } - } diff --git a/spring-messaging/src/main/java/org/springframework/messaging/PollableChannel.java b/spring-messaging/src/main/java/org/springframework/messaging/PollableChannel.java index c589382624..eb5aafc8e2 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/PollableChannel.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/PollableChannel.java @@ -26,7 +26,6 @@ public interface PollableChannel extends MessageChannel { /** * Receive a message from this channel, blocking indefinitely if necessary. - * * @return the next available {@link Message} or {@code null} if interrupted */ Message receive(); @@ -34,10 +33,9 @@ public interface PollableChannel extends MessageChannel { /** * Receive a message from this channel, blocking until either a message is available * or the specified timeout period elapses. - * * @param timeout the timeout in milliseconds or {@link MessageChannel#INDEFINITE_TIMEOUT}. * @return the next available {@link Message} or {@code null} if the specified timeout - * period elapses or the message reception is interrupted + * period elapses or the message reception is interrupted */ Message receive(long timeout); diff --git a/spring-messaging/src/main/java/org/springframework/messaging/SubscribableChannel.java b/spring-messaging/src/main/java/org/springframework/messaging/SubscribableChannel.java index f4d00413d5..6c346a55c8 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/SubscribableChannel.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/SubscribableChannel.java @@ -25,10 +25,8 @@ package org.springframework.messaging; */ public interface SubscribableChannel extends MessageChannel { - /** * Register a message handler. - * * @return {@code true} if the handler was subscribed or {@code false} if it * was already subscribed. */ @@ -36,7 +34,6 @@ public interface SubscribableChannel extends MessageChannel { /** * Un-register a message handler. - * * @return {@code true} if the handler was un-registered, or {@code false} * if was not registered. */ diff --git a/spring-messaging/src/main/java/org/springframework/messaging/support/converter/AbstractMessageConverter.java b/spring-messaging/src/main/java/org/springframework/messaging/converter/AbstractMessageConverter.java similarity index 99% rename from spring-messaging/src/main/java/org/springframework/messaging/support/converter/AbstractMessageConverter.java rename to spring-messaging/src/main/java/org/springframework/messaging/converter/AbstractMessageConverter.java index d02e3752c8..58bee4e199 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/support/converter/AbstractMessageConverter.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/converter/AbstractMessageConverter.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.messaging.support.converter; +package org.springframework.messaging.converter; import java.util.ArrayList; import java.util.Collection; @@ -23,6 +23,7 @@ import java.util.List; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; + import org.springframework.messaging.Message; import org.springframework.messaging.MessageHeaders; import org.springframework.messaging.support.MessageBuilder; diff --git a/spring-messaging/src/main/java/org/springframework/messaging/support/converter/ByteArrayMessageConverter.java b/spring-messaging/src/main/java/org/springframework/messaging/converter/ByteArrayMessageConverter.java similarity index 96% rename from spring-messaging/src/main/java/org/springframework/messaging/support/converter/ByteArrayMessageConverter.java rename to spring-messaging/src/main/java/org/springframework/messaging/converter/ByteArrayMessageConverter.java index c784cad6bb..723991063a 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/support/converter/ByteArrayMessageConverter.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/converter/ByteArrayMessageConverter.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.messaging.support.converter; +package org.springframework.messaging.converter; import org.springframework.messaging.Message; import org.springframework.messaging.MessageHeaders; diff --git a/spring-messaging/src/main/java/org/springframework/messaging/support/converter/CompositeMessageConverter.java b/spring-messaging/src/main/java/org/springframework/messaging/converter/CompositeMessageConverter.java similarity index 98% rename from spring-messaging/src/main/java/org/springframework/messaging/support/converter/CompositeMessageConverter.java rename to spring-messaging/src/main/java/org/springframework/messaging/converter/CompositeMessageConverter.java index ec0ab3d340..77b24337e5 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/support/converter/CompositeMessageConverter.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/converter/CompositeMessageConverter.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.messaging.support.converter; +package org.springframework.messaging.converter; import java.util.ArrayList; import java.util.Collection; diff --git a/spring-messaging/src/main/java/org/springframework/messaging/support/converter/ContentTypeResolver.java b/spring-messaging/src/main/java/org/springframework/messaging/converter/ContentTypeResolver.java similarity index 94% rename from spring-messaging/src/main/java/org/springframework/messaging/support/converter/ContentTypeResolver.java rename to spring-messaging/src/main/java/org/springframework/messaging/converter/ContentTypeResolver.java index e725b6db91..283e1ca05f 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/support/converter/ContentTypeResolver.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/converter/ContentTypeResolver.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.messaging.support.converter; +package org.springframework.messaging.converter; import org.springframework.messaging.MessageHeaders; import org.springframework.util.MimeType; diff --git a/spring-messaging/src/main/java/org/springframework/messaging/support/converter/DefaultContentTypeResolver.java b/spring-messaging/src/main/java/org/springframework/messaging/converter/DefaultContentTypeResolver.java similarity index 96% rename from spring-messaging/src/main/java/org/springframework/messaging/support/converter/DefaultContentTypeResolver.java rename to spring-messaging/src/main/java/org/springframework/messaging/converter/DefaultContentTypeResolver.java index 355d71ceda..aae37a294c 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/support/converter/DefaultContentTypeResolver.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/converter/DefaultContentTypeResolver.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.messaging.support.converter; +package org.springframework.messaging.converter; import org.springframework.messaging.MessageHeaders; import org.springframework.util.MimeType; diff --git a/spring-messaging/src/main/java/org/springframework/messaging/support/converter/MappingJackson2MessageConverter.java b/spring-messaging/src/main/java/org/springframework/messaging/converter/MappingJackson2MessageConverter.java similarity index 98% rename from spring-messaging/src/main/java/org/springframework/messaging/support/converter/MappingJackson2MessageConverter.java rename to spring-messaging/src/main/java/org/springframework/messaging/converter/MappingJackson2MessageConverter.java index e91bd5d41f..564febbf07 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/support/converter/MappingJackson2MessageConverter.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/converter/MappingJackson2MessageConverter.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.messaging.support.converter; +package org.springframework.messaging.converter; import java.io.ByteArrayOutputStream; import java.io.IOException; diff --git a/spring-messaging/src/main/java/org/springframework/messaging/support/converter/MessageConversionException.java b/spring-messaging/src/main/java/org/springframework/messaging/converter/MessageConversionException.java similarity index 95% rename from spring-messaging/src/main/java/org/springframework/messaging/support/converter/MessageConversionException.java rename to spring-messaging/src/main/java/org/springframework/messaging/converter/MessageConversionException.java index 31fdbadd0f..7caf7082af 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/support/converter/MessageConversionException.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/converter/MessageConversionException.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.messaging.support.converter; +package org.springframework.messaging.converter; import org.springframework.messaging.Message; import org.springframework.messaging.MessagingException; diff --git a/spring-messaging/src/main/java/org/springframework/messaging/support/converter/MessageConverter.java b/spring-messaging/src/main/java/org/springframework/messaging/converter/MessageConverter.java similarity index 97% rename from spring-messaging/src/main/java/org/springframework/messaging/support/converter/MessageConverter.java rename to spring-messaging/src/main/java/org/springframework/messaging/converter/MessageConverter.java index 0bedb341d1..89b504995f 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/support/converter/MessageConverter.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/converter/MessageConverter.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.messaging.support.converter; +package org.springframework.messaging.converter; import org.springframework.messaging.Message; import org.springframework.messaging.MessageHeaders; diff --git a/spring-messaging/src/main/java/org/springframework/messaging/support/converter/SimpleMessageConverter.java b/spring-messaging/src/main/java/org/springframework/messaging/converter/SimpleMessageConverter.java similarity index 91% rename from spring-messaging/src/main/java/org/springframework/messaging/support/converter/SimpleMessageConverter.java rename to spring-messaging/src/main/java/org/springframework/messaging/converter/SimpleMessageConverter.java index 2fc6db232a..28a4f37357 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/support/converter/SimpleMessageConverter.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/converter/SimpleMessageConverter.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.messaging.support.converter; +package org.springframework.messaging.converter; import org.springframework.messaging.Message; import org.springframework.messaging.MessageHeaders; @@ -44,7 +44,7 @@ public class SimpleMessageConverter implements MessageConverter { @Override public Message toMessage(Object payload, MessageHeaders headers) { - return (payload != null) ? MessageBuilder.withPayload(payload).copyHeaders(headers).build() : null; + return (payload != null ? MessageBuilder.withPayload(payload).copyHeaders(headers).build() : null); } } diff --git a/spring-messaging/src/main/java/org/springframework/messaging/support/converter/StringMessageConverter.java b/spring-messaging/src/main/java/org/springframework/messaging/converter/StringMessageConverter.java similarity index 97% rename from spring-messaging/src/main/java/org/springframework/messaging/support/converter/StringMessageConverter.java rename to spring-messaging/src/main/java/org/springframework/messaging/converter/StringMessageConverter.java index 4e16f33ced..d32a75fc7b 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/support/converter/StringMessageConverter.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/converter/StringMessageConverter.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.messaging.support.converter; +package org.springframework.messaging.converter; import java.nio.charset.Charset; diff --git a/spring-messaging/src/main/java/org/springframework/messaging/converter/package-info.java b/spring-messaging/src/main/java/org/springframework/messaging/converter/package-info.java new file mode 100644 index 0000000000..dec2ceac19 --- /dev/null +++ b/spring-messaging/src/main/java/org/springframework/messaging/converter/package-info.java @@ -0,0 +1,4 @@ +/** + * Provides support for message conversion. + */ +package org.springframework.messaging.converter; \ No newline at end of file diff --git a/spring-messaging/src/main/java/org/springframework/messaging/core/AbstractDestinationResolvingMessagingTemplate.java b/spring-messaging/src/main/java/org/springframework/messaging/core/AbstractDestinationResolvingMessagingTemplate.java index d8d0c86ec2..7db4e97d43 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/core/AbstractDestinationResolvingMessagingTemplate.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/core/AbstractDestinationResolvingMessagingTemplate.java @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package org.springframework.messaging.core; import java.util.Map; @@ -34,8 +35,7 @@ import org.springframework.util.Assert; * @since 4.0 */ public abstract class AbstractDestinationResolvingMessagingTemplate extends AbstractMessagingTemplate - implements - DestinationResolvingMessageSendingOperations, + implements DestinationResolvingMessageSendingOperations, DestinationResolvingMessageReceivingOperations, DestinationResolvingMessageRequestReplyOperations { @@ -45,10 +45,8 @@ public abstract class AbstractDestinationResolvingMessagingTemplate extends A /** * Configure the {@link DestinationResolver} to use to resolve String destination * names into actual destinations of type {@code }. - *

- * This field does not have a default setting. If not configured, methods that + *

This field does not have a default setting. If not configured, methods that * require resolving a destination name will raise an {@link IllegalArgumentException}. - * * @param destinationResolver the destination resolver to use */ public void setDestinationResolver(DestinationResolver destinationResolver) { diff --git a/spring-messaging/src/main/java/org/springframework/messaging/core/AbstractMessageSendingTemplate.java b/spring-messaging/src/main/java/org/springframework/messaging/core/AbstractMessageSendingTemplate.java index 15b9fb1504..56f0107a73 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/core/AbstractMessageSendingTemplate.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/core/AbstractMessageSendingTemplate.java @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package org.springframework.messaging.core; import java.util.Map; @@ -22,8 +23,8 @@ import org.apache.commons.logging.LogFactory; import org.springframework.messaging.Message; import org.springframework.messaging.MessageHeaders; import org.springframework.messaging.MessagingException; -import org.springframework.messaging.support.converter.MessageConverter; -import org.springframework.messaging.support.converter.SimpleMessageConverter; +import org.springframework.messaging.converter.MessageConverter; +import org.springframework.messaging.converter.SimpleMessageConverter; import org.springframework.util.Assert; /** @@ -46,8 +47,6 @@ public abstract class AbstractMessageSendingTemplate implements MessageSendin * Configure the default destination to use in send methods that don't have * a destination argument. If a default destination is not configured, send methods * without a destination argument will raise an exception if invoked. - * - * @param defaultDestination the default destination */ public void setDefaultDestination(D defaultDestination) { this.defaultDestination = defaultDestination; @@ -62,9 +61,7 @@ public abstract class AbstractMessageSendingTemplate implements MessageSendin /** * Set the {@link MessageConverter} to use in {@code convertAndSend} methods. - *

- * By default {@link SimpleMessageConverter} is used. - * + *

By default, {@link SimpleMessageConverter} is used. * @param messageConverter the message converter to use */ public void setMessageConverter(MessageConverter messageConverter) { diff --git a/spring-messaging/src/main/java/org/springframework/messaging/core/AbstractMessagingTemplate.java b/spring-messaging/src/main/java/org/springframework/messaging/core/AbstractMessagingTemplate.java index 76b6df2a5f..8cf3c2e47b 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/core/AbstractMessagingTemplate.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/core/AbstractMessagingTemplate.java @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package org.springframework.messaging.core; import java.util.Map; diff --git a/spring-messaging/src/main/java/org/springframework/messaging/core/BeanFactoryMessageChannelDestinationResolver.java b/spring-messaging/src/main/java/org/springframework/messaging/core/BeanFactoryMessageChannelDestinationResolver.java index 03bce04003..d185c3c7b9 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/core/BeanFactoryMessageChannelDestinationResolver.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/core/BeanFactoryMessageChannelDestinationResolver.java @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package org.springframework.messaging.core; import org.springframework.beans.BeansException; @@ -32,7 +33,7 @@ import org.springframework.util.Assert; public class BeanFactoryMessageChannelDestinationResolver implements DestinationResolver, BeanFactoryAware { - private volatile BeanFactory beanFactory; + private BeanFactory beanFactory; /** @@ -43,16 +44,9 @@ public class BeanFactoryMessageChannelDestinationResolver public BeanFactoryMessageChannelDestinationResolver() { } - - @Override - public void setBeanFactory(BeanFactory beanFactory) throws BeansException { - this.beanFactory = beanFactory; - } - /** * A constructor that accepts a {@link BeanFactory} useful if instantiating this * resolver manually rather than having it defined as a Spring-managed bean. - * * @param beanFactory the bean factory to perform lookups against */ public BeanFactoryMessageChannelDestinationResolver(BeanFactory beanFactory) { @@ -61,15 +55,21 @@ public class BeanFactoryMessageChannelDestinationResolver } + @Override + public void setBeanFactory(BeanFactory beanFactory) { + this.beanFactory = beanFactory; + } + + @Override public MessageChannel resolveDestination(String name) { Assert.state(this.beanFactory != null, "No BeanFactory configured"); try { return this.beanFactory.getBean(name, MessageChannel.class); } - catch (BeansException e) { + catch (BeansException ex) { throw new DestinationResolutionException( - "Failed to find MessageChannel bean with name '" + name + "'", e); + "Failed to find MessageChannel bean with name '" + name + "'", ex); } } diff --git a/spring-messaging/src/main/java/org/springframework/messaging/core/DestinationResolutionException.java b/spring-messaging/src/main/java/org/springframework/messaging/core/DestinationResolutionException.java index 52eb63d3e9..327c485fd7 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/core/DestinationResolutionException.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/core/DestinationResolutionException.java @@ -28,22 +28,10 @@ import org.springframework.messaging.MessagingException; @SuppressWarnings("serial") public class DestinationResolutionException extends MessagingException { - - /** - * Create an instance with the given description only. - * - * @param description the description - */ public DestinationResolutionException(String description) { super(description); } - /** - * Create an instance with the given description and original cause. - * - * @param description the description - * @param cause the root cause - */ public DestinationResolutionException(String description, Throwable cause) { super(description, cause); } diff --git a/spring-messaging/src/main/java/org/springframework/messaging/core/DestinationResolver.java b/spring-messaging/src/main/java/org/springframework/messaging/core/DestinationResolver.java index 3f14b9d2b4..908906e3ab 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/core/DestinationResolver.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/core/DestinationResolver.java @@ -25,10 +25,8 @@ package org.springframework.messaging.core; */ public interface DestinationResolver { - /** * Resolve the given destination name. - * * @param name the destination name to resolve * @return the destination, never {@code null} */ diff --git a/spring-messaging/src/main/java/org/springframework/messaging/core/DestinationResolvingMessageReceivingOperations.java b/spring-messaging/src/main/java/org/springframework/messaging/core/DestinationResolvingMessageReceivingOperations.java index 53a2e4120e..0b7dceef72 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/core/DestinationResolvingMessageReceivingOperations.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/core/DestinationResolvingMessageReceivingOperations.java @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package org.springframework.messaging.core; import org.springframework.messaging.Message; @@ -25,14 +26,12 @@ import org.springframework.messaging.MessagingException; * @author Mark Fisher * @author Rossen Stoyanchev * @since 4.0 - * * @see DestinationResolver */ public interface DestinationResolvingMessageReceivingOperations extends MessageReceivingOperations { /** * Resolve the given destination name and receive a message from it. - * * @param destinationName the destination name to resolve */ Message receive(String destinationName) throws MessagingException; @@ -40,7 +39,6 @@ public interface DestinationResolvingMessageReceivingOperations extends Messa /** * Resolve the given destination name, receive a message from it, convert the * payload to the specified target type. - * * @param destinationName the destination name to resolve * @param targetClass the target class for the converted payload */ diff --git a/spring-messaging/src/main/java/org/springframework/messaging/core/DestinationResolvingMessageRequestReplyOperations.java b/spring-messaging/src/main/java/org/springframework/messaging/core/DestinationResolvingMessageRequestReplyOperations.java index 112092147d..4c4a89f4f3 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/core/DestinationResolvingMessageRequestReplyOperations.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/core/DestinationResolvingMessageRequestReplyOperations.java @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package org.springframework.messaging.core; import java.util.Map; @@ -27,7 +28,6 @@ import org.springframework.messaging.MessagingException; * @author Mark Fisher * @author Rossen Stoyanchev * @since 4.0 - * * @see DestinationResolver */ public interface DestinationResolvingMessageRequestReplyOperations extends MessageRequestReplyOperations { @@ -35,26 +35,24 @@ public interface DestinationResolvingMessageRequestReplyOperations extends Me /** * Resolve the given destination name to a destination and send the given message, * receive a reply and return it. - * * @param destinationName the name of the target destination * @param requestMessage the mesage to send * @return the received message, possibly {@code null} if the message could not - * be received, for example due to a timeout + * be received, for example due to a timeout */ Message sendAndReceive(String destinationName, Message requestMessage) throws MessagingException; /** * Resolve the given destination name, convert the payload request Object * to serialized form, possibly using a - * {@link org.springframework.messaging.support.converter.MessageConverter}, + * {@link org.springframework.messaging.converter.MessageConverter}, * wrap it as a message and send it to the resolved destination, receive a reply * and convert its body to the specified target class. - * * @param destinationName the name of the target destination * @param request the payload for the request message to send * @param targetClass the target class to convert the payload of the reply to * @return the converted payload of the reply message, possibly {@code null} if - * the message could not be received, for example due to a timeout + * the message could not be received, for example due to a timeout */ T convertSendAndReceive(String destinationName, Object request, Class targetClass) throws MessagingException; @@ -62,16 +60,15 @@ public interface DestinationResolvingMessageRequestReplyOperations extends Me /** * Resolve the given destination name, convert the payload request Object * to serialized form, possibly using a - * {@link org.springframework.messaging.support.converter.MessageConverter}, + * {@link org.springframework.messaging.converter.MessageConverter}, * wrap it as a message with the given headers and send it to the resolved destination, * receive a reply and convert its body to the specified target class. - * * @param destinationName the name of the target destination * @param request the payload for the request message to send * @param headers the headers for the request message to send * @param targetClass the target class to convert the payload of the reply to * @return the converted payload of the reply message, possibly {@code null} if - * the message could not be received, for example due to a timeout + * the message could not be received, for example due to a timeout */ T convertSendAndReceive(String destinationName, Object request, Map headers, Class targetClass) throws MessagingException; @@ -79,17 +76,16 @@ public interface DestinationResolvingMessageRequestReplyOperations extends Me /** * Resolve the given destination name, convert the payload request Object * to serialized form, possibly using a - * {@link org.springframework.messaging.support.converter.MessageConverter}, + * {@link org.springframework.messaging.converter.MessageConverter}, * wrap it as a message, apply the given post process, and send the resulting * message to the resolved destination, then receive a reply and convert its * body to the specified target class. - * * @param destinationName the name of the target destination * @param request the payload for the request message to send * @param targetClass the target class to convert the payload of the reply to * @param requestPostProcessor post process for the request message * @return the converted payload of the reply message, possibly {@code null} if - * the message could not be received, for example due to a timeout + * the message could not be received, for example due to a timeout */ T convertSendAndReceive(String destinationName, Object request, Class targetClass, MessagePostProcessor requestPostProcessor) throws MessagingException; @@ -97,18 +93,17 @@ public interface DestinationResolvingMessageRequestReplyOperations extends Me /** * Resolve the given destination name, convert the payload request Object * to serialized form, possibly using a - * {@link org.springframework.messaging.support.converter.MessageConverter}, + * {@link org.springframework.messaging.converter.MessageConverter}, * wrap it as a message with the given headers, apply the given post process, * and send the resulting message to the resolved destination, then receive * a reply and convert its body to the specified target class. - * * @param destinationName the name of the target destination * @param request the payload for the request message to send * @param headers the headers for the request message to send * @param targetClass the target class to convert the payload of the reply to * @param requestPostProcessor post process for the request message * @return the converted payload of the reply message, possibly {@code null} if - * the message could not be received, for example due to a timeout + * the message could not be received, for example due to a timeout */ T convertSendAndReceive(String destinationName, Object request, Map headers, Class targetClass, MessagePostProcessor requestPostProcessor) throws MessagingException; diff --git a/spring-messaging/src/main/java/org/springframework/messaging/core/DestinationResolvingMessageSendingOperations.java b/spring-messaging/src/main/java/org/springframework/messaging/core/DestinationResolvingMessageSendingOperations.java index c314cb87f0..abb3d8602b 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/core/DestinationResolvingMessageSendingOperations.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/core/DestinationResolvingMessageSendingOperations.java @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package org.springframework.messaging.core; import java.util.Map; @@ -27,14 +28,12 @@ import org.springframework.messaging.MessagingException; * @author Mark Fisher * @author Rossen Stoyanchev * @since 4.0 - * * @see DestinationResolver */ public interface DestinationResolvingMessageSendingOperations extends MessageSendingOperations { /** * Resolve the given destination name to a destination and send a message to it. - * * @param destinationName the destination name to resolve * @param message the message to send */ @@ -43,9 +42,8 @@ public interface DestinationResolvingMessageSendingOperations extends Message /** * Resolve the given destination name to a destination, convert the payload Object * to serialized form, possibly using a - * {@link org.springframework.messaging.support.converter.MessageConverter}, + * {@link org.springframework.messaging.converter.MessageConverter}, * wrap it as a message and send it to the resolved destination. - * @param destinationName the destination name to resolve * @param payload the Object to use as payload */ @@ -54,10 +52,9 @@ public interface DestinationResolvingMessageSendingOperations extends Message /** * Resolve the given destination name to a destination, convert the payload * Object to serialized form, possibly using a - * {@link org.springframework.messaging.support.converter.MessageConverter}, + * {@link org.springframework.messaging.converter.MessageConverter}, * wrap it as a message with the given headers and send it to the resolved * destination. - * @param destinationName the destination name to resolve * @param payload the Object to use as payload * @param headers headers for the message to send @@ -68,10 +65,9 @@ public interface DestinationResolvingMessageSendingOperations extends Message /** * Resolve the given destination name to a destination, convert the payload * Object to serialized form, possibly using a - * {@link org.springframework.messaging.support.converter.MessageConverter}, + * {@link org.springframework.messaging.converter.MessageConverter}, * wrap it as a message, apply the given post processor, and send the resulting * message to the resolved destination. - * @param destinationName the destination name to resolve * @param payload the Object to use as payload * @param postProcessor the post processor to apply to the message @@ -82,10 +78,9 @@ public interface DestinationResolvingMessageSendingOperations extends Message /** * Resolve the given destination name to a destination, convert the payload * Object to serialized form, possibly using a - * {@link org.springframework.messaging.support.converter.MessageConverter}, + * {@link org.springframework.messaging.converter.MessageConverter}, * wrap it as a message with the given headers, apply the given post processor, * and send the resulting message to the resolved destination. - * @param destinationName the destination name to resolve * @param payload the Object to use as payload * @param headers headers for the message to send diff --git a/spring-messaging/src/main/java/org/springframework/messaging/core/GenericMessagingTemplate.java b/spring-messaging/src/main/java/org/springframework/messaging/core/GenericMessagingTemplate.java index 2880907d78..3e55d27f1a 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/core/GenericMessagingTemplate.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/core/GenericMessagingTemplate.java @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package org.springframework.messaging.core; import java.util.concurrent.CountDownLatch; @@ -20,6 +21,7 @@ import java.util.concurrent.TimeUnit; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; + import org.springframework.beans.BeansException; import org.springframework.beans.factory.BeanFactory; import org.springframework.beans.factory.BeanFactoryAware; diff --git a/spring-messaging/src/main/java/org/springframework/messaging/core/MessagePostProcessor.java b/spring-messaging/src/main/java/org/springframework/messaging/core/MessagePostProcessor.java index 3c0d635a81..67b638e714 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/core/MessagePostProcessor.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/core/MessagePostProcessor.java @@ -25,7 +25,6 @@ import org.springframework.messaging.Message; * @author Mark Fisher * @author Rossen Stoyanchev * @since 4.0 - * * @see MessageSendingOperations * @see MessageRequestReplyOperations */ @@ -33,9 +32,9 @@ public interface MessagePostProcessor { /** * Process the given message. - * * @param message the message to process - * @return a new or the same message, never {@code null} + * @return a post-processed variant of the message, + * or simply the incoming message; never {@code null} */ Message postProcessMessage(Message message); diff --git a/spring-messaging/src/main/java/org/springframework/messaging/core/MessageReceivingOperations.java b/spring-messaging/src/main/java/org/springframework/messaging/core/MessageReceivingOperations.java index dd48025d8c..a8ea82315b 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/core/MessageReceivingOperations.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/core/MessageReceivingOperations.java @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package org.springframework.messaging.core; import org.springframework.messaging.Message; @@ -26,49 +27,42 @@ import org.springframework.messaging.MessagingException; * @author Mark Fisher * @author Rossen Stoyanchev * @since 4.0 - * * @see GenericMessagingTemplate */ public interface MessageReceivingOperations { /** * Receive a message from a default destination. - * * @return the received message, possibly {@code null} if the message could not - * be received, for example due to a timeout + * be received, for example due to a timeout */ Message receive() throws MessagingException; /** * Receive a message from the given destination. - * * @param destination the target destination * @return the received message, possibly {@code null} if the message could not - * be received, for example due to a timeout + * be received, for example due to a timeout */ Message receive(D destination) throws MessagingException; /** * Receive a message from a default destination and convert its payload to the * specified target class. - * * @param targetClass the target class to convert the payload to * @return the converted payload of the reply message, possibly {@code null} if - * the message could not be received, for example due to a timeout + * the message could not be received, for example due to a timeout */ T receiveAndConvert(Class targetClass) throws MessagingException; /** * Receive a message from the given destination and convert its payload to the * specified target class. - * * @param destination the target destination * @param targetClass the target class to convert the payload to * @return the converted payload of the reply message, possibly {@code null} if - * the message could not be received, for example due to a timeout + * the message could not be received, for example due to a timeout */ T receiveAndConvert(D destination, Class targetClass) throws MessagingException; } - - diff --git a/spring-messaging/src/main/java/org/springframework/messaging/core/MessageRequestReplyOperations.java b/spring-messaging/src/main/java/org/springframework/messaging/core/MessageRequestReplyOperations.java index 315f213876..24114fbf65 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/core/MessageRequestReplyOperations.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/core/MessageRequestReplyOperations.java @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package org.springframework.messaging.core; import java.util.Map; @@ -28,119 +29,110 @@ import org.springframework.messaging.MessagingException; * @author Mark Fisher * @author Rossen Stoyanchev * @since 4.0 - * * @see GenericMessagingTemplate */ public interface MessageRequestReplyOperations { /** * Send a request message and receive the reply from a default destination. - * * @param requestMessage the message to send * @return the reply, possibly {@code null} if the message could not be received, - * for example due to a timeout + * for example due to a timeout */ Message sendAndReceive(Message requestMessage) throws MessagingException; /** * Send a request message and receive the reply from the given destination. - * * @param destination the target destination * @param requestMessage the message to send * @return the reply, possibly {@code null} if the message could not be received, - * for example due to a timeout + * for example due to a timeout */ Message sendAndReceive(D destination, Message requestMessage) throws MessagingException; /** * Convert the given request Object to serialized form, possibly using a - * {@link org.springframework.messaging.support.converter.MessageConverter}, send + * {@link org.springframework.messaging.converter.MessageConverter}, send * it as a {@link Message} to a default destination, receive the reply and convert * its body of the specified target class. - * * @param request payload for the request message to send * @param targetClass the target type to convert the payload of the reply to * @return the payload of the reply message, possibly {@code null} if the message - * could not be received, for example due to a timeout + * could not be received, for example due to a timeout */ T convertSendAndReceive(Object request, Class targetClass) throws MessagingException; /** * Convert the given request Object to serialized form, possibly using a - * {@link org.springframework.messaging.support.converter.MessageConverter}, send + * {@link org.springframework.messaging.converter.MessageConverter}, send * it as a {@link Message} to the given destination, receive the reply and convert * its body of the specified target class. - * * @param destination the target destination * @param request payload for the request message to send * @param targetClass the target type to convert the payload of the reply to * @return the payload of the reply message, possibly {@code null} if the message - * could not be received, for example due to a timeout + * could not be received, for example due to a timeout */ T convertSendAndReceive(D destination, Object request, Class targetClass) throws MessagingException; /** * Convert the given request Object to serialized form, possibly using a - * {@link org.springframework.messaging.support.converter.MessageConverter}, send + * {@link org.springframework.messaging.converter.MessageConverter}, send * it as a {@link Message} with the given headers, to the specified destination, * receive the reply and convert its body of the specified target class. - * * @param destination the target destination * @param request payload for the request message to send * @param headers headers for the request message to send * @param targetClass the target type to convert the payload of the reply to * @return the payload of the reply message, possibly {@code null} if the message - * could not be received, for example due to a timeout + * could not be received, for example due to a timeout */ T convertSendAndReceive(D destination, Object request, Map headers, Class targetClass) throws MessagingException; /** * Convert the given request Object to serialized form, possibly using a - * {@link org.springframework.messaging.support.converter.MessageConverter}, + * {@link org.springframework.messaging.converter.MessageConverter}, * apply the given post processor and send the resulting {@link Message} to a * default destination, receive the reply and convert its body of the given * target class. - * * @param request payload for the request message to send * @param targetClass the target type to convert the payload of the reply to * @param requestPostProcessor post process to apply to the request message * @return the payload of the reply message, possibly {@code null} if the message - * could not be received, for example due to a timeout + * could not be received, for example due to a timeout */ T convertSendAndReceive(Object request, Class targetClass, MessagePostProcessor requestPostProcessor) throws MessagingException; /** * Convert the given request Object to serialized form, possibly using a - * {@link org.springframework.messaging.support.converter.MessageConverter}, + * {@link org.springframework.messaging.converter.MessageConverter}, * apply the given post processor and send the resulting {@link Message} to the * given destination, receive the reply and convert its body of the given * target class. - * * @param destination the target destination * @param request payload for the request message to send * @param targetClass the target type to convert the payload of the reply to * @param requestPostProcessor post process to apply to the request message * @return the payload of the reply message, possibly {@code null} if the message - * could not be received, for example due to a timeout + * could not be received, for example due to a timeout */ T convertSendAndReceive(D destination, Object request, Class targetClass, MessagePostProcessor requestPostProcessor) throws MessagingException; /** * Convert the given request Object to serialized form, possibly using a - * {@link org.springframework.messaging.support.converter.MessageConverter}, + * {@link org.springframework.messaging.converter.MessageConverter}, * wrap it as a message with the given headers, apply the given post processor * and send the resulting {@link Message} to the specified destination, receive * the reply and convert its body of the given target class. - * * @param destination the target destination * @param request payload for the request message to send * @param targetClass the target type to convert the payload of the reply to * @param requestPostProcessor post process to apply to the request message * @return the payload of the reply message, possibly {@code null} if the message - * could not be received, for example due to a timeout + * could not be received, for example due to a timeout */ T convertSendAndReceive(D destination, Object request, Map headers, Class targetClass, MessagePostProcessor requestPostProcessor) throws MessagingException; diff --git a/spring-messaging/src/main/java/org/springframework/messaging/core/MessageSendingOperations.java b/spring-messaging/src/main/java/org/springframework/messaging/core/MessageSendingOperations.java index 890eac7c93..5e08b4b2e5 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/core/MessageSendingOperations.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/core/MessageSendingOperations.java @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package org.springframework.messaging.core; import java.util.Map; @@ -33,14 +34,12 @@ public interface MessageSendingOperations { /** * Send a message to a default destination. - * * @param message the message to send */ void send(Message message) throws MessagingException; /** * Send a message to the given destination. - * * @param destination the target destination * @param message the message to send */ @@ -48,18 +47,16 @@ public interface MessageSendingOperations { /** * Convert the given Object to serialized form, possibly using a - * {@link org.springframework.messaging.support.converter.MessageConverter}, + * {@link org.springframework.messaging.converter.MessageConverter}, * wrap it as a message and send it to a default destination. - * * @param payload the Object to use as payload */ void convertAndSend(Object payload) throws MessagingException; /** * Convert the given Object to serialized form, possibly using a - * {@link org.springframework.messaging.support.converter.MessageConverter}, + * {@link org.springframework.messaging.converter.MessageConverter}, * wrap it as a message and send it to the given destination. - * * @param destination the target destination * @param payload the Object to use as payload */ @@ -67,10 +64,9 @@ public interface MessageSendingOperations { /** * Convert the given Object to serialized form, possibly using a - * {@link org.springframework.messaging.support.converter.MessageConverter}, + * {@link org.springframework.messaging.converter.MessageConverter}, * wrap it as a message with the given headers and send it to * a default destination. - * * @param destination the target destination * @param payload the Object to use as payload * @param headers headers for the message to send @@ -79,10 +75,9 @@ public interface MessageSendingOperations { /** * Convert the given Object to serialized form, possibly using a - * {@link org.springframework.messaging.support.converter.MessageConverter}, + * {@link org.springframework.messaging.converter.MessageConverter}, * wrap it as a message, apply the given post processor, and send * the resulting message to a default destination. - * * @param payload the Object to use as payload * @param postProcessor the post processor to apply to the message */ @@ -90,10 +85,9 @@ public interface MessageSendingOperations { /** * Convert the given Object to serialized form, possibly using a - * {@link org.springframework.messaging.support.converter.MessageConverter}, + * {@link org.springframework.messaging.converter.MessageConverter}, * wrap it as a message, apply the given post processor, and send * the resulting message to the given destination. - * * @param destination the target destination * @param payload the Object to use as payload * @param postProcessor the post processor to apply to the message @@ -102,10 +96,9 @@ public interface MessageSendingOperations { /** * Convert the given Object to serialized form, possibly using a - * {@link org.springframework.messaging.support.converter.MessageConverter}, + * {@link org.springframework.messaging.converter.MessageConverter}, * wrap it as a message with the given headers, apply the given post processor, * and send the resulting message to the given destination. - * * @param destination the target destination * @param payload the Object to use as payload * @param headers headers for the message to send diff --git a/spring-messaging/src/main/java/org/springframework/messaging/handler/condition/AbstractMessageCondition.java b/spring-messaging/src/main/java/org/springframework/messaging/handler/AbstractMessageCondition.java similarity index 89% rename from spring-messaging/src/main/java/org/springframework/messaging/handler/condition/AbstractMessageCondition.java rename to spring-messaging/src/main/java/org/springframework/messaging/handler/AbstractMessageCondition.java index ad6ea0cb3d..3e6e1dd76c 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/handler/condition/AbstractMessageCondition.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/handler/AbstractMessageCondition.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.messaging.handler.condition; +package org.springframework.messaging.handler; import java.util.Collection; import java.util.Iterator; @@ -30,18 +30,18 @@ public abstract class AbstractMessageCondition getContent(); @Override - public boolean equals(Object o) { - if (this == o) { + public boolean equals(Object obj) { + if (this == obj) { return true; } - if (o != null && getClass().equals(o.getClass())) { - AbstractMessageCondition other = (AbstractMessageCondition) o; + if (obj != null && getClass().equals(obj.getClass())) { + AbstractMessageCondition other = (AbstractMessageCondition) obj; return getContent().equals(other.getContent()); } return false; diff --git a/spring-messaging/src/main/java/org/springframework/messaging/handler/condition/DestinationPatternsMessageCondition.java b/spring-messaging/src/main/java/org/springframework/messaging/handler/DestinationPatternsMessageCondition.java similarity index 94% rename from spring-messaging/src/main/java/org/springframework/messaging/handler/condition/DestinationPatternsMessageCondition.java rename to spring-messaging/src/main/java/org/springframework/messaging/handler/DestinationPatternsMessageCondition.java index 93d2bbe0c5..12ff720e41 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/handler/condition/DestinationPatternsMessageCondition.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/handler/DestinationPatternsMessageCondition.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.messaging.handler.condition; +package org.springframework.messaging.handler; import java.util.ArrayList; import java.util.Arrays; @@ -27,7 +27,6 @@ import java.util.List; import java.util.Set; import org.springframework.messaging.Message; -import org.springframework.messaging.handler.method.AbstractMethodMessageHandler; import org.springframework.util.AntPathMatcher; import org.springframework.util.PathMatcher; import org.springframework.util.StringUtils; @@ -42,6 +41,9 @@ import org.springframework.util.StringUtils; public final class DestinationPatternsMessageCondition extends AbstractMessageCondition { + public static final String LOOKUP_DESTINATION_HEADER = "lookupDestination"; + + private final Set patterns; private final PathMatcher pathMatcher; @@ -146,8 +148,7 @@ public final class DestinationPatternsMessageCondition */ @Override public DestinationPatternsMessageCondition getMatchingCondition(Message message) { - - String destination = (String) message.getHeaders().get(AbstractMethodMessageHandler.LOOKUP_DESTINATION_HEADER); + String destination = (String) message.getHeaders().get(LOOKUP_DESTINATION_HEADER); if (destination == null) { return null; } @@ -184,8 +185,7 @@ public final class DestinationPatternsMessageCondition */ @Override public int compareTo(DestinationPatternsMessageCondition other, Message message) { - - String destination = (String) message.getHeaders().get(AbstractMethodMessageHandler.LOOKUP_DESTINATION_HEADER); + String destination = (String) message.getHeaders().get(LOOKUP_DESTINATION_HEADER); Comparator patternComparator = this.pathMatcher.getPatternComparator(destination); Iterator iterator = patterns.iterator(); diff --git a/spring-messaging/src/main/java/org/springframework/messaging/handler/method/HandlerMethod.java b/spring-messaging/src/main/java/org/springframework/messaging/handler/HandlerMethod.java similarity index 99% rename from spring-messaging/src/main/java/org/springframework/messaging/handler/method/HandlerMethod.java rename to spring-messaging/src/main/java/org/springframework/messaging/handler/HandlerMethod.java index e83602381a..1f07e01375 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/handler/method/HandlerMethod.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/handler/HandlerMethod.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.messaging.handler.method; +package org.springframework.messaging.handler; import java.lang.annotation.Annotation; import java.lang.reflect.Method; diff --git a/spring-messaging/src/main/java/org/springframework/messaging/handler/method/HandlerMethodSelector.java b/spring-messaging/src/main/java/org/springframework/messaging/handler/HandlerMethodSelector.java similarity index 98% rename from spring-messaging/src/main/java/org/springframework/messaging/handler/method/HandlerMethodSelector.java rename to spring-messaging/src/main/java/org/springframework/messaging/handler/HandlerMethodSelector.java index 899c22bb0c..937228fd68 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/handler/method/HandlerMethodSelector.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/handler/HandlerMethodSelector.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.messaging.handler.method; +package org.springframework.messaging.handler; import java.lang.reflect.Method; import java.lang.reflect.Proxy; diff --git a/spring-messaging/src/main/java/org/springframework/messaging/handler/condition/MessageCondition.java b/spring-messaging/src/main/java/org/springframework/messaging/handler/MessageCondition.java similarity index 97% rename from spring-messaging/src/main/java/org/springframework/messaging/handler/condition/MessageCondition.java rename to spring-messaging/src/main/java/org/springframework/messaging/handler/MessageCondition.java index c828827f8f..c5c7e3c5bb 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/handler/condition/MessageCondition.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/handler/MessageCondition.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.messaging.handler.condition; +package org.springframework.messaging.handler; import org.springframework.messaging.Message; diff --git a/spring-messaging/src/main/java/org/springframework/messaging/handler/annotation/MessageMapping.java b/spring-messaging/src/main/java/org/springframework/messaging/handler/annotation/MessageMapping.java index 64800d1726..01c26491a8 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/handler/annotation/MessageMapping.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/handler/annotation/MessageMapping.java @@ -39,7 +39,7 @@ import org.springframework.messaging.Message; *

  • {@link Message} to get access to the complete message being processed.
  • *
  • {@link Payload}-annotated method arguments to extract the payload of * a message and optionally convert it using a - * {@link org.springframework.messaging.support.converter.MessageConverter}. + * {@link org.springframework.messaging.converter.MessageConverter}. * The presence of the annotation is not required since it is assumed by default * for method arguments that are not annotated.
  • *
  • {@link Header}-annotated method arguments to extract a specific @@ -72,12 +72,12 @@ import org.springframework.messaging.Message; * to use {@link org.springframework.messaging.simp.annotation.SendToUser} to * have the message directed to a specific user only if connected. * Also the return value is converted with a - * {@link org.springframework.messaging.support.converter.MessageConverter}. + * {@link org.springframework.messaging.converter.MessageConverter}. * * @author Rossen Stoyanchev * @since 4.0 * - * @see org.springframework.messaging.simp.handler.SimpAnnotationMethodMessageHandler + * @see org.springframework.messaging.simp.annotation.support.SimpAnnotationMethodMessageHandler */ @Target({ElementType.TYPE, ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) diff --git a/spring-messaging/src/main/java/org/springframework/messaging/handler/annotation/PathVariable.java b/spring-messaging/src/main/java/org/springframework/messaging/handler/annotation/PathVariable.java index a3b4aec924..9d50286c2c 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/handler/annotation/PathVariable.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/handler/annotation/PathVariable.java @@ -34,7 +34,7 @@ import java.lang.annotation.Target; * @author Brian Clozel * @since 4.0 * @see org.springframework.messaging.handler.annotation.MessageMapping - * @see org.springframework.messaging.simp.handler.SimpAnnotationMethodMessageHandler + * @see org.springframework.messaging.simp.annotation.support.SimpAnnotationMethodMessageHandler */ @Target(ElementType.PARAMETER) @Retention(RetentionPolicy.RUNTIME) diff --git a/spring-messaging/src/main/java/org/springframework/messaging/handler/annotation/Payload.java b/spring-messaging/src/main/java/org/springframework/messaging/handler/annotation/Payload.java index c2dfdfbd17..8c3d0a9ec5 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/handler/annotation/Payload.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/handler/annotation/Payload.java @@ -22,7 +22,7 @@ import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; -import org.springframework.messaging.support.converter.MessageConverter; +import org.springframework.messaging.converter.MessageConverter; /** * Annotation that binds a method parameter to the payload of a message. The payload may diff --git a/spring-messaging/src/main/java/org/springframework/messaging/handler/annotation/ValueConstants.java b/spring-messaging/src/main/java/org/springframework/messaging/handler/annotation/ValueConstants.java index 962b97cb7b..a009745269 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/handler/annotation/ValueConstants.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/handler/annotation/ValueConstants.java @@ -27,10 +27,8 @@ public interface ValueConstants { /** * Constant defining a value for no default - as a replacement for {@code null} which * we cannot use in annotation attributes. - *

    - * This is an artificial arrangement of 16 unicode characters, with its sole purpose + *

    This is an artificial arrangement of 16 unicode characters, with its sole purpose * being to never match user-declared values. - * * @see Header#defaultValue() */ String DEFAULT_NONE = "\n\t\t\n\t\t\n\uE000\uE001\uE002\n\t\t\t\t\n"; diff --git a/spring-messaging/src/main/java/org/springframework/messaging/handler/annotation/support/AbstractNamedValueMethodArgumentResolver.java b/spring-messaging/src/main/java/org/springframework/messaging/handler/annotation/support/AbstractNamedValueMethodArgumentResolver.java index 7a1027c638..4bf522e833 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/handler/annotation/support/AbstractNamedValueMethodArgumentResolver.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/handler/annotation/support/AbstractNamedValueMethodArgumentResolver.java @@ -29,7 +29,7 @@ import org.springframework.core.convert.TypeDescriptor; import org.springframework.core.convert.support.DefaultConversionService; import org.springframework.messaging.Message; import org.springframework.messaging.handler.annotation.ValueConstants; -import org.springframework.messaging.handler.method.HandlerMethodArgumentResolver; +import org.springframework.messaging.handler.support.HandlerMethodArgumentResolver; import org.springframework.util.Assert; import org.springframework.util.ClassUtils; diff --git a/spring-messaging/src/main/java/org/springframework/messaging/handler/annotation/support/AnnotationExceptionHandlerMethodResolver.java b/spring-messaging/src/main/java/org/springframework/messaging/handler/annotation/support/AnnotationExceptionHandlerMethodResolver.java index 289c573707..e0897eca28 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/handler/annotation/support/AnnotationExceptionHandlerMethodResolver.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/handler/annotation/support/AnnotationExceptionHandlerMethodResolver.java @@ -25,8 +25,8 @@ import java.util.Map; import org.springframework.core.annotation.AnnotationUtils; import org.springframework.messaging.handler.annotation.MessageExceptionHandler; -import org.springframework.messaging.handler.method.AbstractExceptionHandlerMethodResolver; -import org.springframework.messaging.handler.method.HandlerMethodSelector; +import org.springframework.messaging.handler.support.AbstractExceptionHandlerMethodResolver; +import org.springframework.messaging.handler.HandlerMethodSelector; import org.springframework.util.ReflectionUtils.MethodFilter; /** diff --git a/spring-messaging/src/main/java/org/springframework/messaging/handler/annotation/support/HeadersMethodArgumentResolver.java b/spring-messaging/src/main/java/org/springframework/messaging/handler/annotation/support/HeadersMethodArgumentResolver.java index 66d6575ebd..e7c52b8202 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/handler/annotation/support/HeadersMethodArgumentResolver.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/handler/annotation/support/HeadersMethodArgumentResolver.java @@ -24,7 +24,7 @@ import org.springframework.messaging.Message; import org.springframework.messaging.MessageHeaders; import org.springframework.messaging.handler.annotation.Header; import org.springframework.messaging.handler.annotation.Headers; -import org.springframework.messaging.handler.method.HandlerMethodArgumentResolver; +import org.springframework.messaging.handler.support.HandlerMethodArgumentResolver; import org.springframework.messaging.support.MessageHeaderAccessor; import org.springframework.util.ClassUtils; import org.springframework.util.ReflectionUtils; diff --git a/spring-messaging/src/main/java/org/springframework/messaging/handler/annotation/support/MessageMethodArgumentResolver.java b/spring-messaging/src/main/java/org/springframework/messaging/handler/annotation/support/MessageMethodArgumentResolver.java index 48c4939565..1c6a2df49a 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/handler/annotation/support/MessageMethodArgumentResolver.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/handler/annotation/support/MessageMethodArgumentResolver.java @@ -18,7 +18,7 @@ package org.springframework.messaging.handler.annotation.support; import org.springframework.core.MethodParameter; import org.springframework.messaging.Message; -import org.springframework.messaging.handler.method.HandlerMethodArgumentResolver; +import org.springframework.messaging.handler.support.HandlerMethodArgumentResolver; /** * A {@link HandlerMethodArgumentResolver} for {@link Message} parameters. diff --git a/spring-messaging/src/main/java/org/springframework/messaging/handler/annotation/support/PayloadArgumentResolver.java b/spring-messaging/src/main/java/org/springframework/messaging/handler/annotation/support/PayloadArgumentResolver.java index 69527c806f..82d57a10b8 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/handler/annotation/support/PayloadArgumentResolver.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/handler/annotation/support/PayloadArgumentResolver.java @@ -19,8 +19,8 @@ package org.springframework.messaging.handler.annotation.support; import org.springframework.core.MethodParameter; import org.springframework.messaging.Message; import org.springframework.messaging.handler.annotation.Payload; -import org.springframework.messaging.handler.method.HandlerMethodArgumentResolver; -import org.springframework.messaging.support.converter.MessageConverter; +import org.springframework.messaging.handler.support.HandlerMethodArgumentResolver; +import org.springframework.messaging.converter.MessageConverter; import org.springframework.util.Assert; import org.springframework.util.ClassUtils; import org.springframework.util.StringUtils; diff --git a/spring-messaging/src/main/java/org/springframework/messaging/handler/package-info.java b/spring-messaging/src/main/java/org/springframework/messaging/handler/package-info.java new file mode 100644 index 0000000000..16b99139ea --- /dev/null +++ b/spring-messaging/src/main/java/org/springframework/messaging/handler/package-info.java @@ -0,0 +1,4 @@ +/** + * Basic abstractions for working with message handlers. + */ +package org.springframework.messaging.handler; diff --git a/spring-messaging/src/main/java/org/springframework/messaging/handler/method/AbstractExceptionHandlerMethodResolver.java b/spring-messaging/src/main/java/org/springframework/messaging/handler/support/AbstractExceptionHandlerMethodResolver.java similarity index 98% rename from spring-messaging/src/main/java/org/springframework/messaging/handler/method/AbstractExceptionHandlerMethodResolver.java rename to spring-messaging/src/main/java/org/springframework/messaging/handler/support/AbstractExceptionHandlerMethodResolver.java index f0cf215cd3..49de381ffb 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/handler/method/AbstractExceptionHandlerMethodResolver.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/handler/support/AbstractExceptionHandlerMethodResolver.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.messaging.handler.method; +package org.springframework.messaging.handler.support; import org.springframework.core.ExceptionDepthComparator; import org.springframework.util.Assert; diff --git a/spring-messaging/src/main/java/org/springframework/messaging/handler/method/AbstractMethodMessageHandler.java b/spring-messaging/src/main/java/org/springframework/messaging/handler/support/AbstractMethodMessageHandler.java similarity index 93% rename from spring-messaging/src/main/java/org/springframework/messaging/handler/method/AbstractMethodMessageHandler.java rename to spring-messaging/src/main/java/org/springframework/messaging/handler/support/AbstractMethodMessageHandler.java index dd94fa3fac..0dee6c8645 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/handler/method/AbstractMethodMessageHandler.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/handler/support/AbstractMethodMessageHandler.java @@ -14,10 +14,22 @@ * limitations under the License. */ -package org.springframework.messaging.handler.method; +package org.springframework.messaging.handler.support; + +import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.Comparator; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.concurrent.ConcurrentHashMap; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; + import org.springframework.beans.BeansException; import org.springframework.beans.factory.InitializingBean; import org.springframework.context.ApplicationContext; @@ -26,23 +38,27 @@ import org.springframework.core.MethodParameter; import org.springframework.messaging.Message; import org.springframework.messaging.MessageHandler; import org.springframework.messaging.MessagingException; +import org.springframework.messaging.handler.DestinationPatternsMessageCondition; +import org.springframework.messaging.handler.HandlerMethod; +import org.springframework.messaging.handler.HandlerMethodSelector; import org.springframework.messaging.support.MessageBuilder; -import org.springframework.util.*; - -import java.lang.reflect.Method; -import java.util.*; -import java.util.concurrent.ConcurrentHashMap; +import org.springframework.util.Assert; +import org.springframework.util.ClassUtils; +import org.springframework.util.CollectionUtils; +import org.springframework.util.LinkedMultiValueMap; +import org.springframework.util.MultiValueMap; +import org.springframework.util.ReflectionUtils; /** * Abstract base class for HandlerMethod-based message handling. Provides most of * the logic required to discover handler methods at startup, find a matching handler * method at runtime for a given message and invoke it. - *

    - * Also supports discovering and invoking exception handling methods to process + * + *

    Also supports discovering and invoking exception handling methods to process * exceptions raised during message handling. * * @param the type of the Object that contains information mapping a - * {@link HandlerMethod} to incoming messages + * {@link org.springframework.messaging.handler.HandlerMethod} to incoming messages * * @author Rossen Stoyanchev * @since 4.0 @@ -52,15 +68,14 @@ public abstract class AbstractMethodMessageHandler protected final Log logger = LogFactory.getLog(getClass()); - public static final String LOOKUP_DESTINATION_HEADER = "lookupDestination"; - - private Collection destinationPrefixes = new ArrayList(); private List customArgumentResolvers = new ArrayList(); + private List customReturnValueHandlers = new ArrayList(); private HandlerMethodArgumentResolverComposite argumentResolvers = new HandlerMethodArgumentResolverComposite(); + private HandlerMethodReturnValueHandlerComposite returnValueHandlers =new HandlerMethodReturnValueHandlerComposite(); private ApplicationContext applicationContext; @@ -306,7 +321,6 @@ public abstract class AbstractMethodMessageHandler @Override public void handleMessage(Message message) throws MessagingException { - String destination = getDestination(message); if (destination == null) { logger.trace("Ignoring message, no destination"); @@ -325,7 +339,8 @@ public abstract class AbstractMethodMessageHandler logger.debug("Handling message, lookupDestination=" + lookupDestination); } - message = MessageBuilder.fromMessage(message).setHeader(LOOKUP_DESTINATION_HEADER, lookupDestination).build(); + message = MessageBuilder.fromMessage(message).setHeader( + DestinationPatternsMessageCondition.LOOKUP_DESTINATION_HEADER, lookupDestination).build(); handleMessageInternal(message, lookupDestination); } @@ -337,7 +352,7 @@ public abstract class AbstractMethodMessageHandler * prefixes and if a match is found return the destination with the prefix removed. *

    If no destination prefixes are configured, the destination is returned as is. * @return the destination to use to find matching message handling methods - * or {@code null} if the destination does not match + * or {@code null} if the destination does not match */ protected String getLookupDestination(String destination) { if (destination == null) { @@ -355,7 +370,6 @@ public abstract class AbstractMethodMessageHandler } protected void handleMessageInternal(Message message, String lookupDestination) { - List matches = new ArrayList(); List mappingsByUrl = this.destinationLookup.get(lookupDestination); @@ -378,8 +392,7 @@ public abstract class AbstractMethodMessageHandler Collections.sort(matches, comparator); if (logger.isTraceEnabled()) { - logger.trace("Found " + matches.size() + " matching mapping(s) for [" - + lookupDestination + "] : " + matches); + logger.trace("Found " + matches.size() + " matching mapping(s) for [" + lookupDestination + "] : " + matches); } Match bestMatch = matches.get(0); @@ -388,9 +401,8 @@ public abstract class AbstractMethodMessageHandler if (comparator.compare(bestMatch, secondBestMatch) == 0) { Method m1 = bestMatch.handlerMethod.getMethod(); Method m2 = secondBestMatch.handlerMethod.getMethod(); - throw new IllegalStateException( - "Ambiguous handler methods mapped for destination '" - + lookupDestination + "': {" + m1 + ", " + m2 + "}"); + throw new IllegalStateException("Ambiguous handler methods mapped for destination '" + + lookupDestination + "': {" + m1 + ", " + m2 + "}"); } } diff --git a/spring-messaging/src/main/java/org/springframework/messaging/handler/method/HandlerMethodArgumentResolver.java b/spring-messaging/src/main/java/org/springframework/messaging/handler/support/HandlerMethodArgumentResolver.java similarity index 97% rename from spring-messaging/src/main/java/org/springframework/messaging/handler/method/HandlerMethodArgumentResolver.java rename to spring-messaging/src/main/java/org/springframework/messaging/handler/support/HandlerMethodArgumentResolver.java index 55da8fcc9a..bcb51e9b23 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/handler/method/HandlerMethodArgumentResolver.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/handler/support/HandlerMethodArgumentResolver.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.messaging.handler.method; +package org.springframework.messaging.handler.support; import org.springframework.core.MethodParameter; import org.springframework.messaging.Message; diff --git a/spring-messaging/src/main/java/org/springframework/messaging/handler/method/HandlerMethodArgumentResolverComposite.java b/spring-messaging/src/main/java/org/springframework/messaging/handler/support/HandlerMethodArgumentResolverComposite.java similarity index 98% rename from spring-messaging/src/main/java/org/springframework/messaging/handler/method/HandlerMethodArgumentResolverComposite.java rename to spring-messaging/src/main/java/org/springframework/messaging/handler/support/HandlerMethodArgumentResolverComposite.java index c3d552ca5b..46ad68f5bc 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/handler/method/HandlerMethodArgumentResolverComposite.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/handler/support/HandlerMethodArgumentResolverComposite.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.messaging.handler.method; +package org.springframework.messaging.handler.support; import java.util.Collections; import java.util.LinkedList; diff --git a/spring-messaging/src/main/java/org/springframework/messaging/handler/method/HandlerMethodReturnValueHandler.java b/spring-messaging/src/main/java/org/springframework/messaging/handler/support/HandlerMethodReturnValueHandler.java similarity index 97% rename from spring-messaging/src/main/java/org/springframework/messaging/handler/method/HandlerMethodReturnValueHandler.java rename to spring-messaging/src/main/java/org/springframework/messaging/handler/support/HandlerMethodReturnValueHandler.java index 95076ca6a2..7f3fb64601 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/handler/method/HandlerMethodReturnValueHandler.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/handler/support/HandlerMethodReturnValueHandler.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.messaging.handler.method; +package org.springframework.messaging.handler.support; import org.springframework.core.MethodParameter; import org.springframework.messaging.Message; diff --git a/spring-messaging/src/main/java/org/springframework/messaging/handler/method/HandlerMethodReturnValueHandlerComposite.java b/spring-messaging/src/main/java/org/springframework/messaging/handler/support/HandlerMethodReturnValueHandlerComposite.java similarity index 98% rename from spring-messaging/src/main/java/org/springframework/messaging/handler/method/HandlerMethodReturnValueHandlerComposite.java rename to spring-messaging/src/main/java/org/springframework/messaging/handler/support/HandlerMethodReturnValueHandlerComposite.java index 322fcbbb27..533c8d029c 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/handler/method/HandlerMethodReturnValueHandlerComposite.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/handler/support/HandlerMethodReturnValueHandlerComposite.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.messaging.handler.method; +package org.springframework.messaging.handler.support; import java.util.ArrayList; import java.util.Collections; diff --git a/spring-messaging/src/main/java/org/springframework/messaging/handler/method/InvocableHandlerMethod.java b/spring-messaging/src/main/java/org/springframework/messaging/handler/support/InvocableHandlerMethod.java similarity index 97% rename from spring-messaging/src/main/java/org/springframework/messaging/handler/method/InvocableHandlerMethod.java rename to spring-messaging/src/main/java/org/springframework/messaging/handler/support/InvocableHandlerMethod.java index e296784fc8..c664649fb6 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/handler/method/InvocableHandlerMethod.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/handler/support/InvocableHandlerMethod.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.messaging.handler.method; +package org.springframework.messaging.handler.support; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; @@ -25,13 +25,14 @@ import org.springframework.core.GenericTypeResolver; import org.springframework.core.MethodParameter; import org.springframework.core.ParameterNameDiscoverer; import org.springframework.messaging.Message; +import org.springframework.messaging.handler.HandlerMethod; import org.springframework.util.ReflectionUtils; /** * Invokes the handler method for a given message after resolving * its method argument values through registered {@link HandlerMethodArgumentResolver}s. - *

    - * Use {@link #setMessageMethodArgumentResolvers(HandlerMethodArgumentResolverComposite)} + * + *

    Use {@link #setMessageMethodArgumentResolvers(HandlerMethodArgumentResolverComposite)} * to customize the list of argument resolvers. * * @author Rossen Stoyanchev diff --git a/spring-messaging/src/main/java/org/springframework/messaging/handler/method/package-info.java b/spring-messaging/src/main/java/org/springframework/messaging/handler/support/package-info.java similarity index 58% rename from spring-messaging/src/main/java/org/springframework/messaging/handler/method/package-info.java rename to spring-messaging/src/main/java/org/springframework/messaging/handler/support/package-info.java index 50c2ad21ad..e42d320a56 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/handler/method/package-info.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/handler/support/package-info.java @@ -1,4 +1,4 @@ /** * Abstractions and classes for working with message-handling methods. */ -package org.springframework.messaging.handler.method; +package org.springframework.messaging.handler.support; diff --git a/spring-messaging/src/main/java/org/springframework/messaging/simp/SimpMessagingTemplate.java b/spring-messaging/src/main/java/org/springframework/messaging/simp/SimpMessagingTemplate.java index 1185649857..62b12bcee3 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/simp/SimpMessagingTemplate.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/simp/SimpMessagingTemplate.java @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package org.springframework.messaging.simp; import java.util.Map; diff --git a/spring-messaging/src/main/java/org/springframework/messaging/simp/annotation/package-info.java b/spring-messaging/src/main/java/org/springframework/messaging/simp/annotation/package-info.java index f5030addbd..c8f5429f53 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/simp/annotation/package-info.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/simp/annotation/package-info.java @@ -1,5 +1,5 @@ /** - * Annotations and support classes for handling messages from simple messaging - * protocols (like STOMP). + * Annotations and for handling messages from simple messaging protocols + * (like STOMP). */ package org.springframework.messaging.simp.annotation; diff --git a/spring-messaging/src/main/java/org/springframework/messaging/simp/annotation/support/PrincipalMethodArgumentResolver.java b/spring-messaging/src/main/java/org/springframework/messaging/simp/annotation/support/PrincipalMethodArgumentResolver.java index b718a80264..8cea1a5908 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/simp/annotation/support/PrincipalMethodArgumentResolver.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/simp/annotation/support/PrincipalMethodArgumentResolver.java @@ -20,7 +20,7 @@ import java.security.Principal; import org.springframework.core.MethodParameter; import org.springframework.messaging.Message; -import org.springframework.messaging.handler.method.HandlerMethodArgumentResolver; +import org.springframework.messaging.handler.support.HandlerMethodArgumentResolver; import org.springframework.messaging.simp.SimpMessageHeaderAccessor; /** diff --git a/spring-messaging/src/main/java/org/springframework/messaging/simp/annotation/support/SendToMethodReturnValueHandler.java b/spring-messaging/src/main/java/org/springframework/messaging/simp/annotation/support/SendToMethodReturnValueHandler.java index 898a25e3ce..e439bd02c2 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/simp/annotation/support/SendToMethodReturnValueHandler.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/simp/annotation/support/SendToMethodReturnValueHandler.java @@ -24,7 +24,7 @@ import org.springframework.messaging.Message; import org.springframework.messaging.MessageChannel; import org.springframework.messaging.core.MessagePostProcessor; import org.springframework.messaging.handler.annotation.SendTo; -import org.springframework.messaging.handler.method.HandlerMethodReturnValueHandler; +import org.springframework.messaging.handler.support.HandlerMethodReturnValueHandler; import org.springframework.messaging.simp.SimpMessageHeaderAccessor; import org.springframework.messaging.simp.SimpMessageSendingOperations; import org.springframework.messaging.simp.annotation.SendToUser; diff --git a/spring-messaging/src/main/java/org/springframework/messaging/simp/handler/SimpAnnotationMethodMessageHandler.java b/spring-messaging/src/main/java/org/springframework/messaging/simp/annotation/support/SimpAnnotationMethodMessageHandler.java similarity index 90% rename from spring-messaging/src/main/java/org/springframework/messaging/simp/handler/SimpAnnotationMethodMessageHandler.java rename to spring-messaging/src/main/java/org/springframework/messaging/simp/annotation/support/SimpAnnotationMethodMessageHandler.java index d287710a76..75ab0e944b 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/simp/handler/SimpAnnotationMethodMessageHandler.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/simp/annotation/support/SimpAnnotationMethodMessageHandler.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.messaging.simp.handler; +package org.springframework.messaging.simp.annotation.support; import java.lang.reflect.Method; import java.util.ArrayList; @@ -34,7 +34,12 @@ import org.springframework.format.support.DefaultFormattingConversionService; import org.springframework.messaging.Message; import org.springframework.messaging.MessageChannel; import org.springframework.messaging.SubscribableChannel; +import org.springframework.messaging.converter.ByteArrayMessageConverter; +import org.springframework.messaging.converter.CompositeMessageConverter; +import org.springframework.messaging.converter.MessageConverter; +import org.springframework.messaging.converter.StringMessageConverter; import org.springframework.messaging.core.AbstractMessageSendingTemplate; +import org.springframework.messaging.handler.HandlerMethod; import org.springframework.messaging.handler.annotation.MessageMapping; import org.springframework.messaging.handler.annotation.support.AnnotationExceptionHandlerMethodResolver; import org.springframework.messaging.handler.annotation.support.HeaderMethodArgumentResolver; @@ -42,25 +47,18 @@ import org.springframework.messaging.handler.annotation.support.HeadersMethodArg import org.springframework.messaging.handler.annotation.support.MessageMethodArgumentResolver; import org.springframework.messaging.handler.annotation.support.PathVariableMethodArgumentResolver; import org.springframework.messaging.handler.annotation.support.PayloadArgumentResolver; -import org.springframework.messaging.handler.condition.DestinationPatternsMessageCondition; -import org.springframework.messaging.handler.method.AbstractExceptionHandlerMethodResolver; -import org.springframework.messaging.handler.method.AbstractMethodMessageHandler; -import org.springframework.messaging.handler.method.HandlerMethod; -import org.springframework.messaging.handler.method.HandlerMethodArgumentResolver; -import org.springframework.messaging.handler.method.HandlerMethodReturnValueHandler; +import org.springframework.messaging.handler.support.AbstractExceptionHandlerMethodResolver; +import org.springframework.messaging.handler.support.AbstractMethodMessageHandler; +import org.springframework.messaging.handler.DestinationPatternsMessageCondition; +import org.springframework.messaging.handler.support.HandlerMethodArgumentResolver; +import org.springframework.messaging.handler.support.HandlerMethodReturnValueHandler; import org.springframework.messaging.simp.SimpMessageHeaderAccessor; import org.springframework.messaging.simp.SimpMessageSendingOperations; import org.springframework.messaging.simp.SimpMessagingTemplate; import org.springframework.messaging.simp.annotation.SubscribeMapping; -import org.springframework.messaging.simp.annotation.support.PrincipalMethodArgumentResolver; -import org.springframework.messaging.simp.annotation.support.SendToMethodReturnValueHandler; -import org.springframework.messaging.simp.annotation.support.SubscriptionMethodReturnValueHandler; +import org.springframework.messaging.simp.handler.SimpMessageMappingInfo; +import org.springframework.messaging.simp.handler.SimpMessageTypeMessageCondition; import org.springframework.messaging.support.MessageBuilder; -import org.springframework.messaging.support.channel.AbstractSubscribableChannel; -import org.springframework.messaging.support.converter.ByteArrayMessageConverter; -import org.springframework.messaging.support.converter.CompositeMessageConverter; -import org.springframework.messaging.support.converter.MessageConverter; -import org.springframework.messaging.support.converter.StringMessageConverter; import org.springframework.stereotype.Controller; import org.springframework.util.AntPathMatcher; import org.springframework.util.Assert; @@ -92,7 +90,7 @@ public class SimpAnnotationMethodMessageHandler extends AbstractMethodMessageHan private PathMatcher pathMatcher = new AntPathMatcher(); - private Object lifecycleMonitor = new Object(); + private final Object lifecycleMonitor = new Object(); private volatile boolean running = false; diff --git a/spring-messaging/src/main/java/org/springframework/messaging/simp/annotation/support/SubscriptionMethodReturnValueHandler.java b/spring-messaging/src/main/java/org/springframework/messaging/simp/annotation/support/SubscriptionMethodReturnValueHandler.java index e236ea9f2a..83db9531dd 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/simp/annotation/support/SubscriptionMethodReturnValueHandler.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/simp/annotation/support/SubscriptionMethodReturnValueHandler.java @@ -21,7 +21,7 @@ import org.springframework.messaging.Message; import org.springframework.messaging.core.MessagePostProcessor; import org.springframework.messaging.core.MessageSendingOperations; import org.springframework.messaging.handler.annotation.SendTo; -import org.springframework.messaging.handler.method.HandlerMethodReturnValueHandler; +import org.springframework.messaging.handler.support.HandlerMethodReturnValueHandler; import org.springframework.messaging.simp.SimpMessageHeaderAccessor; import org.springframework.messaging.simp.SimpMessageType; import org.springframework.messaging.simp.annotation.SendToUser; @@ -33,8 +33,8 @@ import org.springframework.util.Assert; * A {@link HandlerMethodReturnValueHandler} for replying directly to a subscription. It * supports methods annotated with {@link org.springframework.messaging.simp.annotation.SubscribeMapping} unless they're also annotated * with {@link SendTo} or {@link SendToUser}. - *

    - * The value returned from the method is converted, and turned to a {@link Message} and + * + *

    The value returned from the method is converted, and turned to a {@link Message} and * then enriched with the sessionId, subscriptionId, and destination of the input message. * The message is then sent directly back to the connected client. * diff --git a/spring-messaging/src/main/java/org/springframework/messaging/simp/annotation/support/package-info.java b/spring-messaging/src/main/java/org/springframework/messaging/simp/annotation/support/package-info.java new file mode 100644 index 0000000000..2cddb57e4e --- /dev/null +++ b/spring-messaging/src/main/java/org/springframework/messaging/simp/annotation/support/package-info.java @@ -0,0 +1,5 @@ +/** + * Support classes for handling messages from simple messaging protocols + * (like STOMP). + */ +package org.springframework.messaging.simp.annotation.support; diff --git a/spring-messaging/src/main/java/org/springframework/messaging/simp/config/AbstractMessageBrokerConfiguration.java b/spring-messaging/src/main/java/org/springframework/messaging/simp/config/AbstractMessageBrokerConfiguration.java index 65605dcb2b..dabb3836a8 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/simp/config/AbstractMessageBrokerConfiguration.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/simp/config/AbstractMessageBrokerConfiguration.java @@ -16,20 +16,32 @@ package org.springframework.messaging.simp.config; +import java.util.ArrayList; +import java.util.List; + import org.springframework.context.annotation.Bean; import org.springframework.messaging.Message; +import org.springframework.messaging.converter.ByteArrayMessageConverter; +import org.springframework.messaging.converter.CompositeMessageConverter; +import org.springframework.messaging.converter.DefaultContentTypeResolver; +import org.springframework.messaging.converter.MappingJackson2MessageConverter; +import org.springframework.messaging.converter.MessageConverter; +import org.springframework.messaging.converter.StringMessageConverter; import org.springframework.messaging.simp.SimpMessagingTemplate; -import org.springframework.messaging.simp.handler.*; -import org.springframework.messaging.support.channel.AbstractSubscribableChannel; -import org.springframework.messaging.support.channel.ExecutorSubscribableChannel; -import org.springframework.messaging.support.converter.*; +import org.springframework.messaging.simp.annotation.support.SimpAnnotationMethodMessageHandler; +import org.springframework.messaging.simp.handler.AbstractBrokerMessageHandler; +import org.springframework.messaging.simp.handler.DefaultUserDestinationResolver; +import org.springframework.messaging.simp.handler.DefaultUserSessionRegistry; +import org.springframework.messaging.simp.handler.SimpleBrokerMessageHandler; +import org.springframework.messaging.simp.handler.UserDestinationMessageHandler; +import org.springframework.messaging.simp.handler.UserDestinationResolver; +import org.springframework.messaging.simp.handler.UserSessionRegistry; +import org.springframework.messaging.support.AbstractSubscribableChannel; +import org.springframework.messaging.support.ExecutorSubscribableChannel; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.util.ClassUtils; import org.springframework.util.MimeTypeUtils; -import java.util.ArrayList; -import java.util.List; - /** * Provides essential configuration for handling messages with simple messaging * protocols such as STOMP. diff --git a/spring-messaging/src/main/java/org/springframework/messaging/simp/config/ChannelRegistration.java b/spring-messaging/src/main/java/org/springframework/messaging/simp/config/ChannelRegistration.java index 27d969a109..9260c909a6 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/simp/config/ChannelRegistration.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/simp/config/ChannelRegistration.java @@ -16,12 +16,12 @@ package org.springframework.messaging.simp.config; -import org.springframework.messaging.support.channel.ChannelInterceptor; - import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import org.springframework.messaging.support.ChannelInterceptor; + /** * A registration class for customizing the configuration for a * {@link org.springframework.messaging.MessageChannel}. diff --git a/spring-messaging/src/main/java/org/springframework/messaging/simp/handler/AbstractBrokerMessageHandler.java b/spring-messaging/src/main/java/org/springframework/messaging/simp/handler/AbstractBrokerMessageHandler.java index 381f19a510..4be8bddf88 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/simp/handler/AbstractBrokerMessageHandler.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/simp/handler/AbstractBrokerMessageHandler.java @@ -22,6 +22,7 @@ import java.util.concurrent.atomic.AtomicBoolean; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; + import org.springframework.context.ApplicationEventPublisher; import org.springframework.context.ApplicationEventPublisherAware; import org.springframework.context.SmartLifecycle; diff --git a/spring-messaging/src/main/java/org/springframework/messaging/simp/handler/SimpMessageMappingInfo.java b/spring-messaging/src/main/java/org/springframework/messaging/simp/handler/SimpMessageMappingInfo.java index f7043e35d5..4464fb7069 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/simp/handler/SimpMessageMappingInfo.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/simp/handler/SimpMessageMappingInfo.java @@ -17,14 +17,14 @@ package org.springframework.messaging.simp.handler; import org.springframework.messaging.Message; -import org.springframework.messaging.handler.condition.DestinationPatternsMessageCondition; -import org.springframework.messaging.handler.condition.MessageCondition; +import org.springframework.messaging.handler.DestinationPatternsMessageCondition; +import org.springframework.messaging.handler.MessageCondition; /** * Encapsulates the following request mapping conditions: *

      - *
    1. {@link SimpMessageTypeMessageCondition} - *
    2. {@link DestinationPatternsMessageCondition} + *
    3. {@link SimpMessageTypeMessageCondition} + *
    4. {@link DestinationPatternsMessageCondition} *
    * * @author Rossen Stoyanchev diff --git a/spring-messaging/src/main/java/org/springframework/messaging/simp/handler/SimpMessageTypeMessageCondition.java b/spring-messaging/src/main/java/org/springframework/messaging/simp/handler/SimpMessageTypeMessageCondition.java index 30c1845cb2..fe6f4ab1e1 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/simp/handler/SimpMessageTypeMessageCondition.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/simp/handler/SimpMessageTypeMessageCondition.java @@ -17,7 +17,7 @@ package org.springframework.messaging.simp.handler; import org.springframework.messaging.Message; -import org.springframework.messaging.handler.condition.AbstractMessageCondition; +import org.springframework.messaging.handler.AbstractMessageCondition; import org.springframework.messaging.simp.SimpMessageHeaderAccessor; import org.springframework.messaging.simp.SimpMessageType; import org.springframework.util.Assert; diff --git a/spring-messaging/src/main/java/org/springframework/messaging/simp/handler/UserDestinationMessageHandler.java b/spring-messaging/src/main/java/org/springframework/messaging/simp/handler/UserDestinationMessageHandler.java index 01b177ae44..5099d79410 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/simp/handler/UserDestinationMessageHandler.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/simp/handler/UserDestinationMessageHandler.java @@ -20,8 +20,13 @@ import java.util.Set; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; + import org.springframework.context.SmartLifecycle; -import org.springframework.messaging.*; +import org.springframework.messaging.Message; +import org.springframework.messaging.MessageChannel; +import org.springframework.messaging.MessageHandler; +import org.springframework.messaging.MessagingException; +import org.springframework.messaging.SubscribableChannel; import org.springframework.messaging.core.MessageSendingOperations; import org.springframework.messaging.simp.SimpMessagingTemplate; import org.springframework.util.Assert; diff --git a/spring-messaging/src/main/java/org/springframework/messaging/simp/stomp/StompBrokerRelayMessageHandler.java b/spring-messaging/src/main/java/org/springframework/messaging/simp/stomp/StompBrokerRelayMessageHandler.java index 058e0b75dc..5971b64b11 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/simp/stomp/StompBrokerRelayMessageHandler.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/simp/stomp/StompBrokerRelayMessageHandler.java @@ -21,23 +21,26 @@ import java.util.Map; import java.util.concurrent.Callable; import java.util.concurrent.ConcurrentHashMap; -import org.springframework.messaging.*; +import org.springframework.messaging.Message; +import org.springframework.messaging.MessageChannel; +import org.springframework.messaging.MessageDeliveryException; +import org.springframework.messaging.SubscribableChannel; import org.springframework.messaging.simp.SimpMessageHeaderAccessor; import org.springframework.messaging.simp.SimpMessageType; import org.springframework.messaging.simp.handler.AbstractBrokerMessageHandler; import org.springframework.messaging.support.MessageBuilder; -import org.springframework.messaging.support.tcp.FixedIntervalReconnectStrategy; -import org.springframework.messaging.support.tcp.ReactorNettyTcpClient; -import org.springframework.messaging.support.tcp.TcpConnection; -import org.springframework.messaging.support.tcp.TcpConnectionHandler; -import org.springframework.messaging.support.tcp.TcpOperations; +import org.springframework.messaging.tcp.FixedIntervalReconnectStrategy; +import org.springframework.messaging.tcp.TcpConnection; +import org.springframework.messaging.tcp.TcpConnectionHandler; +import org.springframework.messaging.tcp.TcpOperations; +import org.springframework.messaging.tcp.reactor.ReactorNettyTcpClient; import org.springframework.util.Assert; import org.springframework.util.concurrent.ListenableFuture; import org.springframework.util.concurrent.ListenableFutureCallback; import org.springframework.util.concurrent.ListenableFutureTask; /** - * A {@link MessageHandler} that handles messages by forwarding them to a STOMP broker. + * A {@link org.springframework.messaging.MessageHandler} that handles messages by forwarding them to a STOMP broker. * For each new {@link SimpMessageType#CONNECT CONNECT} message, an independent TCP * connection to the broker is opened and used exclusively for all messages from the * client that originated the CONNECT message. Messages from the same client are diff --git a/spring-messaging/src/main/java/org/springframework/messaging/simp/stomp/StompDecoder.java b/spring-messaging/src/main/java/org/springframework/messaging/simp/stomp/StompDecoder.java index 2d219b1440..cc3166e8ce 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/simp/stomp/StompDecoder.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/simp/stomp/StompDecoder.java @@ -22,6 +22,7 @@ import java.nio.charset.Charset; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; + import org.springframework.messaging.Message; import org.springframework.messaging.simp.SimpMessageType; import org.springframework.messaging.support.MessageBuilder; diff --git a/spring-messaging/src/main/java/org/springframework/messaging/support/channel/AbstractMessageChannel.java b/spring-messaging/src/main/java/org/springframework/messaging/support/AbstractMessageChannel.java similarity index 96% rename from spring-messaging/src/main/java/org/springframework/messaging/support/channel/AbstractMessageChannel.java rename to spring-messaging/src/main/java/org/springframework/messaging/support/AbstractMessageChannel.java index 700bdeb21a..57ef7373df 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/support/channel/AbstractMessageChannel.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/support/AbstractMessageChannel.java @@ -14,12 +14,13 @@ * limitations under the License. */ -package org.springframework.messaging.support.channel; +package org.springframework.messaging.support; import java.util.List; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; + import org.springframework.beans.factory.BeanNameAware; import org.springframework.messaging.Message; import org.springframework.messaging.MessageChannel; @@ -36,12 +37,12 @@ import org.springframework.util.ObjectUtils; */ public abstract class AbstractMessageChannel implements MessageChannel, BeanNameAware { - protected Log logger = LogFactory.getLog(getClass()); - - private String beanName; + protected final Log logger = LogFactory.getLog(getClass()); private final ChannelInterceptorChain interceptorChain = new ChannelInterceptorChain(); + private String beanName; + public AbstractMessageChannel() { this.beanName = getClass().getSimpleName() + "@" + ObjectUtils.getIdentityHexString(this); diff --git a/spring-messaging/src/main/java/org/springframework/messaging/support/channel/AbstractSubscribableChannel.java b/spring-messaging/src/main/java/org/springframework/messaging/support/AbstractSubscribableChannel.java similarity index 97% rename from spring-messaging/src/main/java/org/springframework/messaging/support/channel/AbstractSubscribableChannel.java rename to spring-messaging/src/main/java/org/springframework/messaging/support/AbstractSubscribableChannel.java index 8e46168255..ac0b440647 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/support/channel/AbstractSubscribableChannel.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/support/AbstractSubscribableChannel.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.messaging.support.channel; +package org.springframework.messaging.support; import org.springframework.messaging.MessageHandler; import org.springframework.messaging.SubscribableChannel; @@ -27,7 +27,6 @@ import org.springframework.messaging.SubscribableChannel; */ public abstract class AbstractSubscribableChannel extends AbstractMessageChannel implements SubscribableChannel { - @Override public final boolean subscribe(MessageHandler handler) { if (hasSubscription(handler)) { @@ -40,6 +39,15 @@ public abstract class AbstractSubscribableChannel extends AbstractMessageChannel return subscribeInternal(handler); } + @Override + public final boolean unsubscribe(MessageHandler handler) { + if (logger.isDebugEnabled()) { + logger.debug("[" + getBeanName() + "] unsubscribing " + handler); + } + return unsubscribeInternal(handler); + } + + /** * Whether the given {@link MessageHandler} is already subscribed. */ @@ -50,14 +58,6 @@ public abstract class AbstractSubscribableChannel extends AbstractMessageChannel */ protected abstract boolean subscribeInternal(MessageHandler handler); - @Override - public final boolean unsubscribe(MessageHandler handler) { - if (logger.isDebugEnabled()) { - logger.debug("[" + getBeanName() + "] unsubscribing " + handler); - } - return unsubscribeInternal(handler); - } - /** * Unsubscribe the given {@link MessageHandler}. */ diff --git a/spring-messaging/src/main/java/org/springframework/messaging/support/channel/ChannelInterceptor.java b/spring-messaging/src/main/java/org/springframework/messaging/support/ChannelInterceptor.java similarity index 97% rename from spring-messaging/src/main/java/org/springframework/messaging/support/channel/ChannelInterceptor.java rename to spring-messaging/src/main/java/org/springframework/messaging/support/ChannelInterceptor.java index 8c7c26b7bc..7eba551449 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/support/channel/ChannelInterceptor.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/support/ChannelInterceptor.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.messaging.support.channel; +package org.springframework.messaging.support; import org.springframework.messaging.Message; import org.springframework.messaging.MessageChannel; diff --git a/spring-messaging/src/main/java/org/springframework/messaging/support/channel/ChannelInterceptorAdapter.java b/spring-messaging/src/main/java/org/springframework/messaging/support/ChannelInterceptorAdapter.java similarity index 83% rename from spring-messaging/src/main/java/org/springframework/messaging/support/channel/ChannelInterceptorAdapter.java rename to spring-messaging/src/main/java/org/springframework/messaging/support/ChannelInterceptorAdapter.java index 342e3ce2e8..cb0f815455 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/support/channel/ChannelInterceptorAdapter.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/support/ChannelInterceptorAdapter.java @@ -14,19 +14,19 @@ * limitations under the License. */ -package org.springframework.messaging.support.channel; +package org.springframework.messaging.support; import org.springframework.messaging.Message; import org.springframework.messaging.MessageChannel; /** - * A {@link ChannelInterceptor} with empty method implementations as a convenience. + * A {@link ChannelInterceptor} base class with empty method implementations + * as a convenience. * * @author Mark Fisher * @since 4.0 */ -public class ChannelInterceptorAdapter implements ChannelInterceptor { - +public abstract class ChannelInterceptorAdapter implements ChannelInterceptor { public Message preSend(Message message, MessageChannel channel) { return message; diff --git a/spring-messaging/src/main/java/org/springframework/messaging/support/channel/ChannelInterceptorChain.java b/spring-messaging/src/main/java/org/springframework/messaging/support/ChannelInterceptorChain.java similarity index 98% rename from spring-messaging/src/main/java/org/springframework/messaging/support/channel/ChannelInterceptorChain.java rename to spring-messaging/src/main/java/org/springframework/messaging/support/ChannelInterceptorChain.java index eb0f7b2917..f28eee36cb 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/support/channel/ChannelInterceptorChain.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/support/ChannelInterceptorChain.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.messaging.support.channel; +package org.springframework.messaging.support; import java.util.Collections; import java.util.List; diff --git a/spring-messaging/src/main/java/org/springframework/messaging/support/channel/ExecutorSubscribableChannel.java b/spring-messaging/src/main/java/org/springframework/messaging/support/ExecutorSubscribableChannel.java similarity index 97% rename from spring-messaging/src/main/java/org/springframework/messaging/support/channel/ExecutorSubscribableChannel.java rename to spring-messaging/src/main/java/org/springframework/messaging/support/ExecutorSubscribableChannel.java index ecf71c9c4f..6d8c109d6d 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/support/channel/ExecutorSubscribableChannel.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/support/ExecutorSubscribableChannel.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.messaging.support.channel; +package org.springframework.messaging.support; import java.util.Set; import java.util.concurrent.CopyOnWriteArraySet; diff --git a/spring-messaging/src/main/java/org/springframework/messaging/support/channel/package-info.java b/spring-messaging/src/main/java/org/springframework/messaging/support/channel/package-info.java deleted file mode 100644 index df46d0f87d..0000000000 --- a/spring-messaging/src/main/java/org/springframework/messaging/support/channel/package-info.java +++ /dev/null @@ -1,5 +0,0 @@ -/** - * Provides {@link org.springframework.messaging.MessageChannel} implementations - * classes as well as channel interceptor support. - */ -package org.springframework.messaging.support.channel; \ No newline at end of file diff --git a/spring-messaging/src/main/java/org/springframework/messaging/support/converter/package-info.java b/spring-messaging/src/main/java/org/springframework/messaging/support/converter/package-info.java deleted file mode 100644 index 5877692ffa..0000000000 --- a/spring-messaging/src/main/java/org/springframework/messaging/support/converter/package-info.java +++ /dev/null @@ -1,4 +0,0 @@ -/** - * Provides support for message conversion. - */ -package org.springframework.messaging.support.converter; \ No newline at end of file diff --git a/spring-messaging/src/main/java/org/springframework/messaging/support/package-info.java b/spring-messaging/src/main/java/org/springframework/messaging/support/package-info.java index f3f59a2869..fe50681b44 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/support/package-info.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/support/package-info.java @@ -1,6 +1,7 @@ /** * Provides implementations of {@link org.springframework.messaging.Message} along with - * a MessageBuilder and MessageHeaderAccessor for building and working with messages - * and message headers. + * a MessageBuilder and MessageHeaderAccessor for building and working with messages and + * message headers, as well as various {@link org.springframework.messaging.MessageChannel} + * implementations and channel interceptor support. */ package org.springframework.messaging.support; \ No newline at end of file diff --git a/spring-messaging/src/main/java/org/springframework/messaging/support/tcp/package-info.java b/spring-messaging/src/main/java/org/springframework/messaging/support/tcp/package-info.java deleted file mode 100644 index 56fb3227dc..0000000000 --- a/spring-messaging/src/main/java/org/springframework/messaging/support/tcp/package-info.java +++ /dev/null @@ -1,9 +0,0 @@ -/** - * Contains abstractions and implementation classes for establishing TCP connections via - * {@link org.springframework.messaging.support.tcp.TcpOperations TcpOperations}, - * handling messages via - * {@link org.springframework.messaging.support.tcp.TcpConnectionHandler TcpConnectionHandler}, - * as well as sending messages via - * {@link org.springframework.messaging.support.tcp.TcpConnection TcpConnection}. - */ -package org.springframework.messaging.support.tcp; diff --git a/spring-messaging/src/main/java/org/springframework/messaging/support/tcp/FixedIntervalReconnectStrategy.java b/spring-messaging/src/main/java/org/springframework/messaging/tcp/FixedIntervalReconnectStrategy.java similarity index 95% rename from spring-messaging/src/main/java/org/springframework/messaging/support/tcp/FixedIntervalReconnectStrategy.java rename to spring-messaging/src/main/java/org/springframework/messaging/tcp/FixedIntervalReconnectStrategy.java index f36db3a86c..92afe924b2 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/support/tcp/FixedIntervalReconnectStrategy.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/tcp/FixedIntervalReconnectStrategy.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.messaging.support.tcp; +package org.springframework.messaging.tcp; /** * A simple strategy for making reconnect attempts at a fixed interval. diff --git a/spring-messaging/src/main/java/org/springframework/messaging/support/tcp/ReconnectStrategy.java b/spring-messaging/src/main/java/org/springframework/messaging/tcp/ReconnectStrategy.java similarity index 95% rename from spring-messaging/src/main/java/org/springframework/messaging/support/tcp/ReconnectStrategy.java rename to spring-messaging/src/main/java/org/springframework/messaging/tcp/ReconnectStrategy.java index 7a2178f53d..c9b302f406 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/support/tcp/ReconnectStrategy.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/tcp/ReconnectStrategy.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.messaging.support.tcp; +package org.springframework.messaging.tcp; /** diff --git a/spring-messaging/src/main/java/org/springframework/messaging/support/tcp/TcpConnection.java b/spring-messaging/src/main/java/org/springframework/messaging/tcp/TcpConnection.java similarity index 97% rename from spring-messaging/src/main/java/org/springframework/messaging/support/tcp/TcpConnection.java rename to spring-messaging/src/main/java/org/springframework/messaging/tcp/TcpConnection.java index 8e88abdd8e..e74663b5cb 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/support/tcp/TcpConnection.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/tcp/TcpConnection.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.messaging.support.tcp; +package org.springframework.messaging.tcp; import org.springframework.messaging.Message; import org.springframework.util.concurrent.ListenableFuture; diff --git a/spring-messaging/src/main/java/org/springframework/messaging/support/tcp/TcpConnectionHandler.java b/spring-messaging/src/main/java/org/springframework/messaging/tcp/TcpConnectionHandler.java similarity index 96% rename from spring-messaging/src/main/java/org/springframework/messaging/support/tcp/TcpConnectionHandler.java rename to spring-messaging/src/main/java/org/springframework/messaging/tcp/TcpConnectionHandler.java index 43b37487bb..bb5841be06 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/support/tcp/TcpConnectionHandler.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/tcp/TcpConnectionHandler.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.messaging.support.tcp; +package org.springframework.messaging.tcp; import org.springframework.messaging.Message; diff --git a/spring-messaging/src/main/java/org/springframework/messaging/support/tcp/TcpOperations.java b/spring-messaging/src/main/java/org/springframework/messaging/tcp/TcpOperations.java similarity index 97% rename from spring-messaging/src/main/java/org/springframework/messaging/support/tcp/TcpOperations.java rename to spring-messaging/src/main/java/org/springframework/messaging/tcp/TcpOperations.java index 4d9d7a6b4a..6070ad13d6 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/support/tcp/TcpOperations.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/tcp/TcpOperations.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.messaging.support.tcp; +package org.springframework.messaging.tcp; import org.springframework.util.concurrent.ListenableFuture; diff --git a/spring-messaging/src/main/java/org/springframework/messaging/tcp/package-info.java b/spring-messaging/src/main/java/org/springframework/messaging/tcp/package-info.java new file mode 100644 index 0000000000..4e13d2e88c --- /dev/null +++ b/spring-messaging/src/main/java/org/springframework/messaging/tcp/package-info.java @@ -0,0 +1,9 @@ +/** + * Contains abstractions and implementation classes for establishing TCP connections via + * {@link org.springframework.messaging.tcp.TcpOperations TcpOperations}, + * handling messages via + * {@link org.springframework.messaging.tcp.TcpConnectionHandler TcpConnectionHandler}, + * as well as sending messages via + * {@link org.springframework.messaging.tcp.TcpConnection TcpConnection}. + */ +package org.springframework.messaging.tcp; diff --git a/spring-messaging/src/main/java/org/springframework/messaging/support/tcp/AbstractPromiseToListenableFutureAdapter.java b/spring-messaging/src/main/java/org/springframework/messaging/tcp/reactor/AbstractPromiseToListenableFutureAdapter.java similarity index 98% rename from spring-messaging/src/main/java/org/springframework/messaging/support/tcp/AbstractPromiseToListenableFutureAdapter.java rename to spring-messaging/src/main/java/org/springframework/messaging/tcp/reactor/AbstractPromiseToListenableFutureAdapter.java index 7ccbd188ed..02d0d19cca 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/support/tcp/AbstractPromiseToListenableFutureAdapter.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/tcp/reactor/AbstractPromiseToListenableFutureAdapter.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.messaging.support.tcp; +package org.springframework.messaging.tcp.reactor; import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; diff --git a/spring-messaging/src/main/java/org/springframework/messaging/support/tcp/PassThroughPromiseToListenableFutureAdapter.java b/spring-messaging/src/main/java/org/springframework/messaging/tcp/reactor/PassThroughPromiseToListenableFutureAdapter.java similarity index 95% rename from spring-messaging/src/main/java/org/springframework/messaging/support/tcp/PassThroughPromiseToListenableFutureAdapter.java rename to spring-messaging/src/main/java/org/springframework/messaging/tcp/reactor/PassThroughPromiseToListenableFutureAdapter.java index 8f62b91ce8..05a586ef7e 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/support/tcp/PassThroughPromiseToListenableFutureAdapter.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/tcp/reactor/PassThroughPromiseToListenableFutureAdapter.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.messaging.support.tcp; +package org.springframework.messaging.tcp.reactor; import reactor.core.composable.Promise; diff --git a/spring-messaging/src/main/java/org/springframework/messaging/support/tcp/ReactorNettyTcpClient.java b/spring-messaging/src/main/java/org/springframework/messaging/tcp/reactor/ReactorNettyTcpClient.java similarity index 94% rename from spring-messaging/src/main/java/org/springframework/messaging/support/tcp/ReactorNettyTcpClient.java rename to spring-messaging/src/main/java/org/springframework/messaging/tcp/reactor/ReactorNettyTcpClient.java index 196eb7a209..3346e57388 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/support/tcp/ReactorNettyTcpClient.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/tcp/reactor/ReactorNettyTcpClient.java @@ -14,13 +14,16 @@ * limitations under the License. */ -package org.springframework.messaging.support.tcp; +package org.springframework.messaging.tcp.reactor; import java.net.InetSocketAddress; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.messaging.Message; +import org.springframework.messaging.tcp.ReconnectStrategy; +import org.springframework.messaging.tcp.TcpConnectionHandler; +import org.springframework.messaging.tcp.TcpOperations; import org.springframework.util.Assert; import org.springframework.util.concurrent.ListenableFuture; @@ -43,7 +46,7 @@ import reactor.tuple.Tuple; import reactor.tuple.Tuple2; /** - * A Reactor/Netty implementation of {@link TcpOperations}. + * A Reactor/Netty implementation of {@link org.springframework.messaging.tcp.TcpOperations}. * * @author Rossen Stoyanchev * @since 4.0 diff --git a/spring-messaging/src/main/java/org/springframework/messaging/support/tcp/ReactorTcpConnection.java b/spring-messaging/src/main/java/org/springframework/messaging/tcp/reactor/ReactorTcpConnection.java similarity index 94% rename from spring-messaging/src/main/java/org/springframework/messaging/support/tcp/ReactorTcpConnection.java rename to spring-messaging/src/main/java/org/springframework/messaging/tcp/reactor/ReactorTcpConnection.java index 248f2f4e25..e4c47c9795 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/support/tcp/ReactorTcpConnection.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/tcp/reactor/ReactorTcpConnection.java @@ -14,9 +14,10 @@ * limitations under the License. */ -package org.springframework.messaging.support.tcp; +package org.springframework.messaging.tcp.reactor; import org.springframework.messaging.Message; +import org.springframework.messaging.tcp.TcpConnection; import org.springframework.util.concurrent.ListenableFuture; import reactor.core.composable.Promise; diff --git a/spring-messaging/src/main/java/org/springframework/messaging/tcp/reactor/package-info.java b/spring-messaging/src/main/java/org/springframework/messaging/tcp/reactor/package-info.java new file mode 100644 index 0000000000..e80e0a4c94 --- /dev/null +++ b/spring-messaging/src/main/java/org/springframework/messaging/tcp/reactor/package-info.java @@ -0,0 +1,4 @@ +/** + * Contains support for TCP messaging based on Reactor. + */ +package org.springframework.messaging.tcp.reactor; diff --git a/spring-messaging/src/test/java/org/springframework/messaging/support/converter/AbstractMessageConverterTests.java b/spring-messaging/src/test/java/org/springframework/messaging/converter/AbstractMessageConverterTests.java similarity index 96% rename from spring-messaging/src/test/java/org/springframework/messaging/support/converter/AbstractMessageConverterTests.java rename to spring-messaging/src/test/java/org/springframework/messaging/converter/AbstractMessageConverterTests.java index 5d116cebae..463f1657bd 100644 --- a/spring-messaging/src/test/java/org/springframework/messaging/support/converter/AbstractMessageConverterTests.java +++ b/spring-messaging/src/test/java/org/springframework/messaging/converter/AbstractMessageConverterTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.messaging.support.converter; +package org.springframework.messaging.converter; import java.util.Collection; import java.util.Collections; @@ -32,7 +32,7 @@ import org.springframework.util.MimeTypeUtils; import static org.junit.Assert.*; /** - * Test fixture for {@link AbstractMessageConverter}. + * Test fixture for {@link org.springframework.messaging.converter.AbstractMessageConverter}. * * @author Rossen Stoyanchev */ diff --git a/spring-messaging/src/test/java/org/springframework/messaging/support/converter/DefaultContentTypeResolverTests.java b/spring-messaging/src/test/java/org/springframework/messaging/converter/DefaultContentTypeResolverTests.java similarity index 89% rename from spring-messaging/src/test/java/org/springframework/messaging/support/converter/DefaultContentTypeResolverTests.java rename to spring-messaging/src/test/java/org/springframework/messaging/converter/DefaultContentTypeResolverTests.java index 4c77cb0787..e7a8b8b601 100644 --- a/spring-messaging/src/test/java/org/springframework/messaging/support/converter/DefaultContentTypeResolverTests.java +++ b/spring-messaging/src/test/java/org/springframework/messaging/converter/DefaultContentTypeResolverTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.messaging.support.converter; +package org.springframework.messaging.converter; import java.util.Collections; import java.util.HashMap; @@ -23,12 +23,13 @@ import java.util.Map; import org.junit.Before; import org.junit.Test; import org.springframework.messaging.MessageHeaders; +import org.springframework.messaging.converter.DefaultContentTypeResolver; import org.springframework.util.MimeTypeUtils; import static org.junit.Assert.*; /** - * Test fixture for {@link DefaultContentTypeResolver}. + * Test fixture for {@link org.springframework.messaging.converter.DefaultContentTypeResolver}. * * @author Rossen Stoyanchev */ diff --git a/spring-messaging/src/test/java/org/springframework/messaging/support/converter/MappingJackson2MessageConverterTests.java b/spring-messaging/src/test/java/org/springframework/messaging/converter/MappingJackson2MessageConverterTests.java similarity index 97% rename from spring-messaging/src/test/java/org/springframework/messaging/support/converter/MappingJackson2MessageConverterTests.java rename to spring-messaging/src/test/java/org/springframework/messaging/converter/MappingJackson2MessageConverterTests.java index 2c95d13e40..38a52817c2 100644 --- a/spring-messaging/src/test/java/org/springframework/messaging/support/converter/MappingJackson2MessageConverterTests.java +++ b/spring-messaging/src/test/java/org/springframework/messaging/converter/MappingJackson2MessageConverterTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.messaging.support.converter; +package org.springframework.messaging.converter; import java.io.IOException; import java.nio.charset.Charset; @@ -32,7 +32,7 @@ import org.springframework.util.MimeType; import static org.junit.Assert.*; /** - * Test fixture for {@link MappingJackson2MessageConverter}. + * Test fixture for {@link org.springframework.messaging.converter.MappingJackson2MessageConverter}. * * @author Rossen Stoyanchev */ diff --git a/spring-messaging/src/test/java/org/springframework/messaging/support/converter/StringMessageConverterTests.java b/spring-messaging/src/test/java/org/springframework/messaging/converter/StringMessageConverterTests.java similarity index 96% rename from spring-messaging/src/test/java/org/springframework/messaging/support/converter/StringMessageConverterTests.java rename to spring-messaging/src/test/java/org/springframework/messaging/converter/StringMessageConverterTests.java index 49b94a30c2..11bcc1e98c 100644 --- a/spring-messaging/src/test/java/org/springframework/messaging/support/converter/StringMessageConverterTests.java +++ b/spring-messaging/src/test/java/org/springframework/messaging/converter/StringMessageConverterTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.messaging.support.converter; +package org.springframework.messaging.converter; import java.nio.charset.Charset; import java.util.HashMap; @@ -31,7 +31,7 @@ import org.springframework.util.MimeTypeUtils; import static org.junit.Assert.*; /** - * Test fixture for {@link StringMessageConverter}. + * Test fixture for {@link org.springframework.messaging.converter.StringMessageConverter}. * * @author Rossen Stoyanchev */ diff --git a/spring-messaging/src/test/java/org/springframework/messaging/core/DestinationResolvingMessagingTemplateTests.java b/spring-messaging/src/test/java/org/springframework/messaging/core/DestinationResolvingMessagingTemplateTests.java index fd8ed8ed8f..f9e65e7fb7 100644 --- a/spring-messaging/src/test/java/org/springframework/messaging/core/DestinationResolvingMessagingTemplateTests.java +++ b/spring-messaging/src/test/java/org/springframework/messaging/core/DestinationResolvingMessagingTemplateTests.java @@ -16,20 +16,19 @@ package org.springframework.messaging.core; -import org.junit.Before; -import org.junit.Test; -import org.springframework.messaging.Message; -import org.springframework.messaging.MessageChannel; -import org.springframework.messaging.support.GenericMessage; -import org.springframework.messaging.support.channel.ExecutorSubscribableChannel; - import java.util.Collections; import java.util.HashMap; import java.util.Map; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertSame; +import org.junit.Before; +import org.junit.Test; + +import org.springframework.messaging.Message; +import org.springframework.messaging.MessageChannel; +import org.springframework.messaging.support.ExecutorSubscribableChannel; +import org.springframework.messaging.support.GenericMessage; + +import static org.junit.Assert.*; /** * Unit tests for {@link AbstractDestinationResolvingMessagingTemplate}. diff --git a/spring-messaging/src/test/java/org/springframework/messaging/core/GenericMessagingTemplateTests.java b/spring-messaging/src/test/java/org/springframework/messaging/core/GenericMessagingTemplateTests.java index b0b4a14446..6f14f28677 100644 --- a/spring-messaging/src/test/java/org/springframework/messaging/core/GenericMessagingTemplateTests.java +++ b/spring-messaging/src/test/java/org/springframework/messaging/core/GenericMessagingTemplateTests.java @@ -16,16 +16,22 @@ package org.springframework.messaging.core; -import org.junit.Before; -import org.junit.Test; -import org.springframework.messaging.*; -import org.springframework.messaging.support.GenericMessage; -import org.springframework.messaging.support.channel.ExecutorSubscribableChannel; -import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; - import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; +import org.junit.Before; +import org.junit.Test; + +import org.springframework.messaging.Message; +import org.springframework.messaging.MessageChannel; +import org.springframework.messaging.MessageDeliveryException; +import org.springframework.messaging.MessageHandler; +import org.springframework.messaging.MessagingException; +import org.springframework.messaging.SubscribableChannel; +import org.springframework.messaging.support.ExecutorSubscribableChannel; +import org.springframework.messaging.support.GenericMessage; +import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; + import static junit.framework.Assert.assertNull; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; @@ -45,9 +51,7 @@ public class GenericMessagingTemplateTests { @Before public void setup() { - this.template = new GenericMessagingTemplate(); - this.executor = new ThreadPoolTaskExecutor(); this.executor.afterPropertiesSet(); } @@ -55,7 +59,6 @@ public class GenericMessagingTemplateTests { @Test public void sendAndReceive() { - SubscribableChannel channel = new ExecutorSubscribableChannel(this.executor); channel.subscribe(new MessageHandler() { @Override @@ -72,7 +75,6 @@ public class GenericMessagingTemplateTests { @Test public void sendAndReceiveTimeout() throws InterruptedException { - final CountDownLatch latch = new CountDownLatch(1); this.template.setReceiveTimeout(1); diff --git a/spring-messaging/src/test/java/org/springframework/messaging/handler/condition/DestinationPatternsMessageConditionTests.java b/spring-messaging/src/test/java/org/springframework/messaging/handler/DestinationPatternsMessageConditionTests.java similarity index 93% rename from spring-messaging/src/test/java/org/springframework/messaging/handler/condition/DestinationPatternsMessageConditionTests.java rename to spring-messaging/src/test/java/org/springframework/messaging/handler/DestinationPatternsMessageConditionTests.java index 4290abe37a..a20abb4545 100644 --- a/spring-messaging/src/test/java/org/springframework/messaging/handler/condition/DestinationPatternsMessageConditionTests.java +++ b/spring-messaging/src/test/java/org/springframework/messaging/handler/DestinationPatternsMessageConditionTests.java @@ -14,23 +14,22 @@ * limitations under the License. */ -package org.springframework.messaging.handler.condition; +package org.springframework.messaging.handler; import org.junit.Test; + import org.springframework.messaging.Message; -import org.springframework.messaging.handler.method.AbstractMethodMessageHandler; import org.springframework.messaging.support.MessageBuilder; import static org.junit.Assert.*; /** - * Unit tests for DestinationPatternsMessageCondition. + * Unit tests for {@link DestinationPatternsMessageCondition}. * * @author Rossen Stoyanchev */ public class DestinationPatternsMessageConditionTests { - @Test public void prependSlash() { DestinationPatternsMessageCondition c = condition("foo"); @@ -136,7 +135,7 @@ public class DestinationPatternsMessageConditionTests { private Message messageTo(String destination) { return MessageBuilder.withPayload(new byte[0]).setHeader( - AbstractMethodMessageHandler.LOOKUP_DESTINATION_HEADER, destination).build(); + DestinationPatternsMessageCondition.LOOKUP_DESTINATION_HEADER, destination).build(); } } diff --git a/spring-messaging/src/test/java/org/springframework/messaging/handler/annotation/support/HeaderMethodArgumentResolverTests.java b/spring-messaging/src/test/java/org/springframework/messaging/handler/annotation/support/HeaderMethodArgumentResolverTests.java index 70720fa6d3..b919fe06a5 100644 --- a/spring-messaging/src/test/java/org/springframework/messaging/handler/annotation/support/HeaderMethodArgumentResolverTests.java +++ b/spring-messaging/src/test/java/org/springframework/messaging/handler/annotation/support/HeaderMethodArgumentResolverTests.java @@ -20,6 +20,7 @@ import java.lang.reflect.Method; import org.junit.Before; import org.junit.Test; + import org.springframework.context.support.GenericApplicationContext; import org.springframework.core.DefaultParameterNameDiscoverer; import org.springframework.core.GenericTypeResolver; diff --git a/spring-messaging/src/test/java/org/springframework/messaging/handler/annotation/support/PathVariableMethodArgumentResolverTests.java b/spring-messaging/src/test/java/org/springframework/messaging/handler/annotation/support/PathVariableMethodArgumentResolverTests.java index 1b61575134..42f8b5a59d 100644 --- a/spring-messaging/src/test/java/org/springframework/messaging/handler/annotation/support/PathVariableMethodArgumentResolverTests.java +++ b/spring-messaging/src/test/java/org/springframework/messaging/handler/annotation/support/PathVariableMethodArgumentResolverTests.java @@ -22,6 +22,7 @@ import java.util.Map; import org.junit.Before; import org.junit.Test; + import org.springframework.core.DefaultParameterNameDiscoverer; import org.springframework.core.GenericTypeResolver; import org.springframework.core.MethodParameter; diff --git a/spring-messaging/src/test/java/org/springframework/messaging/handler/annotation/support/PayloadArgumentResolverTests.java b/spring-messaging/src/test/java/org/springframework/messaging/handler/annotation/support/PayloadArgumentResolverTests.java index 8cb225cf39..f318437da0 100644 --- a/spring-messaging/src/test/java/org/springframework/messaging/handler/annotation/support/PayloadArgumentResolverTests.java +++ b/spring-messaging/src/test/java/org/springframework/messaging/handler/annotation/support/PayloadArgumentResolverTests.java @@ -24,8 +24,8 @@ import org.springframework.core.MethodParameter; import org.springframework.messaging.Message; import org.springframework.messaging.handler.annotation.Payload; import org.springframework.messaging.support.MessageBuilder; -import org.springframework.messaging.support.converter.MessageConverter; -import org.springframework.messaging.support.converter.StringMessageConverter; +import org.springframework.messaging.converter.MessageConverter; +import org.springframework.messaging.converter.StringMessageConverter; import static org.junit.Assert.*; diff --git a/spring-messaging/src/test/java/org/springframework/messaging/simp/annotation/support/SendToMethodReturnValueHandlerTests.java b/spring-messaging/src/test/java/org/springframework/messaging/simp/annotation/support/SendToMethodReturnValueHandlerTests.java index e4a88ccf5a..11c7dd6268 100644 --- a/spring-messaging/src/test/java/org/springframework/messaging/simp/annotation/support/SendToMethodReturnValueHandlerTests.java +++ b/spring-messaging/src/test/java/org/springframework/messaging/simp/annotation/support/SendToMethodReturnValueHandlerTests.java @@ -35,7 +35,7 @@ import org.springframework.messaging.simp.SimpMessageHeaderAccessor; import org.springframework.messaging.simp.SimpMessagingTemplate; import org.springframework.messaging.simp.annotation.SendToUser; import org.springframework.messaging.support.MessageBuilder; -import org.springframework.messaging.support.converter.MessageConverter; +import org.springframework.messaging.converter.MessageConverter; import static org.junit.Assert.*; import static org.mockito.Matchers.*; diff --git a/spring-messaging/src/test/java/org/springframework/messaging/simp/annotation/support/SubscriptionMethodReturnValueHandlerTests.java b/spring-messaging/src/test/java/org/springframework/messaging/simp/annotation/support/SubscriptionMethodReturnValueHandlerTests.java index dab67a6521..593712b4d9 100644 --- a/spring-messaging/src/test/java/org/springframework/messaging/simp/annotation/support/SubscriptionMethodReturnValueHandlerTests.java +++ b/spring-messaging/src/test/java/org/springframework/messaging/simp/annotation/support/SubscriptionMethodReturnValueHandlerTests.java @@ -34,7 +34,7 @@ import org.springframework.messaging.simp.SimpMessageHeaderAccessor; import org.springframework.messaging.simp.SimpMessagingTemplate; import org.springframework.messaging.simp.annotation.SubscribeMapping; import org.springframework.messaging.support.MessageBuilder; -import org.springframework.messaging.support.converter.MessageConverter; +import org.springframework.messaging.converter.MessageConverter; import static org.junit.Assert.*; import static org.mockito.Matchers.*; diff --git a/spring-messaging/src/test/java/org/springframework/messaging/simp/config/MessageBrokerConfigurationTests.java b/spring-messaging/src/test/java/org/springframework/messaging/simp/config/MessageBrokerConfigurationTests.java index 4b4d6d5db7..e1f166dd34 100644 --- a/spring-messaging/src/test/java/org/springframework/messaging/simp/config/MessageBrokerConfigurationTests.java +++ b/spring-messaging/src/test/java/org/springframework/messaging/simp/config/MessageBrokerConfigurationTests.java @@ -16,38 +16,39 @@ package org.springframework.messaging.simp.config; +import java.util.ArrayList; +import java.util.List; + import org.junit.Before; import org.junit.Test; + import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.messaging.Message; import org.springframework.messaging.MessageHandler; +import org.springframework.messaging.converter.CompositeMessageConverter; +import org.springframework.messaging.converter.DefaultContentTypeResolver; import org.springframework.messaging.handler.annotation.MessageMapping; import org.springframework.messaging.handler.annotation.SendTo; import org.springframework.messaging.simp.SimpMessageType; import org.springframework.messaging.simp.annotation.SubscribeMapping; -import org.springframework.messaging.simp.handler.SimpAnnotationMethodMessageHandler; +import org.springframework.messaging.simp.annotation.support.SimpAnnotationMethodMessageHandler; import org.springframework.messaging.simp.handler.SimpleBrokerMessageHandler; import org.springframework.messaging.simp.handler.UserDestinationMessageHandler; import org.springframework.messaging.simp.handler.UserSessionRegistry; import org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler; import org.springframework.messaging.simp.stomp.StompCommand; import org.springframework.messaging.simp.stomp.StompHeaderAccessor; +import org.springframework.messaging.support.AbstractSubscribableChannel; +import org.springframework.messaging.support.ChannelInterceptor; +import org.springframework.messaging.support.ChannelInterceptorAdapter; +import org.springframework.messaging.support.ExecutorSubscribableChannel; import org.springframework.messaging.support.MessageBuilder; -import org.springframework.messaging.support.channel.AbstractSubscribableChannel; -import org.springframework.messaging.support.channel.ChannelInterceptor; -import org.springframework.messaging.support.channel.ChannelInterceptorAdapter; -import org.springframework.messaging.support.channel.ExecutorSubscribableChannel; -import org.springframework.messaging.support.converter.CompositeMessageConverter; -import org.springframework.messaging.support.converter.DefaultContentTypeResolver; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.stereotype.Controller; import org.springframework.util.MimeTypeUtils; -import java.util.ArrayList; -import java.util.List; - import static org.junit.Assert.*; /** @@ -106,7 +107,6 @@ public class MessageBrokerConfigurationTests { @Test public void clientInboundChannelCustomized() { - AbstractSubscribableChannel channel = this.cxtCustomizedChannelConfig.getBean( "clientInboundChannel", AbstractSubscribableChannel.class); @@ -122,7 +122,6 @@ public class MessageBrokerConfigurationTests { @Test public void clientOutboundChannelUsedByAnnotatedMethod() { - TestChannel channel = this.cxtSimpleBroker.getBean("clientOutboundChannel", TestChannel.class); SimpAnnotationMethodMessageHandler messageHandler = this.cxtSimpleBroker.getBean(SimpAnnotationMethodMessageHandler.class); @@ -341,8 +340,8 @@ public class MessageBrokerConfigurationTests { @Configuration static class CustomizedChannelConfig extends AbstractMessageBrokerConfiguration { - private ChannelInterceptor interceptor = new ChannelInterceptorAdapter(); - + private ChannelInterceptor interceptor = new ChannelInterceptorAdapter() { + }; @Override protected void configureClientInboundChannel(ChannelRegistration registration) { diff --git a/spring-messaging/src/test/java/org/springframework/messaging/simp/handler/SimpAnnotationMethodMessageHandlerTests.java b/spring-messaging/src/test/java/org/springframework/messaging/simp/handler/SimpAnnotationMethodMessageHandlerTests.java index 6ae0d7be0c..0c6177c12e 100644 --- a/spring-messaging/src/test/java/org/springframework/messaging/simp/handler/SimpAnnotationMethodMessageHandlerTests.java +++ b/spring-messaging/src/test/java/org/springframework/messaging/simp/handler/SimpAnnotationMethodMessageHandlerTests.java @@ -36,12 +36,13 @@ import org.springframework.messaging.simp.SimpMessageType; import org.springframework.messaging.simp.SimpMessagingTemplate; import org.springframework.messaging.simp.annotation.SubscribeMapping; import org.springframework.messaging.support.MessageBuilder; +import org.springframework.messaging.simp.annotation.support.SimpAnnotationMethodMessageHandler; import org.springframework.stereotype.Controller; import static org.junit.Assert.*; /** - * Test fixture for {@link SimpAnnotationMethodMessageHandler}. + * Test fixture for {@link org.springframework.messaging.simp.annotation.support.SimpAnnotationMethodMessageHandler}. * @author Rossen Stoyanchev * @author Brian Clozel */ diff --git a/spring-messaging/src/test/java/org/springframework/messaging/simp/stomp/StompBrokerRelayMessageHandlerIntegrationTests.java b/spring-messaging/src/test/java/org/springframework/messaging/simp/stomp/StompBrokerRelayMessageHandlerIntegrationTests.java index d0fce950c2..4f425c2190 100644 --- a/spring-messaging/src/test/java/org/springframework/messaging/simp/stomp/StompBrokerRelayMessageHandlerIntegrationTests.java +++ b/spring-messaging/src/test/java/org/springframework/messaging/simp/stomp/StompBrokerRelayMessageHandlerIntegrationTests.java @@ -30,13 +30,18 @@ import org.apache.commons.logging.LogFactory; import org.junit.After; import org.junit.Before; import org.junit.Test; + import org.springframework.context.ApplicationEvent; import org.springframework.context.ApplicationEventPublisher; -import org.springframework.messaging.*; +import org.springframework.messaging.Message; +import org.springframework.messaging.MessageDeliveryException; +import org.springframework.messaging.MessageHandler; +import org.springframework.messaging.MessagingException; +import org.springframework.messaging.StubMessageChannel; import org.springframework.messaging.simp.BrokerAvailabilityEvent; import org.springframework.messaging.simp.SimpMessageType; +import org.springframework.messaging.support.ExecutorSubscribableChannel; import org.springframework.messaging.support.MessageBuilder; -import org.springframework.messaging.support.channel.ExecutorSubscribableChannel; import org.springframework.util.Assert; import org.springframework.util.SocketUtils; @@ -341,14 +346,12 @@ public class StompBrokerRelayMessageHandlerIntegrationTests { private final Message[] actual; - public MessageExchange(Message message, MessageMatcher... expected) { this.message = message; this.expected = expected; this.actual = new Message[expected.length]; } - public boolean isDone() { for (int i=0 ; i < actual.length; i++) { if (actual[i] == null) { diff --git a/spring-messaging/src/test/java/org/springframework/messaging/simp/stomp/StompBrokerRelayMessageHandlerTests.java b/spring-messaging/src/test/java/org/springframework/messaging/simp/stomp/StompBrokerRelayMessageHandlerTests.java index 824d978e11..adde608df9 100644 --- a/spring-messaging/src/test/java/org/springframework/messaging/simp/stomp/StompBrokerRelayMessageHandlerTests.java +++ b/spring-messaging/src/test/java/org/springframework/messaging/simp/stomp/StompBrokerRelayMessageHandlerTests.java @@ -27,10 +27,10 @@ import org.springframework.messaging.StubMessageChannel; import org.springframework.messaging.simp.SimpMessageHeaderAccessor; import org.springframework.messaging.simp.SimpMessageType; import org.springframework.messaging.support.MessageBuilder; -import org.springframework.messaging.support.tcp.ReconnectStrategy; -import org.springframework.messaging.support.tcp.TcpConnection; -import org.springframework.messaging.support.tcp.TcpConnectionHandler; -import org.springframework.messaging.support.tcp.TcpOperations; +import org.springframework.messaging.tcp.ReconnectStrategy; +import org.springframework.messaging.tcp.TcpConnection; +import org.springframework.messaging.tcp.TcpConnectionHandler; +import org.springframework.messaging.tcp.TcpOperations; import org.springframework.util.concurrent.ListenableFuture; import org.springframework.util.concurrent.ListenableFutureTask; diff --git a/spring-messaging/src/test/java/org/springframework/messaging/support/channel/ChannelInterceptorTests.java b/spring-messaging/src/test/java/org/springframework/messaging/support/ChannelInterceptorTests.java similarity index 97% rename from spring-messaging/src/test/java/org/springframework/messaging/support/channel/ChannelInterceptorTests.java rename to spring-messaging/src/test/java/org/springframework/messaging/support/ChannelInterceptorTests.java index cd9e9f8068..8a4aa734a8 100644 --- a/spring-messaging/src/test/java/org/springframework/messaging/support/channel/ChannelInterceptorTests.java +++ b/spring-messaging/src/test/java/org/springframework/messaging/support/ChannelInterceptorTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.messaging.support.channel; +package org.springframework.messaging.support; import java.util.ArrayList; import java.util.List; @@ -27,7 +27,6 @@ import org.springframework.messaging.Message; import org.springframework.messaging.MessageChannel; import org.springframework.messaging.MessageHandler; import org.springframework.messaging.MessagingException; -import org.springframework.messaging.support.MessageBuilder; import static org.junit.Assert.*; diff --git a/spring-messaging/src/test/java/org/springframework/messaging/support/channel/PublishSubscibeChannelTests.java b/spring-messaging/src/test/java/org/springframework/messaging/support/PublishSubscribeChannelTests.java similarity index 97% rename from spring-messaging/src/test/java/org/springframework/messaging/support/channel/PublishSubscibeChannelTests.java rename to spring-messaging/src/test/java/org/springframework/messaging/support/PublishSubscribeChannelTests.java index 5f4e1639d7..5c8b16a4c9 100644 --- a/spring-messaging/src/test/java/org/springframework/messaging/support/channel/PublishSubscibeChannelTests.java +++ b/spring-messaging/src/test/java/org/springframework/messaging/support/PublishSubscribeChannelTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.messaging.support.channel; +package org.springframework.messaging.support; import org.junit.Before; import org.junit.Rule; @@ -40,7 +40,7 @@ import static org.mockito.BDDMockito.*; * * @author Phillip Webb */ -public class PublishSubscibeChannelTests { +public class PublishSubscribeChannelTests { @Rule public ExpectedException thrown = ExpectedException.none(); diff --git a/spring-websocket/src/main/java/org/springframework/web/socket/config/MessageBrokerBeanDefinitionParser.java b/spring-websocket/src/main/java/org/springframework/web/socket/config/MessageBrokerBeanDefinitionParser.java index d3f3fe0aa5..2d0259b7e4 100644 --- a/spring-websocket/src/main/java/org/springframework/web/socket/config/MessageBrokerBeanDefinitionParser.java +++ b/spring-websocket/src/main/java/org/springframework/web/socket/config/MessageBrokerBeanDefinitionParser.java @@ -32,19 +32,19 @@ import org.springframework.beans.factory.support.ManagedMap; import org.springframework.beans.factory.support.RootBeanDefinition; import org.springframework.beans.factory.xml.BeanDefinitionParser; import org.springframework.beans.factory.xml.ParserContext; +import org.springframework.messaging.converter.ByteArrayMessageConverter; +import org.springframework.messaging.converter.CompositeMessageConverter; +import org.springframework.messaging.converter.DefaultContentTypeResolver; +import org.springframework.messaging.converter.MappingJackson2MessageConverter; +import org.springframework.messaging.converter.StringMessageConverter; import org.springframework.messaging.simp.SimpMessagingTemplate; +import org.springframework.messaging.simp.annotation.support.SimpAnnotationMethodMessageHandler; import org.springframework.messaging.simp.handler.DefaultUserDestinationResolver; import org.springframework.messaging.simp.handler.DefaultUserSessionRegistry; -import org.springframework.messaging.simp.handler.SimpAnnotationMethodMessageHandler; import org.springframework.messaging.simp.handler.SimpleBrokerMessageHandler; import org.springframework.messaging.simp.handler.UserDestinationMessageHandler; import org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler; -import org.springframework.messaging.support.channel.ExecutorSubscribableChannel; -import org.springframework.messaging.support.converter.ByteArrayMessageConverter; -import org.springframework.messaging.support.converter.CompositeMessageConverter; -import org.springframework.messaging.support.converter.DefaultContentTypeResolver; -import org.springframework.messaging.support.converter.MappingJackson2MessageConverter; -import org.springframework.messaging.support.converter.StringMessageConverter; +import org.springframework.messaging.support.ExecutorSubscribableChannel; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.util.Assert; import org.springframework.util.ClassUtils; diff --git a/spring-websocket/src/main/resources/org/springframework/web/socket/config/spring-websocket-4.0.xsd b/spring-websocket/src/main/resources/org/springframework/web/socket/config/spring-websocket-4.0.xsd index 08e6793c86..622788810f 100644 --- a/spring-websocket/src/main/resources/org/springframework/web/socket/config/spring-websocket-4.0.xsd +++ b/spring-websocket/src/main/resources/org/springframework/web/socket/config/spring-websocket-4.0.xsd @@ -356,7 +356,7 @@ - diff --git a/spring-websocket/src/test/java/org/springframework/web/socket/config/HandlersBeanDefinitionParserTests.java b/spring-websocket/src/test/java/org/springframework/web/socket/config/HandlersBeanDefinitionParserTests.java index 21ce98170e..a311146387 100644 --- a/spring-websocket/src/test/java/org/springframework/web/socket/config/HandlersBeanDefinitionParserTests.java +++ b/spring-websocket/src/test/java/org/springframework/web/socket/config/HandlersBeanDefinitionParserTests.java @@ -16,14 +16,21 @@ package org.springframework.web.socket.config; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.concurrent.ScheduledFuture; + import org.hamcrest.Matchers; import org.junit.Before; import org.junit.Test; + import org.springframework.beans.DirectFieldAccessor; import org.springframework.beans.factory.xml.XmlBeanDefinitionReader; import org.springframework.core.io.ClassPathResource; import org.springframework.http.server.ServerHttpRequest; import org.springframework.http.server.ServerHttpResponse; +import org.springframework.messaging.support.ChannelInterceptorAdapter; import org.springframework.scheduling.TaskScheduler; import org.springframework.scheduling.Trigger; import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler; @@ -34,10 +41,10 @@ import org.springframework.web.socket.CloseStatus; import org.springframework.web.socket.WebSocketHandler; import org.springframework.web.socket.WebSocketMessage; import org.springframework.web.socket.WebSocketSession; -import org.springframework.web.socket.server.support.DefaultHandshakeHandler; import org.springframework.web.socket.server.HandshakeFailureException; import org.springframework.web.socket.server.HandshakeHandler; import org.springframework.web.socket.server.HandshakeInterceptor; +import org.springframework.web.socket.server.support.DefaultHandshakeHandler; import org.springframework.web.socket.server.support.WebSocketHttpRequestHandler; import org.springframework.web.socket.sockjs.SockJsHttpRequestHandler; import org.springframework.web.socket.sockjs.SockJsService; @@ -51,16 +58,7 @@ import org.springframework.web.socket.sockjs.transport.handler.XhrPollingTranspo import org.springframework.web.socket.sockjs.transport.handler.XhrReceivingTransportHandler; import org.springframework.web.socket.sockjs.transport.handler.XhrStreamingTransportHandler; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.concurrent.ScheduledFuture; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertThat; -import static org.junit.Assert.assertTrue; +import static org.junit.Assert.*; /** * Test fixture for HandlersBeanDefinitionParser. @@ -72,7 +70,6 @@ public class HandlersBeanDefinitionParserTests { private GenericWebApplicationContext appContext; - @Before public void setup() { appContext = new GenericWebApplicationContext(); @@ -115,6 +112,7 @@ public class HandlersBeanDefinitionParserTests { } @Test + @SuppressWarnings("unchecked") public void websocketHandlersAttributes() { loadBeanDefinitions("websocket-config-handlers-attributes.xml"); HandlerMapping handlerMapping = appContext.getBean(HandlerMapping.class); @@ -249,23 +247,23 @@ class FooWebSocketHandler extends TestWebSocketHandler { } class TestHandshakeHandler implements HandshakeHandler { @Override public boolean doHandshake(ServerHttpRequest request, ServerHttpResponse response, - WebSocketHandler wsHandler, Map attributes) - throws HandshakeFailureException { + WebSocketHandler wsHandler, Map attributes) throws HandshakeFailureException { return false; } } +class TestChannelInterceptor extends ChannelInterceptorAdapter { } + class FooTestInterceptor implements HandshakeInterceptor { @Override public boolean beforeHandshake(ServerHttpRequest request, ServerHttpResponse response, - WebSocketHandler wsHandler, Map attributes) - throws Exception { + WebSocketHandler wsHandler, Map attributes) throws Exception { return false; } @Override public void afterHandshake(ServerHttpRequest request, ServerHttpResponse response, - WebSocketHandler wsHandler, Exception exception) { + WebSocketHandler wsHandler, Exception exception) { } } diff --git a/spring-websocket/src/test/java/org/springframework/web/socket/config/MessageBrokerBeanDefinitionParserTests.java b/spring-websocket/src/test/java/org/springframework/web/socket/config/MessageBrokerBeanDefinitionParserTests.java index 499bea77ab..92bfafeaf2 100644 --- a/spring-websocket/src/test/java/org/springframework/web/socket/config/MessageBrokerBeanDefinitionParserTests.java +++ b/spring-websocket/src/test/java/org/springframework/web/socket/config/MessageBrokerBeanDefinitionParserTests.java @@ -16,33 +16,39 @@ package org.springframework.web.socket.config; +import java.util.Arrays; +import java.util.List; + import org.hamcrest.Matchers; import org.junit.Before; import org.junit.Test; + import org.springframework.beans.factory.NoSuchBeanDefinitionException; import org.springframework.beans.factory.xml.XmlBeanDefinitionReader; import org.springframework.core.io.ClassPathResource; import org.springframework.messaging.MessageHandler; +import org.springframework.messaging.converter.CompositeMessageConverter; +import org.springframework.messaging.converter.MessageConverter; import org.springframework.messaging.simp.SimpMessagingTemplate; -import org.springframework.messaging.simp.handler.*; +import org.springframework.messaging.simp.annotation.support.SimpAnnotationMethodMessageHandler; +import org.springframework.messaging.simp.handler.DefaultUserDestinationResolver; +import org.springframework.messaging.simp.handler.SimpleBrokerMessageHandler; +import org.springframework.messaging.simp.handler.UserDestinationMessageHandler; +import org.springframework.messaging.simp.handler.UserDestinationResolver; +import org.springframework.messaging.simp.handler.UserSessionRegistry; import org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler; -import org.springframework.messaging.support.channel.AbstractSubscribableChannel; -import org.springframework.messaging.support.converter.CompositeMessageConverter; -import org.springframework.messaging.support.converter.MessageConverter; +import org.springframework.messaging.support.AbstractSubscribableChannel; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.web.HttpRequestHandler; import org.springframework.web.context.support.GenericWebApplicationContext; import org.springframework.web.servlet.HandlerMapping; import org.springframework.web.servlet.handler.SimpleUrlHandlerMapping; import org.springframework.web.socket.WebSocketHandler; +import org.springframework.web.socket.handler.WebSocketHandlerDecorator; import org.springframework.web.socket.messaging.StompSubProtocolHandler; import org.springframework.web.socket.messaging.SubProtocolWebSocketHandler; import org.springframework.web.socket.server.support.WebSocketHttpRequestHandler; import org.springframework.web.socket.sockjs.SockJsHttpRequestHandler; -import org.springframework.web.socket.handler.WebSocketHandlerDecorator; - -import java.util.Arrays; -import java.util.List; import static org.junit.Assert.*; diff --git a/spring-websocket/src/test/java/org/springframework/web/socket/config/annotation/WebMvcStompEndpointRegistrationTests.java b/spring-websocket/src/test/java/org/springframework/web/socket/config/annotation/WebMvcStompEndpointRegistrationTests.java index 923f024eba..47c07c0f52 100644 --- a/spring-websocket/src/test/java/org/springframework/web/socket/config/annotation/WebMvcStompEndpointRegistrationTests.java +++ b/spring-websocket/src/test/java/org/springframework/web/socket/config/annotation/WebMvcStompEndpointRegistrationTests.java @@ -24,11 +24,10 @@ import org.junit.Before; import org.junit.Test; import org.mockito.Mockito; -import org.springframework.messaging.support.channel.ExecutorSubscribableChannel; +import org.springframework.messaging.support.ExecutorSubscribableChannel; import org.springframework.scheduling.TaskScheduler; import org.springframework.util.MultiValueMap; import org.springframework.web.HttpRequestHandler; -import org.springframework.web.socket.config.annotation.WebMvcStompWebSocketEndpointRegistration; import org.springframework.web.socket.messaging.SubProtocolWebSocketHandler; import org.springframework.web.socket.server.support.DefaultHandshakeHandler; import org.springframework.web.socket.server.support.WebSocketHttpRequestHandler; diff --git a/spring-websocket/src/test/java/org/springframework/web/socket/config/annotation/WebSocketMessageBrokerConfigurationSupportTests.java b/spring-websocket/src/test/java/org/springframework/web/socket/config/annotation/WebSocketMessageBrokerConfigurationSupportTests.java index f38ba1be1b..b50a75c067 100644 --- a/spring-websocket/src/test/java/org/springframework/web/socket/config/annotation/WebSocketMessageBrokerConfigurationSupportTests.java +++ b/spring-websocket/src/test/java/org/springframework/web/socket/config/annotation/WebSocketMessageBrokerConfigurationSupportTests.java @@ -28,6 +28,8 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.messaging.Message; import org.springframework.messaging.MessageHandler; +import org.springframework.messaging.support.AbstractSubscribableChannel; +import org.springframework.messaging.support.ExecutorSubscribableChannel; import org.springframework.messaging.handler.annotation.MessageMapping; import org.springframework.messaging.handler.annotation.SendTo; import org.springframework.messaging.simp.SimpMessageType; @@ -36,15 +38,13 @@ import org.springframework.messaging.simp.config.ChannelRegistration; import org.springframework.messaging.simp.config.MessageBrokerRegistry; import org.springframework.messaging.simp.stomp.StompCommand; import org.springframework.messaging.simp.stomp.StompHeaderAccessor; -import org.springframework.messaging.support.channel.AbstractSubscribableChannel; -import org.springframework.messaging.support.channel.ExecutorSubscribableChannel; import org.springframework.stereotype.Controller; import org.springframework.web.servlet.HandlerMapping; import org.springframework.web.servlet.handler.SimpleUrlHandlerMapping; import org.springframework.web.socket.TextMessage; +import org.springframework.web.socket.handler.TestWebSocketSession; import org.springframework.web.socket.messaging.StompTextMessageBuilder; import org.springframework.web.socket.messaging.SubProtocolWebSocketHandler; -import org.springframework.web.socket.handler.TestWebSocketSession; import static org.junit.Assert.*; diff --git a/spring-websocket/src/test/java/org/springframework/web/socket/messaging/SimpAnnotationMethodIntegrationTests.java b/spring-websocket/src/test/java/org/springframework/web/socket/messaging/SimpAnnotationMethodIntegrationTests.java index 1352b61323..200f491e05 100644 --- a/spring-websocket/src/test/java/org/springframework/web/socket/messaging/SimpAnnotationMethodIntegrationTests.java +++ b/spring-websocket/src/test/java/org/springframework/web/socket/messaging/SimpAnnotationMethodIntegrationTests.java @@ -39,8 +39,8 @@ import org.springframework.messaging.handler.annotation.MessageMapping; import org.springframework.messaging.simp.config.ChannelRegistration; import org.springframework.messaging.simp.config.MessageBrokerRegistry; import org.springframework.messaging.simp.stomp.StompCommand; -import org.springframework.messaging.support.channel.AbstractSubscribableChannel; -import org.springframework.messaging.support.channel.ExecutorSubscribableChannel; +import org.springframework.messaging.support.AbstractSubscribableChannel; +import org.springframework.messaging.support.ExecutorSubscribableChannel; import org.springframework.stereotype.Controller; import org.springframework.web.socket.AbstractWebSocketIntegrationTests; import org.springframework.web.socket.JettyWebSocketTestServer; diff --git a/spring-websocket/src/test/resources/org/springframework/web/socket/config/websocket-config-broker-customchannels.xml b/spring-websocket/src/test/resources/org/springframework/web/socket/config/websocket-config-broker-customchannels.xml index f1a4f0d57b..bed4735260 100644 --- a/spring-websocket/src/test/resources/org/springframework/web/socket/config/websocket-config-broker-customchannels.xml +++ b/spring-websocket/src/test/resources/org/springframework/web/socket/config/websocket-config-broker-customchannels.xml @@ -19,7 +19,7 @@ - + @@ -29,6 +29,6 @@ - +