I would like to propose the removal of the commons-io dependency from
[fileupload].
The dependency consists of three classes:
- FileCleaner
- DeferredFileOutputStream
- ThresholdingOutputStream (required by DeferredFileOutputStream)
This proposal is to copy-and-paste these three classes to package scoped
in the [fileupload] project, and mark them in documentation (in both io
and fileupload) as duplicates. (There is the potential for FileCleaner
to use reflection to try and contact the commons-io version of the class
to avoid a thread creation)
While I understand that many people have an instinctive reaction against
copy-and paste, and that it might seem normal and rational to eat our
own dogfood and reuse code, the truth is that in complex servlet
environments it causes issues.
Unless every method in every class in every release that your dependency
makes is 100% binary, source and semantically compatible forevermore,
then you may have a problem. These problems are generally rare, but are
in many cases unecessary.
[fileupload] 1.0 had no dependency on [io]. Lets remove that dependency
from v1.1 and thus speed a release.
Stephen
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]