Release Notes -- Apache Jackrabbit Oak -- Version 1.50.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.50.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.50.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.50.0
---------------------

Technical task

    [OAK-10007] - update Guava related deprecations with 'since' and 'forRemoval' properties
    [OAK-10084] - oak-commons: bump up logging for deprecated Guava based APIs to ERROR
    [OAK-10085] - oak-core-spi: bump up logging for deprecated Guava based APIs to ERROR
    [OAK-10109] - deprecate FileIOUtils.TransformingComparator with Guava Function parameter

Bug

    [OAK-9827] - Flaky test: SplitPersistenceBlobTest
    [OAK-9938] - oak-run GenerateVersionInconsistencyReport exception
    [OAK-10081] - oak-run tests left over "blobs" (next to "src")
    [OAK-10082] - Group.getMembers() needs to resolve inherited members of dynamic groups
    [OAK-10090] - update antrun version for reactor pom
    [OAK-10092] - doc-railroad project fails on Java 11; plexus-component-metadata needs update
    [OAK-10095] - NullPointerException in FieldFactory.dateToLong
    [OAK-10112] - avoid use of Guava Iterators.emptyIterator
    [OAK-10117] - oak-run console does not start up - CommandNameCompleter construction fails
    [OAK-10120] - SessionImpl.hasCapability is prone to NPE
    [OAK-10136] - DynamicBoostLite scores matches on tags equally with matches on other fields
    [OAK-10137] - Static variable referenced from a non-static context

New Feature

    [OAK-10001] - Bump up minimal Java version to 11

Improvement

    [OAK-10049] - Enable access to the secondary Azure blobstore service endpoint in Oak blobstore
    [OAK-10087] - TypeEditor: constraint exception for invalid child node should contain that node's effective type
    [OAK-10099] - DynamicSyncContext: skip warning for everyone group
    [OAK-10102] - Disable lazy index download by default
    [OAK-10114] - Node diff with many changes uses excessive memory
    [OAK-10119] - Fix AzureJournalFileTest failures on slow Jenkins
    [OAK-10121] - Extend SessionImpl.hasCapability to cover access control write operations
    [OAK-10131] - ExternalGroupPrincipalProvider should return ItemBasedPrincipals if dynamic group option is enabled
    [OAK-10132] - Duplication in XPathConditionVisitor and ImpersonationImpl
    [OAK-10145] - Rate limit the log messages for IndexUpdate

Task

    [OAK-10086] - oak-core: bump up logging for deprecated Guava based APIs to ERROR
    [OAK-10098] - Oak Run - PurgeOldIndexVersion - Add support to auto purge ES indexes and delete remote ES indexes as well
    [OAK-10101] - Improve exception message when retrieving String properties
    [OAK-10103] - oak-store-document: remove deprecated SystemPropertySupplier
    [OAK-10104] - Extend version consistency check
    [OAK-10105] - Guava deprecations: set minimal logging level to 'info'
    [OAK-10110] - add test coverage for FileIOUtils.TransformingComparator
    [OAK-10111] - oak-search-elastic: add support for custom analyzers
    [OAK-10113] - Lower error to warn in findUncachedWithRetry, to clarify the severity
    [OAK-10118] - Inconsistency in 'order by' handling of missing field between Lucene / Elastic
    [OAK-10122] - it-osgi: update commons-fileupload to 1.5
    [OAK-10123] - solr-core: update commons-fileupload to 1.5
    [OAK-10124] - upgrade httpclient/mime to 4.5.14
    [OAK-10125] - upgrade httpcore to 4.4.16
    [OAK-10126] - Extend consistency check to cover jcr:predecessors and jcr:successors
    [OAK-10128] - Disable coverage check for oak-jcr integration tests
    [OAK-10129] - Disable Sonar checks on PRs from forks - take 2
    [OAK-10133] - Fix AzureJournalFileTest failing on slow Jenkins
    [OAK-10134] - Update Oak GitHub actions
    [OAK-10138] - Update Oak trunk and Oak 1.22 to Jackrabbit 2.20.9
    [OAK-10144] - allow Javadoc errors on oak-run(-*)

Documentation

    [OAK-10069] - Best practices on how to setup access control external identities
    [OAK-10107] - update javdoc of class org.apache.jackrabbit.oak.plugins.nodetype.write.ReadWriteNodeTypeManager


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/

