Release Notes -- Apache Jackrabbit Oak -- Version 1.74.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.74.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.74.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.74.0
---------------------

Sub-task

    [OAK-11247] - Migrate oak-pojosr groovy files to Java

Technical task

    [OAK-6766] - Convert oak-lucene to OSGi R7 annotations
    [OAK-6767] - Remove felix SCR annotation support from parent pom
    [OAK-6772] - Convert oak-solr-core to OSGi R7 annotations
    [OAK-11105] - Remove usage of Guava ImmutableMap.of() - zero/one argument case
    [OAK-11194] - Remove usage of Guava MoreObjects
    [OAK-11220] - Remove usage of Guava Sets.newConcurrentHashSet
    [OAK-11221] - Remove usage of Guava EvictingQueue
    [OAK-11278] - Remove usage of Guava ImmutableMap.of() - multiple argument case
    [OAK-11281] - Remove usage of Maps.newHashMap()
    [OAK-11288] - remove usage of Immutable.Map.builder()
    [OAK-11292] - Remove usage of Guava ImmutableMap.copyOf()
    [OAK-11297] - remove usage of Guava Joiner
    [OAK-11302] - Remove usage of Guava annotations
    [OAK-11304] - Remove usage of Guava Collections2
    [OAK-11308] - Remove usage of org.apache.jackrabbit.guava.common.primitives.Longs
    [OAK-11311] - Remove usage of Guava ImmutableList.of()
    [OAK-11317] - Remove usage of Guava ImmutableSet
    [OAK-11321] - Remove usage of Sets.union
    [OAK-11322] - Remove usage of Sets.intersection
    [OAK-11323] - Remove usage of Sets.difference
    [OAK-11324] - Remove usage of Sets.symmetricDifference
    [OAK-11325] - Remove usage of Sets.powerSet
    [OAK-11326] - Remove usage of Guava Sets
    [OAK-11327] - Remove usage of Guava ImmutableListMultimap
    [OAK-11328] - Remove usage of Guava ImmutableList (test classes)
    [OAK-11330] - Remove usage of Guava ImmutableList (Builder)
    [OAK-11331] - Remove usage of Sets.filter
    [OAK-11332] - Remove usage of Guava ImmutableList (copyOf)
    [OAK-11333] - Remove usage of Lists.transform
    [OAK-11334] - Remove usage of Lists.reverse
    [OAK-11335] - Remove usage of Lists.asList
    [OAK-11336] - Remove usage of Guava Lists
    [OAK-11347] - Remove usage of Maps.fromProperties
    [OAK-11348] - Remove usage of Guava Maps.newIdentityHashMap()
    [OAK-11349] - Remove usage of Guava Maps.unmodifiableNavigableMap
    [OAK-11350] - Remove usage of Guava Maps.filterKeys
    [OAK-11351] - Remove usage of Guava Maps.filterValues
    [OAK-11353] - Remove usage of Guava Maps.newHashMap()
    [OAK-11354] - Remove usage of Guava Ints.compare()
    [OAK-11359] - Remove usage of Guava Ints.checkedCast
    [OAK-11360] - remove usage of Guava Ints.contains()
    [OAK-11362] - Remove usage of Guava Maps.filterEntries
    [OAK-11363] - Remove usage of Guava Maps.uniqueIndex
    [OAK-11366] - Remove usage of Guava UnsignedBytes.compare()
    [OAK-11367] - Remove usage of Guava Chars.contains()
    [OAK-11371] - remove use of Guava Files.newWriter()
    [OAK-11374] - Remove usage of Guava Maps.immutableEntry
    [OAK-11375] - Remove usage of Guava Maps.transformValues
    [OAK-11377] - Remove usage of Guava ByteStreams.toByteArray()
    [OAK-11381] - Remove usage of Guava Maps.asMap
    [OAK-11382] - Remove usage of Guava Maps.toMap

Bug

    [OAK-11274] - Upgrade solr to 8.11.3 | CVE-2023-50298
    [OAK-11284] - Greedy Reuse of cluster IDs may lead to synchronous LastRevRecovery executions slowing down startup
    [OAK-11285] - indexing job hangs forever if included paths include spaces at the start
    [OAK-11294] - documentmk: broken logging in ClusterNodeInfo
    [OAK-11303] - The log message with the report on index import does not include index names
    [OAK-11307] - oak-search-elastic: mixin filtered queries do not produce results
    [OAK-11379] - JsonSerializer output contains deleted children of orderable nodes

Improvement

    [OAK-6741] - Switch to official OSGi component and metatype annotations
    [OAK-11259] - Bump testcontainers to v1.20.3 / toxiproxy 2.11.0
    [OAK-11260] - Speed up Lucene cost estimation
    [OAK-11269] - Enforce commit message format with GHA
    [OAK-11270] - Add CONTRIBUTING file
    [OAK-11271] - Reenable SonarCloud with GHA
    [OAK-11277] - Tree store: fix memory usage and support concurrent indexing
    [OAK-11290] - Update progress logging of publish indexing job to the same level as the author job
    [OAK-11291] - Tree store: speed up merging, and concurrent indexing
    [OAK-11298] - Fix test IncrementalStoreTest
    [OAK-11356] - Code cleanups to indexing logic

Wish

    [OAK-10466] - Prevent anonymous user from being disabled

Task

    [OAK-11182] - Create and test general mechanism for creating MongoDocumentStore fullGC garbage for testing
    [OAK-11199] - Java 23: getSubject is supported only if a security manager is allowed
    [OAK-11217] - Fix issue with CopyObject Request
    [OAK-11246] - Introduce config for perflogger to log very slow operations at info
    [OAK-11248] - Create util to close all feature toggles in DocumentNodeStore
    [OAK-11258] - validation branch for re-reverting PR#1852, #1853, #1854
    [OAK-11265] - Datastore checkConsistency() via JMX is not working
    [OAK-11266] - Create a new mode GCP for Blob cloud
    [OAK-11276] - Add unit test for HunspellStem filter
    [OAK-11280] - webapp: update Tomcat dependency to 9.0.97
    [OAK-11289] - oak-search-elastic: remove remaining elastiknn references in tests
    [OAK-11305] - Use single delete call for renaming keys in GCP
    [OAK-11306] - GCP bucket cleanup post test not working
    [OAK-11310] - Fix S3 test cases in oak-blob-cloud
    [OAK-11314] - Deprecate oak-solr for eventual removal
    [OAK-11319] - Enable "rat" profile with GHA
    [OAK-11329] - oak-auth-ldap: update mina dependency to 2.1.10
    [OAK-11337] - Update (shaded) Guava to 33.4.0
    [OAK-11341] - webapp: update Tomcat dependency to 9.0.98
    [OAK-11342] - update Tomcat JDBC dependency to 9.0.98
    [OAK-11343] - Update commons-io dependency to 2.18.0
    [OAK-11344] - oak-benchmarks/oak-it-osgi: update commons-compress dependency to 1.27.1
    [OAK-11352] - oak-search-elastic: introduce useInFullTextQuery to enable/disable ft search for dynamically boosted queries
    [OAK-11361] - Update commons-codec dependency to 1.17.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/

