This is an automated email from the ASF dual-hosted git repository.

mgrigorov pushed a commit to branch WICKET-6915-upgrade-to-fileupload2
in repository https://gitbox.apache.org/repos/asf/wicket.git

commit 47d87a247322282325b6bbe613d940dcd29c90a5
Author: Martin Tzvetanov Grigorov <[email protected]>
AuthorDate: Fri Aug 20 11:59:47 2021 +0300

    WICKET-6915 Upgrade to commons-fileupload:2.0-SNAPSHOT
---
 pom.xml                                            | 24 +++++-----
 wicket-core/src/main/java/module-info.java         |  2 +-
 .../org/apache/wicket/markup/html/form/Form.java   | 13 ++---
 .../wicket/markup/html/form/upload/FileUpload.java |  3 +-
 .../markup/html/form/upload/FileUploadField.java   |  2 +-
 .../html/form/upload/MultiFileUploadField.java     |  2 +-
 .../wicket/protocol/http/IMultipartWebRequest.java |  2 +-
 .../protocol/http/mock/MockHttpServletRequest.java |  2 +-
 .../http/servlet/MultipartServletWebRequest.java   |  4 +-
 .../servlet/MultipartServletWebRequestImpl.java    | 55 +++++++++-------------
 .../protocol/http/servlet/ServletPartFileItem.java |  6 +--
 .../protocol/http/servlet/ServletWebRequest.java   |  8 ++--
 .../markup/html/form/upload/FileUploadTest.java    |  9 ++--
 .../examples/ajax/builtin/FileUploadPage.java      |  2 +-
 wicket-extensions/src/main/java/module-info.java   |  2 +-
 .../extensions/ajax/AjaxFileDropBehavior.java      |  4 +-
 .../html/form/upload/UploadStatusResource.java     |  2 +-
 wicket-util/pom.xml                                |  9 ++--
 wicket-util/src/main/java/module-info.java         |  2 +-
 19 files changed, 67 insertions(+), 86 deletions(-)

diff --git a/pom.xml b/pom.xml
index 5dec096..15190fd 100644
--- a/pom.xml
+++ b/pom.xml
@@ -141,7 +141,7 @@
                <cdi-unit.version>4.1.0</cdi-unit.version>
                <commons-collections.version>3.2.2</commons-collections.version>
                <commons-collections4.version>4.4</commons-collections4.version>
-               <commons-fileupload.version>1.4</commons-fileupload.version>
+               
<commons-fileupload.version>2.0-SNAPSHOT</commons-fileupload.version>
                <commons-io.version>2.11.0</commons-io.version>
                <commons-lang3.version>3.12.0</commons-lang3.version>
                <guice.version>5.0.1</guice.version>
@@ -282,17 +282,6 @@
                                
<version>${commons-collections.version}</version>
                        </dependency>
                        <dependency>
-                               <groupId>commons-fileupload</groupId>
-                               <artifactId>commons-fileupload</artifactId>
-                               <version>${commons-fileupload.version}</version>
-                               <exclusions>
-                                       <exclusion>
-                                               <groupId>commons-io</groupId>
-                                               
<artifactId>commons-io</artifactId>
-                                       </exclusion>
-                               </exclusions>
-                       </dependency>
-                       <dependency>
                                <groupId>commons-io</groupId>
                                <artifactId>commons-io</artifactId>
                                <version>${commons-io.version}</version>
@@ -330,6 +319,17 @@
                        </dependency>
                        <dependency>
                                <groupId>org.apache.commons</groupId>
+                               <artifactId>commons-fileupload2</artifactId>
+                               <version>${commons-fileupload.version}</version>
+                               <exclusions>
+                                       <exclusion>
+                                               <groupId>commons-io</groupId>
+                                               
<artifactId>commons-io</artifactId>
+                                       </exclusion>
+                               </exclusions>
+                       </dependency>
+                       <dependency>
+                               <groupId>org.apache.commons</groupId>
                                <artifactId>commons-lang3</artifactId>
                                <version>${commons-lang3.version}</version>
                        </dependency>
diff --git a/wicket-core/src/main/java/module-info.java 
b/wicket-core/src/main/java/module-info.java
index 9c6dc2a..cfeed62 100644
--- a/wicket-core/src/main/java/module-info.java
+++ b/wicket-core/src/main/java/module-info.java
@@ -23,7 +23,7 @@ module org.apache.wicket.core {
     requires org.apache.wicket.request;
     requires org.apache.commons.io;
     requires org.apache.commons.collections4;
-    requires commons.fileupload;
+    requires commons.fileupload2;
     requires org.slf4j;
     requires jakarta.servlet;
     requires org.danekja.jdk.serializable.functional;
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Form.java 
b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Form.java
index 249083c..bf5dbbe 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Form.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Form.java
@@ -25,9 +25,9 @@ import java.util.Locale;
 import java.util.Map;
 
 import jakarta.servlet.http.HttpServletRequest;
-
-import org.apache.commons.fileupload.FileUploadBase;
-import org.apache.commons.fileupload.FileUploadException;
+import org.apache.commons.fileupload2.FileUploadException;
+import org.apache.commons.fileupload2.pub.FileSizeLimitExceededException;
+import org.apache.commons.fileupload2.pub.SizeLimitExceededException;
 import org.apache.wicket.Component;
 import org.apache.wicket.IGenericComponent;
 import org.apache.wicket.IRequestListener;
@@ -1496,12 +1496,12 @@ public class Form<T> extends WebMarkupContainer
        protected void onFileUploadException(final FileUploadException e,
                final Map<String, Object> model)
        {
-               if (e instanceof FileUploadBase.SizeLimitExceededException)
+               if (e instanceof SizeLimitExceededException)
                {
                        String msg = getString(UPLOAD_TOO_LARGE_RESOURCE_KEY, 
Model.ofMap(model));
                        error(msg);
                }
-               else if (e instanceof 
FileUploadBase.FileSizeLimitExceededException)
+               else if (e instanceof FileSizeLimitExceededException)
                {
                        String msg = 
getString(UPLOAD_SINGLE_FILE_TOO_LARGE_RESOURCE_KEY, Model.ofMap(model));
                        error(msg);
@@ -1515,9 +1515,6 @@ public class Form<T> extends WebMarkupContainer
                }
        }
 
-       /**
-        * @see org.apache.wicket.Component#internalOnModelChanged()
-        */
        @Override
        protected void internalOnModelChanged()
        {
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/upload/FileUpload.java
 
b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/upload/FileUpload.java
index 4e662f4..39b6a7b 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/upload/FileUpload.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/upload/FileUpload.java
@@ -24,8 +24,7 @@ import java.security.NoSuchAlgorithmException;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.commons.fileupload.FileItem;
-import org.apache.wicket.util.io.IClusterable;
+import org.apache.commons.fileupload2.FileItem;
 import org.apache.wicket.Session;
 import org.apache.wicket.WicketRuntimeException;
 import org.apache.wicket.request.cycle.RequestCycle;
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/upload/FileUploadField.java
 
b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/upload/FileUploadField.java
index 5a8f288..93f392d 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/upload/FileUploadField.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/upload/FileUploadField.java
@@ -20,7 +20,7 @@ package org.apache.wicket.markup.html.form.upload;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.commons.fileupload.FileItem;
+import org.apache.commons.fileupload2.FileItem;
 import org.apache.wicket.markup.ComponentTag;
 import org.apache.wicket.markup.html.form.FormComponent;
 import org.apache.wicket.model.IModel;
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/upload/MultiFileUploadField.java
 
b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/upload/MultiFileUploadField.java
index 252b39c..353ef54 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/upload/MultiFileUploadField.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/upload/MultiFileUploadField.java
@@ -23,7 +23,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
 
-import org.apache.commons.fileupload.FileItem;
+import org.apache.commons.fileupload2.FileItem;
 import org.apache.wicket.markup.ComponentTag;
 import org.apache.wicket.markup.head.IHeaderResponse;
 import org.apache.wicket.markup.head.JavaScriptHeaderItem;
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/protocol/http/IMultipartWebRequest.java
 
b/wicket-core/src/main/java/org/apache/wicket/protocol/http/IMultipartWebRequest.java
index a25c92c..36f9f50 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/protocol/http/IMultipartWebRequest.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/protocol/http/IMultipartWebRequest.java
@@ -19,7 +19,7 @@ package org.apache.wicket.protocol.http;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.commons.fileupload.FileItem;
+import org.apache.commons.fileupload2.FileItem;
 
 
 /**
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/protocol/http/mock/MockHttpServletRequest.java
 
b/wicket-core/src/main/java/org/apache/wicket/protocol/http/mock/MockHttpServletRequest.java
index bb32ee1..8d315e3 100755
--- 
a/wicket-core/src/main/java/org/apache/wicket/protocol/http/mock/MockHttpServletRequest.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/protocol/http/mock/MockHttpServletRequest.java
@@ -57,7 +57,7 @@ import jakarta.servlet.http.HttpSession;
 import jakarta.servlet.http.HttpUpgradeHandler;
 import jakarta.servlet.http.Part;
 
-import org.apache.commons.fileupload.FileUploadBase;
+import org.apache.commons.fileupload2.FileUploadBase;
 import org.apache.wicket.Application;
 import org.apache.wicket.WicketRuntimeException;
 import org.apache.wicket.mock.MockRequestParameters;
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/protocol/http/servlet/MultipartServletWebRequest.java
 
b/wicket-core/src/main/java/org/apache/wicket/protocol/http/servlet/MultipartServletWebRequest.java
index 29bc91b..4c2d5dd 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/protocol/http/servlet/MultipartServletWebRequest.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/protocol/http/servlet/MultipartServletWebRequest.java
@@ -21,8 +21,8 @@ import java.util.Map;
 
 import jakarta.servlet.http.HttpServletRequest;
 
-import org.apache.commons.fileupload.FileItem;
-import org.apache.commons.fileupload.FileUploadException;
+import org.apache.commons.fileupload2.FileItem;
+import org.apache.commons.fileupload2.FileUploadException;
 import org.apache.wicket.protocol.http.IMultipartWebRequest;
 import org.apache.wicket.request.IRequestParameters;
 import org.apache.wicket.request.Url;
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/protocol/http/servlet/MultipartServletWebRequestImpl.java
 
b/wicket-core/src/main/java/org/apache/wicket/protocol/http/servlet/MultipartServletWebRequestImpl.java
index cc27c4e..294faf1 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/protocol/http/servlet/MultipartServletWebRequestImpl.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/protocol/http/servlet/MultipartServletWebRequestImpl.java
@@ -18,7 +18,6 @@ package org.apache.wicket.protocol.http.servlet;
 
 import java.io.IOException;
 import java.io.InputStream;
-import java.io.UnsupportedEncodingException;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashMap;
@@ -26,16 +25,16 @@ import java.util.List;
 import java.util.Map;
 
 import jakarta.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletRequest;
 import jakarta.servlet.http.Part;
-
-import org.apache.commons.fileupload.FileItem;
-import org.apache.commons.fileupload.FileItemFactory;
-import org.apache.commons.fileupload.FileUploadBase;
-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.servlet.ServletRequestContext;
+import org.apache.commons.fileupload2.FileItem;
+import org.apache.commons.fileupload2.FileItemFactory;
+import org.apache.commons.fileupload2.FileUploadBase;
+import org.apache.commons.fileupload2.FileUploadException;
+import org.apache.commons.fileupload2.disk.DiskFileItemFactory;
+import org.apache.commons.fileupload2.jaksrvlt.JakSrvltFileUpload;
+import org.apache.commons.fileupload2.jaksrvlt.JakSrvltRequestContext;
+import org.apache.commons.fileupload2.pub.FileSizeLimitExceededException;
 import org.apache.commons.io.FileCleaningTracker;
 import org.apache.wicket.Application;
 import org.apache.wicket.WicketRuntimeException;
@@ -91,7 +90,7 @@ public class MultipartServletWebRequestImpl extends 
MultipartServletWebRequest
         *             Thrown if something goes wrong with upload
         */
        public MultipartServletWebRequestImpl(HttpServletRequest request, 
String filterPrefix,
-               Bytes maxSize, String upload) throws FileUploadException
+                                                                               
  Bytes maxSize, String upload) throws FileUploadException
        {
                this(request, filterPrefix, maxSize, upload, new 
DiskFileItemFactory()
                {
@@ -135,12 +134,11 @@ public class MultipartServletWebRequestImpl extends 
MultipartServletWebRequest
                files = new HashMap<>();
 
                // Check that request is multipart
-               // FIXME Wicket 10 This needs a new release of Commons 
FileUpload (https://issues.apache.org/jira/browse/FILEUPLOAD-309)
-               final boolean isMultipart = 
ServletFileUpload.isMultipartContent(request);
+               final boolean isMultipart = 
JakSrvltFileUpload.isMultipartContent(request);
                if (!isMultipart)
                {
                        throw new IllegalStateException(
-                               "ServletRequest does not contain multipart 
content. One possible solution is to explicitly call Form.setMultipart(true), 
Wicket tries its best to auto-detect multipart forms but there are certain 
situation where it cannot.");
+                               "ServletRequest does not contain multipart 
content. One possible solution is to explicitly call Form.setMultipart(true), 
Wicket tries its best to auto-detect multipart forms but there are certain 
situations where it cannot.");
                }
 
                setMaxSize(maxSize);
@@ -149,7 +147,7 @@ public class MultipartServletWebRequestImpl extends 
MultipartServletWebRequest
        @Override
        public void parseFileParts() throws FileUploadException
        {
-               HttpServletRequest request = new 
javax.servlet.http.HttpServletRequest.Impl(getContainerRequest());
+               HttpServletRequest request = getContainerRequest();
 
                // The encoding that will be used to decode the string 
parameters
                // It should NOT be null at this point, but it may be
@@ -170,7 +168,7 @@ public class MultipartServletWebRequestImpl extends 
MultipartServletWebRequest
 
                if (wantUploadProgressUpdates())
                {
-                       ServletRequestContext ctx = new 
ServletRequestContext(request)
+                       JakSrvltRequestContext ctx = new 
JakSrvltRequestContext(request)
                        {
                                @Override
                                public InputStream getInputStream() throws 
IOException
@@ -194,7 +192,7 @@ public class MultipartServletWebRequestImpl extends 
MultipartServletWebRequest
                {
                        // try to parse the file uploads by using Apache 
Commons FileUpload APIs
                        // because they are feature richer (e.g. progress 
updates, cleaner)
-                       items = fileUpload.parseRequest(new 
ServletRequestContext(request));
+                       items = fileUpload.parseRequest(new 
JakSrvltRequestContext(request));
                        if (items.isEmpty())
                        {
                                // fallback to Servlet 3.0 APIs
@@ -217,7 +215,7 @@ public class MultipartServletWebRequestImpl extends 
MultipartServletWebRequest
                                        {
                                                value = 
item.getString(encoding);
                                        }
-                                       catch (UnsupportedEncodingException e)
+                                       catch (IOException e)
                                        {
                                                throw new 
WicketRuntimeException(e);
                                        }
@@ -284,7 +282,7 @@ public class MultipartServletWebRequestImpl extends 
MultipartServletWebRequest
         */
        protected FileUploadBase newFileUpload(String encoding) {
                // Configure the factory here, if desired.
-               ServletFileUpload fileUpload = new 
ServletFileUpload(fileItemFactory);
+               JakSrvltFileUpload fileUpload = new 
JakSrvltFileUpload(fileItemFactory);
 
                // set encoding specifically when we found it
                if (encoding != null)
@@ -375,7 +373,7 @@ public class MultipartServletWebRequestImpl extends 
MultipartServletWebRequest
        }
 
        /**
-        * Subclasses that want to receive upload notifications should return 
true. By default it takes
+        * Subclasses that want to receive upload notifications should return 
true. By default, it takes
         * the value from {@link 
org.apache.wicket.settings.ApplicationSettings#isUploadProgressUpdatesEnabled()}.
         * 
         * @return true if upload status update event should be invoked
@@ -394,7 +392,7 @@ public class MultipartServletWebRequestImpl extends 
MultipartServletWebRequest
        {
                UploadInfo info = new UploadInfo(totalBytes);
 
-               setUploadInfo(new 
javax.servlet.http.HttpServletRequest.Impl(getContainerRequest()), upload, 
info);
+               setUploadInfo(getContainerRequest(), upload, info);
        }
 
        /**
@@ -405,7 +403,7 @@ public class MultipartServletWebRequestImpl extends 
MultipartServletWebRequest
         */
        protected void onUploadUpdate(int bytesUploaded, int total)
        {
-               HttpServletRequest request = new 
javax.servlet.http.HttpServletRequest.Impl(getContainerRequest());
+               HttpServletRequest request = getContainerRequest();
                UploadInfo info = getUploadInfo(request, upload);
                if (info == null)
                {
@@ -422,7 +420,7 @@ public class MultipartServletWebRequestImpl extends 
MultipartServletWebRequest
         */
        protected void onUploadCompleted()
        {
-               clearUploadInfo(new 
javax.servlet.http.HttpServletRequest.Impl(getContainerRequest()), upload);
+               clearUploadInfo(getContainerRequest(), upload);
        }
 
        /**
@@ -446,9 +444,6 @@ public class MultipartServletWebRequestImpl extends 
MultipartServletWebRequest
                        this.in = in;
                }
 
-               /**
-                * @see java.io.InputStream#read()
-                */
                @Override
                public int read() throws IOException
                {
@@ -458,9 +453,6 @@ public class MultipartServletWebRequestImpl extends 
MultipartServletWebRequest
                        return read;
                }
 
-               /**
-                * @see java.io.InputStream#read(byte[])
-                */
                @Override
                public int read(byte[] b) throws IOException
                {
@@ -470,9 +462,6 @@ public class MultipartServletWebRequestImpl extends 
MultipartServletWebRequest
                        return read;
                }
 
-               /**
-                * @see java.io.InputStream#read(byte[], int, int)
-                */
                @Override
                public int read(byte[] b, int off, int len) throws IOException
                {
@@ -502,7 +491,7 @@ public class MultipartServletWebRequestImpl extends 
MultipartServletWebRequest
                                if (fileMaxSize != null && fileItem.getSize() > 
fileMaxSize.bytes())
                                {
                                        String fieldName = entry.getKey();
-                                       FileUploadException fslex = new 
FileUploadBase.FileSizeLimitExceededException("The field '" +
+                                       FileUploadException fslex = new 
FileSizeLimitExceededException("The field '" +
                                                        fieldName + "' exceeds 
its maximum permitted size of '" +
                                                        maxSize + "' 
characters.", fileItem.getSize(), fileMaxSize.bytes());
                                        throw fslex;
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/protocol/http/servlet/ServletPartFileItem.java
 
b/wicket-core/src/main/java/org/apache/wicket/protocol/http/servlet/ServletPartFileItem.java
index 93c2ea3..69fc05e 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/protocol/http/servlet/ServletPartFileItem.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/protocol/http/servlet/ServletPartFileItem.java
@@ -25,9 +25,9 @@ import java.util.Collection;
 
 import jakarta.servlet.http.Part;
 
-import org.apache.commons.fileupload.FileItem;
-import org.apache.commons.fileupload.FileItemHeaders;
-import org.apache.commons.fileupload.util.FileItemHeadersImpl;
+import org.apache.commons.fileupload2.FileItem;
+import org.apache.commons.fileupload2.FileItemHeaders;
+import org.apache.commons.fileupload2.util.FileItemHeadersImpl;
 import org.apache.wicket.WicketRuntimeException;
 import org.apache.wicket.request.resource.AbstractResource;
 import org.apache.wicket.util.io.IOUtils;
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/protocol/http/servlet/ServletWebRequest.java
 
b/wicket-core/src/main/java/org/apache/wicket/protocol/http/servlet/ServletWebRequest.java
index 85e600e..3a87b87 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/protocol/http/servlet/ServletWebRequest.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/protocol/http/servlet/ServletWebRequest.java
@@ -30,8 +30,8 @@ import java.util.Set;
 import jakarta.servlet.http.Cookie;
 import jakarta.servlet.http.HttpServletRequest;
 import jakarta.servlet.http.HttpServletResponse;
-import org.apache.commons.fileupload.FileItemFactory;
-import org.apache.commons.fileupload.FileUploadException;
+import org.apache.commons.fileupload2.FileItemFactory;
+import org.apache.commons.fileupload2.FileUploadException;
 import org.apache.wicket.protocol.http.RequestUtils;
 import org.apache.wicket.request.IRequestParameters;
 import org.apache.wicket.request.IWritableRequestParameters;
@@ -428,7 +428,7 @@ public class ServletWebRequest extends WebRequest
        public MultipartServletWebRequest newMultipartWebRequest(Bytes maxSize, 
String upload)
                throws FileUploadException
        {
-               return new MultipartServletWebRequestImpl(new 
javax.servlet.http.HttpServletRequest.Impl(getContainerRequest()), 
filterPrefix, maxSize, upload);
+               return new 
MultipartServletWebRequestImpl(getContainerRequest(), filterPrefix, maxSize, 
upload);
        }
 
        /**
@@ -445,7 +445,7 @@ public class ServletWebRequest extends WebRequest
        public MultipartServletWebRequest newMultipartWebRequest(Bytes maxSize, 
String upload,
                FileItemFactory factory) throws FileUploadException
        {
-               return new MultipartServletWebRequestImpl(new 
javax.servlet.http.HttpServletRequest.Impl(getContainerRequest()), 
filterPrefix, maxSize, upload, factory);
+               return new 
MultipartServletWebRequestImpl(getContainerRequest(), filterPrefix, maxSize, 
upload, factory);
        }
 
        @Override
diff --git 
a/wicket-core/src/test/java/org/apache/wicket/markup/html/form/upload/FileUploadTest.java
 
b/wicket-core/src/test/java/org/apache/wicket/markup/html/form/upload/FileUploadTest.java
index 9df7275..5ce3791 100644
--- 
a/wicket-core/src/test/java/org/apache/wicket/markup/html/form/upload/FileUploadTest.java
+++ 
b/wicket-core/src/test/java/org/apache/wicket/markup/html/form/upload/FileUploadTest.java
@@ -27,8 +27,8 @@ import java.io.InputStream;
 import java.lang.reflect.Field;
 import java.util.List;
 
-import org.apache.commons.fileupload.FileItem;
-import org.apache.commons.fileupload.disk.DiskFileItemFactory;
+import org.apache.commons.fileupload2.FileItem;
+import org.apache.commons.fileupload2.disk.DiskFileItemFactory;
 import org.apache.commons.io.FileCleaningTracker;
 import org.apache.wicket.util.file.File;
 import org.apache.wicket.util.file.FileCleaner;
@@ -36,7 +36,6 @@ import org.apache.wicket.util.file.FileCleanerTrackerAdapter;
 import org.apache.wicket.util.file.IFileCleaner;
 import org.apache.wicket.util.tester.FormTester;
 import org.apache.wicket.util.tester.WicketTestCase;
-import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
 
 /**
@@ -44,9 +43,7 @@ import org.junit.jupiter.api.Test;
  * 
  * @author Frank Bille (billen)
  */
-// FIXME Wicket 10
-@Disabled
-public class FileUploadTest extends WicketTestCase
+class FileUploadTest extends WicketTestCase
 {
 
        /**
diff --git 
a/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/FileUploadPage.java
 
b/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/FileUploadPage.java
index a84b45b..33cb635 100644
--- 
a/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/FileUploadPage.java
+++ 
b/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/FileUploadPage.java
@@ -21,7 +21,7 @@ import java.util.Iterator;
 import java.util.List;
 
 import org.apache.commons.collections4.iterators.EmptyIterator;
-import org.apache.commons.fileupload.FileUploadException;
+import org.apache.commons.fileupload2.FileUploadException;
 import org.apache.wicket.Component;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.ajax.markup.html.form.AjaxButton;
diff --git a/wicket-extensions/src/main/java/module-info.java 
b/wicket-extensions/src/main/java/module-info.java
index 287d7a3..54479d7 100644
--- a/wicket-extensions/src/main/java/module-info.java
+++ b/wicket-extensions/src/main/java/module-info.java
@@ -21,7 +21,7 @@ module org.apache.wicket.extensions {
     requires org.slf4j;
     requires com.fasterxml.jackson.databind;
     requires com.github.openjson;
-    requires commons.fileupload;
+    requires commons.fileupload2;
     requires org.apache.wicket.util;
     requires org.apache.wicket.request;
     requires org.apache.wicket.core;
diff --git 
a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/AjaxFileDropBehavior.java
 
b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/AjaxFileDropBehavior.java
index b2f29c9..6554c44 100644
--- 
a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/AjaxFileDropBehavior.java
+++ 
b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/AjaxFileDropBehavior.java
@@ -19,8 +19,8 @@ package org.apache.wicket.extensions.ajax;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.commons.fileupload.FileItem;
-import org.apache.commons.fileupload.FileUploadException;
+import org.apache.commons.fileupload2.FileItem;
+import org.apache.commons.fileupload2.FileUploadException;
 import org.apache.wicket.Component;
 import org.apache.wicket.WicketRuntimeException;
 import org.apache.wicket.ajax.AjaxEventBehavior;
diff --git 
a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/form/upload/UploadStatusResource.java
 
b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/form/upload/UploadStatusResource.java
index bdd878a..13dbd2b 100644
--- 
a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/form/upload/UploadStatusResource.java
+++ 
b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/form/upload/UploadStatusResource.java
@@ -91,7 +91,7 @@ class UploadStatusResource extends AbstractResource
                final HttpServletRequest req = 
(HttpServletRequest)attributes.getRequest()
                        .getContainerRequest();
 
-               UploadInfo info = 
MultipartServletWebRequestImpl.getUploadInfo(new 
javax.servlet.http.HttpServletRequest.Impl(req), upload);
+               UploadInfo info = 
MultipartServletWebRequestImpl.getUploadInfo(req, upload);
 
                String status;
                if ((info == null) || (info.getTotalBytes() < 1))
diff --git a/wicket-util/pom.xml b/wicket-util/pom.xml
index 8073a20..bdfbf85 100755
--- a/wicket-util/pom.xml
+++ b/wicket-util/pom.xml
@@ -29,11 +29,6 @@
 
        <dependencies>
                <dependency>
-                       <groupId>commons-fileupload</groupId>
-<!--                   <groupId>com.jwebmp.jpms.commons</groupId>-->
-                       <artifactId>commons-fileupload</artifactId>
-               </dependency>
-               <dependency>
                        <groupId>commons-io</groupId>
                        <artifactId>commons-io</artifactId>
                </dependency>
@@ -42,6 +37,10 @@
                        <artifactId>commons-collections4</artifactId>
                </dependency>
                <dependency>
+                       <groupId>org.apache.commons</groupId>
+                       <artifactId>commons-fileupload2</artifactId>
+               </dependency>
+               <dependency>
                        <groupId>org.junit.jupiter</groupId>
                        <artifactId>junit-jupiter-engine</artifactId>
                        <scope>compile</scope>
diff --git a/wicket-util/src/main/java/module-info.java 
b/wicket-util/src/main/java/module-info.java
index e6729ec..697a540 100644
--- a/wicket-util/src/main/java/module-info.java
+++ b/wicket-util/src/main/java/module-info.java
@@ -23,7 +23,7 @@ module org.apache.wicket.util {
     requires java.desktop;
     requires org.apache.commons.io;
     requires org.apache.commons.collections4;
-    requires commons.fileupload;
+    requires commons.fileupload2;
     requires org.slf4j;
     requires jakarta.servlet;
     requires org.junit.jupiter.api;

Reply via email to