This is an automated email from the ASF dual-hosted git repository. reschke pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/jackrabbit-oak.git
The following commit(s) were added to refs/heads/trunk by this push: new aaa5e82948 OAK-11888: Remove usage of Guava ThreadBuilderFactory (#2484) aaa5e82948 is described below commit aaa5e8294820558fcc7abad2f8b629904873c067 Author: Julian Reschke <resc...@apache.org> AuthorDate: Tue Sep 2 11:39:00 2025 +0200 OAK-11888: Remove usage of Guava ThreadBuilderFactory (#2484) --- .../oak/plugins/atomic/AtomicCounterEditorProvider.java | 5 ++--- .../oak/plugins/index/lucene/writer/IndexWriterPool.java | 11 +++-------- .../document/flatfile/pipelined/PipelinedStrategy.java | 4 ++-- .../flatfile/pipelined/PipelinedTreeStoreStrategy.java | 6 +++--- .../org/apache/jackrabbit/oak/index/ThreadMonitorTest.java | 4 ++-- .../flatfile/pipelined/PipelinedMongoServerSelectorTest.java | 8 ++++---- .../main/java/org/apache/jackrabbit/oak/run/Downloader.java | 7 ++----- .../oak/plugins/index/elastic/ElasticIndexStatistics.java | 7 ++----- 8 files changed, 20 insertions(+), 32 deletions(-) diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/atomic/AtomicCounterEditorProvider.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/atomic/AtomicCounterEditorProvider.java index ec94551d86..bd98500a9b 100644 --- a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/atomic/AtomicCounterEditorProvider.java +++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/atomic/AtomicCounterEditorProvider.java @@ -22,6 +22,7 @@ import java.util.concurrent.ThreadFactory; import java.util.concurrent.atomic.AtomicReference; import java.util.function.Supplier; +import org.apache.commons.lang3.concurrent.BasicThreadFactory; import org.apache.jackrabbit.oak.api.CommitFailedException; import org.apache.jackrabbit.oak.commons.concurrent.ExecutorCloser; import org.apache.jackrabbit.oak.osgi.OsgiWhiteboard; @@ -43,8 +44,6 @@ import org.osgi.service.component.annotations.Reference; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.apache.jackrabbit.guava.common.util.concurrent.ThreadFactoryBuilder; - import static org.osgi.service.component.annotations.ReferenceCardinality.OPTIONAL; import static org.osgi.service.component.annotations.ReferencePolicy.DYNAMIC; @@ -169,7 +168,7 @@ public class AtomicCounterEditorProvider implements EditorProvider { @Activate public void activate(BundleContext context) { whiteboard.set(new OsgiWhiteboard(context)); - ThreadFactory tf = new ThreadFactoryBuilder().setNameFormat("atomic-counter-%d").build(); + ThreadFactory tf = BasicThreadFactory.builder().namingPattern("atomic-counter-%d").build(); scheduler.set(Executors.newScheduledThreadPool(10, tf)); } diff --git a/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/writer/IndexWriterPool.java b/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/writer/IndexWriterPool.java index e68ea27cc3..56ab1c6f05 100644 --- a/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/writer/IndexWriterPool.java +++ b/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/writer/IndexWriterPool.java @@ -18,7 +18,7 @@ */ package org.apache.jackrabbit.oak.plugins.index.lucene.writer; -import org.apache.jackrabbit.guava.common.util.concurrent.ThreadFactoryBuilder; +import org.apache.commons.lang3.concurrent.BasicThreadFactory; import org.apache.jackrabbit.oak.commons.concurrent.ExecutorCloser; import org.apache.jackrabbit.oak.plugins.index.ConfigHelper; import org.apache.jackrabbit.oak.plugins.index.FormattingUtils; @@ -262,13 +262,8 @@ public class IndexWriterPool { * WARN: This is not thread safe. */ public IndexWriterPool() { - this.writersPool = Executors.newFixedThreadPool(numberOfThreads, new ThreadFactoryBuilder() - .setDaemon(true) - .build()); - this.monitorTaskExecutor = Executors.newSingleThreadScheduledExecutor(new ThreadFactoryBuilder() - .setDaemon(true) - .setNameFormat("index-writer-monitor") - .build()); + this.writersPool = Executors.newFixedThreadPool(numberOfThreads, BasicThreadFactory.builder().daemon().build()); + this.monitorTaskExecutor = Executors.newSingleThreadScheduledExecutor(BasicThreadFactory.builder().daemon().namingPattern("index-writer-monitor").build()); this.workers = IntStream.range(0, numberOfThreads) .mapToObj(Worker::new) .collect(Collectors.toList()); diff --git a/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/pipelined/PipelinedStrategy.java b/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/pipelined/PipelinedStrategy.java index 840cb18468..b6e087e63e 100644 --- a/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/pipelined/PipelinedStrategy.java +++ b/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/pipelined/PipelinedStrategy.java @@ -21,7 +21,7 @@ package org.apache.jackrabbit.oak.index.indexer.document.flatfile.pipelined; import com.mongodb.MongoClientSettings; import com.mongodb.ConnectionString; import org.apache.commons.io.FileUtils; -import org.apache.jackrabbit.guava.common.util.concurrent.ThreadFactoryBuilder; +import org.apache.commons.lang3.concurrent.BasicThreadFactory; import org.apache.jackrabbit.oak.commons.Compression; import org.apache.jackrabbit.oak.commons.IOUtils; import org.apache.jackrabbit.oak.commons.concurrent.ExecutorCloser; @@ -354,7 +354,7 @@ public class PipelinedStrategy extends IndexStoreSortStrategyBase { public File createSortedStoreFile() throws IOException { int numberOfThreads = 1 + numberOfTransformThreads + 1 + 1; // dump, transform, sort threads, sorted files merge ThreadMonitor threadMonitor = ThreadMonitor.newInstance(); - var threadFactory = new ThreadMonitor.AutoRegisteringThreadFactory(threadMonitor, new ThreadFactoryBuilder().setDaemon(true).build()); + var threadFactory = new ThreadMonitor.AutoRegisteringThreadFactory(threadMonitor, BasicThreadFactory.builder().daemon().build()); ExecutorService threadPool = Executors.newFixedThreadPool(numberOfThreads, threadFactory); MongoDocumentFilter documentFilter = new MongoDocumentFilter(filteredPath, suffixesToSkip); NodeDocumentCodec nodeDocumentCodec = new NodeDocumentCodec(docStore, Collection.NODES, documentFilter, MongoClientSettings.getDefaultCodecRegistry()); diff --git a/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/pipelined/PipelinedTreeStoreStrategy.java b/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/pipelined/PipelinedTreeStoreStrategy.java index 85cbd9c1d6..2ceb16d440 100644 --- a/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/pipelined/PipelinedTreeStoreStrategy.java +++ b/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/pipelined/PipelinedTreeStoreStrategy.java @@ -21,7 +21,7 @@ package org.apache.jackrabbit.oak.index.indexer.document.flatfile.pipelined; import com.mongodb.MongoClientSettings; import com.mongodb.ConnectionString; import org.apache.commons.io.FileUtils; -import org.apache.jackrabbit.guava.common.util.concurrent.ThreadFactoryBuilder; +import org.apache.commons.lang3.concurrent.BasicThreadFactory; import org.apache.jackrabbit.oak.commons.Compression; import org.apache.jackrabbit.oak.commons.IOUtils; import org.apache.jackrabbit.oak.commons.concurrent.ExecutorCloser; @@ -341,7 +341,7 @@ public class PipelinedTreeStoreStrategy extends IndexStoreSortStrategyBase { public File createSortedStoreFile() throws IOException { int numberOfThreads = 1 + numberOfTransformThreads + 1; // dump, transform, sort threads ExecutorService threadPool = Executors.newFixedThreadPool(numberOfThreads, - new ThreadFactoryBuilder().setDaemon(true).build() + BasicThreadFactory.builder().daemon().build() ); MongoDocumentFilter documentFilter = new MongoDocumentFilter(filteredPath, suffixesToSkip); NodeDocumentCodec nodeDocumentCodec = new NodeDocumentCodec(docStore, Collection.NODES, documentFilter, MongoClientSettings.getDefaultCodecRegistry()); @@ -385,7 +385,7 @@ public class PipelinedTreeStoreStrategy extends IndexStoreSortStrategyBase { pathFilters, statisticsProvider, indexingReporter, - new ThreadFactoryBuilder().setDaemon(true).build(), + BasicThreadFactory.builder().daemon().build(), minModified )); diff --git a/oak-run-commons/src/test/java/org/apache/jackrabbit/oak/index/ThreadMonitorTest.java b/oak-run-commons/src/test/java/org/apache/jackrabbit/oak/index/ThreadMonitorTest.java index 436aa7165e..d51010fa98 100644 --- a/oak-run-commons/src/test/java/org/apache/jackrabbit/oak/index/ThreadMonitorTest.java +++ b/oak-run-commons/src/test/java/org/apache/jackrabbit/oak/index/ThreadMonitorTest.java @@ -18,7 +18,7 @@ */ package org.apache.jackrabbit.oak.index; -import org.apache.jackrabbit.guava.common.util.concurrent.ThreadFactoryBuilder; +import org.apache.commons.lang3.concurrent.BasicThreadFactory; import org.apache.jackrabbit.oak.commons.concurrent.ExecutorCloser; import org.junit.After; import org.junit.Before; @@ -115,7 +115,7 @@ public class ThreadMonitorTest { monitor.start(); ThreadMonitor.AutoRegisteringThreadFactory factory = new ThreadMonitor.AutoRegisteringThreadFactory( monitor, - new ThreadFactoryBuilder().setNameFormat("test-thread").build() + BasicThreadFactory.builder().namingPattern("test-thread").build() ); ExecutorService executor = Executors.newSingleThreadExecutor(factory); try { diff --git a/oak-run-commons/src/test/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/pipelined/PipelinedMongoServerSelectorTest.java b/oak-run-commons/src/test/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/pipelined/PipelinedMongoServerSelectorTest.java index 15984e3b69..c166866546 100644 --- a/oak-run-commons/src/test/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/pipelined/PipelinedMongoServerSelectorTest.java +++ b/oak-run-commons/src/test/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/pipelined/PipelinedMongoServerSelectorTest.java @@ -27,7 +27,7 @@ import com.mongodb.connection.ServerConnectionState; import com.mongodb.connection.ServerDescription; import com.mongodb.connection.ServerType; import com.mongodb.event.ClusterDescriptionChangedEvent; -import org.apache.jackrabbit.guava.common.util.concurrent.ThreadFactoryBuilder; +import org.apache.commons.lang3.concurrent.BasicThreadFactory; import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -73,9 +73,9 @@ public class PipelinedMongoServerSelectorTest { @Before public void setUp() { - threadAscending = Executors.newSingleThreadExecutor(new ThreadFactoryBuilder().setNameFormat(PipelinedMongoDownloadTask.THREAD_NAME_PREFIX + "-ascending").setDaemon(true).build()); - threadDescending = Executors.newSingleThreadExecutor(new ThreadFactoryBuilder().setNameFormat(PipelinedMongoDownloadTask.THREAD_NAME_PREFIX + "-descending").setDaemon(true).build()); - threadOther = Executors.newSingleThreadExecutor(new ThreadFactoryBuilder().setNameFormat("mongo-server-selector-test-thread").setDaemon(true).build()); + threadAscending = Executors.newSingleThreadExecutor(BasicThreadFactory.builder().namingPattern(PipelinedMongoDownloadTask.THREAD_NAME_PREFIX + "-ascending").daemon().build()); + threadDescending = Executors.newSingleThreadExecutor(BasicThreadFactory.builder().namingPattern(PipelinedMongoDownloadTask.THREAD_NAME_PREFIX + "-descending").daemon().build()); + threadOther = Executors.newSingleThreadExecutor(BasicThreadFactory.builder().namingPattern("mongo-server-selector-test-thread").daemon().build()); } @After diff --git a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/Downloader.java b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/Downloader.java index 76a2a1fd70..70ce113d1a 100644 --- a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/Downloader.java +++ b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/Downloader.java @@ -18,7 +18,7 @@ */ package org.apache.jackrabbit.oak.run; -import org.apache.jackrabbit.guava.common.util.concurrent.ThreadFactoryBuilder; +import org.apache.commons.lang3.concurrent.BasicThreadFactory; import org.apache.jackrabbit.oak.commons.IOUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -103,10 +103,7 @@ public class Downloader implements Closeable { this.executorService = new ThreadPoolExecutor( (int) Math.ceil(concurrency * .1), concurrency, 60L, TimeUnit.SECONDS, new LinkedBlockingQueue<>(), - new ThreadFactoryBuilder() - .setNameFormat("downloader-%d") - .setDaemon(true) - .build() + BasicThreadFactory.builder().namingPattern("downloader-%d").daemon().build() ); this.responses = new ArrayList<>(); } diff --git a/oak-search-elastic/src/main/java/org/apache/jackrabbit/oak/plugins/index/elastic/ElasticIndexStatistics.java b/oak-search-elastic/src/main/java/org/apache/jackrabbit/oak/plugins/index/elastic/ElasticIndexStatistics.java index 53bd9b7cf5..8cd016f0f2 100644 --- a/oak-search-elastic/src/main/java/org/apache/jackrabbit/oak/plugins/index/elastic/ElasticIndexStatistics.java +++ b/oak-search-elastic/src/main/java/org/apache/jackrabbit/oak/plugins/index/elastic/ElasticIndexStatistics.java @@ -27,6 +27,7 @@ import java.util.concurrent.TimeUnit; import co.elastic.clients.elasticsearch._types.query_dsl.Query; +import org.apache.commons.lang3.concurrent.BasicThreadFactory; import org.apache.jackrabbit.guava.common.base.Ticker; import org.apache.jackrabbit.oak.plugins.index.elastic.util.ElasticIndexUtils; import org.apache.jackrabbit.oak.plugins.index.search.IndexStatistics; @@ -39,7 +40,6 @@ import org.apache.jackrabbit.guava.common.cache.CacheLoader; import org.apache.jackrabbit.guava.common.cache.LoadingCache; import org.apache.jackrabbit.guava.common.util.concurrent.ListenableFuture; import org.apache.jackrabbit.guava.common.util.concurrent.ListenableFutureTask; -import org.apache.jackrabbit.guava.common.util.concurrent.ThreadFactoryBuilder; import co.elastic.clients.elasticsearch._types.Bytes; import co.elastic.clients.elasticsearch.cat.indices.IndicesRecord; @@ -70,10 +70,7 @@ public class ElasticIndexStatistics implements IndexStatistics { private static final ExecutorService REFRESH_EXECUTOR = new ThreadPoolExecutor( 0, 4, 60L, TimeUnit.SECONDS, new LinkedBlockingQueue<>(), - new ThreadFactoryBuilder() - .setNameFormat("elastic-statistics-cache-refresh-thread-%d") - .setDaemon(true) - .build() + BasicThreadFactory.builder().namingPattern("elastic-statistics-cache-refresh-thread-%d").daemon().build() ); private final ElasticConnection elasticConnection;