Release Notes -- Apache Jackrabbit FileVault -- Version 3.8.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.8.2
--------------------------------------

Release Notes - Jackrabbit FileVault - Version 3.8.2
This version requires Java 8 or above
The OSGi bundles depend on Jackrabbit 2.20.8+ (JCR Commons, SPI, SPI Commons), Oak JR API 1.22.4+, Commons IO 2.7+, Commons Collections 4.1+ and SLF4J 1.7+

Bug
    [JCRVLT-778] - VersionRange.fromString("") does not return VersionRange.INFINITE
    [JCRVLT-783] - site.xml no longer deployed in FileVault 3.8.0

Improvement
    [JCRVLT-768] - vlt: when DEBUG logging stashing ops, add the IdConflictPolicy as well
    [JCRVLT-772] - Remove JUnit 3
    [JCRVLT-774] - Allow overwriting of AbstractDependencyResolver.resolvePackageInfo(Dependency)
    [JCRVLT-776] - improve test coverage for IdConflictPolicy


Changes in Jackrabbit FileVault 3.8.0
--------------------------------------

Release Notes - Jackrabbit FileVault - Version 3.8.0
This version requires Java 8 or above
The OSGi bundles depend on Jackrabbit 2.20.8+ (JCR Commons, SPI, SPI Commons), Oak JR API 1.22.4+, Commons IO 2.7+, Commons Collections 4.1+ and SLF4J 1.7+

Bug

    [JCRVLT-728] - File handle leak in JcrPackageRegistry.register(File,boolean)
    [JCRVLT-730] - Unstable IT: VaultSyncServiceImplIT.testAddRemoveFileFromNonVltCheckoutFolder
    [JCRVLT-746] - Exclude items are not added to WorkspaceFilter in RCP
    [JCRVLT-747] - Import of authorizable nodes appears not to process "{BinaryRef}" property values
    [JCRVLT-751] - ExportOptions.rootPath not properly converted to platform name format
    [JCRVLT-760] - release check fails

Improvement

    [JCRVLT-737] - IdConflictPolicy.LEGACY: Parent node not found when installing a package - improve test coverage
    [JCRVLT-742] - Stop generating MD5, SHA1 and SHA512 with Ant
    [JCRVLT-745] - Stashing: naming and folder location
    [JCRVLT-759] - Update to ASF Parent POM 33
    [JCRVLT-761] - Allow to get qualified name via NodeContext

Task

    [JCRVLT-738] - CugHandlingIT tests do not close resources
    [JCRVLT-739] - some ImportIT tests do not close resources
    [JCRVLT-754] - check-release does not work for filevault anymore
    [JCRVLT-762] - Log/report node identifiers that cause import to switch to stashing and sysview import, also report on slow stashing progress
    [JCRVLT-763] - IdConflictPolicy: improve documentation for CREATE_NEW_ID


Changes in Jackrabbit FileVault 3.7.2
--------------------------------------

Release Notes - Jackrabbit FileVault - Version 3.7.2
This version requires Java 8
The OSGi bundles depend on Jackrabbit 2.20.8+ (JCR Commons, SPI, SPI Commons), Oak JR API 1.22.4+, Commons IO 2.7+, Commons Collections 4.1+ and SLF4J 1.7+

Bug

    [JCRVLT-718] - DocumentViewXmlValidator.validateEnd(...) called with wrong nodePath
    [JCRVLT-721] - Importing content packages with minimum permissions fails
    [JCRVLT-722] - SyncLog: java.time.temporal.UnsupportedTemporalTypeException: Unsupported field: DayOfMonth
    [JCRVLT-725] - Exporting twice via vlt leads to java.nio.file.FileAlreadyExistsException
    [JCRVLT-727] - vlt-sync: Prune unused synced directories

Improvement

    [JCRVLT-469] - Validator for overlapping filter rules

Task

    [JCRVLT-724] - DocViewSaxFormatter: improve diagnostics when generating DocViewNode2 from JCR node


Changes in Jackrabbit FileVault 3.7.0
--------------------------------------

Release Notes - Jackrabbit FileVault - Version 3.7.0
This version requires Java 8
The OSGi bundles depend on Jackrabbit 2.20.8+ (JCR Commons, SPI, SPI Commons), Oak JR API 1.22.4+, Commons IO 2.7+, Commons Collections 4.1+ and SLF4J 1.7+

Bug
    * [JCRVLT-677] - NPE during "vlt checkout" with --force on existing repository
    * [JCRVLT-683] - Import of Authorizable node with acHandling=IGNORE should preserve existing rep:principalPolicy child node
    * [JCRVLT-684] - Mixins recovered using stashing set on incorrect node
    * [JCRVLT-685] - ImportMode REPLACE vs IdConflictPolicy LEGACY vs stashing
    * [JCRVLT-689] - bad description of "isStrict" flag
    * [JCRVLT-693] - Escape values for type javax.jcr.PropertyType.UNDEFINED
    * [JCRVLT-699] - Installation of Sub Packages fails if Maven Reproducible Builds are enabled
    * [JCRVLT-700] - package creation fails for node names that are valid in Oak, but invalid in Jackrabbit
    * [JCRVLT-701] - add test coverage for non-ASCII whitespace inside node names on packaging
    * [JCRVLT-703] - Nodetype Validator reports wrong path for missing binary node
    * [JCRVLT-705] - Unprotected properties with name jcr:created and jcr:createdBy are no longer contained in the export
    * [JCRVLT-708] - Raise minimum runtime requirement to Jackrabbit 2.20.4 and Jackrabbit API 1.22.14

Improvement
    * [JCRVLT-671] - Add Validator SPI targeted towards OSGi configurations
    * [JCRVLT-688] - Add "generator" information to packages generated by filevault
    * [JCRVLT-690] - Allow to prevent session.save() and session.reset(false) inside Importer.run(....)
    * [JCRVLT-692] - Run ITs with minimum and maximum Oak version
    * [JCRVLT-696] - add logging for primary node type changes
    * [JCRVLT-697] - Moving child nodes around should be calculated towards the autosave threshold
    * [JCRVLT-704] - Expose line and column in NodeContext
    * [JCRVLT-706] - jackrabbit-packagetype validator: Use legacy type severity for mixed packages inside container packages
    * [JCRVLT-710] - Update to ASF Parent 30

** Task
    * [JCRVLT-678] - avoid use of transitively inherited commons-collections in FSPackageRegistryIT
    * [JCRVLT-679] - update to Jackrabbit 2.20.8 and Oak 1.48.0
    * [JCRVLT-680] - vault validation tests fail when Jackrabbit dependency is current
    * [JCRVLT-695] - Improve logging wrt node stashing
    * [JCRVLT-707] - Update maximum versions to Jackrabbit 2.20.10 and Oak 1.52.0


Changes in Jackrabbit FileVault 3.6.8
--------------------------------------

Release Notes - Jackrabbit FileVault - Version 3.6.8
This version requires Java 8
The bundles are backwards compatible with Oak 1.8 and Jackrabbit 2.16

Bug
    * [JCRVLT-674] - dependency-check issues while building master branch

Improvement
    * [JCRVLT-672] - Provide a Version comparison function complying to Maven version ordering specification
    * [JCRVLT-673] - AggregateImpl: do not collect & sort nodes that will be skipped anyway

Task
    * [JCRVLT-670] - remove (non-test) dependency to commons-collections4


Changes in Jackrabbit FileVault 3.6.6
--------------------------------------

Release Notes - Jackrabbit FileVault - Version 3.6.6
This version requires Java 8
The bundles are backwards compatible with Oak 1.8 and Jackrabbit 2.16

Bug
    * [JCRVLT-658] - Importer fails for invalid namespace names (ones not containing a colon)
    * [JCRVLT-662] - JcrPackageRegistry.remove() leaks temp file
    * [JCRVLT-664] - Potential NPE in JcrNodeTypeMetaDataImpl.fulfillsNodeDefinition

Improvement
    * [JCRVLT-661] - Document serialization of authorizables and access control lists in JR2/Oak
    * [JCRVLT-666] - improve performance of DefaultWorkspaceFilter.dumpCoverage (Session variant)
    * [JCRVLT-667] - Tree: fix java warnings re generics

Task
    * [JCRVLT-652] - Enforce update of the release notes file prior release


Changes in Jackrabbit FileVault 3.6.4
--------------------------------------

Release Notes - Jackrabbit FileVault - Version 3.6.4
This version requires Java 8
The bundles are backwards compatible with Oak 1.8 and Jackrabbit 2.16

Bug
    * [JCRVLT-584] - Forcing UUID on packages may break previously installable packages
    * [JCRVLT-598] - need IdConflictPolicy compatible with 3.5.0 behavior
    * [JCRVLT-620] - False positive in validator jackrabbit-filter: Found orphaned filter entries for include patterns only covering directories (nt:folder)
    * [JCRVLT-637] - Validation fails for non-docview xml files serialized as extended file aggregates
    * [JCRVLT-646] - Potential javax.jcr.nodetype.ConstraintViolationException while deserializing extended file aggregates
    * [JCRVLT-650] - OSGi config for default id conflict policy not correctly applied

Improvement
    * [JCRVLT-612] - Enable Matomo Web Analytics
    * [JCRVLT-623] - Validate that DocView values for a specific type are correct serializations (i.e. are a string which can be converted back to the given type)
    * [JCRVLT-624] - Provide methods for writing docview XML from DocViewNode2 and DocViewProperty2
    * [JCRVLT-628] - Wrong type information emitted for undefined DocViewProperty type
    * [JCRVLT-634] - Make sure that vault-cli contains all necessary dependencies
    * [JCRVLT-638] - Importing empty multivalue property does no longer work
    * [JCRVLT-639] - jackrabbit-docviewparser: Don't fail for undeclared prefixes in file name by default
    * [JCRVLT-640] - RCP bundle: Get rid of some Sling dependencies
    * [JCRVLT-643] - Provide XSD for filter.xml
    * [JCRVLT-644] - Import of package with not well-formed DocViews behaves differently since 3.6.0 for isStrict = false
    * [JCRVLT-648] - Don't treat javax.jcr.InvalidItemStateException as transient during package import
    * [JCRVLT-649] - Improve logging of errors in the ActivityLog and ProgressTracker

Task
    * [JCRVLT-597] - Update commons-io dependency to 2.11.0

Changes in Jackrabbit FileVault 3.6.0
--------------------------------------

Release Notes - Jackrabbit FileVault - Version 3.6.0
This version requires Java 8
The bundles are backwards compatible with Oak 1.8 and Jackrabbit 2.16

Bug
    * [JCRVLT-457] - scm element in pom.xml removed during release:prepare
    * [JCRVLT-588] - potential issue with symlinks in path for install cache
    * [JCRVLT-589] - PackageInstallIT leaves test files in tmp folder
    * [JCRVLT-605] - Don't set/overwrite excluded protected properties during import
    * [JCRVLT-606] - Potential NPE in PackageManager.rewrap(....)

Improvement
    * [JCRVLT-357] - Split up DocViewSaxImporter: Separate parsing from importing
    * [JCRVLT-559] - jackrabbit-nodetypes validator: Support CNDs contained in package
    * [JCRVLT-580] - Execute ITs with multiple Maven versions
    * [JCRVLT-583] - Update Logback to 1.2.10
    * [JCRVLT-587] - Validator: Check for duplicate jcr:uuid values
    * [JCRVLT-590] - Remove finalizer in ZipVaultPackage
    * [JCRVLT-591] - Detect unclosed packages and archives
    * [JCRVLT-592] - Update to Oak 1.42.0
    * [JCRVLT-593] - vault-cli: Too many transitive libraries included
    * [JCRVLT-600] - jackrabbit-docviewparser: optionally accept undeclared prefixes in file name
    * [JCRVLT-601] - Improve documentation of namespace handling
    * [JCRVLT-603] - Mark all classes in package 'o.a.j.vault.fs.spi' as ProviderType

Task
    * [JCRVLT-607] - Require Java 11+ for building
    * [JCRVLT-594] - add test coverage for duplicate jcr:uuids in package content
    * [JCRVLT-596] - add OSGi config for default IdConflictPolicy


Changes in Jackrabbit FileVault 3.5.8
--------------------------------------

Release Notes - Jackrabbit FileVault - Version 3.5.8
This version requires Java 8
The bundles are backwards compatible with Oak 1.8 and Jackrabbit 2.16

Bug
    * [JCRVLT-574] - vlt does not properly handle connection options
    * [JCRVLT-575] - do not fail if home path for package registry contains a symlink
    * [JCRVLT-576] - Missing dependencies issues whilst including Vault-validation bundle along with vault-core and jcr2spi bundle
    * [JCRVLT-578] - disabling jackrabbit-docviewparser throws NoSuchElementException

Improvement
    * [JCRVLT-572] - Filevault-validation fails on sling:OsgiConfig node
    * [JCRVLT-573] - Use Logback for logging with CLI

Changes in Jackrabbit FileVault 3.5.6
--------------------------------------

Release Notes - Jackrabbit FileVault - Version 3.5.6
This version requires Java 8
The bundles are backwards compatible with Oak 1.8 and Jackrabbit 2.16

Bug
    * [JCRVLT-549] - node cannot be deleted if it's a residual mandatory child node
    * [JCRVLT-557] - Breaking change in behavior for implict nodetype calculation
    * [JCRVLT-564] - jackrabbit-packagetype validation fails for content package with .cfg.json OSGi configurations
    * [JCRVLT-565] - CrossPackageDependenciesIT.testCrossDependency() fails intermittently
    * [JCRVLT-569] - Import mode "MERGE" and "MERGE_PROPERTIES" still remove properties during import
Improvement
    * [JCRVLT-530] - Add Jenkins build automatically deploying SNAPSHOTs
    * [JCRVLT-531] - InstallHookProcessorImpl leaves orphan tmp files
    * [JCRVLT-562] - Build with Java 17
    * [JCRVLT-567] - Move ValidationContext implementation to validation module and export them
    * [JCRVLT-570] - Use s.apache.org redirects for JCR specs/javadocs

Changes in Jackrabbit FileVault 3.5.4
--------------------------------------

Release Notes - Jackrabbit FileVault - Version 3.5.4
This version requires Java 8
The bundles are backwards compatible with Oak 1.8 and Jackrabbit 2.16

Bug
    * [JCRVLT-85] - Import behaviour not always correct in case of conflicting node IDs
    * [JCRVLT-525] - FSPackageRegistry: XML registry files can become corrupt
    * [JCRVLT-526] - PackagePropertiesImpl doesn't support date format with timezone format +-hhmm
    * [JCRVLT-527] - NodeTypeValidator: child node validation performed too early for folders
    * [JCRVLT-539] - NodeTypeValidator: more specific jcr:primaryType might be overwritten by generic nt:folder
    * [JCRVLT-540] - Update to Oak 1.40.0 and Jackrabbit 2.20.3
    * [JCRVLT-542] - FolderArtifactHandler not respecting ImportMode on adjusting primaryTypes
    * [JCRVLT-543] - DocViewSAXImporter failing on protected properties for new Nodes
    * [JCRVLT-544] - Creation of folders based on parent's default nodetype instead of nt:folder causing regression
    * [JCRVLT-552] - Importer fails to detect jcr:mixinTypes being protected if package uses single-value property
    * [JCRVLT-556] - jackrabbit-packagetype validator wrongly complains about OSGI configurations in tools/config path
    * [JCRVLT-560] - Support multi-value binary properties in FileVault DocView and via .binary files
    * [JCRVLT-561] - StackOverflowError in ZipVaultPackage.getArchive()
Improvement
    * [JCRVLT-397] - Update vote template to include SHA512 checksum and JIRA changelog
    * [JCRVLT-476] - Fix blocker bugs in Sonarcloud.io
    * [JCRVLT-506] - Remove o.a.j.v.fs.impl.io.CNDImporter and CNDSerializer (JCR 1.0 nt:nodeType and *.xcnd)
    * [JCRVLT-529] - Lots of dangling ZIP files in tmp folder after executing ITs
    * [JCRVLT-531] - InstallHookProcessorImpl leaves orphan tmp files
    * [JCRVLT-532] - NodeTypeValidator should not be that strict if running in incremental validation
    * [JCRVLT-533] - Provide archive implementation based on ZipFileSystemProvider
    * [JCRVLT-535] - Skip some checks in incremental mode
    * [JCRVLT-536] - NodeTypeValidator: By default do not fail build for violations against default node type definition
    * [JCRVLT-545] - Expose method to format DocViewProperty value
    * [JCRVLT-546] - Remove private references from exported classes
    * [JCRVLT-547] - Distinguish between recoverable and unrecoverable exceptions in intermediate saves
    * [JCRVLT-551] - Set jcr:uuid to value from package when updating node

Changes in Jackrabbit FileVault 3.5.0
--------------------------------------

Release Notes - Jackrabbit FileVault - Version 3.5.0
This version requires Java 8
The bundles are backwards compatible with Oak 1.8 and Jackrabbit 2.16

Bug
    * [JCRVLT-255] - ImportModes act on file serialization level not on node level
    * [JCRVLT-513] - Don't check for property 'allowIndexDefinitions' in package type validator
    * [JCRVLT-514] - JcrWorkspaceFilter does not support property filters
    * [JCRVLT-517] - FSPackageRegistry.contains does not initialize packages
    * [JCRVLT-520] - ZipVaultPackage does not respect the noIntermediateSaves property.
Improvement
    * [JCRVLT-396] - Import mode "MERGE" and "UPDATE" still may remove properties during import
    * [JCRVLT-509] - Make DocView import failures fail the whole installation
    * [JCRVLT-511] - Allow to parameterize PackageTasks
    * [JCRVLT-512] - Add flag to allow install hooks for "application" packages
    * [JCRVLT-515] - AdminPermissionChecker should evaluate all principals bound to the Session
    * [JCRVLT-516] - Ease usage of DocViewProperty outside a repository context
    * [JCRVLT-521] - Drop support of Jackrabbit API 2.14 and Declarative Services 1.3

Changes in Jackrabbit FileVault 3.4.10
--------------------------------------

Release Notes - Jackrabbit FileVault - Version 3.4.10
This version requires Java 8
The bundles are backwards compatible with Oak 1.6 and Jackrabbit 2.14

Bug
    * [JCRVLT-448] - JcrPackageManagerImpl.rewrap and assemble do not close passed output stream
    * [JCRVLT-496] - Clarify usage of oak:index in application packages
    * [JCRVLT-497] - NodeTypeValidator: Incorrect errors emitted for rep:Authorizable nodes
    * [JCRVLT-499] - JcrPackageDefinitionImpl:getDate does not fully support ISO8601 format
    * [JCRVLT-500] - DefaultPathFilter#isAbsolute fails with quoted patterns
Improvement
    * [JCRVLT-450] - Deprecate duplicate/unused util classes
    * [JCRVLT-492] - Document install hooks
    * [JCRVLT-493] - Document restrictions of package types
    * [JCRVLT-494] - Clarify javadoc of ExecutionPlanBuilder.execute()
    * [JCRVLT-503] - Introduce CompositePackageRegistry
    * [JCRVLT-505] - Separate unit test from integration tests
    * [JCRVLT-507] - Update to Oak 1.38.0

Changes in Jackrabbit FileVault 3.4.8
--------------------------------------

Release Notes - Jackrabbit FileVault - Version 3.4.8
This version requires Java 8
The bundles are backwards compatible with Oak 1.6 and Jackrabbit 2.14

Bug
    * [JCRVLT-459] - VLT-RCP: Edit operation does not work
    * [JCRVLT-460] - VLT-RCP: IllegalStateException thrown by Configuration.updateIfDifferent
    * [JCRVLT-461] - jackrabbit-nodetypes: Mandatory property ''{http://www.jcp.org/jcr/1.0}data' missing in node with types [oak:Resource]
    * [JCRVLT-462] - Nodetype validator complains about root node
    * [JCRVLT-463] - jackrabbit-nodetypes: Mandatory child node missing: jcr:content [nt:base]
    * [JCRVLT-465] - VLT-RCP and Core require DS 1.4 due to constructor injection
    * [JCRVLT-480] - NPE when validating not allowed properties
    * [JCRVLT-482] - ArrayIndexOutOfBoundsException when validating multivalue property with empty value array
    * [JCRVLT-485] - Validation fails for nodetypes extending mix:versionable
    * [JCRVLT-488] - PlatformNameFormat incorrectly sets repository names for nodes with double colons
    * [JCRVLT-489] - jackrabbit-nodetypes validator errors for cq:WorkflowModel
New Feature
    * [JCRVLT-486] - nodetype validation: Allow to define list of valid namespaces
Improvement
    * [JCRVLT-433] - Validator for acHandling
    * [JCRVLT-470] - VLT-RCP: Expose version via servlet
    * [JCRVLT-475] - Enable Sonarcloud.io analysis with Travis
    * [JCRVLT-479] - jackrabbit-nodetypes validator: validation fails "overeager" for autocreated properties
    * [JCRVLT-484] - Filter settings should ignore whitespaces when splitting comma-separated strings
    * [JCRVLT-487] - VLT-RCP: Persist also options set on RepositoryCopier

Changes in Jackrabbit FileVault 3.4.6
--------------------------------------

Release Notes - Jackrabbit FileVault - Version 3.4.6
This version requires Java 8
The bundles are backwards compatible with Oak 1.6 and Jackrabbit 2.14

Bug
    * [JCRVLT-421] - filevault-package-maven-plugin 1.1.2: Empty nodes (used for ordering only) outside filter lead to error
    * [JCRVLT-422] - filevault-package-maven-plugin 1.1.2: jackrabbit-emptyelements filter fails for nodes starting with numbers
    * [JCRVLT-430] - Potential NPE in PackageTypeValidator.validate(...)
    * [JCRVLT-436] - VLT-RCP bundle no longer working with older Jackrabbit/Oak versions
    * [JCRVLT-441] - CompressionUtilTest.testCompressibilityEstimation() and testCompressibility fail sometimes
    * [JCRVLT-444] - DiffTest failure on Windows
    * [JCRVLT-445] - FSRegisteredPackageTest leaks temp files
    * [JCRVLT-446] - AdvancedFilterValidatorTest.testFilterWithInvalidElements fails for non-english locale
Improvement
    * [JCRVLT-398] - Migrate Filevault to Git
    * [JCRVLT-419] - Feature/enable insecure https host
    * [JCRVLT-424] - Make compilable and Runnable with Java 14
    * [JCRVLT-426] - Add nodetype validator
    * [JCRVLT-427] - Allow installation of packages with hook for users without admin privileges
    * [JCRVLT-429] - Switch to bnd-maven-plugin
    * [JCRVLT-437] - VLT-RCP: allow to pass a filter.xml for more finegrained control
    * [JCRVLT-438] - VLT-RCP: Provide API
    * [JCRVLT-440] - Do not treat Throwables differently than PackageExceptions in Hooks
    * [JCRVLT-449] - VLT-RCP: Optionally persist tasks
    * [JCRVLT-451] - Upgrade to Jackrabbit 2.20.1 and Oak 1.32.0
    * [JCRVLT-453] - RepositoryCopier should not catch exceptions

Changes in Jackrabbit FileVault 3.4.4
--------------------------------------

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

Bug
    * [JCRVLT-409] - Validation: Emit node names in expanded form
    * [JCRVLT-410] - PackageTypeValidator does not detect OSGi configurations of type sling:OsgiConfig
    * [JCRVLT-414] - Embedding of Woodstox leads to non-necessary Import-Package statements
    * [JCRVLT-415] - jackrabbit-emptyelements validator reports error for nested folders
    * [JCRVLT-417] - Intermediate Node Types should be default node type of parent node type definition instead of "nt:folder"

Improvement
    * [JCRVLT-400] - '/etc/packages' should be a valid root
    * [JCRVLT-401] - Clarify allowed contents of container package type
    * [JCRVLT-402] - Clarify error message for validator "jackrabbit-emptyelements"
    * [JCRVLT-406] - Improve logging of runtime exception in validators
    * [JCRVLT-411] - PackageTypeValidator: Optionally allow complex filters
    * [JCRVLT-413] - Clarify documentation about intermediate/ancestor nodes


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.
