IN PROGRESS - issue BATCH-419: JobListener and StepListener should pass in JobExecution/StepExecution in each method

http://jira.springframework.org/browse/BATCH-419

added StepExecution argument to StepListener#afterStep
This commit is contained in:
robokaso
2008-03-06 14:25:09 +00:00
parent 97de346c69
commit e20a250e14
12 changed files with 24 additions and 24 deletions

View File

@@ -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);
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;

View File

@@ -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);

View File

@@ -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);

View File

@@ -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);
}
/**

View File

@@ -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());
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}