Release Notes -- Apache Jackrabbit Oak -- Version 1.66.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.66.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.

While Oak 1.66.0 compiles and tests successfully on Java 17, Javadocs
generation fails on Java 17 (but works as expected on Java 11).

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.66.0
---------------------

Technical task

    [OAK-6756] - Convert oak-auth-external to OSGi R7 annotations
    [OAK-6761] - Convert oak-blob-plugins to OSGi R7 annotations
    [OAK-10691] - remove use of Guava Charsets class
    [OAK-10852] - oak-store-document: disable unreliable tests in BranchCommitGCTest
    [OAK-10873] - store-spi: remove use of Guava CharMatcher in test case

Bug

    [OAK-8848] - Impossible to replace a mix:versionable by a different mix:versionable
    [OAK-9825] - Flaky unit tests: DocumentNodeStoreSweepIT
    [OAK-10451] - UserPrincipalProvider may cause many conflicts when under load
    [OAK-10621] - o.a.j.o.namepath.JcrPathParser does not accept indexed expanded names
    [OAK-10624] - o.a.j.o.namepath.JcrPathParser does not accept some valid local names containing '{' or '}'
    [OAK-10826] - Misleading warning about missing checkpoint
    [OAK-10833] - Consistency check reports success for repository with SNFE in checkpoints
    [OAK-10838] - oak-lucene: maven install fails in oak-lucene due to baseline check
    [OAK-10853] - VersionGarbageCollectorIT.testDeletedPropsAndUnmergedBCWithCollision failure
    [OAK-10856] - oak-run: TextPopulatorTest uses transitive dependency com.beust.jcommander.internal.Maps
    [OAK-10903] - Indexing job: when parallel download is enabled, the dump may miss documents updated during the download
    [OAK-10928] - ElasticIndexPlannerCommonTest.indexedButZeroWeightProps is flaky

Story

    [OAK-10807] - Add oak-run diff to Azure repositories

Improvement

    [OAK-9455] - Improve oak-run check to allow fast remote consistency checks
    [OAK-10675] - Azure Service principal support in oak-blob-cloud-azure
    [OAK-10780] - Access Token refresh in oak-segment-azure
    [OAK-10781] - Access Token refresh in oak-blob-cloud-azure
    [OAK-10789] - Indexing job: log paths used for inclusing/exclusion for Mongo regex filters in job summary
    [OAK-10811] - oak-search-elastic: reduce contention in IndexTracker
    [OAK-10823] - Support Oak-mongo.js remove functions with mongosh shell
    [OAK-10825] - Add logs for indexing job failure
    [OAK-10841] - Elastic should log the root cause when a query fails
    [OAK-10851] - Log START/END/FAIL messages of indexing job phases inside the same package
    [OAK-10854] - oak.findOne doesn't find long path documents
    [OAK-10866] - Avoid intermediate object creation in JsopBuilder
    [OAK-10867] - Service Principal Support in oak-run-commons
    [OAK-10868] - Use a constant value to represent empty empty StringValue instances
    [OAK-10872] - Optimize PathUtils.concat(String, String) to use string concatenation instead of StringBuilder
    [OAK-10874] - Force Update a failing indexing lane using a jmx method
    [OAK-10879] - indexing-job: in the index report, list phase timings in chronological order and not alphabetic order
    [OAK-10889] - indexing job: do not remove field with size estimation from NodeDocuments downloaded from Mongo
    [OAK-10894] - DocumentNodeStore: expose readNode as package private
    [OAK-10897] - Delete unused class: DocumentStoreSplitter
    [OAK-10901] - Indexing job: bypass the DocumentNodeState cache when resolving paths downloaded from Mongo
    [OAK-10920] - indexing job: simplify termination management of Mongo download thread

Task

    [OAK-10690] - Update docs and test config for recommended MongoDB version (5.0)
    [OAK-10742] - Introduce include/exclude lists for detailedGC
    [OAK-10829] - examples: update build-helper-maven-plugin to 3.6.0
    [OAK-10830] - Upgrade jackson-databind dependency to 2.17.1
    [OAK-10837] - Add documentation for UT/IT fixtures
    [OAK-10843] - Flaky fullgc tests
    [OAK-10847] - query-spi: bump log level to ERROR for use of deprecated slf4j.event.Level method
    [OAK-10857] - Improve oak-run to support unreferenced checkpoints removal for Azure repositories
    [OAK-10860] - oak-lucene: update gson test dependency and stop using deprecated APIs
    [OAK-10861] - avoid use of Tika WriteOutHandler convenience method removed in Tika 2.x
    [OAK-10870] - New oak-mongo.js methods for sizes of properties, counts by clusterId and unmerged branch commits
    [OAK-10882] - move Oak related notification from dev@jackrabbit.apache.org to oak-dev@jackrabbit.apache.org
    [OAK-10883] - document mk: disable flaky test VersionGarbageCollectorIT.testBundledPropUnmergedBCGC for mode ORPHANS_EMPTYPROPS_UNMERGED_BC
    [OAK-10886] - Update Oak trunk to Jackrabbit 2.22.0
    [OAK-10887] - webapp: remove RMI support
    [OAK-10890] - Logging for constraint violations (UUID already exists)
    [OAK-10891] - document mk: disable flaky test BranchCommitGCTest.testDeletedPropsAndUnmergedBCfor mode ORPHANS_EMPTYPROPS_KEEP_ONE_ALL_PROPS
    [OAK-10892] - Update (shaded) Guava to 33.2.1
    [OAK-10893] - standalone: remove RMI dependency
    [OAK-10896] - Add osgi config for removal of deleted properties and orphaned nodes
    [OAK-10898] - Allow AzureCheck and AzureCompact to be built directly with a CloudBlobDirectory
    [OAK-10912] - Make include/exclude paths for fullgc configurable via OSGI Config
    [OAK-10914] - fullGC exclude paths should use _modified_id index
    [OAK-10915] - oak-run FullGC revisions command runs partially against a read-only repository
    [OAK-10916] - Provide support for include/exclude paths for fullGC in oak-run
    [OAK-10917] - Make persistent cache related arguments optional for Azure compaction
    [OAK-10918] - Embed and log an explain for the fullgc mongo query
    [OAK-10919] - Fix DocumentNodeStoreConfigTest unit case
    [OAK-10923] - oak-benchmarks/oak-it-osgi: update commons-compress dependency to 1.26.2
    [OAK-10929] - Update commons-codec dependency to 1.17.0
    [OAK-10931] - Update commons-io dependency to 2.16.1
    [OAK-10932] - lucene: update commons-exec test dependency to 1.4.0
    [OAK-10933] - Avoid log about calculating fullGCTimestamp when fullGC is disabled
    [OAK-10934] - segment-remote: update commons-pool2 dependency to 2.12.0

Documentation

    [OAK-10881] - Expand oak/docs/participating with some more guidelines


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/

