diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/listener/StepListenerMetaData.java b/spring-batch-core/src/main/java/org/springframework/batch/core/listener/StepListenerMetaData.java index 05c9e7575..4806b01b8 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/listener/StepListenerMetaData.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/listener/StepListenerMetaData.java @@ -17,6 +17,7 @@ package org.springframework.batch.core.listener; import java.lang.annotation.Annotation; import java.util.HashMap; +import java.util.List; import java.util.Map; import org.springframework.batch.core.ChunkListener; @@ -62,11 +63,11 @@ public enum StepListenerMetaData { AFTER_READ("afterRead", "after-read-method", AfterRead.class, ItemReadListener.class, Object.class), ON_READ_ERROR("onReadError", "on-read-error-method", OnReadError.class, ItemReadListener.class, Exception.class), BEFORE_PROCESS("beforeProcess", "before-process-method", BeforeProcess.class, ItemProcessListener.class, Object.class), - AFTER_PROCESS("afterProcess", "after-process-method", AfterProcess.class, ItemProcessListener.class, Object.class), + AFTER_PROCESS("afterProcess", "after-process-method", AfterProcess.class, ItemProcessListener.class, Object.class, Object.class), ON_PROCESS_ERROR("onProcessError", "on-process-error-method", OnProcessError.class, ItemProcessListener.class, Object.class, Exception.class), - BEFORE_WRITE("beforeWrite", "before-write-method", BeforeWrite.class, ItemWriteListener.class, Object.class), - AFTER_WRITE("afterWrite", "after-write-method", AfterWrite.class, ItemWriteListener.class, Object.class), - ON_WRITE_ERROR("onWriteError", "on-write-error-method", OnWriteError.class, ItemWriteListener.class, Object.class, Exception.class), + BEFORE_WRITE("beforeWrite", "before-write-method", BeforeWrite.class, ItemWriteListener.class, List.class), + AFTER_WRITE("afterWrite", "after-write-method", AfterWrite.class, ItemWriteListener.class, List.class), + ON_WRITE_ERROR("onWriteError", "on-write-error-method", OnWriteError.class, ItemWriteListener.class, Exception.class, List.class), ON_SKIP_IN_READ("onSkipInRead", "on-skip-in-read-method", OnSkipInRead.class, SkipListener.class, Throwable.class), ON_SKIP_IN_PROCESS("onSkipInProcess", "on-skip-in-process-method", OnSkipInProcess.class, SkipListener.class, Object.class, Throwable.class), ON_SKIP_IN_WRITE("onSkipInWrite", "on-skip-in-write-method", OnSkipInWrite.class, SkipListener.class, Object.class, Throwable.class); diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/step/item/SimpleStepFactoryBeanTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/step/item/SimpleStepFactoryBeanTests.java index d48829df2..af38e4360 100644 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/step/item/SimpleStepFactoryBeanTests.java +++ b/spring-batch-core/src/test/java/org/springframework/batch/core/step/item/SimpleStepFactoryBeanTests.java @@ -299,7 +299,7 @@ public class SimpleStepFactoryBeanTests { SimpleStepFactoryBean factory = getStepFactory(new String[] { "foo", "bar", "spam" }); - final List listenerCalls = new ArrayList(); + final List listenerCalls = new ArrayList(); class TestItemListenerWriter implements ItemWriter, ItemReadListener, ItemWriteListener, ItemProcessListener, ChunkListener { @@ -307,7 +307,7 @@ public class SimpleStepFactoryBeanTests { } public void afterRead(String item) { - listenerCalls.add(1); + listenerCalls.add("read"); } public void beforeRead() { @@ -317,7 +317,7 @@ public class SimpleStepFactoryBeanTests { } public void afterWrite(List items) { - listenerCalls.add(2); + listenerCalls.add("write"); } public void beforeWrite(List items) { @@ -327,7 +327,7 @@ public class SimpleStepFactoryBeanTests { } public void afterProcess(String item, String result) { - listenerCalls.add(3); + listenerCalls.add("process"); } public void beforeProcess(String item) { @@ -337,7 +337,7 @@ public class SimpleStepFactoryBeanTests { } public void afterChunk() { - listenerCalls.add(4); + listenerCalls.add("chunk"); } public void beforeChunk() { @@ -356,8 +356,8 @@ public class SimpleStepFactoryBeanTests { job.execute(jobExecution); assertEquals(BatchStatus.COMPLETED, jobExecution.getStatus()); - for (int i = 1; i <= 4; i++) { - assertTrue(listenerCalls.contains(i)); + for (String type : new String[] { "read", "write", "process", "chunk" }) { + assertTrue("Missing listener call: " + type + " from " + listenerCalls, listenerCalls.contains(type)); } }