Release Notes -- Apache Jackrabbit Oak -- Version 1.88.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.88.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.88.0
---------------------

Technical task

    [OAK-11911] - expose DirectExecutor in Oak from ExecutorUtils
    [OAK-11912] - Create a new DirectExecutorService
    [OAK-11913] - Create a new ForwardingExecutorService
    [OAK-11914] - Remove usage of Guava's HashBasedTable
    [OAK-11926] - Remove usage of Guava's Functions
    [OAK-11927] - Remove usage of Guava's Queues.newLinkedBlockingQueue
    [OAK-11928] - Remove usage of Guava's Queues.newSynchronousQueue
    [OAK-11972] - eliminate uses of org.apache.jackrabbit.core.data.RandomInputStream
    [OAK-11974] - remove usage of jackrabbit-data - NamedThreadFactory

Bug

    [OAK-11848] - oak-standalone does not start anymore
    [OAK-11895] - CheckpointCompactor writes to "after" instead of "onto" NodeState
    [OAK-11899] - Empty tokenLength property values cause token not being generated
    [OAK-11902] - TarWriterTest unstable
    [OAK-11931] - Wrong default value for PREV_NO_PROP_CACHE
    [OAK-11955] - oak-examples: The metrics page of the standalone app doesn't work
    [OAK-11959] - oak-examples: The webapp doesn't work at all
    [OAK-11965] - Persist new base states as complete during compaction
    [OAK-11987] - org.apache.jackrabbit.oak.segment.azure.tool.SegmentStoreMigrator.migrateBinaryRef is missing a null check

Epic

    [OAK-11904] - Oak should compile & test on Java 25

Story

    [OAK-11936] - Allow updating the inference config via JMX
    [OAK-11949] - Union queries should still order by score

Improvement

    [OAK-11898] - ElasticSecureFacets should be decoupled from the AsyncIterator
    [OAK-11929] - NPE in Lucene's implementation of secure facets
    [OAK-11930] - JCR observation events should not serialize the propertyState for binary properties
    [OAK-11934] - segment preloading for PersistentCache
    [OAK-11969] - NodeDelegate: remove double check for existence of child tree
    [OAK-11977] - Tree store: BufferOverflowException
    [OAK-11980] - improve parallelization of I/O during segment-azure initialization
    [OAK-11982] - Remove initialization of constant value from NodeImpl c'tor
    [OAK-11984] - Support UserId Change for External Users
    [OAK-11997] - Log slow Mongo queries in DocumentNodeStore

Task

    [OAK-11892] - Expose hidden mount for elasticsearch indexes in IndexStats
    [OAK-11935] - Upgrade oak-blob-cloud aws java sdk from 1.x to 2.x
    [OAK-11937] - Upgrade mockito-core to 5.20.0
    [OAK-11938] - Upgrade assertj-core to 3.27.5
    [OAK-11939] - Upgrade groovy version to 3.0.25
    [OAK-11940] - Upgrade org.jetbrains.annotations to 26.0.2-1
    [OAK-11942] - jdk 25 is unhappy with annotations on shaded types not directly referenced in the POM
    [OAK-11943] - Upgrade netty version to 4.1.127.Final
    [OAK-11944] - Upgrade aws-java-sdk-s3 version to 1.12.791
    [OAK-11957] - oak-benchmarks/oak-it-osgi: update commons-compress dependency to 1.28.0
    [OAK-11962] - Update commons-lang3 dependency to 3.19.0
    [OAK-11964] - refactor parallel compaction inheritance
    [OAK-11968] - SystemPropertySupplier should not declare IllegalArgumentExceptions
    [OAK-11970] - Update MongoDockerRule to use Mongo 8 docker image
    [OAK-11971] - Update MongodProcess to use Mongo 8 process
    [OAK-11981] - blob-plugins - remove use of TransientFileFactory
    [OAK-11983] - benchmarks: remove jackrabbit-core dependency
    [OAK-11985] - Add MongoServerUnavailableException to transient error list
    [OAK-11994] - [oak-run] remove dependency to joda-time
    [OAK-11996] - Expand oak/docs/participating wrt to test coverage and Sonar
    [OAK-11998] - Bump elasticsearch version to 8.19.5 / lucene 9.12.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/

