From cc1b43e554f27c7d074f404bd6f9d236b9eef6ea Mon Sep 17 00:00:00 2001 From: Harry9656 Date: Sun, 21 Jan 2024 21:26:29 +0100 Subject: [PATCH] [JAVA-28963] Migrate spring-mvc-java to Spring Boot 3(#15640) --- spring-web-modules/spring-mvc-java/pom.xml | 51 ++++++++++--------- .../baeldung/filters/EmptyParamFilter.java | 14 ++--- .../com/baeldung/listeners/AppListener.java | 8 +-- .../baeldung/listeners/RequestListener.java | 10 ++-- .../com/baeldung/servlets/CounterServlet.java | 8 +-- .../baeldung/servlets/UppercaseServlet.java | 8 +-- .../web/config/MainWebAppInitializer.java | 22 ++++---- .../baeldung/spring/web/config/WebConfig.java | 9 ++-- .../web/controller/ImageController.java | 2 +- .../GreetControllerIntegrationTest.java | 2 +- .../GreetControllerRealIntegrationTest.java | 8 +-- 11 files changed, 70 insertions(+), 72 deletions(-) diff --git a/spring-web-modules/spring-mvc-java/pom.xml b/spring-web-modules/spring-mvc-java/pom.xml index d4c8f24431..213d44f350 100644 --- a/spring-web-modules/spring-mvc-java/pom.xml +++ b/spring-web-modules/spring-mvc-java/pom.xml @@ -10,9 +10,9 @@ com.baeldung - parent-boot-2 + parent-boot-3 0.0.1-SNAPSHOT - ../../parent-boot-2 + ../../parent-boot-3 @@ -25,18 +25,19 @@ spring-boot-starter-tomcat - javax.servlet - javax.servlet-api - ${javax.version} + jakarta.servlet + jakarta.servlet-api + ${jakarta.version} - javax.servlet.jsp - javax.servlet.jsp-api - ${javax-servlet-api.version} + jakarta.servlet.jsp + jakarta.servlet.jsp-api + ${jakarta-servlet-api.version} - javax.servlet - jstl + jakarta.servlet.jsp.jstl + jakarta.servlet.jsp.jstl-api + ${jakarta-servlet-jstl-version} org.apache.tomcat.embed @@ -50,11 +51,6 @@ commons-io ${commons-io.version} - - commons-fileupload - commons-fileupload - ${commons-fileupload.version} - org.thymeleaf @@ -77,6 +73,13 @@ spring-boot-starter-test test + + io.rest-assured + rest-assured + ${rest.assured.version} + test + + @@ -85,9 +88,10 @@ org.glassfish - javax.el - ${javax.el.version} + jakarta.el + ${jakarta.el.version} + @@ -115,12 +119,10 @@ cargo-maven2-plugin ${cargo-maven2-plugin.version} - true jetty8x embedded - @@ -167,9 +169,6 @@ org.codehaus.cargo cargo-maven2-plugin - - false - start-server @@ -208,11 +207,13 @@ 3.1.0 1.9.1 - 3.0.1-b09 - 4.0.1 - 2.3.3 + 5.0.0-M1 + 6.1.0-M1 + 4.0.0-M1 2.8.0 com.baeldung.SpringMVCApplication + 3.0.0 + 5.4.0 \ No newline at end of file diff --git a/spring-web-modules/spring-mvc-java/src/main/java/com/baeldung/filters/EmptyParamFilter.java b/spring-web-modules/spring-mvc-java/src/main/java/com/baeldung/filters/EmptyParamFilter.java index b0b5392237..88f0431ab8 100644 --- a/spring-web-modules/spring-mvc-java/src/main/java/com/baeldung/filters/EmptyParamFilter.java +++ b/spring-web-modules/spring-mvc-java/src/main/java/com/baeldung/filters/EmptyParamFilter.java @@ -1,12 +1,12 @@ package com.baeldung.filters; -import javax.servlet.Filter; -import javax.servlet.FilterChain; -import javax.servlet.FilterConfig; -import javax.servlet.ServletException; -import javax.servlet.ServletRequest; -import javax.servlet.ServletResponse; -import javax.servlet.annotation.WebFilter; +import jakarta.servlet.Filter; +import jakarta.servlet.FilterChain; +import jakarta.servlet.FilterConfig; +import jakarta.servlet.ServletException; +import jakarta.servlet.ServletRequest; +import jakarta.servlet.ServletResponse; +import jakarta.servlet.annotation.WebFilter; import java.io.IOException; @WebFilter(urlPatterns = "/uppercase") diff --git a/spring-web-modules/spring-mvc-java/src/main/java/com/baeldung/listeners/AppListener.java b/spring-web-modules/spring-mvc-java/src/main/java/com/baeldung/listeners/AppListener.java index ed16dd1654..422af34c18 100644 --- a/spring-web-modules/spring-mvc-java/src/main/java/com/baeldung/listeners/AppListener.java +++ b/spring-web-modules/spring-mvc-java/src/main/java/com/baeldung/listeners/AppListener.java @@ -1,9 +1,9 @@ package com.baeldung.listeners; -import javax.servlet.ServletContext; -import javax.servlet.ServletContextEvent; -import javax.servlet.ServletContextListener; -import javax.servlet.annotation.WebListener; +import jakarta.servlet.ServletContext; +import jakarta.servlet.ServletContextEvent; +import jakarta.servlet.ServletContextListener; +import jakarta.servlet.annotation.WebListener; @WebListener public class AppListener implements ServletContextListener { diff --git a/spring-web-modules/spring-mvc-java/src/main/java/com/baeldung/listeners/RequestListener.java b/spring-web-modules/spring-mvc-java/src/main/java/com/baeldung/listeners/RequestListener.java index 7f0c37b666..5070e266ec 100644 --- a/spring-web-modules/spring-mvc-java/src/main/java/com/baeldung/listeners/RequestListener.java +++ b/spring-web-modules/spring-mvc-java/src/main/java/com/baeldung/listeners/RequestListener.java @@ -1,10 +1,10 @@ package com.baeldung.listeners; -import javax.servlet.ServletContext; -import javax.servlet.ServletRequestEvent; -import javax.servlet.ServletRequestListener; -import javax.servlet.annotation.WebListener; -import javax.servlet.http.HttpServletRequest; +import jakarta.servlet.ServletContext; +import jakarta.servlet.ServletRequestEvent; +import jakarta.servlet.ServletRequestListener; +import jakarta.servlet.annotation.WebListener; +import jakarta.servlet.http.HttpServletRequest; @WebListener public class RequestListener implements ServletRequestListener { diff --git a/spring-web-modules/spring-mvc-java/src/main/java/com/baeldung/servlets/CounterServlet.java b/spring-web-modules/spring-mvc-java/src/main/java/com/baeldung/servlets/CounterServlet.java index a11f084db2..3c827b5fdd 100644 --- a/spring-web-modules/spring-mvc-java/src/main/java/com/baeldung/servlets/CounterServlet.java +++ b/spring-web-modules/spring-mvc-java/src/main/java/com/baeldung/servlets/CounterServlet.java @@ -1,9 +1,9 @@ package com.baeldung.servlets; -import javax.servlet.annotation.WebServlet; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.annotation.WebServlet; +import jakarta.servlet.http.HttpServlet; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.PrintWriter; diff --git a/spring-web-modules/spring-mvc-java/src/main/java/com/baeldung/servlets/UppercaseServlet.java b/spring-web-modules/spring-mvc-java/src/main/java/com/baeldung/servlets/UppercaseServlet.java index 766ec2e6ff..f5dc2d82ff 100644 --- a/spring-web-modules/spring-mvc-java/src/main/java/com/baeldung/servlets/UppercaseServlet.java +++ b/spring-web-modules/spring-mvc-java/src/main/java/com/baeldung/servlets/UppercaseServlet.java @@ -1,9 +1,9 @@ package com.baeldung.servlets; -import javax.servlet.annotation.WebServlet; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.annotation.WebServlet; +import jakarta.servlet.http.HttpServlet; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.PrintWriter; diff --git a/spring-web-modules/spring-mvc-java/src/main/java/com/baeldung/spring/web/config/MainWebAppInitializer.java b/spring-web-modules/spring-mvc-java/src/main/java/com/baeldung/spring/web/config/MainWebAppInitializer.java index 3623217130..c6d8407af4 100644 --- a/spring-web-modules/spring-mvc-java/src/main/java/com/baeldung/spring/web/config/MainWebAppInitializer.java +++ b/spring-web-modules/spring-mvc-java/src/main/java/com/baeldung/spring/web/config/MainWebAppInitializer.java @@ -1,29 +1,29 @@ package com.baeldung.spring.web.config; -import javax.servlet.MultipartConfigElement; -import javax.servlet.ServletContext; -import javax.servlet.ServletException; -import javax.servlet.ServletRegistration; import org.springframework.web.WebApplicationInitializer; import org.springframework.web.context.support.GenericWebApplicationContext; import org.springframework.web.servlet.DispatcherServlet; +import jakarta.servlet.MultipartConfigElement; +import jakarta.servlet.ServletContext; +import jakarta.servlet.ServletRegistration; + public class MainWebAppInitializer implements WebApplicationInitializer { - private String TMP_FOLDER = "/tmp"; - private int MAX_UPLOAD_SIZE = 5 * 1024 * 1024; - + private static final String TMP_FOLDER = "/tmp"; + private static final int MAX_UPLOAD_SIZE = 5 * 1024 * 1024; + @Override - public void onStartup(ServletContext sc) throws ServletException { + public void onStartup(ServletContext sc) { ServletRegistration.Dynamic appServlet = sc.addServlet("mvc", new DispatcherServlet( - new GenericWebApplicationContext())); + new GenericWebApplicationContext())); appServlet.setLoadOnStartup(1); - MultipartConfigElement multipartConfigElement = new MultipartConfigElement(TMP_FOLDER, - MAX_UPLOAD_SIZE, MAX_UPLOAD_SIZE * 2, MAX_UPLOAD_SIZE / 2); + MultipartConfigElement multipartConfigElement = new MultipartConfigElement(TMP_FOLDER, + MAX_UPLOAD_SIZE, MAX_UPLOAD_SIZE * 2L, MAX_UPLOAD_SIZE / 2); appServlet.setMultipartConfig(multipartConfigElement); diff --git a/spring-web-modules/spring-mvc-java/src/main/java/com/baeldung/spring/web/config/WebConfig.java b/spring-web-modules/spring-mvc-java/src/main/java/com/baeldung/spring/web/config/WebConfig.java index c135164a95..5ec4dd70c1 100644 --- a/spring-web-modules/spring-mvc-java/src/main/java/com/baeldung/spring/web/config/WebConfig.java +++ b/spring-web-modules/spring-mvc-java/src/main/java/com/baeldung/spring/web/config/WebConfig.java @@ -12,7 +12,7 @@ import org.springframework.context.support.ResourceBundleMessageSource; import org.springframework.http.MediaType; import org.springframework.http.converter.ByteArrayHttpMessageConverter; import org.springframework.http.converter.HttpMessageConverter; -import org.springframework.web.multipart.commons.CommonsMultipartResolver; +import org.springframework.web.multipart.support.StandardServletMultipartResolver; import org.springframework.web.servlet.ViewResolver; import org.springframework.web.servlet.config.annotation.EnableWebMvc; import org.springframework.web.servlet.config.annotation.PathMatchConfigurer; @@ -113,14 +113,11 @@ public class WebConfig implements WebMvcConfigurer { public void configurePathMatch(final PathMatchConfigurer configurer) { final UrlPathHelper urlPathHelper = new UrlPathHelper(); urlPathHelper.setRemoveSemicolonContent(false); - configurer.setUrlPathHelper(urlPathHelper); } @Bean(name = "multipartResolver") - public CommonsMultipartResolver multipartResolver() { - CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(); - multipartResolver.setMaxUploadSize(100000); - return multipartResolver; + public StandardServletMultipartResolver multipartResolver() { + return new StandardServletMultipartResolver(); } } \ No newline at end of file diff --git a/spring-web-modules/spring-mvc-java/src/main/java/com/baeldung/web/controller/ImageController.java b/spring-web-modules/spring-mvc-java/src/main/java/com/baeldung/web/controller/ImageController.java index 5a8a491989..89c4bac261 100644 --- a/spring-web-modules/spring-mvc-java/src/main/java/com/baeldung/web/controller/ImageController.java +++ b/spring-web-modules/spring-mvc-java/src/main/java/com/baeldung/web/controller/ImageController.java @@ -3,7 +3,7 @@ package com.baeldung.web.controller; import java.io.IOException; import java.io.InputStream; -import javax.servlet.ServletContext; +import jakarta.servlet.ServletContext; import org.apache.commons.io.IOUtils; import org.springframework.beans.factory.annotation.Autowired; diff --git a/spring-web-modules/spring-mvc-java/src/test/java/com/baeldung/web/controller/GreetControllerIntegrationTest.java b/spring-web-modules/spring-mvc-java/src/test/java/com/baeldung/web/controller/GreetControllerIntegrationTest.java index 7b9da5707d..996821d1d8 100644 --- a/spring-web-modules/spring-mvc-java/src/test/java/com/baeldung/web/controller/GreetControllerIntegrationTest.java +++ b/spring-web-modules/spring-mvc-java/src/test/java/com/baeldung/web/controller/GreetControllerIntegrationTest.java @@ -16,7 +16,7 @@ import org.springframework.test.web.servlet.result.MockMvcResultMatchers; import org.springframework.test.web.servlet.setup.MockMvcBuilders; import org.springframework.web.context.WebApplicationContext; -import javax.servlet.ServletContext; +import jakarta.servlet.ServletContext; import static org.junit.jupiter.api.Assertions.*; import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print; diff --git a/spring-web-modules/spring-mvc-java/src/test/java/com/baeldung/web/controller/GreetControllerRealIntegrationTest.java b/spring-web-modules/spring-mvc-java/src/test/java/com/baeldung/web/controller/GreetControllerRealIntegrationTest.java index 825520526e..899bad1310 100644 --- a/spring-web-modules/spring-mvc-java/src/test/java/com/baeldung/web/controller/GreetControllerRealIntegrationTest.java +++ b/spring-web-modules/spring-mvc-java/src/test/java/com/baeldung/web/controller/GreetControllerRealIntegrationTest.java @@ -1,14 +1,14 @@ package com.baeldung.web.controller; -import io.restassured.RestAssured; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.boot.web.server.LocalServerPort; +import org.springframework.boot.test.web.server.LocalServerPort; import org.springframework.test.context.TestPropertySource; - -import static io.restassured.RestAssured.given; import static org.springframework.boot.test.context.SpringBootTest.WebEnvironment.RANDOM_PORT; +import static io.restassured.RestAssured.given; + +import io.restassured.RestAssured; @SpringBootTest(webEnvironment = RANDOM_PORT) @TestPropertySource(properties = {"spring.main.allow-bean-definition-overriding=true", "server.servlet.context-path=/"})