You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by th...@apache.org on 2026/04/10 07:31:40 UTC
(jackrabbit-oak) 01/01: Merge trunk
This is an automated email from the ASF dual-hosted git repository.
thomasm pushed a commit to branch OAK-12051
in repository https://gitbox.apache.org/repos/asf/jackrabbit-oak.git
commit 1e4a21c783910437bec86c637f9842b3cc7c4cd6
Merge: f093fd0c6c e8d6725e6b
Author: Thomas Mueller <mu...@adobe.com>
AuthorDate: Fri Apr 10 09:31:30 2026 +0200
Merge trunk
.../blobstorage/AbstractAzureBlobStoreBackend.java | 6 +-
.../blobstorage/AbstractAzureDataStoreService.java | 4 +-
.../blobstorage/AzureBlobContainerProvider.java | 3 +-
.../azure/blobstorage/AzureBlobStoreBackend.java | 7 +-
.../cloud/azure/blobstorage/AzureDataStore.java | 6 +-
.../oak/blob/cloud/azure/blobstorage/Utils.java | 2 +-
.../v8/AzureBlobContainerProviderV8.java | 2 +-
.../blobstorage/v8/AzureBlobStoreBackendV8.java | 6 +-
.../blob/cloud/azure/blobstorage/v8/UtilsV8.java | 2 +-
.../AzureBlobContainerProviderTest.java | 4 +-
.../AzureBlobStoreBackendCompatibilityTest.java | 2 +-
.../blobstorage/AzureBlobStoreBackendTest.java | 6 +-
.../AzureDataRecordAccessProviderCDNTest.java | 2 +-
.../AzureDataRecordAccessProviderIT.java | 8 +-
.../AzureDataRecordAccessProviderTest.java | 9 +-
.../azure/blobstorage/AzureDataStoreTest.java | 6 +-
.../azure/blobstorage/AzureDataStoreUtils.java | 2 +-
.../blob/cloud/azure/blobstorage/TestAzureDS.java | 2 +-
.../blobstorage/TestAzureDSWithSmallCache.java | 4 +-
.../azure/blobstorage/TestAzureDsCacheOff.java | 3 +-
.../blob/cloud/azure/blobstorage/UtilsTest.java | 2 +-
...eBlobContainerProviderV8AuthenticationTest.java | 2 +-
...ContainerProviderV8ContainerOperationsTest.java | 4 +-
...BlobContainerProviderV8ErrorConditionsTest.java | 3 +-
.../v8/AzureBlobContainerProviderV8Test.java | 4 +-
.../v8/AzureBlobStoreBackendV8Test.java | 95 +-
.../cloud/azure/blobstorage/v8/UtilsV8Test.java | 2 +-
.../blob/cloud/s3/AbstractS3DataStoreService.java | 4 +-
.../jackrabbit/oak/blob/cloud/s3/S3Backend.java | 6 +-
.../jackrabbit/oak/blob/cloud/s3/S3DataStore.java | 6 +-
.../blob/cloud/s3/S3BackendCompatibilityTest.java | 2 +-
.../cloud/s3/S3DataRecordAccessProviderIT.java | 8 +-
.../cloud/s3/S3DataRecordAccessProviderTest.java | 8 +-
.../oak/blob/cloud/s3/S3DataStoreUtils.java | 2 +-
.../oak/blob/cloud/s3/TestS3DSWithSmallCache.java | 4 +-
.../oak/blob/cloud/s3/TestS3DataStore.java | 4 +-
.../jackrabbit/oak/blob/cloud/s3/TestS3Ds.java | 6 +-
.../oak/blob/cloud/s3/TestS3DsCacheOff.java | 3 +-
.../blob/AbstractSharedCachingDataStore.java | 10 +-
.../blob/ConsolidatedDataStoreCacheStats.java | 2 +-
.../plugins/blob/DataStoreCacheUpgradeUtils.java | 11 +-
.../plugins/blob/ExtendedBlobStatsCollector.java | 5 +-
.../plugins/blob/MarkSweepGarbageCollector.java | 4 +-
.../oak/plugins/blob/SharedDataStore.java | 6 +-
.../oak/plugins/blob/UploadStagingCache.java | 2 +-
.../blob/datastore/AbstractDataStoreService.java | 4 +-
.../oak/plugins/blob/datastore/BlobIdTracker.java | 2 +-
.../plugins/blob/datastore/DataStoreBlobStore.java | 12 +-
.../plugins/blob/datastore/DbDataStoreService.java | 58 -
.../oak/plugins/blob/datastore/FSBackend.java | 12 +-
.../blob/datastore/FileDataStoreService.java | 2 +-
.../plugins/blob/datastore/InMemoryDataRecord.java | 6 +-
.../plugins/blob/datastore/OakFileDataStore.java | 10 +-
.../blob/datastore/SharedDataStoreUtils.java | 2 +-
.../oak/plugins/blob/datastore/TypedDataStore.java | 7 +-
.../directaccess/DataRecordAccessProvider.java | 6 +-
.../directaccess/DataRecordUploadToken.java | 3 +-
.../blob/datastore/directaccess/package-info.java | 2 +-
.../plugins/blob/serializer/FSBlobSerializer.java | 4 +-
.../oak/plugins/blob/blobstore.properties | 4 +-
.../plugins/blob/AbstractDataStoreCacheTest.java | 6 +-
.../oak/plugins/blob/CachingDataStoreTest.java | 6 +-
.../blob/ConsolidatedDataStoreStatsTest.java | 4 +-
...aredDataStoreMarkSweepGarbageCollectorTest.java | 6 +-
.../oak/plugins/blob/SharedDataStoreUtilsTest.java | 6 +-
.../oak/plugins/blob/TimeLapsedDataStore.java | 10 +-
.../oak/plugins/blob/UploadStagingCacheTest.java | 2 +-
.../blob/datastore/AbstractDataStoreTest.java | 13 +-
.../datastore/BlobIdTrackerClusterSharedTest.java | 2 +-
.../plugins/blob/datastore/BlobIdTrackerTest.java | 4 +-
.../BlobStoreStatsTestableFileDataStore.java | 6 +-
.../blob/datastore/CachingFileDataStoreTest.java | 4 +-
.../datastore/DataStoreBlobStoreStatsTest.java | 8 +-
.../blob/datastore/DataStoreBlobStoreTest.java | 8 +-
.../blob/datastore/DataStoreServiceTest.java | 4 +-
.../oak/plugins/blob/datastore/DataStoreUtils.java | 6 +-
.../oak/plugins/blob/datastore/FSBackendIT.java | 8 +-
.../blob/datastore/InMemoryDataRecordTest.java | 2 +-
.../blob/datastore/OakFileDataStoreTest.java | 4 +-
.../blob/datastore/SharedDataStoreTest.java | 8 +-
.../AbstractDataRecordAccessProviderIT.java | 8 +-
.../AbstractDataRecordAccessProviderTest.java | 8 +-
oak-blob/pom.xml | 14 +-
.../oak/spi/blob/AbstractDataRecord.java | 4 +-
.../oak/spi/blob/AbstractSharedBackend.java | 4 +-
.../jackrabbit/oak/spi/blob/SharedBackend.java | 10 +-
.../oak/spi/blob/data/AbstractBackend.java | 191 +++
.../spi/blob/{ => data}/AbstractDataRecord.java | 51 +-
.../oak/spi/blob/data/AbstractDataStore.java | 148 +++
.../oak/spi/blob/data/AsyncTouchCallback.java | 38 +-
.../oak/spi/blob/data/AsyncTouchResult.java | 51 +
.../oak/spi/blob/data/AsyncUploadCache.java | 352 +++++
.../oak/spi/blob/data/AsyncUploadCacheResult.java | 71 +
.../oak/spi/blob/data/AsyncUploadCallback.java | 37 +-
.../oak/spi/blob/data/AsyncUploadResult.java | 63 +
.../blob/data/AutoClosingLazyFileInputStream.java | 141 ++
.../jackrabbit/oak/spi/blob/data/Backend.java | 187 +++
.../spi/blob/data/BackendResourceAbortable.java | 43 +
.../oak/spi/blob/data/CachingDataRecord.java | 63 +
.../oak/spi/blob/data/CachingDataStore.java | 1399 ++++++++++++++++++++
.../jackrabbit/oak/spi/blob/data/CachingFDS.java | 52 +
.../oak/spi/blob/data/DataIdentifier.java | 81 ++
.../jackrabbit/oak/spi/blob/data/DataRecord.java | 64 +
.../jackrabbit/oak/spi/blob/data/DataStore.java | 155 +++
.../oak/spi/blob/data/DataStoreException.java | 57 +
.../jackrabbit/oak/spi/blob/data/FSBackend.java | 478 +++++++
.../oak/spi/blob/data/FileDataRecord.java | 72 +
.../oak/spi/blob/data/FileDataStore.java | 501 +++++++
.../jackrabbit/oak/spi/blob/data/LocalCache.java | 669 ++++++++++
.../oak/spi/blob/data/MultiDataStore.java | 712 ++++++++++
.../oak/spi/blob/data/MultiDataStoreAware.java | 41 +
.../jackrabbit/oak/spi/blob/data/package-info.java | 25 +-
.../jackrabbit/oak/spi/blob/fs/FileSystem.java | 163 +++
.../oak/spi/blob/fs/FileSystemException.java | 50 +
.../oak/spi/blob/fs/local/LocalFileSystem.java | 274 ++++
.../oak/spi/blob/fs/local/package-info.java | 25 +-
.../jackrabbit/oak/spi/blob/fs/package-info.java | 25 +-
.../oak/spi/blob/stats/BlobStatsCollector.java | 41 +-
.../oak/spi/blob/data/InMemoryBackend.java | 204 +++
.../oak/spi/blob/data/InMemoryDataStore.java | 41 +-
.../oak/spi/blob/data/RandomInputStream.java | 151 +++
.../oak/spi/blob/data/TestCachingFDS.java | 85 ++
.../oak/spi/blob/data/TestCachingFDSCacheOff.java | 52 +
.../jackrabbit/oak/spi/blob/data/TestCaseBase.java | 249 ++--
.../oak/spi/blob/data/TestFileDataStore.java | 71 +
.../jackrabbit/oak/spi/blob/data/TestInMemDs.java | 30 +-
.../oak/spi/blob/data/TestInMemDsCacheOff.java | 29 +-
.../oak/spi/blob/data/TestLocalCache.java | 405 ++++++
oak-core-spi/pom.xml | 6 +
.../org/apache/jackrabbit/oak/cache/CacheLIRS.java | 15 +
.../jackrabbit/oak/cache/EmpiricalWeigher.java | 20 +-
.../org/apache/jackrabbit/oak/cache/api/Cache.java | 152 +++
.../jackrabbit/oak/cache/api/CacheBuilder.java | 260 ++++
.../jackrabbit/oak/cache/api/CacheLoader.java | 37 +-
.../oak/cache/api/CacheStatsAdapter.java | 93 ++
.../oak/cache/api/CacheStatsSnapshot.java | 92 ++
.../jackrabbit/oak/cache/api/EvictionCause.java | 38 +-
.../jackrabbit/oak/cache/api/EvictionListener.java | 46 +
.../jackrabbit/oak/cache/api/LoadingCache.java | 61 +
.../apache/jackrabbit/oak/cache/api/Weigher.java | 41 +-
.../jackrabbit/oak/cache/api/package-info.java | 26 +-
.../cache/impl/caffeine/CaffeineCacheAdapter.java | 115 ++
.../impl/caffeine/CaffeineLoadingCacheAdapter.java | 47 +
.../oak/cache/impl/lirs/LirsCacheAdapter.java | 136 ++
.../cache/impl/lirs/LirsLoadingCacheAdapter.java | 75 ++
.../oak/cache/CacheLIRSOakAdapterTest.java | 57 +
.../oak/cache/api/CacheStatsSnapshotTest.java | 119 ++
.../oak/cache/impl/CacheBuilderTest.java | 242 ++++
.../oak/cache/impl/EmpiricalWeigherTest.java | 96 ++
.../impl/caffeine/CaffeineCacheAdapterTest.java | 70 +
.../oak/cache/impl/lirs/LirsCacheAdapterTest.java | 96 ++
.../impl/lirs/LirsLoadingCacheAdapterTest.java | 110 ++
.../jackrabbit/oak/plugins/index/IndexName.java | 31 +
.../plugins/index/importer/AsyncLaneSwitcher.java | 34 +-
.../jackrabbit/oak/query/QueryEngineSettings.java | 2 +-
.../jackrabbit/oak/query/ast/ColumnImpl.java | 10 +-
.../jackrabbit/oak/query/ast/FacetColumnImpl.java | 6 +
.../oak/plugins/index/IndexNameAdditionalTest.java | 77 ++
.../oak/plugins/index}/IndexNameTest.java | 3 +-
.../index/datastore/DataStoreTextWriterTest.java | 4 +-
.../index/importer/AsyncLaneSwitcherTest.java | 27 +-
.../oak/query/ast/FacetColumnImplTest.java | 41 +
oak-it-osgi/pom.xml | 19 +
...e.jackrabbit.oak.jcr.osgi.RepositoryManager.cfg | 30 +-
...krabbit.oak.segment.SegmentNodeStoreService.cfg | 32 +-
.../oak/osgi/IndexVersionSelectionIT.java | 366 +++++
.../oak/osgi/IndexVersionSelectionTest.java | 222 ++++
.../org/apache/jackrabbit/oak/osgi/OSGiIT.java | 1 +
oak-it-osgi/test-bundles.xml | 1 -
.../oak/jcr/binary/AbstractBinaryAccessIT.java | 2 +-
.../oak/jcr/binary/BinaryAccessDSGCIT.java | 2 +-
.../fixtures/datastore/AzureDataStoreFixture.java | 4 +-
.../fixtures/datastore/DataStoreFixture.java | 3 +-
.../fixtures/datastore/FileDataStoreFixture.java | 4 +-
.../fixtures/datastore/S3DataStoreFixture.java | 4 +-
.../nodestore/DocumentMemoryNodeStoreFixture.java | 2 +-
.../nodestore/DocumentMongoNodeStoreFixture.java | 2 +-
.../nodestore/SegmentMemoryNodeStoreFixture.java | 2 +-
.../plugins/index/lucene/LuceneIndexProvider.java | 14 +-
.../index/lucene/LuceneIndexProviderService.java | 15 +
.../ActiveDeletedBlobCollectorFactory.java | 2 +-
.../oak/plugins/index/lucene/IndexPlannerTest.java | 5 +-
.../plugins/index/lucene/LuceneBlobCacheTest.java | 6 +-
.../index/lucene/LuceneIndexPlannerCommonTest.java | 70 +-
.../lucene/LuceneWritesOnSegmentStatsTest.java | 2 +-
.../directory/AbstractActiveDeletedBlobTest.java | 6 +-
.../directory/ActiveDeletedBlobCollectionIT.java | 2 +-
.../directory/ActiveDeletedBlobCollectorTest.java | 2 +-
.../lucene/directory/OakDirectoryTestBase.java | 2 +-
oak-parent/pom.xml | 5 +
.../jackrabbit/oak/fixture/BlobStoreFixture.java | 4 +-
.../jackrabbit/oak/fixture/DataStoreUtils.java | 4 +-
.../jackrabbit/oak/fixture/SegmentTarFixture.java | 2 +-
.../oak/run/cli/BlobStoreFixtureProvider.java | 6 +-
.../jackrabbit/oak/run/cli/DummyDataStore.java | 10 +-
.../oak/run/cli/ReadOnlyBlobStoreWrapperTest.java | 2 +-
oak-run/pom.xml | 3 +-
.../jackrabbit/oak/run/DataStoreCommand.java | 2 +-
.../java/org/apache/jackrabbit/oak/run/Utils.java | 4 +-
.../apache/jackrabbit/oak/fixture/repository.xml | 8 +-
.../jackrabbit/oak/run/DataStoreCheckTest.java | 3 +-
.../oak/run/DataStoreCommandMetadataTest.java | 4 +-
.../jackrabbit/oak/run/DataStoreCommandTest.java | 4 +-
.../IndexRegexPropertyWithBinaryExcludedTest.java | 1 +
oak-search-elastic/pom.xml | 6 +
.../index/elastic/ElasticIndexProviderService.java | 17 +
.../index/elastic/query/ElasticIndexProvider.java | 12 +-
.../query/async/ElasticResultRowAsyncIterator.java | 7 +-
.../index/elastic/util/ElasticIndexUtils.java | 16 +
.../elastic/ElasticIndexPlannerCommonTest.java | 80 +-
.../inference/ElasticInferenceUsingConfigTest.java | 112 ++
.../expected/semantic_search_with_facets.json | 102 ++
.../index/search/FulltextIndexConstants.java | 12 +
.../plugins/index/search/PropertyDefinition.java | 21 +
.../index/search/spi/query/FulltextIndex.java | 39 +
.../search/spi/query/FulltextIndexPlanner.java | 54 +-
.../index/search/util/IndexDefinitionBuilder.java | 10 +
.../oak/plugins/index/IndexPlannerCommonTest.java | 203 ++-
.../oak/segment/BinariesInlineThresholdIT.java | 2 +-
.../jackrabbit/oak/segment/ExternalBlobIT.java | 2 +-
.../oak/segment/SegmentNodeStoreServiceTest.java | 2 +-
.../segment/standby/StandbySegmentBlobTestIT.java | 2 +-
.../standby/client/RemoteBlobProcessorTest.java | 2 +-
.../oak/segment/test/TemporaryBlobStore.java | 4 +-
oak-store-composite/pom.xml | 5 +
.../oak/composite/it/CompositeTestSupport.java | 2 +-
.../plugins/document/SharedBlobStoreGCTest.java | 2 +-
.../oak/upgrade/cli/MigrationFactory.java | 5 +-
.../ToJackrabbitDataStoreDelegatingBlobStore.java | 102 ++
.../upgrade/cli/blob/AzureDataStoreFactory.java | 2 +-
.../oak/upgrade/cli/blob/FileDataStoreFactory.java | 2 +-
.../oak/upgrade/cli/blob/S3DataStoreFactory.java | 2 +-
.../upgrade/cli/blob/SafeDataStoreBlobStore.java | 8 +-
233 files changed, 11289 insertions(+), 942 deletions(-)
diff --cc oak-blob-cloud-azure/src/test/java/org/apache/jackrabbit/oak/blob/cloud/azure/blobstorage/v8/AzureBlobStoreBackendV8Test.java
index 10764b03e1,5447776277..8d62940de7
--- a/oak-blob-cloud-azure/src/test/java/org/apache/jackrabbit/oak/blob/cloud/azure/blobstorage/v8/AzureBlobStoreBackendV8Test.java
+++ b/oak-blob-cloud-azure/src/test/java/org/apache/jackrabbit/oak/blob/cloud/azure/blobstorage/v8/AzureBlobStoreBackendV8Test.java
@@@ -204,7 -205,7 +205,11 @@@ public class AzureBlobStoreBackendV8Tes
// With no download expiry configured, direct download access should stay disabled.
AzureBlobStoreBackendV8 backend = new AzureBlobStoreBackendV8();
++<<<<<<< HEAD
+ assertNull(backend.createHttpDownloadURI(new org.apache.jackrabbit.core.data.DataIdentifier("test"),
++=======
+ assertNull(backend.createHttpDownloadURI(new DataIdentifier("test"),
++>>>>>>> trunk
org.apache.jackrabbit.oak.plugins.blob.datastore.directaccess.DataRecordDownloadOptions.DEFAULT));
}
@@@ -222,8 -223,7 +227,12 @@@
// Seed a cache entry directly, then verify the externally observable
// behavior that the same URI is returned for the same download request.
AzureBlobStoreBackendV8 backend = new AzureBlobStoreBackendV8();
++<<<<<<< HEAD
+ org.apache.jackrabbit.core.data.DataIdentifier identifier =
+ new org.apache.jackrabbit.core.data.DataIdentifier("cached");
++=======
+ DataIdentifier identifier = new DataIdentifier("cached");
++>>>>>>> trunk
URI cachedUri = URI.create("https://cached.example/download");
backend.setHttpDownloadURIExpirySeconds(300);
diff --cc oak-core/src/main/java/org/apache/jackrabbit/oak/query/QueryEngineSettings.java
index 36d9c29be2,a9edcb647e..2378a739fb
--- a/oak-core/src/main/java/org/apache/jackrabbit/oak/query/QueryEngineSettings.java
+++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/query/QueryEngineSettings.java
@@@ -61,9 -61,9 +61,9 @@@ public class QueryEngineSettings implem
public static final String OAK_QUERY_PREFETCH_COUNT = "oak.prefetchCount";
- public static final String FT_SORT_UNION_QUERY_BY_SCORE = "FT_OAK-11949";
+ public static final String FT_SORT_UNION_QUERY_LEGACY_MODE = "FT_OAK-12051";
- public static final String FT_OPTIMIZE_XPATH_UNION = "FT_OAK-12007";
+ public static final String FT_OPTIMIZE_XPATH_UNION = "FT_OAK-12170";
public static final int DEFAULT_PREFETCH_COUNT = Integer.getInteger(OAK_QUERY_PREFETCH_COUNT, -1);
diff --cc oak-run/src/test/java/org/apache/jackrabbit/oak/run/query/IndexRegexPropertyWithBinaryExcludedTest.java
index 984743a36f,b9f6ba11cf..1557751a46
--- a/oak-run/src/test/java/org/apache/jackrabbit/oak/run/query/IndexRegexPropertyWithBinaryExcludedTest.java
+++ b/oak-run/src/test/java/org/apache/jackrabbit/oak/run/query/IndexRegexPropertyWithBinaryExcludedTest.java
@@@ -49,7 -49,7 +49,8 @@@ import org.apache.jackrabbit.oak.segmen
import org.apache.jackrabbit.oak.spi.blob.BlobStore;
import org.apache.jackrabbit.oak.spi.security.user.UserConstants;
import org.apache.jackrabbit.oak.plugins.blob.datastore.DataStoreBlobStore;
+import org.apache.jackrabbit.core.data.FileDataStore;
+ import org.apache.jackrabbit.oak.spi.blob.data.FileDataStore;
import org.junit.After;
import org.junit.Before;
import org.junit.Rule;