diff --git a/spring-context/src/test/java/org/springframework/scheduling/concurrent/AbstractSchedulingTaskExecutorTests.java b/spring-context/src/test/java/org/springframework/scheduling/concurrent/AbstractSchedulingTaskExecutorTests.java index e6c01beaaa..42dddb5635 100644 --- a/spring-context/src/test/java/org/springframework/scheduling/concurrent/AbstractSchedulingTaskExecutorTests.java +++ b/spring-context/src/test/java/org/springframework/scheduling/concurrent/AbstractSchedulingTaskExecutorTests.java @@ -125,7 +125,7 @@ abstract class AbstractSchedulingTaskExecutorTests { } @Test - @SuppressWarnings({ "deprecation", "removal" }) + @SuppressWarnings("removal") void submitListenableRunnable() { TestTask task = new TestTask(this.testName, 1); // Act @@ -156,7 +156,7 @@ abstract class AbstractSchedulingTaskExecutorTests { } @Test - @SuppressWarnings({ "deprecation", "removal" }) + @SuppressWarnings("removal") void submitFailingListenableRunnable() { TestTask task = new TestTask(this.testName, 0); org.springframework.util.concurrent.ListenableFuture future = executor.submitListenable(task); @@ -185,7 +185,7 @@ abstract class AbstractSchedulingTaskExecutorTests { } @Test - @SuppressWarnings({ "deprecation", "removal" }) + @SuppressWarnings("removal") void submitListenableRunnableWithGetAfterShutdown() throws Exception { org.springframework.util.concurrent.ListenableFuture future1 = executor.submitListenable(new TestTask(this.testName, -1)); org.springframework.util.concurrent.ListenableFuture future2 = executor.submitListenable(new TestTask(this.testName, -1)); @@ -209,18 +209,10 @@ abstract class AbstractSchedulingTaskExecutorTests { CompletableFuture future1 = executor.submitCompletable(new TestTask(this.testName, -1)); CompletableFuture future2 = executor.submitCompletable(new TestTask(this.testName, -1)); shutdownExecutor(); - - try { + assertThatExceptionOfType(TimeoutException.class).isThrownBy(() -> { future1.get(1000, TimeUnit.MILLISECONDS); - } - catch (Exception ex) { - // ignore - } - Awaitility.await() - .atMost(5, TimeUnit.SECONDS) - .pollInterval(10, TimeUnit.MILLISECONDS) - .untilAsserted(() -> assertThatExceptionOfType(TimeoutException.class) - .isThrownBy(() -> future2.get(1000, TimeUnit.MILLISECONDS))); + future2.get(1000, TimeUnit.MILLISECONDS); + }); } @Test @@ -260,7 +252,7 @@ abstract class AbstractSchedulingTaskExecutorTests { } @Test - @SuppressWarnings({ "deprecation", "removal" }) + @SuppressWarnings("removal") void submitListenableCallable() { TestCallable task = new TestCallable(this.testName, 1); // Act @@ -275,7 +267,7 @@ abstract class AbstractSchedulingTaskExecutorTests { } @Test - @SuppressWarnings({ "deprecation", "removal" }) + @SuppressWarnings("removal") void submitFailingListenableCallable() { TestCallable task = new TestCallable(this.testName, 0); // Act @@ -291,7 +283,7 @@ abstract class AbstractSchedulingTaskExecutorTests { } @Test - @SuppressWarnings({ "deprecation", "removal" }) + @SuppressWarnings("removal") void submitListenableCallableWithGetAfterShutdown() throws Exception { org.springframework.util.concurrent.ListenableFuture future1 = executor.submitListenable(new TestCallable(this.testName, -1)); org.springframework.util.concurrent.ListenableFuture future2 = executor.submitListenable(new TestCallable(this.testName, -1)); diff --git a/spring-test/src/main/java/org/springframework/test/context/jdbc/SqlScriptsTestExecutionListener.java b/spring-test/src/main/java/org/springframework/test/context/jdbc/SqlScriptsTestExecutionListener.java index 7455ee94da..0b0534dd04 100644 --- a/spring-test/src/main/java/org/springframework/test/context/jdbc/SqlScriptsTestExecutionListener.java +++ b/spring-test/src/main/java/org/springframework/test/context/jdbc/SqlScriptsTestExecutionListener.java @@ -182,10 +182,10 @@ public class SqlScriptsTestExecutionListener extends AbstractTestExecutionListen @Override public void processAheadOfTime(RuntimeHints runtimeHints, Class testClass, ClassLoader classLoader) { getSqlAnnotationsFor(testClass).forEach(sql -> - registerClasspathResources(getScripts(sql, testClass, null, true), runtimeHints, classLoader)); + registerClasspathResources(getScripts(sql, testClass, null, true), runtimeHints, classLoader)); getSqlMethods(testClass).forEach(testMethod -> - getSqlAnnotationsFor(testMethod).forEach(sql -> - registerClasspathResources(getScripts(sql, testClass, testMethod, false), runtimeHints, classLoader))); + getSqlAnnotationsFor(testMethod).forEach(sql -> + registerClasspathResources(getScripts(sql, testClass, testMethod, false), runtimeHints, classLoader))); } /** diff --git a/spring-web/src/main/java/org/springframework/http/MediaType.java b/spring-web/src/main/java/org/springframework/http/MediaType.java index ff27cb0ea3..746adf65e1 100644 --- a/spring-web/src/main/java/org/springframework/http/MediaType.java +++ b/spring-web/src/main/java/org/springframework/http/MediaType.java @@ -871,7 +871,7 @@ public class MediaType extends MimeType implements Serializable { *
audio/basic == text/html
*
audio/basic == audio/wave
* @param mediaTypes the list of media types to be sorted - * @deprecated As of 6.0, in favor of {@link MimeTypeUtils#sortBySpecificity(List)} + * @deprecated as of 6.0, in favor of {@link MimeTypeUtils#sortBySpecificity(List)} */ @Deprecated(since = "6.0", forRemoval = true) public static void sortBySpecificity(List mediaTypes) { @@ -900,7 +900,7 @@ public class MediaType extends MimeType implements Serializable { * * @param mediaTypes the list of media types to be sorted * @see #getQualityValue() - * @deprecated As of 6.0, with no direct replacement + * @deprecated as of 6.0, with no direct replacement */ @Deprecated(since = "6.0", forRemoval = true) public static void sortByQualityValue(List mediaTypes) { @@ -913,9 +913,9 @@ public class MediaType extends MimeType implements Serializable { /** * Sorts the given list of {@code MediaType} objects by specificity as the * primary criteria and quality value the secondary. - * @deprecated As of 6.0, in favor of {@link MimeTypeUtils#sortBySpecificity(List)} + * @deprecated as of 6.0, in favor of {@link MimeTypeUtils#sortBySpecificity(List)} */ - @Deprecated(since = "6.0") + @Deprecated(since = "6.0", forRemoval = true) public static void sortBySpecificityAndQuality(List mediaTypes) { Assert.notNull(mediaTypes, "'mediaTypes' must not be null"); if (mediaTypes.size() > 1) { @@ -926,7 +926,7 @@ public class MediaType extends MimeType implements Serializable { /** * Comparator used by {@link #sortByQualityValue(List)}. - * @deprecated As of 6.0, with no direct replacement + * @deprecated as of 6.0, with no direct replacement */ @Deprecated(since = "6.0", forRemoval = true) public static final Comparator QUALITY_VALUE_COMPARATOR = (mediaType1, mediaType2) -> { @@ -966,7 +966,7 @@ public class MediaType extends MimeType implements Serializable { /** * Comparator used by {@link #sortBySpecificity(List)}. - * @deprecated As of 6.0, with no direct replacement + * @deprecated as of 6.0, with no direct replacement */ @Deprecated(since = "6.0", forRemoval = true) @SuppressWarnings("removal") diff --git a/spring-webflux/spring-webflux.gradle b/spring-webflux/spring-webflux.gradle index e05cd2b946..c068a45037 100644 --- a/spring-webflux/spring-webflux.gradle +++ b/spring-webflux/spring-webflux.gradle @@ -27,8 +27,8 @@ dependencies { optional("org.eclipse.jetty.ee10.websocket:jetty-ee10-websocket-jetty-server") { exclude group: "jakarta.servlet", module: "jakarta.servlet-api" } - optional("org.eclipse.jetty.websocket:jetty-websocket-jetty-server") optional("org.eclipse.jetty.websocket:jetty-websocket-jetty-client") + optional("org.eclipse.jetty.websocket:jetty-websocket-jetty-server") optional("org.freemarker:freemarker") optional("org.jetbrains.kotlin:kotlin-reflect") optional("org.jetbrains.kotlin:kotlin-stdlib") diff --git a/spring-webflux/src/main/java/org/springframework/web/reactive/resource/LiteWebJarsResourceResolver.java b/spring-webflux/src/main/java/org/springframework/web/reactive/resource/LiteWebJarsResourceResolver.java index 9a8108483b..d396dbccc7 100644 --- a/spring-webflux/src/main/java/org/springframework/web/reactive/resource/LiteWebJarsResourceResolver.java +++ b/spring-webflux/src/main/java/org/springframework/web/reactive/resource/LiteWebJarsResourceResolver.java @@ -49,6 +49,7 @@ public class LiteWebJarsResourceResolver extends AbstractResourceResolver { private final WebJarVersionLocator webJarVersionLocator; + /** * Create a {@code LiteWebJarsResourceResolver} with a default {@code WebJarVersionLocator} instance. */ @@ -64,6 +65,7 @@ public class LiteWebJarsResourceResolver extends AbstractResourceResolver { this.webJarVersionLocator = webJarVersionLocator; } + @Override protected Mono resolveResourceInternal(@Nullable ServerWebExchange exchange, String requestPath, List locations, ResourceResolverChain chain) { diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/function/CompletedAsyncServerResponse.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/function/CompletedAsyncServerResponse.java index 8f470e8d6f..396ac9f3ea 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/function/CompletedAsyncServerResponse.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/function/CompletedAsyncServerResponse.java @@ -46,6 +46,7 @@ final class CompletedAsyncServerResponse implements AsyncServerResponse { this.serverResponse = serverResponse; } + @Override public ServerResponse block() { return this.serverResponse; @@ -73,11 +74,12 @@ final class CompletedAsyncServerResponse implements AsyncServerResponse { return this.serverResponse.cookies(); } - @Nullable @Override + @Nullable public ModelAndView writeTo(HttpServletRequest request, HttpServletResponse response, Context context) throws ServletException, IOException { return this.serverResponse.writeTo(request, response, context); } + } diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/function/DefaultAsyncServerResponse.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/function/DefaultAsyncServerResponse.java index c00116f7fb..a23f09eedd 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/function/DefaultAsyncServerResponse.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/function/DefaultAsyncServerResponse.java @@ -63,6 +63,7 @@ final class DefaultAsyncServerResponse extends ErrorHandlingServerResponse imple this.timeout = timeout; } + @Override public ServerResponse block() { try { @@ -110,8 +111,8 @@ final class DefaultAsyncServerResponse extends ErrorHandlingServerResponse imple } } - @Nullable @Override + @Nullable public ModelAndView writeTo(HttpServletRequest request, HttpServletResponse response, Context context) throws ServletException, IOException { @@ -164,4 +165,5 @@ final class DefaultAsyncServerResponse extends ErrorHandlingServerResponse imple }); return result; } + } diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/resource/LiteWebJarsResourceResolver.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/resource/LiteWebJarsResourceResolver.java index d2dbeb79ed..dc132502f1 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/resource/LiteWebJarsResourceResolver.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/resource/LiteWebJarsResourceResolver.java @@ -49,6 +49,7 @@ public class LiteWebJarsResourceResolver extends AbstractResourceResolver { private final WebJarVersionLocator webJarVersionLocator; + /** * Create a {@code LiteWebJarsResourceResolver} with a default {@code WebJarVersionLocator} instance. */ @@ -64,6 +65,7 @@ public class LiteWebJarsResourceResolver extends AbstractResourceResolver { this.webJarVersionLocator = webJarVersionLocator; } + @Override @Nullable protected Resource resolveResourceInternal(@Nullable HttpServletRequest request, String requestPath, diff --git a/spring-webmvc/src/test/java/org/springframework/web/servlet/function/DefaultServerResponseBuilderTests.java b/spring-webmvc/src/test/java/org/springframework/web/servlet/function/DefaultServerResponseBuilderTests.java index 965a8233d1..5832ee575b 100644 --- a/spring-webmvc/src/test/java/org/springframework/web/servlet/function/DefaultServerResponseBuilderTests.java +++ b/spring-webmvc/src/test/java/org/springframework/web/servlet/function/DefaultServerResponseBuilderTests.java @@ -54,6 +54,7 @@ class DefaultServerResponseBuilderTests { static final ServerResponse.Context EMPTY_CONTEXT = Collections::emptyList; + @Test @SuppressWarnings("removal") void status() { @@ -75,7 +76,6 @@ class DefaultServerResponseBuilderTests { assertThat(result.cookies().getFirst("foo")).isEqualTo(cookie); } - @Test void ok() { ServerResponse response = ServerResponse.ok().build(); diff --git a/spring-websocket/spring-websocket.gradle b/spring-websocket/spring-websocket.gradle index 2250f5fdf3..1d71a756f2 100644 --- a/spring-websocket/spring-websocket.gradle +++ b/spring-websocket/spring-websocket.gradle @@ -16,14 +16,14 @@ dependencies { exclude group: "org.apache.tomcat", module: "tomcat-servlet-api" exclude group: "org.apache.tomcat", module: "tomcat-websocket-api" } - optional("org.eclipse.jetty.ee10:jetty-ee10-webapp") { - exclude group: "jakarta.servlet", module: "jakarta.servlet-api" - } - optional("org.eclipse.jetty.websocket:jetty-websocket-jetty-api") optional("org.eclipse.jetty.ee10.websocket:jetty-ee10-websocket-jakarta-server") optional("org.eclipse.jetty.ee10.websocket:jetty-ee10-websocket-jetty-server") { exclude group: "jakarta.servlet", module: "jakarta.servlet-api" } + optional("org.eclipse.jetty.ee10:jetty-ee10-webapp") { + exclude group: "jakarta.servlet", module: "jakarta.servlet-api" + } + optional("org.eclipse.jetty.websocket:jetty-websocket-jetty-api") optional("org.glassfish.tyrus:tyrus-container-servlet") testImplementation(testFixtures(project(":spring-core"))) testImplementation(testFixtures(project(":spring-web"))) diff --git a/spring-websocket/src/main/java/org/springframework/web/socket/adapter/standard/StandardToWebSocketExtensionAdapter.java b/spring-websocket/src/main/java/org/springframework/web/socket/adapter/standard/StandardToWebSocketExtensionAdapter.java index af221926d6..f61d8978e9 100644 --- a/spring-websocket/src/main/java/org/springframework/web/socket/adapter/standard/StandardToWebSocketExtensionAdapter.java +++ b/spring-websocket/src/main/java/org/springframework/web/socket/adapter/standard/StandardToWebSocketExtensionAdapter.java @@ -34,12 +34,10 @@ import org.springframework.web.socket.WebSocketExtension; */ public class StandardToWebSocketExtensionAdapter extends WebSocketExtension { - public StandardToWebSocketExtensionAdapter(Extension extension) { super(extension.getName(), initParameters(extension)); } - private static Map initParameters(Extension extension) { List parameters = extension.getParameters(); Map result = new LinkedCaseInsensitiveMap<>(parameters.size(), Locale.ROOT); diff --git a/spring-websocket/src/main/java/org/springframework/web/socket/adapter/standard/WebSocketToStandardExtensionAdapter.java b/spring-websocket/src/main/java/org/springframework/web/socket/adapter/standard/WebSocketToStandardExtensionAdapter.java index f8334d3ff3..8455b8dd2c 100644 --- a/spring-websocket/src/main/java/org/springframework/web/socket/adapter/standard/WebSocketToStandardExtensionAdapter.java +++ b/spring-websocket/src/main/java/org/springframework/web/socket/adapter/standard/WebSocketToStandardExtensionAdapter.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2016 the original author or authors. + * Copyright 2002-2024 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -55,6 +55,7 @@ public class WebSocketToStandardExtensionAdapter implements Extension { } } + @Override public String getName() { return this.name; diff --git a/spring-websocket/src/main/java/org/springframework/web/socket/messaging/WebSocketStompClient.java b/spring-websocket/src/main/java/org/springframework/web/socket/messaging/WebSocketStompClient.java index 08682ead23..1930d76b03 100644 --- a/spring-websocket/src/main/java/org/springframework/web/socket/messaging/WebSocketStompClient.java +++ b/spring-websocket/src/main/java/org/springframework/web/socket/messaging/WebSocketStompClient.java @@ -262,7 +262,7 @@ public class WebSocketStompClient extends StompClientSupport implements SmartLif /** * An overloaded version of - * {@link #connect(String, StompSessionHandler, Object...)} that also + * {@link #connectAsync(String, StompSessionHandler, Object...)} that also * accepts {@link WebSocketHttpHeaders} to use for the WebSocket handshake. * @param url the url to connect to * @param handshakeHeaders the headers for the WebSocket handshake @@ -283,7 +283,7 @@ public class WebSocketStompClient extends StompClientSupport implements SmartLif /** * An overloaded version of - * {@link #connect(String, StompSessionHandler, Object...)} that also + * {@link #connectAsync(String, StompSessionHandler, Object...)} that also * accepts {@link WebSocketHttpHeaders} to use for the WebSocket handshake. * @param url the url to connect to * @param handshakeHeaders the headers for the WebSocket handshake @@ -300,7 +300,7 @@ public class WebSocketStompClient extends StompClientSupport implements SmartLif /** * An overloaded version of - * {@link #connect(String, StompSessionHandler, Object...)} that also accepts + * {@link #connectAsync(String, StompSessionHandler, Object...)} that also accepts * {@link WebSocketHttpHeaders} to use for the WebSocket handshake and * {@link StompHeaders} for the STOMP CONNECT frame. * @param url the url to connect to @@ -323,7 +323,7 @@ public class WebSocketStompClient extends StompClientSupport implements SmartLif /** * An overloaded version of - * {@link #connect(String, StompSessionHandler, Object...)} that also accepts + * {@link #connectAsync(String, StompSessionHandler, Object...)} that also accepts * {@link WebSocketHttpHeaders} to use for the WebSocket handshake and * {@link StompHeaders} for the STOMP CONNECT frame. * @param url the url to connect to @@ -344,7 +344,7 @@ public class WebSocketStompClient extends StompClientSupport implements SmartLif /** * An overloaded version of - * {@link #connect(String, WebSocketHttpHeaders, StompSessionHandler, Object...)} + * {@link #connectAsync(String, WebSocketHttpHeaders, StompSessionHandler, Object...)} * that accepts a fully prepared {@link java.net.URI}. * @param url the url to connect to * @param handshakeHeaders the headers for the WebSocket handshake @@ -365,7 +365,7 @@ public class WebSocketStompClient extends StompClientSupport implements SmartLif /** * An overloaded version of - * {@link #connect(String, WebSocketHttpHeaders, StompSessionHandler, Object...)} + * {@link #connectAsync(String, WebSocketHttpHeaders, StompSessionHandler, Object...)} * that accepts a fully prepared {@link java.net.URI}. * @param url the url to connect to * @param handshakeHeaders the headers for the WebSocket handshake diff --git a/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/client/DefaultTransportRequest.java b/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/client/DefaultTransportRequest.java index cab924b5c8..d5c785c882 100644 --- a/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/client/DefaultTransportRequest.java +++ b/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/client/DefaultTransportRequest.java @@ -279,6 +279,7 @@ class DefaultTransportRequest implements TransportRequest { } } + /** * Updates the given (global) future based success or failure to connect for * the entire SockJS request regardless of which transport actually managed diff --git a/spring-websocket/src/test/java/org/springframework/web/socket/sockjs/client/XhrTransportTests.java b/spring-websocket/src/test/java/org/springframework/web/socket/sockjs/client/XhrTransportTests.java index eb9891f614..51ba2749b0 100644 --- a/spring-websocket/src/test/java/org/springframework/web/socket/sockjs/client/XhrTransportTests.java +++ b/spring-websocket/src/test/java/org/springframework/web/socket/sockjs/client/XhrTransportTests.java @@ -84,7 +84,6 @@ class XhrTransportTests { } @Test - @SuppressWarnings({"deprecation", "removal"}) void connect() { HttpHeaders handshakeHeaders = new HttpHeaders(); handshakeHeaders.setOrigin("foo"); @@ -96,7 +95,7 @@ class XhrTransportTests { TestXhrTransport transport = new TestXhrTransport(); WebSocketHandler handler = mock(); - transport.connect(request, handler); + transport.connectAsync(request, handler); ArgumentCaptor captor = ArgumentCaptor.forClass(Runnable.class); verify(request).getSockJsUrlInfo(); @@ -127,7 +126,6 @@ class XhrTransportTests { private XhrClientSockJsSession actualSession; - @Override protected ResponseEntity executeInfoRequestInternal(URI infoUrl, HttpHeaders headers) { return this.infoResponseToReturn;