diff --git a/spring-web-modules/spring-rest-simple/pom.xml b/spring-web-modules/spring-rest-simple/pom.xml index a75c7c0e90..7cb9158f8f 100644 --- a/spring-web-modules/spring-rest-simple/pom.xml +++ b/spring-web-modules/spring-rest-simple/pom.xml @@ -10,9 +10,9 @@ com.baeldung - parent-boot-2 + parent-boot-3 0.0.1-SNAPSHOT - ../../parent-boot-2 + ../../parent-boot-3 @@ -59,26 +59,16 @@ ${spring-oxm.version} - commons-fileupload - commons-fileupload + org.apache.commons + commons-fileupload2-jakarta ${commons-fileupload.version} - - javax.servlet - javax.servlet-api - provided - - - javax.servlet - jstl - runtime + org.apache.commons + commons-fileupload2-jakarta-servlet6 + ${commons-fileupload2-jakarta-servlet6.version} - - com.fasterxml.jackson.core - jackson-databind - com.fasterxml.jackson.dataformat jackson-dataformat-xml @@ -88,6 +78,11 @@ xstream ${xstream.version} + + jakarta.xml.bind + jakarta.xml.bind-api + ${jakarta.xml.bind-api.version} + com.google.guava @@ -110,9 +105,10 @@ spring-test - com.jayway.restassured + io.rest-assured rest-assured - ${jayway-rest-assured.version} + ${rest-assured.version} + test com.google.protobuf @@ -273,7 +269,6 @@ 1.4 3.1.0 1.4.9 - 2.9.0 6.1.4 1.6.0 @@ -281,6 +276,11 @@ 4.12.0 2.2.0 + 2.0.0-M1 + 5.4.0 + 2.3.2 + 2.0.0-M2 + 5.3.1 \ No newline at end of file diff --git a/spring-web-modules/spring-rest-simple/src/main/java/com/baeldung/apachefileupload/UploadController.java b/spring-web-modules/spring-rest-simple/src/main/java/com/baeldung/apachefileupload/UploadController.java index b9b6739898..6c9b1e9c65 100644 --- a/spring-web-modules/spring-rest-simple/src/main/java/com/baeldung/apachefileupload/UploadController.java +++ b/spring-web-modules/spring-rest-simple/src/main/java/com/baeldung/apachefileupload/UploadController.java @@ -1,39 +1,36 @@ package com.baeldung.apachefileupload; -import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; +import java.nio.charset.StandardCharsets; import java.util.Iterator; import java.util.List; -import javax.servlet.http.HttpServletRequest; -import org.apache.commons.fileupload.FileItem; -import org.apache.commons.fileupload.FileItemIterator; -import org.apache.commons.fileupload.FileItemStream; -import org.apache.commons.fileupload.FileUploadException; -import org.apache.commons.fileupload.disk.DiskFileItemFactory; -import org.apache.commons.fileupload.servlet.ServletFileUpload; -import org.apache.commons.fileupload.util.Streams; +import org.apache.commons.fileupload2.core.FileItem; +import org.apache.commons.fileupload2.core.FileItemInput; +import org.apache.commons.fileupload2.core.FileItemInputIterator; +import org.apache.commons.fileupload2.core.DiskFileItemFactory; +import org.apache.commons.fileupload2.jakarta.servlet6.JakartaServletFileUpload; + import org.apache.commons.io.IOUtils; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; +import jakarta.servlet.http.HttpServletRequest; + @RestController public class UploadController { @RequestMapping(value = "/upload", method = RequestMethod.POST) public String handleUpload(HttpServletRequest request) { System.out.println(System.getProperty("java.io.tmpdir")); - boolean isMultipart = ServletFileUpload.isMultipartContent(request); + boolean isMultipart = JakartaServletFileUpload.isMultipartContent(request); // Create a factory for disk-based file items - DiskFileItemFactory factory = new DiskFileItemFactory(); - factory.setRepository(new File(System.getProperty("java.io.tmpdir"))); - factory.setSizeThreshold(DiskFileItemFactory.DEFAULT_SIZE_THRESHOLD); - factory.setFileCleaningTracker(null); + DiskFileItemFactory factory = DiskFileItemFactory.builder().get(); // Configure a repository (to ensure a secure temp location is used) - ServletFileUpload upload = new ServletFileUpload(factory); + JakartaServletFileUpload upload = new JakartaServletFileUpload(factory); try { // Parse the request List items = upload.parseRequest(request); @@ -51,21 +48,21 @@ public class UploadController { } } // Parse the request with Streaming API - upload = new ServletFileUpload(); - FileItemIterator iterStream = upload.getItemIterator(request); + upload = new JakartaServletFileUpload(); + FileItemInputIterator iterStream = upload.getItemIterator(request); while (iterStream.hasNext()) { - FileItemStream item = iterStream.next(); + FileItemInput item = iterStream.next(); String name = item.getFieldName(); - InputStream stream = item.openStream(); + InputStream stream = item.getInputStream(); if (!item.isFormField()) { //Process the InputStream } else { //process form fields - String formFieldValue = Streams.asString(stream); + String formFieldValue = IOUtils.toString(stream, StandardCharsets.UTF_8); } } return "success!"; - } catch (IOException | FileUploadException ex) { + } catch (IOException ex) { return "failed: " + ex.getMessage(); } } diff --git a/spring-web-modules/spring-rest-simple/src/main/java/com/baeldung/web/util/LinkUtil.java b/spring-web-modules/spring-rest-simple/src/main/java/com/baeldung/web/util/LinkUtil.java index 3ebba8ae1c..82e3d2c913 100644 --- a/spring-web-modules/spring-rest-simple/src/main/java/com/baeldung/web/util/LinkUtil.java +++ b/spring-web-modules/spring-rest-simple/src/main/java/com/baeldung/web/util/LinkUtil.java @@ -1,6 +1,6 @@ package com.baeldung.web.util; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpServletResponse; /** * Provides some constants and utility methods to build a Link Header to be stored in the {@link HttpServletResponse} object diff --git a/spring-web-modules/spring-rest-simple/src/test/java/com/baeldung/web/test/RequestMappingLiveTest.java b/spring-web-modules/spring-rest-simple/src/test/java/com/baeldung/web/test/RequestMappingLiveTest.java index f26f241beb..1ceb653849 100644 --- a/spring-web-modules/spring-rest-simple/src/test/java/com/baeldung/web/test/RequestMappingLiveTest.java +++ b/spring-web-modules/spring-rest-simple/src/test/java/com/baeldung/web/test/RequestMappingLiveTest.java @@ -5,7 +5,7 @@ import static org.hamcrest.Matchers.equalTo; import org.junit.Test; -import com.jayway.restassured.RestAssured; +import io.restassured.RestAssured; public class RequestMappingLiveTest { private static String BASE_URI = "http://localhost:8082/spring-rest/ex/";