Upgrade to Spring Batch 3.0.1
Due to a mistake in Spring Batch 3.0.0 it has been necessary to introduce a breaking API change (the addition of BatchConfigurer.getJobExplorer()) in the 3.0.1 release. This commit updates Boot to use 3.0.1 and modifies the Batch auto-configuration and associated tests to implement the new method.
This commit is contained in:
parent
f7b7b1c8cb
commit
6a0eb90007
|
@ -23,6 +23,8 @@ import javax.sql.DataSource;
|
||||||
import org.apache.commons.logging.Log;
|
import org.apache.commons.logging.Log;
|
||||||
import org.apache.commons.logging.LogFactory;
|
import org.apache.commons.logging.LogFactory;
|
||||||
import org.springframework.batch.core.configuration.annotation.BatchConfigurer;
|
import org.springframework.batch.core.configuration.annotation.BatchConfigurer;
|
||||||
|
import org.springframework.batch.core.explore.JobExplorer;
|
||||||
|
import org.springframework.batch.core.explore.support.JobExplorerFactoryBean;
|
||||||
import org.springframework.batch.core.launch.JobLauncher;
|
import org.springframework.batch.core.launch.JobLauncher;
|
||||||
import org.springframework.batch.core.launch.support.SimpleJobLauncher;
|
import org.springframework.batch.core.launch.support.SimpleJobLauncher;
|
||||||
import org.springframework.batch.core.repository.JobRepository;
|
import org.springframework.batch.core.repository.JobRepository;
|
||||||
|
@ -36,6 +38,7 @@ import org.springframework.transaction.PlatformTransactionManager;
|
||||||
* Basic {@link BatchConfigurer} implementation.
|
* Basic {@link BatchConfigurer} implementation.
|
||||||
*
|
*
|
||||||
* @author Dave Syer
|
* @author Dave Syer
|
||||||
|
* @author Andy Wilkinson
|
||||||
*/
|
*/
|
||||||
@Component
|
@Component
|
||||||
public class BasicBatchConfigurer implements BatchConfigurer {
|
public class BasicBatchConfigurer implements BatchConfigurer {
|
||||||
|
@ -52,6 +55,8 @@ public class BasicBatchConfigurer implements BatchConfigurer {
|
||||||
|
|
||||||
private JobLauncher jobLauncher;
|
private JobLauncher jobLauncher;
|
||||||
|
|
||||||
|
private JobExplorer jobExplorer;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a new {@link BasicBatchConfigurer} instance.
|
* Create a new {@link BasicBatchConfigurer} instance.
|
||||||
* @param dataSource the underlying data source
|
* @param dataSource the underlying data source
|
||||||
|
@ -86,18 +91,31 @@ public class BasicBatchConfigurer implements BatchConfigurer {
|
||||||
return this.jobLauncher;
|
return this.jobLauncher;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public JobExplorer getJobExplorer() throws Exception {
|
||||||
|
return this.jobExplorer;
|
||||||
|
}
|
||||||
|
|
||||||
@PostConstruct
|
@PostConstruct
|
||||||
public void initialize() {
|
public void initialize() {
|
||||||
try {
|
try {
|
||||||
this.transactionManager = createTransactionManager();
|
this.transactionManager = createTransactionManager();
|
||||||
this.jobRepository = createJobRepository();
|
this.jobRepository = createJobRepository();
|
||||||
this.jobLauncher = createJobLauncher();
|
this.jobLauncher = createJobLauncher();
|
||||||
|
this.jobExplorer = createJobExplorer();
|
||||||
}
|
}
|
||||||
catch (Exception ex) {
|
catch (Exception ex) {
|
||||||
throw new IllegalStateException("Unable to initialize Spring Batch", ex);
|
throw new IllegalStateException("Unable to initialize Spring Batch", ex);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private JobExplorer createJobExplorer() throws Exception {
|
||||||
|
JobExplorerFactoryBean jobExplorerFactoryBean = new JobExplorerFactoryBean();
|
||||||
|
jobExplorerFactoryBean.setDataSource(this.dataSource);
|
||||||
|
jobExplorerFactoryBean.afterPropertiesSet();
|
||||||
|
return jobExplorerFactoryBean.getObject();
|
||||||
|
}
|
||||||
|
|
||||||
private JobLauncher createJobLauncher() throws Exception {
|
private JobLauncher createJobLauncher() throws Exception {
|
||||||
SimpleJobLauncher jobLauncher = new SimpleJobLauncher();
|
SimpleJobLauncher jobLauncher = new SimpleJobLauncher();
|
||||||
jobLauncher.setJobRepository(getJobRepository());
|
jobLauncher.setJobRepository(getJobRepository());
|
||||||
|
|
|
@ -248,8 +248,8 @@ public class BatchAutoConfigurationTests {
|
||||||
return launcher;
|
return launcher;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Bean
|
@Override
|
||||||
public JobExplorer jobExplorer() throws Exception {
|
public JobExplorer getJobExplorer() throws Exception {
|
||||||
MapJobExplorerFactoryBean explorer = new MapJobExplorerFactoryBean(
|
MapJobExplorerFactoryBean explorer = new MapJobExplorerFactoryBean(
|
||||||
this.factory);
|
this.factory);
|
||||||
explorer.afterPropertiesSet();
|
explorer.afterPropertiesSet();
|
||||||
|
|
|
@ -39,7 +39,6 @@ import org.springframework.batch.core.step.tasklet.Tasklet;
|
||||||
import org.springframework.batch.repeat.RepeatStatus;
|
import org.springframework.batch.repeat.RepeatStatus;
|
||||||
import org.springframework.batch.support.transaction.ResourcelessTransactionManager;
|
import org.springframework.batch.support.transaction.ResourcelessTransactionManager;
|
||||||
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
|
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
|
||||||
import org.springframework.context.annotation.Bean;
|
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
import org.springframework.core.task.SyncTaskExecutor;
|
import org.springframework.core.task.SyncTaskExecutor;
|
||||||
import org.springframework.transaction.PlatformTransactionManager;
|
import org.springframework.transaction.PlatformTransactionManager;
|
||||||
|
@ -177,8 +176,8 @@ public class JobLauncherCommandLineRunnerTests {
|
||||||
return launcher;
|
return launcher;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Bean
|
@Override
|
||||||
public JobExplorer jobExplorer() throws Exception {
|
public JobExplorer getJobExplorer() throws Exception {
|
||||||
return new MapJobExplorerFactoryBean(this.jobRepositoryFactory).getObject();
|
return new MapJobExplorerFactoryBean(this.jobRepositoryFactory).getObject();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -98,7 +98,7 @@
|
||||||
<spock.version>0.7-groovy-2.0</spock.version>
|
<spock.version>0.7-groovy-2.0</spock.version>
|
||||||
<spring.version>4.0.5.RELEASE</spring.version>
|
<spring.version>4.0.5.RELEASE</spring.version>
|
||||||
<spring-amqp.version>1.3.5.RELEASE</spring-amqp.version>
|
<spring-amqp.version>1.3.5.RELEASE</spring-amqp.version>
|
||||||
<spring-batch.version>3.0.0.RELEASE</spring-batch.version>
|
<spring-batch.version>3.0.1.RELEASE</spring-batch.version>
|
||||||
<spring-data-releasetrain.version>Dijkstra-SR1</spring-data-releasetrain.version>
|
<spring-data-releasetrain.version>Dijkstra-SR1</spring-data-releasetrain.version>
|
||||||
<spring-hateoas.version>0.14.0.RELEASE</spring-hateoas.version>
|
<spring-hateoas.version>0.14.0.RELEASE</spring-hateoas.version>
|
||||||
<spring-integration.version>4.0.2.RELEASE</spring-integration.version>
|
<spring-integration.version>4.0.2.RELEASE</spring-integration.version>
|
||||||
|
|
Loading…
Reference in New Issue