Reduce dependency on Guava 2 (#1590)
Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
This commit is contained in:
@@ -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;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user