This is an automated email from the ASF dual-hosted git repository. reschke pushed a commit to branch OAK-11717 in repository https://gitbox.apache.org/repos/asf/jackrabbit-oak.git
commit 3f8a4bb240444f60479dc0d37bae4a5fa8af00d4 Author: Julian Reschke <resc...@apache.org> AuthorDate: Mon May 12 13:30:04 2025 +0100 OAK-11717: Release Oak 1.80.0 - Candidate Release Notes --- RELEASE-NOTES.txt | 216 ++++++++++++++++++++---------------------------------- 1 file changed, 78 insertions(+), 138 deletions(-) diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt index 92232e6c4c..328a8d7310 100644 --- a/RELEASE-NOTES.txt +++ b/RELEASE-NOTES.txt @@ -1,4 +1,4 @@ -Release Notes -- Apache Jackrabbit Oak -- Version 1.78.0 +Release Notes -- Apache Jackrabbit Oak -- Version 1.80.0 Introduction ------------ @@ -7,170 +7,110 @@ 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.78.0 is an incremental feature release based +Apache Jackrabbit Oak 1.80.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.78.0 compiles and tests successfully on Java 17, Javadocs -generation fails on Java 17 (but works as expected on Java 11). +While Oak 1.80.0 compiles and tests successfully on Java 24. 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.78.0 +Changes in Oak 1.80.0 --------------------- +Sub-task + + [OAK-11696] - remove (shaded) Guava common.io package + Technical task - [OAK-11451] - Remove usage of Guava Iterables.concat() - [OAK-11462] - Remove usage of Guava Files.write() - [OAK-11481] - Remove (once more) usage of Guava Files.createTempDir() - [OAK-11482] - Remove usage of Guava Files.newReader - [OAK-11484] - Remove usage of Guava io.CountingInputStream - [OAK-11494] - Add Iterables.contains replacement in IterableUtils - [OAK-11495] - Add Iterables.size replacement in IteratorUtils - [OAK-11496] - Add Iterables.all replacement in IterableUtils - [OAK-11500] - Remove usage of Guava io.Closeable - [OAK-11503] - Add Iterables.isEmpty replacement in IterableUtils - [OAK-11507] - Use oak-commons IterableUtils instead of commons-collections4 - [OAK-11513] - Add Iterables.toArray replacement in IterableUtils - [OAK-11514] - Remove usage of Guava Iterables.toArray - [OAK-11518] - Add Iterables.partition replacement in IterableUtils - [OAK-11519] - Remove usage of Guava Iterables.partition() - [OAK-11522] - Remove usage of Guava Iterables.filter() - [OAK-11523] - Add Iterables.filter replacement in IterableUtils - [OAK-11527] - Remove usage of Guava Iterables.transform() - [OAK-11528] - Add Iterables.transform replacement in IterableUtils - [OAK-11531] - Add Iterables.mergeSorted replacement in IterableUtils - [OAK-11532] - Remove usage of Guava Iterables.mergeSorted() - [OAK-11542] - Remove usage of Guava Iterables.elementsEqual() - [OAK-11543] - Add Iterables.elementsEqual replacement in IterableUtils - [OAK-11546] - Remove usage of Guava io.Closer - [OAK-11548] - Add Iterables.limit replacement in IterableUtils - [OAK-11549] - Remove usage of Guava Iterables.limit() - [OAK-11550] - Add Iterables.toString replacement in IterableUtils - [OAK-11551] - Remove usage of Guava Iterables.toString() - [OAK-11556] - Remove usage of Guava Iterables.getFirst() - [OAK-11557] - Remove usage of Guava Iterables.getOnlyElement() - [OAK-11558] - Remove usage of Guava Iterables.tryFind() - [OAK-11562] - Remove usage of Guava Iterables.addAll() - [OAK-11563] - Add Iterables.getFirst replacement in IterableUtils - [OAK-11565] - Add Iterables.get() replacement in IterableUtils - [OAK-11566] - Add Iterables.find() replacement in IterableUtils - [OAK-11567] - Remove usage of Guava Iterables.size (2) - [OAK-11571] - commons: add Closer class (similar to Guava Closer) - [OAK-11573] - Add Iterators.size replacement in IteratorUtils - [OAK-11574] - Remove usage of Guava Iterators.size() - [OAK-11575] - Add Iterables.getLast() replacement in IterableUtils - [OAK-11576] - Remove usage of Guava Iterables.get() - [OAK-11577] - Remove usage of Guava Iterables.find() - [OAK-11578] - Remove usage of Guava Iterables.getLast() - [OAK-11580] - Remove usage of Guava Iterables.skip() - [OAK-11581] - Remove usage of Guava Iterables.cycle - [OAK-11582] - Remove usage of Guava Iterables.removeAll - [OAK-11583] - Add Iterators.get replacement in IteratorUtils - [OAK-11584] - Add Iterators.getLast replacement in IteratorUtils - [OAK-11589] - Remove usage of Iterators.get - [OAK-11596] - Remove usage of Guava Iterables (imports) - [OAK-11602] - Remove usage of Guava ImmutableSet.copyOf [part 1] - [OAK-11605] - Remove usage of Guava ImmutableSet.copyOf [part 2] - [OAK-11615] - update groovy dependency to 3.0.24 + [OAK-11473] - Remove usage of Guava ImmutableSet (again) + [OAK-11585] - Add Iterators.contains replacement in IteratorUtils + [OAK-11587] - Add Iterators.asEnumeration replacement in IteratorUtils + [OAK-11588] - Add Iterators.toArray replacement in IteratorUtils + [OAK-11590] - Remove usage of Iterators.getLast() + [OAK-11591] - Remove usage of Iterators.contains() + [OAK-11592] - Remove usage of Iterators.asEnumeration() + [OAK-11593] - Remove usage of Iterators.toArray() + [OAK-11612] - Remove usage of Sets.union [2] + [OAK-11618] - Remove usage of Guava Stopwatch + [OAK-11620] - Create replacement for Guava Stopwatch + [OAK-11621] - Reduce usage of Guava Ticker + [OAK-11640] - Remove usage of Guava ImmutableSet.Builder + [OAK-11646] - Remove usage of Guava ImmutableSet.of + [OAK-11652] - Remove usage of Guava Iterators.forArray + [OAK-11654] - Remove usage of Guava Suppliers.ofInstance + [OAK-11663] - Remove usage of Guava Iterators.filter() + [OAK-11664] - Remove usage of Guava Iterators.transform() + [OAK-11665] - Remove usage of Guava Iterators.singletonIterator() + [OAK-11666] - Remove usage of Guava Iterators.concat() + [OAK-11668] - Remove usage of Guava Iterators.mergeSorted() + [OAK-11669] - Add Iterators.concat() replacement in IteratorUtils + [OAK-11674] - Add Iterators.filter() replacement in IteratorUtils + [OAK-11676] - Add Iterators.transform() replacement in IteratorUtils + [OAK-11677] - Remove usage of Guava Iterators.elementsEqual() + [OAK-11678] - Remove usage of Guava Iterators.cycle() + [OAK-11680] - Add Iterators.cycle() replacement in IteratorUtils + [OAK-11688] - Remove usage of Guava Iterators.getOnlyElement() + [OAK-11689] - Remove usage of Guava Iterators.addAll() + [OAK-11690] - Remove usage of Guava Iterators.partition() + [OAK-11691] - Add Iterators.partition() replacement in IteratorUtils + [OAK-11705] - Remove usage of Guava Iterators.asEnumeration() + [OAK-11706] - Add Iterators.limit() replacement in IteratorUtils + [OAK-11707] - Remove usage of Guava Iterators.limit() Bug - [OAK-11461] - DocumentNodeStoreService - setClusterInvisible via config - [OAK-11464] - oak-it-osgi fails to load the bundle oak-search-elastic if the profile rdb-mysql is used for building and testing. - [OAK-11475] - oak-search-elastic: WordDelimiter filter does not convert type mappings - [OAK-11480] - AzureRepositoryLock: NPE in refresh thread - [OAK-11499] - Warning: Parameter 'aggregate' is unknown for plugin 'maven-javadoc-plugin:3.4.1:jar (default)' - [OAK-11508] - oak-search-elastic: is null / is not null queries should resolve the field name - [OAK-11529] - Infinite recursion in AstElement (for some platforms and configs) - [OAK-11536] - oak-search-elastic: synonym filter has to be lenient by default - [OAK-11539] - Flaky test: MembershipProviderTest#testGetMembershipInherited() - [OAK-11564] - oak-run FullGC leaves background threads running - [OAK-11570] - oak-run fullGC fullGcMaxAge default value is wrongly calculated - [OAK-11603] - Lucene 4.x fuzzy queries don't work in Elastic - [OAK-11619] - Fix flaky ConcurrentMultiplexingIndexWriterTest - [OAK-11624] - Elastic full-text queries are not lenient when the input value cannot be converted - [OAK-11630] - CommandTestUtils captureSystem* should normalize line feeds + [OAK-9584] - JCR methods only support qualified names but not expanded names for namespace prefix "rep:". + [OAK-11452] - Expose FullGC OSGi config via metrics + [OAK-11634] - Add Osgi config for FullGC generation value + [OAK-11639] - oak-run-commons: IncrementalFlatFileStoreStrategy uses com.google.common classes (instead of shaded ones) + [OAK-11673] - Oak-segment-azure v12 CPU increase caused by refreshLease + [OAK-11685] - Reduce log level for MongoFullGcNodeBin class + [OAK-11695] - Elasticsearch queries might produce inconsistent results + [OAK-11704] - Update Mockito dependency to 5.17.0 Epic - [OAK-11047] - Oak should compile & test on Java 23 + [OAK-11703] - Oak should compile & test on Java 24 Story - [OAK-11444] - [full-gc] Save document id and empty properties names before deletion - [OAK-11491] - segment.azure.v12.enabled should be set to false after test execution is finished - -New Feature - - [OAK-8748] - Run performance tests and compare with baseline + [OAK-11671] - [full-gc] Persist the avg object size and avg size of props per document in Mongo settings Improvement - [OAK-11390] - Generate aggregate UT/IT reports - [OAK-11397] - Provide a way to get expanded names for items - [OAK-11435] - oak-search: the special baseline configuration may be removed from the pom. - [OAK-11436] - oak-segment-aws: the special baseline configuration may be removed from the pom. - [OAK-11454] - Explain query output: fix "synchronousPropertyCondition" - [OAK-11457] - Tree store sometimes contains bundled properties - [OAK-11460] - Allow configuring "index.mapping.total_fields.limit" - [OAK-11466] - Replace Fixed to Exponential retries in oak-segment-azure - [OAK-11468] - RDBDataSourceFactory unnecessarily loads the JDBC driver class explicitly. - [OAK-11469] - Speedup resolution of mount paths - [OAK-11472] - Improve error handling when index is missing Tika config - [OAK-11478] - Node store statistics: support the tree store - [OAK-11483] - Throttle log warn messages during indexing in Elastic - [OAK-11488] - Flaky test org.apache.jackrabbit.oak.plugins.document.VersionGarbageCollectorIT. testDeletedPropsAndUnmergedBCWithCollisionWithDryRunMode - [OAK-11489] - Flaky test org.apache.jackrabbit.oak.plugins.document.BranchCommitGCTest.unmergedAddsThenMergedAddThenUnmergedRemovesChildren - [OAK-11490] - VersionGarbageCollectorIT takes 1 hour to run - [OAK-11501] - Disable spotbugs - [OAK-11504] - Elasticsearch: support "flattened" fields - [OAK-11505] - Reduce object allocation in FullTextIndexEditor - [OAK-11509] - Incremental flat file store: reduce logging - [OAK-11510] - Performance improvements to IndexDefinition class - [OAK-11511] - Performance improvements to FullTextDocumentMaker class - [OAK-11515] - Fix indentation on indexing related classes - [OAK-11520] - Performance improvements to Aggregate class in indexing logic - [OAK-11526] - Reduce logging verbosity in IndexWriterPool when closing writers - [OAK-11530] - Elasticsearch: "field name cannot be an empty string" if fields start with a dot - [OAK-11533] - Reduce calls to PathUtils.concat() in FulltextIndexEditor - [OAK-11534] - Auto-merge indexes if string matches single-value array - [OAK-11538] - Cleanups and small performance improvements to CompositeEditor and CompositeIndexEditorProvider - [OAK-11544] - Flaky test PipelinedTreeStoreIT.createFFSCustomExcludePathsRegexNoRetryOnConnectionErrorRegexFiltering - [OAK-11547] - oak-search-elastic: upgrade Elasticsearch Java Client to 8.17.x - [OAK-11553] - Elastic: index name is swallowed in case of IllegalArgumentException - [OAK-11555] - Elastic: support dot and other special characters in property and function names - [OAK-11568] - Elastic: improved compatibility for analyzer definitions - [OAK-11597] - increase toxiproxy startup attempts - [OAK-11598] - Bump testcontainers to v1.20.6 - [OAK-11606] - indexing-job: throttle messages warning about enqueuing delays in IndexWriterPool - [OAK-11610] - Clarify javadoc of o.a.j.api.security.user.UserManager.createUser() with respect to null passwords - [OAK-11613] - Expose ELASTIC_ENABLED metric - [OAK-11614] - ES StatisticalFacets: log search request on timeout - -Test - - [OAK-11252] - flaky BranchCommitGCTest.unmergedRemoveChild + unmergedAddsThenMergedAddsChildren - [OAK-11477] - Flaky test: DocumentDiscoveryLiteServiceIT.testLargeStartStopFiesta + [OAK-11545] - oak-search-elastic: implement bulk processor pool to optimize indexing + [OAK-11607] - Node.getNodes() not lazy for orderable nodetypes + [OAK-11638] - Elastic: ignore standard token filter configurations + [OAK-11655] - Do not create redundant instances of ElasticBulkProcessorHandler + [OAK-11658] - Indexing job: fix "jcr:uuid" issue + [OAK-11687] - DataStore FileCache Memory Usage + [OAK-11692] - Add inference config in oak. + [OAK-11693] - Parse inference query and extract out inference config and text query + [OAK-11694] - Implement inference in oak-search-elastic Task - [OAK-11438] - indexing job: parallelize Lucene writer backend - [OAK-11456] - oak-solr-osgi embeds vulnerable Zookeeper 3.9.2 - [OAK-11458] - Create IterableUtils in oak-commons - [OAK-11459] - Code cleanups on indexing related packages - [OAK-11506] - Update oak-segment-azure tools to use azure sdk v12 implementation - [OAK-11524] - Update oak-commons SetUtils to use commons-collections4 methods - [OAK-11541] - FullGC Mongo query has too broad scope - [OAK-11569] - Potential regression introduced with OAK-11287 - [OAK-11586] - webapp: update Tomcat dependency to 9.0.102 - [OAK-11594] - Converting existing indexes from a type to another leaves the async lane the same - [OAK-11595] - update Tomcat JDBC dependency to 9.0.102 - [OAK-11611] - blob-cloud, segment: update netty version to 4.1.119 - [OAK-11623] - Clean oak-segment-azure lib embedding and exporting + [OAK-11609] - Add Prometheus metrics export via pushgateway to RevisionsCommand (oak-run) + [OAK-11622] - Clock improvements + [OAK-11625] - Move o.a.j.o.plugins.bundlor.BundlingConfigInitializer to a suitable API package and export that package. + [OAK-11642] - oak-segment-tar uses unmaintained concurrentlinkedhashmap-lru + [OAK-11643] - Update (shaded) Guava to 33.4.7 + [OAK-11650] - Fix Javadoc errors + [OAK-11675] - Clean oak-segment-azure lib exporting + [OAK-11681] - Clean oak-segment-azure lib exporting + [OAK-11684] - Send fullGC metrics to Prometheus pushgateway on each garbage collection iteration + [OAK-11698] - webapp: update Tomcat dependency to 9.0.104 + [OAK-11699] - Update commons-collections4 to 4.5.0 + [OAK-11700] - Update (shaded) Guava to 33.4.8 + [OAK-11701] - Upgrade jackson-databind dependency to 2.17.3 + [OAK-11708] - Update Easymock dependency to 5.5 + [OAK-11710] - Update jacoco plugin to 0.8.13 + [OAK-11714] - Add jmx to expose inferenceConfig + [OAK-11716] - Capture inference service stats In addition to the above-mentioned changes, this release contains all