I am pleased to announce the availability of TrueZIP 7.2 Release Candidate 1. TrueZIP 7.2 RC 1 provides some exciting new features, improvements and bug fixes. All users are recommended to upgrade from previous versions.
Most notably, TrueZIP 7.2 RC 1 features the new TrueZIP Path module, which is a FileSystemProvider
implementation for
the NIO.2 API in JSE 7.
Using the TrueZIP Path module, applications can now easily access any (virtual) file system or archive file which is
supported by a TrueZIP Driver module JAR on the run time class path.
The TrueZIP Kernel module has been extended to support new features of the NIO.2 API, e.g. SeekableByteChannel
or the
different access time types in BasicFileAttributes
.
The
TFileSystemProvider
instance which gets installed by the FileSystemProvider
service location feature of the NIO.2 API in JSE 7 is
associated with the URI scheme tpath
for accessing the platform file system.
To unleash the full power of the TrueZIP Path module, e.g. for random read access to a TAR.GZ file via HTTP, please
instantiate the new
TPath
class directly.
You can find the Javadoc for its API at
https://christian-schlichtherle.bitbucket.io/truezip/apidocs/de/schlichtherle/truezip/nio/file/package-summary.html.
Also new:
The TrueZIP Driver FILE module contains a new alternative file system driver for accessing the platform file system via
the default FileSystemProvider
instance of the NIO.2 API.
The TrueZIP Kernel figures the JSE compliance of the JVM it’s running in (JSE 6 or 7) and automatically picks either the
“old” or the “new” platform file system driver implementation.
To kick-start TrueZIP Path applications, a new Maven archetype has been added:
<dependency>
<groupId>de.schlichtherle.truezip</groupId>
<artifactId>truezip-archetype-path</artifactId>
<version>7.2-rc-1</version>
</dependency>
Please try this archetype to get you started quickly. It contains sample usage patterns and demos. The archetype for TrueZIP File* applications has been updated, too:
<dependency>
<groupId>de.schlichtherle.truezip</groupId>
<artifactId>truezip-archetype-file</artifactId>
<version>7.2-rc-1</version>
</dependency>
For instructions how to use these archetypes, please refer to the kick-start articles on the TrueZIP User website at https://christian-schlichtherle.bitbucket.io/truezip/kick-start/index.html.
Release Notes
Following are the Release Notes for TrueZIP 7.2 RC 1 as compiled by its issue tracking tool at http://java.net/jira/browse/TRUEZIP.
Bug
- [TRUEZIP-112] - Colons in FsMountPoint and FsPath are not always quotes correctly.
- [TRUEZIP-123] - The exception thrown by the filtering TArchiveDetector constructors does not report the archive file suffixes in its message
- [TRUEZIP-128] - ByteArrayReadOnlyFile should be fixed
- [TRUEZIP-130] - The archive entry cache still has some minor issues
Improvement
- [TRUEZIP-104] - HttpDriver constructor should have public accessibility
- [TRUEZIP-111] - Paths.prefixLength(String, char) should recognize drive letters only if the separatorChar is ‘’
- [TRUEZIP-113] - Remove FsStatisticsManager
- [TRUEZIP-118] - FsUriModifier.PostFix needs some changes to enhance FsUriModifier.CANONICALIZE
- [TRUEZIP-125] - Revision de.schlichtherle.truezip.io.Paths
- [TRUEZIP-127] - Add new convenience methods to TFile for copying directory trees recursively
- [TRUEZIP-129] - FsCovariantEntry.getSize(Size) should return 0 for directory entries
New Feature
- [TRUEZIP-48] - Implement a TrueZIP FileSystemProvider for NIO.2 in JSE7
- [TRUEZIP-89] - Provide alternative implementation of TrueZIP Driver File using NIO.2
- [TRUEZIP-109] - Provide InputSocket.newSeekableByteChannel() and OutputSocket.newSeekableByteChannel()
- [TRUEZIP-110] - Provide a Maven Archetype for NIO.2 applications.
- [TRUEZIP-114] - Provide FsController.isExecutable(FsEntryName)
- [TRUEZIP-115] - Provide FsController.setTime(FsEntryName, Map<Access, Long>)
- [TRUEZIP-117] - UriBuilder and UriEncoder should provide a “raw” mode to preserve quoted characters in URIs.
- [TRUEZIP-124] - Refactor the global configuration to a manageable class
- [TRUEZIP-126] - Introduce de.schlichtherle.truezip.util.QuotedInputUriSyntaxException
Task
- [TRUEZIP-51] - Ongoing task: Improve documentation
- [TRUEZIP-116] - Provide comprehensive unit tests for the TrueZIP Path module.