diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/domain/StepListener.java b/spring-batch-core/src/main/java/org/springframework/batch/core/domain/StepListener.java index 105cb2cd5..590a710ff 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/domain/StepListener.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/domain/StepListener.java @@ -50,5 +50,5 @@ public interface StepListener extends BatchListener { * @return an {@link ExitStatus} to combine with the normal value. Return * null to leave the old value unchanged. */ - ExitStatus afterStep(); + ExitStatus afterStep(StepExecution stepExecution); } diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/listener/BatchListenerSupport.java b/spring-batch-core/src/main/java/org/springframework/batch/core/listener/BatchListenerSupport.java index 7d7f3f80f..5e0fa796c 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/listener/BatchListenerSupport.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/listener/BatchListenerSupport.java @@ -33,9 +33,9 @@ public class BatchListenerSupport implements StepListener, ChunkListener, ItemReadListener, ItemWriteListener { /* (non-Javadoc) - * @see org.springframework.batch.core.domain.StepListener#afterStep() + * @see org.springframework.batch.core.domain.StepListener#afterStep(StepExecution stepExecution) */ - public ExitStatus afterStep() { + public ExitStatus afterStep(StepExecution stepExecution) { return null; } diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/listener/StepListenerSupport.java b/spring-batch-core/src/main/java/org/springframework/batch/core/listener/StepListenerSupport.java index 2caa673a0..1206835b0 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/listener/StepListenerSupport.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/listener/StepListenerSupport.java @@ -26,9 +26,9 @@ import org.springframework.batch.repeat.ExitStatus; public class StepListenerSupport implements StepListener { /* (non-Javadoc) - * @see org.springframework.batch.core.domain.StepListener#close() + * @see org.springframework.batch.core.domain.StepListener#afterStep(StepExecution stepExecution) */ - public ExitStatus afterStep() { + public ExitStatus afterStep(StepExecution stepExecution) { return null; } diff --git a/spring-batch-execution/src/main/java/org/springframework/batch/execution/listener/CompositeStepListener.java b/spring-batch-execution/src/main/java/org/springframework/batch/execution/listener/CompositeStepListener.java index 8ec5db2d3..7828e1122 100644 --- a/spring-batch-execution/src/main/java/org/springframework/batch/execution/listener/CompositeStepListener.java +++ b/spring-batch-execution/src/main/java/org/springframework/batch/execution/listener/CompositeStepListener.java @@ -55,11 +55,11 @@ public class CompositeStepListener implements StepListener { /* (non-Javadoc) * @see org.springframework.batch.core.domain.StepListener#close() */ - public ExitStatus afterStep() { + public ExitStatus afterStep(StepExecution stepExecution) { ExitStatus status = null; for (Iterator iterator = listeners.iterator(); iterator.hasNext();) { StepListener listener = (StepListener) iterator.next(); - ExitStatus close = listener.afterStep(); + ExitStatus close = listener.afterStep(stepExecution); status = status!=null ? status.and(close): close; } return status; diff --git a/spring-batch-execution/src/main/java/org/springframework/batch/execution/step/ItemOrientedStep.java b/spring-batch-execution/src/main/java/org/springframework/batch/execution/step/ItemOrientedStep.java index 077f5cb4d..dfe0bceb0 100644 --- a/spring-batch-execution/src/main/java/org/springframework/batch/execution/step/ItemOrientedStep.java +++ b/spring-batch-execution/src/main/java/org/springframework/batch/execution/step/ItemOrientedStep.java @@ -416,7 +416,7 @@ public class ItemOrientedStep extends AbstractStep { finally { try { - status = status.and(listener.afterStep()); + status = status.and(listener.afterStep(stepExecution)); } catch (RuntimeException e) { logger.error("Unexpected error in listener after step.", e); diff --git a/spring-batch-execution/src/main/java/org/springframework/batch/execution/step/TaskletStep.java b/spring-batch-execution/src/main/java/org/springframework/batch/execution/step/TaskletStep.java index 836b8dd23..d280c138c 100644 --- a/spring-batch-execution/src/main/java/org/springframework/batch/execution/step/TaskletStep.java +++ b/spring-batch-execution/src/main/java/org/springframework/batch/execution/step/TaskletStep.java @@ -138,7 +138,7 @@ public class TaskletStep extends AbstractStep implements Step, InitializingBean, listener.beforeStep(stepExecution); exitStatus = tasklet.execute(); try { - exitStatus = exitStatus.and(listener.afterStep()); + exitStatus = exitStatus.and(listener.afterStep(stepExecution)); } catch (Exception e) { logger.error("Encountered an error on listener close.", e); diff --git a/spring-batch-execution/src/main/java/org/springframework/batch/execution/step/support/ListenerMulticaster.java b/spring-batch-execution/src/main/java/org/springframework/batch/execution/step/support/ListenerMulticaster.java index 5431e73f1..5154ddbc9 100644 --- a/spring-batch-execution/src/main/java/org/springframework/batch/execution/step/support/ListenerMulticaster.java +++ b/spring-batch-execution/src/main/java/org/springframework/batch/execution/step/support/ListenerMulticaster.java @@ -87,8 +87,8 @@ public class ListenerMulticaster implements StepListener, ChunkListener, ItemRea * @return * @see org.springframework.batch.execution.listener.CompositeStepListener#afterStep() */ - public ExitStatus afterStep() { - return stepListener.afterStep(); + public ExitStatus afterStep(StepExecution stepExecution) { + return stepListener.afterStep(stepExecution); } /** diff --git a/spring-batch-execution/src/test/java/org/springframework/batch/execution/listener/CompositeStepListenerTests.java b/spring-batch-execution/src/test/java/org/springframework/batch/execution/listener/CompositeStepListenerTests.java index 06158f769..12e79471c 100644 --- a/spring-batch-execution/src/test/java/org/springframework/batch/execution/listener/CompositeStepListenerTests.java +++ b/spring-batch-execution/src/test/java/org/springframework/batch/execution/listener/CompositeStepListenerTests.java @@ -42,17 +42,17 @@ public class CompositeStepListenerTests extends TestCase { */ public void testSetListeners() { listener.setListeners(new StepListener[] { new StepListenerSupport() { - public ExitStatus afterStep() { + public ExitStatus afterStep(StepExecution stepExecution) { list.add("fail"); return ExitStatus.FAILED; } }, new StepListenerSupport() { - public ExitStatus afterStep() { + public ExitStatus afterStep(StepExecution stepExecution) { list.add("continue"); return ExitStatus.CONTINUABLE; } } }); - assertFalse(listener.afterStep().isContinuable()); + assertFalse(listener.afterStep(null).isContinuable()); assertEquals(2, list.size()); } @@ -62,12 +62,12 @@ public class CompositeStepListenerTests extends TestCase { */ public void testSetListener() { listener.register(new StepListenerSupport() { - public ExitStatus afterStep() { + public ExitStatus afterStep(StepExecution stepExecution) { list.add("fail"); return ExitStatus.FAILED; } }); - assertFalse(listener.afterStep().isContinuable()); + assertFalse(listener.afterStep(null).isContinuable()); assertEquals(1, list.size()); } diff --git a/spring-batch-execution/src/test/java/org/springframework/batch/execution/step/ItemOrientedStepTests.java b/spring-batch-execution/src/test/java/org/springframework/batch/execution/step/ItemOrientedStepTests.java index 65f479309..9be27fbd4 100644 --- a/spring-batch-execution/src/test/java/org/springframework/batch/execution/step/ItemOrientedStepTests.java +++ b/spring-batch-execution/src/test/java/org/springframework/batch/execution/step/ItemOrientedStepTests.java @@ -364,7 +364,7 @@ public class ItemOrientedStepTests extends TestCase { public void beforeStep(StepExecution stepExecution) { list.add("foo"); } - public ExitStatus afterStep() { + public ExitStatus afterStep(StepExecution stepExecution) { list.add("bar"); return null; } @@ -396,7 +396,7 @@ public class ItemOrientedStepTests extends TestCase { final ExitStatus customStatus = new ExitStatus(false, "custom code"); itemOrientedStep.setStepListeners(new StepListener[] {new StepListenerSupport() { - public ExitStatus afterStep() { + public ExitStatus afterStep(StepExecution stepExecution) { list.add("afterStepCalled"); return customStatus; } @@ -699,7 +699,7 @@ public class ItemOrientedStepTests extends TestCase { public void reset() throws ResetFailedException { } - public ExitStatus afterStep() { + public ExitStatus afterStep(StepExecution stepExecution) { return null; } diff --git a/spring-batch-execution/src/test/java/org/springframework/batch/execution/step/TaskletStepTests.java b/spring-batch-execution/src/test/java/org/springframework/batch/execution/step/TaskletStepTests.java index 60f56f546..141943414 100644 --- a/spring-batch-execution/src/test/java/org/springframework/batch/execution/step/TaskletStepTests.java +++ b/spring-batch-execution/src/test/java/org/springframework/batch/execution/step/TaskletStepTests.java @@ -112,7 +112,7 @@ public class TaskletStepTests extends TestCase { list.add("open"); } - public ExitStatus afterStep() { + public ExitStatus afterStep(StepExecution stepExecution) { list.add("close"); return ExitStatus.CONTINUABLE; } diff --git a/spring-batch-samples/src/main/java/org/springframework/batch/sample/item/reader/StagingItemReader.java b/spring-batch-samples/src/main/java/org/springframework/batch/sample/item/reader/StagingItemReader.java index 8a257ce76..d529a7c6c 100644 --- a/spring-batch-samples/src/main/java/org/springframework/batch/sample/item/reader/StagingItemReader.java +++ b/spring-batch-samples/src/main/java/org/springframework/batch/sample/item/reader/StagingItemReader.java @@ -223,9 +223,9 @@ public class StagingItemReader extends JdbcDaoSupport implements ItemStream, Ite } /* (non-Javadoc) - * @see org.springframework.batch.core.domain.StepListener#afterStep() + * @see org.springframework.batch.core.domain.StepListener#afterStep(StepExecution) */ - public ExitStatus afterStep() { + public ExitStatus afterStep(StepExecution stepExecution) { return null; } diff --git a/spring-batch-samples/src/main/java/org/springframework/batch/sample/item/writer/StagingItemWriter.java b/spring-batch-samples/src/main/java/org/springframework/batch/sample/item/writer/StagingItemWriter.java index 661fc0672..485afee1c 100644 --- a/spring-batch-samples/src/main/java/org/springframework/batch/sample/item/writer/StagingItemWriter.java +++ b/spring-batch-samples/src/main/java/org/springframework/batch/sample/item/writer/StagingItemWriter.java @@ -94,9 +94,9 @@ public class StagingItemWriter extends JdbcDaoSupport implements StepListener, I } /* (non-Javadoc) - * @see org.springframework.batch.core.domain.StepListener#afterStep() + * @see org.springframework.batch.core.domain.StepListener#afterStep(StepExecution) */ - public ExitStatus afterStep() { + public ExitStatus afterStep(StepExecution stepExecution) { return null; }