With the publication of TrueZIP 7.0 Release Candidate 2, the development project for the initial version of TrueZIP 7 is getting close to its end. So what’s left to do before the release of TrueZIP 7.0? Here’s the roadmap according to TrueZIP’s issue tracking system JIRA at http://java.net/jira/browse/TRUEZIP/fixforversion/14620:
- [TRUEZIP-49] - Reading nested archive files may leave temporary files
- [TRUEZIP-51] - Complete documentation for TrueZIP 7
- [TRUEZIP-68] - Using an archive file with a colon in its file name throws a NullPointerException
It’s been a long and rocky road to get here.
TrueZIP 7 is a very different product than TrueZIP 6.
While TrueZIP 6 was a monolithic architecture which was very much centered around the class de.schlichtherle.io.File
,
its successor class de.schlichtherle.truezip.file.TFile
is now a component of an optional module in TrueZIP 7 -
namely TrueZIP File.
The optional module TrueZIP File depends on the mandatory module TrueZIP Kernel, which in turn depends on additional
driver modules to perform the I/O.
At run time, for each supported archive or file system access scheme (ZIP, HTTP etc.), a driver module must be present
on the class path.
E.g. the driver module TrueZIP Driver ZIP needs to be present on the runtime class path to access ZIP compatible archive
files.
For application developers, this modular architecture is a bit more complex to set up, but features the following benefits:
- Configuring the set of supported archive and file system access schemes is just a matter of adding dependencies to your project. A new Maven archetype for TrueZIP applications will make this task easy. No Java code or custom configuration files need to be written - although you can do this if you want to.
- Instead of using the TrueZIP File* API, a
java.nio.file.spi.FileSystemProvider
implementation could be used to adapt the TrueZIP Kernel API to the NIO.2 API of JSE 7.
The latter is a particularly interesting benefit: It means an application doesn’t even need to depend on TrueZIP at compile time - it just calls the NIO.2 API instead. If set up correctly at run time, the application can then seamlessly access archive files as if they just plain directories in the native file system. I suppose this feature could significantly boost the usage of TrueZIP. Note that an NIO.2 adapter is currently not included in TrueZIP 7.0 RC 2. However, an independent project for its development is run by Michael Hall.
For more information, please subscribe and post to the user mailing list.