Skip to content

Commit c28cbfd

Browse files
committed
Upgrade Servlet, JSP and WebSocket API versions
This commit updates the Spring Framework baseline for the Servlet, JSP and WebSocket APIs. This also removes the previously deprecated APIs in JSP `PageContext` and guards against the deprecation of the `PushBuilder` API. See gh-33918
1 parent 1fb1801 commit c28cbfd

File tree

6 files changed

+10
-42
lines changed

6 files changed

+10
-42
lines changed

Diff for: framework-platform/framework-platform.gradle

+5-5
Original file line numberDiff line numberDiff line change
@@ -75,13 +75,13 @@ dependencies {
7575
api("jakarta.mail:jakarta.mail-api:2.0.1")
7676
api("jakarta.persistence:jakarta.persistence-api:3.0.0")
7777
api("jakarta.resource:jakarta.resource-api:2.0.0")
78-
api("jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api:3.0.0")
79-
api("jakarta.servlet.jsp:jakarta.servlet.jsp-api:3.1.1")
80-
api("jakarta.servlet:jakarta.servlet-api:6.0.0")
78+
api("jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api:3.0.2")
79+
api("jakarta.servlet.jsp:jakarta.servlet.jsp-api:4.0.0")
80+
api("jakarta.servlet:jakarta.servlet-api:6.1.0")
8181
api("jakarta.transaction:jakarta.transaction-api:2.0.1")
8282
api("jakarta.validation:jakarta.validation-api:3.0.2")
83-
api("jakarta.websocket:jakarta.websocket-api:2.1.0")
84-
api("jakarta.websocket:jakarta.websocket-client-api:2.1.0")
83+
api("jakarta.websocket:jakarta.websocket-api:2.2.0")
84+
api("jakarta.websocket:jakarta.websocket-client-api:2.2.0")
8585
api("jakarta.xml.bind:jakarta.xml.bind-api:3.0.1")
8686
api("javax.annotation:javax.annotation-api:1.3.2")
8787
api("javax.cache:cache-api:1.1.1")

Diff for: spring-test/src/main/java/org/springframework/mock/web/MockPageContext.java

-14
Original file line numberDiff line numberDiff line change
@@ -267,26 +267,12 @@ public JspWriter getOut() {
267267
return this.out;
268268
}
269269

270-
@Override
271-
@Deprecated
272-
@Nullable
273-
public jakarta.servlet.jsp.el.ExpressionEvaluator getExpressionEvaluator() {
274-
return null;
275-
}
276-
277270
@Override
278271
@Nullable
279272
public ELContext getELContext() {
280273
return null;
281274
}
282275

283-
@Override
284-
@Deprecated
285-
@Nullable
286-
public jakarta.servlet.jsp.el.VariableResolver getVariableResolver() {
287-
return null;
288-
}
289-
290276
@Override
291277
public HttpSession getSession() {
292278
return this.request.getSession();

Diff for: spring-web/src/main/java/org/springframework/http/server/reactive/ServletServerHttpResponse.java

+1-9
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@
3939
import org.springframework.http.ResponseCookie;
4040
import org.springframework.lang.Nullable;
4141
import org.springframework.util.Assert;
42-
import org.springframework.util.ReflectionUtils;
4342

4443
/**
4544
* Adapt {@link ServerHttpResponse} to the Servlet {@link HttpServletResponse}.
@@ -50,8 +49,6 @@
5049
*/
5150
class ServletServerHttpResponse extends AbstractListenerServerHttpResponse {
5251

53-
private static final boolean IS_SERVLET61 = ReflectionUtils.findField(HttpServletResponse.class, "SC_PERMANENT_REDIRECT") != null;
54-
5552
private final HttpServletResponse response;
5653

5754
private final ServletOutputStream outputStream;
@@ -186,12 +183,7 @@ protected void applyCookies() {
186183
cookie.setSecure(httpCookie.isSecure());
187184
cookie.setHttpOnly(httpCookie.isHttpOnly());
188185
if (httpCookie.isPartitioned()) {
189-
if (IS_SERVLET61) {
190-
cookie.setAttribute("Partitioned", "");
191-
}
192-
else {
193-
cookie.setAttribute("Partitioned", "true");
194-
}
186+
cookie.setAttribute("Partitioned", "");
195187
}
196188
this.response.addCookie(cookie);
197189
}

Diff for: spring-web/src/test/java/org/springframework/http/server/reactive/CookieIntegrationTests.java

+2
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
import org.springframework.web.client.RestTemplate;
3131
import org.springframework.web.testfixture.http.server.reactive.bootstrap.AbstractHttpHandlerIntegrationTests;
3232
import org.springframework.web.testfixture.http.server.reactive.bootstrap.HttpServer;
33+
import org.springframework.web.testfixture.http.server.reactive.bootstrap.JettyHttpServer;
3334
import org.springframework.web.testfixture.http.server.reactive.bootstrap.UndertowHttpServer;
3435

3536
import static org.assertj.core.api.Assertions.assertThat;
@@ -80,6 +81,7 @@ public void basicTest(HttpServer httpServer) throws Exception {
8081
@ParameterizedHttpServerTest
8182
public void partitionedAttributeTest(HttpServer httpServer) throws Exception {
8283
assumeFalse(httpServer instanceof UndertowHttpServer, "Undertow does not support Partitioned cookies");
84+
assumeFalse(httpServer instanceof JettyHttpServer, "Jetty does not support Servlet 6.1 yet");
8385
startServer(httpServer);
8486

8587
URI url = URI.create("http://localhost:" + port);

Diff for: spring-web/src/testFixtures/java/org/springframework/web/testfixture/servlet/MockPageContext.java

-14
Original file line numberDiff line numberDiff line change
@@ -267,26 +267,12 @@ public JspWriter getOut() {
267267
return this.out;
268268
}
269269

270-
@Override
271-
@Deprecated
272-
@Nullable
273-
public jakarta.servlet.jsp.el.ExpressionEvaluator getExpressionEvaluator() {
274-
return null;
275-
}
276-
277270
@Override
278271
@Nullable
279272
public ELContext getELContext() {
280273
return null;
281274
}
282275

283-
@Override
284-
@Deprecated
285-
@Nullable
286-
public jakarta.servlet.jsp.el.VariableResolver getVariableResolver() {
287-
return null;
288-
}
289-
290276
@Override
291277
public HttpSession getSession() {
292278
return this.request.getSession();

Diff for: spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/ServletRequestMethodArgumentResolver.java

+2
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@
7070
public class ServletRequestMethodArgumentResolver implements HandlerMethodArgumentResolver {
7171

7272
@Override
73+
@SuppressWarnings("deprecation")
7374
public boolean supportsParameter(MethodParameter parameter) {
7475
Class<?> paramType = parameter.getParameterType();
7576
return (WebRequest.class.isAssignableFrom(paramType) ||
@@ -121,6 +122,7 @@ private <T> T resolveNativeRequest(NativeWebRequest webRequest, Class<T> require
121122
}
122123

123124
@Nullable
125+
@SuppressWarnings("deprecation")
124126
private Object resolveArgument(Class<?> paramType, HttpServletRequest request) throws IOException {
125127
if (HttpSession.class.isAssignableFrom(paramType)) {
126128
HttpSession session = request.getSession();

0 commit comments

Comments
 (0)