Release Notes -- Apache Jackrabbit Oak -- Version 2.4.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 2.4.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 2.4.0
--------------------

** Sub-task
    * [OAK-12248] - Don't query an index if it is known to be empty
    * [OAK-12250] - update and consolidate hamcrest dependencies

** Technical task
    * [OAK-12238] - oak-upgrade: do not override Jackrabbit's Lucene version (for now)
    * [OAK-12264] - oak-run: sync commons-csv dependency with other modules
    * [OAK-12274] - shaded-guava: exclude errorprone dependency
    * [OAK-12284] - oak-http: extract Authorization Field parsing and add test coverage

** Bug
    * [OAK-12125] - Async indexing fails on invalid index definition: missing propertyNames
    * [OAK-12244] - [oak-search] Index not updated when node gains or loses a mixin type at runtime
    * [OAK-12257] - CI: Commit-Check broken
    * [OAK-12259] - oak-http: OakServlet mis-parses HTTP Basic credentials - passwords containing a colon are silently truncated and malformed headers cause an HTTP 500
    * [OAK-12275] - NameValidator: improve logging for unmapped prefixes
    * [OAK-12282] - PersistentDisk Cache is unbound, with many JCR reads on a empty instance can cause OOM
    * [OAK-12303] - Update vulnerable mina-core library

** Improvement
    * [OAK-12227] - Exclude Tika from oak-run that is imported from Jackrabbit
    * [OAK-12260] - TokenLoginModule cannot handle many tokens in a performant way
    * [OAK-12262] - Simplified index mgmt: support indexes without version number

** Task
    * [OAK-10578] - ExternalLoginModule: reduce the number  of access to OSGI registry
    * [OAK-12234] - Elastic async response processing should use a separate thread pool
    * [OAK-12237] - bump netty versions to 4.1.135.Final
    * [OAK-12240] - pojosr: remove jackrabbit-data dependency
    * [OAK-12241] - run S3 integration tests with S3Mock emulator in CI
    * [OAK-12242] - Remove FT_EMBEDDED_VERIFICATION_OAK-10633 and remove its related code path
    * [OAK-12243] - AGENTS.md: clarify which packages are OSGi-exported and baseline-checked
    * [OAK-12245] - update Tomcat dependency to 9.0.118
    * [OAK-12252] - Remove FT_FULL_GC_OAK-10199 and remove its related code path
    * [OAK-12254] - Upgrade mockito-core to 5.23.0
    * [OAK-12256] - document Feature Toggles
    * [OAK-12258] - elastic.md: add documentation for isFlattened
    * [OAK-12265] - remove json-simple dependency in oak-pojosr
    * [OAK-12267] - DocumentNodeStoreIT fails with lease expiry at strict lease-check boundary
    * [OAK-12272] - Allow 120-character commit subjects in Commit Check
    * [OAK-12273] - Stabilize Javadoc external links in CI
    * [OAK-12283] - bump aws sdk to 2.35.11
    * [OAK-12285] - S3 KMS is skipping presigned URL tests when sseCustomerKey is configured
    * [OAK-12287] - Update to Apache Parent POM to version 39
    * [OAK-12288] - disable blobId tracker for SegmentNodeStore by default
    * [OAK-12289] - disable blobId tracker for DocumentNodeStore by default
    * [OAK-12293] - Update commons-io dependency to 2.21.0
    * [OAK-12294] - Update commons-codec dependency to 1.20.0
    * [OAK-12296] - bump testcontainers to v2.0.3

** Documentation
    * [OAK-12235] - fix Java version information in README

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/

