$Id$

                         Commons FileUpload Package
                                 Version 1.1.1
                                Release Notes


INTRODUCTION
============

This document contains the release notes for this version of the Commons
FileUpload component, and highlights changes since the previous version.

Documentation for this release is available on the FileUpload web site:

    http://jakarta.apache.org/commons/fileupload/

NOTE: This release of FileUpload requires Commons IO 1.1.
	

UPGRADING FROM 1.1
==================

This version of FileUpload is a drop-in replacement for FileUpload 1.1.

UPGRADING FROM 1.0
==================

Upgrading from FileUpload 1.0 can be as simple as recompiling your application
with the new version. However, it is likely that you will get deprecation
warnings when you do so, since changes have been made to the exposed API of
FileUpload to make it more suitable for use in both Servlet and Portlet
environments. You can, of course, elect to ignore those deprecations, and
leave your code changes until a subsequent version of FileUpload in which those
deprecated methods are removed. To upgrade your code and remove references to
the deprecated methods, please see the FileUpload User Guide.


BUG FIXES
=========

Please see the Changes report for a full history of bugfixes. 

http://jakarta.apache.org/commons/fileupload/changes-report.html

The following are the two bug fixes in this release:

* FILEUPLOAD-20
      Cache disk file item size when it is moved to a new location.

* FILEUPLOAD-30
      File names were being inadvertently converted to lower case.
