Skip to content

Commit 17f9b61

Browse files
committed
Polish MessageBrokerConfigurationTests
1 parent afd248d commit 17f9b61

File tree

2 files changed

+88
-57
lines changed

2 files changed

+88
-57
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-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.
@@ -401,7 +401,9 @@ public void handleMessage(Message<?> message) throws MessagingException {
401401
message = MessageBuilder.createMessage(message.getPayload(), headerAccessor.getMessageHeaders());
402402

403403
if (logger.isDebugEnabled()) {
404-
logger.debug("Searching methods to handle " + headerAccessor.getShortLogMessage(message.getPayload()));
404+
logger.debug("Searching methods to handle " +
405+
headerAccessor.getShortLogMessage(message.getPayload()) +
406+
", lookupDestination='" + lookupDestination + "'");
405407
}
406408

407409
handleMessageInternal(message, lookupDestination);

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

Lines changed: 84 additions & 55 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.
@@ -84,45 +84,42 @@
8484
*/
8585
public class MessageBrokerConfigurationTests {
8686

87-
private ApplicationContext defaultContext = new AnnotationConfigApplicationContext(DefaultConfig.class);
88-
89-
private ApplicationContext simpleBrokerContext = new AnnotationConfigApplicationContext(SimpleBrokerConfig.class);
90-
91-
private ApplicationContext brokerRelayContext = new AnnotationConfigApplicationContext(BrokerRelayConfig.class);
92-
93-
private ApplicationContext customContext = new AnnotationConfigApplicationContext(CustomConfig.class);
94-
95-
9687
@Test
9788
public void clientInboundChannel() {
98-
TestChannel channel = this.simpleBrokerContext.getBean("clientInboundChannel", TestChannel.class);
89+
ApplicationContext context = loadConfig(SimpleBrokerConfig.class);
90+
91+
TestChannel channel = context.getBean("clientInboundChannel", TestChannel.class);
9992
Set<MessageHandler> handlers = channel.getSubscribers();
10093

10194
assertEquals(3, handlers.size());
102-
assertTrue(handlers.contains(simpleBrokerContext.getBean(SimpAnnotationMethodMessageHandler.class)));
103-
assertTrue(handlers.contains(simpleBrokerContext.getBean(UserDestinationMessageHandler.class)));
104-
assertTrue(handlers.contains(simpleBrokerContext.getBean(SimpleBrokerMessageHandler.class)));
95+
assertTrue(handlers.contains(context.getBean(SimpAnnotationMethodMessageHandler.class)));
96+
assertTrue(handlers.contains(context.getBean(UserDestinationMessageHandler.class)));
97+
assertTrue(handlers.contains(context.getBean(SimpleBrokerMessageHandler.class)));
10598
}
10699

107100
@Test
108101
public void clientInboundChannelWithBrokerRelay() {
109-
TestChannel channel = this.brokerRelayContext.getBean("clientInboundChannel", TestChannel.class);
102+
ApplicationContext context = loadConfig(BrokerRelayConfig.class);
103+
104+
TestChannel channel = context.getBean("clientInboundChannel", TestChannel.class);
110105
Set<MessageHandler> handlers = channel.getSubscribers();
111106

112107
assertEquals(3, handlers.size());
113-
assertTrue(handlers.contains(brokerRelayContext.getBean(SimpAnnotationMethodMessageHandler.class)));
114-
assertTrue(handlers.contains(brokerRelayContext.getBean(UserDestinationMessageHandler.class)));
115-
assertTrue(handlers.contains(brokerRelayContext.getBean(StompBrokerRelayMessageHandler.class)));
108+
assertTrue(handlers.contains(context.getBean(SimpAnnotationMethodMessageHandler.class)));
109+
assertTrue(handlers.contains(context.getBean(UserDestinationMessageHandler.class)));
110+
assertTrue(handlers.contains(context.getBean(StompBrokerRelayMessageHandler.class)));
116111
}
117112

118113
@Test
119114
public void clientInboundChannelCustomized() {
120-
AbstractSubscribableChannel channel = this.customContext.getBean(
115+
ApplicationContext context = loadConfig(CustomConfig.class);
116+
117+
AbstractSubscribableChannel channel = context.getBean(
121118
"clientInboundChannel", AbstractSubscribableChannel.class);
122119

123120
assertEquals(3, channel.getInterceptors().size());
124121

125-
CustomThreadPoolTaskExecutor taskExecutor = this.customContext.getBean(
122+
CustomThreadPoolTaskExecutor taskExecutor = context.getBean(
126123
"clientInboundChannelExecutor", CustomThreadPoolTaskExecutor.class);
127124

128125
assertEquals(11, taskExecutor.getCorePoolSize());
@@ -132,9 +129,11 @@ public void clientInboundChannelCustomized() {
132129

133130
@Test
134131
public void clientOutboundChannelUsedByAnnotatedMethod() {
135-
TestChannel channel = this.simpleBrokerContext.getBean("clientOutboundChannel", TestChannel.class);
132+
ApplicationContext context = loadConfig(SimpleBrokerConfig.class);
133+
134+
TestChannel channel = context.getBean("clientOutboundChannel", TestChannel.class);
136135
SimpAnnotationMethodMessageHandler messageHandler =
137-
this.simpleBrokerContext.getBean(SimpAnnotationMethodMessageHandler.class);
136+
context.getBean(SimpAnnotationMethodMessageHandler.class);
138137

139138
StompHeaderAccessor headers = StompHeaderAccessor.create(StompCommand.SUBSCRIBE);
140139
headers.setSessionId("sess1");
@@ -155,8 +154,10 @@ public void clientOutboundChannelUsedByAnnotatedMethod() {
155154

156155
@Test
157156
public void clientOutboundChannelUsedBySimpleBroker() {
158-
TestChannel channel = this.simpleBrokerContext.getBean("clientOutboundChannel", TestChannel.class);
159-
SimpleBrokerMessageHandler broker = this.simpleBrokerContext.getBean(SimpleBrokerMessageHandler.class);
157+
ApplicationContext context = loadConfig(SimpleBrokerConfig.class);
158+
159+
TestChannel channel = context.getBean("clientOutboundChannel", TestChannel.class);
160+
SimpleBrokerMessageHandler broker = context.getBean(SimpleBrokerMessageHandler.class);
160161

161162
StompHeaderAccessor headers = StompHeaderAccessor.create(StompCommand.SUBSCRIBE);
162163
headers.setSessionId("sess1");
@@ -185,12 +186,14 @@ public void clientOutboundChannelUsedBySimpleBroker() {
185186

186187
@Test
187188
public void clientOutboundChannelCustomized() {
188-
AbstractSubscribableChannel channel = this.customContext.getBean(
189+
ApplicationContext context = loadConfig(CustomConfig.class);
190+
191+
AbstractSubscribableChannel channel = context.getBean(
189192
"clientOutboundChannel", AbstractSubscribableChannel.class);
190193

191194
assertEquals(3, channel.getInterceptors().size());
192195

193-
ThreadPoolTaskExecutor taskExecutor = this.customContext.getBean(
196+
ThreadPoolTaskExecutor taskExecutor = context.getBean(
194197
"clientOutboundChannelExecutor", ThreadPoolTaskExecutor.class);
195198

196199
assertEquals(21, taskExecutor.getCorePoolSize());
@@ -200,31 +203,37 @@ public void clientOutboundChannelCustomized() {
200203

201204
@Test
202205
public void brokerChannel() {
203-
TestChannel channel = this.simpleBrokerContext.getBean("brokerChannel", TestChannel.class);
206+
ApplicationContext context = loadConfig(SimpleBrokerConfig.class);
207+
208+
TestChannel channel = context.getBean("brokerChannel", TestChannel.class);
204209
Set<MessageHandler> handlers = channel.getSubscribers();
205210

206211
assertEquals(2, handlers.size());
207-
assertTrue(handlers.contains(simpleBrokerContext.getBean(UserDestinationMessageHandler.class)));
208-
assertTrue(handlers.contains(simpleBrokerContext.getBean(SimpleBrokerMessageHandler.class)));
212+
assertTrue(handlers.contains(context.getBean(UserDestinationMessageHandler.class)));
213+
assertTrue(handlers.contains(context.getBean(SimpleBrokerMessageHandler.class)));
209214

210215
assertNull(channel.getExecutor());
211216
}
212217

213218
@Test
214219
public void brokerChannelWithBrokerRelay() {
215-
TestChannel channel = this.brokerRelayContext.getBean("brokerChannel", TestChannel.class);
220+
ApplicationContext context = loadConfig(BrokerRelayConfig.class);
221+
222+
TestChannel channel = context.getBean("brokerChannel", TestChannel.class);
216223
Set<MessageHandler> handlers = channel.getSubscribers();
217224

218225
assertEquals(2, handlers.size());
219-
assertTrue(handlers.contains(brokerRelayContext.getBean(UserDestinationMessageHandler.class)));
220-
assertTrue(handlers.contains(brokerRelayContext.getBean(StompBrokerRelayMessageHandler.class)));
226+
assertTrue(handlers.contains(context.getBean(UserDestinationMessageHandler.class)));
227+
assertTrue(handlers.contains(context.getBean(StompBrokerRelayMessageHandler.class)));
221228
}
222229

223230
@Test
224231
public void brokerChannelUsedByAnnotatedMethod() {
225-
TestChannel channel = this.simpleBrokerContext.getBean("brokerChannel", TestChannel.class);
232+
ApplicationContext context = loadConfig(SimpleBrokerConfig.class);
233+
234+
TestChannel channel = context.getBean("brokerChannel", TestChannel.class);
226235
SimpAnnotationMethodMessageHandler messageHandler =
227-
this.simpleBrokerContext.getBean(SimpAnnotationMethodMessageHandler.class);
236+
context.getBean(SimpAnnotationMethodMessageHandler.class);
228237

229238
StompHeaderAccessor headers = StompHeaderAccessor.create(StompCommand.SEND);
230239
headers.setSessionId("sess1");
@@ -244,12 +253,14 @@ public void brokerChannelUsedByAnnotatedMethod() {
244253

245254
@Test
246255
public void brokerChannelCustomized() {
247-
AbstractSubscribableChannel channel = this.customContext.getBean(
256+
ApplicationContext context = loadConfig(CustomConfig.class);
257+
258+
AbstractSubscribableChannel channel = context.getBean(
248259
"brokerChannel", AbstractSubscribableChannel.class);
249260

250261
assertEquals(4, channel.getInterceptors().size());
251262

252-
ThreadPoolTaskExecutor taskExecutor = this.customContext.getBean(
263+
ThreadPoolTaskExecutor taskExecutor = context.getBean(
253264
"brokerChannelExecutor", ThreadPoolTaskExecutor.class);
254265

255266
assertEquals(31, taskExecutor.getCorePoolSize());
@@ -274,17 +285,19 @@ public void configureMessageConvertersDefault() {
274285

275286
@Test
276287
public void threadPoolSizeDefault() {
288+
ApplicationContext context = loadConfig(DefaultConfig.class);
289+
277290
String name = "clientInboundChannelExecutor";
278-
ThreadPoolTaskExecutor executor = this.defaultContext.getBean(name, ThreadPoolTaskExecutor.class);
291+
ThreadPoolTaskExecutor executor = context.getBean(name, ThreadPoolTaskExecutor.class);
279292
assertEquals(Runtime.getRuntime().availableProcessors() * 2, executor.getCorePoolSize());
280293
// No way to verify queue capacity
281294

282295
name = "clientOutboundChannelExecutor";
283-
executor = this.defaultContext.getBean(name, ThreadPoolTaskExecutor.class);
296+
executor = context.getBean(name, ThreadPoolTaskExecutor.class);
284297
assertEquals(Runtime.getRuntime().availableProcessors() * 2, executor.getCorePoolSize());
285298

286299
name = "brokerChannelExecutor";
287-
executor = this.defaultContext.getBean(name, ThreadPoolTaskExecutor.class);
300+
executor = context.getBean(name, ThreadPoolTaskExecutor.class);
288301
assertEquals(0, executor.getCorePoolSize());
289302
assertEquals(1, executor.getMaxPoolSize());
290303
}
@@ -328,9 +341,11 @@ protected boolean configureMessageConverters(List<MessageConverter> messageConve
328341
}
329342

330343
@Test
331-
public void customArgumentAndReturnValueTypes() throws Exception {
344+
public void customArgumentAndReturnValueTypes() {
345+
ApplicationContext context = loadConfig(CustomConfig.class);
346+
332347
SimpAnnotationMethodMessageHandler handler =
333-
this.customContext.getBean(SimpAnnotationMethodMessageHandler.class);
348+
context.getBean(SimpAnnotationMethodMessageHandler.class);
334349

335350
List<HandlerMethodArgumentResolver> customResolvers = handler.getCustomArgumentResolvers();
336351
assertEquals(1, customResolvers.size());
@@ -376,67 +391,81 @@ public void simpValidatorMvc() {
376391

377392
@Test
378393
public void simpValidatorInjected() {
394+
ApplicationContext context = loadConfig(SimpleBrokerConfig.class);
395+
379396
SimpAnnotationMethodMessageHandler messageHandler =
380-
this.simpleBrokerContext.getBean(SimpAnnotationMethodMessageHandler.class);
397+
context.getBean(SimpAnnotationMethodMessageHandler.class);
381398

382399
assertThat(messageHandler.getValidator(), Matchers.notNullValue(Validator.class));
383400
}
384401

385402
@Test
386403
public void customPathMatcher() {
387-
SimpleBrokerMessageHandler broker = this.customContext.getBean(SimpleBrokerMessageHandler.class);
404+
ApplicationContext context = loadConfig(CustomConfig.class);
405+
406+
SimpleBrokerMessageHandler broker = context.getBean(SimpleBrokerMessageHandler.class);
388407
DefaultSubscriptionRegistry registry = (DefaultSubscriptionRegistry) broker.getSubscriptionRegistry();
389408
assertEquals("a.a", registry.getPathMatcher().combine("a", "a"));
390409

391410
PathMatcher pathMatcher =
392-
this.customContext.getBean(SimpAnnotationMethodMessageHandler.class).getPathMatcher();
411+
context.getBean(SimpAnnotationMethodMessageHandler.class).getPathMatcher();
393412

394413
assertEquals("a.a", pathMatcher.combine("a", "a"));
395414

396-
DefaultUserDestinationResolver resolver = this.customContext.getBean(DefaultUserDestinationResolver.class);
415+
DefaultUserDestinationResolver resolver = context.getBean(DefaultUserDestinationResolver.class);
397416
assertNotNull(resolver);
398417
assertEquals(false, new DirectFieldAccessor(resolver).getPropertyValue("keepLeadingSlash"));
399418
}
400419

401420
@Test
402421
public void customCacheLimit() {
403-
SimpleBrokerMessageHandler broker = this.customContext.getBean(SimpleBrokerMessageHandler.class);
422+
ApplicationContext context = loadConfig(CustomConfig.class);
423+
424+
SimpleBrokerMessageHandler broker = context.getBean(SimpleBrokerMessageHandler.class);
404425
DefaultSubscriptionRegistry registry = (DefaultSubscriptionRegistry) broker.getSubscriptionRegistry();
405426
assertEquals(8192, registry.getCacheLimit());
406427
}
407428

408429
@Test
409-
public void userBroadcasts() throws Exception {
410-
SimpUserRegistry userRegistry = this.brokerRelayContext.getBean(SimpUserRegistry.class);
430+
public void userBroadcasts() {
431+
ApplicationContext context = loadConfig(BrokerRelayConfig.class);
432+
433+
SimpUserRegistry userRegistry = context.getBean(SimpUserRegistry.class);
411434
assertEquals(MultiServerUserRegistry.class, userRegistry.getClass());
412435

413-
UserDestinationMessageHandler handler1 = this.brokerRelayContext.getBean(UserDestinationMessageHandler.class);
436+
UserDestinationMessageHandler handler1 = context.getBean(UserDestinationMessageHandler.class);
414437
assertEquals("/topic/unresolved-user-destination", handler1.getBroadcastDestination());
415438

416-
UserRegistryMessageHandler handler2 = this.brokerRelayContext.getBean(UserRegistryMessageHandler.class);
439+
UserRegistryMessageHandler handler2 = context.getBean(UserRegistryMessageHandler.class);
417440
assertEquals("/topic/simp-user-registry", handler2.getBroadcastDestination());
418441

419-
StompBrokerRelayMessageHandler relay = this.brokerRelayContext.getBean(StompBrokerRelayMessageHandler.class);
442+
StompBrokerRelayMessageHandler relay = context.getBean(StompBrokerRelayMessageHandler.class);
420443
assertNotNull(relay.getSystemSubscriptions());
421444
assertEquals(2, relay.getSystemSubscriptions().size());
422445
assertSame(handler1, relay.getSystemSubscriptions().get("/topic/unresolved-user-destination"));
423446
assertSame(handler2, relay.getSystemSubscriptions().get("/topic/simp-user-registry"));
424447
}
425448

426449
@Test
427-
public void userBroadcastsDisabledWithSimpleBroker() throws Exception {
428-
SimpUserRegistry registry = this.simpleBrokerContext.getBean(SimpUserRegistry.class);
450+
public void userBroadcastsDisabledWithSimpleBroker() {
451+
ApplicationContext context = loadConfig(SimpleBrokerConfig.class);
452+
453+
SimpUserRegistry registry = context.getBean(SimpUserRegistry.class);
429454
assertNotNull(registry);
430455
assertNotEquals(MultiServerUserRegistry.class, registry.getClass());
431456

432-
UserDestinationMessageHandler handler = this.simpleBrokerContext.getBean(UserDestinationMessageHandler.class);
457+
UserDestinationMessageHandler handler = context.getBean(UserDestinationMessageHandler.class);
433458
assertNull(handler.getBroadcastDestination());
434459

435460
String name = "userRegistryMessageHandler";
436-
MessageHandler messageHandler = this.simpleBrokerContext.getBean(name, MessageHandler.class);
461+
MessageHandler messageHandler = context.getBean(name, MessageHandler.class);
437462
assertNotEquals(UserRegistryMessageHandler.class, messageHandler.getClass());
438463
}
439464

465+
private AnnotationConfigApplicationContext loadConfig(Class<?> configClass) {
466+
return new AnnotationConfigApplicationContext(configClass);
467+
}
468+
440469

441470
@SuppressWarnings("unused")
442471
@Controller

0 commit comments

Comments
 (0)