Subject: [PATCH] gh4489 --- Index: spring-batch-core/src/test/java/org/springframework/batch/core/configuration/support/DefaultBatchConfigurationTests.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/configuration/support/DefaultBatchConfigurationTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/configuration/support/DefaultBatchConfigurationTests.java --- a/spring-batch-core/src/test/java/org/springframework/batch/core/configuration/support/DefaultBatchConfigurationTests.java (revision 9d139b565d4dc21ca3fd1034f47ec5ef23c5bfa4) +++ b/spring-batch-core/src/test/java/org/springframework/batch/core/configuration/support/DefaultBatchConfigurationTests.java (date 1705670990753) @@ -161,7 +161,7 @@ } @Bean - public JobRegistryBeanPostProcessor jobRegistryBeanPostProcessor(JobRegistry jobRegistry) { + public static JobRegistryBeanPostProcessor jobRegistryBeanPostProcessor(JobRegistry jobRegistry) { JobRegistryBeanPostProcessor postProcessor = new JobRegistryBeanPostProcessor(); postProcessor.setJobRegistry(jobRegistry); return postProcessor; Index: spring-batch-core/src/main/java/org/springframework/batch/core/configuration/support/RegistryConfiguration.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/support/RegistryConfiguration.java b/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/support/RegistryConfiguration.java new file mode 100644 --- /dev/null (date 1705660861737) +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/support/RegistryConfiguration.java (date 1705660861737) @@ -0,0 +1,31 @@ +package org.springframework.batch.core.configuration.support; + +import org.springframework.batch.core.configuration.BatchConfigurationException; +import org.springframework.batch.core.configuration.JobRegistry; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration(proxyBeanMethods = false) +public class RegistryConfiguration { + + private static final JobRegistry jobRegistry = new MapJobRegistry(); + + @Bean + public static JobRegistry jobRegistry() throws BatchConfigurationException { + return jobRegistry; + } + + @Bean + public static JobRegistryBeanPostProcessor jobRegistryBeanPostProcessor() throws BatchConfigurationException { + JobRegistryBeanPostProcessor jobRegistryBeanPostProcessor = new JobRegistryBeanPostProcessor(); + jobRegistryBeanPostProcessor.setJobRegistry(jobRegistry); + try { + jobRegistryBeanPostProcessor.afterPropertiesSet(); + return jobRegistryBeanPostProcessor; + } + catch (Exception e) { + throw new BatchConfigurationException("Unable to configure the default job registry BeanPostProcessor", e); + } + } + +} \ No newline at end of file Index: spring-batch-core/src/main/java/org/springframework/batch/core/configuration/support/DefaultBatchConfiguration.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/support/DefaultBatchConfiguration.java b/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/support/DefaultBatchConfiguration.java --- a/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/support/DefaultBatchConfiguration.java (revision 9d139b565d4dc21ca3fd1034f47ec5ef23c5bfa4) +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/support/DefaultBatchConfiguration.java (date 1705660083445) @@ -112,13 +112,17 @@ * @since 5.0 */ @Configuration(proxyBeanMethods = false) -@Import(ScopeConfiguration.class) +@Import({ ScopeConfiguration.class, RegistryConfiguration.class }) public class DefaultBatchConfiguration implements ApplicationContextAware { @Autowired protected ApplicationContext applicationContext; - private final JobRegistry jobRegistry = new MapJobRegistry(); + @Autowired + private JobRegistry jobRegistry; + + @Autowired + private JobRegistryBeanPostProcessor jobRegistryBeanPostProcessor; @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { @@ -187,9 +191,8 @@ } } - @Bean public JobRegistry jobRegistry() throws BatchConfigurationException { - return this.jobRegistry; // FIXME returning a new instance here does not work + return this.jobRegistry; } @Bean @@ -215,17 +218,8 @@ * @throws BatchConfigurationException if unable to register the bean * @since 5.1 */ - @Bean public JobRegistryBeanPostProcessor jobRegistryBeanPostProcessor() throws BatchConfigurationException { - JobRegistryBeanPostProcessor jobRegistryBeanPostProcessor = new JobRegistryBeanPostProcessor(); - jobRegistryBeanPostProcessor.setJobRegistry(jobRegistry()); - try { - jobRegistryBeanPostProcessor.afterPropertiesSet(); - return jobRegistryBeanPostProcessor; - } - catch (Exception e) { - throw new BatchConfigurationException("Unable to configure the default job registry BeanPostProcessor", e); - } + return this.jobRegistryBeanPostProcessor; } /*