Deprecated as of 5.0 a TaskScheduler is not provided upfront, not until it is obvious that it is needed, see ServletWebSocketHandlerRegistry.requiresTaskScheduler() and ServletWebSocketHandlerRegistry.setTaskScheduler(org.springframework.scheduling.TaskScheduler).
@Bean public HandlerMapping webSocketHandlerMapping() { ServletWebSocketHandlerRegistry registry = initHandlerRegistry(); if (registry.requiresTaskScheduler()) { TaskScheduler scheduler = defaultSockJsTaskScheduler(); Assert.notNull(scheduler, "Expected default TaskScheduler bean"); registry.setTaskScheduler(scheduler); } return registry.getHandlerMapping(); }
private ServletWebSocketHandlerRegistry initHandlerRegistry() { if (this.handlerRegistry == null) { this.handlerRegistry = new ServletWebSocketHandlerRegistry(); registerWebSocketHandlers(this.handlerRegistry); } return this.handlerRegistry; }
/** * The default TaskScheduler to use if none is registered explicitly via * {@link SockJsServiceRegistration#setTaskScheduler}: * <pre class="code"> * @Configuration * @EnableWebSocket * public class WebSocketConfig implements WebSocketConfigurer { * * public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) { * registry.addHandler(myHandler(), "/echo") * .withSockJS() * .setTaskScheduler(myScheduler()); * } * * // ... * } * </pre> */ @Bean @Nullable public TaskScheduler defaultSockJsTaskScheduler() { if (initHandlerRegistry().requiresTaskScheduler()) { ThreadPoolTaskScheduler threadPoolScheduler = new ThreadPoolTaskScheduler(); threadPoolScheduler.setThreadNamePrefix("SockJS-"); threadPoolScheduler.setPoolSize(Runtime.getRuntime().availableProcessors()); threadPoolScheduler.setRemoveOnCancelPolicy(true); this.scheduler = threadPoolScheduler; } return this.scheduler; }
@Override public void setTaskScheduler(TaskScheduler scheduler) { super.setTaskScheduler(scheduler); }
@Bean public HandlerMapping webSocketHandlerMapping() { ServletWebSocketHandlerRegistry registry = initHandlerRegistry(); return registry.getHandlerMapping(); }
public AbstractHandlerMapping getHandlerMapping() { Map<String, Object> urlMap = new LinkedHashMap<>(); for (ServletWebSocketHandlerRegistration registration : this.registrations) { updateTaskScheduler(registration); MultiValueMap<HttpRequestHandler, String> mappings = registration.getMappings(); mappings.forEach((httpHandler, patterns) -> { for (String pattern : patterns) { urlMap.put(pattern, httpHandler); } }); } WebSocketHandlerMapping hm = new WebSocketHandlerMapping(); hm.setUrlMap(urlMap); hm.setOrder(this.order); if (this.urlPathHelper != null) { hm.setUrlPathHelper(this.urlPathHelper); } return hm; }
@Override public boolean requiresTaskScheduler() { return super.requiresTaskScheduler(); }
@Override public void setTaskScheduler(TaskScheduler scheduler) { super.setTaskScheduler(scheduler); }
@Bean public HandlerMapping webSocketHandlerMapping() { ServletWebSocketHandlerRegistry registry = initHandlerRegistry(); if (registry.requiresTaskScheduler()) { registry.setTaskScheduler(initTaskScheduler()); } return registry.getHandlerMapping(); }
@Override public boolean requiresTaskScheduler() { return super.requiresTaskScheduler(); }
private ServletWebSocketHandlerRegistry initHandlerRegistry() { if (this.handlerRegistry == null) { this.handlerRegistry = new ServletWebSocketHandlerRegistry(); registerWebSocketHandlers(this.handlerRegistry); } return this.handlerRegistry; }
@Bean public HandlerMapping webSocketHandlerMapping() { ServletWebSocketHandlerRegistry registry = initHandlerRegistry(); if (registry.requiresTaskScheduler()) { TaskScheduler scheduler = defaultSockJsTaskScheduler(); Assert.notNull(scheduler, "Expected default TaskScheduler bean"); registry.setTaskScheduler(scheduler); } return registry.getHandlerMapping(); }
/** * The default TaskScheduler to use if none is registered explicitly via * {@link SockJsServiceRegistration#setTaskScheduler}: * <pre class="code"> * @Configuration * @EnableWebSocket * public class WebSocketConfig implements WebSocketConfigurer { * * public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) { * registry.addHandler(myHandler(), "/echo") * .withSockJS() * .setTaskScheduler(myScheduler()); * } * * // ... * } * </pre> */ @Bean @Nullable public TaskScheduler defaultSockJsTaskScheduler() { if (initHandlerRegistry().requiresTaskScheduler()) { ThreadPoolTaskScheduler threadPoolScheduler = new ThreadPoolTaskScheduler(); threadPoolScheduler.setThreadNamePrefix("SockJS-"); threadPoolScheduler.setPoolSize(Runtime.getRuntime().availableProcessors()); threadPoolScheduler.setRemoveOnCancelPolicy(true); this.scheduler = threadPoolScheduler; } return this.scheduler; }
private ServletWebSocketHandlerRegistry initHandlerRegistry() { if (this.handlerRegistry == null) { this.handlerRegistry = new ServletWebSocketHandlerRegistry(); registerWebSocketHandlers(this.handlerRegistry); } return this.handlerRegistry; }
private TaskScheduler initTaskScheduler() { if (this.scheduler == null) { ServletWebSocketHandlerRegistry registry = initHandlerRegistry(); if (registry.requiresTaskScheduler()) { ThreadPoolTaskScheduler threadPoolScheduler = new ThreadPoolTaskScheduler(); threadPoolScheduler.setThreadNamePrefix("SockJS-"); threadPoolScheduler.setPoolSize(Runtime.getRuntime().availableProcessors()); threadPoolScheduler.setRemoveOnCancelPolicy(true); this.scheduler = threadPoolScheduler; } else { this.scheduler = new NoOpScheduler(); } } return this.scheduler; }
private ServletWebSocketHandlerRegistry initHandlerRegistry() { if (this.handlerRegistry == null) { this.handlerRegistry = new ServletWebSocketHandlerRegistry(); registerWebSocketHandlers(this.handlerRegistry); } return this.handlerRegistry; }