Merge release tag 'commons-fileupload-1.4'
diff --git a/pom.xml b/pom.xml
index d883abd..bb92959 100644
--- a/pom.xml
+++ b/pom.xml
@@ -24,9 +24,9 @@
     <version>47</version>
   </parent>
 
-  <groupId>commons-fileupload</groupId>
-  <artifactId>commons-fileupload</artifactId>
-  <version>1.4</version>
+  <groupId>org.apache.commons</groupId>
+  <artifactId>commons-fileupload2</artifactId>
+  <version>2.0-SNAPSHOT</version>
 
   <name>Apache Commons FileUpload</name>
   <description>
@@ -198,10 +198,11 @@
   </distributionManagement>
 
   <properties>
-    <maven.compiler.source>1.6</maven.compiler.source>
-    <maven.compiler.target>1.6</maven.compiler.target>
+    <maven.compiler.source>1.8</maven.compiler.source>
+    <maven.compiler.target>1.8</maven.compiler.target>
     <commons.componentid>fileupload</commons.componentid>
     <commons.module.name>org.apache.commons.fileupload</commons.module.name>
+    <commons.release.version>2.0</commons.release.version>
     <commons.release.desc>(requires Java ${maven.compiler.target} or later)</commons.release.desc>
     <commons.jira.id>FILEUPLOAD</commons.jira.id>
     <commons.jira.pid>12310476</commons.jira.pid>
@@ -215,7 +216,6 @@
     <japicmp.skip>true</japicmp.skip>
 
     <!-- Commons Release Plugin -->
-    <commons.release.version>1.4</commons.release.version>
     <commons.bc.version>1.3.3</commons.bc.version>
     <commons.rc.version>RC2</commons.rc.version>
     <commons.release.isDistModule>true</commons.release.isDistModule>
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 4522eee..0aba4c5 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -43,6 +43,10 @@
   </properties>
 
   <body>
+    <release version="2.0" date="TBD" description="2.0 Release">
+      <action                        dev="jochen" type="update">Changing Maven coordinates, and package name, due to binary incompatible changes.</action>
+      <action                        dev="jochen" type="update">Bumping Compiler Level to 1.8.</action>
+    </release>
     <release version="1.4" date="2018-12-23" description="1.4 Release">
       <action issue="FILEUPLOAD-292" dev="chtompki" type="update">Don't create un-needed resources in FileUploadBase.java</action>
       <action issue="FILEUPLOAD-282" dev="chtompki" type="update">Upversion complier.source, compiler.target to 1.6</action>
diff --git a/src/main/java/org/apache/commons/fileupload/DefaultFileItem.java b/src/main/java/org/apache/commons/fileupload2/DefaultFileItem.java
similarity index 90%
rename from src/main/java/org/apache/commons/fileupload/DefaultFileItem.java
rename to src/main/java/org/apache/commons/fileupload2/DefaultFileItem.java
index a7eb617..dcbe7ca 100644
--- a/src/main/java/org/apache/commons/fileupload/DefaultFileItem.java
+++ b/src/main/java/org/apache/commons/fileupload2/DefaultFileItem.java
@@ -14,18 +14,19 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.fileupload;
+package org.apache.commons.fileupload2;
 
 import java.io.File;
-import org.apache.commons.fileupload.disk.DiskFileItem;
+
+import org.apache.commons.fileupload2.disk.DiskFileItem;
 
 /**
  * <p> The default implementation of the
- * {@link org.apache.commons.fileupload.FileItem FileItem} interface.
+ * {@link org.apache.commons.fileupload2.FileItem FileItem} interface.
  *
  * <p> After retrieving an instance of this class from a {@link
- * org.apache.commons.fileupload.DiskFileUpload DiskFileUpload} instance (see
- * {@link org.apache.commons.fileupload.DiskFileUpload
+ * org.apache.commons.fileupload2.DiskFileUpload DiskFileUpload} instance (see
+ * {@link org.apache.commons.fileupload2.DiskFileUpload
  * #parseRequest(javax.servlet.http.HttpServletRequest)}), you may
  * either request all contents of file at once using {@link #get()} or
  * request an {@link java.io.InputStream InputStream} with
diff --git a/src/main/java/org/apache/commons/fileupload/DefaultFileItemFactory.java b/src/main/java/org/apache/commons/fileupload2/DefaultFileItemFactory.java
similarity index 91%
rename from src/main/java/org/apache/commons/fileupload/DefaultFileItemFactory.java
rename to src/main/java/org/apache/commons/fileupload2/DefaultFileItemFactory.java
index 46bc7a3..686c428 100644
--- a/src/main/java/org/apache/commons/fileupload/DefaultFileItemFactory.java
+++ b/src/main/java/org/apache/commons/fileupload2/DefaultFileItemFactory.java
@@ -14,15 +14,16 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.fileupload;
+package org.apache.commons.fileupload2;
 
 import java.io.File;
-import org.apache.commons.fileupload.disk.DiskFileItemFactory;
+
+import org.apache.commons.fileupload2.disk.DiskFileItemFactory;
 
 /**
- * <p>The default {@link org.apache.commons.fileupload.FileItemFactory}
+ * <p>The default {@link org.apache.commons.fileupload2.FileItemFactory}
  * implementation. This implementation creates
- * {@link org.apache.commons.fileupload.FileItem} instances which keep their
+ * {@link org.apache.commons.fileupload2.FileItem} instances which keep their
  * content either in memory, for smaller items, or in a temporary file on disk,
  * for larger items. The size threshold, above which content will be stored on
  * disk, is configurable, as is the directory in which temporary files will be
@@ -74,7 +75,7 @@
     // --------------------------------------------------------- Public Methods
 
     /**
-     * Create a new {@link org.apache.commons.fileupload.DefaultFileItem}
+     * Create a new {@link org.apache.commons.fileupload2.DefaultFileItem}
      * instance from the supplied parameters and the local factory
      * configuration.
      *
diff --git a/src/main/java/org/apache/commons/fileupload/DiskFileUpload.java b/src/main/java/org/apache/commons/fileupload2/DiskFileUpload.java
similarity index 97%
rename from src/main/java/org/apache/commons/fileupload/DiskFileUpload.java
rename to src/main/java/org/apache/commons/fileupload2/DiskFileUpload.java
index 3fad4f1..c7b6795 100644
--- a/src/main/java/org/apache/commons/fileupload/DiskFileUpload.java
+++ b/src/main/java/org/apache/commons/fileupload2/DiskFileUpload.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.fileupload;
+package org.apache.commons.fileupload2;
 
 import java.io.File;
 import java.util.List;
@@ -27,12 +27,12 @@
  * <code>multipart/mixed</code> encoding type, as specified by
  * <a href="http://www.ietf.org/rfc/rfc1867.txt">RFC 1867</a>.  Use {@link
  * #parseRequest(HttpServletRequest)} to acquire a list of {@link
- * org.apache.commons.fileupload.FileItem}s associated with a given HTML
+ * org.apache.commons.fileupload2.FileItem}s associated with a given HTML
  * widget.</p>
  *
  * <p>Individual parts will be stored in temporary disk storage or in memory,
  * depending on their size, and will be available as {@link
- * org.apache.commons.fileupload.FileItem}s.</p>
+ * org.apache.commons.fileupload2.FileItem}s.</p>
  *
  * @deprecated 1.1 Use <code>ServletFileUpload</code> together with
  *             <code>DiskFileItemFactory</code> instead.
diff --git a/src/main/java/org/apache/commons/fileupload/FileItem.java b/src/main/java/org/apache/commons/fileupload2/FileItem.java
similarity index 97%
rename from src/main/java/org/apache/commons/fileupload/FileItem.java
rename to src/main/java/org/apache/commons/fileupload2/FileItem.java
index f2a6f5f..14478a6 100644
--- a/src/main/java/org/apache/commons/fileupload/FileItem.java
+++ b/src/main/java/org/apache/commons/fileupload2/FileItem.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.fileupload;
+package org.apache.commons.fileupload2;
 
 import java.io.File;
 import java.io.IOException;
@@ -27,8 +27,8 @@
  * <code>multipart/form-data</code> POST request.
  *
  * <p> After retrieving an instance of this class from a {@link
- * org.apache.commons.fileupload.FileUpload FileUpload} instance (see
- * {@link org.apache.commons.fileupload.servlet.ServletFileUpload
+ * org.apache.commons.fileupload2.FileUpload FileUpload} instance (see
+ * {@link org.apache.commons.fileupload2.servlet.ServletFileUpload
  * #parseRequest(javax.servlet.http.HttpServletRequest)}), you may
  * either request all contents of the file at once using {@link #get()} or
  * request an {@link java.io.InputStream InputStream} with
diff --git a/src/main/java/org/apache/commons/fileupload/FileItemFactory.java b/src/main/java/org/apache/commons/fileupload2/FileItemFactory.java
similarity index 97%
rename from src/main/java/org/apache/commons/fileupload/FileItemFactory.java
rename to src/main/java/org/apache/commons/fileupload2/FileItemFactory.java
index f450a04..70fc042 100644
--- a/src/main/java/org/apache/commons/fileupload/FileItemFactory.java
+++ b/src/main/java/org/apache/commons/fileupload2/FileItemFactory.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.fileupload;
+package org.apache.commons.fileupload2;
 
 /**
  * <p>A factory interface for creating {@link FileItem} instances. Factories
diff --git a/src/main/java/org/apache/commons/fileupload/FileItemHeaders.java b/src/main/java/org/apache/commons/fileupload2/FileItemHeaders.java
similarity index 98%
rename from src/main/java/org/apache/commons/fileupload/FileItemHeaders.java
rename to src/main/java/org/apache/commons/fileupload2/FileItemHeaders.java
index 3fbda6d..f154c28 100644
--- a/src/main/java/org/apache/commons/fileupload/FileItemHeaders.java
+++ b/src/main/java/org/apache/commons/fileupload2/FileItemHeaders.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.fileupload;
+package org.apache.commons.fileupload2;
 
 import java.util.Iterator;
 
diff --git a/src/main/java/org/apache/commons/fileupload/FileItemHeadersSupport.java b/src/main/java/org/apache/commons/fileupload2/FileItemHeadersSupport.java
similarity index 97%
rename from src/main/java/org/apache/commons/fileupload/FileItemHeadersSupport.java
rename to src/main/java/org/apache/commons/fileupload2/FileItemHeadersSupport.java
index dfba3df..8e7d649 100644
--- a/src/main/java/org/apache/commons/fileupload/FileItemHeadersSupport.java
+++ b/src/main/java/org/apache/commons/fileupload2/FileItemHeadersSupport.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.fileupload;
+package org.apache.commons.fileupload2;
 
 /**
  * Interface that will indicate that {@link FileItem} or {@link FileItemStream}
diff --git a/src/main/java/org/apache/commons/fileupload/FileItemIterator.java b/src/main/java/org/apache/commons/fileupload2/FileItemIterator.java
similarity index 97%
rename from src/main/java/org/apache/commons/fileupload/FileItemIterator.java
rename to src/main/java/org/apache/commons/fileupload2/FileItemIterator.java
index 63e36eb..ac630df 100644
--- a/src/main/java/org/apache/commons/fileupload/FileItemIterator.java
+++ b/src/main/java/org/apache/commons/fileupload2/FileItemIterator.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.fileupload;
+package org.apache.commons.fileupload2;
 
 import java.io.IOException;
 
diff --git a/src/main/java/org/apache/commons/fileupload/FileItemStream.java b/src/main/java/org/apache/commons/fileupload2/FileItemStream.java
similarity index 98%
rename from src/main/java/org/apache/commons/fileupload/FileItemStream.java
rename to src/main/java/org/apache/commons/fileupload2/FileItemStream.java
index 1154945..7a331bb 100644
--- a/src/main/java/org/apache/commons/fileupload/FileItemStream.java
+++ b/src/main/java/org/apache/commons/fileupload2/FileItemStream.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.fileupload;
+package org.apache.commons.fileupload2;
 
 import java.io.IOException;
 import java.io.InputStream;
diff --git a/src/main/java/org/apache/commons/fileupload/FileUpload.java b/src/main/java/org/apache/commons/fileupload2/FileUpload.java
similarity index 96%
rename from src/main/java/org/apache/commons/fileupload/FileUpload.java
rename to src/main/java/org/apache/commons/fileupload2/FileUpload.java
index 4a48a49..25af3b1 100644
--- a/src/main/java/org/apache/commons/fileupload/FileUpload.java
+++ b/src/main/java/org/apache/commons/fileupload2/FileUpload.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.fileupload;
+package org.apache.commons.fileupload2;
 
 /**
  * <p>High level API for processing file uploads.</p>
@@ -23,7 +23,7 @@
  * <code>multipart/mixed</code> encoding type, as specified by
  * <a href="http://www.ietf.org/rfc/rfc1867.txt">RFC 1867</a>.  Use {@link
  * #parseRequest(RequestContext)} to acquire a list
- * of {@link org.apache.commons.fileupload.FileItem FileItems} associated
+ * of {@link org.apache.commons.fileupload2.FileItem FileItems} associated
  * with a given HTML widget.</p>
  *
  * <p>How the data for individual parts is stored is determined by the factory
diff --git a/src/main/java/org/apache/commons/fileupload/FileUploadBase.java b/src/main/java/org/apache/commons/fileupload2/FileUploadBase.java
similarity index 98%
rename from src/main/java/org/apache/commons/fileupload/FileUploadBase.java
rename to src/main/java/org/apache/commons/fileupload2/FileUploadBase.java
index aaad4d2..6341bbd 100644
--- a/src/main/java/org/apache/commons/fileupload/FileUploadBase.java
+++ b/src/main/java/org/apache/commons/fileupload2/FileUploadBase.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.fileupload;
+package org.apache.commons.fileupload2;
 
 import static java.lang.String.format;
 
@@ -31,13 +31,13 @@
 
 import javax.servlet.http.HttpServletRequest;
 
-import org.apache.commons.fileupload.MultipartStream.ItemInputStream;
-import org.apache.commons.fileupload.servlet.ServletFileUpload;
-import org.apache.commons.fileupload.servlet.ServletRequestContext;
-import org.apache.commons.fileupload.util.Closeable;
-import org.apache.commons.fileupload.util.FileItemHeadersImpl;
-import org.apache.commons.fileupload.util.LimitedInputStream;
-import org.apache.commons.fileupload.util.Streams;
+import org.apache.commons.fileupload2.MultipartStream.ItemInputStream;
+import org.apache.commons.fileupload2.servlet.ServletFileUpload;
+import org.apache.commons.fileupload2.servlet.ServletRequestContext;
+import org.apache.commons.fileupload2.util.Closeable;
+import org.apache.commons.fileupload2.util.FileItemHeadersImpl;
+import org.apache.commons.fileupload2.util.LimitedInputStream;
+import org.apache.commons.fileupload2.util.Streams;
 import org.apache.commons.io.IOUtils;
 
 /**
@@ -47,7 +47,7 @@
  * <code>multipart/mixed</code> encoding type, as specified by
  * <a href="http://www.ietf.org/rfc/rfc1867.txt">RFC 1867</a>.  Use {@link
  * #parseRequest(RequestContext)} to acquire a list of {@link
- * org.apache.commons.fileupload.FileItem}s associated with a given HTML
+ * org.apache.commons.fileupload2.FileItem}s associated with a given HTML
  * widget.</p>
  *
  * <p>How the data for individual parts is stored is determined by the factory
diff --git a/src/main/java/org/apache/commons/fileupload/FileUploadException.java b/src/main/java/org/apache/commons/fileupload2/FileUploadException.java
similarity index 98%
rename from src/main/java/org/apache/commons/fileupload/FileUploadException.java
rename to src/main/java/org/apache/commons/fileupload2/FileUploadException.java
index 3c39fe1..85c993d 100644
--- a/src/main/java/org/apache/commons/fileupload/FileUploadException.java
+++ b/src/main/java/org/apache/commons/fileupload2/FileUploadException.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.fileupload;
+package org.apache.commons.fileupload2;
 
 import java.io.PrintStream;
 import java.io.PrintWriter;
diff --git a/src/main/java/org/apache/commons/fileupload/InvalidFileNameException.java b/src/main/java/org/apache/commons/fileupload2/InvalidFileNameException.java
similarity index 97%
rename from src/main/java/org/apache/commons/fileupload/InvalidFileNameException.java
rename to src/main/java/org/apache/commons/fileupload2/InvalidFileNameException.java
index 8bdee38..9ffb7ea 100644
--- a/src/main/java/org/apache/commons/fileupload/InvalidFileNameException.java
+++ b/src/main/java/org/apache/commons/fileupload2/InvalidFileNameException.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.fileupload;
+package org.apache.commons.fileupload2;
 
 /**
  * This exception is thrown in case of an invalid file name.
diff --git a/src/main/java/org/apache/commons/fileupload/MultipartStream.java b/src/main/java/org/apache/commons/fileupload2/MultipartStream.java
similarity index 99%
rename from src/main/java/org/apache/commons/fileupload/MultipartStream.java
rename to src/main/java/org/apache/commons/fileupload2/MultipartStream.java
index 2c58e7e..2127ed2 100644
--- a/src/main/java/org/apache/commons/fileupload/MultipartStream.java
+++ b/src/main/java/org/apache/commons/fileupload2/MultipartStream.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.fileupload;
+package org.apache.commons.fileupload2;
 
 import static java.lang.String.format;
 
@@ -24,9 +24,9 @@
 import java.io.OutputStream;
 import java.io.UnsupportedEncodingException;
 
-import org.apache.commons.fileupload.FileUploadBase.FileUploadIOException;
-import org.apache.commons.fileupload.util.Closeable;
-import org.apache.commons.fileupload.util.Streams;
+import org.apache.commons.fileupload2.FileUploadBase.FileUploadIOException;
+import org.apache.commons.fileupload2.util.Closeable;
+import org.apache.commons.fileupload2.util.Streams;
 
 /**
  * <p> Low level API for processing file uploads.
diff --git a/src/main/java/org/apache/commons/fileupload/ParameterParser.java b/src/main/java/org/apache/commons/fileupload2/ParameterParser.java
similarity index 98%
rename from src/main/java/org/apache/commons/fileupload/ParameterParser.java
rename to src/main/java/org/apache/commons/fileupload2/ParameterParser.java
index e645458..f310dd2 100644
--- a/src/main/java/org/apache/commons/fileupload/ParameterParser.java
+++ b/src/main/java/org/apache/commons/fileupload2/ParameterParser.java
@@ -14,14 +14,14 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.fileupload;
+package org.apache.commons.fileupload2;
 
 import java.io.UnsupportedEncodingException;
 import java.util.HashMap;
 import java.util.Locale;
 import java.util.Map;
 
-import org.apache.commons.fileupload.util.mime.MimeUtility;
+import org.apache.commons.fileupload2.util.mime.MimeUtility;
 
 /**
  * A simple parser intended to parse sequences of name/value pairs.
diff --git a/src/main/java/org/apache/commons/fileupload/ProgressListener.java b/src/main/java/org/apache/commons/fileupload2/ProgressListener.java
similarity index 97%
rename from src/main/java/org/apache/commons/fileupload/ProgressListener.java
rename to src/main/java/org/apache/commons/fileupload2/ProgressListener.java
index 5a869ef..0288b8e 100644
--- a/src/main/java/org/apache/commons/fileupload/ProgressListener.java
+++ b/src/main/java/org/apache/commons/fileupload2/ProgressListener.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.fileupload;
+package org.apache.commons.fileupload2;
 
 /**
  * The {@link ProgressListener} may be used to display a progress bar
diff --git a/src/main/java/org/apache/commons/fileupload/RequestContext.java b/src/main/java/org/apache/commons/fileupload2/RequestContext.java
similarity index 97%
rename from src/main/java/org/apache/commons/fileupload/RequestContext.java
rename to src/main/java/org/apache/commons/fileupload2/RequestContext.java
index b0d329e..368b31c 100644
--- a/src/main/java/org/apache/commons/fileupload/RequestContext.java
+++ b/src/main/java/org/apache/commons/fileupload2/RequestContext.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.fileupload;
+package org.apache.commons.fileupload2;
 
 import java.io.InputStream;
 import java.io.IOException;
diff --git a/src/main/java/org/apache/commons/fileupload/UploadContext.java b/src/main/java/org/apache/commons/fileupload2/UploadContext.java
similarity index 96%
rename from src/main/java/org/apache/commons/fileupload/UploadContext.java
rename to src/main/java/org/apache/commons/fileupload2/UploadContext.java
index 182d3cb..d710987 100644
--- a/src/main/java/org/apache/commons/fileupload/UploadContext.java
+++ b/src/main/java/org/apache/commons/fileupload2/UploadContext.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.fileupload;
+package org.apache.commons.fileupload2;
 
 /**
  * Enhanced access to the request information needed for file uploads,
diff --git a/src/main/java/org/apache/commons/fileupload/disk/DiskFileItem.java b/src/main/java/org/apache/commons/fileupload2/disk/DiskFileItem.java
similarity index 96%
rename from src/main/java/org/apache/commons/fileupload/disk/DiskFileItem.java
rename to src/main/java/org/apache/commons/fileupload2/disk/DiskFileItem.java
index e5e3bf9..2b9bfa7 100644
--- a/src/main/java/org/apache/commons/fileupload/disk/DiskFileItem.java
+++ b/src/main/java/org/apache/commons/fileupload2/disk/DiskFileItem.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.fileupload.disk;
+package org.apache.commons.fileupload2.disk;
 
 import static java.lang.String.format;
 
@@ -30,22 +30,22 @@
 import java.util.UUID;
 import java.util.concurrent.atomic.AtomicInteger;
 
-import org.apache.commons.fileupload.FileItem;
-import org.apache.commons.fileupload.FileItemHeaders;
-import org.apache.commons.fileupload.FileUploadException;
-import org.apache.commons.fileupload.ParameterParser;
-import org.apache.commons.fileupload.util.Streams;
+import org.apache.commons.fileupload2.FileItem;
+import org.apache.commons.fileupload2.FileItemHeaders;
+import org.apache.commons.fileupload2.FileUploadException;
+import org.apache.commons.fileupload2.ParameterParser;
+import org.apache.commons.fileupload2.util.Streams;
 import org.apache.commons.io.FileUtils;
 import org.apache.commons.io.IOUtils;
 import org.apache.commons.io.output.DeferredFileOutputStream;
 
 /**
  * <p> The default implementation of the
- * {@link org.apache.commons.fileupload.FileItem FileItem} interface.
+ * {@link org.apache.commons.fileupload2.FileItem FileItem} interface.
  *
  * <p> After retrieving an instance of this class from a {@link
  * DiskFileItemFactory} instance (see
- * {@link org.apache.commons.fileupload.servlet.ServletFileUpload
+ * {@link org.apache.commons.fileupload2.servlet.ServletFileUpload
  * #parseRequest(javax.servlet.http.HttpServletRequest)}), you may
  * either request all contents of file at once using {@link #get()} or
  * request an {@link java.io.InputStream InputStream} with
@@ -243,10 +243,10 @@
      * Returns the original filename in the client's filesystem.
      *
      * @return The original filename in the client's filesystem.
-     * @throws org.apache.commons.fileupload.InvalidFileNameException The file name contains a NUL character,
+     * @throws org.apache.commons.fileupload2.InvalidFileNameException The file name contains a NUL character,
      *   which might be an indicator of a security attack. If you intend to
      *   use the file name anyways, catch the exception and use
-     *   {@link org.apache.commons.fileupload.InvalidFileNameException#getName()}.
+     *   {@link org.apache.commons.fileupload2.InvalidFileNameException#getName()}.
      */
     @Override
     public String getName() {
diff --git a/src/main/java/org/apache/commons/fileupload/disk/DiskFileItemFactory.java b/src/main/java/org/apache/commons/fileupload2/disk/DiskFileItemFactory.java
similarity index 95%
rename from src/main/java/org/apache/commons/fileupload/disk/DiskFileItemFactory.java
rename to src/main/java/org/apache/commons/fileupload2/disk/DiskFileItemFactory.java
index edcaec1..7add618 100644
--- a/src/main/java/org/apache/commons/fileupload/disk/DiskFileItemFactory.java
+++ b/src/main/java/org/apache/commons/fileupload2/disk/DiskFileItemFactory.java
@@ -14,18 +14,18 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.fileupload.disk;
+package org.apache.commons.fileupload2.disk;
 
 import java.io.File;
 
-import org.apache.commons.fileupload.FileItem;
-import org.apache.commons.fileupload.FileItemFactory;
+import org.apache.commons.fileupload2.FileItem;
+import org.apache.commons.fileupload2.FileItemFactory;
 import org.apache.commons.io.FileCleaningTracker;
 
 /**
- * <p>The default {@link org.apache.commons.fileupload.FileItemFactory}
+ * <p>The default {@link org.apache.commons.fileupload2.FileItemFactory}
  * implementation. This implementation creates
- * {@link org.apache.commons.fileupload.FileItem} instances which keep their
+ * {@link org.apache.commons.fileupload2.FileItem} instances which keep their
  * content either in memory, for smaller items, or in a temporary file on disk,
  * for larger items. The size threshold, above which content will be stored on
  * disk, is configurable, as is the directory in which temporary files will be
@@ -181,7 +181,7 @@
     // --------------------------------------------------------- Public Methods
 
     /**
-     * Create a new {@link org.apache.commons.fileupload.disk.DiskFileItem}
+     * Create a new {@link org.apache.commons.fileupload2.disk.DiskFileItem}
      * instance from the supplied parameters and the local factory
      * configuration.
      *
diff --git a/src/main/java/org/apache/commons/fileupload/disk/package-info.java b/src/main/java/org/apache/commons/fileupload2/disk/package-info.java
similarity index 81%
rename from src/main/java/org/apache/commons/fileupload/disk/package-info.java
rename to src/main/java/org/apache/commons/fileupload2/disk/package-info.java
index ab05fcd..b00ca03 100644
--- a/src/main/java/org/apache/commons/fileupload/disk/package-info.java
+++ b/src/main/java/org/apache/commons/fileupload2/disk/package-info.java
@@ -18,20 +18,20 @@
 /**
  *    <p>
  *      A disk-based implementation of the
- *      {@link org.apache.commons.fileupload.FileItem FileItem}
+ *      {@link org.apache.commons.fileupload2.FileItem FileItem}
  *      interface. This implementation retains smaller items in memory, while
  *      writing larger ones to disk. The threshold between these two is
  *      configurable, as is the location of files that are written to disk.
  *    </p>
  *    <p>
  *      In typical usage, an instance of
- *      {@link org.apache.commons.fileupload.disk.DiskFileItemFactory DiskFileItemFactory}
+ *      {@link org.apache.commons.fileupload2.disk.DiskFileItemFactory DiskFileItemFactory}
  *      would be created, configured, and then passed to a
- *      {@link org.apache.commons.fileupload.FileUpload FileUpload}
+ *      {@link org.apache.commons.fileupload2.FileUpload FileUpload}
  *      implementation such as
- *      {@link org.apache.commons.fileupload.servlet.ServletFileUpload ServletFileUpload}
+ *      {@link org.apache.commons.fileupload2.servlet.ServletFileUpload ServletFileUpload}
  *      or
- *      {@link org.apache.commons.fileupload.portlet.PortletFileUpload PortletFileUpload}.
+ *      {@link org.apache.commons.fileupload2.portlet.PortletFileUpload PortletFileUpload}.
  *    </p>
  *    <p>
  *      The following code fragment demonstrates this usage.
@@ -51,4 +51,4 @@
  *      for further details and examples of how to use this package.
  *    </p>
  */
-package org.apache.commons.fileupload.disk;
+package org.apache.commons.fileupload2.disk;
diff --git a/src/main/java/org/apache/commons/fileupload/package-info.java b/src/main/java/org/apache/commons/fileupload2/package-info.java
similarity index 88%
rename from src/main/java/org/apache/commons/fileupload/package-info.java
rename to src/main/java/org/apache/commons/fileupload2/package-info.java
index 9e30704..02c340a 100644
--- a/src/main/java/org/apache/commons/fileupload/package-info.java
+++ b/src/main/java/org/apache/commons/fileupload2/package-info.java
@@ -26,14 +26,14 @@
  * While this package provides the generic functionality for file uploads,
  * these classes are not typically used directly. Instead, normal usage
  * involves one of the provided extensions of
- * {@link org.apache.commons.fileupload.FileUpload FileUpload} such as
- * {@link org.apache.commons.fileupload.servlet.ServletFileUpload ServletFileUpload}
+ * {@link org.apache.commons.fileupload2.FileUpload FileUpload} such as
+ * {@link org.apache.commons.fileupload2.servlet.ServletFileUpload ServletFileUpload}
  * or
- * {@link org.apache.commons.fileupload.portlet.PortletFileUpload PortletFileUpload},
+ * {@link org.apache.commons.fileupload2.portlet.PortletFileUpload PortletFileUpload},
  * together with a factory for
- * {@link org.apache.commons.fileupload.FileItem FileItem} instances,
+ * {@link org.apache.commons.fileupload2.FileItem FileItem} instances,
  * such as
- * {@link org.apache.commons.fileupload.disk.DiskFileItemFactory DiskFileItemFactory}.
+ * {@link org.apache.commons.fileupload2.disk.DiskFileItemFactory DiskFileItemFactory}.
  * </p>
  * <p>
  * The following is a brief example of typical usage in a servlet, storing
@@ -82,4 +82,4 @@
  * for further details and examples of how to use this package.
  * </p>
  */
-package org.apache.commons.fileupload;
+package org.apache.commons.fileupload2;
diff --git a/src/main/java/org/apache/commons/fileupload/portlet/PortletFileUpload.java b/src/main/java/org/apache/commons/fileupload2/portlet/PortletFileUpload.java
similarity index 90%
rename from src/main/java/org/apache/commons/fileupload/portlet/PortletFileUpload.java
rename to src/main/java/org/apache/commons/fileupload2/portlet/PortletFileUpload.java
index 8192304..c037084 100644
--- a/src/main/java/org/apache/commons/fileupload/portlet/PortletFileUpload.java
+++ b/src/main/java/org/apache/commons/fileupload2/portlet/PortletFileUpload.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.fileupload.portlet;
+package org.apache.commons.fileupload2.portlet;
 
 import java.io.IOException;
 import java.util.List;
@@ -22,12 +22,12 @@
 
 import javax.portlet.ActionRequest;
 
-import org.apache.commons.fileupload.FileItem;
-import org.apache.commons.fileupload.FileItemFactory;
-import org.apache.commons.fileupload.FileItemIterator;
-import org.apache.commons.fileupload.FileUpload;
-import org.apache.commons.fileupload.FileUploadBase;
-import org.apache.commons.fileupload.FileUploadException;
+import org.apache.commons.fileupload2.FileItem;
+import org.apache.commons.fileupload2.FileItemFactory;
+import org.apache.commons.fileupload2.FileItemIterator;
+import org.apache.commons.fileupload2.FileUpload;
+import org.apache.commons.fileupload2.FileUploadBase;
+import org.apache.commons.fileupload2.FileUploadException;
 
 /**
  * <p>High level API for processing file uploads.</p>
@@ -35,9 +35,9 @@
  * <p>This class handles multiple files per single HTML widget, sent using
  * <code>multipart/mixed</code> encoding type, as specified by
  * <a href="http://www.ietf.org/rfc/rfc1867.txt">RFC 1867</a>.  Use
- * {@link org.apache.commons.fileupload.servlet.ServletFileUpload
+ * {@link org.apache.commons.fileupload2.servlet.ServletFileUpload
  * #parseRequest(javax.servlet.http.HttpServletRequest)} to acquire a list
- * of {@link org.apache.commons.fileupload.FileItem FileItems} associated
+ * of {@link org.apache.commons.fileupload2.FileItem FileItems} associated
  * with a given HTML widget.</p>
  *
  * <p>How the data for individual parts is stored is determined by the factory
diff --git a/src/main/java/org/apache/commons/fileupload/portlet/PortletRequestContext.java b/src/main/java/org/apache/commons/fileupload2/portlet/PortletRequestContext.java
similarity index 95%
rename from src/main/java/org/apache/commons/fileupload/portlet/PortletRequestContext.java
rename to src/main/java/org/apache/commons/fileupload2/portlet/PortletRequestContext.java
index f10c72e..eb6ba64 100644
--- a/src/main/java/org/apache/commons/fileupload/portlet/PortletRequestContext.java
+++ b/src/main/java/org/apache/commons/fileupload2/portlet/PortletRequestContext.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.fileupload.portlet;
+package org.apache.commons.fileupload2.portlet;
 
 import static java.lang.String.format;
 
@@ -23,8 +23,8 @@
 
 import javax.portlet.ActionRequest;
 
-import org.apache.commons.fileupload.FileUploadBase;
-import org.apache.commons.fileupload.UploadContext;
+import org.apache.commons.fileupload2.FileUploadBase;
+import org.apache.commons.fileupload2.UploadContext;
 
 /**
  * <p>Provides access to the request information needed for a request made to
diff --git a/src/main/java/org/apache/commons/fileupload/portlet/package-info.java b/src/main/java/org/apache/commons/fileupload2/portlet/package-info.java
similarity index 85%
rename from src/main/java/org/apache/commons/fileupload/portlet/package-info.java
rename to src/main/java/org/apache/commons/fileupload2/portlet/package-info.java
index e39b6ca..b1e9563 100644
--- a/src/main/java/org/apache/commons/fileupload/portlet/package-info.java
+++ b/src/main/java/org/apache/commons/fileupload2/portlet/package-info.java
@@ -18,13 +18,13 @@
 /**
  *    <p>
  *      An implementation of
- *      {@link org.apache.commons.fileupload.FileUpload FileUpload}
+ *      {@link org.apache.commons.fileupload2.FileUpload FileUpload}
  *      for use in portlets conforming to JSR 168. This implementation requires
  *      only access to the portlet's current <code>ActionRequest</code> instance,
  *      and a suitable
- *      {@link org.apache.commons.fileupload.FileItemFactory FileItemFactory}
+ *      {@link org.apache.commons.fileupload2.FileItemFactory FileItemFactory}
  *      implementation, such as
- *      {@link org.apache.commons.fileupload.disk.DiskFileItemFactory DiskFileItemFactory}.
+ *      {@link org.apache.commons.fileupload2.disk.DiskFileItemFactory DiskFileItemFactory}.
  *    </p>
  *    <p>
  *      The following code fragment demonstrates typical usage.
@@ -42,4 +42,4 @@
  *      for further details and examples of how to use this package.
  *    </p>
  */
-package org.apache.commons.fileupload.portlet;
+package org.apache.commons.fileupload2.portlet;
diff --git a/src/main/java/org/apache/commons/fileupload/servlet/FileCleanerCleanup.java b/src/main/java/org/apache/commons/fileupload2/servlet/FileCleanerCleanup.java
similarity index 98%
rename from src/main/java/org/apache/commons/fileupload/servlet/FileCleanerCleanup.java
rename to src/main/java/org/apache/commons/fileupload2/servlet/FileCleanerCleanup.java
index cb8b30d..72a4af6 100644
--- a/src/main/java/org/apache/commons/fileupload/servlet/FileCleanerCleanup.java
+++ b/src/main/java/org/apache/commons/fileupload2/servlet/FileCleanerCleanup.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.fileupload.servlet;
+package org.apache.commons.fileupload2.servlet;
 
 import javax.servlet.ServletContext;
 import javax.servlet.ServletContextListener;
diff --git a/src/main/java/org/apache/commons/fileupload/servlet/ServletFileUpload.java b/src/main/java/org/apache/commons/fileupload2/servlet/ServletFileUpload.java
similarity index 92%
rename from src/main/java/org/apache/commons/fileupload/servlet/ServletFileUpload.java
rename to src/main/java/org/apache/commons/fileupload2/servlet/ServletFileUpload.java
index c0e2b5e..933d526 100644
--- a/src/main/java/org/apache/commons/fileupload/servlet/ServletFileUpload.java
+++ b/src/main/java/org/apache/commons/fileupload2/servlet/ServletFileUpload.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.fileupload.servlet;
+package org.apache.commons.fileupload2.servlet;
 
 import java.io.IOException;
 import java.util.List;
@@ -22,12 +22,12 @@
 
 import javax.servlet.http.HttpServletRequest;
 
-import org.apache.commons.fileupload.FileItem;
-import org.apache.commons.fileupload.FileItemFactory;
-import org.apache.commons.fileupload.FileItemIterator;
-import org.apache.commons.fileupload.FileUpload;
-import org.apache.commons.fileupload.FileUploadBase;
-import org.apache.commons.fileupload.FileUploadException;
+import org.apache.commons.fileupload2.FileItem;
+import org.apache.commons.fileupload2.FileItemFactory;
+import org.apache.commons.fileupload2.FileItemIterator;
+import org.apache.commons.fileupload2.FileUpload;
+import org.apache.commons.fileupload2.FileUploadBase;
+import org.apache.commons.fileupload2.FileUploadException;
 
 /**
  * <p>High level API for processing file uploads.</p>
@@ -36,7 +36,7 @@
  * <code>multipart/mixed</code> encoding type, as specified by
  * <a href="http://www.ietf.org/rfc/rfc1867.txt">RFC 1867</a>.  Use {@link
  * #parseRequest(HttpServletRequest)} to acquire a list of {@link
- * org.apache.commons.fileupload.FileItem}s associated with a given HTML
+ * org.apache.commons.fileupload2.FileItem}s associated with a given HTML
  * widget.</p>
  *
  * <p>How the data for individual parts is stored is determined by the factory
diff --git a/src/main/java/org/apache/commons/fileupload/servlet/ServletRequestContext.java b/src/main/java/org/apache/commons/fileupload2/servlet/ServletRequestContext.java
similarity index 95%
rename from src/main/java/org/apache/commons/fileupload/servlet/ServletRequestContext.java
rename to src/main/java/org/apache/commons/fileupload2/servlet/ServletRequestContext.java
index b962734..2d25664 100644
--- a/src/main/java/org/apache/commons/fileupload/servlet/ServletRequestContext.java
+++ b/src/main/java/org/apache/commons/fileupload2/servlet/ServletRequestContext.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.fileupload.servlet;
+package org.apache.commons.fileupload2.servlet;
 
 import static java.lang.String.format;
 
@@ -23,8 +23,8 @@
 
 import javax.servlet.http.HttpServletRequest;
 
-import org.apache.commons.fileupload.FileUploadBase;
-import org.apache.commons.fileupload.UploadContext;
+import org.apache.commons.fileupload2.FileUploadBase;
+import org.apache.commons.fileupload2.UploadContext;
 
 /**
  * <p>Provides access to the request information needed for a request made to
diff --git a/src/main/java/org/apache/commons/fileupload/servlet/package-info.java b/src/main/java/org/apache/commons/fileupload2/servlet/package-info.java
similarity index 85%
rename from src/main/java/org/apache/commons/fileupload/servlet/package-info.java
rename to src/main/java/org/apache/commons/fileupload2/servlet/package-info.java
index ae41685..8250b35 100644
--- a/src/main/java/org/apache/commons/fileupload/servlet/package-info.java
+++ b/src/main/java/org/apache/commons/fileupload2/servlet/package-info.java
@@ -18,13 +18,13 @@
 /**
  *    <p>
  *      An implementation of
- *      {@link org.apache.commons.fileupload.FileUpload FileUpload}
+ *      {@link org.apache.commons.fileupload2.FileUpload FileUpload}
  *      for use in servlets conforming to JSR 53. This implementation requires
  *      only access to the servlet's current <code>HttpServletRequest</code>
  *      instance, and a suitable
- *      {@link org.apache.commons.fileupload.FileItemFactory FileItemFactory}
+ *      {@link org.apache.commons.fileupload2.FileItemFactory FileItemFactory}
  *      implementation, such as
- *      {@link org.apache.commons.fileupload.disk.DiskFileItemFactory DiskFileItemFactory}.
+ *      {@link org.apache.commons.fileupload2.disk.DiskFileItemFactory DiskFileItemFactory}.
  *    </p>
  *    <p>
  *      The following code fragment demonstrates typical usage.
@@ -42,4 +42,4 @@
  *      for further details and examples of how to use this package.
  *    </p>
  */
-package org.apache.commons.fileupload.servlet;
+package org.apache.commons.fileupload2.servlet;
diff --git a/src/main/java/org/apache/commons/fileupload/util/Closeable.java b/src/main/java/org/apache/commons/fileupload2/util/Closeable.java
similarity index 96%
rename from src/main/java/org/apache/commons/fileupload/util/Closeable.java
rename to src/main/java/org/apache/commons/fileupload2/util/Closeable.java
index 741ccea..dce76f8 100644
--- a/src/main/java/org/apache/commons/fileupload/util/Closeable.java
+++ b/src/main/java/org/apache/commons/fileupload2/util/Closeable.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.fileupload.util;
+package org.apache.commons.fileupload2.util;
 
 import java.io.IOException;
 
diff --git a/src/main/java/org/apache/commons/fileupload/util/FileItemHeadersImpl.java b/src/main/java/org/apache/commons/fileupload2/util/FileItemHeadersImpl.java
similarity index 96%
rename from src/main/java/org/apache/commons/fileupload/util/FileItemHeadersImpl.java
rename to src/main/java/org/apache/commons/fileupload2/util/FileItemHeadersImpl.java
index 2845e32..fde5700 100644
--- a/src/main/java/org/apache/commons/fileupload/util/FileItemHeadersImpl.java
+++ b/src/main/java/org/apache/commons/fileupload2/util/FileItemHeadersImpl.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.fileupload.util;
+package org.apache.commons.fileupload2.util;
 
 import java.io.Serializable;
 import java.util.ArrayList;
@@ -25,7 +25,7 @@
 import java.util.Locale;
 import java.util.Map;
 
-import org.apache.commons.fileupload.FileItemHeaders;
+import org.apache.commons.fileupload2.FileItemHeaders;
 
 /**
  * Default implementation of the {@link FileItemHeaders} interface.
diff --git a/src/main/java/org/apache/commons/fileupload/util/LimitedInputStream.java b/src/main/java/org/apache/commons/fileupload2/util/LimitedInputStream.java
similarity index 98%
rename from src/main/java/org/apache/commons/fileupload/util/LimitedInputStream.java
rename to src/main/java/org/apache/commons/fileupload2/util/LimitedInputStream.java
index 5946653..626afe6 100644
--- a/src/main/java/org/apache/commons/fileupload/util/LimitedInputStream.java
+++ b/src/main/java/org/apache/commons/fileupload2/util/LimitedInputStream.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.fileupload.util;
+package org.apache.commons.fileupload2.util;
 
 import java.io.FilterInputStream;
 import java.io.IOException;
diff --git a/src/main/java/org/apache/commons/fileupload/util/Streams.java b/src/main/java/org/apache/commons/fileupload2/util/Streams.java
similarity index 96%
rename from src/main/java/org/apache/commons/fileupload/util/Streams.java
rename to src/main/java/org/apache/commons/fileupload2/util/Streams.java
index 17d1fb9..8f82a44 100644
--- a/src/main/java/org/apache/commons/fileupload/util/Streams.java
+++ b/src/main/java/org/apache/commons/fileupload2/util/Streams.java
@@ -14,14 +14,14 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.fileupload.util;
+package org.apache.commons.fileupload2.util;
 
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
 
-import org.apache.commons.fileupload.InvalidFileNameException;
+import org.apache.commons.fileupload2.InvalidFileNameException;
 import org.apache.commons.io.IOUtils;
 
 /**
@@ -127,7 +127,7 @@
 
     /**
      * This convenience method allows to read a
-     * {@link org.apache.commons.fileupload.FileItemStream}'s
+     * {@link org.apache.commons.fileupload2.FileItemStream}'s
      * content into a string. The platform's default character encoding
      * is used for converting bytes into characters.
      *
@@ -144,7 +144,7 @@
 
     /**
      * This convenience method allows to read a
-     * {@link org.apache.commons.fileupload.FileItemStream}'s
+     * {@link org.apache.commons.fileupload2.FileItemStream}'s
      * content into a string, using the given character encoding.
      *
      * @param inputStream The input stream to read.
diff --git a/src/main/java/org/apache/commons/fileupload/util/mime/Base64Decoder.java b/src/main/java/org/apache/commons/fileupload2/util/mime/Base64Decoder.java
similarity index 98%
rename from src/main/java/org/apache/commons/fileupload/util/mime/Base64Decoder.java
rename to src/main/java/org/apache/commons/fileupload2/util/mime/Base64Decoder.java
index 07b089e..05d05cb 100644
--- a/src/main/java/org/apache/commons/fileupload/util/mime/Base64Decoder.java
+++ b/src/main/java/org/apache/commons/fileupload2/util/mime/Base64Decoder.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.fileupload.util.mime;
+package org.apache.commons.fileupload2.util.mime;
 
 import java.io.IOException;
 import java.io.OutputStream;
diff --git a/src/main/java/org/apache/commons/fileupload/util/mime/MimeUtility.java b/src/main/java/org/apache/commons/fileupload2/util/mime/MimeUtility.java
similarity index 99%
rename from src/main/java/org/apache/commons/fileupload/util/mime/MimeUtility.java
rename to src/main/java/org/apache/commons/fileupload2/util/mime/MimeUtility.java
index b8a7e46..e0f26f1 100644
--- a/src/main/java/org/apache/commons/fileupload/util/mime/MimeUtility.java
+++ b/src/main/java/org/apache/commons/fileupload2/util/mime/MimeUtility.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.fileupload.util.mime;
+package org.apache.commons.fileupload2.util.mime;
 
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
diff --git a/src/main/java/org/apache/commons/fileupload/util/mime/ParseException.java b/src/main/java/org/apache/commons/fileupload2/util/mime/ParseException.java
similarity index 95%
rename from src/main/java/org/apache/commons/fileupload/util/mime/ParseException.java
rename to src/main/java/org/apache/commons/fileupload2/util/mime/ParseException.java
index 1583879..0ef5382 100644
--- a/src/main/java/org/apache/commons/fileupload/util/mime/ParseException.java
+++ b/src/main/java/org/apache/commons/fileupload2/util/mime/ParseException.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.fileupload.util.mime;
+package org.apache.commons.fileupload2.util.mime;
 
 /**
  * @since 1.3
diff --git a/src/main/java/org/apache/commons/fileupload/util/mime/QuotedPrintableDecoder.java b/src/main/java/org/apache/commons/fileupload2/util/mime/QuotedPrintableDecoder.java
similarity index 98%
rename from src/main/java/org/apache/commons/fileupload/util/mime/QuotedPrintableDecoder.java
rename to src/main/java/org/apache/commons/fileupload2/util/mime/QuotedPrintableDecoder.java
index 7bdf588..8775f54 100644
--- a/src/main/java/org/apache/commons/fileupload/util/mime/QuotedPrintableDecoder.java
+++ b/src/main/java/org/apache/commons/fileupload2/util/mime/QuotedPrintableDecoder.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.fileupload.util.mime;
+package org.apache.commons.fileupload2.util.mime;
 
 import java.io.IOException;
 import java.io.OutputStream;
diff --git a/src/main/java/org/apache/commons/fileupload/util/mime/package-info.java b/src/main/java/org/apache/commons/fileupload2/util/mime/package-info.java
similarity index 94%
rename from src/main/java/org/apache/commons/fileupload/util/mime/package-info.java
rename to src/main/java/org/apache/commons/fileupload2/util/mime/package-info.java
index f15ef34..6b9c410 100644
--- a/src/main/java/org/apache/commons/fileupload/util/mime/package-info.java
+++ b/src/main/java/org/apache/commons/fileupload2/util/mime/package-info.java
@@ -19,4 +19,4 @@
  * MIME decoder implementation, imported and retailed from
  * <a href="http://svn.apache.org/repos/asf/geronimo/specs/tags/geronimo-javamail_1.4_spec-1.4/">Apache Geronimo</a>.
  */
-package org.apache.commons.fileupload.util.mime;
+package org.apache.commons.fileupload2.util.mime;
diff --git a/src/main/java/org/apache/commons/fileupload/util/package-info.java b/src/main/java/org/apache/commons/fileupload2/util/package-info.java
similarity index 95%
rename from src/main/java/org/apache/commons/fileupload/util/package-info.java
rename to src/main/java/org/apache/commons/fileupload2/util/package-info.java
index 89259a9..95817a1 100644
--- a/src/main/java/org/apache/commons/fileupload/util/package-info.java
+++ b/src/main/java/org/apache/commons/fileupload2/util/package-info.java
@@ -20,4 +20,4 @@
  * or methods, which are basically reusable and not necessarily
  * restricted to the scope of a file upload.
  */
-package org.apache.commons.fileupload.util;
+package org.apache.commons.fileupload2.util;
diff --git a/src/test/java/org/apache/commons/fileupload/Constants.java b/src/test/java/org/apache/commons/fileupload2/Constants.java
similarity index 96%
rename from src/test/java/org/apache/commons/fileupload/Constants.java
rename to src/test/java/org/apache/commons/fileupload2/Constants.java
index 69eaa53..8400bff 100644
--- a/src/test/java/org/apache/commons/fileupload/Constants.java
+++ b/src/test/java/org/apache/commons/fileupload2/Constants.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.fileupload;
+package org.apache.commons.fileupload2;
 
 /**
  * Constants used for testing.
diff --git a/src/test/java/org/apache/commons/fileupload/DefaultFileItemTest.java b/src/test/java/org/apache/commons/fileupload2/DefaultFileItemTest.java
similarity index 96%
rename from src/test/java/org/apache/commons/fileupload/DefaultFileItemTest.java
rename to src/test/java/org/apache/commons/fileupload2/DefaultFileItemTest.java
index 0855cb5..77b5c01 100644
--- a/src/test/java/org/apache/commons/fileupload/DefaultFileItemTest.java
+++ b/src/test/java/org/apache/commons/fileupload2/DefaultFileItemTest.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.fileupload;
+package org.apache.commons.fileupload2;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
@@ -27,12 +27,17 @@
 import java.io.IOException;
 import java.io.OutputStream;
 import java.util.Arrays;
+
+import org.apache.commons.fileupload2.DefaultFileItem;
+import org.apache.commons.fileupload2.DefaultFileItemFactory;
+import org.apache.commons.fileupload2.FileItem;
+import org.apache.commons.fileupload2.FileItemFactory;
 import org.apache.commons.io.FileUtils;
 
 import org.junit.Test;
 
 /**
- * Unit tests for {@link org.apache.commons.fileupload.DefaultFileItem}.
+ * Unit tests for {@link org.apache.commons.fileupload2.DefaultFileItem}.
  */
 @SuppressWarnings({"deprecation", "javadoc"}) // unit tests for deprecated class
 public class DefaultFileItemTest {
diff --git a/src/test/java/org/apache/commons/fileupload/DiskFileItemSerializeTest.java b/src/test/java/org/apache/commons/fileupload2/DiskFileItemSerializeTest.java
similarity index 96%
rename from src/test/java/org/apache/commons/fileupload/DiskFileItemSerializeTest.java
rename to src/test/java/org/apache/commons/fileupload2/DiskFileItemSerializeTest.java
index 4507d58..809c1ee 100644
--- a/src/test/java/org/apache/commons/fileupload/DiskFileItemSerializeTest.java
+++ b/src/test/java/org/apache/commons/fileupload2/DiskFileItemSerializeTest.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.fileupload;
+package org.apache.commons.fileupload2;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
@@ -30,7 +30,9 @@
 import java.io.ObjectOutputStream;
 import java.io.OutputStream;
 
-import org.apache.commons.fileupload.disk.DiskFileItemFactory;
+import org.apache.commons.fileupload2.FileItem;
+import org.apache.commons.fileupload2.FileItemFactory;
+import org.apache.commons.fileupload2.disk.DiskFileItemFactory;
 import org.apache.commons.io.FileUtils;
 import org.junit.After;
 import org.junit.Before;
@@ -38,7 +40,7 @@
 
 /**
  * Serialization Unit tests for
- *  {@link org.apache.commons.fileupload.disk.DiskFileItem}.
+ *  {@link org.apache.commons.fileupload2.disk.DiskFileItem}.
  */
 public class DiskFileItemSerializeTest {
 
diff --git a/src/test/java/org/apache/commons/fileupload/DiskFileUploadTest.java b/src/test/java/org/apache/commons/fileupload2/DiskFileUploadTest.java
similarity index 93%
rename from src/test/java/org/apache/commons/fileupload/DiskFileUploadTest.java
rename to src/test/java/org/apache/commons/fileupload2/DiskFileUploadTest.java
index 49f65f0..0435d9c 100644
--- a/src/test/java/org/apache/commons/fileupload/DiskFileUploadTest.java
+++ b/src/test/java/org/apache/commons/fileupload2/DiskFileUploadTest.java
@@ -14,12 +14,14 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.fileupload;
+package org.apache.commons.fileupload2;
 
 import static org.junit.Assert.fail;
 
 import javax.servlet.http.HttpServletRequest;
 
+import org.apache.commons.fileupload2.DiskFileUpload;
+import org.apache.commons.fileupload2.FileUploadException;
 import org.junit.Before;
 import org.junit.Test;
 
diff --git a/src/test/java/org/apache/commons/fileupload/FileItemHeadersTest.java b/src/test/java/org/apache/commons/fileupload2/FileItemHeadersTest.java
similarity index 95%
rename from src/test/java/org/apache/commons/fileupload/FileItemHeadersTest.java
rename to src/test/java/org/apache/commons/fileupload2/FileItemHeadersTest.java
index 0b654aa..5b4849d 100644
--- a/src/test/java/org/apache/commons/fileupload/FileItemHeadersTest.java
+++ b/src/test/java/org/apache/commons/fileupload2/FileItemHeadersTest.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.fileupload;
+package org.apache.commons.fileupload2;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
@@ -23,7 +23,8 @@
 
 import java.util.Iterator;
 
-import org.apache.commons.fileupload.util.FileItemHeadersImpl;
+import org.apache.commons.fileupload2.FileItemHeaders;
+import org.apache.commons.fileupload2.util.FileItemHeadersImpl;
 import org.junit.Test;
 
 /**
diff --git a/src/test/java/org/apache/commons/fileupload/FileUploadTest.java b/src/test/java/org/apache/commons/fileupload2/FileUploadTest.java
similarity index 97%
rename from src/test/java/org/apache/commons/fileupload/FileUploadTest.java
rename to src/test/java/org/apache/commons/fileupload2/FileUploadTest.java
index 3739b8d..a69e9d6 100644
--- a/src/test/java/org/apache/commons/fileupload/FileUploadTest.java
+++ b/src/test/java/org/apache/commons/fileupload2/FileUploadTest.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.fileupload;
+package org.apache.commons.fileupload2;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
@@ -25,8 +25,11 @@
 import java.io.UnsupportedEncodingException;
 import java.util.List;
 
-import org.apache.commons.fileupload.portlet.PortletFileUploadTest;
-import org.apache.commons.fileupload.servlet.ServletFileUploadTest;
+import org.apache.commons.fileupload2.FileItem;
+import org.apache.commons.fileupload2.FileUpload;
+import org.apache.commons.fileupload2.FileUploadException;
+import org.apache.commons.fileupload2.portlet.PortletFileUploadTest;
+import org.apache.commons.fileupload2.servlet.ServletFileUploadTest;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
diff --git a/src/test/java/org/apache/commons/fileupload/HttpServletRequestFactory.java b/src/test/java/org/apache/commons/fileupload2/HttpServletRequestFactory.java
similarity index 95%
rename from src/test/java/org/apache/commons/fileupload/HttpServletRequestFactory.java
rename to src/test/java/org/apache/commons/fileupload2/HttpServletRequestFactory.java
index c9833a7..181ab3f 100644
--- a/src/test/java/org/apache/commons/fileupload/HttpServletRequestFactory.java
+++ b/src/test/java/org/apache/commons/fileupload2/HttpServletRequestFactory.java
@@ -14,10 +14,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.fileupload;
+package org.apache.commons.fileupload2;
 
 import javax.servlet.http.HttpServletRequest;
 
+import org.apache.commons.fileupload2.FileUploadBase;
+
 final class HttpServletRequestFactory {
 
     static public HttpServletRequest createHttpServletRequestWithNullContentType() {
diff --git a/src/test/java/org/apache/commons/fileupload/MockHttpServletRequest.java b/src/test/java/org/apache/commons/fileupload2/MockHttpServletRequest.java
similarity index 99%
rename from src/test/java/org/apache/commons/fileupload/MockHttpServletRequest.java
rename to src/test/java/org/apache/commons/fileupload2/MockHttpServletRequest.java
index 07ca064..523dd4e 100644
--- a/src/test/java/org/apache/commons/fileupload/MockHttpServletRequest.java
+++ b/src/test/java/org/apache/commons/fileupload2/MockHttpServletRequest.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.fileupload;
+package org.apache.commons.fileupload2;
 
 import java.io.BufferedReader;
 import java.io.ByteArrayInputStream;
@@ -32,6 +32,8 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpSession;
 
+import org.apache.commons.fileupload2.FileUploadBase;
+
 public class MockHttpServletRequest implements HttpServletRequest {
 
     private final InputStream m_requestData;
diff --git a/src/test/java/org/apache/commons/fileupload/MultipartStreamTest.java b/src/test/java/org/apache/commons/fileupload2/MultipartStreamTest.java
similarity index 94%
rename from src/test/java/org/apache/commons/fileupload/MultipartStreamTest.java
rename to src/test/java/org/apache/commons/fileupload2/MultipartStreamTest.java
index edbc370..c1c9141 100644
--- a/src/test/java/org/apache/commons/fileupload/MultipartStreamTest.java
+++ b/src/test/java/org/apache/commons/fileupload2/MultipartStreamTest.java
@@ -14,17 +14,18 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.fileupload;
+package org.apache.commons.fileupload2;
 
 import static org.junit.Assert.assertNotNull;
 
 import java.io.ByteArrayInputStream;
 import java.io.InputStream;
 
+import org.apache.commons.fileupload2.MultipartStream;
 import org.junit.Test;
 
 /**
- * Unit tests {@link org.apache.commons.fileupload.MultipartStream}.
+ * Unit tests {@link org.apache.commons.fileupload2.MultipartStream}.
  */
 public class MultipartStreamTest {
 
diff --git a/src/test/java/org/apache/commons/fileupload/ParameterParserTest.java b/src/test/java/org/apache/commons/fileupload2/ParameterParserTest.java
similarity index 97%
rename from src/test/java/org/apache/commons/fileupload/ParameterParserTest.java
rename to src/test/java/org/apache/commons/fileupload2/ParameterParserTest.java
index da86ec6..f5b6b48 100644
--- a/src/test/java/org/apache/commons/fileupload/ParameterParserTest.java
+++ b/src/test/java/org/apache/commons/fileupload2/ParameterParserTest.java
@@ -14,13 +14,14 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.fileupload;
+package org.apache.commons.fileupload2;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNull;
 
 import java.util.Map;
 
+import org.apache.commons.fileupload2.ParameterParser;
 import org.junit.Test;
 
 /**
diff --git a/src/test/java/org/apache/commons/fileupload/ProgressListenerTest.java b/src/test/java/org/apache/commons/fileupload2/ProgressListenerTest.java
similarity index 93%
rename from src/test/java/org/apache/commons/fileupload/ProgressListenerTest.java
rename to src/test/java/org/apache/commons/fileupload2/ProgressListenerTest.java
index 4b30080..fcb2031 100644
--- a/src/test/java/org/apache/commons/fileupload/ProgressListenerTest.java
+++ b/src/test/java/org/apache/commons/fileupload2/ProgressListenerTest.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.fileupload;
+package org.apache.commons.fileupload2;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
@@ -24,7 +24,11 @@
 import java.io.IOException;
 import java.io.InputStream;
 
-import org.apache.commons.fileupload.servlet.ServletFileUpload;
+import org.apache.commons.fileupload2.FileItemIterator;
+import org.apache.commons.fileupload2.FileItemStream;
+import org.apache.commons.fileupload2.FileUploadException;
+import org.apache.commons.fileupload2.ProgressListener;
+import org.apache.commons.fileupload2.servlet.ServletFileUpload;
 import org.junit.Test;
 
 /**
diff --git a/src/test/java/org/apache/commons/fileupload/SizesTest.java b/src/test/java/org/apache/commons/fileupload2/SizesTest.java
similarity index 94%
rename from src/test/java/org/apache/commons/fileupload/SizesTest.java
rename to src/test/java/org/apache/commons/fileupload2/SizesTest.java
index a0c90d2..ab1388b 100644
--- a/src/test/java/org/apache/commons/fileupload/SizesTest.java
+++ b/src/test/java/org/apache/commons/fileupload2/SizesTest.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.fileupload;
+package org.apache.commons.fileupload2;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
@@ -29,11 +29,16 @@
 
 import javax.servlet.http.HttpServletRequest;
 
-import org.apache.commons.fileupload.FileUploadBase.FileUploadIOException;
-import org.apache.commons.fileupload.FileUploadBase.SizeException;
-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.FileItem;
+import org.apache.commons.fileupload2.FileItemIterator;
+import org.apache.commons.fileupload2.FileItemStream;
+import org.apache.commons.fileupload2.FileUploadBase;
+import org.apache.commons.fileupload2.FileUploadException;
+import org.apache.commons.fileupload2.FileUploadBase.FileUploadIOException;
+import org.apache.commons.fileupload2.FileUploadBase.SizeException;
+import org.apache.commons.fileupload2.disk.DiskFileItemFactory;
+import org.apache.commons.fileupload2.servlet.ServletFileUpload;
+import org.apache.commons.fileupload2.util.Streams;
 import org.junit.Test;
 
 /**
diff --git a/src/test/java/org/apache/commons/fileupload/StreamingTest.java b/src/test/java/org/apache/commons/fileupload2/StreamingTest.java
similarity index 92%
rename from src/test/java/org/apache/commons/fileupload/StreamingTest.java
rename to src/test/java/org/apache/commons/fileupload2/StreamingTest.java
index 0425dc0..0fb11f5 100644
--- a/src/test/java/org/apache/commons/fileupload/StreamingTest.java
+++ b/src/test/java/org/apache/commons/fileupload2/StreamingTest.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.fileupload;
+package org.apache.commons.fileupload2;
 
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
@@ -26,10 +26,17 @@
 import java.util.List;
 import javax.servlet.http.HttpServletRequest;
 
-import org.apache.commons.fileupload.FileUploadBase.IOFileUploadException;
-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.FileItemIterator;
+import org.apache.commons.fileupload2.FileItemStream;
+import org.apache.commons.fileupload2.FileUploadBase;
+import org.apache.commons.fileupload2.FileUploadException;
+import org.apache.commons.fileupload2.InvalidFileNameException;
+import org.apache.commons.fileupload2.MultipartStream;
+import org.apache.commons.fileupload2.FileUploadBase.IOFileUploadException;
+import org.apache.commons.fileupload2.disk.DiskFileItemFactory;
+import org.apache.commons.fileupload2.servlet.ServletFileUpload;
+import org.apache.commons.fileupload2.servlet.ServletRequestContext;
 
 import junit.framework.TestCase;
 
diff --git a/src/test/java/org/apache/commons/fileupload/Util.java b/src/test/java/org/apache/commons/fileupload2/Util.java
similarity index 82%
rename from src/test/java/org/apache/commons/fileupload/Util.java
rename to src/test/java/org/apache/commons/fileupload2/Util.java
index 692fb6e..cb49de3 100644
--- a/src/test/java/org/apache/commons/fileupload/Util.java
+++ b/src/test/java/org/apache/commons/fileupload2/Util.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.fileupload;
+package org.apache.commons.fileupload2;
 
 import java.io.UnsupportedEncodingException;
 import java.util.Arrays;
@@ -22,10 +22,13 @@
 
 import javax.servlet.http.HttpServletRequest;
 
-import org.apache.commons.fileupload.disk.DiskFileItemFactory;
-import org.apache.commons.fileupload.portlet.PortletFileUpload;
-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.FileUpload;
+import org.apache.commons.fileupload2.FileUploadException;
+import org.apache.commons.fileupload2.disk.DiskFileItemFactory;
+import org.apache.commons.fileupload2.portlet.PortletFileUpload;
+import org.apache.commons.fileupload2.servlet.ServletFileUpload;
+import org.apache.commons.fileupload2.servlet.ServletRequestContext;
 
 /**
  * Test utility methods.
diff --git a/src/test/java/org/apache/commons/fileupload/portlet/MockPortletActionRequest.java b/src/test/java/org/apache/commons/fileupload2/portlet/MockPortletActionRequest.java
similarity index 98%
rename from src/test/java/org/apache/commons/fileupload/portlet/MockPortletActionRequest.java
rename to src/test/java/org/apache/commons/fileupload2/portlet/MockPortletActionRequest.java
index b9a3a1b..5fc0c3a 100644
--- a/src/test/java/org/apache/commons/fileupload/portlet/MockPortletActionRequest.java
+++ b/src/test/java/org/apache/commons/fileupload2/portlet/MockPortletActionRequest.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.fileupload.portlet;
+package org.apache.commons.fileupload2.portlet;
 
 import java.io.BufferedReader;
 import java.io.ByteArrayInputStream;
@@ -37,7 +37,7 @@
 import javax.portlet.PortletSession;
 import javax.portlet.WindowState;
 
-import org.apache.commons.fileupload.FileUploadBase;
+import org.apache.commons.fileupload2.FileUploadBase;
 
 /**
  * Mock class for tests. Implements an {@link ActionRequest}.
diff --git a/src/test/java/org/apache/commons/fileupload/portlet/PortletFileUploadTest.java b/src/test/java/org/apache/commons/fileupload2/portlet/PortletFileUploadTest.java
similarity index 89%
rename from src/test/java/org/apache/commons/fileupload/portlet/PortletFileUploadTest.java
rename to src/test/java/org/apache/commons/fileupload2/portlet/PortletFileUploadTest.java
index b56444f..1f7b601 100644
--- a/src/test/java/org/apache/commons/fileupload/portlet/PortletFileUploadTest.java
+++ b/src/test/java/org/apache/commons/fileupload2/portlet/PortletFileUploadTest.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.fileupload.portlet;
+package org.apache.commons.fileupload2.portlet;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
@@ -24,10 +24,11 @@
 
 import javax.portlet.ActionRequest;
 
-import org.apache.commons.fileupload.Constants;
-import org.apache.commons.fileupload.FileItem;
-import org.apache.commons.fileupload.FileUploadTest;
-import org.apache.commons.fileupload.disk.DiskFileItemFactory;
+import org.apache.commons.fileupload2.Constants;
+import org.apache.commons.fileupload2.FileItem;
+import org.apache.commons.fileupload2.FileUploadTest;
+import org.apache.commons.fileupload2.disk.DiskFileItemFactory;
+import org.apache.commons.fileupload2.portlet.PortletFileUpload;
 import org.junit.Before;
 import org.junit.Test;
 
diff --git a/src/test/java/org/apache/commons/fileupload/servlet/ServletFileUploadTest.java b/src/test/java/org/apache/commons/fileupload2/servlet/ServletFileUploadTest.java
similarity index 90%
rename from src/test/java/org/apache/commons/fileupload/servlet/ServletFileUploadTest.java
rename to src/test/java/org/apache/commons/fileupload2/servlet/ServletFileUploadTest.java
index 5513ea6..1bc9eb9 100644
--- a/src/test/java/org/apache/commons/fileupload/servlet/ServletFileUploadTest.java
+++ b/src/test/java/org/apache/commons/fileupload2/servlet/ServletFileUploadTest.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.fileupload.servlet;
+package org.apache.commons.fileupload2.servlet;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
@@ -24,10 +24,12 @@
 
 import javax.servlet.http.HttpServletRequest;
 
-import org.apache.commons.fileupload.Constants;
-import org.apache.commons.fileupload.FileItem;
-import org.apache.commons.fileupload.MockHttpServletRequest;
-import org.apache.commons.fileupload.disk.DiskFileItemFactory;
+import org.apache.commons.fileupload2.Constants;
+import org.apache.commons.fileupload2.FileItem;
+import org.apache.commons.fileupload2.FileUploadTest;
+import org.apache.commons.fileupload2.MockHttpServletRequest;
+import org.apache.commons.fileupload2.disk.DiskFileItemFactory;
+import org.apache.commons.fileupload2.servlet.ServletFileUpload;
 import org.junit.Test;
 
 /**
diff --git a/src/test/java/org/apache/commons/fileupload/util/mime/Base64DecoderTestCase.java b/src/test/java/org/apache/commons/fileupload2/util/mime/Base64DecoderTestCase.java
similarity index 97%
rename from src/test/java/org/apache/commons/fileupload/util/mime/Base64DecoderTestCase.java
rename to src/test/java/org/apache/commons/fileupload2/util/mime/Base64DecoderTestCase.java
index afecb84..cc27bee 100644
--- a/src/test/java/org/apache/commons/fileupload/util/mime/Base64DecoderTestCase.java
+++ b/src/test/java/org/apache/commons/fileupload2/util/mime/Base64DecoderTestCase.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.fileupload.util.mime;
+package org.apache.commons.fileupload2.util.mime;
 
 import static org.junit.Assert.assertArrayEquals;
 import static org.junit.Assert.assertTrue;
@@ -24,6 +24,7 @@
 import java.io.IOException;
 import java.io.UnsupportedEncodingException;
 
+import org.apache.commons.fileupload2.util.mime.Base64Decoder;
 import org.junit.Test;
 
 /**
diff --git a/src/test/java/org/apache/commons/fileupload/util/mime/MimeUtilityTestCase.java b/src/test/java/org/apache/commons/fileupload2/util/mime/MimeUtilityTestCase.java
similarity index 95%
rename from src/test/java/org/apache/commons/fileupload/util/mime/MimeUtilityTestCase.java
rename to src/test/java/org/apache/commons/fileupload2/util/mime/MimeUtilityTestCase.java
index d84c2e7..d6ec123 100644
--- a/src/test/java/org/apache/commons/fileupload/util/mime/MimeUtilityTestCase.java
+++ b/src/test/java/org/apache/commons/fileupload2/util/mime/MimeUtilityTestCase.java
@@ -14,13 +14,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.fileupload.util.mime;
+package org.apache.commons.fileupload2.util.mime;
 
 import static org.junit.Assert.assertEquals;
 
 import java.io.UnsupportedEncodingException;
 
-import org.apache.commons.fileupload.util.mime.MimeUtility;
+import org.apache.commons.fileupload2.util.mime.MimeUtility;
 import org.junit.Test;
 
 /**
diff --git a/src/test/java/org/apache/commons/fileupload/util/mime/QuotedPrintableDecoderTestCase.java b/src/test/java/org/apache/commons/fileupload2/util/mime/QuotedPrintableDecoderTestCase.java
similarity index 97%
rename from src/test/java/org/apache/commons/fileupload/util/mime/QuotedPrintableDecoderTestCase.java
rename to src/test/java/org/apache/commons/fileupload2/util/mime/QuotedPrintableDecoderTestCase.java
index 872eedf..7c76538 100644
--- a/src/test/java/org/apache/commons/fileupload/util/mime/QuotedPrintableDecoderTestCase.java
+++ b/src/test/java/org/apache/commons/fileupload2/util/mime/QuotedPrintableDecoderTestCase.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.commons.fileupload.util.mime;
+package org.apache.commons.fileupload2.util.mime;
 
 import static org.junit.Assert.assertArrayEquals;
 import static org.junit.Assert.fail;
@@ -24,6 +24,7 @@
 import java.io.IOException;
 import java.io.UnsupportedEncodingException;
 
+import org.apache.commons.fileupload2.util.mime.QuotedPrintableDecoder;
 import org.junit.Test;
 
 /**