Skip to content

Commit 6aa6d91

Browse files
committed
Remove deprecated constructors in WebSocket config
In preparation for SPR-16189.
1 parent c2fbd9f commit 6aa6d91

File tree

5 files changed

+13
-81
lines changed

5 files changed

+13
-81
lines changed

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

Lines changed: 0 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
import java.util.List;
2222

2323
import org.springframework.lang.Nullable;
24-
import org.springframework.scheduling.TaskScheduler;
2524
import org.springframework.util.Assert;
2625
import org.springframework.util.LinkedMultiValueMap;
2726
import org.springframework.util.MultiValueMap;
@@ -58,23 +57,6 @@ public abstract class AbstractWebSocketHandlerRegistration<M> implements WebSock
5857
@Nullable
5958
private SockJsServiceRegistration sockJsServiceRegistration;
6059

61-
@Nullable
62-
private TaskScheduler scheduler;
63-
64-
65-
public AbstractWebSocketHandlerRegistration() {
66-
}
67-
68-
/**
69-
* Deprecated constructor with a TaskScheduler.
70-
* @deprecated as of 5.0 a TaskScheduler is not provided upfront, not until
71-
* it is obvious that it is needed, see {@link #getSockJsServiceRegistration()}.
72-
*/
73-
@Deprecated
74-
public AbstractWebSocketHandlerRegistration(TaskScheduler defaultTaskScheduler) {
75-
this.scheduler = defaultTaskScheduler;
76-
}
77-
7860

7961
@Override
8062
public WebSocketHandlerRegistration addHandler(WebSocketHandler handler, String... paths) {
@@ -115,9 +97,6 @@ public WebSocketHandlerRegistration setAllowedOrigins(String... allowedOrigins)
11597
@Override
11698
public SockJsServiceRegistration withSockJS() {
11799
this.sockJsServiceRegistration = new SockJsServiceRegistration();
118-
if (this.scheduler != null) {
119-
this.sockJsServiceRegistration.setTaskScheduler(this.scheduler);
120-
}
121100
HandshakeInterceptor[] interceptors = getInterceptors();
122101
if (interceptors.length > 0) {
123102
this.sockJsServiceRegistration.setInterceptors(interceptors);

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
*
3131
* @author Rossen Stoyanchev
3232
* @since 4.0.1
33-
* @deprecated in favor of simply using {@link WebSocketMessageBrokerConfigurer}
33+
* @deprecated as of 5.0 in favor of simply using {@link WebSocketMessageBrokerConfigurer}
3434
* which has default methods, made possible by a Java 8 baseline.
3535
*/
3636
@Deprecated

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

Lines changed: 1 addition & 18 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.
@@ -18,7 +18,6 @@
1818

1919
import java.util.Arrays;
2020

21-
import org.springframework.scheduling.TaskScheduler;
2221
import org.springframework.util.LinkedMultiValueMap;
2322
import org.springframework.util.MultiValueMap;
2423
import org.springframework.util.ObjectUtils;
@@ -41,22 +40,6 @@ public class ServletWebSocketHandlerRegistration
4140
extends AbstractWebSocketHandlerRegistration<MultiValueMap<HttpRequestHandler, String>> {
4241

4342

44-
public ServletWebSocketHandlerRegistration() {
45-
}
46-
47-
/**
48-
* Deprecated constructor with a TaskScheduler for SockJS use.
49-
*
50-
* @deprecated as of 5.0 a TaskScheduler is not provided upfront, not until
51-
* it is obvious that it is needed, see {@link #getSockJsServiceRegistration()}.
52-
*/
53-
@Deprecated
54-
@SuppressWarnings("deprecated")
55-
public ServletWebSocketHandlerRegistration(TaskScheduler scheduler) {
56-
super(scheduler);
57-
}
58-
59-
6043
@Override
6144
protected MultiValueMap<HttpRequestHandler, String> createMappings() {
6245
return new LinkedMultiValueMap<>();

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

Lines changed: 11 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,10 @@
2020
import java.util.LinkedHashMap;
2121
import java.util.List;
2222
import java.util.Map;
23+
import java.util.Objects;
2324

2425
import org.springframework.lang.Nullable;
2526
import org.springframework.scheduling.TaskScheduler;
26-
import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;
2727
import org.springframework.util.MultiValueMap;
2828
import org.springframework.web.HttpRequestHandler;
2929
import org.springframework.web.servlet.handler.AbstractHandlerMapping;
@@ -33,8 +33,8 @@
3333
import org.springframework.web.util.UrlPathHelper;
3434

3535
/**
36-
* A {@link WebSocketHandlerRegistry} that maps {@link WebSocketHandler WebSocketHandlerRegistry} that maps {@link WebSocketHandlers} to URLs for use
37-
* in a Servlet container.
36+
* {@link WebSocketHandlerRegistry} with Spring MVC handler mappings for the
37+
* handshake requests.
3838
*
3939
* @author Rossen Stoyanchev
4040
* @since 4.0
@@ -43,9 +43,6 @@ public class ServletWebSocketHandlerRegistry implements WebSocketHandlerRegistry
4343

4444
private final List<ServletWebSocketHandlerRegistration> registrations = new ArrayList<>(4);
4545

46-
@Nullable
47-
private TaskScheduler scheduler;
48-
4946
private int order = 1;
5047

5148
@Nullable
@@ -55,17 +52,6 @@ public class ServletWebSocketHandlerRegistry implements WebSocketHandlerRegistry
5552
public ServletWebSocketHandlerRegistry() {
5653
}
5754

58-
/**
59-
* Deprecated constructor with a TaskScheduler for SockJS use.
60-
* @deprecated as of 5.0 a TaskScheduler is not provided upfront, not until
61-
* it is obvious that it is needed, see {@link #requiresTaskScheduler()} and
62-
* {@link #setTaskScheduler}.
63-
*/
64-
@Deprecated
65-
public ServletWebSocketHandlerRegistry(ThreadPoolTaskScheduler scheduler) {
66-
this.scheduler = scheduler;
67-
}
68-
6955

7056
@Override
7157
public WebSocketHandlerRegistration addHandler(WebSocketHandler handler, String... paths) {
@@ -114,18 +100,21 @@ protected boolean requiresTaskScheduler() {
114100
}
115101

116102
/**
117-
* Configure a TaskScheduler for SockJS endpoints. This should be configured
118-
* before calling {@link #getHandlerMapping()} after checking if
119-
* {@link #requiresTaskScheduler()} returns {@code true}.
103+
* Set a TaskScheduler is set on each SockJS registration that hasn't had one
104+
* registered explicitly. This method needs to be invoked prior to calling
105+
* {@link #getHandlerMapping()}.
120106
*/
121107
protected void setTaskScheduler(TaskScheduler scheduler) {
122-
this.scheduler = scheduler;
108+
this.registrations.stream()
109+
.map(ServletWebSocketHandlerRegistration::getSockJsServiceRegistration)
110+
.filter(Objects::nonNull)
111+
.filter(r -> r.getTaskScheduler() == null)
112+
.forEach(r -> r.setTaskScheduler(scheduler));
123113
}
124114

125115
public AbstractHandlerMapping getHandlerMapping() {
126116
Map<String, Object> urlMap = new LinkedHashMap<>();
127117
for (ServletWebSocketHandlerRegistration registration : this.registrations) {
128-
updateTaskScheduler(registration);
129118
MultiValueMap<HttpRequestHandler, String> mappings = registration.getMappings();
130119
mappings.forEach((httpHandler, patterns) -> {
131120
for (String pattern : patterns) {
@@ -142,11 +131,4 @@ public AbstractHandlerMapping getHandlerMapping() {
142131
return hm;
143132
}
144133

145-
private void updateTaskScheduler(ServletWebSocketHandlerRegistration registration) {
146-
SockJsServiceRegistration sockJsRegistration = registration.getSockJsServiceRegistration();
147-
if (sockJsRegistration != null && this.scheduler != null && sockJsRegistration.getTaskScheduler() == null) {
148-
sockJsRegistration.setTaskScheduler(this.scheduler);
149-
}
150-
}
151-
152134
}

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

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -83,18 +83,6 @@ public class SockJsServiceRegistration {
8383
public SockJsServiceRegistration() {
8484
}
8585

86-
/**
87-
* Deprecated constructor with a TaskScheduler.
88-
* @deprecated as of 5.0 a TaskScheduler is not provided upfront, not until
89-
* it is obvious that it is needed; call {@link #getTaskScheduler()} to check
90-
* and then {@link #setTaskScheduler(TaskScheduler)} to set it before a call
91-
* to {@link #createSockJsService()}
92-
*/
93-
@Deprecated
94-
public SockJsServiceRegistration(TaskScheduler defaultTaskScheduler) {
95-
this.scheduler = defaultTaskScheduler;
96-
}
97-
9886

9987
/**
10088
* A scheduler instance to use for scheduling SockJS heart-beats.

0 commit comments

Comments
 (0)