TrueZIP 7.0 RC 1 Is Available

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 artifactId truezip-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:

These websites will be updated with more information over the next couple of weeks - this task is part of the release process.