BATCH-1913: Add step builders
This commit is contained in:
@@ -316,7 +316,6 @@ public class ChunkElementParserTests {
|
||||
return policy;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
private Object getNestedPathInStep(String stepName, ApplicationContext ctx, String path) throws Exception {
|
||||
Map<String, Step> beans = ctx.getBeansOfType(Step.class);
|
||||
assertTrue(beans.containsKey(stepName));
|
||||
@@ -365,7 +364,6 @@ public class ChunkElementParserTests {
|
||||
return (Collection<ItemStream>) ReflectionTestUtils.getField(compositeStream, "streams");
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
private Collection<RetryListener> getRetryListeners(String stepName, ApplicationContext ctx) throws Exception {
|
||||
Map<String, Step> beans = ctx.getBeansOfType(Step.class);
|
||||
assertTrue(beans.containsKey(stepName));
|
||||
|
||||
@@ -64,6 +64,9 @@ public class StepParserStepFactoryBeanTests {
|
||||
@Test
|
||||
public void testOnlyTaskletSet() throws Exception {
|
||||
StepParserStepFactoryBean<Object, Object> fb = new StepParserStepFactoryBean<Object, Object>();
|
||||
fb.setName("step");
|
||||
fb.setTransactionManager(new ResourcelessTransactionManager());
|
||||
fb.setJobRepository(new JobRepositorySupport());
|
||||
fb.setTasklet(new DummyTasklet());
|
||||
Object step = fb.getObject();
|
||||
assertTrue(step instanceof TaskletStep);
|
||||
@@ -74,6 +77,9 @@ public class StepParserStepFactoryBeanTests {
|
||||
@Test
|
||||
public void testOnlyTaskletTaskExecutor() throws Exception {
|
||||
StepParserStepFactoryBean<Object, Object> fb = new StepParserStepFactoryBean<Object, Object>();
|
||||
fb.setName("step");
|
||||
fb.setTransactionManager(new ResourcelessTransactionManager());
|
||||
fb.setJobRepository(new JobRepositorySupport());
|
||||
fb.setTasklet(new DummyTasklet());
|
||||
fb.setTaskExecutor(new SimpleAsyncTaskExecutor());
|
||||
Object step = fb.getObject();
|
||||
@@ -85,6 +91,7 @@ public class StepParserStepFactoryBeanTests {
|
||||
@Test(expected = IllegalStateException.class)
|
||||
public void testSkipLimitSet() throws Exception {
|
||||
StepParserStepFactoryBean<Object, Object> fb = new StepParserStepFactoryBean<Object, Object>();
|
||||
fb.setName("step");
|
||||
fb.setSkipLimit(5);
|
||||
fb.getObject();
|
||||
}
|
||||
@@ -140,6 +147,7 @@ public class StepParserStepFactoryBeanTests {
|
||||
fb.setItemReader(new DummyItemReader());
|
||||
fb.setItemWriter(new DummyItemWriter());
|
||||
fb.setStreams(new ItemStream[] { new FlatFileItemReader<Object>() });
|
||||
fb.setHasChunkElement(true);
|
||||
|
||||
Object step = fb.getObject();
|
||||
assertTrue(step instanceof TaskletStep);
|
||||
@@ -147,7 +155,7 @@ public class StepParserStepFactoryBeanTests {
|
||||
assertTrue(tasklet instanceof ChunkOrientedTasklet<?>);
|
||||
}
|
||||
|
||||
@Test(expected = IllegalStateException.class)
|
||||
@Test(expected = IllegalArgumentException.class)
|
||||
public void testFaultTolerantStepAll() throws Exception {
|
||||
StepParserStepFactoryBean<Object, Object> fb = new StepParserStepFactoryBean<Object, Object>();
|
||||
fb.setBeanName("step1");
|
||||
@@ -172,6 +180,7 @@ public class StepParserStepFactoryBeanTests {
|
||||
fb.setRetryListeners(new RetryListenerSupport());
|
||||
fb.setSkippableExceptionClasses(new HashMap<Class<? extends Throwable>, Boolean>());
|
||||
fb.setRetryableExceptionClasses(new HashMap<Class<? extends Throwable>, Boolean>());
|
||||
fb.setHasChunkElement(true);
|
||||
|
||||
Object step = fb.getObject();
|
||||
assertTrue(step instanceof TaskletStep);
|
||||
|
||||
@@ -50,6 +50,7 @@ public class PartitionStepTests {
|
||||
MapJobRepositoryFactoryBean factory = new MapJobRepositoryFactoryBean();
|
||||
jobRepository = (JobRepository) factory.getObject();
|
||||
step.setJobRepository(jobRepository);
|
||||
step.setName("partitioned");
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
@@ -68,8 +68,7 @@ public class NonAbstractStepTests {
|
||||
}
|
||||
|
||||
/**
|
||||
* Fills the events list when listener methods are called, prefixed with the
|
||||
* name of the listener.
|
||||
* Fills the events list when listener methods are called, prefixed with the name of the listener.
|
||||
*/
|
||||
private class EventTrackingListener implements StepExecutionListener {
|
||||
|
||||
@@ -85,7 +84,7 @@ public class NonAbstractStepTests {
|
||||
|
||||
public ExitStatus afterStep(StepExecution stepExecution) {
|
||||
assertSame(execution, stepExecution);
|
||||
events.add(getEvent("afterStep("+stepExecution.getExitStatus().getExitCode()+")"));
|
||||
events.add(getEvent("afterStep(" + stepExecution.getExitStatus().getExitCode() + ")"));
|
||||
stepExecution.getExecutionContext().putString("afterStep", "afterStep");
|
||||
return stepExecution.getExitStatus();
|
||||
}
|
||||
@@ -104,7 +103,7 @@ public class NonAbstractStepTests {
|
||||
private static class JobRepositoryStub extends JobRepositorySupport {
|
||||
|
||||
ExecutionContext saved = new ExecutionContext();
|
||||
|
||||
|
||||
static long counter = 0;
|
||||
|
||||
public void updateExecutionContext(StepExecution stepExecution) {
|
||||
@@ -119,7 +118,6 @@ public class NonAbstractStepTests {
|
||||
counter++;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -128,7 +126,7 @@ public class NonAbstractStepTests {
|
||||
tested.setJobRepository(repository);
|
||||
repository.add(execution);
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testBeanName() throws Exception {
|
||||
AbstractStep step = new AbstractStep() {
|
||||
@@ -175,10 +173,10 @@ public class NonAbstractStepTests {
|
||||
|
||||
assertEquals(ExitStatus.COMPLETED, execution.getExitStatus());
|
||||
|
||||
assertTrue("Execution context modifications made by listener should be persisted", repository.saved
|
||||
.containsKey("beforeStep"));
|
||||
assertTrue("Execution context modifications made by listener should be persisted", repository.saved
|
||||
.containsKey("afterStep"));
|
||||
assertTrue("Execution context modifications made by listener should be persisted",
|
||||
repository.saved.containsKey("beforeStep"));
|
||||
assertTrue("Execution context modifications made by listener should be persisted",
|
||||
repository.saved.containsKey("afterStep"));
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -210,11 +208,12 @@ public class NonAbstractStepTests {
|
||||
|
||||
assertEquals(ExitStatus.FAILED.getExitCode(), execution.getExitStatus().getExitCode());
|
||||
String exitDescription = execution.getExitStatus().getExitDescription();
|
||||
assertTrue("Wrong message: "+exitDescription, exitDescription.contains("crash"));
|
||||
assertTrue("Wrong message: " + exitDescription, exitDescription.contains("crash"));
|
||||
|
||||
assertTrue("Execution context modifications made by listener should be persisted", repository.saved
|
||||
.containsKey("afterStep"));
|
||||
assertTrue("Execution context modifications made by listener should be persisted",
|
||||
repository.saved.containsKey("afterStep"));
|
||||
}
|
||||
|
||||
/**
|
||||
* Exception during business processing.
|
||||
*/
|
||||
@@ -247,8 +246,8 @@ public class NonAbstractStepTests {
|
||||
|
||||
assertEquals("STOPPED", execution.getExitStatus().getExitCode());
|
||||
|
||||
assertTrue("Execution context modifications made by listener should be persisted", repository.saved
|
||||
.containsKey("afterStep"));
|
||||
assertTrue("Execution context modifications made by listener should be persisted",
|
||||
repository.saved.containsKey("afterStep"));
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -271,8 +270,8 @@ public class NonAbstractStepTests {
|
||||
|
||||
assertEquals("FUNNY", execution.getExitStatus().getExitCode());
|
||||
|
||||
assertTrue("Execution context modifications made by listener should be persisted", repository.saved
|
||||
.containsKey("afterStep"));
|
||||
assertTrue("Execution context modifications made by listener should be persisted",
|
||||
repository.saved.containsKey("afterStep"));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -310,16 +309,10 @@ public class NonAbstractStepTests {
|
||||
/**
|
||||
* JobRepository is a required property.
|
||||
*/
|
||||
@Test
|
||||
@Test(expected = IllegalStateException.class)
|
||||
public void testAfterPropertiesSet() throws Exception {
|
||||
tested.setJobRepository(null);
|
||||
try {
|
||||
tested.afterPropertiesSet();
|
||||
fail();
|
||||
}
|
||||
catch (IllegalArgumentException e) {
|
||||
// expected
|
||||
}
|
||||
tested.afterPropertiesSet();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -25,6 +25,7 @@ import org.springframework.batch.core.SkipListener;
|
||||
import org.springframework.batch.core.Step;
|
||||
import org.springframework.batch.core.StepExecution;
|
||||
import org.springframework.batch.core.step.JobRepositorySupport;
|
||||
import org.springframework.batch.core.step.factory.FaultTolerantStepFactoryBean;
|
||||
import org.springframework.batch.item.ItemWriter;
|
||||
import org.springframework.batch.item.support.ListItemReader;
|
||||
import org.springframework.batch.support.transaction.ResourcelessTransactionManager;
|
||||
|
||||
@@ -45,6 +45,7 @@ import org.springframework.batch.core.repository.dao.MapJobInstanceDao;
|
||||
import org.springframework.batch.core.repository.dao.MapStepExecutionDao;
|
||||
import org.springframework.batch.core.repository.support.SimpleJobRepository;
|
||||
import org.springframework.batch.core.step.AbstractStep;
|
||||
import org.springframework.batch.core.step.factory.FaultTolerantStepFactoryBean;
|
||||
import org.springframework.batch.item.ExecutionContext;
|
||||
import org.springframework.batch.item.ItemProcessor;
|
||||
import org.springframework.batch.item.ItemReader;
|
||||
|
||||
@@ -30,6 +30,7 @@ import org.springframework.batch.core.StepListener;
|
||||
import org.springframework.batch.core.repository.JobRepository;
|
||||
import org.springframework.batch.core.repository.support.MapJobRepositoryFactoryBean;
|
||||
import org.springframework.batch.core.step.FatalStepExecutionException;
|
||||
import org.springframework.batch.core.step.factory.FaultTolerantStepFactoryBean;
|
||||
import org.springframework.batch.item.ItemReader;
|
||||
import org.springframework.batch.item.support.ListItemReader;
|
||||
import org.springframework.batch.support.transaction.ResourcelessTransactionManager;
|
||||
@@ -151,7 +152,6 @@ public class FaultTolerantStepFactoryBeanRollbackTests {
|
||||
assertFalse(attr.rollbackOn(new Exception("")));
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
@Test
|
||||
public void testNonDefaultRollbackRules() throws Exception {
|
||||
TransactionAttributeEditor editor = new TransactionAttributeEditor();
|
||||
|
||||
@@ -33,6 +33,7 @@ import org.springframework.batch.core.StepListener;
|
||||
import org.springframework.batch.core.listener.SkipListenerSupport;
|
||||
import org.springframework.batch.core.repository.JobRepository;
|
||||
import org.springframework.batch.core.repository.support.MapJobRepositoryFactoryBean;
|
||||
import org.springframework.batch.core.step.factory.FaultTolerantStepFactoryBean;
|
||||
import org.springframework.batch.core.step.skip.LimitCheckingItemSkipPolicy;
|
||||
import org.springframework.batch.core.step.skip.SkipLimitExceededException;
|
||||
import org.springframework.batch.core.step.skip.SkipPolicy;
|
||||
|
||||
@@ -17,6 +17,7 @@ import org.springframework.batch.core.Step;
|
||||
import org.springframework.batch.core.StepExecution;
|
||||
import org.springframework.batch.core.repository.JobRepository;
|
||||
import org.springframework.batch.core.repository.support.JobRepositoryFactoryBean;
|
||||
import org.springframework.batch.core.step.factory.FaultTolerantStepFactoryBean;
|
||||
import org.springframework.batch.item.ItemReader;
|
||||
import org.springframework.batch.item.support.ListItemReader;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
@@ -27,6 +27,7 @@ import org.springframework.batch.core.Step;
|
||||
import org.springframework.batch.core.StepExecution;
|
||||
import org.springframework.batch.core.launch.EmptyItemWriter;
|
||||
import org.springframework.batch.core.step.JobRepositorySupport;
|
||||
import org.springframework.batch.core.step.factory.SimpleStepFactoryBean;
|
||||
import org.springframework.batch.item.support.ListItemReader;
|
||||
import org.springframework.batch.repeat.RepeatCallback;
|
||||
import org.springframework.batch.repeat.RepeatOperations;
|
||||
|
||||
@@ -47,6 +47,7 @@ import org.springframework.batch.core.repository.dao.MapJobInstanceDao;
|
||||
import org.springframework.batch.core.repository.dao.MapStepExecutionDao;
|
||||
import org.springframework.batch.core.repository.support.SimpleJobRepository;
|
||||
import org.springframework.batch.core.step.AbstractStep;
|
||||
import org.springframework.batch.core.step.factory.SimpleStepFactoryBean;
|
||||
import org.springframework.batch.item.ItemProcessor;
|
||||
import org.springframework.batch.item.ItemReader;
|
||||
import org.springframework.batch.item.ItemWriter;
|
||||
@@ -272,7 +273,7 @@ public class SimpleStepFactoryBeanTests {
|
||||
int expectedListenerCallCount = (items.length / commitInterval) + 1;
|
||||
assertEquals(expectedListenerCallCount, chunkListener.afterCount);
|
||||
assertEquals(expectedListenerCallCount, chunkListener.beforeCount);
|
||||
assertTrue("Llistener order not as expected: " + writeListener.trail, writeListener.trail.startsWith("1234"));
|
||||
assertTrue("Listener order not as expected: " + writeListener.trail, writeListener.trail.startsWith("1234"));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user