Example usage for org.springframework.util.xml DomUtils getChildElementsByTagName

List of usage examples for org.springframework.util.xml DomUtils getChildElementsByTagName

Introduction

In this page you can find the example usage for org.springframework.util.xml DomUtils getChildElementsByTagName.

Prototype

public static List<Element> getChildElementsByTagName(Element ele, String childEleName) 

Source Link

Document

Retrieves all child elements of the given DOM element that match the given element name.

Usage

From source file:org.smf4j.spring.FileEnablerBeanDefinitionParser.java

@Override
protected void doParse(Element element, ParserContext context, BeanDefinitionBuilder builder) {
    List<String> paths = new ArrayList<String>();

    String path = element.getAttribute(PATH_ATTR);
    if (StringUtils.hasLength(path)) {
        paths.add(path);//  w  w  w . j  av a  2s.co m
    }

    List<Element> pathElements = DomUtils.getChildElementsByTagName(element, PATH_TAG);
    for (Element pathElement : pathElements) {
        path = pathElement.getAttribute(VALUE_ATTR);
        if (StringUtils.hasLength(path)) {
            paths.add(path);
        }
    }

    builder.addPropertyValue(PATHS_ATTR, paths);
    builder.setLazyInit(false);
}

From source file:com.consol.citrus.selenium.xml.ExtractActionParser.java

/**
 * @param element/*from   www  .j a  v  a  2 s. c  o m*/
 * @param parserContext
 * @return
 */
@Override
public BeanDefinition parse(Element element, ParserContext parserContext) {
    actionClass = ExtractAction.class;
    BeanDefinitionBuilder builder = BeanDefinitionBuilder.rootBeanDefinition(actionClass);
    this.doParse(element, builder);

    String pageName = element.getAttribute("pageName");
    BeanDefinitionParserUtils.setPropertyValue(builder, pageName, "pageName");

    Map<By, ExtractDefinition.Element> elements = new LinkedHashMap<>();
    List<Element> webElements = DomUtils.getChildElementsByTagName(element, "element");
    for (Element webElement : webElements) {
        By by = getByFromElement(webElement);
        ExtractDefinition.Element el = new ExtractDefinition.Element();
        el.setVariable(webElement.getAttribute("variable"));
        el.setAttribute(webElement.getAttribute("attribute"));
        elements.put(by, el);
    }
    builder.addPropertyValue("elements", elements);

    Map<String, String> pageActions = new LinkedHashMap<>();
    List<Element> pageElements = DomUtils.getChildElementsByTagName(element, "page");
    for (Element pageElement : pageElements) {
        String pageAction = pageElement.getAttribute("get");
        String value = pageElement.getAttribute("variable");
        pageActions.put(pageAction, value);
    }
    builder.addPropertyValue("pageActions", pageActions);

    return builder.getBeanDefinition();
}

From source file:com.consol.citrus.selenium.xml.ValidateActionParser.java

/**
 * @param element//from  w w  w. j  a v a 2s  .  com
 * @param parserContext
 * @return
 */
@Override
public BeanDefinition parse(Element element, ParserContext parserContext) {
    BeanDefinitionBuilder builder = BeanDefinitionBuilder.rootBeanDefinition(ValidateAction.class);
    this.doParse(element, builder);

    String pageName = element.getAttribute("pageName");
    BeanDefinitionParserUtils.setPropertyValue(builder, pageName, "pageName");

    Map<By, String> validations = new LinkedHashMap<>();
    List<Element> validationElements = DomUtils.getChildElementsByTagName(element, "element");
    for (Element validateElement : validationElements) {
        String value = validateElement.getAttribute("value");
        By by = getBy(validateElement.getAttribute("by"), validateElement.getAttribute("select"));
        validations.put(by, value);
    }
    builder.addPropertyValue("validations", validations);

    Map<String, String> pageValidations = new LinkedHashMap<>();
    List<Element> pageValidationElements = DomUtils.getChildElementsByTagName(element, "page");
    for (Element validateElement : pageValidationElements) {
        String pageAction = validateElement.getAttribute("get");
        String value = validateElement.getAttribute("value");
        pageValidations.put(pageAction, value);
    }
    builder.addPropertyValue("pageValidations", pageValidations);

    return builder.getBeanDefinition();
}

From source file:org.springmodules.cache.config.BeanReferenceParserImpl.java

/**
 * @see BeanReferenceParser#parse(Element,ParserContext,boolean)
 *//*  w w  w.  j  ava2  s.c o  m*/
public Object parse(Element element, ParserContext parserContext, boolean registerInnerBean) {

    String refId = element.getAttribute("refId");
    if (StringUtils.hasText(refId)) {
        return new RuntimeBeanReference(refId);
    }

    Element beanElement = null;
    List beanElements = DomUtils.getChildElementsByTagName(element, "bean");
    if (!CollectionUtils.isEmpty(beanElements)) {
        beanElement = (Element) beanElements.get(0);
    }
    if (beanElement == null) {
        throw new IllegalStateException("The XML element " + StringUtils.quote(element.getNodeName())
                + " should either have a " + "reference to an already registered bean definition or contain a "
                + "bean definition");
    }

    BeanDefinitionHolder holder = parserContext.getDelegate().parseBeanDefinitionElement(beanElement);

    String beanName = holder.getBeanName();

    if (registerInnerBean && StringUtils.hasText(beanName)) {
        BeanDefinitionRegistry registry = parserContext.getRegistry();
        BeanDefinition beanDefinition = holder.getBeanDefinition();
        registry.registerBeanDefinition(beanName, beanDefinition);

        return new RuntimeBeanReference(beanName);
    }

    return holder;
}

From source file:org.opencredo.esper.integration.config.xml.EsperWireTapChannelsParser.java

@SuppressWarnings("unchecked")
@Override/*from w  w  w  .  j  a v  a2  s . c  o m*/
protected void doParse(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) {

    String defaultWireTapRef = element.getAttribute("default-wire-tap");

    List<Element> channelElements = (List<Element>) DomUtils.getChildElementsByTagName(element, "channel");

    ManagedMap channelPatternMappings = new ManagedMap();

    for (Element channelElement : channelElements) {

        Pattern pattern = Pattern.compile(channelElement.getAttribute("pattern"));

        String wireTapRef = channelElement.getAttribute("wire-tap");

        if (!StringUtils.hasText(wireTapRef) && !StringUtils.hasText(defaultWireTapRef)) {
            parserContext.getReaderContext().error(
                    "At least one of 'default-wire-tap' or 'wire-tap' must be provided.", channelElement);
        }

        if (StringUtils.hasText(wireTapRef)) {
            channelPatternMappings.put(pattern, new RuntimeBeanReference(wireTapRef));
        } else {
            channelPatternMappings.put(pattern, new RuntimeBeanReference(defaultWireTapRef));
        }

    }

    builder.addConstructorArgValue(channelPatternMappings);
}

From source file:biz.c24.io.spring.config.C24HttpMessageConverterBeanDefinitionParser.java

@Override
protected AbstractBeanDefinition parseInternal(Element element, ParserContext context) {

    Object source = context.extractSource(element);

    String modelRef = element.getAttribute("model-ref");
    modelRef = StringUtils.hasText(modelRef) ? modelRef : C24ModelBeanDefinitionParser.DEFAULT_BEAN_NAME;

    Set<BeanDefinition> formats = new ManagedSet<BeanDefinition>();
    for (Element formatElement : DomUtils.getChildElementsByTagName(element, "format")) {
        formats.add(formatParser.parse(formatElement, context));
    }/*from  w w  w.  java  2 s. co  m*/

    // Create C24HttpMessageConverter bean
    BeanDefinitionBuilder builder = BeanDefinitionBuilder.rootBeanDefinition(C24HttpMessageConverter.class);
    builder.addConstructorArgReference(modelRef);
    builder.addConstructorArgValue(formats);

    return getSourcedBeanDefinition(builder, source);
}

From source file:pl.chilldev.web.spring.config.LinkBeanDefinitionParser.java

/**
 * {@inheritDoc}/*from   ww w . jav a2 s . co  m*/
 * @since 0.0.2
 */
@Override
public BeanDefinition parse(Element element, ParserContext parserContext) {
    String href = element.getAttribute(LinkBeanDefinitionParser.ATTRIBUTE_HREF);
    Set<String> rels = new HashSet<String>();
    for (Element child : DomUtils.getChildElementsByTagName(element, LinkBeanDefinitionParser.ELEMENT_REL)) {
        rels.add(DomUtils.getTextValue(child));
    }

    GenericBeanDefinition link = new GenericBeanDefinition();
    link.setBeanClass(Link.class);

    int i = 0;
    ConstructorArgumentValues arguments = link.getConstructorArgumentValues();
    arguments.addIndexedArgumentValue(i++, href);
    arguments.addIndexedArgumentValue(i++, rels);
    arguments.addIndexedArgumentValue(i++, pl.chilldev.web.spring.util.DomUtils.getRealAttributeValue(element,
            LinkBeanDefinitionParser.ATTRIBUTE_TYPE));
    arguments.addIndexedArgumentValue(i++, pl.chilldev.web.spring.util.DomUtils.getRealAttributeValue(element,
            LinkBeanDefinitionParser.ATTRIBUTE_MEDIA));

    this.logger.info("Adding \"{}\" link.", href);
    this.links.add(link);

    return null;
}

From source file:com.ryantenney.metrics.spring.config.RegisterMetricBeanDefinitionParser.java

@Override
public BeanDefinition parse(Element element, ParserContext parserContext) {
    final CompositeComponentDefinition compDefinition = new CompositeComponentDefinition(element.getTagName(),
            parserContext.extractSource(element));
    parserContext.pushContainingComponent(compDefinition);

    final String metricRegistryBeanName = element.getAttribute("metric-registry");
    if (!StringUtils.hasText(metricRegistryBeanName)) {
        throw new RuntimeException(); // TODO
    }//w w w  .ja  va 2  s  . c o  m
    final RuntimeBeanReference metricRegistryBeanRef = new RuntimeBeanReference(metricRegistryBeanName);

    final List<Element> metricElements = DomUtils.getChildElementsByTagName(element,
            new String[] { "bean", "ref" });
    for (Element metricElement : metricElements) {
        // Get the name attribute and remove it (to prevent Spring from looking for a BeanDefinitionDecorator)
        final String name = metricElement.getAttributeNS(METRICS_NAMESPACE, "name");
        if (name != null) {
            metricElement.removeAttributeNS(METRICS_NAMESPACE, "name");
        }

        final Object metric = parserContext.getDelegate().parsePropertySubElement(metricElement, null);

        final RootBeanDefinition metricRegistererDef = new RootBeanDefinition(MetricRegisterer.class);
        metricRegistererDef.setSource(parserContext.extractSource(metricElement));
        metricRegistererDef.setRole(BeanDefinition.ROLE_INFRASTRUCTURE);

        final ConstructorArgumentValues args = metricRegistererDef.getConstructorArgumentValues();
        args.addIndexedArgumentValue(0, metricRegistryBeanRef);
        args.addIndexedArgumentValue(1, name);
        args.addIndexedArgumentValue(2, metric);

        final String beanName = parserContext.getReaderContext().registerWithGeneratedName(metricRegistererDef);
        parserContext.registerComponent(new BeanComponentDefinition(metricRegistererDef, beanName));
    }

    parserContext.popAndRegisterContainingComponent();

    return null;
}

From source file:com.developmentsprint.spring.breaker.config.BreakerAdviceParser.java

@Override
protected void doParse(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) {
    builder.addPropertyReference(CB_MANAGER_NAME, BreakerNamespaceHandler.extractCircuitManager(element));

    List<Element> cbAttributes = DomUtils.getChildElementsByTagName(element, CB_ELEMENT_NAME);
    if (cbAttributes.size() > 0) {
        // Using attributes source.
        RootBeanDefinition attributeSourceDefinition = parseAttributeSource(cbAttributes, parserContext);
        builder.addPropertyValue("circuitBreakerAttributeSource", attributeSourceDefinition);

    } else {//from  www.jav  a  2  s . c o  m
        // Assume annotations source.
        builder.addPropertyValue("circuitBreakerAttributeSource", new RootBeanDefinition(
                "com.developmentsprint.spring.breaker.annotations.AnnotationCircuitBreakerAttributeSource"));
    }
}

From source file:pl.chilldev.web.spring.config.TitleBeanDefinitionParser.java

/**
 * {@inheritDoc}//www .  ja  va 2 s  . com
 * @since 0.0.1
 */
@Override
public BeanDefinition parse(Element element, ParserContext parserContext) {
    if (element.hasAttribute(TitleBeanDefinitionParser.ATTRIBUTE_SEPARATOR)) {
        String separator = element.getAttribute(TitleBeanDefinitionParser.ATTRIBUTE_SEPARATOR);

        this.logger.info("Setting title separator to \"{}\".", separator);
        this.properties.addPropertyValue(TitleBeanDefinitionParser.PROPERTY_TITLESEPARATOR, separator);
    }

    String part;
    for (Element child : DomUtils.getChildElementsByTagName(element, TitleBeanDefinitionParser.ELEMENT_PART)) {
        part = DomUtils.getTextValue(child);

        this.logger.info("Adding \"{}\" as title part.", part);
        this.parts.add(part);
    }

    return null;
}