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/";