Skip to content

Commit 5caf36a

Browse files
committed
Update default pools size for SockJS scheduler
This change updates the XML namespace to match a change already made to the Java config.
1 parent 13da705 commit 5caf36a

File tree

4 files changed

+16
-1
lines changed

4 files changed

+16
-1
lines changed

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,7 @@ private static RuntimeBeanReference registerSockJsTaskScheduler(String scheduler
138138
RootBeanDefinition taskSchedulerDef = new RootBeanDefinition(ThreadPoolTaskScheduler.class);
139139
taskSchedulerDef.setSource(source);
140140
taskSchedulerDef.setRole(BeanDefinition.ROLE_INFRASTRUCTURE);
141+
taskSchedulerDef.getPropertyValues().add("poolSize", Runtime.getRuntime().availableProcessors());
141142
taskSchedulerDef.getPropertyValues().add("threadNamePrefix", schedulerName + "-");
142143
parserContext.getRegistry().registerBeanDefinition(schedulerName, taskSchedulerDef);
143144
parserContext.registerComponent(new BeanComponentDefinition(taskSchedulerDef, schedulerName));

spring-websocket/src/test/java/org/springframework/web/socket/config/MessageBrokerBeanDefinitionParserTests.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@
4646
import org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler;
4747
import org.springframework.messaging.support.AbstractSubscribableChannel;
4848
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
49+
import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;
4950
import org.springframework.util.MimeTypeUtils;
5051
import org.springframework.web.HttpRequestHandler;
5152
import org.springframework.web.context.support.GenericWebApplicationContext;
@@ -134,6 +135,9 @@ public void simpleBroker() {
134135
assertNotNull(wsTransportHandler.getHandshakeHandler());
135136
assertThat(wsTransportHandler.getHandshakeHandler(), Matchers.instanceOf(TestHandshakeHandler.class));
136137

138+
ThreadPoolTaskScheduler scheduler = (ThreadPoolTaskScheduler) defaultSockJsService.getTaskScheduler();
139+
assertEquals(Runtime.getRuntime().availableProcessors(), scheduler.getScheduledThreadPoolExecutor().getCorePoolSize());
140+
137141
UserSessionRegistry userSessionRegistry = this.appContext.getBean(UserSessionRegistry.class);
138142
assertNotNull(userSessionRegistry);
139143

spring-websocket/src/test/java/org/springframework/web/socket/config/annotation/WebSocketMessageBrokerConfigurationSupportTests.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
import org.springframework.messaging.simp.annotation.SubscribeMapping;
3838
import org.springframework.messaging.simp.stomp.StompCommand;
3939
import org.springframework.messaging.simp.stomp.StompHeaderAccessor;
40+
import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;
4041
import org.springframework.stereotype.Controller;
4142
import org.springframework.web.servlet.HandlerMapping;
4243
import org.springframework.web.servlet.handler.SimpleUrlHandlerMapping;
@@ -122,6 +123,15 @@ public void webSocketTransportOptions() {
122123
}
123124
}
124125

126+
@Test
127+
public void messageBrokerSockJsTaskScheduler() {
128+
ThreadPoolTaskScheduler taskScheduler =
129+
this.config.getBean("messageBrokerSockJsTaskScheduler", ThreadPoolTaskScheduler.class);
130+
131+
assertEquals(Runtime.getRuntime().availableProcessors(),
132+
taskScheduler.getScheduledThreadPoolExecutor().getCorePoolSize());
133+
}
134+
125135

126136
@Controller
127137
static class TestController {

spring-websocket/src/test/java/org/springframework/web/socket/messaging/StompWebSocketIntegrationTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ public void sendMessageToController() throws Exception {
8585

8686
SimpleController controller = this.wac.getBean(SimpleController.class);
8787
try {
88-
assertTrue(controller.latch.await(2, TimeUnit.SECONDS));
88+
assertTrue(controller.latch.await(10, TimeUnit.SECONDS));
8989
}
9090
finally {
9191
session.close();

0 commit comments

Comments
 (0)