TrueVFS 0.10 Released

I am pleased to announce the release of TrueVFS 0.10. This release incorporates important bug fixes, (performance) improvements and new features, so updating is highly recommended.


Among the new features is the integration of the KeyManager with Apple’s Keychain Services: If the JVM is running on Mac OS X and TrueVFS needs a password for accessing a RAES encrypted ZIP file or a WinZIP AES encrypted ZIP file, then the user gets asked if she wants to persist the password in a new Keychain called TrueCommons KeyManager (yes, the KeyManager is now a part of the TrueCommons project which provides many important modules for the TrueVFS project). Once confirmed, the password gets stored in the Keychain and the user is never asked for it again. This feature is provided by the module TrueCommons KeyManager Mac OS X, which is part of the TrueVFS Profile Default. You can disable the feature anytime by simply excluding the module from the class path.

The TrueVFS Archetype Access has been updated to reflect all changes in the module structure and helps you to select only the TrueVFS modules you want, so please give it a try by following the guides at

Sometimes you may want to bundle just the TrueZIP modules you need in a single JAR. This can be easily done by using the new TrueVFS Archetype Profile. As the name implies, this archetype creates a Maven POM which serves as a template for a custom TrueVFS Profile. The custom profile bundles all JARs in a single shaded JAR. By customizing the POM, you can include or exclude TrueVFS modules or change the shaded JAR so that it doesn’t contain package names which conflict with other versions of the same library, e.g. the Scala Library.

Among the more important improvements is a major performance increase in the TrueVFS Extension Pacemaker (formerly named TrueVFS Extension PaceManager). The performance of the TrueVFS Extension Insight has also been improved. Both extension modules use JMX to expose monitoring and management capabilities. The JMX layer now properly works in the context of web apps where multiple WARs may contain the same TrueVFS module JARs

Last but not least, the documentation has been improved again. Two annotations have been added to document expert features and ACID properties of virtual file system operations. Where applicable, they have been added to the methods of the TFile class and others - please refer to the Javadoc for the TrueVFS Access module.

Release Notes

Following are the Release Notes for TrueVFS 0.10 as compiled by the project’s issue tracker at


  • [TRUEVFS-62] - CLONE -Exception when accessing an archive file with TrueVFS Extension PaceManager installed
  • [TRUEVFS-64] - TrueVFS Extension PaceManager should not sync a file system controller if the current thread has created open streams or channels for it
  • [TRUEVFS-65] - CLONE -Bugs in integration test suite
  • [TRUEVFS-72] - ArrayIndexOutOfBounds when reading an Extra field
  • [TRUEVFS-83] - Key file selection doesn’t always work
  • [TRUEVFS-84] - CLONE -TArchiveDetector bug when accessing inner archives without accessing outer archive before
  • [TRUEVFS-86] - CLONE -Issue with the RDC feature which supresses redundant reprocessing when copying archive entries


  • [TRUEVFS-57] - Get rid of TFileBeanInfo
  • [TRUEVFS-66] - Improve performance of filtering and sorting of file system controllers when syncing
  • [TRUEVFS-69] - Spin off TrueVFS Access Swing
  • [TRUEVFS-75] - Refactor KeyManager to fix design flaws
  • [TRUEVFS-76] - Use provided scope for FindBugs Annotations to shrink the shaded JAR of TrueVFS Profile modules
  • [TRUEVFS-77] - Add an @ExpertFeature annotation to any method which accepts a TArchiveDetector parameter
  • [TRUEVFS-79] - Add an @FsAssertion annotation to document the ACID properties of file system operations
  • [TRUEVFS-80] - Update documentation
  • [TRUEVFS-81] - Properly isolate TFile.createNewFile() when creating entries in archive files
  • [TRUEVFS-85] - Move TrueVFS KeyManager modules into TrueCommons project to spin them off independently
  • [TRUEVFS-89] - Maintaining count of threads is too expensive
  • [TRUEVFS-93] - Fix priorities of services

New Feature

  • [TRUEVFS-68] - Introduce MBeanServerLocator.SINGLETON
  • [TRUEVFS-70] - Create TrueVFS Archetype Profile
  • [TRUEVFS-71] - Refactor FsManager to specify the visitor pattern
  • [TRUEVFS-82] - Add TrueVFS Component MultiplexingMBeanServer
  • [TRUEVFS-87] - Integrate KeyManager with Apple’s Keychain Services for persisting passwords on Mac OS X


  • [TRUEVFS-30] - Check if FsNode should be an interface instead of a class
  • [TRUEVFS-60] - Evaluate: Should FsController.setReadOnly have a BitField parameter?
  • [TRUEVFS-67] - Rename TrueVFS Extension PaceManager to TrueVFS Extension Pacemaker