This is an automated email from the ASF dual-hosted git repository. kwin pushed a change to branch feature/OAK-11498-expose-bound-principals-via-jrsession in repository https://gitbox.apache.org/repos/asf/jackrabbit-oak.git
from fc756c5782 OAK-11498: Expose Session-bound principals via JackrabbitSession add e97dfebeb4 OAK-11390 Generate aggregate UT/IT reports with profile "pedantic" add 7bfc8fedab OAK-11495 : added utils method for repalcing Guava's Iterables.size (#2090) add 846ec69591 OAK-11496 : added utils method for repalcing Guava's Iterables.all (#2096) add 1fe0054f42 OAK-11468: RDBDataSourceFactory unnecessarily loads the JDBC driver class explicitly. (#2085) add f6232932d7 OAK-11503 : added utils method for repalcing Guava's Iterables.size (#2097) add 3c4f4c4e47 OAK-11451 : removed usage of Guava Iterables.concat (#2049) add 3a923e6827 OAK-11507 : using oak-commons IterableUtils inplace of commons-collections4 (#2100) add 6331a5a979 OAK-11508: [oak-search-elastic] is null / is not null queries should resolve the field name (#2101) add 4c7ec478c4 OAK-11252 Disabling flaky test (#2103) add 4984c929b0 OAK-11509 Incremental flat file store: reduce logging (#2102) add 07335f52a4 OAK-11504 Elasticsearch: support flattened fields - indentation changes only (#2104) add 14c29cabd8 OAK-11515 - Fix indentation and import order (#2106) add 8512acc1c5 OAK-11513 : added util method in oak-commons to replace Iterables.toArray (#2105) add 5fee417d9c OAK-11513 : removed usage of Guava's Iterables.toArray (#2107) add 9adc3b9a56 OAK-11466 Replace Fixed to Exponential retries in oak-segment-azure (#2067) add 81c09d1825 OAK-11397: add new API for expanded names/paths (#2079) add 839c982efa OAK-11505 - Reduce object allocation in FullTextIndexEditor (#2098) add b11c1b3c2c OAK-11518 : added utils method to replace Iterables.partition (#2111) add ed44a7ec20 OAK-11519 : removed usage of Iterables.partition with oak-commons (IterableUtils) (#2112) add 2f16a088d9 OAK-11523 : added util method for replceing Guava's Iterables.filter … (#2114) add 92f3247c77 OAK-11526 - Reduce logging verbosity in IndexWriterPool when closing writers (#2118) add 5a900a2d81 OAK-11522 : removed usage of Guava's Iterables.filter (#2115) add 77b7999340 OAK-11528 : added util method for replacing Guava's Iterables.transform in oak-commons module (#2117) add 53c7980d18 OAK-11524 : Make SetUtils API call commons-collection4 API (#2116) add 6af0ba59dd OAK-11511 - Performance improvements to FullTextDocumentMaker class (#2110) add 74adf10bd7 OAK-11527 : replaced Guava's Iterables.transform with oak-commons util (#2119) add 0a6389fd2e OAK-11529 RegExp recursion in AstElement - workaround (#2120) add 41e615aeae OAK-11530 Elasticsearch: 'field name cannot be an empty string' (#2121) add 5c097bf66b OAK-11533 - Reduce calls to PathUtils.concat() (#2123) add 1ceb9b13e2 OAK-11510 - Performance improvements to IndexDefinition class (#2108) add 4213721614 OAK-11520 - Performance improvements to Aggregate class in indexing logic (#2113) add 9c78ef283b OAK-11534 Auto-merge indexes if string matches single-value array (#2124) add 3509f70b12 OAK-11504 Elasticsearch: support flattened fields (#2099) add 48b26b59b7 OAK-11531 : added util method to replace Guava's Iterables.mergeSorted (#2122) add 6c2f14621d OAK-11536: elastic synonym filter has to be lenient to incorrect rules (#2125) add 0550fd63f3 OAK-11538 - Cleanups and small performance improvements to CompositeEditor and CompositeIndexEditorProvider add 372e46df85 OAK-11532 : replaced Guava's Iterables.mergeSorted with oak-commons util (#2127) add 58bc057cfb OAK-11500: Remove usage of Guava io.Closeable (#2129) add 588da45c92 OAK-11543 : Add Iterables.elementEquals replacement in IterableUtils (#2131) add 94a1cbc61d Revert " OAK-11500: Remove usage of Guava io.Closeable (#2129)" add 48abf89ef8 OAK-11539: Flaky test: MembershipProviderTest#testGetMembershipInherited() (#2128) add 6cd2da6cd3 OAK-11544 Flaky test PipelinedTreeStoreIT.createFFSCustomExcludePathsRegexNoRetryOnConnectionErrorRegexFiltering (#2132) add 3bad0ea0a1 OAK-8748: Run performance tests and compare with baseline add fbb5152e6d OAK-11501 Remove spotbugs-m-p add 485955c3cd OAK-11499: Remove parameter "aggregate" add fe6cef1166 OAK-11547 - Upgrade Elasticsearch client from 8.15.0 to 8.17.2 (#2135) add 7db1257a0c OAK-11500: Remove usage of Guava io.Closeable (#2136) add c43a4a24c2 OAK-11542 : replaced Guava's Iterables.elementsEqual with oak-commons util (#2133) add a200ceb052 OAK-11548 : added util method to replace Guava's Iterables.limit() (#2138) add 4cbc522d90 OAK-11549 : replaced Guava's Iterables.limit with oak-commons util (#2140) add eccc4ffe01 OAK-11550 : added util method to replace Guava's Iterables.toStrinag() (#2141) add 49913d25ee OAK-11553 Elastic: index name is swallowed in case of IllegalArgument… (#2139) add b3cb44e7ef OAK-11551 : replaced Guava's Iterables.toString with oak-commons util (#2142) add 9762770de4 OAK-11563 : added util to replace Iterables.getFirst in oak-commons (#2150) add 11fa75d0f7 OAK-11562 : removed usage of Guava's Iterables.addAll (#2149) add 043165b343 OAK-11558 : removed usage of Guava's Iterables.tryFind with Streams (#2148) add 88c8a2cc12 OAK-11557 : removed usage of Guava's Iterables.getOnlyElements with S… (#2147) add e27b02a498 OAK-11556 : removed usage of Guava's Iterables.getFirst with oak-commons API (#2146) add 9200c7ef39 OAK-11522 : removed usage of Guava's Iterables.filter (remaining one) (#2152) add f611f8bd06 OAK-11567 : removed usage of Guava Iterables.size (#2153) add 0d391f6ebb OAK-11569 - Revert OAK-11287: Cleanup May Delete Referenced Segments (#1880) (#2156) add 449b735a10 OAK-11565 : added util to replace Iterables.get in oak-commons (#2158) add f6d2039c6c OAK-11566 : added util to replace Iterables.find in oak-commons (#2161) add 1762685c40 OAK-11576 : removed usage of Guava's Iterables.get() with oak-commons (#2163) add 3f5167cb95 OAK-11577 : removed usage of Guava's Iterables.find() with oak-commons (#2164) add 60cd7597d5 OAK-11573: add size api in IteratorUtils (#2159) add a2595d9cb9 OAK-11575 : added util to replace Iterables.getLast in oak-commons (#2162) add f9723a21ac OAK-11580 : removed usage of Guava's Iterables.skip() with ListIterator (#2168) add 34851c170a OAK-11582 : removed usage of Guava's Iterables.removeAll() with Stream (#2167) add 88e1396c97 OAK-11581 : removed usage of Guava's Iterables.cycle() with Stream (#2166) add 42a12a4acc OAK-11586: webapp: update Tomcat dependency to 9.0.102 (#2170) add 691a326ba7 OAK-11578 : removed usage of Guava's Iterables.getLast() with oak-commons (#2172) add 8a26abaf6f OAK-11574: remove usage of Iterators.size() api (#2169) add 308965d9a0 OAK-11583: add get api in IteratorUtils (#2171) add fc14e20ea5 OAK-11597: increase toxiproxy startup attempts (#2175) add 9723edba9e OAK-11564 oak-run FullGC leaves background threads running add 5b13b559dc OAK-11596 : removed Guava's Iterables imports (#2174) add 399bbddd6a doc: Fix typo add 22fc672f00 OAK-11555 Elastic: support dot in property and function names (#2145) add 057b30aa5a OAK-11598: bump testcontainers to v1.20.6 (#2176) add 301a996754 OAK-11595: update Tomcat JDBC dependency to 9.0.102 (#2177) add 77af802954 OAK-11564 oak-run FullGC leaves background threads running add 4c8b070260 OAK-11555 Disable test that depends on platform encoding add 53c196460c OAK-11603: lucene 4.x fuzzy queries don't work in Elastic (#2180) add 7aada40fcd OAK-11602 : removed usage of Guava's ImmutableSet.copyOf with LinkedSet (#2178) add 01179a51a6 OAK-11571: commons: add Closer class (similar to Guava Closer) (#2181) add 159f032afa OAK-11571: commons: add Closer class (similar to Guava Closer) - fix line ends add b460435829 OAK-11546: remove usage of Guava Closer (#2186) add f2f77bb06c OAK-11570 oak-run fullGC fullGcMaxAge default value is wrongly calculated add 709fab2f65 OAK-11570 oak-run fullGC fullGcMaxAge default value is wrongly calculated add 117fc0559d OAK-11506 Update oak-segment-azure tools to use azure sdk v12 implementation (#2160) add 6a2ae9a426 OAK-11589: remove guava Iterators.get() usage (#2187) add 2e2311ca80 OAK-11584 : add getLast() method in IteratorUtils (#2188) add 32d11a8dfa OAK-11606 - indexing-job: throttle messages warning about enqueuing delays in IndexWriterPool add e292d03752 OAK-11610: Clarify null passwords in createUser(...) add 679a4c816c OAK-11611: blob-cloud, segment: update netty version to 4.1.119 (#2190) add ca83044340 OAK-11613: expose ELASTIC_ENABLED metric (#2192) add 49716cbca0 OAK-11615: update groovy dependency to 3.0.24 (#2195) add 55bc3e17a6 OAK-11614: ES StatisticalFacets: log search request on timeout (#2194) add c30369268f OAK-11619 - Fix flaky ConcurrentMultiplexingIndexWriterTest add 64813b0c76 OAK-11546: remove usage of Guava Closer: revert removal of Guava common.io export for now add 0178047ee9 OAK-11478 Node store statistics: support the tree store (#2071) add dea40543d3 OAK-11605 : removed usage of Guava's ImmutableSet.copyOf with LinkedSet (#2184) add c514f197e2 Revert "OAK-11605 : removed usage of Guava's ImmutableSet.copyOf with LinkedS…" (#2198) add e26efdf33e Reapply "OAK-11605 : removed usage of Guava's ImmutableSet.copyOf with LinkedS…" (#2198) add 8a80267ebf OAK-11624: make ES queries more lenient when values cannot be converted (#2200) add 7c7093b81e OAK-11541: Reduce logQueryExplain to only happen if Trace logs are enabled (#2134) add 0a76f3ddd6 OAK-11623 Clean oak-segment-azure lib embedding and exporting (#2199) add 71875f1590 OAK-11594 - Converting existing indexes from a type to another leaves the async lane the same (#2173) add 6ca71c76f3 OAK-11444 [full-gc] Save document id and empty properties names before deletion (#2038) add 25df4149f2 OAK-11568 Elastic: improved compatibility for aggregation definitions (#2193) add 2769219294 OAK-11630: CommandTestUtils captureSystem* should normalize line feeds (#2203) add 7435450cf0 OAK-11632: Release Oak 1.78.0 - Candidate Release Notes add 1dbc3934d0 [maven-release-plugin] prepare release jackrabbit-oak-1.78.0 add 64ee526b80 [maven-release-plugin] prepare for next development iteration add 06d46de56a OAK-11622: Clock improvements (#2204) add 23017ea676 OAK-11621: Reduce usage of Guava Ticker (#2202) add 305a3d6035 OAK-11612 : removed usages of Guava's Sets.union (#2197) add 3bb0ea47d4 OAK-11622: Clock improvements - add test code for nanoTime() add d59d475881 OAK-11639: oak-run-commons: IncrementalFlatFileStoreStrategy uses com.google.common classes (instead of shaded ones) (#2210) add 5a5af3c775 OAK-11638 Elastic: ignore standard token filter configurations (#2209) add 1ae6bd34be OAK-11632: Release Oak 1.78.0 - adjust oak-doc* projects versions add f5e8f8b8b7 OAK-11642: oak-segment-tar uses unmaintained concurrentlinkedhashmap-lru (#2211) add 840eb75257 OAK-11607 for ordered nodetypes read the child node names lazily (#2182) add 9d7f223709 OAK-11625: Move o.a.j.o.plugins.bundlor.BundlingConfigInitializer to … (#2201) add df1135dd09 OAK-11625: Move o.a.j.o.plugins.bundlor.BundlingConfigInitializer - file permissions add 3216a1d85c OAK-11640 : removed usage of ImmutableSet.builder (#2212) add a1b8e60bf8 OAK-11643: Update (shaded) Guava to 33.4.6 (#2214) add 6d65177aad OAK-11646 : removed usage of ImmutableSet.of and its related unused imports (#2217) add dd791eaa6c OAK-11260: Create replacement for Guava Stopwatch (#2218) add 33c11454f8 OAK-11618: Remove usage of Guava Stopwatch (#2220) add d11b929222 OAK-11224: remove guava dependencies from POMs - segment-remote, segment-aws, exercise (#2221) add 0d49c49e1e OAK-11652: Remove usage of Guava Iterators.forArray (#2222) add 0bfdde4813 OAK-11545 - Use a single long-lived bulk processor for Elastic reindexing (#2183) add e433fe28f2 OAK-11634 : provided support for generations in FullGC (#2206) add 3ac77880ed OAK-11643: Update (shaded) Guava to 33.4.7 add fe44125afb OAK-11654: Remove usage of Guava Suppliers.ofInstance (#2224) add f54cabd63a OAK-11590 : removed usage of Iterators.getLast with oak-commons implementation (#2227) add 8b920a326f OAK-11585 : added Iterators.contains replacement in oak-commons (#2228) add 0601c69cbf OAK-11655 - Do not create redundant instances of ElasticBulkProcessorHandler (#2225) add 55a38029af OAK-11591 : removed usage of Iterators.contains with oak-commons util (#2230) add cca2a4f1db OAK-11588 : added Iterators.toArray replacement in oak-commons (#2233) add 6f91ebf9cd OAK-11650: Fix Javadoc errors (#2232) add 37f6efc7d0 OAK-11593 : removed usage of Iterators.toArray with oak-commons util (#2235) add 34e7fd65b2 OAK-11587 : added Iterators.asEnumeration replacement in oak-commons (#2236) add 5a39cf218b OAK-11592 : removed usage of Iterators.asEnumeration with oak-commons util (#2238) add fc066c3d68 OAK-11658 - Nodes of type nt:resource in new index definitions must contain a jcr:uuid and it must be unique (#2231) add 9cb2172bc9 OAK-11668 : removed usage of Iterators.mergedSorted with oak-commons util (#2239) add bda76aba06 OAK-11669 : added Iterators.concat replacement in oak-commons (#2240) add 92a32b1847 OAK-11666 : removed usage of Iterators.concat with oak-commons util (#2241) add 0e2a7d1e8b OAK-11673 Oak-segment-azure v12 CPU increase caused by refreshLease (#2243) add bd85fe2b08 OAK-11665 : removed usage of Guava's Iterators.singletonIterator with native java (#2244) add 7bda86b8dc OAK-11674 : added Iterators.filter replacement in oak-commons (#2245) add 3ce3784f92 OAK-11663 : removed usage of Guava's Iterators.filter with oak-commons (#2246) add ad892a1901 OAK-11676 : added Iterators.transform replacement in oak-commons (#2247) add 09329f69b9 OAK-11664 : removed usage of Guava's Iterators.transform with oak-commons (#2249) add a72e127b5a OAK-11675 Clean oak-segment-azure lib exporting (#2248) add 4b7c14a6dd OAK-11609 : add support for metrics export to Prometheus via pushgateway for VersionGarbageCollector (#2216) add dc42326324 OAK-11452 : exported full gc OSGi configs as metrics (#2054) add e0e80cf910 - moved code that exports fullGC metrics to Prometheus pushgateway so that it is called on each fullGC iteration in VersionGarbageCollector (#2255) add d209d76e39 OAK-11685 : reduced log level for MongoFullGcNodeBin class (#2256) add 195a48be0c OAK-11677 : removed usage of Guava's Iterators.elementsEqual with oak-commons (#2253) add cd8c0f30f3 OAK-11680 : added Iterators.cycle replacement in oak-commons (#2250) add eb852d6de7 OAK-11671 [full-gc] Persist the avg object size and avg size of props per document in Mongo settings (#2252) add 1f497243d4 OAK-11681 Clean oak-segment-azure lib exporting (#2251) add 143d02a07f OAK-11678 : removed usage of Guava's Iterators.cycle with oak-commons (#2260) add 1f7c51732d OAK-11688 : removed usage of Guava's Iterators.getOnlyElements with oak-commons (#2261) add 54fc1bcbf2 OAK-11688 : removed usage of Guava's Iterators.getOnlyElements with oak-commons (missed ones) (#2265) add c71dd30383 OAK-11627: Fix NPE on isInheritedMember (#2205) add 71de390a30 OAK-11689 : removed usage of Guava's Iterators.addAll (#2264) add bb5ca5a6e0 OAK-9584: Support expanded names in JCR method arguments for prefix "rep:" add 5279bb807e OAK-11696: remove (shaded) Guava common.io package (#2272) add 15ff49eca9 Revert "OAK-11696: remove (shaded) Guava common.io package (#2272)" add 6e532a4d12 OAK-11691 : added Iterators.partition replacement in oak-commons (#2267) add 3667259d03 OAK-11698: webapp: update Tomcat dependency to 9.0.104 (#2273) add 6e7df1f749 Reapply "OAK-11696: remove (shaded) Guava common.io package (#2272)" add 0ddfa072e7 OAK-11700: Update (shaded) Guava to 33.4.8 (#2276) add 383567927b OAK-11699: Update commons-collections4 to 4.5.0 (#2275) add ed60943d4c OAK-11690 : removed usage of Guava's Iterators.partition with oak-commons (#2274) add 133113524e OAK-11704: Update Mockito dependency to 5.17.0 (#2279) add bbdfd13662 OAK-11687 DataStore FileCache Memory Usage (#2259) add a7e5d98498 OAK-11705 : removed usage of Guava's Iterators.asEnumeration with native JDK (#2280) add d7e297eb00 OAK-11695: consistently route the same queries to the same shards (#2271) add f66bd38d52 OAK-11657: JackrabbitSession.getExpandedName/Path need to return stable expanded names (#2229) add dca58db330 OAK-11692: Add inference config in oak (#2269) add f657b1ab00 OAK-11708: Update Easymock dependency to 5.5 (#2282) add df073f36bf OAK-11706 : added Iterators.limit replacement in oak-commons (#2281) add a5e7d1891f OAK-11710: Update jacoco plugin to 0.8.13 (#2284) add 20506bf1c1 OAK-11701: Upgrade jackson-databind dependency to 2.17.3 (#2277) add a4d4cefe22 Revert "OAK-11692: Add inference config in oak (#2269)" add 0fa0466c60 Revert "OAK-11657: JackrabbitSession.getExpandedName/Path need to return stable expanded names (#2229)" add 46b1c80ddc OAK-11692: Add inference config in oak (#2287) add 9b63a5b664 OAK-11707 : removed usage of Guava's Iterators.limit with oak-commons (#2288) add fd5f4d7b4c OAK-11694: Implement inference in oak-search-elastic (#2270) add b03171acb6 OAK-11714: Add jmx to expose inferenceConfig (#2290) add 16995af21f OAK-11716: Capture inference service stats (#2291) add 9ef4707132 OAK-11717: Release Oak 1.80.0 - Candidate Release Notes (#2292) add 189b9ad0a7 OAK-11720 : added OSGI config to avoid taking exclusive merge lock in case of conflicts add 5442748c93 OAK-11709 Merging index definitions: merge 'tags' and override 'type' (#2283) add 39f73d5d87 OAK-11721: experimental and inferenceConfig implementation should be … (#2294) add a43730151c OAK-11722: Donot read compatibility system property in VectorQuery fo… (#2297) add 0927b84131 OAK-11717: Release Oak 1.80.0 - Candidate Release Notes add 94e9e856f3 [maven-release-plugin] prepare release jackrabbit-oak-1.80 add 63eb1ba2a1 [maven-release-plugin] prepare for next development iteration add ea1d116369 Merge branch 'trunk' into feature/OAK-11498-expose-bound-principals-via-jrsession No new revisions were added by this update. Summary of changes: RELEASE-NOTES.txt | 159 ++- oak-api/pom.xml | 2 +- ...tedCacheStatsMBean.java => InferenceMBean.java} | 21 +- .../oak/api/jmx/QueryEngineSettingsMBean.java | 14 + .../oak/api/jmx/RepositoryManagementMBean.java | 12 +- .../jackrabbit/oak/api/jmx/package-info.java | 2 +- oak-auth-external/pom.xml | 2 +- .../external/basic/DefaultSyncConfig.java | 14 +- .../external/impl/DefaultSyncHandler.java | 3 +- .../external/impl/DynamicSyncContext.java | 4 +- .../external/impl/ExternalLoginModule.java | 6 +- .../external/impl/jmx/Delegatee.java | 5 +- .../external/impl/jmx/SynchronizationMBean.java | 12 +- .../impl/principal/AutoMembershipPrincipals.java | 13 +- .../impl/principal/AutoMembershipProvider.java | 3 +- .../impl/principal/CachedGroupPrincipal.java | 5 +- .../principal/DynamicGroupValidatorProvider.java | 4 +- .../ExternalAuthorizableActionProvider.java | 4 +- .../principal/ExternalGroupPrincipalProvider.java | 20 +- .../ExternalIdentityRepositoryInitializer.java | 2 +- .../principal/ExternalUserValidatorProvider.java | 4 +- .../impl/principal/ProtectionConfigImpl.java | 6 +- .../impl/principal/SyncHandlerMappingTracker.java | 4 +- .../external/AbstractExternalAuthTest.java | 3 +- .../external/basic/DefaultSyncContextTest.java | 3 +- .../external/impl/AbstractDynamicTest.java | 3 +- .../external/impl/AutoMembershipAwareTest.java | 5 +- .../external/impl/DefaultSyncHandlerTest.java | 7 +- .../external/impl/DynamicSyncContextTest.java | 10 +- .../external/impl/PrincipalResolutionTest.java | 4 +- .../impl/principal/AbstractPrincipalTest.java | 5 +- .../principal/AutoMembershipPrincipalsTest.java | 15 +- .../impl/principal/AutoMembershipProviderTest.java | 11 +- .../impl/principal/DynamicGroupUtilTest.java | 3 +- .../impl/principal/DynamicGroupValidatorTest.java | 6 +- .../ExternalGroupPrincipalProviderDMTest.java | 7 +- .../ExternalIdentityRepositoryInitializerTest.java | 4 +- .../ExternalPrincipalConfigurationTest.java | 3 +- .../PrincipalProviderAutoMembershipTest.java | 7 +- .../principal/SyncHandlerMappingTrackerTest.java | 2 +- .../impl/principal/SystemPrincipalConfigTest.java | 3 +- oak-auth-ldap/pom.xml | 2 +- .../ldap/impl/LdapIdentityProviderTest.java | 16 +- oak-authorization-cug/pom.xml | 2 +- .../cug/impl/CugAccessControlManager.java | 15 +- .../authorization/cug/impl/CugExcludeImpl.java | 4 +- .../authorization/cug/impl/NestedCugHook.java | 3 +- .../authorization/cug/impl/TopLevelPaths.java | 4 +- .../cug/impl/CugAccessControlManagerTest.java | 11 +- .../authorization/cug/impl/CugImportBaseTest.java | 4 +- .../cug/impl/CugPermissionProviderTest.java | 3 +- .../authorization/cug/impl/CugPolicyImplTest.java | 3 +- .../authorization/cug/impl/NestedCugHookTest.java | 3 +- .../authorization/cug/impl/VersionTest.java | 3 +- oak-authorization-principalbased/pom.xml | 2 +- .../principalbased/impl/FilterProviderImpl.java | 4 +- .../impl/PrincipalBasedAccessControlManager.java | 10 +- .../PrincipalBasedAuthorizationConfiguration.java | 4 +- .../impl/PrincipalPolicyImporter.java | 6 +- .../impl/PrincipalPolicyValidatorProvider.java | 2 +- .../impl/AbstractPrincipalBasedTest.java | 4 +- .../principalbased/impl/EffectivePolicyTest.java | 4 +- .../principalbased/impl/EntryIteratorTest.java | 4 +- .../principalbased/impl/ImportBaseTest.java | 4 +- .../impl/PermissionProviderVersionStoreTest.java | 4 +- .../principalbased/impl/PolicyValidatorTest.java | 3 +- .../impl/PrincipalPolicyImplTest.java | 4 +- .../impl/PrincipalPolicyImporterTest.java | 2 +- .../impl/ReadablePathsAccessControlTest.java | 9 +- .../impl/ReadablePathsPermissionTest.java | 9 +- .../impl/RepositoryPermissionTest.java | 4 +- oak-benchmarks-elastic/pom.xml | 2 +- oak-benchmarks-lucene/pom.xml | 2 +- .../jackrabbit/oak/benchmark/HybridIndexTest.java | 3 +- ...LucenePropertyFTIndexedContentAvailability.java | 4 - .../suites/ScalabilityBlobSearchSuite.java | 6 +- .../suites/ScalabilityNodeRelationshipSuite.java | 10 +- .../scalability/suites/ScalabilityNodeSuite.java | 12 +- oak-benchmarks-solr/pom.xml | 2 +- oak-benchmarks/pom.xml | 2 +- oak-benchmarks/run_comparison_against_baseline.sh | 387 ++++++ .../jackrabbit/oak/benchmark/AbstractTest.java | 12 +- .../oak/benchmark/ContinuousRevisionGCTest.java | 3 +- .../jackrabbit/oak/benchmark/RevisionGCTest.java | 3 +- .../authorization/AbstractHasItemGetItemTest.java | 4 +- .../permission/EagerCacheSizeTest.java | 3 +- .../principalbased/PrinicipalBasedReadTest.java | 7 +- .../benchmarks/search/ConcurrentReader.java | 3 - .../standby/StandbyBulkTransferBenchmark.java | 2 +- .../suites/ScalabilityAbstractSuite.java | 5 +- .../suites/ScalabilityStandbySuite.java | 2 +- oak-blob-cloud-azure/pom.xml | 2 +- .../azure/blobstorage/AzureDataStoreTest.java | 4 +- oak-blob-cloud/pom.xml | 2 +- .../jackrabbit/oak/blob/cloud/s3/S3Backend.java | 4 +- oak-blob-plugins/pom.xml | 2 +- .../blob/AbstractSharedCachingDataStore.java | 16 +- .../oak/plugins/blob/DataStoreCacheUtils.java | 11 +- .../jackrabbit/oak/plugins/blob/FileCache.java | 175 ++- .../plugins/blob/MarkSweepGarbageCollector.java | 38 +- .../oak/plugins/blob/datastore/BlobIdTracker.java | 6 +- .../plugins/blob/datastore/DataStoreBlobStore.java | 33 +- .../oak/plugins/blob/datastore/FSBackend.java | 7 +- .../plugins/blob/datastore/OakFileDataStore.java | 7 +- .../plugins/blob/AbstractDataStoreCacheTest.java | 4 +- .../jackrabbit/oak/plugins/blob/BlobGCTest.java | 9 +- .../oak/plugins/blob/CachingDataStoreTest.java | 15 +- .../plugins/blob/CompositeDataStoreCacheTest.java | 4 +- .../blob/ConsolidatedDataStoreStatsTest.java | 2 +- .../jackrabbit/oak/plugins/blob/FileCacheTest.java | 60 +- .../oak/plugins/blob/SharedDataStoreUtilsTest.java | 6 +- .../oak/plugins/blob/TimeLapsedDataStore.java | 3 +- .../oak/plugins/blob/UploadStagingCacheTest.java | 23 +- .../datastore/BlobIdTrackerClusterSharedTest.java | 6 +- .../plugins/blob/datastore/BlobIdTrackerTest.java | 6 +- .../blob/datastore/DataStoreBlobStoreTest.java | 4 +- .../blob/datastore/OakFileDataStoreTest.java | 3 +- .../blob/datastore/SharedDataStoreTest.java | 3 +- oak-blob/pom.xml | 2 +- .../jackrabbit/oak/spi/blob/AbstractBlobStore.java | 6 +- oak-commons/pom.xml | 6 +- .../apache/jackrabbit/oak/commons/FileIOUtils.java | 25 +- .../apache/jackrabbit/oak/commons/PerfLogger.java | 4 +- .../apache/jackrabbit/oak/commons/Profiler.java | 9 +- .../oak/commons/collections/CollectionUtils.java | 29 + .../oak/commons/collections/IterableUtils.java | 298 +++++ .../oak/commons/collections/IteratorUtils.java | 498 ++++++++ .../oak/commons/collections/SetUtils.java | 20 +- .../oak/commons/collections/package-info.java | 2 +- .../oak/commons/concurrent/ExecutorCloser.java | 2 - .../commons/concurrent/NotifyingFutureTask.java | 3 +- .../apache/jackrabbit/oak/commons/pio/Closer.java | 126 ++ .../commons/{conditions => pio}/package-info.java | 4 +- .../jackrabbit/oak/commons/time/Stopwatch.java | 164 +++ .../commons/{conditions => time}/package-info.java | 4 +- .../commons/{StopWatch.java => TestStopWatch.java} | 2 +- .../commons/collections/CollectionUtilsTest.java | 76 +- .../oak/commons/collections/IterableUtilsTest.java | 932 ++++++++++++++ .../oak/commons/collections/IteratorUtilsTest.java | 1293 ++++++++++++++++++++ .../oak/commons/collections/SetUtilsTest.java | 1 - .../oak/commons/json/JsopStreamTest.java | 4 +- .../jackrabbit/oak/commons/json/JsopTest.java | 4 +- .../jackrabbit/oak/commons/junit/LogDumper.java | 1 - .../oak/commons/junit/LogLevelModifier.java | 1 - .../jackrabbit/oak/commons/pio/CloserTest.java | 189 +++ .../oak/commons/sort/ExternalSortTest.java | 4 +- .../jackrabbit/oak/commons/time/StopwatchTest.java | 90 ++ oak-core-spi/pom.xml | 2 +- .../apache/jackrabbit/oak/commons/jmx/JmxUtil.java | 2 +- .../apache/jackrabbit/oak/namepath/NameMapper.java | 23 +- .../jackrabbit/oak/namepath/NamePathMapper.java | 12 + .../apache/jackrabbit/oak/namepath/PathMapper.java | 16 + .../jackrabbit/oak/namepath/package-info.java | 2 +- .../jackrabbit/oak/spi/mount/FragmentMatcher.java | 4 +- .../org/apache/jackrabbit/oak/spi/mount/Mount.java | 8 +- .../apache/jackrabbit/oak/spi/mount/MountInfo.java | 7 +- .../oak/spi/mount/MountInfoProvider.java | 2 +- .../jackrabbit/oak/spi/observation/ChangeSet.java | 14 +- .../org/apache/jackrabbit/oak/stats/Clock.java | 75 +- .../oak/stats/DefaultStatisticsProvider.java | 7 + .../stats/{HistogramStats.java => GaugeStats.java} | 12 +- .../apache/jackrabbit/oak/stats/SimpleStats.java | 19 +- .../jackrabbit/oak/stats/StatisticsProvider.java | 17 + .../apache/jackrabbit/oak/stats/package-info.java | 2 +- .../org/apache/jackrabbit/oak/stats/ClockTest.java | 104 +- .../oak/stats/DefaultStatisticsProviderTest.java | 9 +- .../jackrabbit/oak/stats/NonTickingTestClock.java | 17 +- .../jackrabbit/oak/stats/StatisticManagerTest.java | 8 +- oak-core/pom.xml | 9 +- .../main/java/org/apache/jackrabbit/oak/Oak.java | 22 +- .../jackrabbit/oak/core/SecureNodeBuilder.java | 9 +- .../jackrabbit/oak/core/SecureNodeState.java | 11 +- .../oak/namepath/impl/GlobalNameMapper.java | 34 + .../oak/namepath/impl/NamePathMapperImpl.java | 23 +- .../oak/plugins/atomic/AtomicCounterEditor.java | 20 +- .../atomic/AtomicCounterEditorProvider.java | 6 +- .../jackrabbit/oak/plugins/cow/COWNodeStore.java | 14 +- .../oak/plugins/identifier/IdentifierManager.java | 18 +- .../oak/plugins/index/AsyncIndexUpdate.java | 2 +- .../oak/plugins/index/AsyncIndexerService.java | 10 +- .../index/CompositeIndexEditorProvider.java | 38 +- .../oak/plugins/index/FormattingUtils.java | 2 +- .../oak/plugins/index/IndexEditorProvider.java | 4 +- .../oak/plugins/index/IndexInfoServiceImpl.java | 4 +- .../oak/plugins/index/IndexPathServiceImpl.java | 11 +- .../jackrabbit/oak/plugins/index/IndexUpdate.java | 47 +- .../oak/plugins/index/IndexUpdateProvider.java | 8 +- .../jackrabbit/oak/plugins/index/IndexUtils.java | 5 +- .../oak/plugins/index/MetricsFormatter.java | 2 +- .../jackrabbit/oak/plugins/index/MetricsUtils.java | 3 +- .../plugins/index/TrackingCorruptIndexHandler.java | 19 +- .../plugins/index/aggregate/AggregationCursor.java | 6 +- .../oak/plugins/index/cursor/AncestorCursor.java | 7 +- .../oak/plugins/index/cursor/PathCursor.java | 3 +- .../oak/plugins/index/cursor/TraversingCursor.java | 7 +- .../index/datastore/DataStoreTextWriter.java | 2 +- .../index/importer/IndexDefinitionUpdater.java | 87 +- .../oak/plugins/index/importer/IndexImporter.java | 23 +- .../oak/plugins/index/importer/NodeStoreUtils.java | 6 +- .../index/nodetype/NodeTypeIndexLookup.java | 5 +- .../index/progress/IndexingProgressReporter.java | 5 +- .../index/progress/SimpleRateEstimator.java | 4 +- .../oak/plugins/index/property/PropertyIndex.java | 22 +- .../index/property/PropertyIndexLookup.java | 5 +- .../plugins/index/property/PropertyIndexPlan.java | 5 +- .../plugins/index/property/RecursiveDelete.java | 6 +- .../index/property/jmx/PropertyIndexStats.java | 10 +- .../strategy/ContentMirrorStoreStrategy.java | 4 +- .../strategy/UniqueEntryStoreStrategy.java | 2 +- .../plugins/index/reference/ReferenceIndex.java | 10 +- .../oak/plugins/index/upgrade/IndexDisabler.java | 3 +- .../jackrabbit/oak/plugins/metric/GaugeImpl.java | 19 +- .../plugins/metric/MetricStatisticsProvider.java | 38 + .../migration/AbstractDecoratedNodeState.java | 13 +- .../oak/plugins/migration/FilteringNodeState.java | 10 +- .../oak/plugins/migration/NodeStateCopier.java | 22 +- .../migration/version/VersionHistoryUtil.java | 4 +- .../migration/version/VersionableEditor.java | 3 +- .../oak/plugins/name/NamespaceEditor.java | 3 +- .../plugins/nodetype/EffectiveNodeTypeImpl.java | 12 +- .../oak/plugins/nodetype/EffectiveType.java | 5 +- .../oak/plugins/nodetype/NodeTypeImpl.java | 6 +- .../plugins/nodetype/ReadOnlyNodeTypeManager.java | 2 +- .../oak/plugins/nodetype/TypeEditor.java | 8 +- .../oak/plugins/nodetype/TypePredicate.java | 4 +- .../oak/plugins/nodetype/TypeRegistration.java | 13 +- .../nodetype/write/NodeTypeTemplateImpl.java | 4 +- .../nodetype/write/ReadWriteNodeTypeManager.java | 14 +- .../plugins/observation/filter/FilterBuilder.java | 4 +- .../observation/filter/GlobbingPathFilter.java | 2 +- .../oak/plugins/tree/impl/AbstractTree.java | 29 +- .../oak/plugins/tree/impl/ImmutableTree.java | 6 +- .../tree/impl/OrderedChildnameIterator.java | 125 ++ .../oak/plugins/version/VersionHook.java | 5 - .../oak/plugins/version/VersionableState.java | 1 - .../org/apache/jackrabbit/oak/query/Query.java | 4 +- .../jackrabbit/oak/query/QueryEngineSettings.java | 19 +- .../oak/query/QueryEngineSettingsService.java | 16 + .../jackrabbit/oak/query/UnionQueryImpl.java | 5 +- .../jackrabbit/oak/query/ast/AstElement.java | 4 +- .../oak/query/ast/AstElementFactory.java | 3 +- .../oak/query/ast/FullTextSearchImpl.java | 49 +- .../jackrabbit/oak/query/ast/LowerCaseImpl.java | 4 +- .../jackrabbit/oak/query/index/FilterImpl.java | 5 + .../AuthenticationConfigurationImpl.java | 2 +- .../authentication/CallbackHandlerImpl.java | 8 +- .../token/TokenConfigurationImpl.java | 5 +- .../authentication/token/TokenLoginModule.java | 12 +- .../authentication/user/LoginModuleImpl.java | 16 +- .../authorization/AuthorizationContext.java | 4 +- .../authorization/AuthorizationInitializer.java | 4 +- .../security/authorization/accesscontrol/ACL.java | 6 +- .../accesscontrol/AccessControlManagerImpl.java | 5 +- .../accesscontrol/AccessControlValidator.java | 3 +- .../composite/CompositeAccessControlManager.java | 15 +- .../CompositeAuthorizationConfiguration.java | 12 +- .../authorization/permission/ChildOrderDiff.java | 4 +- .../permission/CompiledPermissionImpl.java | 6 +- .../authorization/restriction/CurrentPattern.java | 5 +- .../authorization/restriction/GlobPattern.java | 3 - .../authorization/restriction/GlobsPattern.java | 9 +- .../authorization/restriction/ItemNamePattern.java | 5 +- .../authorization/restriction/NodeTypePattern.java | 5 +- .../authorization/restriction/PrefixPattern.java | 7 +- .../restriction/RestrictionProviderImpl.java | 6 +- .../authorization/restriction/SubtreePattern.java | 3 +- .../oak/security/internal/Preconditions.java | 6 +- .../internal/SecurityProviderRegistration.java | 8 +- .../oak/security/principal/EveryoneFilter.java | 6 +- .../security/principal/PrincipalProviderImpl.java | 3 +- .../oak/security/user/AbstractGroupPrincipal.java | 5 +- .../oak/security/user/AuthorizableImpl.java | 2 +- .../oak/security/user/AuthorizableIterator.java | 9 +- .../oak/security/user/CacheConflictHandler.java | 16 +- .../user/CachedPrincipalMembershipReader.java | 4 +- .../security/user/DeclaredMembershipPredicate.java | 3 +- .../security/user/DynamicMembershipTracker.java | 5 +- .../security/user/EveryoneMembershipProvider.java | 5 +- .../jackrabbit/oak/security/user/GroupImpl.java | 2 +- .../oak/security/user/MembershipProvider.java | 12 +- .../oak/security/user/MembershipWriter.java | 10 +- .../oak/security/user/PasswordHistory.java | 4 +- .../security/user/RepMembersConflictHandler.java | 19 +- .../oak/security/user/UserAuthentication.java | 6 +- .../jackrabbit/oak/security/user/UserImporter.java | 27 +- .../oak/security/user/UserInitializer.java | 10 +- .../oak/security/user/UserManagerImpl.java | 6 +- .../oak/security/user/UserPrincipalProvider.java | 5 +- .../jackrabbit/oak/security/user/UserProvider.java | 29 +- .../user/autosave/AuthorizableWrapper.java | 5 +- .../user/autosave/AutoSaveEnabledManager.java | 2 +- .../oak/security/user/query/UserQueryManager.java | 9 +- .../jackrabbit/oak/core/SecureNodeBuilderTest.java | 5 +- .../oak/namepath/impl/GlobalNameMapperTest.java | 31 +- .../oak/namepath/impl/NamePathMapperImplTest.java | 21 + .../oak/plugins/index/AsyncIndexUpdateTest.java | 5 +- .../oak/plugins/index/FormattingUtilsTest.java | 76 +- .../index/importer/IndexDefinitionUpdaterTest.java | 96 +- .../plugins/index/importer/IndexImporterTest.java | 46 + .../index/property/AsyncPropertyIndexTest.java | 2 +- .../plugins/index/property/PropertyIndexTest.java | 5 +- .../strategy/ContentMirrorStoreStrategyTest.java | 1 - .../metric/MetricStatisticsProviderTest.java | 15 + .../plugins/migration/FilteringNodeStateTest.java | 5 +- .../filter/ChangeSetFilterImplTest.java | 2 +- .../oak/plugins/tree/impl/ImmutableTreeTest.java | 4 +- .../tree/impl/OrderedChildnameIterableTest.java | 147 +++ .../oak/plugins/tree/impl/TreeUtilTest.java | 7 +- .../jackrabbit/oak/query/AbstractQueryTest.java | 2 - .../AuthenticationConfigurationImplTest.java | 3 +- .../AuthorizationConfigurationImplOSGiTest.java | 6 +- .../AccessControlManagerImplTest.java | 4 +- .../EffectivePoliciesByPrincipalsAndPathsTest.java | 25 +- .../accesscontrol/RemappedPrivilegeNamesTest.java | 4 +- .../CompositeAccessControlManagerTest.java | 5 +- .../composite/CompositeProviderScopeTest.java | 4 +- .../evaluation/AbstractQueryTest.java | 8 +- .../evaluation/ChildOrderPropertyTest.java | 10 +- .../evaluation/TraversingQueryTest.java | 1 - .../MountPermissionProviderRandomTestIT.java | 4 +- .../permission/PermissionHookTest.java | 5 +- .../restriction/GlobsPatternTest.java | 4 +- .../internal/InternalSecurityProviderTest.java | 3 +- .../internal/SecurityProviderRegistrationTest.java | 7 +- .../principal/AbstractPrincipalProviderTest.java | 3 +- .../oak/security/principal/EveryoneFilterTest.java | 31 +- .../principal/PrincipalProviderImplErrorTest.java | 4 +- .../principal/PrincipalProviderImplTest.java | 9 +- .../oak/security/privilege/JcrAllTest.java | 4 +- .../privilege/PrivilegeDefinitionWriterTest.java | 4 +- .../oak/security/privilege/PrivilegeImplTest.java | 4 +- .../security/user/AbstractAddMembersByIdTest.java | 3 +- .../security/user/AbstractGroupPrincipalTest.java | 3 +- .../user/AddMembersByIdBestEffortTest.java | 14 +- .../security/user/AuthorizableIteratorTest.java | 15 +- .../security/user/CachedGroupPrincipalTest.java | 12 +- .../oak/security/user/DuplicateMembershipTest.java | 24 +- .../user/DynamicMembershipTrackerTest.java | 13 +- .../oak/security/user/GroupImplTest.java | 3 +- .../oak/security/user/ImpersonationImplTest.java | 5 +- .../user/InheritedMembersIteratorTest.java | 6 +- .../oak/security/user/MembershipBaseTest.java | 8 +- .../oak/security/user/MembershipProviderTest.java | 15 +- .../oak/security/user/MembershipTest.java | 8 +- .../oak/security/user/PasswordHistoryTest.java | 6 +- .../oak/security/user/UserContextTest.java | 3 +- .../oak/security/user/UserImporterTest.java | 3 +- .../oak/security/user/UserInitializerTest.java | 8 +- .../security/user/UserPrincipalProviderTest.java | 9 +- .../oak/security/user/action/GroupActionTest.java | 7 +- .../user/autosave/AuthorizableImplTest.java | 9 +- .../security/user/query/GroupPredicateTest.java | 4 +- .../security/user/query/ResultIteratorTest.java | 19 +- .../user/query/XPathConditionVisitorTest.java | 4 +- .../index/importer/index-def-jcruuid-fix.json | 24 + oak-doc-railroad-macro/pom.xml | 2 +- oak-doc/pom.xml | 2 +- oak-doc/src/site/markdown/constraints.md | 2 +- oak-doc/src/site/markdown/nodestore/compositens.md | 2 +- oak-doc/src/site/markdown/query/lucene.md | 46 +- .../security/authentication/externalloginmodule.md | 2 +- .../security/authentication/token/default.md | 2 +- oak-doc/src/site/markdown/security/user/default.md | 2 +- oak-examples/pom.xml | 2 +- oak-examples/standalone/pom.xml | 2 +- oak-examples/webapp/pom.xml | 4 +- oak-exercise/pom.xml | 8 +- .../external/CustomExternalIdentityProvider.java | 4 +- .../ReadOnlyAuthorizationConfiguration.java | 11 +- .../authorization/models/simplifiedroles/Role.java | 14 +- .../ThreeRolesPermissionProvider.java | 9 +- .../principal/CustomPrincipalProvider.java | 4 +- .../authentication/L3_LoginModuleTest.java | 6 +- .../advanced/L2_SetupAggregationTest.java | 24 +- .../advanced/L3_UnderstandAggregationTest.java | 10 +- .../L5_CustomPermissionEvaluationTest.java | 4 +- .../principalbased/AbstractPrincipalBasedTest.java | 4 +- .../security/principal/L3_EveryoneTest.java | 8 +- .../principal/L4_PrincipalProviderTest.java | 6 +- .../privilege/L3_BuiltInPrivilegesTest.java | 4 +- .../security/privilege/L4_CustomPrivilegeTest.java | 10 +- .../user/L10_RemovalAndMembershipTest.java | 4 +- .../exercise/security/user/L8_MembershipTest.java | 4 +- oak-http/pom.xml | 2 +- oak-it-osgi/pom.xml | 2 +- .../org/apache/jackrabbit/oak/osgi/OSGiIT.java | 5 + oak-it/pom.xml | 2 +- .../oak/composite/AtomicCompositeMergeTest.java | 2 +- .../oak/composite/CompositeNodeStoreTest.java | 10 +- .../index/AsyncIndexUpdateClusterTestIT.java | 3 +- .../jackrabbit/oak/spi/state/NodeStoreTest.java | 3 +- oak-jackrabbit-api/pom.xml | 2 +- .../apache/jackrabbit/api/JackrabbitSession.java | 26 +- .../jackrabbit/api/JackrabbitValueFactory.java | 4 - .../apache/jackrabbit/api/binary/BinaryUpload.java | 25 +- .../api/observation/JackrabbitEventFilter.java | 7 - .../security/JackrabbitAccessControlManager.java | 12 +- .../security/authorization/PrincipalSetPolicy.java | 2 +- .../authorization/PrivilegeCollection.java | 2 +- .../jackrabbit/api/security/user/Authorizable.java | 4 +- .../jackrabbit/api/security/user/UserManager.java | 16 +- oak-jcr/pom.xml | 3 +- .../java/org/apache/jackrabbit/oak/jcr/Jcr.java | 4 +- .../oak/jcr/delegate/AuthorizableDelegator.java | 5 +- .../oak/jcr/delegate/GroupDelegator.java | 5 +- .../jackrabbit/oak/jcr/delegate/NodeDelegate.java | 11 +- .../oak/jcr/delegate/UserManagerDelegator.java | 7 +- .../oak/jcr/delegate/VersionHistoryDelegate.java | 3 +- .../jackrabbit/oak/jcr/delegate/package-info.java | 16 +- .../oak/jcr/observation/EventFactory.java | 5 +- .../jackrabbit/oak/jcr/session/ItemImpl.java | 57 +- .../jackrabbit/oak/jcr/session/NodeImpl.java | 18 +- .../jackrabbit/oak/jcr/session/SessionContext.java | 12 + .../jackrabbit/oak/jcr/session/SessionImpl.java | 22 + .../oak/jcr/session/SessionNamespaces.java | 6 +- .../oak/jcr/version/VersionHistoryImpl.java | 7 +- .../jackrabbit/oak/jcr/xml/ImporterImpl.java | 6 +- .../jackrabbit/oak/jcr/AbstractRepositoryTest.java | 2 +- .../jackrabbit/oak/jcr/BaseRepositoryStub.java | 2 +- .../oak/jcr/CompatibilityIssuesTest.java | 4 +- .../apache/jackrabbit/oak/jcr/ConcurrentAddIT.java | 7 +- .../oak/jcr/ConcurrentAddReferenceTest.java | 5 +- .../jackrabbit/oak/jcr/DocumentClusterIT.java | 5 +- .../jackrabbit/oak/jcr/JackrabbitNodeTest.java | 15 + .../jackrabbit/oak/jcr/LargeOperationIT.java | 6 +- .../jackrabbit/oak/jcr/OakRepositoryStub.java | 5 +- .../oak/jcr/OakSegmentTarRepositoryStub.java | 2 +- .../jackrabbit/oak/jcr/ObservationQueueTest.java | 6 +- .../jackrabbit/oak/jcr/OperationLoggerTest.java | 4 +- .../apache/jackrabbit/oak/jcr/PropertyTest.java | 9 +- .../jackrabbit/oak/jcr/binary/BinaryAccessIT.java | 3 +- .../oak/jcr/observation/ObservationTest.java | 4 +- .../security/user/GroupImportBestEffortTest.java | 6 +- .../jcr/security/user/GroupImportIgnoreTest.java | 5 +- .../oak/jcr/security/user/UserQueryTest.java | 35 +- .../oak/jcr/session/JackrabbitSessionTest.java | 23 +- .../jackrabbit/oak/query/AbstractJcrTest.java | 3 +- oak-lucene/pom.xml | 2 +- .../ActiveDeletedBlobCollectorMBeanImpl.java | 4 +- .../oak/plugins/index/lucene/IndexCopier.java | 7 +- .../oak/plugins/index/lucene/IndexTracker.java | 4 +- .../oak/plugins/index/lucene/LuceneIndex.java | 16 +- .../plugins/index/lucene/LuceneIndexMBeanImpl.java | 10 +- .../index/lucene/LuceneIndexNodeManager.java | 4 +- .../index/lucene/LuceneIndexWriterFactory.java | 2 +- .../plugins/index/lucene/LucenePropertyIndex.java | 28 +- .../ActiveDeletedBlobCollectorFactory.java | 8 +- .../lucene/directory/CopyOnReadDirectory.java | 4 +- .../lucene/directory/CopyOnWriteDirectory.java | 4 +- .../lucene/directory/IndexConsistencyChecker.java | 4 +- .../index/lucene/directory/IndexRootDirectory.java | 4 +- .../index/lucene/directory/LuceneIndexDumper.java | 2 +- .../lucene/directory/LuceneIndexImporter.java | 2 +- .../index/lucene/directory/OakDirectory.java | 4 +- .../plugins/index/lucene/hybrid/IndexedPaths.java | 3 +- .../index/lucene/hybrid/LuceneDocumentHolder.java | 6 +- .../index/lucene/property/BucketSwitcher.java | 4 +- .../lucene/property/HybridPropertyIndexInfo.java | 4 +- .../lucene/property/HybridPropertyIndexLookup.java | 9 +- .../lucene/property/PropertyIndexCleaner.java | 3 +- .../property/PropertyIndexUpdateCallback.java | 6 +- .../property/UniquenessConstraintValidator.java | 9 +- .../index/lucene/reader/DefaultIndexReader.java | 2 +- .../index/lucene/util/IndexDefinitionBuilder.java | 6 +- .../StatisticalSortedSetDocValuesFacetCounts.java | 2 +- .../plugins/index/lucene/util/SuggestHelper.java | 2 +- .../index/lucene/writer/DefaultIndexWriter.java | 4 +- .../index/lucene/writer/IndexWriterPool.java | 27 +- .../lucene/writer/MultiplexingIndexWriter.java | 10 +- .../lucene/writer/PooledLuceneIndexWriter.java | 3 +- .../java/org/apache/lucene/index/IndexWriter.java | 2 +- .../oak/composite/blueGreen/Persistence.java | 2 +- .../ActiveDeletedBlobCollectorMBeanImplTest.java | 4 +- .../lucene/AsyncIndexStatsUpdateCallbackTest.java | 29 +- .../lucene/AsyncIndexUpdateCorruptMarkingTest.java | 7 +- .../plugins/index/lucene/BadIndexTrackerTest.java | 13 +- .../index/lucene/IndexAugmentorFactoryTest.java | 3 +- .../index/lucene/IndexCopierCleanupTest.java | 2 +- .../oak/plugins/index/lucene/IndexCopierTest.java | 2 +- .../oak/plugins/index/lucene/IndexTrackerTest.java | 9 +- .../lucene/IndexlaneRepositoryTraversalTest.java | 14 +- .../oak/plugins/index/lucene/InvalidIndexTest.java | 6 +- .../index/lucene/LuceneFullTextIndexTest.java | 10 + .../oak/plugins/index/lucene/LuceneIndexTest.java | 4 +- .../index/lucene/LucenePropertyIndexTest.java | 6 +- .../index/lucene/LuceneTestRepositoryBuilder.java | 13 +- .../index/lucene/ReopenedLuceneIndexTest.java | 2 +- .../oak/plugins/index/lucene/VirtualTicker.java | 41 - .../directory/AbstractActiveDeletedBlobTest.java | 8 +- .../directory/ActiveDeletedBlobCollectorTest.java | 6 +- .../ConcurrentCopyOnReadDirectoryTest.java | 3 +- .../lucene/directory/CopyOnWriteDirectoryTest.java | 3 +- .../lucene/directory/OakDirectoryTestBase.java | 6 +- .../index/lucene/hybrid/DocumentQueueTest.java | 2 +- .../index/lucene/hybrid/HybridIndexTest.java | 4 +- .../hybrid/LuceneJournalPropertyBuilderTest.java | 3 +- .../invalidData/InvalidIndexDefinitionTest.java | 29 +- .../property/LuceneIndexPropertyQueryTest.java | 3 +- .../index/lucene/property/RecursiveDeleteTest.java | 4 +- .../util/LuceneIndexDefinitionBuilderTest.java | 3 +- .../index/lucene/util/TapeSamplingTest.java | 4 +- .../ConcurrentMultiplexingIndexWriterTest.java | 63 +- .../index/lucene/writer/FailedIndexUpdateTest.java | 2 +- .../lucene/writer/MultiplexingIndexWriterTest.java | 3 +- oak-parent/pom.xml | 77 +- oak-pojosr/pom.xml | 2 +- .../jackrabbit/oak/run/osgi/SpringBootSupport.java | 3 +- oak-query-spi/pom.xml | 11 +- .../apache/jackrabbit/oak/spi/query/Filter.java | 8 + .../jackrabbit/oak/spi/query/QueryLimits.java | 4 + .../oak/spi/query/fulltext/VectorQuery.java | 109 ++ .../oak/spi/query/fulltext/VectorQueryConfig.java | 53 + .../oak/spi/query/fulltext/package-info.java | 2 +- .../jackrabbit/oak/spi/query/package-info.java | 2 +- .../fulltext/VectorQueryCompatibilityModeTest.java | 64 + .../spi/query/fulltext/VectorQueryConfigTest.java | 45 +- .../oak/spi/query/fulltext/VectorQueryTest.java | 138 +++ oak-run-commons/pom.xml | 2 +- .../apache/jackrabbit/oak/index/IndexHelper.java | 2 +- .../oak/index/IndexImporterSupportBase.java | 20 +- .../jackrabbit/oak/index/OutOfBandIndexerBase.java | 4 +- .../oak/index/async/AsyncIndexerBase.java | 2 +- .../index/indexer/document/CompositeIndexer.java | 18 +- .../indexer/document/DocumentStoreIndexerBase.java | 92 +- .../indexer/document/NodeStateEntryTraverser.java | 9 +- .../document/flatfile/ChildNodeStateProvider.java | 9 +- .../flatfile/DefaultAheadOfTimeBlobDownloader.java | 4 +- .../flatfile/FlatFileNodeStoreBuilder.java | 4 +- .../indexer/document/flatfile/FlatFileStore.java | 2 +- .../document/flatfile/FlatFileStoreIterator.java | 7 +- .../document/flatfile/NodeStateEntrySorter.java | 3 +- .../document/flatfile/PathElementComparator.java | 4 +- .../document/flatfile/StoreAndSortStrategy.java | 2 +- .../flatfile/TraverseWithSortStrategy.java | 2 +- .../document/flatfile/analysis/StatsBuilder.java | 64 +- .../analysis/modules/DistinctBinarySize.java | 8 +- .../analysis/stream/NodeStreamConverter.java | 103 -- .../stream/NodeStreamConverterCompressed.java | 134 -- .../flatfile/analysis/stream/NodeStreamReader.java | 166 --- .../stream/NodeStreamReaderCompressed.java | 155 --- ...odeLineReader.java => NodeTreeStoreReader.java} | 130 +- .../flatfile/linkedList/PersistedLinkedListV2.java | 4 +- .../flatfile/pipelined/PipelinedMergeSortTask.java | 2 +- .../pipelined/PipelinedMongoDownloadTask.java | 2 +- .../flatfile/pipelined/PipelinedSortBatchTask.java | 2 +- .../flatfile/pipelined/PipelinedStrategy.java | 2 +- .../flatfile/pipelined/PipelinedTransformTask.java | 2 +- .../pipelined/PipelinedTreeStoreStrategy.java | 9 +- .../flatfile/pipelined/PipelinedTreeStoreTask.java | 8 +- .../flatfile/pipelined/PipelinedUtils.java | 2 +- .../document/flatfile/pipelined/ThreadMonitor.java | 2 +- .../IncrementalFlatFileStoreStrategy.java | 2 +- .../incrementalstore/IncrementalStoreBuilder.java | 11 +- .../MergeIncrementalTreeStore.java | 10 +- .../index/indexer/document/tree/Prefetcher.java | 6 +- .../oak/index/indexer/document/tree/TreeStore.java | 6 +- .../indexer/document/tree/TreeStoreNodeState.java | 7 +- .../indexer/document/tree/TreeStoreUtils.java | 2 +- .../indexer/document/tree/store/FileStore.java | 3 - .../indexer/document/tree/store/TreeSession.java | 5 - .../oak/indexversion/PurgeOldIndexVersion.java | 27 +- .../plugins/document/DocumentNodeStoreHelper.java | 9 +- .../oak/run/cli/BlobStoreFixtureProvider.java | 2 +- .../oak/run/cli/DocumentFixtureProvider.java | 2 +- .../oak/run/cli/NodeStoreFixtureProvider.java | 22 +- .../org/apache/jackrabbit/oak/run/cli/Options.java | 4 +- .../oak/run/cli/SegmentFixtureProvider.java | 2 +- .../oak/run/cli/SegmentTarFixtureProvider.java | 7 +- .../flatfile/ChildNodeStateProviderTest.java | 6 +- .../document/flatfile/CountingIterable.java | 3 +- .../flatfile/FlatFileStoreIteratorTest.java | 4 +- .../index/indexer/document/flatfile/TestUtils.java | 4 +- .../flatfile/analysis/stream/NodeStreamTest.java | 98 -- .../flatfile/analysis/stream/VarIntTest.java | 45 - .../linkedList/FlatFileBufferLinkedListTest.java | 18 +- .../document/flatfile/pipelined/PipelinedIT.java | 50 +- .../PipelinedMongoConnectionFailureIT.java | 6 +- .../flatfile/pipelined/PipelinedTreeStoreIT.java | 51 +- oak-run-elastic/pom.xml | 4 +- .../oak/index/ElasticDocumentStoreIndexer.java | 24 +- .../jackrabbit/oak/index/ElasticIndexCommand.java | 5 +- .../oak/index/ElasticIndexImporterSupport.java | 2 +- .../oak/index/ElasticOutOfBandIndexer.java | 4 +- .../oak/index/async/AsyncIndexerElastic.java | 2 +- .../indexer/document/ElasticIndexerProvider.java | 24 +- .../index/indexer/document/ElasticIndexerTest.java | 6 +- oak-run/pom.xml | 2 +- .../oak/console/commands/CdCommand.groovy | 3 +- .../oak/console/commands/LsCommand.groovy | 4 +- .../jackrabbit/oak/checkpoint/Checkpoints.java | 3 +- .../oak/checkpoint/SegmentTarCheckpoints.java | 2 +- .../AbstractSegmentTarExplorerBackend.java | 3 +- .../explorer/AzureSegmentStoreExplorerBackend.java | 6 +- .../oak/exporter/NodeStateExportCommand.java | 2 +- .../apache/jackrabbit/oak/index/IndexCommand.java | 4 +- .../oak/index/IndexConsistencyCheckPrinter.java | 2 +- .../jackrabbit/oak/index/OutOfBandIndexer.java | 3 +- .../oak/index/async/AsyncIndexerLucene.java | 6 +- .../indexer/document/DocumentStoreIndexer.java | 13 +- .../oak/index/merge/IndexDefMergerUtils.java | 117 +- .../oak/index/merge/IndexStoreCommand.java | 4 +- .../oak/index/merge/IndexStoreStatsCommand.java | 75 ++ .../plugins/document/check/DocumentStoreCheck.java | 3 +- .../jackrabbit/oak/plugins/document/check/ETA.java | 2 +- .../oak/plugins/document/check/Summary.java | 3 +- .../mongo/MongoDocumentStoreCheckHelper.java | 4 +- .../tika/CSVFileBinaryResourceProvider.java | 2 +- .../oak/plugins/tika/CSVFileGenerator.java | 2 +- .../oak/plugins/tika/TextExtractorMain.java | 3 +- .../jackrabbit/oak/plugins/tika/TextPopulator.java | 4 +- .../apache/jackrabbit/oak/run/AvailableModes.java | 4 +- .../jackrabbit/oak/run/CheckpointsCommand.java | 5 +- .../jackrabbit/oak/run/ClusterNodesCommand.java | 3 +- .../jackrabbit/oak/run/CreateGarbageCommand.java | 2 +- .../jackrabbit/oak/run/DataStoreCheckCommand.java | 30 +- .../jackrabbit/oak/run/DataStoreCommand.java | 15 +- .../oak/run/DocumentStoreCheckCommand.java | 3 +- .../jackrabbit/oak/run/FileStoreDiffCommand.java | 31 +- .../apache/jackrabbit/oak/run/FrozenNodeRef.java | 3 +- .../oak/run/FrozenNodeRefsByScanningCommand.java | 2 +- .../oak/run/FrozenNodeRefsUsingIndexCommand.java | 3 +- ...mand.java => FullGCMetricsExporterFixture.java} | 15 +- ...a => FullGCMetricsExporterFixtureProvider.java} | 98 +- .../apache/jackrabbit/oak/run/GarbageCommand.java | 2 +- .../run/GenerateVersionInconsistencyReport.java | 2 +- .../apache/jackrabbit/oak/run/PrintingDiff.java | 4 +- .../apache/jackrabbit/oak/run/RecoveryCommand.java | 4 +- .../apache/jackrabbit/oak/run/RepairCommand.java | 3 +- .../jackrabbit/oak/run/ResetClusterIdCommand.java | 3 +- .../jackrabbit/oak/run/RevisionsCommand.java | 68 +- .../java/org/apache/jackrabbit/oak/run/Utils.java | 2 +- .../oak/index/DocumentStoreIndexerIT.java | 6 +- .../org/apache/jackrabbit/oak/index/ReindexIT.java | 4 +- .../index/merge/IndexDefMergerScenariosTest.java | 1 + .../oak/index/merge/IndexDefMergerTest.java | 82 +- .../oak/plugins/document/CommandTestUtils.java | 13 +- .../plugins/document/CreateGarbageCommandTest.java | 2 +- .../oak/plugins/document/RevisionsCommandTest.java | 36 +- .../jackrabbit/oak/run/DataStoreCheckTest.java | 24 +- .../jackrabbit/oak/run/DataStoreCommandTest.java | 14 +- .../oak/run/FrozenNodeReferenceCreator.java | 7 +- .../run/RevisionsCommandCustomBlobStoreTest.java | 8 +- .../oak/index/merge/merge-override-tags-type.json | 54 + .../apache/jackrabbit/oak/index/merge/merge.txt | 7 + oak-search-elastic/pom.xml | 18 +- .../index/elastic/ElasticIndexDefinition.java | 52 +- .../index/elastic/ElasticIndexImporter.java | 1 - .../index/elastic/ElasticIndexProviderService.java | 142 +-- .../index/elastic/ElasticIndexStatistics.java | 29 +- .../index/elastic/ElasticMetricHandler.java | 33 +- .../index/elastic/ElasticPropertyDefinition.java | 205 ++-- .../elastic/index/ElasticBulkProcessorHandler.java | 625 ++++++---- .../index/elastic/index/ElasticCustomAnalyzer.java | 142 ++- .../index/ElasticCustomAnalyzerMappings.java | 11 +- .../index/elastic/index/ElasticDocument.java | 26 +- .../index/elastic/index/ElasticDocumentMaker.java | 39 +- .../elastic/index/ElasticIndexEditorContext.java | 2 +- .../elastic/index/ElasticIndexEditorProvider.java | 27 +- .../index/elastic/index/ElasticIndexHelper.java | 156 ++- .../index/elastic/index/ElasticIndexWriter.java | 89 +- .../elastic/index/ElasticIndexWriterFactory.java | 6 +- .../index/elastic/query/ElasticRequestHandler.java | 459 +++++-- .../elastic/query/ElasticSpellcheckIterator.java | 4 +- .../elastic/query/ElasticSuggestIterator.java | 1 - .../query/async/ElasticResultRowAsyncIterator.java | 13 +- .../query/async/facets/ElasticFacetProvider.java | 1 - .../facets/ElasticSecureFacetAsyncProvider.java | 8 +- .../ElasticStatisticalFacetAsyncProvider.java | 14 +- .../elastic/query/inference/EnricherStatus.java | 114 ++ .../elastic/query/inference/InferenceConfig.java | 299 +++++ ...rviceException.java => InferenceConstants.java} | 22 +- .../query/inference/InferenceHeaderPayload.java | 76 ++ .../query/inference/InferenceIndexConfig.java | 134 ++ .../query/inference/InferenceMBeanImpl.java | 49 + .../query/inference/InferenceModelConfig.java | 180 +++ .../elastic/query/inference/InferencePayload.java | 100 ++ .../elastic/query/inference/InferenceService.java | 91 +- .../query/inference/InferenceServiceManager.java | 22 +- .../query/inference/InferenceServiceMetrics.java | 222 ++++ .../inference/InferenceServiceUsingConfig.java | 152 +++ ....java => InferenceServiceUsingIndexConfig.java} | 75 +- .../index/elastic/util/ElasticIndexUtils.java | 92 +- .../util/EnvironmentVariableProcessorUtil.java | 54 + .../index/elastic/ElasticAbstractQueryTest.java | 94 +- .../index/elastic/ElasticConnectionRule.java | 2 +- .../plugins/index/elastic/ElasticContentTest.java | 27 +- .../index/elastic/ElasticDynamicBoostTest.java | 2 +- .../plugins/index/elastic/ElasticFacetTest.java | 3 +- .../index/elastic/ElasticFullTextIndexTest.java | 39 + .../elastic/ElasticIndexAggregationNtFileTest.java | 12 +- .../index/elastic/ElasticIndexAggregationTest.java | 82 ++ .../elastic/ElasticIndexProviderServiceTest.java | 24 +- .../index/elastic/ElasticIndexQueryCommonTest.java | 13 +- .../index/elastic/ElasticIndexStatisticsTest.java | 27 +- .../elastic/ElasticIndexSuggestionCommonTest.java | 5 +- .../index/elastic/ElasticInferenceTest.java | 5 +- .../oak/plugins/index/elastic/ElasticPerfTest.java | 5 +- .../elastic/ElasticPropertyIndexFailuresTest.java | 94 ++ .../ElasticPropertyIndexNonFailureTest.java | 118 ++ .../index/elastic/ElasticPropertyIndexTest.java | 199 +-- .../elastic/ElasticRegexPropertyIndexTest.java | 134 ++ .../plugins/index/elastic/ElasticReindexTest.java | 2 +- .../index/elastic/ElasticReliabilityTest.java | 4 +- .../index/elastic/ElasticSimilarQueryTest.java | 8 +- .../elastic/ElasticTestRepositoryBuilder.java | 8 +- .../plugins/index/elastic/ElasticTestServer.java | 1 + .../index/ElasticBulkProcessorHandlerTest.java | 102 +- ...cDocumentMakerLargeStringPropertiesLogTest.java | 2 +- .../elastic/index/ElasticIndexHelperTest.java | 233 +++- .../elastic/index/ElasticIndexWriterTest.java | 43 +- .../inference/ElasticInferenceUsingConfigTest.java | 804 ++++++++++++ .../InferenceConfigSerializationTest.java | 365 ++++++ .../query/inference/InferenceConfigTest.java | 999 +++++++++++++++ .../inference/InferenceServiceMetricsTest.java | 256 ++++ .../elastic/query/inference/VectorDocument.java | 50 +- .../index/elastic/util/ElasticIndexUtilsTest.java | 141 +++ .../content/cars.json | 0 .../content/health.json | 0 .../content/ml.json | 0 .../content/programming.json | 0 .../content/yoga.json | 0 ...inner_guide_to_data_manipulation_in_python.json | 1040 ++++++++++++++++ .../queries/delayed/farming_practices.json | 0 .../queries/faulty/machine_learning.json | 0 ...to_improve_mental_health_through_exercises.json | 1040 ++++++++++++++++ ...tritional_advice_for_a_healthier_lifestyle.json | 1040 ++++++++++++++++ ...ological_advancements_in_electric_vehicles.json | 1040 ++++++++++++++++ ...he_key_algorithms_used_in_machine_learning.json | 1040 ++++++++++++++++ oak-search/pom.xml | 2 +- .../oak/plugins/index/search/Aggregate.java | 186 ++- .../oak/plugins/index/search/BadIndexTracker.java | 17 +- .../oak/plugins/index/search/FieldNames.java | 5 + .../oak/plugins/index/search/IndexDefinition.java | 133 +- .../plugins/index/search/PropertyDefinition.java | 9 +- .../index/search/spi/editor/DocumentMaker.java | 25 +- .../search/spi/editor/FulltextDocumentMaker.java | 79 +- .../search/spi/editor/FulltextIndexEditor.java | 609 ++++----- .../spi/editor/FulltextIndexEditorContext.java | 484 ++++---- .../search/spi/editor/FulltextIndexWriter.java | 4 +- .../spi/editor/FulltextIndexWriterFactory.java | 7 +- .../search/spi/query/FulltextIndexPlanner.java | 3 +- .../search/spi/query/FulltextIndexTracker.java | 4 +- .../index/search/update/RefreshOnReadPolicy.java | 4 +- .../oak/plugins/index/search/util/ConfigUtil.java | 6 +- .../index/search/util/IndexDefinitionBuilder.java | 6 +- .../plugins/index/search/util/LMSEstimator.java | 2 +- .../plugins/index/FullTextAnalyzerCommonTest.java | 192 ++- .../oak/plugins/index/FullTextIndexCommonTest.java | 132 +- .../plugins/index/IndexAggregation2CommonTest.java | 6 - .../oak/plugins/index/IndexPlannerCommonTest.java | 2 +- .../oak/plugins/index/OrderByCommonTest.java | 4 +- .../oak/plugins/index/search/AggregateTest.java | 7 +- .../index/search/util/TapeSamplingTest.java | 4 +- oak-security-spi/pom.xml | 2 +- .../jackrabbit/oak/plugins/tree/TreeType.java | 10 +- .../jackrabbit/oak/plugins/tree/TreeUtil.java | 4 +- .../oak/spi/security/CompositeConfiguration.java | 8 +- .../oak/spi/security/ConfigurationParameters.java | 8 +- .../authentication/AbstractLoginModule.java | 50 +- .../spi/security/authentication/AuthInfoImpl.java | 4 +- .../security/authentication/GuestLoginModule.java | 4 +- .../credentials/SimpleCredentialsSupport.java | 5 +- .../security/authorization/accesscontrol/ACE.java | 4 +- .../accesscontrol/AccessControlConstants.java | 23 +- .../permission/PermissionProvider.java | 2 - .../restriction/AbstractRestrictionProvider.java | 4 +- .../principal/CompositePrincipalProvider.java | 5 +- .../privilege/ImmutablePrivilegeDefinition.java | 10 +- .../security/privilege/PrivilegeBitsProvider.java | 22 +- .../oak/spi/security/user/UserConstants.java | 2 +- .../security/user/action/AccessControlAction.java | 8 +- .../security/user/action/AuthorizableAction.java | 10 +- .../oak/spi/security/user/action/GroupAction.java | 12 +- .../user/action/PasswordValidationAction.java | 4 +- .../oak/spi/security/user/action/UserAction.java | 3 +- .../jackrabbit/oak/plugins/tree/TreeUtilTest.java | 11 +- .../spi/security/CompositeConfigurationTest.java | 3 +- .../spi/security/ConfigurationParametersTest.java | 4 +- .../oak/spi/security/OpenSecurityProviderTest.java | 3 +- .../security/authentication/AuthInfoImplTest.java | 3 +- .../authorization/accesscontrol/ACETest.java | 4 +- .../accesscontrol/ImmutableACLTest.java | 4 +- .../authorization/permission/PermissionsTest.java | 3 +- .../AbstractRestrictionProviderTest.java | 4 +- .../principal/CompositePrincipalProviderTest.java | 8 +- .../principal/PrincipalManagerImplTest.java | 21 +- .../security/principal/TestPrincipalProvider.java | 7 +- .../privilege/PrivilegeBitsProviderTest.java | 5 +- .../spi/security/privilege/PrivilegeUtilTest.java | 4 +- .../user/action/ClearMembershipActionTest.java | 5 +- .../oak/spi/xml/ReferenceChangeTrackerTest.java | 5 +- oak-segment-aws/pom.xml | 8 +- .../oak/segment/aws/AwsSegmentArchiveWriter.java | 3 +- .../oak/segment/aws/tool/AwsCompact.java | 2 +- .../oak/segment/aws/tool/AwsSegmentCopy.java | 3 +- .../oak/segment/aws/tool/AwsToolUtils.java | 4 +- oak-segment-azure/pom.xml | 10 +- .../azure/AzureHttpRequestLoggingPolicy.java | 2 +- .../oak/segment/azure/AzurePersistence.java | 4 + .../oak/segment/azure/AzurePersistenceManager.java | 77 +- .../oak/segment/azure/AzureRepositoryLock.java | 65 +- .../segment/azure/AzureSegmentArchiveWriter.java | 2 +- .../oak/segment/azure/AzureUtilities.java | 4 +- .../oak/segment/azure/tool/AzureCheck.java | 45 +- .../oak/segment/azure/tool/AzureCompact.java | 131 +- .../oak/segment/azure/tool/SegmentCopy.java | 16 +- .../segment/azure/tool/SegmentStoreMigrator.java | 19 +- .../oak/segment/azure/tool/ToolUtils.java | 76 +- .../azure/util/AzureConfigurationParserUtils.java | 5 +- .../segment/azure/util/AzureRequestOptions.java | 66 +- .../azure/v8/AzureSegmentArchiveWriterV8.java | 2 +- .../AzureHttpRequestLoggingTestingPolicy.java | 2 +- .../segment/azure/AzurePersistenceManagerTest.java | 142 +++ .../SegmentCopyAzureServicePrincipalToTarTest.java | 20 +- .../segment/azure/tool/SegmentCopyTestBase.java | 2 +- .../oak/segment/azure/tool/ToolUtilsTest.java | 96 +- .../segment/azure/v8/AzureSegmentStoreV8Test.java | 12 +- oak-segment-remote/pom.xml | 7 +- .../remote/AbstractRemoteSegmentArchiveReader.java | 3 +- .../remote/persistentcache/DiskCacheIOMonitor.java | 12 +- .../persistentcache/PersistentDiskCache.java | 3 +- .../persistentcache/PersistentRedisCache.java | 2 +- .../persistentcache/RedisCacheIOMonitor.java | 8 +- .../RemotePersistentCacheService.java | 4 +- oak-segment-tar/pom.xml | 15 +- .../oak/backup/impl/FileStoreBackupImpl.java | 2 +- .../oak/backup/impl/FileStoreRestoreImpl.java | 2 +- .../oak/segment/CheckpointCompactor.java | 4 +- .../jackrabbit/oak/segment/CommitsTracker.java | 14 +- .../oak/segment/DefaultSegmentWriter.java | 14 +- .../apache/jackrabbit/oak/segment/MapRecord.java | 6 +- .../oak/segment/SegmentBufferMonitor.java | 8 +- .../jackrabbit/oak/segment/SegmentNodeState.java | 5 +- .../oak/segment/SegmentNodeStoreFactory.java | 2 +- .../oak/segment/SegmentNodeStoreRegistrar.java | 4 +- .../oak/segment/SegmentNodeStoreService.java | 2 +- .../oak/segment/SegmentNodeStoreStats.java | 8 +- .../jackrabbit/oak/segment/WriterCacheManager.java | 4 +- ...java => AbstractGarbageCollectionStrategy.java} | 53 +- .../file/CleanupFirstCompactionStrategy.java | 20 +- .../CleanupFirstGarbageCollectionStrategy.java | 33 +- .../oak/segment/file/CleanupStrategy.java | 3 +- .../oak/segment/file/CompactionResult.java | 8 + .../oak/segment/file/DefaultCleanupContext.java | 7 +- .../oak/segment/file/DefaultCleanupStrategy.java | 15 +- .../file/DefaultGarbageCollectionStrategy.java | 303 +---- .../jackrabbit/oak/segment/file/FileStore.java | 2 +- .../jackrabbit/oak/segment/file/GCJournal.java | 22 +- .../oak/segment/file/GarbageCollector.java | 6 +- .../oak/segment/file/MetricsIOMonitor.java | 8 +- .../oak/segment/file/PrintableStopwatch.java | 4 +- .../oak/segment/file/ReadOnlyFileStore.java | 2 +- .../SynchronizedGarbageCollectionStrategy.java | 38 +- .../oak/segment/file/tar/GCGeneration.java | 6 +- .../oak/segment/file/tar/SegmentTarReader.java | 3 +- .../oak/segment/file/tar/SegmentTarWriter.java | 3 +- .../jackrabbit/oak/segment/file/tar/TarFiles.java | 4 +- .../jackrabbit/oak/segment/file/tar/TarReader.java | 4 +- .../oak/segment/file/tooling/RevisionHistory.java | 3 +- .../spi/monitor/RoleStatisticsProvider.java | 8 + .../segment/spi/persistence/JournalFileWriter.java | 4 +- .../spi/persistence/SegmentArchiveWriter.java | 12 +- .../persistentcache/AbstractPersistentCache.java | 3 +- .../standby/client/StandbyClientSyncExecution.java | 3 +- .../segment/standby/store/StandbyStoreService.java | 2 +- .../jackrabbit/oak/segment/tool/Compact.java | 2 +- .../jackrabbit/oak/segment/tool/PrintingDiff.java | 4 +- .../apache/jackrabbit/oak/segment/tool/Utils.java | 3 +- .../oak/segment/CacheWeightEstimator.java | 2 - .../jackrabbit/oak/segment/CancelableDiffTest.java | 3 +- .../jackrabbit/oak/segment/CommitsTrackerTest.java | 6 +- .../oak/segment/ExternalBlobReferenceTest.java | 8 +- .../jackrabbit/oak/segment/ManyChildNodesIT.java | 2 +- .../oak/segment/MutableSegmentReferencesTest.java | 4 +- .../apache/jackrabbit/oak/segment/RecordTest.java | 2 +- .../oak/segment/SegmentBufferMonitorTest.java | 7 + .../oak/segment/SegmentCompactionIT.java | 15 +- .../oak/segment/SegmentDataStoreBlobGCIT.java | 2 +- .../oak/segment/SegmentOverflowExceptionIT.java | 8 +- .../file/DefaultGarbageCollectionStrategyTest.java | 65 +- .../file/FullSizeDeltaEstimationStrategyTest.java | 42 +- .../jackrabbit/oak/segment/file/GcJournalTest.java | 35 +- .../oak/segment/file/JournalReaderTest.java | 7 +- .../file/LargeNumberOfPropertiesTestIT.java | 5 +- .../segment/file/SegmentReferenceLimitTestIT.java | 5 +- .../file/TailSizeDeltaEstimationStrategyTest.java | 14 +- .../oak/segment/file/proc/DataSegmentNodeTest.java | 3 +- .../segment/standby/codec/ResponseDecoderTest.java | 8 +- .../jackrabbit/oak/segment/upgrade/UpgradeIT.java | 4 +- oak-shaded-guava/pom.xml | 31 +- oak-solr-core/pom.xml | 2 +- .../nodestate/NodeStateSolrServerProvider.java | 4 +- .../nodestate/OakSolrNodeStateConfiguration.java | 4 +- .../plugins/index/solr/query/SolrQueryIndex.java | 6 +- oak-solr-osgi/pom.xml | 2 +- oak-store-composite/pom.xml | 2 +- .../oak/composite/CompositeNodeStore.java | 13 +- .../oak/composite/CompositeNodeStoreService.java | 4 +- .../oak/composite/CompositionContext.java | 7 +- .../composite/checks/MountedNodeStoreChecker.java | 5 +- .../checks/NodeTypeMountedNodeStoreChecker.java | 8 +- .../checks/UniqueIndexNodeStoreChecker.java | 5 +- .../NonDefaultMountWriteReportingObserver.java | 7 +- .../jackrabbit/oak/composite/package-info.java | 8 +- .../oak/composite/CompositeChildrenCountTest.java | 16 +- .../NodeTypeDefinitionNodeStoreCheckerTest.java | 2 +- .../it/BackwardCompatibleMountCompositeIT.java | 1 + .../oak/composite/it/CompositeTestSupport.java | 6 +- oak-store-document/pom.xml | 5 +- .../jackrabbit/oak/plugins/document/Branch.java | 13 +- .../oak/plugins/document/ClusterNodeInfo.java | 3 +- .../oak/plugins/document/ClusterView.java | 19 +- .../oak/plugins/document/ClusterViewDocument.java | 6 +- .../jackrabbit/oak/plugins/document/Collision.java | 4 +- .../jackrabbit/oak/plugins/document/Commit.java | 7 +- .../oak/plugins/document/Configuration.java | 25 + .../document/DocumentDiscoveryLiteService.java | 11 +- .../oak/plugins/document/DocumentNodeState.java | 14 +- .../oak/plugins/document/DocumentNodeStore.java | 45 +- .../plugins/document/DocumentNodeStoreBranch.java | 14 +- .../plugins/document/DocumentNodeStoreBuilder.java | 50 +- .../document/DocumentNodeStoreMBeanImpl.java | 10 +- .../plugins/document/DocumentNodeStoreService.java | 18 +- .../DocumentNodeStoreServiceConfiguration.java | 6 +- ...ngeListener.java => FullGCMetricsExporter.java} | 15 +- .../oak/plugins/document/FullGCStatsCollector.java | 76 ++ .../plugins/document/FullGCStatsCollectorImpl.java | 112 +- .../oak/plugins/document/FullGcNodeBin.java | 82 ++ .../oak/plugins/document/JournalDiffLoader.java | 3 +- .../oak/plugins/document/JournalEntry.java | 4 +- .../plugins/document/JournalGarbageCollector.java | 3 +- .../oak/plugins/document/LastRevRecoveryAgent.java | 8 +- .../oak/plugins/document/MissingBcSweeper2.java | 10 +- .../oak/plugins/document/MissingLastRevSeeker.java | 5 +- .../oak/plugins/document/NodeDocument.java | 28 +- .../oak/plugins/document/NodeDocumentSweeper.java | 10 +- .../jackrabbit/oak/plugins/document/Path.java | 4 +- .../oak/plugins/document/PropertyHistory.java | 5 +- .../oak/plugins/document/RevisionVector.java | 14 +- .../oak/plugins/document/Sweep2Helper.java | 2 +- .../oak/plugins/document/TieredDiffCache.java | 4 +- .../oak/plugins/document/UnsavedModifications.java | 12 +- .../jackrabbit/oak/plugins/document/ValueMap.java | 5 +- .../oak/plugins/document/VersionGCSupport.java | 14 +- .../plugins/document/VersionGarbageCollector.java | 154 ++- .../document/bundlor/BundlingConfigHandler.java | 4 +- .../bundlor/BundlingConfigInitializer.java | 30 +- .../oak/plugins/document/bundlor/Include.java | 10 +- .../plugins/document/cache/NodeDocumentCache.java | 7 +- .../BundlingConfigInitializer.java | 3 +- .../oak/plugins/document/init}/package-info.java | 4 +- .../document/mongo/MongoBlobReferenceIterator.java | 4 +- .../mongo/MongoDocumentNodeStoreBuilderBase.java | 2 +- .../plugins/document/mongo/MongoDocumentStore.java | 40 +- .../plugins/document/mongo/MongoFullGcNodeBin.java | 180 +++ .../mongo/MongoFullGcNodeBinSumBsonSize.java | 139 +++ .../document/mongo/MongoMissingLastRevSeeker.java | 4 +- .../oak/plugins/document/mongo/MongoStatus.java | 7 +- .../document/mongo/MongoVersionGCSupport.java | 57 +- .../document/persistentCache/NodeCache.java | 4 +- .../async/InvalidateCacheAction.java | 5 +- .../plugins/document/rdb/RDBDataSourceFactory.java | 70 +- .../document/rdb/RDBDocumentNodeStoreBuilder.java | 47 + .../oak/plugins/document/rdb/RDBDocumentStore.java | 25 +- .../plugins/document/rdb/RDBDocumentStoreJDBC.java | 8 +- .../plugins/document/rdb/RDBVersionGCSupport.java | 8 +- .../secondary/DelegatingDocumentNodeState.java | 7 +- .../document/secondary/SecondaryStoreObserver.java | 2 +- .../plugins/document/util/CloseableIterable.java | 2 +- .../oak/plugins/document/util/Utils.java | 17 +- .../oak/plugins/document/BackgroundWriteTest.java | 2 +- .../oak/plugins/document/BranchCommitGCTest.java | 1 + .../document/ClusterRevisionComparisonTest.java | 4 +- .../plugins/document/CollisionRollbackTest.java | 2 +- .../oak/plugins/document/CommitDiffTest.java | 2 +- .../plugins/document/ConcurrentReadAndAddTest.java | 4 +- .../document/DocumentMKBuilderProvider.java | 6 +- .../plugins/document/DocumentMKBuilderTest.java | 7 +- .../plugins/document/DocumentMKCommitAddTest.java | 2 +- .../DocumentNodeStoreServiceConfigurationTest.java | 28 + .../document/DocumentNodeStoreSweepTest.java | 4 +- .../plugins/document/DocumentNodeStoreTest.java | 3 +- .../oak/plugins/document/DocumentSplitTest.java | 8 +- .../document/FullGCStatsCollectorImplTest.java | 166 +++ .../oak/plugins/document/JournalGCTest.java | 4 +- .../plugins/document/LargeMergeRecoveryTest.java | 12 +- .../plugins/document/LastRevRecoveryAgentTest.java | 16 +- .../oak/plugins/document/LastRevRecoveryTest.java | 4 +- .../LastRevRecoveryWithBundledNodesTest.java | 2 +- .../document/LastRevSingleNodeRecoveryTest.java | 4 +- .../plugins/document/MissingLastRevSeekerTest.java | 4 +- .../oak/plugins/document/MongoBlobGCTest.java | 41 +- .../MongoVersionGCSupportDefaultNoBranchTest.java | 11 +- .../oak/plugins/document/NodeDocumentTest.java | 26 +- .../oak/plugins/document/PreviousDocCacheTest.java | 6 +- .../oak/plugins/document/RevisionVectorTest.java | 4 +- .../oak/plugins/document/Sweep2TestHelper.java | 6 +- .../oak/plugins/document/ValueMapTest.java | 6 +- .../plugins/document/VersionGCDeletionTest.java | 4 +- .../oak/plugins/document/VersionGCInitTest.java | 56 + .../oak/plugins/document/VersionGCQueryTest.java | 10 +- .../oak/plugins/document/VersionGCStatsTest.java | 2 +- .../oak/plugins/document/VersionGCSweepTest.java | 4 +- .../oak/plugins/document/VersionGCTest.java | 140 ++- .../plugins/document/VersionGCWithSplitTest.java | 2 +- .../document/VersionGarbageCollectorIT.java | 20 +- .../document/VersionGarbageCollectorTest.java | 162 +++ .../bundlor/BundledDocumentDifferTest.java | 1 + .../bundlor/BundlingConfigInitializerTest.java | 1 + .../document/bundlor/DocumentBundlingTest.java | 5 +- .../document/mongo/CacheInvalidationIT.java | 8 +- .../document/mongo/LeaseUpdateSocketTimeoutIT.java | 1 + .../mongo/MongoDocumentNodeStoreBuilderTest.java | 35 +- .../mongo/MongoFullGcNodeBinSumBsonSizeTest.java | 267 ++++ .../document/mongo/MongoFullGcNodeBinTest.java | 216 ++++ .../document/mongo/ReplicaSetResilienceIT.java | 2 +- .../document/prefetch/CacheWarmingTest.java | 2 +- .../rdb/RDBDocumentNodeStoreBuilderTest.java | 30 + .../secondary/DelegatingDocumentNodeStateTest.java | 3 +- .../secondary/SecondaryStoreCacheTest.java | 6 +- .../oak/plugins/document/util/UtilsTest.java | 86 +- oak-store-spi/pom.xml | 7 +- .../org/apache/jackrabbit/oak/json/JsonUtils.java | 281 +++++ .../oak/plugins/memory/AbstractPropertyState.java | 4 +- .../oak/plugins/memory/MemoryChildNodeEntry.java | 4 +- .../oak/plugins/memory/ModifiedNodeState.java | 19 +- .../oak/plugins/memory/MultiPropertyState.java | 26 +- .../oak/plugins/memory/PropertyStates.java | 5 +- .../oak/plugins/memory/PropertyValues.java | 2 +- .../oak/spi/commit/BackgroundObserver.java | 7 +- .../jackrabbit/oak/spi/commit/CompositeEditor.java | 41 +- .../jackrabbit/oak/spi/commit/EmptyHook.java | 4 +- .../jackrabbit/oak/spi/commit/MoveTracker.java | 5 +- .../oak/spi/state/AbstractNodeState.java | 5 +- .../jackrabbit/oak/spi/state/Clusterable.java | 15 +- .../jackrabbit/oak/spi/state/MoveDetector.java | 10 +- .../jackrabbit/oak/spi/state/NodeBuilder.java | 10 +- .../oak/json/JsonUtilsNodeStateToMapTest.java | 248 ++++ .../apache/jackrabbit/oak/json/JsonUtilsTest.java | 462 +++++++ oak-upgrade/pom.xml | 2 +- .../jackrabbit/oak/upgrade/AsciiArtTicker.java | 3 +- .../oak/upgrade/RepositorySidegrade.java | 21 +- .../jackrabbit/oak/upgrade/RepositoryUpgrade.java | 21 +- .../oak/upgrade/SameNameSiblingsEditor.java | 5 +- .../upgrade/checkpoint/CheckpointRetriever.java | 4 +- .../jackrabbit/oak/upgrade/cli/CliUtils.java | 3 +- .../oak/upgrade/cli/MigrationFactory.java | 3 +- .../jackrabbit/oak/upgrade/cli/OakUpgrade.java | 3 +- .../upgrade/cli/blob/AzureDataStoreFactory.java | 2 +- .../oak/upgrade/cli/blob/BlobStoreFactory.java | 3 +- .../upgrade/cli/blob/ConstantBlobStoreFactory.java | 2 +- .../upgrade/cli/blob/DummyBlobStoreFactory.java | 3 +- .../oak/upgrade/cli/blob/FileBlobStoreFactory.java | 3 +- .../oak/upgrade/cli/blob/FileDataStoreFactory.java | 3 +- .../upgrade/cli/blob/LoopbackBlobStoreFactory.java | 2 +- .../oak/upgrade/cli/blob/S3DataStoreFactory.java | 2 +- .../oak/upgrade/cli/node/Jackrabbit2Factory.java | 3 +- .../oak/upgrade/cli/node/JdbcFactory.java | 3 +- .../oak/upgrade/cli/node/MongoFactory.java | 2 +- .../oak/upgrade/cli/node/NodeStoreFactory.java | 3 +- .../oak/upgrade/cli/node/SegmentAzureFactory.java | 2 +- .../oak/upgrade/cli/node/SegmentFactory.java | 3 +- .../oak/upgrade/cli/node/SegmentTarFactory.java | 3 +- .../oak/upgrade/cli/node/StoreFactory.java | 3 +- .../oak/upgrade/UpgradeOldSegmentTest.java | 6 +- .../cli/blob/LoopbackBlobStoreFactoryTest.java | 2 +- .../cli/container/AzureDataStoreContainer.java | 3 +- .../cli/container/FileDataStoreContainer.java | 4 +- .../cli/container/JdbcNodeStoreContainer.java | 4 +- .../cli/container/MongoNodeStoreContainer.java | 2 +- .../cli/container/S3DataStoreContainer.java | 4 +- ...entAzureServicePrincipalNodeStoreContainer.java | 34 +- .../upgrade/cli/node/SegmentAzureFactoryTest.java | 16 +- pom.xml | 35 +- 1074 files changed, 26034 insertions(+), 7210 deletions(-) copy oak-api/src/main/java/org/apache/jackrabbit/oak/api/jmx/{ConsolidatedCacheStatsMBean.java => InferenceMBean.java} (73%) create mode 100644 oak-benchmarks/run_comparison_against_baseline.sh create mode 100644 oak-commons/src/main/java/org/apache/jackrabbit/oak/commons/pio/Closer.java copy oak-commons/src/main/java/org/apache/jackrabbit/oak/commons/{conditions => pio}/package-info.java (90%) create mode 100644 oak-commons/src/main/java/org/apache/jackrabbit/oak/commons/time/Stopwatch.java copy oak-commons/src/main/java/org/apache/jackrabbit/oak/commons/{conditions => time}/package-info.java (90%) rename oak-commons/src/test/java/org/apache/jackrabbit/oak/commons/{StopWatch.java => TestStopWatch.java} (98%) create mode 100644 oak-commons/src/test/java/org/apache/jackrabbit/oak/commons/pio/CloserTest.java create mode 100644 oak-commons/src/test/java/org/apache/jackrabbit/oak/commons/time/StopwatchTest.java copy oak-core-spi/src/main/java/org/apache/jackrabbit/oak/stats/{HistogramStats.java => GaugeStats.java} (80%) copy oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/benchmark/OrderedIndexQueryNoIndexTest.java => oak-core-spi/src/test/java/org/apache/jackrabbit/oak/stats/NonTickingTestClock.java (73%) copy oak-run/src/main/java/org/apache/jackrabbit/oak/run/IndexMergeCommand.java => oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/metric/GaugeImpl.java (69%) create mode 100644 oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/tree/impl/OrderedChildnameIterator.java create mode 100644 oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/tree/impl/OrderedChildnameIterableTest.java create mode 100644 oak-core/src/test/resources/org/apache/jackrabbit/oak/plugins/index/importer/index-def-jcruuid-fix.json delete mode 100644 oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/VirtualTicker.java create mode 100644 oak-query-spi/src/main/java/org/apache/jackrabbit/oak/spi/query/fulltext/VectorQuery.java create mode 100644 oak-query-spi/src/main/java/org/apache/jackrabbit/oak/spi/query/fulltext/VectorQueryConfig.java create mode 100644 oak-query-spi/src/test/java/org/apache/jackrabbit/oak/spi/query/fulltext/VectorQueryCompatibilityModeTest.java copy oak-core-spi/src/test/java/org/apache/jackrabbit/oak/spi/observation/ChangeSetTest.java => oak-query-spi/src/test/java/org/apache/jackrabbit/oak/spi/query/fulltext/VectorQueryConfigTest.java (50%) create mode 100644 oak-query-spi/src/test/java/org/apache/jackrabbit/oak/spi/query/fulltext/VectorQueryTest.java delete mode 100644 oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/analysis/stream/NodeStreamConverter.java delete mode 100644 oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/analysis/stream/NodeStreamConverterCompressed.java delete mode 100644 oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/analysis/stream/NodeStreamReader.java delete mode 100644 oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/analysis/stream/NodeStreamReaderCompressed.java rename oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/analysis/stream/{NodeLineReader.java => NodeTreeStoreReader.java} (78%) delete mode 100644 oak-run-commons/src/test/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/analysis/stream/NodeStreamTest.java delete mode 100644 oak-run-commons/src/test/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/analysis/stream/VarIntTest.java create mode 100644 oak-run/src/main/java/org/apache/jackrabbit/oak/index/merge/IndexStoreStatsCommand.java copy oak-run/src/main/java/org/apache/jackrabbit/oak/run/{IndexMergeCommand.java => FullGCMetricsExporterFixture.java} (74%) copy oak-run/src/main/java/org/apache/jackrabbit/oak/run/{MetricsExporterFixtureProvider.java => FullGCMetricsExporterFixtureProvider.java} (50%) create mode 100644 oak-run/src/test/resources/org/apache/jackrabbit/oak/index/merge/merge-override-tags-type.json create mode 100644 oak-search-elastic/src/main/java/org/apache/jackrabbit/oak/plugins/index/elastic/query/inference/EnricherStatus.java create mode 100644 oak-search-elastic/src/main/java/org/apache/jackrabbit/oak/plugins/index/elastic/query/inference/InferenceConfig.java copy oak-search-elastic/src/main/java/org/apache/jackrabbit/oak/plugins/index/elastic/query/inference/{InferenceServiceException.java => InferenceConstants.java} (54%) create mode 100644 oak-search-elastic/src/main/java/org/apache/jackrabbit/oak/plugins/index/elastic/query/inference/InferenceHeaderPayload.java create mode 100644 oak-search-elastic/src/main/java/org/apache/jackrabbit/oak/plugins/index/elastic/query/inference/InferenceIndexConfig.java create mode 100644 oak-search-elastic/src/main/java/org/apache/jackrabbit/oak/plugins/index/elastic/query/inference/InferenceMBeanImpl.java create mode 100644 oak-search-elastic/src/main/java/org/apache/jackrabbit/oak/plugins/index/elastic/query/inference/InferenceModelConfig.java create mode 100644 oak-search-elastic/src/main/java/org/apache/jackrabbit/oak/plugins/index/elastic/query/inference/InferencePayload.java create mode 100644 oak-search-elastic/src/main/java/org/apache/jackrabbit/oak/plugins/index/elastic/query/inference/InferenceServiceMetrics.java create mode 100644 oak-search-elastic/src/main/java/org/apache/jackrabbit/oak/plugins/index/elastic/query/inference/InferenceServiceUsingConfig.java copy oak-search-elastic/src/main/java/org/apache/jackrabbit/oak/plugins/index/elastic/query/inference/{InferenceService.java => InferenceServiceUsingIndexConfig.java} (51%) create mode 100644 oak-search-elastic/src/main/java/org/apache/jackrabbit/oak/plugins/index/elastic/util/EnvironmentVariableProcessorUtil.java create mode 100644 oak-search-elastic/src/test/java/org/apache/jackrabbit/oak/plugins/index/elastic/ElasticPropertyIndexFailuresTest.java create mode 100644 oak-search-elastic/src/test/java/org/apache/jackrabbit/oak/plugins/index/elastic/ElasticPropertyIndexNonFailureTest.java create mode 100644 oak-search-elastic/src/test/java/org/apache/jackrabbit/oak/plugins/index/elastic/ElasticRegexPropertyIndexTest.java create mode 100644 oak-search-elastic/src/test/java/org/apache/jackrabbit/oak/plugins/index/elastic/query/inference/ElasticInferenceUsingConfigTest.java create mode 100644 oak-search-elastic/src/test/java/org/apache/jackrabbit/oak/plugins/index/elastic/query/inference/InferenceConfigSerializationTest.java create mode 100644 oak-search-elastic/src/test/java/org/apache/jackrabbit/oak/plugins/index/elastic/query/inference/InferenceConfigTest.java create mode 100644 oak-search-elastic/src/test/java/org/apache/jackrabbit/oak/plugins/index/elastic/query/inference/InferenceServiceMetricsTest.java copy oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/analysis/modules/TimeMeasureCollector.java => oak-search-elastic/src/test/java/org/apache/jackrabbit/oak/plugins/index/elastic/query/inference/VectorDocument.java (51%) create mode 100644 oak-search-elastic/src/test/java/org/apache/jackrabbit/oak/plugins/index/elastic/util/ElasticIndexUtilsTest.java copy oak-search-elastic/src/test/resources/{inference => inferenceUsingConfig}/content/cars.json (100%) copy oak-search-elastic/src/test/resources/{inference => inferenceUsingConfig}/content/health.json (100%) copy oak-search-elastic/src/test/resources/{inference => inferenceUsingConfig}/content/ml.json (100%) copy oak-search-elastic/src/test/resources/{inference => inferenceUsingConfig}/content/programming.json (100%) copy oak-search-elastic/src/test/resources/{inference => inferenceUsingConfig}/content/yoga.json (100%) create mode 100644 oak-search-elastic/src/test/resources/inferenceUsingConfig/queries/a_beginner_guide_to_data_manipulation_in_python.json copy oak-search-elastic/src/test/resources/{inference => inferenceUsingConfig}/queries/delayed/farming_practices.json (100%) copy oak-search-elastic/src/test/resources/{inference => inferenceUsingConfig}/queries/faulty/machine_learning.json (100%) create mode 100644 oak-search-elastic/src/test/resources/inferenceUsingConfig/queries/how_to_improve_mental_health_through_exercises.json create mode 100644 oak-search-elastic/src/test/resources/inferenceUsingConfig/queries/nutritional_advice_for_a_healthier_lifestyle.json create mode 100644 oak-search-elastic/src/test/resources/inferenceUsingConfig/queries/technological_advancements_in_electric_vehicles.json create mode 100644 oak-search-elastic/src/test/resources/inferenceUsingConfig/queries/what_are_the_key_algorithms_used_in_machine_learning.json create mode 100644 oak-segment-azure/src/test/java/org/apache/jackrabbit/oak/segment/azure/AzurePersistenceManagerTest.java copy oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/{DefaultGarbageCollectionStrategy.java => AbstractGarbageCollectionStrategy.java} (88%) copy oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/{ClusterStateChangeListener.java => FullGCMetricsExporter.java} (71%) create mode 100644 oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/FullGcNodeBin.java copy oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/{bundlor => init}/BundlingConfigInitializer.java (94%) copy {oak-core/src/main/java/org/apache/jackrabbit/oak/security/authentication/token => oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/init}/package-info.java (88%) create mode 100644 oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoFullGcNodeBin.java create mode 100644 oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoFullGcNodeBinSumBsonSize.java create mode 100644 oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/VersionGarbageCollectorTest.java create mode 100644 oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoFullGcNodeBinSumBsonSizeTest.java create mode 100644 oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoFullGcNodeBinTest.java create mode 100644 oak-store-spi/src/main/java/org/apache/jackrabbit/oak/json/JsonUtils.java create mode 100644 oak-store-spi/src/test/java/org/apache/jackrabbit/oak/json/JsonUtilsNodeStateToMapTest.java create mode 100644 oak-store-spi/src/test/java/org/apache/jackrabbit/oak/json/JsonUtilsTest.java