Reduce dependency on Guava 2 (#1590)

Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
This commit is contained in:
Avgustin Marinov
2024-02-03 00:43:10 +02:00
committed by GitHub
parent ee5e12a300
commit 791b87b27b
15 changed files with 81 additions and 59 deletions

View File

@@ -9,15 +9,19 @@
*/
package org.eclipse.hawkbit.autoconfigure.scheduling;
import java.util.Locale;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.Executor;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ThreadFactory;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.ThreadPoolExecutor.CallerRunsPolicy;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicLong;
import java.util.function.Function;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -34,7 +38,7 @@ import org.springframework.security.concurrent.DelegatingSecurityContextExecutor
import org.springframework.security.concurrent.DelegatingSecurityContextExecutorService;
import org.springframework.security.concurrent.DelegatingSecurityContextScheduledExecutorService;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
import static java.util.Objects.requireNonNull;
/**
* Central event processors inside update server.
@@ -78,7 +82,7 @@ public class ExecutorAutoConfiguration {
return new ThreadPoolExecutor(asyncConfigurerProperties.getCorethreads(),
asyncConfigurerProperties.getMaxthreads(), asyncConfigurerProperties.getIdletimeout(),
TimeUnit.MILLISECONDS, blockingQueue,
new ThreadFactoryBuilder().setNameFormat("central-executor-pool-%d").build(),
threadFactory("central-executor-pool-%d"),
new PoolSizeExceededPolicy());
}
@@ -100,7 +104,7 @@ public class ExecutorAutoConfiguration {
public Executor uiExecutor() {
final BlockingQueue<Runnable> blockingQueue = new ArrayBlockingQueue<>(20);
final ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(1, 20, 10000, TimeUnit.MILLISECONDS,
blockingQueue, new ThreadFactoryBuilder().setNameFormat("ui-executor-pool-%d").build());
blockingQueue, threadFactory("ui-executor-pool-%d"));
threadPoolExecutor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
return new DelegatingSecurityContextExecutor(threadPoolExecutor);
}
@@ -114,7 +118,7 @@ public class ExecutorAutoConfiguration {
public ScheduledExecutorService scheduledExecutorService() {
return new DelegatingSecurityContextScheduledExecutorService(
Executors.newScheduledThreadPool(asyncConfigurerProperties.getSchedulerThreads(),
new ThreadFactoryBuilder().setNameFormat("central-scheduled-executor-pool-%d").build()));
threadFactory("central-scheduled-executor-pool-%d")));
}
/**
@@ -126,4 +130,12 @@ public class ExecutorAutoConfiguration {
return new ConcurrentTaskScheduler(scheduledExecutorService());
}
private static ThreadFactory threadFactory(final String format) {
final AtomicLong count = new AtomicLong(0);
return (runnable) -> {
final Thread thread = Executors.defaultThreadFactory().newThread(runnable);
thread.setName(String.format(Locale.ROOT, format, count.getAndIncrement()));
return thread;
};
}
}