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.LogFactory;
 | 
			
		||||
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.support.SimpleJobLauncher;
 | 
			
		||||
import org.springframework.batch.core.repository.JobRepository;
 | 
			
		||||
| 
						 | 
				
			
			@ -36,6 +38,7 @@ import org.springframework.transaction.PlatformTransactionManager;
 | 
			
		|||
 * Basic {@link BatchConfigurer} implementation.
 | 
			
		||||
 *
 | 
			
		||||
 * @author Dave Syer
 | 
			
		||||
 * @author Andy Wilkinson
 | 
			
		||||
 */
 | 
			
		||||
@Component
 | 
			
		||||
public class BasicBatchConfigurer implements BatchConfigurer {
 | 
			
		||||
| 
						 | 
				
			
			@ -52,6 +55,8 @@ public class BasicBatchConfigurer implements BatchConfigurer {
 | 
			
		|||
 | 
			
		||||
	private JobLauncher jobLauncher;
 | 
			
		||||
 | 
			
		||||
	private JobExplorer jobExplorer;
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Create a new {@link BasicBatchConfigurer} instance.
 | 
			
		||||
	 * @param dataSource the underlying data source
 | 
			
		||||
| 
						 | 
				
			
			@ -86,18 +91,31 @@ public class BasicBatchConfigurer implements BatchConfigurer {
 | 
			
		|||
		return this.jobLauncher;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@Override
 | 
			
		||||
	public JobExplorer getJobExplorer() throws Exception {
 | 
			
		||||
		return this.jobExplorer;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@PostConstruct
 | 
			
		||||
	public void initialize() {
 | 
			
		||||
		try {
 | 
			
		||||
			this.transactionManager = createTransactionManager();
 | 
			
		||||
			this.jobRepository = createJobRepository();
 | 
			
		||||
			this.jobLauncher = createJobLauncher();
 | 
			
		||||
			this.jobExplorer = createJobExplorer();
 | 
			
		||||
		}
 | 
			
		||||
		catch (Exception 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 {
 | 
			
		||||
		SimpleJobLauncher jobLauncher = new SimpleJobLauncher();
 | 
			
		||||
		jobLauncher.setJobRepository(getJobRepository());
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -248,8 +248,8 @@ public class BatchAutoConfigurationTests {
 | 
			
		|||
			return launcher;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		@Bean
 | 
			
		||||
		public JobExplorer jobExplorer() throws Exception {
 | 
			
		||||
		@Override
 | 
			
		||||
		public JobExplorer getJobExplorer() throws Exception {
 | 
			
		||||
			MapJobExplorerFactoryBean explorer = new MapJobExplorerFactoryBean(
 | 
			
		||||
					this.factory);
 | 
			
		||||
			explorer.afterPropertiesSet();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -39,7 +39,6 @@ import org.springframework.batch.core.step.tasklet.Tasklet;
 | 
			
		|||
import org.springframework.batch.repeat.RepeatStatus;
 | 
			
		||||
import org.springframework.batch.support.transaction.ResourcelessTransactionManager;
 | 
			
		||||
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
 | 
			
		||||
import org.springframework.context.annotation.Bean;
 | 
			
		||||
import org.springframework.context.annotation.Configuration;
 | 
			
		||||
import org.springframework.core.task.SyncTaskExecutor;
 | 
			
		||||
import org.springframework.transaction.PlatformTransactionManager;
 | 
			
		||||
| 
						 | 
				
			
			@ -177,8 +176,8 @@ public class JobLauncherCommandLineRunnerTests {
 | 
			
		|||
			return launcher;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		@Bean
 | 
			
		||||
		public JobExplorer jobExplorer() throws Exception {
 | 
			
		||||
		@Override
 | 
			
		||||
		public JobExplorer getJobExplorer() throws Exception {
 | 
			
		||||
			return new MapJobExplorerFactoryBean(this.jobRepositoryFactory).getObject();
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -98,7 +98,7 @@
 | 
			
		|||
		<spock.version>0.7-groovy-2.0</spock.version>
 | 
			
		||||
		<spring.version>4.0.5.RELEASE</spring.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-hateoas.version>0.14.0.RELEASE</spring-hateoas.version>
 | 
			
		||||
		<spring-integration.version>4.0.2.RELEASE</spring-integration.version>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue