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]

Reply via email to