Release Notes -- Apache Jackrabbit Oak -- Version 1.76.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.76.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.76.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.76.0
---------------------

Technical task

    [OAK-11357] - Extract StreamUtils from CollectionUtils
    [OAK-11380] - Remove usage of Guava Files.asByteSource
    [OAK-11384] - Remove usage of Guava Maps
    [OAK-11385] - Remove usage of Guava Files.asByteSink
    [OAK-11387] - Extract ListUtils from CollectionUtils
    [OAK-11388] - Extract MapUtils from CollectionUtils
    [OAK-11395] - Extract SetUtils from CollectionUtils
    [OAK-11396] - Remove usage of Guava Preconditions.checkElementIndex
    [OAK-11398] - Remove usage of Guava Preconditions.checkPositionIndexes
    [OAK-11399] - Remove usage of Guava io.BaseEncoding
    [OAK-11400] - Remove usage of Guava ArrayListMultimap
    [OAK-11402] - Remove usage of Guava Strings.isNullOrEmpty
    [OAK-11406] - Remove usage of Guava io.ByteSource
    [OAK-11407] - Remove usage of Guava Strings.EMPTY_STRING
    [OAK-11408] - Extract IteratorUtils from CollectionUtils
    [OAK-11411] - Remove usage of Guava Strings.emptyToNull
    [OAK-11413] - Extract DequeUtils from CollectionUtils
    [OAK-11414] - make collectionutils package private
    [OAK-11417] - Remove usage of Guava ByteStreams
    [OAK-11420] - Remove usage of Guava Files.move()
    [OAK-11422] - Remove usage of Guava Strings
    [OAK-11424] - Remove usage of Guava ObjectArrays.concat
    [OAK-11427] - Remove usage of Guava Iterables.isEmpty
    [OAK-11428] - Remove usage of Guava Files.copy()
    [OAK-11430] - Remove usage of Guava Iterables.all
    [OAK-11431] - Remove usage of Guava Files.createTempDir()
    [OAK-11432] - Remove usage of Guava Iterables.size
    [OAK-11440] - Remove usage of Guava Files.touch()
    [OAK-11441] - Remove usage of Guava Iterables.addAll
    [OAK-11442] - Remove usage of Guava Iterables.contains
    [OAK-11445] - Remove usage of Guava Files.toString()
    [OAK-11446] - Remove usage of Guava Files.equal()
    [OAK-11448] - Remove usage of Guava Files.readLines()
    [OAK-11449] - Remove usage of Guava Iterables.concat() [test cases only]

Bug

    [OAK-11287] - Cleanup May Delete Referenced Segments
    [OAK-11401] - Increase Log levels for FullGC deletion logs to INFO
    [OAK-11409] - Membership cache fails to update changes on cached properties
    [OAK-11423] - Jdbc driver dependencies need to have scope compile in order to be included in oak-run.
    [OAK-11425] - MarkSweepGarbageColllector.iterateNodeTree() passes open file to FileIOUtils.sort()
    [OAK-11433] - Create separate config variable for fullGC max revision age millis and apply it in VersionGarbageCollector
    [OAK-11434] - oak-run: DataStoreCheckCommand tries to move open files
    [OAK-11439] - Provide support to set remaining full gc modes
    [OAK-11450] - GlobalNameMapper.isExpandedName() does sometimes return incorrect results
    [OAK-11453] - Provide support to set fullGC max revision age millis from oak-run

Improvement

    [OAK-9500] - Automatically deploy snapshot artifacts to Maven repo through GHA
    [OAK-11312] - Refactor CollectionUtils
    [OAK-11364] - For oak-jcr tests, support automatic starting/stopping of docker containers used as RDB servers for RDBDocumentStore
    [OAK-11365] - Incremental index store: ability to set a timeout
    [OAK-11383] - Improve performance of DefaultStatisticsProvider
    [OAK-11389] - Disable Checkstyle
    [OAK-11416] - Docker support for oak-jcr tests with RdbDocumentStore needs a way to specify environment variables for the container
    [OAK-11418] - RdbConnectionUtils should use SystemPropertySupplier
    [OAK-11421] - Update MySql JDBC driver version to com.mysql:mysql-connector-j:9.0.1 in profile rdb-mysql

Task

    [OAK-11027] - flaky IncrementalStoreTest
    [OAK-11264] - CacheWarming tests seems flaky
    [OAK-11286] - blob-cloud, segment: update netty version to 4.1.115
    [OAK-11394] - Avoid creation of iterator object when creating a CompositeEditor
    [OAK-11412] - indexing job: delay creation of index writers backend until the start of the indexing phase
    [OAK-11415] - TypeEditor: constraint exception for node type violations should contain that node's effective type
    [OAK-11419] - oak-store-document - persistent cache: remove unused UDP/TCP broadcasters
    [OAK-11470] - Undo changes to remove usage of Guava ImmutableSet


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/

