Release Notes -- Apache Jackrabbit Oak -- Version 1.14.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.14.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.14.0 --------------------- Technical task [OAK-8201] - RDBDocumentStore in ReadOnly mode should never modify persistence [OAK-8251] - RDBBlobStore instantiated from ReadOnly DocumentNodeStore should never modify persistence [OAK-8257] - RDBDocumentStore: improve trace logging of batch operations [OAK-8273] - RDBDocumentStore: createOrUpdate with less than 3 ops suboptimal [OAK-8281] - Improve coverage for org.apache.jackrabbit.oak.security.authorization.composite [OAK-8307] - RDBDocumentStore: add DEBUG logging when fetching index metadata fails [OAK-8311] - RDBDocumentStore: allow to turn off RDB-specific MissingLastRevSeeker [OAK-8332] - update Tomcat JDBC dependency to 8.5.41 [OAK-8337] - RDBDocumentStore: refactor index dumping code [OAK-8338] - RDBDocumentStoreJDBC: fix theoretically possible NPE in perflogging code [OAK-8340] - Document use of oak-run for RDB [OAK-8346] - RDBDocumentStore*: fix several potential but improbable NPEs [OAK-8349] - RDBDocumentStore*: "reset clusterId tool" in oak-run [OAK-8368] - RDBDocumentNodeStoreBuilder: refactor setRDBConnection for consistency [OAK-8371] - Stop using deprecated DocumentMK.Builder in RDB tests [OAK-8375] - DocumentNodeStoreBuilder should not instantiate BlobStore instance before "build()" [OAK-8378] - rdb/oak-run: update usage and documentation for garbage command Bug [OAK-8139] - DocumentDiscoveryLiteService hasBacklog silencing must support maven version format [OAK-8149] - java 12 javadoc fails with "unknown tag" for OSGi version annotations in package-info [OAK-8166] - Index definition with orderable property definitions with and without functions breaks index [OAK-8187] - Respect service ranking with AuthorizableNodeName, AuthorizableActionProvider and RestrictionProvider [OAK-8199] - DocumentStore in ReadOnly mode should never modify persistence [OAK-8207] - Read-only DocumentNodeStore tries to create root document [OAK-8212] - ImporterImpl.importProperties prone to NPE [OAK-8214] - RDBDocumentStore may not inherit ReadOnly flag from DocumentNodeStore [OAK-8218] - ReadOnlyNodeTypeManager.isNodeType prone to NPE [OAK-8219] - Incorrect parent POM version in oak-doc and oak-doc-railroad-macro [OAK-8220] - CommitRootUpdateTest creates malformed value [OAK-8223] - javadoc-plugin fails with java11 [OAK-8229] - LoginModuleImpl.commit will end in NPE if credentials are null [OAK-8231] - Unreachable code in LoginModuleImpl.getLoginId [OAK-8232] - Node#setPrimaryType(String) does not create child nodes defined as autoCreated [OAK-8246] - Test failure: NodeSetPrimaryTypeTest.testSetPrimaryType() [OAK-8258] - Active deletion can delete blobs despite indexing cycle deleting them failed [OAK-8261] - Indexing lane failing but the index is not marked corrupt [OAK-8266] - Redundant check for existing tree in CompiledPermissionImpl.buildVersionDelegatee [OAK-8272] - Orphaned branch commit entries after restart [OAK-8276] - OR-CompositeTreePermission.grantsPermission should loop over aggregates of supported permissions [OAK-8278] - RDBDataSourceFactory.CloseableDataSource doesn't implement java.sql.Wrapper correctly [OAK-8290] - Update org.apache.felix.framework for jdk13 [OAK-8293] - PrincipalProviderImpl.findPrincipals my return null values in result iterator [OAK-8300] - Revision GC may remove previous document without removing reference [OAK-8306] - Empty PrincipalProvider cache breaks membership collection [OAK-8309] - SLOW_QUERY_COUNT don't get updated for each slow query. [OAK-8314] - BlobIds created with direct uploads lack length suffix [OAK-8324] - Missing NotNull annotation with AuthenticationConfiguration and LoginModuleStatsCollector [OAK-8369] - Misplace checkNotNull in CacheValidator [OAK-8372] - DeclaredMembershipPredicate contains redundant lookup of groupTree [OAK-8382] - release doesn't work any more for oak-run New Feature [OAK-8146] - oak-run support for inspecting clusterNodeInfo [OAK-8243] - Expose the number of SNFEs as metric [OAK-8294] - Make it possible to mark a (customer) query as bad and skip it [OAK-8358] - oak-run check should have an option for specifying memory mapping Improvement [OAK-7065] - Remove orphan file from local directory in case indexing fails [OAK-7691] - Remove deprecated ValueFactoryImpl methods [OAK-8141] - Replace String path with custom data type [OAK-8185] - Improve CompositeNodeStore fixture [OAK-8209] - Improve Node.isNodeType(String) performance [OAK-8215] - Use CacheLIRS as default [OAK-8216] - Consistently add nullability annotations with spi.nodetype package and implementation [OAK-8217] - Remove unused field DocumentNodeStoreBuilder#FAST_DIFF [OAK-8228] - Optimize PathUtils.dropIndexFromName(String) [OAK-8234] - Reduce object allocation in PermissionProviderImpl for admin sessions [OAK-8241] - Add benchmark for transient Node.setProperty() [OAK-8247] - Add non-admin mode for Node.isNodeType() benchmark [OAK-8249] - NodeImpl#isNodeType could load mixin info lazily [OAK-8256] - PrincipalManagerImplTest uses Guava beta methods [OAK-8263] - Simplify PermissionEntry.compareTo [OAK-8265] - Add nullable/notnull annotations to org.apache.jackrabbit.oak.security.authorization.permission.* [OAK-8269] - Improve readability of CompositePermissionProvider and CompositeTreePermission [OAK-8270] - Add variant of PermissionUtil.getReadOnlyTree that never returns null [OAK-8283] - Make LazyValue implement Supplier [OAK-8284] - Improvements to EntryPredicate [OAK-8301] - Ensure travis-ci uses trusty image [OAK-8304] - VersionablePathHook: Diff.setVersionablePath never results in CommitFailedException [OAK-8305] - Don't log a warning for queries that use "option(traversal fail)" [OAK-8308] - Unused Object methods in PermissionStoreEditor.AcEntry [OAK-8310] - Potentially misleading conflict exception message [OAK-8315] - Missing nullability annotations in package o.a.j.oak.security.authentication.token and o.a.j.oak.spi.security.authentication.token [OAK-8316] - Drop userId field in TokenLoginModule [OAK-8320] - Improve tests for o.a.j.oak.security.authentication.token package [OAK-8323] - Refactor redundant checks for null in TokenValidator [OAK-8354] - Fix/Add nullability annotations with o.a.j.oak.security.user package [OAK-8355] - AuthorizableImpl.isEveryone should not throw RepositoryException [OAK-8360] - UserAuthentication.authenticate: improve readability [OAK-8361] - Improve tests for o.a.j.oak.security.user package [OAK-8362] - UserImporter: redundant check for null principals [OAK-8363] - Remove obsolete comment [OAK-8365] - UserManagerImpl: unreacheable code when retrieving user/group from ID and tree [OAK-8370] - Simplify o.a.j.oak.security.user.Utils.getOrAddTree [OAK-8373] - UserPrincipalProvider: redundant test for null in ResultRowToPrincipal, EveryonePredicate [OAK-8379] - Improve tests for o.a.j.oak.security.authorization Test [OAK-8353] - Additional test for OAK-8012 Task [OAK-7902] - Update osgi-mock to 2.3.10 [OAK-8197] - Update Oak 1.10 and trunk to Jackrabbit 2.18.1 [OAK-8208] - oak-run/rdb: add --rdbtableprefix option [OAK-8235] - Upgrade Solr to version 6.6.6 [OAK-8240] - Improve test coverage for org.apache.jackrabbit.oak.security.authorization.permission [OAK-8248] - Update Oak trunk and 1.10 to Jackrabbit 2.18.2 [OAK-8277] - Run tests on travis-ci.org on MongoDB 4.0.x [OAK-8286] - Update jetbrains nullability annotations to 17.0.0 [OAK-8295] - Update version of jackrabbit dependency [OAK-8296] - DocumentNodeStoreBranchesTest uses javax.annotation.Nonnull [OAK-8312] - MissingLastRevSeeker and NodeDocumentSweeper: improve progress logging [OAK-8317] - Move the version-related migration tools to the oak-core [OAK-8318] - Allow to close the SegmentStoreMigrator [OAK-8329] - update docker-junit-rule dependency [OAK-8331] - Update Tika dependency to 1.21 [OAK-8334] - Update Jackson dependency to 2.9.9 [OAK-8335] - get rid of junit deprecation warnings [OAK-8341] - Include tomcat-jdbc/juli in oak-run [OAK-8345] - oak-run: cleanup command list and documentation [OAK-8348] - Update surefire/failsafe dependencies to 2.22.2 [OAK-8350] - Update animal-sniffer dependency to 1.18 [OAK-8356] - Support append mode in the SegmentStoreMigrator [OAK-8357] - Support the truncate operation for the GCJournalFile [OAK-8376] - update commons-codec dependency to 1.12 [OAK-8377] - Jacoco plugin: add PACKAGE based rules for security code Documentation [OAK-8322] - Create documentation for Oakathons 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/