Release Notes -- Apache Jackrabbit -- Version 2.7.5 Introduction ------------ This is Apache Jackrabbit(TM) 2.7, a fully compliant implementation of the Content Repository for Java(TM) Technology API, version 2.0 (JCR 2.0) as specified in the Java Specification Request 283 (JSR 283). Apache Jackrabbit 2.7 is an unstable series of releases cut directly from Jackrabbit trunk, with a focus on new features and other improvements. For production use we recommend the latest stable 2.6 release. Changes in Jackrabbit 2.7.5 --------------------------- New Features [JCR-3745] Add JackrabbitObservationManager with additional methods for registering event listeners [JCR-3747] Implement JackrabbitObservationManager Improvements [JCR-3729] S3 Datastore optimizations [JCR-3730] Use object keys to create partitions in S3 automatically [JCR-3731] Multi-threaded migration of binary files from FileSystem to S3 datastore [JCR-3732] Externalize S3 endpoints [JCR-3733] Asynchronous upload file to S3 [JCR-3734] Slow local cache built-up time [JCR-3742] Have DB related dependencies as optional in jackrabbit-data [JCR-3748] Allow configuring S3Backend programatically Bug fixes [JCR-3721] Slow and actively called NodeId.toString() [JCR-3724] Increase the jcr-commons osgi package export versions [JCR-3725] jackrabbit-aws-ext missing from the reactor pom [JCR-3726] DavEx should always use multipart POST to bypass potential form-size restrictions [JCR-3728] AbstractAccessControlEntryImpl: add proper implementation for getRestrictions [JCR-3744] missing test of ordering in VersionHistory for linear version histories Changes in Jackrabbit 2.7.4 --------------------------- Improvements [JCR-3705] Extract data store API and implementations from jackrabbit-core [JCR-3708] More efficient node traversal during garbage collection in binary focused Repository [JCR-3720] Extract stats package from core to make it reusable [JCR-3723] Add support for observation statistics to RepositoryStatistics Bug fixes [JCR-3709] DBDataStore updates 2 times the lastModified Date on touch when GC is running [JCR-3710] occasional test failures in TokenBasedAuthenticationTest [JCR-3711] RepositoryChecker versioning cleanup may leave repaired node in invalid type state [JCR-3718] Inconsistent Principal Validation between API and Import behavior [JCR-3719] ReferenceBinaryTest does not run when running test suite Changes in Jackrabbit 2.7.3 --------------------------- Improvements [JCR-3690] Allow Node Type Registry subclasses to check for conflicting content Bug fixes [JCR-3691] Search index consistency check logs unnecessary warnings for repairable errors [JCR-3692] MoveAtRootTest fails and is not included in test suite [JCR-3697] UserManager not supported error when trying to remove Node in 2.7.2 [JCR-3702] NPE if user w/o read permission on admin user node removes any node Changes in Jackrabbit 2.7.2 --------------------------- New features [JCR-3641] AccessControl: provide ability to create JackrabbitAccessControlEntry with multi-valued restrictions Improvements [JCR-3675] test cases for "similarly" named nodes, diagnostics for names not in NFC [JCR-3686] Prevent removal/move of admin node [JCR-3687] Backport improvements made to token based auth in OAK Bug fixes [JCR-1880] Same name sibling: Jackrabbit behaves differently when calling Node.getPath() [JCR-3364] Moving of nodes requires read access to all parent nodes of the destination node [JCR-3582] Unable to create nodes with whitespace chars != ASCII SP [JCR-3671] Config DTD doesn't allow ProtectedItemImporter [JCR-3673] ChildAxisQuery#advance method results in IllegalArgumentException through #indexIsValid method [JCR-3674] Unwarranted errors logged about nodetype registrations in a clustered environment [JCR-3677] Invalid SQL2OrderByTest.testOrderByScore test case [JCR-3678] MembershipCache max size is hard coded to 5000 [JCR-3682] Better Exception Handling in TransactionContext to handle unchecked exceptions Changes in Jackrabbit 2.7.1 --------------------------- New features [JCR-3534] Efficient copying of binaries across repositories with the same data store [JCR-3634] New method: JackrabbitRepository.login(Credentials, Map) [JCR-3637] JackrabbitAccessControlEntry: Add support for multi-valued restrictions [JCR-3652] Bundle serialization broken Improvements [JCR-2029] JCR Remoting: Use DAV:lockroot to expose the lock-holding node [JCR-3322] add TCK coverage of isNodeType(expandedName) [JCR-3408] Query tests should avoid casting to QueryManagerImpl [JCR-3591] Upgrade to latest Logback [JCR-3596] Reduce level for 'overwriting cached item' log messages in ItemManager [JCR-3616] unit tests should use valid namespace names [JCR-3620] JCA deployment descriptor for Apache Geronimo [JCR-3625] make port number for webdav integration tests configurable [JCR-3626] NodeTypeTest.getPrimaryItemName can get ssssslllllloooowwwww [JCR-3628] Embed cause in org.apache.jackrabbit.core.SessionImpl#getNodeByIdentifier while rethrowing IllegalArgumentException Bug fixes [JCR-3228] WebDav/DavEx remoting throws workspace mismatch exceptions when running on port 80 [JCR-3398] LOWER operand with nested LOCALNAME operand does not work with SQL2 [JCR-3498] OUTER JOIN behavior is improperly excluding some values [JCR-3547] Datastore GC doesn't reset updateModifiedDateOnAccess on datastore [JCR-3595] AbstractJournal logging is too verbose [JCR-3601] AbstractJCRTest.cleanUpTestRoot() does not properly set testNodeType [JCR-3603] Index aggreate with property include does not speed up order by [JCR-3604] NodeMixinUtil.getAddableMixinName() can return mixins already inherited by the node [JCR-3605] Possible Deadlock during TimeoutHandler is running [JCR-3610] html excerpt broken when one of the indexed properties contains markup [JCR-3617] Inconsistent CachingHierarchyManager under concurrent access [JCR-3621] Race condition in MixinTest between event delivery and unregistering the observation listener [JCR-3629] [jcr2spi]RepositoryException lost in org.apache.jackrabbit.jcr2spi.ItemManagerImpl while querying on remote nodes exposed by jackrabbit-spi [JCR-3630] XSS in DirListingExportHandler [JCR-3631] SessionTest#hasCapability: missing save call [JCR-3633] If header field sent with PROPFIND (for lock discovery) [JCR-3635] Manually specified jcr:frozenUuid overwriting the one assigned by the VersionManager when versioning node [JCR-3639] VersionLabelTest adds label to root version [JCR-3642] Ambiguous exception expectation in SessionMoveVersionExceptionTest and WorkspaceMoveVersionExceptionTest [JCR-3645] LockManagerImpl do not prevent the internal PathMap in all relevant Methods [JCR-3653] SessionState logs nano seconds but writes 'us' [JCR-3654] Error MembershipCache if a group node contains MV property [JCR-3655] Better Locking inside LockManagerImpl [JCR-3656] improve error handling when shared node support is missing [JCR-3658] MembershipCache not consistently synchronized Changes in Jackrabbit 2.7.0 --------------------------- New features [JCR-3550] Methods for determining type of array of values [JCR-3566] add TCK test for NaN and infinity double property values Improvements [JCR-3402] getSize() returning too many often -1 [JCR-3495] Unregister from PrivilegeRegistry and NodeTypeRegistry on ... [JCR-3507] Make it possible to remove version histories via the ... [JCR-3513] Slower range query execution [JCR-3516] Search index consistency check should report and fix wrong ... [JCR-3517] Search index consistency check should be able to double ... [JCR-3519] Disable IOCounters based on log level [JCR-3524] Node type selection for reference constraint is not optimal [JCR-3528] Node type selection for CanAddChildNodeCallWithNodeTypeTest#... [JCR-3531] Borrow all available RepositoryHelpers [JCR-3535] Davex remoting should support absolute path hrefs [JCR-3537] Large number of SQL queries when adding nodes with version history [JCR-3549] URIResolverImpl needs to handle absolute paths in addition ... [JCR-3553] improve error logging for unexpected path formats [JCR-3554] RepositoryService.getReferences needs to deal with absolute ... [JCR-3559] RepositoryStubExceptions with root causes [JCR-3571] Light optimization for CachingNameResolver.getJCRName(Name) [JCR-3573] Improve token based login concurrency [JCR-3574] Leverage WebDAV compliance class 3 to use absolute paths in ... [JCR-3575] use absolute paths in WebDAV request bodies (DAV:href elements) [JCR-3577] Allow creation of users with 'null' password [JCR-3578] use absolute paths in DeltaV request bodies, and resolve hrefs ... [JCR-3580] JcrPrivilegeReport needs to deal with both absolute paths and ... [JCR-3583] UPDATE method needs to deal with both absolute paths and ... [JCR-3587] RepositoryImpl should expose the collection of .. Bug fixes [JCR-3276] JCA Adpater not handling transaction suspension correctly [JCR-3382] ItemManager.getNode does not do a permission check when the ... [JCR-3465] JcrUtils.getOrCreateByPath() creates a whole subtree instead ... [JCR-3512] DelayedDelete in MultiDatastore does not work correctly [JCR-3518] Build fails on Mac OS + JDK 7 [JCR-3521] IllegalArgumentException thrown on a box running java7 with ... [JCR-3523] Workspace.copy changes WeakReferences to References [JCR-3539] NotQuery#advance (and for older versions skipTo) violates ... [JCR-3540] locator for RootCollection generates a broken href when using ... [JCR-3543] TCK does not allow a property to be re-bound to a different ... [JCR-3545] unknown REPORT should cause status code 409/DAV:supported-report [JCR-3551] DavEx cannot handle Double.NaN properties [JCR-3552] Principal associated with Group does not update members [JCR-3556] IndexingConfigurationImpl.getAggregateRules() should return ... [JCR-3562] Adding a child node named {foo fails but bar} works [JCR-3570] Make immediately Repository start configureable in ... [JCR-3576] handle absolute paths in observation response bodies [JCR-3581] Incorrect bitwise arithmetic in BitsetENTCacheImpl.BitsetKey... In addition to the above-mentioned changes, this release contains all the changes included up to the Apache Jackrabbit 2.6.0 release. For more detailed information about all the changes in this and other Jackrabbit releases, please see the Jackrabbit issue tracker at https://issues.apache.org/jira/browse/JCR 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://svn.apache.org/repos/asf/jackrabbit/dist/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.