Christian Grobmeier a écrit :
thanks for your comments below. They all make sense.
I committed the changes to get a hand on the code, but I won't go
farther since your code base is much more advanced.
However, Thorsten and I currently develop a new and (hopefully) better
implementation
than that which is currently available. That implementation fixes some of
the issues you mentioned.
If you want to take a look at it, please check it out via GIT:
http://projects.grobmeier.de/compress-redesign.git/
Your comments and your help is highly appreciated.
My comments, in no specific order:
- the exceptions could extend IOException
- I'm not sure to understand the purpose of the jar classes, isn't a jar
just a renamed zip ?
- what's the intent with the empty classes CompressorInputStream and
CompressorOutputStream ? The GzipCompressor*Stream would become
unnecessary without these.
- would it make sense to put the unix permissions at the ArchiveEntry
level ? Or maybe have a base class (UnixEntry?) for the Tar/Ar/ZipEntry
classes ?
- hungarian notation must die :)
- IOUtils.copy(in, out) could call copy(in, out, size)
- the exception handling in the factories could be simplified
- the header in ArArchive*Stream could be factorized (ArConstants? along
with the sizes of the entry fields)
- it seems there are some duplicate classes in the zip package (ZipEntry
vs ZipArchiveEntry)
- Ant has a JarMarker class that extends ZipExtraField, is there an
equivalent ?
- the zip package seems quite complicated, do we have to expose all
these classes as public ?
- I wonder if the changeset model is mature enough. A higher level API
to manipulate the archives would be nice, but I believe an initial
release could be made with just the stream classes.
- for simplicity, I would rename the 2 factories as Compressors and
Archives. The name of the methods could be shortened too, maybe
something like Compressors.newStream("bzip2", in).
- what is missing to complete the API ? The implementation of the
changes package ? Or did you plan anything else ?
Emmanuel Bourg
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]