OPEN - issue BATCH-673: Add new Java 5.0 features

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

Added StepListenerFactoryBean to StepParser, along with updating the XSD to support listener methods.
This commit is contained in:
lucasward
2008-11-24 06:43:39 +00:00
parent ae730065c7
commit 370b277e0f
7 changed files with 164 additions and 35 deletions

View File

@@ -3,6 +3,7 @@ package org.springframework.batch.core.configuration.xml;
import org.springframework.batch.core.ExitStatus;
import org.springframework.batch.core.StepExecution;
import org.springframework.batch.core.StepExecutionListener;
import org.springframework.batch.core.annotation.AfterRead;
public class TestListener extends AbstractTestComponent implements StepExecutionListener {
@@ -13,5 +14,14 @@ public class TestListener extends AbstractTestComponent implements StepExecution
public void beforeStep(StepExecution stepExecution) {
executed = true;
}
public void destroy(){
}
@AfterRead
public void logItem(){
}
}

View File

@@ -73,9 +73,9 @@ public class StepListenerFactoryBeanTests {
public void testStepAndChunk() throws Exception{
factoryBean.setDelegate(testClass);
Map<StepListenerMetaData, String> metaDataMap = new HashMap<StepListenerMetaData, String>();;
metaDataMap.put(AFTER_STEP, "destroy");
metaDataMap.put(AFTER_CHUNK, "afterChunk");
Map<String, String> metaDataMap = new HashMap<String, String>();;
metaDataMap.put(AFTER_STEP.getPropertyName(), "destroy");
metaDataMap.put(AFTER_CHUNK.getPropertyName(), "afterChunk");
factoryBean.setMetaDataMap(metaDataMap);
Object item = new Object();
List<Object> items = new ArrayList<Object>();
@@ -120,8 +120,8 @@ public class StepListenerFactoryBeanTests {
//method name, that all three will be called
ThreeStepExecutionListener delegate = new ThreeStepExecutionListener();
factoryBean.setDelegate(delegate);
Map<StepListenerMetaData, String> metaDataMap = new HashMap<StepListenerMetaData, String>();;
metaDataMap.put(AFTER_STEP, "destroy");
Map<String, String> metaDataMap = new HashMap<String, String>();;
metaDataMap.put(AFTER_STEP.getPropertyName(), "destroy");
factoryBean.setMetaDataMap(metaDataMap);
StepListener listener = (StepListener) factoryBean.getObject();
((StepExecutionListener)listener).afterStep(stepExecution);
@@ -132,8 +132,8 @@ public class StepListenerFactoryBeanTests {
public void testAnnotatingInterfaceResultsInOneCall() throws Exception{
MultipleAfterStep delegate = new MultipleAfterStep();
factoryBean.setDelegate(delegate);
Map<StepListenerMetaData, String> metaDataMap = new HashMap<StepListenerMetaData, String>();;
metaDataMap.put(AFTER_STEP, "afterStep");
Map<String, String> metaDataMap = new HashMap<String, String>();;
metaDataMap.put(AFTER_STEP.getPropertyName(), "afterStep");
factoryBean.setMetaDataMap(metaDataMap);
StepListener listener = (StepListener) factoryBean.getObject();
((StepExecutionListener)listener).afterStep(stepExecution);