From f50cb06dc2a8aab0afbde412795d652a829d8c0a Mon Sep 17 00:00:00 2001 From: Rossen Stoyanchev Date: Tue, 29 Jul 2014 17:58:16 -0400 Subject: [PATCH] Polish --- src/asciidoc/index.adoc | 77 +++++++++++++---------------------------- 1 file changed, 25 insertions(+), 52 deletions(-) diff --git a/src/asciidoc/index.adoc b/src/asciidoc/index.adoc index 413adb280a..d5240fdf59 100644 --- a/src/asciidoc/index.adoc +++ b/src/asciidoc/index.adoc @@ -38168,9 +38168,8 @@ method arguments. [NOTE] ==== -Applications can switch to using other path separator like "." (dot) instead of -"/" (slash) as the separator for destinations mapped to `@MessageMapping`. -For further details, see <>. +Applications can also use dot-separated destinations (vs slash). +See <>. ==== The following method arguments are supported for `@MessageMapping` methods: @@ -38261,9 +38260,8 @@ to Ant-style destination patterns. [NOTE] ==== -Applications can switch to using other path separator like "." (dot) instead of -"/" (slash) as the separator for destinations mapped to `@MessageMapping`. -For further details, see <>. +Applications can also use dot-separated destinations (vs slash). +See <>. ==== @@ -38396,18 +38394,14 @@ the TCP connection is established is different from the host providing the cloud-based STOMP service. [[websocket-stomp-destination-separator]] -==== Destination separator +==== Using Dot as Separator in `@MessageMapping` Destinations -Although Ant-style, slash-separated, path patterns should feel familiar to web developers, -in message brokers and in messaging it is common to use "." as the separator, for example -in the names of destinations such as topics, queues, exchanges, etc. +Although slash-separated path patterns are familiar to web developers, in messaging +it is common to use "." as separator for example in the names of topics, queues, +exchanges, etc. Applications can also switch to using "." (dot) instead of "/" (slash) +as the separator in `@MessageMapping` mappings by configuring a custom `AntPathMatcher`. -Applications can switch to using "." (dot) instead of "/" (slash) as the separator for -destinations handled by the broker simply by configuring an AntPathMatcher with a customized -path separator property. This can be done easily through the provided Java config and XML -namespace. - -Below is example configuration that enables using "." separator: +In Java config: [source,java,indent=0] [subs="verbatim,quotes"] @@ -38416,10 +38410,7 @@ Below is example configuration that enables using "." separator: @EnableWebSocketMessageBroker public class WebsocketConfig extends AbstractWebSocketMessageBrokerConfigurer { - @Override - public void registerStompEndpoints(StompEndpointRegistry registry) { - registry.addEndpoint("/stomp"); - } + // ... @Override public void configureMessageBroker(MessageBrokerRegistry registry) { @@ -38431,7 +38422,7 @@ Below is example configuration that enables using "." separator: } ---- -XML configuration equivalent: +In XML config: [source,xml,indent=0] [subs="verbatim,quotes,attributes"] @@ -38443,58 +38434,40 @@ XML configuration equivalent: http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/websocket - http://www.springframework.org/schema/websocket/spring-websocket-4.1.xsd"> - - - - + http://www.springframework.org/schema/websocket/spring-websocket.xsd"> + + + + ---- And below is a simple example to illustrate a controller with "." separator: -[source,java,indent=0] -[subs="verbatim,quotes"] ----- - @Controller - public class FooController { - - @MessageMapping("foo.{bar}") - public String foo(@DestinationVariable String bar) { - return bar; - } - } ----- - -If the application prefix configured is "/app", the foo method will be mapped -to the "/app/foo.{bar}" destination. If bar="value", "value" will be sent to -the "/topic/foo.value" destination. - -You can also use type + method level `@MessageMapping` annotations: - [source,java,indent=0] [subs="verbatim,quotes"] ---- @Controller @MessageMapping("foo") public class FooController { - - @MessageMapping("{bar}") - public String foo(@DestinationVariable String bar) { - return bar; + + @MessageMapping("bar.{baz}") + public void handleBaz(@DestinationVariable String baz) { } + } ---- -In this example, the "." separator will be automatically added when combining "foo" -and "{bar}", so the foo method will be mapped to the "/app/foo.{bar}" destination, -like in the previous example. +If the application prefix is set to "/app" then the foo method is effectively mapped to "/app/foo.bar.{baz}". + + + [[websocket-stomp-authentication]] ==== Authentication