- 12 5月, 2014 1 次提交
-
-
由 Rossen Stoyanchev 提交于
This change adds support for a custom "websocket" scope. WebSocket-scoped beans may be injected into controllers with message handling methods as well as channel interceptor registered on the "inboundClientChannel". Issue: SPR-11305
-
- 09 5月, 2014 1 次提交
-
-
由 Rossen Stoyanchev 提交于
Before this change, subscribing to a user destination and use of @SendToUser annotation required an authenticated user. This change makes it possible to subscribe to a user destination from WebSocket sessions without an authenticated user. In such cases the destination is associated with one session only rather than with a user (and all their sessions). It is then also possible to send a message to a user destination via "/user/{sessionId}/.." rather than "/user/{user}/...". That means @SendToUser works relying on the session id of the input message, effectively sending a reply to destination private to the session. A key use case for this is handling an exception with an @MessageExceptionHandler method and sending a reply with @SendToUser. Issue: SPR-11309
-
- 07 5月, 2014 1 次提交
-
-
由 Sebastien Deleuze 提交于
Removal of cached destination is now moved outside the for loop that removes subscriptions to avoid ConcurrentModificationException. Also since updateCache is a LinkedHashMap with accessOrder=true, a simple access with updateCache.get() modify the map. By iterating over updateCache.entrySet(), we avoid this update. Issue: SPR-11755
-
- 01 5月, 2014 2 次提交
-
-
由 Rossen Stoyanchev 提交于
Issue: SPR-11506
-
由 Mark Galea 提交于
Added the ability to send a message only to one user session. Given a user has two tabs open and the client sends a message to the server from tab 1, it is now possible to send a reply message to only 1 tab instead of the default mode of targetting all known user sessions. Issue: SPR-11506
-
- 30 4月, 2014 10 次提交
-
-
由 Rossen Stoyanchev 提交于
Issue: SPR-11673
-
由 Rossen Stoyanchev 提交于
Issue: SPR-11673
-
由 Rossen Stoyanchev 提交于
Issue: SPR-11673
-
由 Rossen Stoyanchev 提交于
Issue: SPR-11657
-
由 Rossen Stoyanchev 提交于
Issue: SPR-11657
-
由 Sebastien Deleuze 提交于
DestinationCache is now used for both plain and pattern destinations. It stores internally the subscriptions map for each cached destination. Subscriptions are initially created when there is no cache for the requested destination, and are updated when subscriptions change. Issue: SPR-11657
-
由 Rossen Stoyanchev 提交于
Avoid dependency on order in which expected messages are received.
-
由 Rossen Stoyanchev 提交于
-
由 Rossen Stoyanchev 提交于
-
由 Rossen Stoyanchev 提交于
This change simplifies the implementation of the "test" EventPublisher and MessageHandler used in the STOMP broker relay integration tests. The updated implementations use a time-limted poll on a BlockingQueue.
-
- 26 4月, 2014 1 次提交
-
-
由 Rossen Stoyanchev 提交于
The original fix for SPR-11423: https://github.com/spring-projects/spring-framework/commit/32e5f57e647022d9ea82c03670936bf31f8467de was insufficient when using an external broker since the original destination header has to be in the "native headers" map (i.e. with STOMP headers) in order to be included in messages broadcast by the broker.
-
- 24 4月, 2014 2 次提交
-
-
由 Stephane Nicoll 提交于
This commit replaces the "responseDestination" attribute on the JmsListener annotation by a support of the standard SendTo annotation. Issue: SPR-11707
-
由 Rossen Stoyanchev 提交于
This change modifies the names of the Reactor support classes in order to align with the same changes in the 4.0.x line which now supports both Reactor 1.1 and 1.0. Issue: SPR-11636
-
- 22 4月, 2014 2 次提交
-
-
由 Stephane Nicoll 提交于
-
由 Philippe Marschall 提交于
spring-messaging is full of unused imports. This commit removes all unused imports from spring-messaging.
-
- 18 4月, 2014 2 次提交
-
-
由 Juergen Hoeller 提交于
-
由 Juergen Hoeller 提交于
Issue: SPR-11653
-
- 17 4月, 2014 2 次提交
-
-
由 Stephane Nicoll 提交于
This commit adds the support of JMS annotated endpoint. Can be activated both by @EnableJms or <jms:annotation-driven/> and detects methods of managed beans annotated with @JmsListener, either directly or through a meta-annotation. Containers are created and managed under the cover by a registry at application startup time. Container creation is delegated to a JmsListenerContainerFactory that is identified by the containerFactory attribute of the JmsListener annotation. Containers can be retrieved from the registry using a custom id that can be specified directly on the annotation. A "factory-id" attribute is available on the container element of the XML namespace. When it is present, the configuration defined at the namespace level is used to build a JmsListenerContainerFactory that is exposed with the value of the "factory-id" attribute. This can be used as a smooth migration path for users having listener containers defined at the namespace level. It is also possible to migrate all listeners to annotated endpoints and yet keep the <jms:listener-container> or <jms:jca-listener-container> element to share the container configuration. The configuration can be fine-tuned by implementing the JmsListenerConfigurer interface which gives access to the registrar used to register endpoints. This includes a programmatic registration of endpoints in complement to the declarative approach. A default JmsListenerContainerFactory can also be specified to be used if no containerFactory has been set on the annotation. Annotated methods can have flexible method arguments that are similar to what @MessageMapping provides. In particular, jms listener endpoint methods can fully use the messaging abstraction, including convenient header accessors. It is also possible to inject the raw javax.jms.Message and the Session for more advanced use cases. The payload can be injected as long as the conversion service is able to convert it from the original type of the JMS payload. By default, a DefaultJmsHandlerMethodFactory is used but it can be configured further to support additional method arguments or to customize conversion and validation support. The return type of an annotated method can also be an instance of Spring's Message abstraction. Instead of just converting the payload, such response type allows to communicate standard and custom headers. The JmsHeaderMapper infrastructure from Spring integration has also been migrated to the Spring framework. SimpleJmsHeaderMapper is based on SI's DefaultJmsHeaderMapper. The simple implementation maps all JMS headers so that the generated Message abstraction has all the information stored in the protocol specific message. Issue: SPR-9882
-
由 Rossen Stoyanchev 提交于
An initial commit with expanded support for static resource handling: - Add ResourceResolver strategy for resolving a request to a Resource along with a few implementations. - Add PublicResourceUrlProvider to get URLs for client-side use. - Add ResourceUrlEncodingFilter and PublicResourceUrlProviderExposingInterceptor along with initial MVC Java config support. Issue: SPR-10933
-
- 15 4月, 2014 2 次提交
-
-
由 Rossen Stoyanchev 提交于
Issue: SPR-11468
-
由 Rossen Stoyanchev 提交于
Introduce MessageHeaderInitializer strategy for initializing a MessageHeaderAccessor. Add IdTimestampMessageHeaderInitializer implementation that provides control over ID and timestamp header generation. Disable ID and timestamp by default in SimpMessageHeaderAccessor and therefore its sub-class StompHeaderAccessor. Issue: SPR-11468
-
- 14 4月, 2014 4 次提交
-
-
由 Rossen Stoyanchev 提交于
The BufferingStompDecoder now decorates rather than extend StompDecoder. This allows a single StompDecoder instance to be configured and extended independantly while buffering remains a separate concern.
-
由 Rossen Stoyanchev 提交于
AbstractMessageConverter and messaging template implementations now detect and use mutable headers if passed in. The SimpMessagingTemplate is optimized to supporting using a single MessageHeaders instance while preparing a message. This commit also updates code using the SimpMessagingTemplate to take advantage of its new capabilities. Issue: SPR-11468
-
由 Rossen Stoyanchev 提交于
Mutate rather than re-create headers when decoding STOMP messages before a message is sent on a message channel. Use MessageBuilder.createMessage to ensure the fully prepared MessageHeaders is used directly MessageHeaderAccessor instance. Issue: SPR-11468
-
由 Rossen Stoyanchev 提交于
Refine semantics of ID and TIMESTAMP headers provided to protected MessageHeaders constructor. Refactor internal implementation of MessageHeaderAccessor. Support mutating headers from a single thread while a message is being built (e.g. StompDecoder creating message + then adding session id). Improve immutablity in NativeMessageHeaderAccessor and in StompHeaderAccessor. Optimize object creation for initializing messages and subsequent accessing their headers. Introduce MessageHeaderAccessorFactory support to enable applying a common strategies for ID and TIMESTAMP generation to every message. Add MessageBuilder shortcut factory method for creating messages from payload and a full-prepared MessageHeaders instance. Also add equivalent constructors to GenericMessage and ErrorMessage. Issue: SPR-11468
-
- 05 4月, 2014 3 次提交
-
-
由 Rossen Stoyanchev 提交于
Following discussion with Gary. Issue: SPR-11468
-
由 Gary Russell 提交于
Allow a subclass to modify MessageHeaders as well as override the strategy for or even skip having `ID` and `TIMESTAMP` headers. Issue: SPR-11468
-
由 Rossen Stoyanchev 提交于
The UserDestinationMessageHandler adds a header providing a hint for what the original destination a user may have used when subscribing. That is then used when writing messages back to WebSocket clients to ensure they dont see the internally used, transformed user destination. This change moves the header name constatn to make it more broadly applicable. For example SPR-11645.
-
- 04 4月, 2014 2 次提交
-
-
由 Brian Clozel 提交于
Prior to this commit, @SubscribeMapping mapped methods (backed with @SendTo* annotations, or not) would send MESSAGEs with the wrong destination. Instead of using the original SUBSCRIBE destination, it would use the lookup path computed from the configured prefixes in the application. This commit fixes this issue - now @SubscribeMapping MESSAGEs use the original SUBSCRIBE destination. Issue: SPR-11648
-
由 Rossen Stoyanchev 提交于
Issue: SPR-11655
-
- 02 4月, 2014 2 次提交
-
-
由 Rossen Stoyanchev 提交于
Issue: SPR-11636
-
由 Sam Brannen 提交于
-
- 28 3月, 2014 2 次提交
-
-
由 Rossen Stoyanchev 提交于
-
由 Rossen Stoyanchev 提交于
-
- 27 3月, 2014 1 次提交
-
-
由 Rossen Stoyanchev 提交于
-