Release Notes -- Apache Jackrabbit Oak -- Version 1.16.0 Introduction ------------ Jackrabbit Oak is a scalable, high-performance hierarchical content repository designed for use as the foundation of modern world-class web sites and other demanding content applications. Apache Jackrabbit Oak 1.16.0 is an incremental feature release based on and compatible with earlier stable Jackrabbit Oak 1.x releases. This release is considered stable and targeted for production use. The Oak effort is a part of the Apache Jackrabbit project. Apache Jackrabbit is a project of the Apache Software Foundation. Changes in Oak 1.16.0 --------------------- Bug [OAK-8271] - Lucene path transformed result doesn't accomodate wildcards in relative path [OAK-8351] - Long running RGC remove and getmore operations [OAK-8364] - LastRevRecoveryAgent may log warn message for bundled node [OAK-8383] - AccessControlValidator: check for duplicate ACE ignores allow/deny status [OAK-8388] - AccessControlManagerImpl.getEffectivePolicies(Set): Insufficient validation of query results [OAK-8389] - AccessControlValidator prone to NPE [OAK-8394] - Fix BinaryAccessDSGCIT failing intermittently for Mongo [OAK-8406] - AzurePersistence issues requests without timeout [OAK-8410] - AzurePersistence throws an NPE when reacting to RequestCompletedEvent [OAK-8418] - User query fails if root tree is the search root [OAK-8437] - direct children, exact, and parent path restrictions don't work when path transformation takes place [OAK-8439] - Broken links to JSR Specification/Javadoc [OAK-8442] - AbstractCredentials.setAttributes sychronizes the wrong map [OAK-8448] - VersionGC may get stuck at 60s scope [OAK-8454] - SegmentNodeStoreRegistrar doesn't correctly set statistics provider for the FileStore [OAK-8455] - Memory Node store implementation of PropertyState throws Exception that is not in line with the API documentation [OAK-8457] - Constructor allows creating invalid path [OAK-8459] - Intermittent issue with MongoStatusTest [OAK-8463] - Fix merge in consistency check to allow paths suffixed to blob ids [OAK-8467] - broken version numbers for oak-doc and oak-doc-railroad-macro [OAK-8472] - Typo in oak-run console refresh command help [OAK-8473] - oak-run recovery fails with custom blob store [OAK-8474] - oak-run revisions fails with custom blob store [OAK-8476] - RDBVersionGCSupport returns incorrect value for "oldest deleted document" [OAK-8482] - Remove false positives of SNFE on azure execution time out [OAK-8490] - FilterProviderImpl.getFilter may fail if principal cache enabled [OAK-8492] - PrincipalAccessControlList: misleading notnull annotation with effective path param New Feature [OAK-7981] - Implement elastic search support based off of oak-search [OAK-8155] - CompositePermissionProvider: add possibility to abort evaluation [OAK-8190] - Dedicated authorization for system users [OAK-8366] - Add remote store monitoring for Azure Improvement [OAK-7254] - Indexes with excludedPaths, or includedPaths should not be picked for queries without path [OAK-7998] - [DirectBinaryAccess] Verify that binary exists in cloud before creating signed download URI [OAK-8321] - Use format specifier for log output [OAK-8384] - Improve tests for o.a.j.oak.security.authorization.accesscontrol [OAK-8385] - Get rid of duplicated AcEntry/Entry in PermissionStoreEditor and AccessControlValidator [OAK-8386] - AccessControlValidator.checkValidAccessControlEntry: redundant test for tree existence [OAK-8390] - ACL.java : improve readability [OAK-8392] - AcListComparator only compares path [OAK-8401] - Expand security topic in side bar [OAK-8403] - Improve tests for o.a.j.oak.security.privilege [OAK-8408] - UserImporter must not trigger creation of rep:pwd node unless included in xml (initial-pw-change) [OAK-8419] - Improve tests for o.a.j.oak.security.user.query [OAK-8420] - GroupPredicate: missing notnull annotations with constructor [OAK-8423] - QueryUtil.getCollation should not throw RepositoryException [OAK-8425] - Add QueryUtil.getID to extract ID from user/group [OAK-8429] - oak-run check should expose repository statistics for the last good revision [OAK-8434] - LoginContextProviderImpl: missing tests for login with configured provider name [OAK-8441] - Improve tests for org.apache.jackrabbit.oak.security.authorization.restriction [OAK-8446] - Enable datastore consistency check after completion of garbage collection [OAK-8447] - Handle all available references in the DataStore when doing consistency check [OAK-8451] - GCMonitor: fix compiler warnings and Javadoc [OAK-8453] - Refactor VersionGarbageCollector to extract Recommendations class [OAK-8462] - Adding / changing "useIfExists" should not cause reindex [OAK-8466] - Old inactive clusterIds may trigger expensive recovery [OAK-8489] - Reduce memory usage of in-memory commit Test [OAK-8458] - AsyncIndexUpdateCorruptMarkingTest#testLuceneIndexSegmentStats is flaky due to race condition Task [OAK-7680] - oak-commons: upgrade to project default mockito version [OAK-8213] - BlobStore instantiated from ReadOnly DocumentNodeStore should never modify persistence [OAK-8339] - Move jackrabbit-api project into Oak [OAK-8344] - Expose local index directory size as a metric [OAK-8405] - remove baseline comparisonVersion from POM [OAK-8414] - Update jar-plugin dependency to 3.1.2 [OAK-8424] - Update jar-plugin dependency to version 3.1.1 [OAK-8427] - reactor pom: let assembly-plugin version default to what parent specifies [OAK-8428] - Update checkstyle-plugin dependency to version 3.1.0 [OAK-8430] - Update compiler-plugin dependency to version 3.8.1 [OAK-8431] - Update shade-plugin dependency to version 3.2.1 [OAK-8432] - Update war-plugin dependency to version 3.2.3 [OAK-8438] - Allow not to create blob container in AzureDataStore [OAK-8449] - LastRev check/fix in DocumentNodeStore MBean [OAK-8456] - Update httpclient/mime dependencies to 4.5.9 [OAK-8464] - Update javadoc-plugin to 3.1.1 [OAK-8478] - remove unneeded javadoc plugin version number from reactor pom [OAK-8479] - update rat plugin to 0.13 [OAK-8486] - update jackson-databind dependency to 2.9.9.1 [OAK-8501] - oak-examples/webapp: update htmlunit dependency to 2.35.0 [OAK-8502] - oak-examples/standalone: update spring boot dependency to 1.5.21 [OAK-8503] - oak-benchmarks: update commons-compress dependency to 1.18 [OAK-8504] - oak-run: update groovy dependency to 2.4.17 Technical task [OAK-8150] - RDB*Store: add Oracle specific documentation [OAK-8226] - Documentation for principal-based authorization and AggregationFilter [OAK-8227] - Performance benchmarks [OAK-8252] - MongoBlobStore instantiated from ReadOnly DocumentNodeStore should never modify persistence [OAK-8391] - Create AggregationFilter implementation [OAK-8396] - documentation steps missing to run sweep on RDBDocumentStore [OAK-8397] - maven-bundle-plugin: add export instructions with baseline 1.14 [OAK-8411] - RDBConnectionHandler: add minimal open connection stats in TRACE log level [OAK-8433] - Effective path must be an absolute path [OAK-8435] - FilterProviderImpl must have ConfigurationPolicy set [OAK-8445] - RDB documentation: minor fixes to documentation of "revisions" command [OAK-8468] - document RDB specific log messages [OAK-8481] - RDB*Store: update postgresql jdbc driver reference to 42.4.6 [OAK-8483] - RDB*Store: update mysql jdbc driver reference to 8.0.16 [OAK-8485] - RDB*Store: update mssql jdbc driver reference to 7.2.2 In addition to the above-mentioned changes, this release contains all changes up to the previous release. For more detailed information about all the changes in this and other Oak releases, please see the Oak issue tracker at https://issues.apache.org/jira/browse/OAK 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.md file for instructions on how to build this release. The source archive is accompanied by SHA512 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 Oak --------------------------- Jackrabbit Oak is a scalable, high-performance hierarchical content repository designed for use as the foundation of modern world-class web sites and other demanding content applications. The Oak effort is a part of the Apache Jackrabbit project. Apache Jackrabbit is a project of the Apache Software Foundation. For more information, visit http://jackrabbit.apache.org/oak About The Apache Software Foundation ------------------------------------ Established in 1999, The Apache Software Foundation provides organizational, legal, and financial support for more than 140 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 3,800+ contributors. For more information, visit http://www.apache.org/