diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/listener/StepListenerFactoryBeanTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/listener/StepListenerFactoryBeanTests.java index 83e7eb9b9..31de6f3a1 100644 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/listener/StepListenerFactoryBeanTests.java +++ b/spring-batch-core/src/test/java/org/springframework/batch/core/listener/StepListenerFactoryBeanTests.java @@ -22,7 +22,6 @@ import static org.springframework.batch.core.listener.StepListenerMetaData.AFTER import static org.springframework.batch.core.listener.StepListenerMetaData.AFTER_STEP; import static org.springframework.batch.core.listener.StepListenerMetaData.AFTER_WRITE; -import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.List; @@ -66,8 +65,6 @@ public class StepListenerFactoryBeanTests { private StepListenerFactoryBean factoryBean; - private TestListener testListener; - private JobExecution jobExecution = new JobExecution(11L); private StepExecution stepExecution = new StepExecution("testStep", jobExecution); @@ -75,39 +72,39 @@ public class StepListenerFactoryBeanTests { @Before public void setUp() { factoryBean = new StepListenerFactoryBean(); - testListener = new TestListener(); } @Test @SuppressWarnings("unchecked") public void testStepAndChunk() throws Exception { + TestListener testListener = new TestListener(); factoryBean.setDelegate(testListener); Map metaDataMap = new HashMap(); ; metaDataMap.put(AFTER_STEP.getPropertyName(), "destroy"); metaDataMap.put(AFTER_CHUNK.getPropertyName(), "afterChunk"); factoryBean.setMetaDataMap(metaDataMap); - Object item = new Object(); - List items = new ArrayList(); - items.add(item); + String readItem = "item"; + Integer writeItem = 2; + List writeItems = Arrays.asList(writeItem); StepListener listener = (StepListener) factoryBean.getObject(); ((StepExecutionListener) listener).beforeStep(stepExecution); ((StepExecutionListener) listener).afterStep(stepExecution); ((ChunkListener) listener).beforeChunk(); ((ChunkListener) listener).afterChunk(); - ((ItemReadListener) listener).beforeRead(); - ((ItemReadListener) listener).afterRead(item); + ((ItemReadListener) listener).beforeRead(); + ((ItemReadListener) listener).afterRead(readItem); ((ItemReadListener) listener).onReadError(new Exception()); - ((ItemProcessListener) listener).beforeProcess(item); - ((ItemProcessListener) listener).afterProcess(item, item); - ((ItemProcessListener) listener).onProcessError(item, new Exception()); - ((ItemWriteListener) listener).beforeWrite(items); - ((ItemWriteListener) listener).afterWrite(items); - ((ItemWriteListener) listener).onWriteError(new Exception(), items); - ((SkipListener) listener).onSkipInRead(new Throwable()); - ((SkipListener) listener).onSkipInProcess(item, new Throwable()); - ((SkipListener) listener).onSkipInWrite(item, new Throwable()); + ((ItemProcessListener) listener).beforeProcess(readItem); + ((ItemProcessListener) listener).afterProcess(readItem, writeItem); + ((ItemProcessListener) listener).onProcessError(readItem, new Exception()); + ((ItemWriteListener) listener).beforeWrite(writeItems); + ((ItemWriteListener) listener).afterWrite(writeItems); + ((ItemWriteListener) listener).onWriteError(new Exception(), writeItems); + ((SkipListener) listener).onSkipInRead(new Throwable()); + ((SkipListener) listener).onSkipInProcess(readItem, new Throwable()); + ((SkipListener) listener).onSkipInWrite(writeItem, new Throwable()); assertTrue(testListener.beforeStepCalled); assertTrue(testListener.beforeChunkCalled); assertTrue(testListener.afterChunkCalled); @@ -402,7 +399,7 @@ public class StepListenerFactoryBeanTests { } - private class TestListener implements SkipListener { + private class TestListener implements SkipListener { boolean beforeStepCalled = false; @@ -476,7 +473,7 @@ public class StepListenerFactoryBeanTests { } @AfterProcess - public void afterProcess() { + public void afterProcess(String item, Integer result) { afterProcessCalled = true; } @@ -500,7 +497,7 @@ public class StepListenerFactoryBeanTests { onWriteErrorCalled = true; } - public void onSkipInProcess(Object item, Throwable t) { + public void onSkipInProcess(String item, Throwable t) { onSkipInProcessCalled = true; } @@ -508,7 +505,7 @@ public class StepListenerFactoryBeanTests { onSkipInReadCalled = true; } - public void onSkipInWrite(Object item, Throwable t) { + public void onSkipInWrite(Integer item, Throwable t) { onSkipInWriteCalled = true; } diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/support/MethodInvokerUtils.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/support/MethodInvokerUtils.java index 53e18be7b..80997999e 100644 --- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/support/MethodInvokerUtils.java +++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/support/MethodInvokerUtils.java @@ -129,7 +129,7 @@ public class MethodInvokerUtils { Assert.isTrue(paramTypes.length == expectedParamTypes.length, errorMsg); for (int i = 0; i < paramTypes.length; i++) { - Assert.isTrue(paramTypes[i].equals(expectedParamTypes[i]), errorMsg); + Assert.isTrue(expectedParamTypes[i].isAssignableFrom(paramTypes[i]), errorMsg); } } }