Release Notes -- Apache Jackrabbit Oak -- Version 1.18.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.18.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.18.0 --------------------- Technical task [OAK-8524] - [Direct Binary Access] Add CDN Support to AzureDataStore [OAK-8568] - RDB*Store: update mysql jdbc driver reference to 8.0.17 [OAK-8574] - Minimize network calls required when completing direct upload [OAK-8575] - Minimize network calls required when calling getRecord() Bug [OAK-8298] - [Direct Binary Access] Blobs that are directly uploaded are not tracked by BlobIdTracker [OAK-8328] - Bug in index definition can block indexing / cause indexing in a loop [OAK-8518] - PrincipalPolicyImporter: handle rep:effectivePath generated by xml-export for repository level [OAK-8520] - [Direct Binary Access] Avoid overwriting existing binaries via direct binary upload [OAK-8528] - The Azure Journal implementation doesn't split after exceeding JOURNAL_LINE_LIMIT [OAK-8531] - Reading Azure Journal File while it's modified fails [OAK-8533] - Rat plugin failure in oak-it-osgi [OAK-8538] - Incomplete recovery on long running merge with branch commits [OAK-8542] - Test failure: ConcurrentCopyOnReadDirectoryTest.concurrentPrefetchWithTimeout [OAK-8554] - IndexCopier#waitForCopyCompletion doesn't reset interrupted flag after catching InterruptedException [OAK-8565] - Using a lazy blob listing can cause Azure timeout [OAK-8566] - Empty segment archives breaks the Azure Persistence [OAK-8590] - Direct Binary Access doc links to jackrabbit-api are broken [OAK-8591] - Conflict exception on commit [OAK-8592] - Incorrect annotation on LoggingDocumentStoreWrapper.createOrUpdate() [OAK-8597] - lc command is unable to construct OakDirectory [OAK-8599] - [Direct Binary Access] Initiate upload should return null if feature is disabled [OAK-8624] - oak-run: tests leak mapd temp files [OAK-8625] - oak-upgrade leaks empty test folders [OAK-8627] - Avoid late-arriving lastRev update from crashed instance [OAK-8629] - Node bundling exposes hidden properties [OAK-8632] - rep:CugPolicy nodes containing duplicate principal names [OAK-8643] - PrincipalProvider.getMembershipPrincipals should not delegate to deprecated method Story [OAK-8640] - Allow to only copy last journal entry in the SegmentStoreMigrator Improvement [OAK-3895] - Expose jmx to invalidate cache entries [OAK-4508] - LoggingDocumentStore: better support for multiple instances [OAK-7457] - "Covariant return type change detected" warnings with java10 [OAK-7917] - Composite node store: technical debt for create index / reindex [OAK-8245] - Add column for explained "statement" to "explain" Query result, next to 'plan' column. [OAK-8398] - Add nullable/notnull annotations for jackrabbit security API extensions [OAK-8507] - system view import: add test coverage for prefix conflicts [OAK-8510] - FilterImpl.isValidPrincipal: add verification to spot moved principal [OAK-8513] - Concurrent index access via CopyOnRead directory can lead to reading directly off of remote [OAK-8514] - CoR should log a warn when opening remote index file when prefetch is enabled [OAK-8521] - Add shutdown hook for oak-run commands [OAK-8526] - IndexDefinitionBuilder should support setting up index tags [OAK-8529] - Deregister MBeans on SecurityProviderRegistration component deactivation [OAK-8530] - Ensure MBean are deregistered if the repository fails to start [OAK-8536] - Update JavaDoc for completeBinaryUpload() explaining idempotency [OAK-8540] - Effective policies should implememt PrincipalAccessControlList [OAK-8541] - AbstractRestrictionProvider.createRestriction : Include restriction name in error message [OAK-8555] - Move ByteBuffer wrapper to oak-commons project [OAK-8556] - CugImporter.handleProperty: unreachable default handling for importBehavior [OAK-8557] - CugPolicyImpl.isValidPrincipal contains unreachable default option [OAK-8558] - Simplify path handling in TopLevelPaths [OAK-8562] - Improve cug tests [OAK-8564] - Add metric for MongoDB total and used disk space [OAK-8579] - Composite Node Store: Allow creating an index in the read-only repo first [OAK-8580] - Stack trace logging for all binary downloading of cloud blob stores [OAK-8585] - Improve exception message on conflict [OAK-8589] - NPE in IndexDefintionBuilder with existing property rule without "name" property [OAK-8600] - [Direct Binary Access] Log exceptions at debug level for expected exceptions [OAK-8601] - [Direct Binary Access] Work around integration test failures due to Azure SDK bug [OAK-8603] - Composite Node Store + Counter Index: allow indexing from scratch / reindex [OAK-8604] - Keep the last journal entry in metadata [OAK-8634] - Decouple CommitDiff from DocumentNodeStore [OAK-8641] - log uses of API methods to be removed as part of OAK-7358 Test [OAK-8532] - Osgi based test to verify tika setup is working [OAK-8535] - oak-it-osgi fails with encrypted credentials in settings.xml Task [OAK-8400] - adjust baseline comparison version for oak-jackrabbit-api after release of 1.16.0 [OAK-8497] - Remove oak-search-elastic declaration to skip baseline plugin [OAK-8499] - oak-elastic-search: set baseline version after release of Oak 1.16.0 [OAK-8515] - Make the Azure Persistence timeouts configurable [OAK-8549] - Update Tika dependency to 1.22 [OAK-8550] - Update commons-codec dependency to 1.13 [OAK-8560] - Update jackson-databind dependency to 2.9.9.3 [OAK-8583] - getNodeByIdentifier may fail with RuntimeException [OAK-8586] - Update Oak trunk and 1.10 to Jackrabbit 2.18.3 [OAK-8587] - Document feature vector similarity search [OAK-8598] - Update httpcore dependency to 4.4.12 [OAK-8608] - Move the SplitPersistence to the oak-segment-tar SPI [OAK-8609] - Make the MemoryNodeBuilder#isRoot() public [OAK-8610] - Pass the full blob name to the IOMonitor for Azure [OAK-8611] - Export the oak-segment-azure packages [OAK-8612] - Make the Azure Data Store compatible with Guava 15 and 26 [OAK-8614] - Update httpclient/mime dependencies to 4.5.10 [OAK-8616] - Leverage oak-search utils in oak-search-elastic where possible [OAK-8617] - No packages should be exported by oak-search-elastic [OAK-8619] - Enable text extraction timeout recovery from disk [OAK-8622] - Remove the version of the maven-resources-plugin from the fast profile [OAK-8635] - Use LMSEstimator for Oak ES SizeEstimator [OAK-8637] - Add convergence testing coverage for LMSEstimator [OAK-8638] - Revert java 12 specific javadoc workaround Sub-task [OAK-8544] - Nullable/Notnull Annotations for Authentication API [OAK-8545] - Nullable/Notnull Annotations for Authorization API [OAK-8546] - Nullable/Notnull Annotations for User Management API [OAK-8547] - Nullable/Notnull Annotations for Principal Management API [OAK-8552] - Minimize network calls required when creating a direct download URI [OAK-8578] - Introduce API to check whether blob inlined in Id Documentation [OAK-8543] - Javadoc of IndexCopier#waitForCopyCompletion refers to boolean return 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/