Release Notes -- Apache Jackrabbit FileVault -- Version 3.2.4

Introduction
------------
The FileVault introduces a JCR repository to filesystem mapping. The mapping
is exposed by and API and used by the _CRX Content Packaging_  that allows to
create portable packages of repository content.

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

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.
