[SPR-6017] a few more tweaks to how getLocalName is handled

This commit is contained in:
Rob Harrop
2009-09-14 10:43:04 +00:00
parent ee0a59d464
commit 7835e66abb
5 changed files with 20 additions and 12 deletions

View File

@@ -35,6 +35,8 @@ import org.w3c.dom.NodeList;
*/
public class ScheduledTasksBeanDefinitionParser extends AbstractSingleBeanDefinitionParser {
private static final String ELEMENT_SCHEDULED = "scheduled";
@Override
protected boolean shouldGenerateId() {
return true;
@@ -53,7 +55,7 @@ public class ScheduledTasksBeanDefinitionParser extends AbstractSingleBeanDefini
NodeList childNodes = element.getChildNodes();
for (int i = 0; i < childNodes.getLength(); i++) {
Node child = childNodes.item(i);
if (!(child instanceof Element) || !child.getLocalName().equals("scheduled")) {
if (!isScheduledElement(child, parserContext)) {
continue;
}
Element taskElement = (Element) child;
@@ -99,6 +101,11 @@ public class ScheduledTasksBeanDefinitionParser extends AbstractSingleBeanDefini
builder.addPropertyValue("fixedRateTasks", fixedRateTaskMap);
}
private boolean isScheduledElement(Node node, ParserContext parserContext) {
return node.getNodeType() == Node.ELEMENT_NODE &&
ELEMENT_SCHEDULED.equals(parserContext.getDelegate().getLocalName(node));
}
private String createRunnableBean(String ref, String method, Element taskElement, ParserContext parserContext) {
BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition(
"org.springframework.scheduling.support.MethodInvokingRunnable");