Browse Source

Polishing

pull/1912/head
Juergen Hoeller 8 years ago
parent
commit
9b671f8408
  1. 2
      spring-core/src/main/java/org/springframework/core/annotation/AnnotatedElementUtils.java
  2. 2
      spring-test/src/main/java/org/springframework/test/web/servlet/DefaultMvcResult.java
  3. 4
      spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/ReactiveTypeHandler.java
  4. 39
      spring-websocket/src/main/java/org/springframework/web/socket/config/MessageBrokerBeanDefinitionParser.java

2
spring-core/src/main/java/org/springframework/core/annotation/AnnotatedElementUtils.java

@ -444,11 +444,11 @@ public abstract class AnnotatedElementUtils { @@ -444,11 +444,11 @@ public abstract class AnnotatedElementUtils {
* @return the set of all merged repeatable {@code Annotations} found,
* or an empty set if none were found
* @throws IllegalArgumentException if the {@code element} or {@code annotationType}
* is {@code null}, or if the container type cannot be resolved
* @since 4.3
* @see #getMergedAnnotation(AnnotatedElement, Class)
* @see #getAllMergedAnnotations(AnnotatedElement, Class)
* @see #getMergedRepeatableAnnotations(AnnotatedElement, Class, Class)
* is {@code null}, or if the container type cannot be resolved
*/
public static <A extends Annotation> Set<A> getMergedRepeatableAnnotations(AnnotatedElement element,
Class<A> annotationType) {

2
spring-test/src/main/java/org/springframework/test/web/servlet/DefaultMvcResult.java

@ -156,7 +156,7 @@ class DefaultMvcResult implements MvcResult { @@ -156,7 +156,7 @@ class DefaultMvcResult implements MvcResult {
*/
private boolean awaitAsyncDispatch(long timeout) {
Assert.state(this.asyncDispatchLatch != null,
"The asyncDispatch CountDownLatch was not set by the TestDispatcherServlet.\n");
"The asyncDispatch CountDownLatch was not set by the TestDispatcherServlet.");
try {
return this.asyncDispatchLatch.await(timeout, TimeUnit.MILLISECONDS);
}

4
spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/ReactiveTypeHandler.java

@ -111,8 +111,8 @@ class ReactiveTypeHandler { @@ -111,8 +111,8 @@ class ReactiveTypeHandler {
/**
* Process the given reactive return value and decide whether to adapt it
* to a {@link ResponseBodyEmitter} or a {@link DeferredResult}.
* @return an emitter for streaming or {@code null} if handled internally
* with a {@link DeferredResult}.
* @return an emitter for streaming, or {@code null} if handled internally
* with a {@link DeferredResult}
*/
@Nullable
public ResponseBodyEmitter handleValue(Object returnValue, MethodParameter returnType,

39
spring-websocket/src/main/java/org/springframework/web/socket/config/MessageBrokerBeanDefinitionParser.java

@ -78,7 +78,7 @@ import org.springframework.web.socket.sockjs.support.SockJsHttpRequestHandler; @@ -78,7 +78,7 @@ import org.springframework.web.socket.sockjs.support.SockJsHttpRequestHandler;
* <p>Registers a Spring MVC {@link org.springframework.web.servlet.HandlerMapping}
* with order 1 to map HTTP WebSocket handshake requests from STOMP/WebSocket clients.
*
* <p>Registers the following {@link org.springframework.messaging.MessageChannel org.springframework.messaging.MessageChannels}:
* <p>Registers the following {@link org.springframework.messaging.MessageChannel MessageChannels}:
* <ul>
* <li>"clientInboundChannel" for receiving messages from clients (e.g. WebSocket clients)
* <li>"clientOutboundChannel" for sending messages to clients (e.g. WebSocket clients)
@ -124,7 +124,6 @@ class MessageBrokerBeanDefinitionParser implements BeanDefinitionParser { @@ -124,7 +124,6 @@ class MessageBrokerBeanDefinitionParser implements BeanDefinitionParser {
@Override
public BeanDefinition parse(Element element, ParserContext context) {
Object source = context.extractSource(element);
CompositeComponentDefinition compDefinition = new CompositeComponentDefinition(element.getTagName(), source);
context.pushContainingComponent(compDefinition);
@ -155,13 +154,12 @@ class MessageBrokerBeanDefinitionParser implements BeanDefinitionParser { @@ -155,13 +154,12 @@ class MessageBrokerBeanDefinitionParser implements BeanDefinitionParser {
for (Element endpointElem : DomUtils.getChildElementsByTagName(element, "stomp-endpoint")) {
RuntimeBeanReference requestHandler = registerRequestHandler(endpointElem, stompHandler, context, source);
String pathAttribute = endpointElem.getAttribute("path");
Assert.state(StringUtils.hasText(pathAttribute), "Invalid <stomp-endpoint> (no path mapping)");
List<String> paths = Arrays.asList(StringUtils.tokenizeToStringArray(pathAttribute, ","));
for (String path : paths) {
Assert.hasText(pathAttribute, "Invalid <stomp-endpoint> (no path mapping)");
for (String path : StringUtils.tokenizeToStringArray(pathAttribute, ",")) {
path = path.trim();
Assert.state(StringUtils.hasText(path), () -> "Invalid <stomp-endpoint> path attribute: " + pathAttribute);
Assert.hasText(path, () -> "Invalid <stomp-endpoint> path attribute: " + pathAttribute);
if (DomUtils.getChildElementByTagName(endpointElem, "sockjs") != null) {
path = path.endsWith("/") ? path + "**" : path + "/**";
path = (path.endsWith("/") ? path + "**" : path + "/**");
}
urlMap.put(path, requestHandler);
}
@ -179,7 +177,6 @@ class MessageBrokerBeanDefinitionParser implements BeanDefinitionParser { @@ -179,7 +177,6 @@ class MessageBrokerBeanDefinitionParser implements BeanDefinitionParser {
}
private RuntimeBeanReference registerUserRegistry(Element element, ParserContext context, @Nullable Object source) {
Element relayElement = DomUtils.getChildElementByTagName(element, "stomp-broker-relay");
boolean multiServer = (relayElement != null && relayElement.hasAttribute("user-registry-broadcast"));
@ -197,8 +194,8 @@ class MessageBrokerBeanDefinitionParser implements BeanDefinitionParser { @@ -197,8 +194,8 @@ class MessageBrokerBeanDefinitionParser implements BeanDefinitionParser {
}
}
private ManagedMap<String, Object> registerHandlerMapping(Element element,
ParserContext context, @Nullable Object source) {
private ManagedMap<String, Object> registerHandlerMapping(
Element element, ParserContext context, @Nullable Object source) {
RootBeanDefinition handlerMappingDef = new RootBeanDefinition(WebSocketHandlerMapping.class);
@ -247,6 +244,7 @@ class MessageBrokerBeanDefinitionParser implements BeanDefinitionParser { @@ -247,6 +244,7 @@ class MessageBrokerBeanDefinitionParser implements BeanDefinitionParser {
}
}
}
ConstructorArgumentValues cargs = new ConstructorArgumentValues();
if (executor != null) {
executor.getPropertyValues().add("threadNamePrefix", name + "-");
@ -254,6 +252,7 @@ class MessageBrokerBeanDefinitionParser implements BeanDefinitionParser { @@ -254,6 +252,7 @@ class MessageBrokerBeanDefinitionParser implements BeanDefinitionParser {
registerBeanDefByName(executorName, executor, context, source);
cargs.addIndexedArgumentValue(0, new RuntimeBeanReference(executorName));
}
RootBeanDefinition channelDef = new RootBeanDefinition(ExecutorSubscribableChannel.class, cargs, null);
ManagedList<? super Object> interceptors = new ManagedList<>();
if (element != null) {
@ -327,13 +326,13 @@ class MessageBrokerBeanDefinitionParser implements BeanDefinitionParser { @@ -327,13 +326,13 @@ class MessageBrokerBeanDefinitionParser implements BeanDefinitionParser {
return result;
}
private RuntimeBeanReference registerRequestHandler(Element element, RuntimeBeanReference subProtoHandler,
ParserContext cxt, @Nullable Object source) {
private RuntimeBeanReference registerRequestHandler(
Element element, RuntimeBeanReference subProtoHandler, ParserContext ctx, @Nullable Object source) {
RootBeanDefinition beanDef;
RuntimeBeanReference sockJsService = WebSocketNamespaceUtils.registerSockJsService(
element, SCHEDULER_BEAN_NAME, cxt, source);
element, SCHEDULER_BEAN_NAME, ctx, source);
if (sockJsService != null) {
ConstructorArgumentValues cargs = new ConstructorArgumentValues();
@ -342,12 +341,12 @@ class MessageBrokerBeanDefinitionParser implements BeanDefinitionParser { @@ -342,12 +341,12 @@ class MessageBrokerBeanDefinitionParser implements BeanDefinitionParser {
beanDef = new RootBeanDefinition(SockJsHttpRequestHandler.class, cargs, null);
// Register alias for backwards compatibility with 4.1
cxt.getRegistry().registerAlias(SCHEDULER_BEAN_NAME, SOCKJS_SCHEDULER_BEAN_NAME);
ctx.getRegistry().registerAlias(SCHEDULER_BEAN_NAME, SOCKJS_SCHEDULER_BEAN_NAME);
}
else {
RuntimeBeanReference handler = WebSocketNamespaceUtils.registerHandshakeHandler(element, cxt, source);
RuntimeBeanReference handler = WebSocketNamespaceUtils.registerHandshakeHandler(element, ctx, source);
Element interceptElem = DomUtils.getChildElementByTagName(element, "handshake-interceptors");
ManagedList<? super Object> interceptors = WebSocketNamespaceUtils.parseBeanSubElements(interceptElem, cxt);
ManagedList<? super Object> interceptors = WebSocketNamespaceUtils.parseBeanSubElements(interceptElem, ctx);
String allowedOrigins = element.getAttribute("allowed-origins");
List<String> origins = Arrays.asList(StringUtils.tokenizeToStringArray(allowedOrigins, ","));
interceptors.add(new OriginHandshakeInterceptor(origins));
@ -357,7 +356,7 @@ class MessageBrokerBeanDefinitionParser implements BeanDefinitionParser { @@ -357,7 +356,7 @@ class MessageBrokerBeanDefinitionParser implements BeanDefinitionParser {
beanDef = new RootBeanDefinition(WebSocketHttpRequestHandler.class, cargs, null);
beanDef.getPropertyValues().add("handshakeInterceptors", interceptors);
}
return new RuntimeBeanReference(registerBeanDef(beanDef, cxt, source));
return new RuntimeBeanReference(registerBeanDef(beanDef, ctx, source));
}
private RootBeanDefinition registerMessageBroker(Element brokerElement,
@ -673,20 +672,20 @@ class MessageBrokerBeanDefinitionParser implements BeanDefinitionParser { @@ -673,20 +672,20 @@ class MessageBrokerBeanDefinitionParser implements BeanDefinitionParser {
context.registerComponent(new BeanComponentDefinition(beanDef, name));
}
private static final class DecoratingFactoryBean implements FactoryBean<WebSocketHandler> {
private final WebSocketHandler handler;
private final List<WebSocketHandlerDecoratorFactory> factories;
private DecoratingFactoryBean(WebSocketHandler handler, List<WebSocketHandlerDecoratorFactory> factories) {
public DecoratingFactoryBean(WebSocketHandler handler, List<WebSocketHandlerDecoratorFactory> factories) {
this.handler = handler;
this.factories = factories;
}
@Override
public WebSocketHandler getObject() throws Exception {
public WebSocketHandler getObject() {
WebSocketHandler result = this.handler;
for (WebSocketHandlerDecoratorFactory factory : this.factories) {
result = factory.decorate(result);

Loading…
Cancel
Save