Skip to content

Commit 238e9ae

Browse files
committed
Polish MessageBrokerConfigurationTests
1 parent 347f289 commit 238e9ae

File tree

2 files changed

+93
-58
lines changed

2 files changed

+93
-58
lines changed

spring-messaging/src/main/java/org/springframework/messaging/handler/invocation/AbstractMethodMessageHandler.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2002-2016 the original author or authors.
2+
* Copyright 2002-2018 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -393,7 +393,9 @@ public void handleMessage(Message<?> message) throws MessagingException {
393393
message = MessageBuilder.createMessage(message.getPayload(), headerAccessor.getMessageHeaders());
394394

395395
if (logger.isDebugEnabled()) {
396-
logger.debug("Searching methods to handle " + headerAccessor.getShortLogMessage(message.getPayload()));
396+
logger.debug("Searching methods to handle " +
397+
headerAccessor.getShortLogMessage(message.getPayload()) +
398+
", lookupDestination='" + lookupDestination + "'");
397399
}
398400

399401
handleMessageInternal(message, lookupDestination);

spring-messaging/src/test/java/org/springframework/messaging/simp/config/MessageBrokerConfigurationTests.java

Lines changed: 89 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2002-2017 the original author or authors.
2+
* Copyright 2002-2018 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -82,45 +82,42 @@
8282
*/
8383
public class MessageBrokerConfigurationTests {
8484

85-
private ApplicationContext defaultContext = new AnnotationConfigApplicationContext(DefaultConfig.class);
86-
87-
private ApplicationContext simpleBrokerContext = new AnnotationConfigApplicationContext(SimpleBrokerConfig.class);
88-
89-
private ApplicationContext brokerRelayContext = new AnnotationConfigApplicationContext(BrokerRelayConfig.class);
90-
91-
private ApplicationContext customContext = new AnnotationConfigApplicationContext(CustomConfig.class);
92-
93-
9485
@Test
9586
public void clientInboundChannel() {
96-
TestChannel channel = this.simpleBrokerContext.getBean("clientInboundChannel", TestChannel.class);
87+
ApplicationContext context = loadConfig(SimpleBrokerConfig.class);
88+
89+
TestChannel channel = context.getBean("clientInboundChannel", TestChannel.class);
9790
Set<MessageHandler> handlers = channel.getSubscribers();
9891

9992
assertEquals(3, handlers.size());
100-
assertTrue(handlers.contains(simpleBrokerContext.getBean(SimpAnnotationMethodMessageHandler.class)));
101-
assertTrue(handlers.contains(simpleBrokerContext.getBean(UserDestinationMessageHandler.class)));
102-
assertTrue(handlers.contains(simpleBrokerContext.getBean(SimpleBrokerMessageHandler.class)));
93+
assertTrue(handlers.contains(context.getBean(SimpAnnotationMethodMessageHandler.class)));
94+
assertTrue(handlers.contains(context.getBean(UserDestinationMessageHandler.class)));
95+
assertTrue(handlers.contains(context.getBean(SimpleBrokerMessageHandler.class)));
10396
}
10497

10598
@Test
10699
public void clientInboundChannelWithBrokerRelay() {
107-
TestChannel channel = this.brokerRelayContext.getBean("clientInboundChannel", TestChannel.class);
100+
ApplicationContext context = loadConfig(BrokerRelayConfig.class);
101+
102+
TestChannel channel = context.getBean("clientInboundChannel", TestChannel.class);
108103
Set<MessageHandler> handlers = channel.getSubscribers();
109104

110105
assertEquals(3, handlers.size());
111-
assertTrue(handlers.contains(brokerRelayContext.getBean(SimpAnnotationMethodMessageHandler.class)));
112-
assertTrue(handlers.contains(brokerRelayContext.getBean(UserDestinationMessageHandler.class)));
113-
assertTrue(handlers.contains(brokerRelayContext.getBean(StompBrokerRelayMessageHandler.class)));
106+
assertTrue(handlers.contains(context.getBean(SimpAnnotationMethodMessageHandler.class)));
107+
assertTrue(handlers.contains(context.getBean(UserDestinationMessageHandler.class)));
108+
assertTrue(handlers.contains(context.getBean(StompBrokerRelayMessageHandler.class)));
114109
}
115110

116111
@Test
117112
public void clientInboundChannelCustomized() {
118-
AbstractSubscribableChannel channel = this.customContext.getBean(
113+
ApplicationContext context = loadConfig(CustomConfig.class);
114+
115+
AbstractSubscribableChannel channel = context.getBean(
119116
"clientInboundChannel", AbstractSubscribableChannel.class);
120117

121118
assertEquals(3, channel.getInterceptors().size());
122119

123-
CustomThreadPoolTaskExecutor taskExecutor = this.customContext.getBean(
120+
CustomThreadPoolTaskExecutor taskExecutor = context.getBean(
124121
"clientInboundChannelExecutor", CustomThreadPoolTaskExecutor.class);
125122

126123
assertEquals(11, taskExecutor.getCorePoolSize());
@@ -130,8 +127,11 @@ public void clientInboundChannelCustomized() {
130127

131128
@Test
132129
public void clientOutboundChannelUsedByAnnotatedMethod() {
133-
TestChannel channel = this.simpleBrokerContext.getBean("clientOutboundChannel", TestChannel.class);
134-
SimpAnnotationMethodMessageHandler messageHandler = this.simpleBrokerContext.getBean(SimpAnnotationMethodMessageHandler.class);
130+
ApplicationContext context = loadConfig(SimpleBrokerConfig.class);
131+
132+
TestChannel channel = context.getBean("clientOutboundChannel", TestChannel.class);
133+
SimpAnnotationMethodMessageHandler messageHandler =
134+
context.getBean(SimpAnnotationMethodMessageHandler.class);
135135

136136
StompHeaderAccessor headers = StompHeaderAccessor.create(StompCommand.SUBSCRIBE);
137137
headers.setSessionId("sess1");
@@ -152,8 +152,10 @@ public void clientOutboundChannelUsedByAnnotatedMethod() {
152152

153153
@Test
154154
public void clientOutboundChannelUsedBySimpleBroker() {
155-
TestChannel channel = this.simpleBrokerContext.getBean("clientOutboundChannel", TestChannel.class);
156-
SimpleBrokerMessageHandler broker = this.simpleBrokerContext.getBean(SimpleBrokerMessageHandler.class);
155+
ApplicationContext context = loadConfig(SimpleBrokerConfig.class);
156+
157+
TestChannel channel = context.getBean("clientOutboundChannel", TestChannel.class);
158+
SimpleBrokerMessageHandler broker = context.getBean(SimpleBrokerMessageHandler.class);
157159

158160
StompHeaderAccessor headers = StompHeaderAccessor.create(StompCommand.SUBSCRIBE);
159161
headers.setSessionId("sess1");
@@ -182,12 +184,14 @@ public void clientOutboundChannelUsedBySimpleBroker() {
182184

183185
@Test
184186
public void clientOutboundChannelCustomized() {
185-
AbstractSubscribableChannel channel = this.customContext.getBean(
187+
ApplicationContext context = loadConfig(CustomConfig.class);
188+
189+
AbstractSubscribableChannel channel = context.getBean(
186190
"clientOutboundChannel", AbstractSubscribableChannel.class);
187191

188192
assertEquals(3, channel.getInterceptors().size());
189193

190-
ThreadPoolTaskExecutor taskExecutor = this.customContext.getBean(
194+
ThreadPoolTaskExecutor taskExecutor = context.getBean(
191195
"clientOutboundChannelExecutor", ThreadPoolTaskExecutor.class);
192196

193197
assertEquals(21, taskExecutor.getCorePoolSize());
@@ -197,31 +201,37 @@ public void clientOutboundChannelCustomized() {
197201

198202
@Test
199203
public void brokerChannel() {
200-
TestChannel channel = this.simpleBrokerContext.getBean("brokerChannel", TestChannel.class);
204+
ApplicationContext context = loadConfig(SimpleBrokerConfig.class);
205+
206+
TestChannel channel = context.getBean("brokerChannel", TestChannel.class);
201207
Set<MessageHandler> handlers = channel.getSubscribers();
202208

203209
assertEquals(2, handlers.size());
204-
assertTrue(handlers.contains(simpleBrokerContext.getBean(UserDestinationMessageHandler.class)));
205-
assertTrue(handlers.contains(simpleBrokerContext.getBean(SimpleBrokerMessageHandler.class)));
210+
assertTrue(handlers.contains(context.getBean(UserDestinationMessageHandler.class)));
211+
assertTrue(handlers.contains(context.getBean(SimpleBrokerMessageHandler.class)));
206212

207213
assertNull(channel.getExecutor());
208214
}
209215

210216
@Test
211217
public void brokerChannelWithBrokerRelay() {
212-
TestChannel channel = this.brokerRelayContext.getBean("brokerChannel", TestChannel.class);
218+
ApplicationContext context = loadConfig(BrokerRelayConfig.class);
219+
220+
TestChannel channel = context.getBean("brokerChannel", TestChannel.class);
213221
Set<MessageHandler> handlers = channel.getSubscribers();
214222

215223
assertEquals(2, handlers.size());
216-
assertTrue(handlers.contains(brokerRelayContext.getBean(UserDestinationMessageHandler.class)));
217-
assertTrue(handlers.contains(brokerRelayContext.getBean(StompBrokerRelayMessageHandler.class)));
224+
assertTrue(handlers.contains(context.getBean(UserDestinationMessageHandler.class)));
225+
assertTrue(handlers.contains(context.getBean(StompBrokerRelayMessageHandler.class)));
218226
}
219227

220228
@Test
221229
public void brokerChannelUsedByAnnotatedMethod() {
222-
TestChannel channel = this.simpleBrokerContext.getBean("brokerChannel", TestChannel.class);
230+
ApplicationContext context = loadConfig(SimpleBrokerConfig.class);
231+
232+
TestChannel channel = context.getBean("brokerChannel", TestChannel.class);
223233
SimpAnnotationMethodMessageHandler messageHandler =
224-
this.simpleBrokerContext.getBean(SimpAnnotationMethodMessageHandler.class);
234+
context.getBean(SimpAnnotationMethodMessageHandler.class);
225235

226236
StompHeaderAccessor headers = StompHeaderAccessor.create(StompCommand.SEND);
227237
headers.setSessionId("sess1");
@@ -241,12 +251,14 @@ public void brokerChannelUsedByAnnotatedMethod() {
241251

242252
@Test
243253
public void brokerChannelCustomized() {
244-
AbstractSubscribableChannel channel = this.customContext.getBean(
254+
ApplicationContext context = loadConfig(CustomConfig.class);
255+
256+
AbstractSubscribableChannel channel = context.getBean(
245257
"brokerChannel", AbstractSubscribableChannel.class);
246258

247259
assertEquals(4, channel.getInterceptors().size());
248260

249-
ThreadPoolTaskExecutor taskExecutor = this.customContext.getBean(
261+
ThreadPoolTaskExecutor taskExecutor = context.getBean(
250262
"brokerChannelExecutor", ThreadPoolTaskExecutor.class);
251263

252264
assertEquals(31, taskExecutor.getCorePoolSize());
@@ -271,17 +283,19 @@ public void configureMessageConvertersDefault() {
271283

272284
@Test
273285
public void threadPoolSizeDefault() {
286+
ApplicationContext context = loadConfig(DefaultConfig.class);
287+
274288
String name = "clientInboundChannelExecutor";
275-
ThreadPoolTaskExecutor executor = this.defaultContext.getBean(name, ThreadPoolTaskExecutor.class);
289+
ThreadPoolTaskExecutor executor = context.getBean(name, ThreadPoolTaskExecutor.class);
276290
assertEquals(Runtime.getRuntime().availableProcessors() * 2, executor.getCorePoolSize());
277291
// No way to verify queue capacity
278292

279293
name = "clientOutboundChannelExecutor";
280-
executor = this.defaultContext.getBean(name, ThreadPoolTaskExecutor.class);
294+
executor = context.getBean(name, ThreadPoolTaskExecutor.class);
281295
assertEquals(Runtime.getRuntime().availableProcessors() * 2, executor.getCorePoolSize());
282296

283297
name = "brokerChannelExecutor";
284-
executor = this.defaultContext.getBean(name, ThreadPoolTaskExecutor.class);
298+
executor = context.getBean(name, ThreadPoolTaskExecutor.class);
285299
assertEquals(0, executor.getCorePoolSize());
286300
assertEquals(1, executor.getMaxPoolSize());
287301
}
@@ -325,8 +339,11 @@ protected boolean configureMessageConverters(List<MessageConverter> messageConve
325339
}
326340

327341
@Test
328-
public void customArgumentAndReturnValueTypes() throws Exception {
329-
SimpAnnotationMethodMessageHandler handler = this.customContext.getBean(SimpAnnotationMethodMessageHandler.class);
342+
public void customArgumentAndReturnValueTypes() {
343+
ApplicationContext context = loadConfig(CustomConfig.class);
344+
345+
SimpAnnotationMethodMessageHandler handler =
346+
context.getBean(SimpAnnotationMethodMessageHandler.class);
330347

331348
List<HandlerMethodArgumentResolver> customResolvers = handler.getCustomArgumentResolvers();
332349
assertEquals(1, customResolvers.size());
@@ -372,65 +389,81 @@ public void simpValidatorMvc() {
372389

373390
@Test
374391
public void simpValidatorInjected() {
392+
ApplicationContext context = loadConfig(SimpleBrokerConfig.class);
393+
375394
SimpAnnotationMethodMessageHandler messageHandler =
376-
this.simpleBrokerContext.getBean(SimpAnnotationMethodMessageHandler.class);
395+
context.getBean(SimpAnnotationMethodMessageHandler.class);
377396

378397
assertThat(messageHandler.getValidator(), Matchers.notNullValue(Validator.class));
379398
}
380399

381400
@Test
382401
public void customPathMatcher() {
383-
SimpleBrokerMessageHandler broker = this.customContext.getBean(SimpleBrokerMessageHandler.class);
402+
ApplicationContext context = loadConfig(CustomConfig.class);
403+
404+
SimpleBrokerMessageHandler broker = context.getBean(SimpleBrokerMessageHandler.class);
384405
DefaultSubscriptionRegistry registry = (DefaultSubscriptionRegistry) broker.getSubscriptionRegistry();
385406
assertEquals("a.a", registry.getPathMatcher().combine("a", "a"));
386407

387-
SimpAnnotationMethodMessageHandler handler = this.customContext.getBean(SimpAnnotationMethodMessageHandler.class);
388-
assertEquals("a.a", handler.getPathMatcher().combine("a", "a"));
408+
PathMatcher pathMatcher =
409+
context.getBean(SimpAnnotationMethodMessageHandler.class).getPathMatcher();
389410

390-
DefaultUserDestinationResolver resolver = this.customContext.getBean(DefaultUserDestinationResolver.class);
411+
assertEquals("a.a", pathMatcher.combine("a", "a"));
412+
413+
DefaultUserDestinationResolver resolver = context.getBean(DefaultUserDestinationResolver.class);
391414
assertNotNull(resolver);
392415
assertEquals(false, new DirectFieldAccessor(resolver).getPropertyValue("keepLeadingSlash"));
393416
}
394417

395418
@Test
396419
public void customCacheLimit() {
397-
SimpleBrokerMessageHandler broker = this.customContext.getBean(SimpleBrokerMessageHandler.class);
420+
ApplicationContext context = loadConfig(CustomConfig.class);
421+
422+
SimpleBrokerMessageHandler broker = context.getBean(SimpleBrokerMessageHandler.class);
398423
DefaultSubscriptionRegistry registry = (DefaultSubscriptionRegistry) broker.getSubscriptionRegistry();
399424
assertEquals(8192, registry.getCacheLimit());
400425
}
401426

402427
@Test
403-
public void userBroadcasts() throws Exception {
404-
SimpUserRegistry userRegistry = this.brokerRelayContext.getBean(SimpUserRegistry.class);
428+
public void userBroadcasts() {
429+
ApplicationContext context = loadConfig(BrokerRelayConfig.class);
430+
431+
SimpUserRegistry userRegistry = context.getBean(SimpUserRegistry.class);
405432
assertEquals(MultiServerUserRegistry.class, userRegistry.getClass());
406433

407-
UserDestinationMessageHandler handler1 = this.brokerRelayContext.getBean(UserDestinationMessageHandler.class);
434+
UserDestinationMessageHandler handler1 = context.getBean(UserDestinationMessageHandler.class);
408435
assertEquals("/topic/unresolved-user-destination", handler1.getBroadcastDestination());
409436

410-
UserRegistryMessageHandler handler2 = this.brokerRelayContext.getBean(UserRegistryMessageHandler.class);
437+
UserRegistryMessageHandler handler2 = context.getBean(UserRegistryMessageHandler.class);
411438
assertEquals("/topic/simp-user-registry", handler2.getBroadcastDestination());
412439

413-
StompBrokerRelayMessageHandler relay = this.brokerRelayContext.getBean(StompBrokerRelayMessageHandler.class);
440+
StompBrokerRelayMessageHandler relay = context.getBean(StompBrokerRelayMessageHandler.class);
414441
assertNotNull(relay.getSystemSubscriptions());
415442
assertEquals(2, relay.getSystemSubscriptions().size());
416443
assertSame(handler1, relay.getSystemSubscriptions().get("/topic/unresolved-user-destination"));
417444
assertSame(handler2, relay.getSystemSubscriptions().get("/topic/simp-user-registry"));
418445
}
419446

420447
@Test
421-
public void userBroadcastsDisabledWithSimpleBroker() throws Exception {
422-
SimpUserRegistry registry = this.simpleBrokerContext.getBean(SimpUserRegistry.class);
448+
public void userBroadcastsDisabledWithSimpleBroker() {
449+
ApplicationContext context = loadConfig(SimpleBrokerConfig.class);
450+
451+
SimpUserRegistry registry = context.getBean(SimpUserRegistry.class);
423452
assertNotNull(registry);
424453
assertNotEquals(MultiServerUserRegistry.class, registry.getClass());
425454

426-
UserDestinationMessageHandler handler = this.simpleBrokerContext.getBean(UserDestinationMessageHandler.class);
455+
UserDestinationMessageHandler handler = context.getBean(UserDestinationMessageHandler.class);
427456
assertNull(handler.getBroadcastDestination());
428457

429458
String name = "userRegistryMessageHandler";
430-
MessageHandler messageHandler = this.simpleBrokerContext.getBean(name, MessageHandler.class);
459+
MessageHandler messageHandler = context.getBean(name, MessageHandler.class);
431460
assertNotEquals(UserRegistryMessageHandler.class, messageHandler.getClass());
432461
}
433462

463+
private AnnotationConfigApplicationContext loadConfig(Class<?> configClass) {
464+
return new AnnotationConfigApplicationContext(configClass);
465+
}
466+
434467

435468
@SuppressWarnings("unused")
436469
@Controller

0 commit comments

Comments
 (0)