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
This commit is contained in:
parent
1fb1801285
commit
c28cbfd582
|
@ -75,13 +75,13 @@ dependencies {
|
|||
api("jakarta.mail:jakarta.mail-api:2.0.1")
|
||||
api("jakarta.persistence:jakarta.persistence-api:3.0.0")
|
||||
api("jakarta.resource:jakarta.resource-api:2.0.0")
|
||||
api("jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api:3.0.0")
|
||||
api("jakarta.servlet.jsp:jakarta.servlet.jsp-api:3.1.1")
|
||||
api("jakarta.servlet:jakarta.servlet-api:6.0.0")
|
||||
api("jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api:3.0.2")
|
||||
api("jakarta.servlet.jsp:jakarta.servlet.jsp-api:4.0.0")
|
||||
api("jakarta.servlet:jakarta.servlet-api:6.1.0")
|
||||
api("jakarta.transaction:jakarta.transaction-api:2.0.1")
|
||||
api("jakarta.validation:jakarta.validation-api:3.0.2")
|
||||
api("jakarta.websocket:jakarta.websocket-api:2.1.0")
|
||||
api("jakarta.websocket:jakarta.websocket-client-api:2.1.0")
|
||||
api("jakarta.websocket:jakarta.websocket-api:2.2.0")
|
||||
api("jakarta.websocket:jakarta.websocket-client-api:2.2.0")
|
||||
api("jakarta.xml.bind:jakarta.xml.bind-api:3.0.1")
|
||||
api("javax.annotation:javax.annotation-api:1.3.2")
|
||||
api("javax.cache:cache-api:1.1.1")
|
||||
|
|
|
@ -267,26 +267,12 @@ public class MockPageContext extends PageContext {
|
|||
return this.out;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Deprecated
|
||||
@Nullable
|
||||
public jakarta.servlet.jsp.el.ExpressionEvaluator getExpressionEvaluator() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public ELContext getELContext() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Deprecated
|
||||
@Nullable
|
||||
public jakarta.servlet.jsp.el.VariableResolver getVariableResolver() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public HttpSession getSession() {
|
||||
return this.request.getSession();
|
||||
|
|
|
@ -39,7 +39,6 @@ import org.springframework.http.MediaType;
|
|||
import org.springframework.http.ResponseCookie;
|
||||
import org.springframework.lang.Nullable;
|
||||
import org.springframework.util.Assert;
|
||||
import org.springframework.util.ReflectionUtils;
|
||||
|
||||
/**
|
||||
* Adapt {@link ServerHttpResponse} to the Servlet {@link HttpServletResponse}.
|
||||
|
@ -50,8 +49,6 @@ import org.springframework.util.ReflectionUtils;
|
|||
*/
|
||||
class ServletServerHttpResponse extends AbstractListenerServerHttpResponse {
|
||||
|
||||
private static final boolean IS_SERVLET61 = ReflectionUtils.findField(HttpServletResponse.class, "SC_PERMANENT_REDIRECT") != null;
|
||||
|
||||
private final HttpServletResponse response;
|
||||
|
||||
private final ServletOutputStream outputStream;
|
||||
|
@ -186,12 +183,7 @@ class ServletServerHttpResponse extends AbstractListenerServerHttpResponse {
|
|||
cookie.setSecure(httpCookie.isSecure());
|
||||
cookie.setHttpOnly(httpCookie.isHttpOnly());
|
||||
if (httpCookie.isPartitioned()) {
|
||||
if (IS_SERVLET61) {
|
||||
cookie.setAttribute("Partitioned", "");
|
||||
}
|
||||
else {
|
||||
cookie.setAttribute("Partitioned", "true");
|
||||
}
|
||||
cookie.setAttribute("Partitioned", "");
|
||||
}
|
||||
this.response.addCookie(cookie);
|
||||
}
|
||||
|
|
|
@ -30,6 +30,7 @@ import org.springframework.http.ResponseEntity;
|
|||
import org.springframework.web.client.RestTemplate;
|
||||
import org.springframework.web.testfixture.http.server.reactive.bootstrap.AbstractHttpHandlerIntegrationTests;
|
||||
import org.springframework.web.testfixture.http.server.reactive.bootstrap.HttpServer;
|
||||
import org.springframework.web.testfixture.http.server.reactive.bootstrap.JettyHttpServer;
|
||||
import org.springframework.web.testfixture.http.server.reactive.bootstrap.UndertowHttpServer;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
@ -80,6 +81,7 @@ class CookieIntegrationTests extends AbstractHttpHandlerIntegrationTests {
|
|||
@ParameterizedHttpServerTest
|
||||
public void partitionedAttributeTest(HttpServer httpServer) throws Exception {
|
||||
assumeFalse(httpServer instanceof UndertowHttpServer, "Undertow does not support Partitioned cookies");
|
||||
assumeFalse(httpServer instanceof JettyHttpServer, "Jetty does not support Servlet 6.1 yet");
|
||||
startServer(httpServer);
|
||||
|
||||
URI url = URI.create("http://localhost:" + port);
|
||||
|
|
|
@ -267,26 +267,12 @@ public class MockPageContext extends PageContext {
|
|||
return this.out;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Deprecated
|
||||
@Nullable
|
||||
public jakarta.servlet.jsp.el.ExpressionEvaluator getExpressionEvaluator() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public ELContext getELContext() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Deprecated
|
||||
@Nullable
|
||||
public jakarta.servlet.jsp.el.VariableResolver getVariableResolver() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public HttpSession getSession() {
|
||||
return this.request.getSession();
|
||||
|
|
|
@ -70,6 +70,7 @@ import org.springframework.web.servlet.support.RequestContextUtils;
|
|||
public class ServletRequestMethodArgumentResolver implements HandlerMethodArgumentResolver {
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("deprecation")
|
||||
public boolean supportsParameter(MethodParameter parameter) {
|
||||
Class<?> paramType = parameter.getParameterType();
|
||||
return (WebRequest.class.isAssignableFrom(paramType) ||
|
||||
|
@ -121,6 +122,7 @@ public class ServletRequestMethodArgumentResolver implements HandlerMethodArgume
|
|||
}
|
||||
|
||||
@Nullable
|
||||
@SuppressWarnings("deprecation")
|
||||
private Object resolveArgument(Class<?> paramType, HttpServletRequest request) throws IOException {
|
||||
if (HttpSession.class.isAssignableFrom(paramType)) {
|
||||
HttpSession session = request.getSession();
|
||||
|
|
Loading…
Reference in New Issue