Release Notes -- Apache Jackrabbit FileVault -- Version 3.4.2

Introduction
------------
The FileVault introduces a JCR repository to filesystem mapping. The mapping
is exposed by an API and used by the "FileVault Content Packages" which allow to
create portable packages of repository content.

The Vault Command Line Interface aka "vlt" provides a subversion like
utility to work and develop with repository content.

Changes in Jackrabbit FileVault 3.4.2
--------------------------------------

Release Notes - Jackrabbit FileVault - Version 3.4.2
This version requires Java 8, Oak 1.20 and Jackrabbit 2.20.0

Bug fixes
    * [JCRVLT-343] - Check for index definitions also considers ACL entries
    * [JCRVLT-379] - CompressionUtilTest.testCompressibilityEstimation() fails sometimes
    * [JCRVLT-386] - Eclipse/m2e: Could not get metadata for dependencies which are resolved via m2e workspace resolution or for multimodule builds with phases < package
    * [JCRVLT-390] - filter based on content properties is not working

New Features
    * [JCRVLT-232] - Enforce constraints for package types
    * [JCRVLT-345] - Support pluggable node/file/filter validators

Improvements
    * [JCRVLT-187] - Expose PackageProperties from MetaInf and VaultPackage from Archive
    * [JCRVLT-361] - Validate that all includes/excludes are below the filter root
    * [JCRVLT-365] - Migrate from JSR 305 to Jetbrains annotations
    * [JCRVLT-368] - DefaultWorkspaceFilter.readFilter(Element) might throw j.u.r.PatternSyntaxException
    * [JCRVLT-369] - Include package name in error message when dependencies are not satisfied
    * [JCRVLT-371] - Include Maven groupId and artifactId of each dependency in the MANIFEST.MF and the properties.xml
    * [JCRVLT-376] - test cases leak 'vaulttest*zip' temp files
    * [JCRVLT-382] - DefaultWorkspaceFilter: Reset source for every modifying operation
    * [JCRVLT-384] - Document config.xml, settings.xml, nodetypes.cnd and privileges.xml below META-INF/vault
    * [JCRVLT-385] - AdvancedFilterValidator should also consider filter roots of nested subpackages
    * [JCRVLT-399] - Update to Jackrabbit 2.20.0 / Oak 1.20.0

Tasks
    * [JCRVLT-161] - Document FileVault Workspace Property filter
    * [JCRVLT-347] - Enable ignored principal-based ITs once Oak 1.18.0 is released
    * [JCRVLT-391] - Remove copied classes of Xerces
    * [JCRVLT-392] - Support Matrix builds on Windows/Linux with Travis
    * [JCRVLT-393] - Java 13 Build Support


Changes in Jackrabbit FileVault 3.4.0
--------------------------------------

Release Notes - Jackrabbit FileVault - Version 3.4.0
This version requires Java 8, Oak 1.16 and Jackrabbit 2.18.3

Bug fixes:
    * [JCRVLT-323] - Unable to perform sync due to wrong default workspace handling
    * [JCRVLT-338] - argLine getting overridden by parent pom and vault-core pom
    * [JCRVLT-341] - https doesn't work anymore
    * [JCRVLT-352] - File leak in Hook.init
    * [JCRVLT-359] - Provide separate option to control handling of rep:cugPolicy nodes
    * [JCRVLT-362] - ZipStreamArchive does not expose correct input source to the META-INF resources
    * [JCRVLT-367] - CLONE - vlt shell script prints out error when using openjdk

New Features:
    * [JCRVLT-340] - Adjust JackrabbitACLImporter to handle extensions provided by OAK-8190

Improvements:
    * [JCRVLT-287] - Throw exception in case of ACL Importer failures (instead of just logging)
    * [JCRVLT-336] - FSPackageRegistry should allow forced application scoping of PackageInstallations
    * [JCRVLT-339] - Add FSPackageRegistry support for hollow packages
    * [JCRVLT-346] - allow for custom security setup
    * [JCRVLT-348] - Implement AutoCloseable for classes which have a close method
    * [JCRVLT-349] - Clarify closing behaviour of input streams in methods getting it as argument
    * [JCRVLT-353] - Add constant for allowIndexDefinitions to PackageProperties
    * [JCRVLT-356] - Add equals and toString methods to DocViewNode and DocViewProperty
    * [JCRVLT-360] - Add equals and toString methods to DefaultWorkspaceFilter and FilterSet
    * [JCRVLT-364] - Upgrade jackrabbit and oak and use Java 8
    * [JCRVLT-366] - Allow loading DefaultWorkspaceFilter and AbstractConfig from DOM Element

Tasks:
    * [JCRVLT-344] - update version of jackrabbit and oak dependencies


Changes in Jackrabbit FileVault 3.2.8
-------------------------------------

Release Notes - Jackrabbit FileVault - Version 3.2.8

Bug fixes:
    * [JCRVLT-329] - FSPackageRegistry doesn't handle absolutely configured homepaths correct
    * [JCRVLT-334] - Regression of JCRVLT-271: Property names mixed case problem

Improvements:
    * [JCRVLT-332] - JcrPackageRegistry / JcrPackageImpl cannot deal with dependencies satisfied by FsPackageRegistry


Changes in Jackrabbit FileVault 3.2.6
-------------------------------------

Release Notes - Jackrabbit FileVault - Version 3.2.6

Improvement
   * [JCRVLT-141] - Log all activity to debug so that an activity log can be created
   * [JCRVLT-319] - Allow building of stacked ExecutionPlans


Changes in Jackrabbit FileVault 3.2.4
-------------------------------------

Release Notes - Jackrabbit FileVault - Version 3.2.4

Bug Fixes:
    * [JCRVLT-317] - Aggregate not recognized as XML if root element name followed by a newline

Improvements:
    * [JCRVLT-313] - Avoid opening VaultPackage to get RegisteredPackage in FSRegistry
    * [JCRVLT-314] - Optimize buildup & update flow of FSInstallState
    * [JCRVLT-318] - Allow FSPackageRegistry to be configured to absolute path
    * [JCRVLT-310] - FSRegistry: store package properties in metainfo


Changes in Jackrabbit FileVault 3.2.0
-------------------------------------

Release Notes - Jackrabbit FileVault - Version 3.2.0

Important Changes:
For the fix of JCRVLT-282 the embedded dependencies of jackrabbit-spi and jackrabbit-spi-commons were removed from the
vault-core bundle. This was required to keep the bundle Java 1.7 compatible and rather consume the libraries from the
running system. Since some of the exported APIs already contain references to the Jackrabbit SPI this was necessary.

Bug Fixes:
    * [JCRVLT-292] - Order of ACLs are altered on installation of content packages
    * [JCRVLT-293] - Failing tests when building vault-core with -Doak=true
    * [JCRVLT-294] - DocViewFormatTest fails on Windows
    * [JCRVLT-305] - DefaultWorkspaceFilter.add(nodeFilters) does not include properties

New Features:
    * [JCRVLT-180] - implement filesystem based persistence layer
    * [JCRVLT-271] - Support a CLI command to format vault xml files
    * [JCRVLT-289] - InstallHooks: Propagate exceptions also for phase INSTALL
    * [JCRVLT-300] - vlt-rcp: Support proxy

Improvements:
    * [JCRVLT-282] - Filevault bundle should be Java 1.7 Compatible
    * [JCRVLT-284] - Add support through environment var to directly control the line separator
    * [JCRVLT-286] - Markup in http://jackrabbit.apache.org/filevault/rcp.html broken
    * [JCRVLT-301] - Do not always skip installation of sub packages for older versions and log a WARN in case a subpackage is skipped
    * [JCRVLT-303] - Register namespace under a unique prefix in case of clash
    * [JCRVLT-304] - Add tests that cover combinations of node and property filters
    * [JCRVLT-306] - Document properties.xml format
    * [JCRVLT-277] - vault-davex: cleanup dependencies - suppression of commons-httpclient
    * [JCRVLT-309] - Create helper filter that allows to limit the installation paths


Changes in Jackrabbit FileVault 3.1.44
--------------------------------------

Release Notes - Jackrabbit FileVault - Version 3.1.44

Bug Fixes:
* [JCRVLT-184] - vlt shell script prints out error when using openjdk
* [JCRVLT-208] - Add support for package storage outside /etc/packages
* [JCRVLT-235] - Refuse to create snapshot for empty or root filters.
* [JCRVLT-247] - Java 9 Support
* [JCRVLT-250] - Test class "SimpleFileAggregateInPackage" not executed by default in maven-surefire-plugin
* [JCRVLT-257] - ZipException: invalid code lengths set
* [JCRVLT-258] - Default compression level incorrectly set to NO_COMPRESSION (0)
* [JCRVLT-265] - JcrPackageDefinition.getDependencies() might return an array with a null element
* [JCRVLT-266] - DocViewSaxFormatter does not always emit namespace declaration for "jcr"

Improvements:
* [JCRVLT-270] - Use Jackrabbit 2.16.1
* [JCRVLT-132] - Document enhanced document view format

Won't Fix:
* [JCRVLT-267] - Changing log level to info from error in JcrPackageregistry upload method in case a .jar resource doesn't contains jcr_root
* [JCRVLT-251] - Child nodes mentioned in parent node's docview xml are not cleared correctly during installation


Changes in Jackrabbit FileVault 3.1.42
--------------------------------------

Release Notes - Jackrabbit FileVault - Version 3.1.42

Bug Fixes:
* [JCRVLT-185] - JcrPackageManagerImpl#extract() javadoc mentions not existent "register" property
* [JCRVLT-186] - rcp fails to copy binaries correctly
* [JCRVLT-197] - AggregateImpl.includesProperty fails with multiple filter roots
* [JCRVLT-198] - Creating a package with specific path fails to import
* [JCRVLT-225] - vlt doesn't work anymore with latest jackrabbit
* [JCRVLT-226] - vlt doesn't work with java 9
* [JCRVLT-227] - Import fails if user does not have access to the root path

Improvements:
* [JCRVLT-170] - Introduce the concept of package types
* [JCRVLT-171] - Introduce the concept of Package Registry
* [JCRVLT-172] - Introduce Package Persistence Layer
* [JCRVLT-188] - Ensure that hollow packages still provide PackageProperties and JcrPackageDefinition.
* [JCRVLT-190] - Provide mechanism to install several packages at once
* [JCRVLT-191] - Make VaultPackage and JcrPackage AutoCloseable
* [JCRVLT-192] - Deprecated exact storage location (/etc/packages)
* [JCRVLT-196] - Add remapping support for other than renames
* [JCRVLT-220] - Include package type when assembling a package

Wont't Fix:
* [JCRVLT-200] - Vault should support suppressSnapshots property


Changes in Jackrabbit FileVault 3.1.40
--------------------------------------

Bug Fixes:
* [JCRVLT-155] - JcrPackage.isInstalled does not return false in case the package has been overwritten
* [JCRVLT-158] - Assert causing a NPE if executed
* [JCRVLT-176] - Package with non-deep filter removes node
* [JCRVLT-177] - jcr:content and its children not overwritten during installation of Simple File Aggregate

New Features:
* [JCRVLT-50] - Add support for "hollow" packages

Improvements:
* [JCRVLT-32] - Store package properties in the MANIFEST.MF for faster access
* [JCRVLT-163] - Avoid compressing incompressible binaries
* [JCRVLT-164] - Allow to define default compression level
* [JCRVLT-174] - Add support to pass source credentials in RcpServlet
* [JCRVLT-175] - Ensure RcpTask is clearing out sensitive data in toString statement
* [JCRVLT-181] - Create ZipStreamArchive
* [JCRVLT-183] - Switch to OSGi annotations

Changes in Jackrabbit FileVault 3.1.38
--------------------------------------

Bug Fixes:
* [JCRVLT-128] - System maintained cache nodes should be ignored
* [JCRVLT-137] - Importing packages with users that contain a rep:cache node fails
* [JCRVLT-143] - JcrPackage.extractSubpackages() aborts if subpackage already exists
* [JCRVLT-144] - Unable to perform checkout due to wrong default workspace handling
* [JCRVLT-146] - Package Manager should use osgiCompare to determine version order
* [JCRVLT-147] - Remove unused special jcr:xmltext handling in DocViewSAXFormatter
* [JCRVLT-149] - PermSize deprecation warning for java 1.8
* [JCRVLT-157] - Package import does not handle "Atomic Counter"
* [JCRVLT-162] - package installation should not fully open the package when retrieving the package id
* [JCRVLT-169] - Dependency handling doesn't work when package definition not loaded

New Features:
* [JCRVLT-139] - Add support for package installation listeners
* [JCRVLT-140] - Add support for extract subpackages without installing content
* [JCRVLT-136] - Add import option flags to enforce dependency checks
* [JCRVLT-153] - Enable baseline checking to enforce better export package checks

Improvements:
* [JCRVLT-133] - Avoid node.refresh()
* [JCRVLT-136] - Add import option flags to enforce dependency checks
* [JCRVLT-138] - Unzip test-packages for easier maintenance
* [JCRVLT-145] - Subpackage extraction should not add parent dependency if no content
* [JCRVLT-148] - Migrate org.apache.jackrabbit.vault.vault-davex to httpclient 4.x
* [JCRVLT-150] - Require min JDK 1.7
* [JCRVLT-152] - Reduce verbosity of package installation
* [JCRVLT-165] - Replace proprietary diffing for vlt client with google's diffutils
* [JCRVLT-168] - Update dependencies to stable versions

Changes in Jackrabbit FileVault 3.1.36
--------------------------------------
(version skipped)

Changes in Jackrabbit FileVault 3.1.34
--------------------------------------
(version skipped)

Changes in Jackrabbit FileVault 3.1.32
--------------------------------------
(version skipped)

Changes in Jackrabbit FileVault 3.1.30
--------------------------------------
Bug Fixes:
* [JCRVLT-106] Importing an user and children with UPDATE mode causes unnecessary warnings
* [JCRVLT-126] Content packages update content outside of their filters if ancestor node have binary property
* [JCRVLT-130] Installing package with versions fails if the node is checked in

Improvements:
* [JCRVLT-111] Add support for o.a.j.api.security.authorization.PrincipalSetPolicy
* [JCRVLT-129] Update commons-httpclient to 3.1

Changes in Jackrabbit FileVault 3.1.28
--------------------------------------
Bug Fixes:
* [JCRVLT-89] - JcrPackageImpl.uninstall() throws exception if snapshot is missing
* [JCRVLT-108] - Import of binaries fail because they cannot be converted to strings
* [JCRVLT-114] - Subpackage extraction that contains vlt:definitiion might already have installed state
* [JCRVLT-117] - Potential XSS problem in org.apache.jackrabbit.vault.util.HtmlProgressListener
* [JCRVLT-121] - Credential challenge incorrect for dst server in rcp

Improvements:
* [JCRVLT-105] - Use Node.setPrimaryType() when changing primary type.
* [JCRVLT-113] - Skip installation of sub packages if newer version is already present and installed
* [JCRVLT-116] - InstallHookProcessor.Hook should not only use TCCL as fallback
* [JCRVLT-120] - Allow to filter content properties based on property name and value
* [JCRVLT-122] - Avoid deprecated Item.save()

Changes in Jackrabbit FileVault 3.1.26
--------------------------------------
Bug Fixes:
* [JCRVLT-100] - FileVault requires access to root node
  ** [JCRVLT-99] - Creating a package using package manager API requires read access to root node
  ** [JCRVLT-101] - Importer.TxInfo : access to root node
  ** [JCRVLT-102] - DefaultWorkspaceFilter requires access to root node
  ** [JCRVLT-103] - JcrPackageDefinitionImpl always accesses root node
  ** [JCRVLT-104] - Access to root node in DocViewSAXImporter and JcrSysViewTransformer

Changes in Jackrabbit FileVault 3.1.24
--------------------------------------
Bug Fixes:
* [JCRVLT-91] - HTTPS Support for CLI
* [JCRVLT-92] - Package rewrap broken for packages smaller than 1mb since introduction of memory archive
* [JCRVLT-94] - [AccessControlHandling] Unexpected behavior of acHandling 'merge'
* [JCRVLT-96] - DefaultWorkspaceFilter.getImportMode(path) should find the closest filter root
* [JCRVLT-98] - Multivalued properties of users are saved as single valued properties

Tasks:
* [JCRVLT-93] - Install apache-rat-plugin for license header checks

Improvement:
* [JCRVLT-97] - Implement binaryless export

Changes in Jackrabbit FileVault 3.1.18
--------------------------------------
Bug Fixes:
* [JCRVLT-84] - Installhook processor should not recursively call itself
* [JCRVLT-86] - Unable to merge group-member if the member node name is different from its authorizable id.


Changes in Jackrabbit FileVault 3.1.16
--------------------------------------
Bug Fixes:
* [JCRVLT-21] - "Item is protected" error during vlt rcp copy operation
* [JCRVLT-60] - The "--filter <file>" parameter does not seem to work
* [JCRVLT-81] - FilterSet.equals is returning true for filter sets with distinct roots
* [JCRVLT-83] - vlt rcp does not map namespaces properly


Changes in Jackrabbit FileVault 3.1.14
--------------------------------------
Bug Fixes:
* [JCRVLT-63] - DocViewSAXImporter relies on implementation detail wrt authorizable Id
* [JCRVLT-64] - Nodes that have a user parent are not installed if they are in the same .content.xml as their parent
* [JCRVLT-65] - Packages of authorizable content rely on a stable authorizable path
* [JCRVLT-66] - Updating an exiting authorizable does not work if on different path (mode=merge)
* [JCRVLT-67] - rep:authorizableId might be removed on package install causing error in oak
* [JCRVLT-68] - Wrong JAVA_HOME default location for OSX Yosemite
* [JCRVLT-75] - Installing rep:policy on root node fails (regression of JCRVLT-71)
* [JCRVLT-76] - Installing 2 moved sibling authorizables fails (regression)
* [JCRVLT-77] - AdminPermissionChecker fails if user can't read itself.

Improvements:
* [JCRVLT-72] - Add support for global remapping content during package installation.
* [JCRVLT-57] - Update maven-scr-plugin to 1.19.0 to allow building with Java 8
* [JCRVLT-71] - Allow creation of ancestor user nodes when they are not explicitly included in a filter

Tasks:
* [JCRVLT-70] - Change exported JMX name of PackageManagerMBeanImpl


Changes in Jackrabbit FileVault 3.1.8
-------------------------------------
Bug Fixes:
* [JCRVLT-55] - vlt st should notify the user executed in a directory notunder vault control

Improvement:
* [JCRVLT-54] - [vault-rcp] Allow single task retrieval
* [JCRVLT-56] - Add support for oak system users

Tasks:
* [JCRVLT-52] - Set maven-compiler-plugin target/source version to 1.6


Changes in Jackrabbit FileVault 3.1.6
-------------------------------------
Bug Fixes:
* [JCRVLT-48] - BinMetaDir causes test failures in windows
* [JCRVLT-45] - Uninstallation of package fails if snapshot of sub-package is missing


Changes in Jackrabbit FileVault 3.1.2
-------------------------------------
New Features:
* New project documentation on http://jackrabbit.apache.org/filevault/index.html

Bug Fixes:
* [JCRVLT-43] - vault-doc has duplicate artifactId
* [JCRVLT-44] - Regression: child node order to respected for mixed aggregate parents

Improvements:
* [JCRVLT-19] - Document filter.xml format


Changes in Jackrabbit FileVault 3.1.0
-------------------------------------
New Features:
* [JCRVLT-25] - Implement AccessControlHandling MERGE and MERGE_PRESERVE
* [JCRVLT-30] - Allow package definition to specify recursive install behavior

Bug Fixes:
* [JCRVLT-17] - Provide better abstraction for install hook handling
* [JCRVLT-22] - Import of SNS content on not supporting repositories
* [JCRVLT-23] - Integration tests fail with Jackrabbit Oak
* [JCRVLT-24] - Childnode order not respected for detached full coverage sub aggregates
* [JCRVLT-26] - File vault stores passwords in clear text in ~/.vault/auth.xml
* [JCRVLT-27] - "vlt rcp" requires credentials as URL parameters
* [JCRVLT-34] - NPE in MemoryArchive
* [JCRVLT-36] - IllegalArgumentException while extracting subpackages
* [JCRVLT-37] - Regression: Order of ACE entries is not correct
* [JCRVLT-39] - Regression: installing a package with repository ACL fails
* [JCRVLT-41] - ImportMode=UPDATE deletes existing nodes
* [JCRVLT-42] - Do not allow creation of packages with illegal JCR names

Improvements:
* [JCRVLT-28] - Improve package import for subtrees
* [JCRVLT-31] - Packages defined by a stream are copied to a file first


Changes in Jackrabbit FileVault 3.0.0
-------------------------------------
New features:

    Version 3.0.0 is the initial version of this contribution to the Apache
    Jackrabbit project.

    For more detailed information about all the changes in this and other
    FileVault releases, please see the FileVault issue tracker at

        https://issues.apache.org/jira/browse/JCR

Bug Fixes:
* [JCR-3661] jcrvlt: String[]{""} not packaged correctly

Improvements:
* [JCR-3612] Contribute Adobe's FileVault to ASF
* [JCR-3649] FileVault: fix usage of @inheritDoc in constructor documentation
* [JCR-3666] FileVault: VaultFsConfig11 references incorrect classes from prior versions
* [JCR-3664] FileVault: fix javadoc for PlatformNameFormatter
* [JCR-3663] FileVault: tweak gitignore file
* [JCR-3648] FileVault: remove dependecyManagement entry for concurrent:concurrent
* [JCR-3647] FileVault: update maven-scr-plugin and maven-bundle-plugin versions

Release Contents
----------------
This release consists of a single source archive packaged as a zip file.
The archive can be unpacked with the jar tool from your JDK installation.
See the README.txt file for instructions on how to build this release.

The source archive is accompanied by SHA1 and MD5 checksums and a PGP
signature that you can use to verify the authenticity of your download.
The public key used for the PGP signature can be found at
https://www.apache.org/dist/jackrabbit/KEYS

About Apache Jackrabbit
-----------------------
Apache Jackrabbit is a fully conforming implementation of the Content
Repository for Java Technology API (JCR). A content repository is a
hierarchical content store with support for structured and unstructured
content, full text search, versioning, transactions, observation, and
more.

For more information, visit http://jackrabbit.apache.org/

About The Apache Software Foundation
------------------------------------
Established in 1999, The Apache Software Foundation provides organizational,
legal, and financial support for more than 100 freely-available,
collaboratively-developed Open Source projects. The pragmatic Apache License
enables individual and commercial users to easily deploy Apache software;
the Foundation's intellectual property framework limits the legal exposure
of its 2,500+ contributors.

For more information, visit http://www.apache.org/

Trademarks
----------
Apache Jackrabbit, Jackrabbit, Apache, the Apache feather logo, and the Apache
Jackrabbit project logo are trademarks of The Apache Software Foundation.
