I am proud to present the availability of the first release candidate for TrueZIP 7.0! After almost thousand changesets in Mercurial, ranging from patching only a few lines up to changing almost every line of the code base, version 7.0 eventually became a complete rewrite of version 6.8.2.
Highlights
- TrueZIP is now fully modular: For convenient access, applications can use the TrueZIP File* module. For more flexibility, applications can use the TrueZIP Kernel module. See table below.
- The pluggable archive driver architecture in TrueZIP 6 has been refactored to a general file system driver architecture which is used by the TrueZIP Kernel module to access _all _file systems - even the OS file system. This design should allow to bridge to JSR 203 (a.k.a. NIO.2) for universal access to a broad range of file system types in JSE 7 (this feature is not available in the TrueZIP File* module).
- The TrueZIP Driver HTTP module enables access to web resources for applications of the TrueZIP Kernel module.
- JSE 6 is now fully embraced for new language and API features - most notably Generics.
- Maven 3 is used for modularization and building the project site - it’s not a dependency for TrueZIP applications, however.
Modules
Within the new Maven groupId de.schlichtherle.truezip
for TrueZIP 7.0, the following modules are shipped:
Module | Artifact ID | Description |
---|---|---|
TrueZIP Samples | truezip-samples | Sample applications to demonstrate the usage of various TrueZIP module APIs. |
TrueZIP File* | truezip-file | Provides convenient multi-threaded read/write access to archive files as if they were just plain old directories in a file system path by means of the TFile* classes and many dependend classes. These were the well-known `File*` classes in TrueZIP 6 which have now been renamed to `TFile*` and relocated to the new package `de.schlichtherle.truezip.file`. Also provides Swing GUI classes for viewing file trees, choosing entries in archive files or path name autocompletion in combo boxes. |
TrueZIP Kernel | truezip-kernel | This module is the nexus between federated file system applications and providers. It establishes virtual file systems from arbitrary sources, maintains state and commits unsynchronized changes to the contents of federated file systems if required or requested. This module does not depend on other TrueZIP modules. |
TrueZIP Swing | truezip-swing | General Swing GUI classes.This module does not depend on other TrueZIP modules. |
TrueZIP Driver ZIP1 | truezip-driver-zip | The file system driver family for ZIP and related archive file types. Add this artifact to the compile-time class path for dependency injection to the TrueZIP Kernel module or to the run-time class path for service location in the TrueZIP File* module in order to access ZIP and related archive file types. |
TrueZIP Driver TZP1 | truezip-driver-tzp | The file system driver family for the TZP (RAES encrypted ZIP) archive file type. Add this artifact to the compile-time class path for dependency injection to the TrueZIP Kernel module or to the run-time class path for service location in the TrueZIP File* module in order to access the TZP (ZIP.RAES) archive file type. |
TrueZIP Driver TAR1 | truezip-driver-tar | The file system driver family for TAR and related archive file types. Add this artifact to the compile-time class path for dependency injection to the TrueZIP Kernel module or to the run-time class path for service location in the TrueZIP File* module in order to access TAR and related archive file types. |
TrueZIP Driver HTTP(S)1 | truezip-driver-http | The file system driver for the HTTP(S) scheme. Add this artifact to the compile-time class path for dependency injection to the TrueZIP Kernel module or to the run-time class path for service location in the TrueZIP File* module in order to access HTTP(S) URIs. |
TrueZIP Driver FILE1 | truezip-driver-file | The file system driver for the FILE scheme. Add this artifact to the compile-time class path for dependency injection to the TrueZIP Kernel module or to the run-time class path for service location in the TrueZIP File* module in order to access FILE URIs. |
1 Please refer to the module documentation to check which URI schemes and canonical archive file suffixes are recognized by its file system drivers.
Beginning
For the first steps with TrueZIP 7, it’s recommended to download the sources of the TrueZIP Samples module and test
drive the kitchen-sink JAR truezip-samples-7.0-rc1-jar-with-dependencies.jar
which are available for download at
Maven Central.
Upgrading
Because so much has changed, there’s no change log for this release. Users of TrueZIP 6 don’t need to be worried about migration, however:
- For typical applications, migration is primarily a matter of search-and-replace to update the changed package and class names.
- Modularization makes the configuration of archive detectors (now named
TArchiveDetector
) redundant in most cases: Just add the required file system driver modules (see below) to the run-time class path of the application. This will trigger the TrueZIP File* module to detect the canonical file suffixes for the respective archive types. E.g. by adding the module with the Maven artifactIdtruezip-driver-tar
to the application’s runtime class path, the TrueZIP File* module will automatically detect the canonical file suffixes.tar
,.tar.gz
,.tgz
,.tar.bz2
and.tbz2
as TAR files and select the appropriate archive driver.
Documentation
For more information about TrueZIP 7, please refer to the following resources:
- The new User Website at https://christian-schlichtherle.bitbucket.io/truezip.
- The new Developer Website at https://bitbucket.org/christian-schlichtherle/truezip7.
- The new blog with announcements, features and background infos at http://schlichtherle.de.
These websites will be updated with more information over the next couple of weeks - this task is part of the release process.