From 19859a9023b0bb0368556b525fd418421b053920 Mon Sep 17 00:00:00 2001 From: Moritz Halbritter Date: Tue, 1 Aug 2023 15:40:05 +0200 Subject: [PATCH] Simplify TaskExecutionAutoConfiguration --- .../task/TaskExecutionAutoConfiguration.java | 3 +-- .../task/TaskExecutorConfigurations.java | 23 ++++++++----------- 2 files changed, 10 insertions(+), 16 deletions(-) diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/task/TaskExecutionAutoConfiguration.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/task/TaskExecutionAutoConfiguration.java index 8d6ef29d676..2f76a06a8c7 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/task/TaskExecutionAutoConfiguration.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/task/TaskExecutionAutoConfiguration.java @@ -38,8 +38,7 @@ import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; @Import({ TaskExecutorConfigurations.ThreadPoolTaskExecutorBuilderConfiguration.class, TaskExecutorConfigurations.TaskExecutorBuilderConfiguration.class, TaskExecutorConfigurations.SimpleAsyncTaskExecutorBuilderConfiguration.class, - TaskExecutorConfigurations.VirtualThreadTaskExecutorConfiguration.class, - TaskExecutorConfigurations.ThreadPoolTaskExecutorConfiguration.class }) + TaskExecutorConfigurations.TaskExecutorConfiguration.class }) public class TaskExecutionAutoConfiguration { /** diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/task/TaskExecutorConfigurations.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/task/TaskExecutorConfigurations.java index 91ce9daef4a..ccefd966e49 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/task/TaskExecutorConfigurations.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/task/TaskExecutorConfigurations.java @@ -47,27 +47,22 @@ import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; */ class TaskExecutorConfigurations { - @ConditionalOnThreading(Threading.VIRTUAL) - @Configuration(proxyBeanMethods = false) - @ConditionalOnMissingBean(Executor.class) - static class VirtualThreadTaskExecutorConfiguration { - - @Bean(name = { TaskExecutionAutoConfiguration.APPLICATION_TASK_EXECUTOR_BEAN_NAME, - AsyncAnnotationBeanPostProcessor.DEFAULT_TASK_EXECUTOR_BEAN_NAME }) - SimpleAsyncTaskExecutor applicationTaskExecutor(SimpleAsyncTaskExecutorBuilder builder) { - return builder.build(); - } - - } - @Configuration(proxyBeanMethods = false) @ConditionalOnMissingBean(Executor.class) @SuppressWarnings("removal") - static class ThreadPoolTaskExecutorConfiguration { + static class TaskExecutorConfiguration { + + @Bean(name = { TaskExecutionAutoConfiguration.APPLICATION_TASK_EXECUTOR_BEAN_NAME, + AsyncAnnotationBeanPostProcessor.DEFAULT_TASK_EXECUTOR_BEAN_NAME }) + @ConditionalOnThreading(Threading.VIRTUAL) + SimpleAsyncTaskExecutor applicationTaskExecutorVirtualThreads(SimpleAsyncTaskExecutorBuilder builder) { + return builder.build(); + } @Lazy @Bean(name = { TaskExecutionAutoConfiguration.APPLICATION_TASK_EXECUTOR_BEAN_NAME, AsyncAnnotationBeanPostProcessor.DEFAULT_TASK_EXECUTOR_BEAN_NAME }) + @ConditionalOnThreading(Threading.PLATFORM) ThreadPoolTaskExecutor applicationTaskExecutor(TaskExecutorBuilder taskExecutorBuilder, ObjectProvider threadPoolTaskExecutorBuilderProvider) { ThreadPoolTaskExecutorBuilder threadPoolTaskExecutorBuilder = threadPoolTaskExecutorBuilderProvider