new ListenerParser(JsrJobListenerFactoryBean.class, "jobExecutionListeners").parseListeners(element, parserContext, builder);
private ManagedList<AbstractBeanDefinition> parseListeners(Element element, ParserContext parserContext, String stepName) { List<Element> listenersElements = DomUtils.getChildElementsByTagName(element, LISTENERS_ELEMENT); ManagedList<AbstractBeanDefinition> listeners = new ManagedList<>(); if (listenersElements.size() == 1) { Element listenersElement = listenersElements.get(0); CompositeComponentDefinition compositeDef = new CompositeComponentDefinition(listenersElement.getTagName(), parserContext.extractSource(element)); parserContext.pushContainingComponent(compositeDef); listeners.setMergeEnabled(false); List<Element> listenerElements = DomUtils.getChildElementsByTagName(listenersElement, LISTENER_ELEMENT); for (Element listenerElement : listenerElements) { String beanName = listenerElement.getAttribute(REF_ATTRIBUTE); BeanDefinitionBuilder bd = BeanDefinitionBuilder.genericBeanDefinition(listenerType); bd.addPropertyValue("delegate", new RuntimeBeanReference(beanName)); applyListenerScope(beanName, parserContext.getRegistry()); listeners.add(bd.getBeanDefinition()); new PropertyParser(beanName, parserContext, getBatchArtifactType(stepName), stepName).parseProperties(listenerElement); } parserContext.popAndRegisterContainingComponent(); } else if (listenersElements.size() > 1) { parserContext.getReaderContext().error( "The '<listeners/>' element may not appear more than once in a single " + element.getLocalName(), element); } return listeners; }
protected void applyListenerScope(String beanName, BeanDefinitionRegistry beanDefinitionRegistry) { BeanDefinition beanDefinition = getListenerBeanDefinition(beanName, beanDefinitionRegistry); beanDefinition.setScope(getListenerScope()); beanDefinition.setLazyInit(isLazyInit()); if (!beanDefinitionRegistry.containsBeanDefinition(beanName)) { beanDefinitionRegistry.registerBeanDefinition(beanName, beanDefinition); } }
@Test public void testStepListenerStepScoped() { @SuppressWarnings("resource") GenericApplicationContext applicationContext = new GenericApplicationContext(); AbstractBeanDefinition newBeanDefinition = BeanDefinitionBuilder.genericBeanDefinition("stepListener").getBeanDefinition(); newBeanDefinition.setScope("step"); applicationContext.registerBeanDefinition("stepListener", newBeanDefinition); ListenerParser listenerParser = new ListenerParser(StepListenerFactoryBean.class, "listeners"); listenerParser.applyListenerScope("stepListener", applicationContext); BeanDefinition beanDefinition = applicationContext.getBeanDefinition("stepListener"); assertEquals("step", beanDefinition.getScope()); }
public void parseListeners(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) { ManagedList<AbstractBeanDefinition> listeners = parseListeners(element, parserContext, ""); if(listeners.size() > 0) { builder.addPropertyValue(propertyKey, listeners); } }
@Test public void testJobListenerSingletonScoped() { @SuppressWarnings("resource") GenericApplicationContext applicationContext = new GenericApplicationContext(); AbstractBeanDefinition newBeanDefinition = BeanDefinitionBuilder.genericBeanDefinition("jobListener").getBeanDefinition(); newBeanDefinition.setScope("step"); applicationContext.registerBeanDefinition("jobListener", newBeanDefinition); ListenerParser listenerParser = new ListenerParser(JsrJobListenerFactoryBean.class, "jobExecutionListeners"); listenerParser.applyListenerScope("jobListener", applicationContext); BeanDefinition beanDefinition = applicationContext.getBeanDefinition("jobListener"); assertEquals("job", beanDefinition.getScope()); } }
public void parseListeners(Element element, ParserContext parserContext, AbstractBeanDefinition bd, String stepName) { ManagedList<AbstractBeanDefinition> listeners = parseListeners(element, parserContext, stepName); if(listeners.size() > 0) { bd.getPropertyValues().add(propertyKey, listeners); } }
new ListenerParser(JsrStepListenerFactoryBean.class, "listeners").parseListeners(element, parserContext, bd, stepName); new PropertyParser(stepName, parserContext, BatchArtifactType.STEP, stepName).parseProperties(element);
protected void applyListenerScope(String beanName, BeanDefinitionRegistry beanDefinitionRegistry) { BeanDefinition beanDefinition = getListenerBeanDefinition(beanName, beanDefinitionRegistry); beanDefinition.setScope(getListenerScope()); beanDefinition.setLazyInit(isLazyInit()); if (!beanDefinitionRegistry.containsBeanDefinition(beanName)) { beanDefinitionRegistry.registerBeanDefinition(beanName, beanDefinition); } }
private ManagedList<AbstractBeanDefinition> parseListeners(Element element, ParserContext parserContext, String stepName) { List<Element> listenersElements = DomUtils.getChildElementsByTagName(element, LISTENERS_ELEMENT); ManagedList<AbstractBeanDefinition> listeners = new ManagedList<AbstractBeanDefinition>(); if (listenersElements.size() == 1) { Element listenersElement = listenersElements.get(0); CompositeComponentDefinition compositeDef = new CompositeComponentDefinition(listenersElement.getTagName(), parserContext.extractSource(element)); parserContext.pushContainingComponent(compositeDef); listeners.setMergeEnabled(false); List<Element> listenerElements = DomUtils.getChildElementsByTagName(listenersElement, LISTENER_ELEMENT); for (Element listenerElement : listenerElements) { String beanName = listenerElement.getAttribute(REF_ATTRIBUTE); BeanDefinitionBuilder bd = BeanDefinitionBuilder.genericBeanDefinition(listenerType); bd.addPropertyValue("delegate", new RuntimeBeanReference(beanName)); applyListenerScope(beanName, parserContext.getRegistry()); listeners.add(bd.getBeanDefinition()); new PropertyParser(beanName, parserContext, getBatchArtifactType(stepName), stepName).parseProperties(listenerElement); } parserContext.popAndRegisterContainingComponent(); } else if (listenersElements.size() > 1) { parserContext.getReaderContext().error( "The '<listeners/>' element may not appear more than once in a single " + element.getLocalName(), element); } return listeners; }
public void parseListeners(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) { ManagedList<AbstractBeanDefinition> listeners = parseListeners(element, parserContext, ""); if(listeners.size() > 0) { builder.addPropertyValue(propertyKey, listeners); } }
new ListenerParser(JsrJobListenerFactoryBean.class, "jobExecutionListeners").parseListeners(element, parserContext, builder);
protected void applyListenerScope(String beanName, BeanDefinitionRegistry beanDefinitionRegistry) { BeanDefinition beanDefinition = getListenerBeanDefinition(beanName, beanDefinitionRegistry); beanDefinition.setScope(getListenerScope()); beanDefinition.setLazyInit(isLazyInit()); if (!beanDefinitionRegistry.containsBeanDefinition(beanName)) { beanDefinitionRegistry.registerBeanDefinition(beanName, beanDefinition); } }
private ManagedList<AbstractBeanDefinition> parseListeners(Element element, ParserContext parserContext, String stepName) { List<Element> listenersElements = DomUtils.getChildElementsByTagName(element, LISTENERS_ELEMENT); ManagedList<AbstractBeanDefinition> listeners = new ManagedList<AbstractBeanDefinition>(); if (listenersElements.size() == 1) { Element listenersElement = listenersElements.get(0); CompositeComponentDefinition compositeDef = new CompositeComponentDefinition(listenersElement.getTagName(), parserContext.extractSource(element)); parserContext.pushContainingComponent(compositeDef); listeners.setMergeEnabled(false); List<Element> listenerElements = DomUtils.getChildElementsByTagName(listenersElement, LISTENER_ELEMENT); for (Element listenerElement : listenerElements) { String beanName = listenerElement.getAttribute(REF_ATTRIBUTE); BeanDefinitionBuilder bd = BeanDefinitionBuilder.genericBeanDefinition(listenerType); bd.addPropertyValue("delegate", new RuntimeBeanReference(beanName)); applyListenerScope(beanName, parserContext.getRegistry()); listeners.add(bd.getBeanDefinition()); new PropertyParser(beanName, parserContext, getBatchArtifactType(stepName), stepName).parseProperties(listenerElement); } parserContext.popAndRegisterContainingComponent(); } else if (listenersElements.size() > 1) { parserContext.getReaderContext().error( "The '<listeners/>' element may not appear more than once in a single " + element.getLocalName(), element); } return listeners; }
public void parseListeners(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) { ManagedList<AbstractBeanDefinition> listeners = parseListeners(element, parserContext, ""); if(listeners.size() > 0) { builder.addPropertyValue(propertyKey, listeners); } }
new ListenerParser(JsrJobListenerFactoryBean.class, "jobExecutionListeners").parseListeners(element, parserContext, builder);
protected void applyListenerScope(String beanName, BeanDefinitionRegistry beanDefinitionRegistry) { BeanDefinition beanDefinition = getListenerBeanDefinition(beanName, beanDefinitionRegistry); beanDefinition.setScope(getListenerScope()); beanDefinition.setLazyInit(isLazyInit()); if (!beanDefinitionRegistry.containsBeanDefinition(beanName)) { beanDefinitionRegistry.registerBeanDefinition(beanName, beanDefinition); } }
private ManagedList<AbstractBeanDefinition> parseListeners(Element element, ParserContext parserContext, String stepName) { List<Element> listenersElements = DomUtils.getChildElementsByTagName(element, LISTENERS_ELEMENT); ManagedList<AbstractBeanDefinition> listeners = new ManagedList<AbstractBeanDefinition>(); if (listenersElements.size() == 1) { Element listenersElement = listenersElements.get(0); CompositeComponentDefinition compositeDef = new CompositeComponentDefinition(listenersElement.getTagName(), parserContext.extractSource(element)); parserContext.pushContainingComponent(compositeDef); listeners.setMergeEnabled(false); List<Element> listenerElements = DomUtils.getChildElementsByTagName(listenersElement, LISTENER_ELEMENT); for (Element listenerElement : listenerElements) { String beanName = listenerElement.getAttribute(REF_ATTRIBUTE); BeanDefinitionBuilder bd = BeanDefinitionBuilder.genericBeanDefinition(listenerType); bd.addPropertyValue("delegate", new RuntimeBeanReference(beanName)); applyListenerScope(beanName, parserContext.getRegistry()); listeners.add(bd.getBeanDefinition()); new PropertyParser(beanName, parserContext, getBatchArtifactType(stepName), stepName).parseProperties(listenerElement); } parserContext.popAndRegisterContainingComponent(); } else if (listenersElements.size() > 1) { parserContext.getReaderContext().error( "The '<listeners/>' element may not appear more than once in a single " + element.getLocalName(), element); } return listeners; }
public void parseListeners(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) { ManagedList<AbstractBeanDefinition> listeners = parseListeners(element, parserContext, ""); if(listeners.size() > 0) { builder.addPropertyValue(propertyKey, listeners); } }
new ListenerParser(JsrJobListenerFactoryBean.class, "jobExecutionListeners").parseListeners(element, parserContext, builder);