diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/AbstractStepParser.java b/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/AbstractStepParser.java index fce7c2b5e..7e7f747f1 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/AbstractStepParser.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/AbstractStepParser.java @@ -94,15 +94,18 @@ public abstract class AbstractStepParser { + stepElement.getNodeName() + "/>.", stepElement); } - if (bd != null) { - setUpBeanDefinition(stepElement, bd, parserContext, jobRepositoryRef); - } - else if (!stepUnderspecified) { - parserContext.getReaderContext().error( - "Step [" + stepElement.getAttribute(ID_ATTR) + "] has neither a <" + TASKLET_ELE - + "/> element nor a '" + TASKLET_ATTR + "' attribute.", stepElement); + if (bd == null) { + if (stepUnderspecified) { + bd = new GenericBeanDefinition(); + } + else { + parserContext.getReaderContext().error( + "Step [" + stepElement.getAttribute(ID_ATTR) + "] has neither a <" + TASKLET_ELE + + "/> element nor a '" + TASKLET_ATTR + "' attribute.", stepElement); + } } + setUpBeanDefinition(stepElement, bd, parserContext, jobRepositoryRef); return bd; } diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/InlineStepParser.java b/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/InlineStepParser.java index 821e97543..95a47ab6b 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/InlineStepParser.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/InlineStepParser.java @@ -85,10 +85,8 @@ public class InlineStepParser extends AbstractStepParser { } else { AbstractBeanDefinition bd = parseTasklet(element, parserContext, jobRepositoryRef); - if (bd != null) { - parserContext.registerBeanComponent(new BeanComponentDefinition(bd, stepId)); - stateBuilder.addConstructorArgReference(stepId); - } + parserContext.registerBeanComponent(new BeanComponentDefinition(bd, stepId)); + stateBuilder.addConstructorArgReference(stepId); } return FlowParser.getNextElements(parserContext, stepId, stateBuilder.getBeanDefinition(), element); diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/StandaloneStepParser.java b/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/StandaloneStepParser.java index 84bb8d097..df0efc427 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/StandaloneStepParser.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/StandaloneStepParser.java @@ -16,7 +16,6 @@ package org.springframework.batch.core.configuration.xml; import org.springframework.beans.factory.support.AbstractBeanDefinition; -import org.springframework.beans.factory.support.GenericBeanDefinition; import org.springframework.beans.factory.xml.ParserContext; import org.w3c.dom.Element; @@ -39,12 +38,6 @@ public class StandaloneStepParser extends AbstractStepParser { */ public AbstractBeanDefinition parse(Element element, ParserContext parserContext) { String jobRepositoryRef = element.getAttribute("job-repository"); - AbstractBeanDefinition bd = parseTasklet(element, parserContext, jobRepositoryRef); - if (bd == null) { - bd = new GenericBeanDefinition(); - setUpBeanDefinition(element, bd, parserContext, element.getAttribute("job-repository")); - } - - return bd; + return parseTasklet(element, parserContext, jobRepositoryRef); } } diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/TopLevelJobListenerParser.java b/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/TopLevelJobListenerParser.java index 784cb550d..415cb043b 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/TopLevelJobListenerParser.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/TopLevelJobListenerParser.java @@ -14,7 +14,7 @@ import org.w3c.dom.Element; */ public class TopLevelJobListenerParser extends AbstractSingleBeanDefinitionParser { - private JobExecutionListenerParser jobListenerParser = new JobExecutionListenerParser(); + private static final JobExecutionListenerParser jobListenerParser = new JobExecutionListenerParser(); @Override protected void doParse(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) { diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/TopLevelStepListenerParser.java b/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/TopLevelStepListenerParser.java index 0e420a389..f713e71d8 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/TopLevelStepListenerParser.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/TopLevelStepListenerParser.java @@ -14,7 +14,7 @@ import org.w3c.dom.Element; */ public class TopLevelStepListenerParser extends AbstractSingleBeanDefinitionParser { - private StepListenerParser stepListenerParser = new StepListenerParser(); + private static final StepListenerParser stepListenerParser = new StepListenerParser(); @Override protected void doParse(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) { diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/TopLevelStepParser.java b/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/TopLevelStepParser.java index 7f59a67fa..e2e25f607 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/TopLevelStepParser.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/TopLevelStepParser.java @@ -29,11 +29,12 @@ import org.w3c.dom.Element; */ public class TopLevelStepParser extends AbstractBeanDefinitionParser { + private static final StandaloneStepParser stepParser = new StandaloneStepParser(); + @Override protected AbstractBeanDefinition parseInternal(Element element, ParserContext parserContext) { CoreNamespaceUtils.checkForStepScope(parserContext, parserContext.extractSource(element)); - StandaloneStepParser stepParser = new StandaloneStepParser(); return stepParser.parse(element, parserContext); } diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/configuration/xml/StopRestartOnCompletedStepJobParserTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/configuration/xml/StopRestartOnCompletedStepJobParserTests.java index bd6874ff6..a8b6a6ded 100644 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/configuration/xml/StopRestartOnCompletedStepJobParserTests.java +++ b/spring-batch-core/src/test/java/org/springframework/batch/core/configuration/xml/StopRestartOnCompletedStepJobParserTests.java @@ -43,7 +43,7 @@ public class StopRestartOnCompletedStepJobParserTests extends AbstractJobParserT // // First Launch // - launchAndAssert("[s0, s1]"); + launchAndAssert("[s1]"); // // Second Launch diff --git a/spring-batch-core/src/test/resources/org/springframework/batch/core/configuration/xml/StopRestartOnCompletedStepJobParserTests-context.xml b/spring-batch-core/src/test/resources/org/springframework/batch/core/configuration/xml/StopRestartOnCompletedStepJobParserTests-context.xml index 0b13bf574..86c7381b5 100644 --- a/spring-batch-core/src/test/resources/org/springframework/batch/core/configuration/xml/StopRestartOnCompletedStepJobParserTests-context.xml +++ b/spring-batch-core/src/test/resources/org/springframework/batch/core/configuration/xml/StopRestartOnCompletedStepJobParserTests-context.xml @@ -7,7 +7,6 @@ - @@ -17,6 +16,5 @@ - \ No newline at end of file diff --git a/spring-batch-core/src/test/resources/org/springframework/batch/core/configuration/xml/StopRestartOnFailedStepJobParserTests-context.xml b/spring-batch-core/src/test/resources/org/springframework/batch/core/configuration/xml/StopRestartOnFailedStepJobParserTests-context.xml index faf519718..54b3c6a81 100644 --- a/spring-batch-core/src/test/resources/org/springframework/batch/core/configuration/xml/StopRestartOnFailedStepJobParserTests-context.xml +++ b/spring-batch-core/src/test/resources/org/springframework/batch/core/configuration/xml/StopRestartOnFailedStepJobParserTests-context.xml @@ -8,14 +8,13 @@ - + + + - - - \ No newline at end of file