All Downloads are FREE. Search and download functionalities are using the official Maven repository.

de.codecentric.mule.assertobjectequals.generated.config.CompareXmlDefinitionParser Maven / Gradle / Ivy


package de.codecentric.mule.assertobjectequals.generated.config;

import de.codecentric.mule.assertobjectequals.generated.processors.CompareXmlMessageProcessor;
import de.codecentric.mule.assertobjectequals.generated.processors.CompareXmlMessageProcessorDebuggable;
import javax.annotation.Generated;
import org.mule.common.MuleVersion;
import org.mule.config.MuleManifest;
import org.mule.security.oauth.config.AbstractDevkitBasedDefinitionParser;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.beans.factory.parsing.BeanDefinitionParsingException;
import org.springframework.beans.factory.parsing.Location;
import org.springframework.beans.factory.parsing.Problem;
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
import org.springframework.beans.factory.xml.ParserContext;
import org.w3c.dom.Element;

@SuppressWarnings("all")
@Generated(value = "Mule DevKit Version 3.9.0", date = "2017-04-21T05:05:21+02:00", comments = "Build UNNAMED.2793.f49b6c7")
public class CompareXmlDefinitionParser
    extends AbstractDevkitBasedDefinitionParser
{

    private static Logger logger = LoggerFactory.getLogger(CompareXmlDefinitionParser.class);

    private BeanDefinitionBuilder getBeanDefinitionBuilder(ParserContext parserContext) {
        try {
            MuleVersion muleVersion = new MuleVersion(MuleManifest.getProductVersion());
            BeanDefinitionBuilder beanDefinitionBuilder;
            if (muleVersion.atLeastBase("3.8.0")) {
                beanDefinitionBuilder = beanDefinitionBuilder = BeanDefinitionBuilder.rootBeanDefinition(CompareXmlMessageProcessorDebuggable.class.getName());
            } else {
                beanDefinitionBuilder = beanDefinitionBuilder = BeanDefinitionBuilder.rootBeanDefinition(CompareXmlMessageProcessor.class.getName());
            }
            return beanDefinitionBuilder;
        } catch (NoClassDefFoundError noClassDefFoundError) {
            String muleVersion = "";
            try {
                muleVersion = MuleManifest.getProductVersion();
            } catch (Exception _x) {
                logger.error("Problem while reading mule version");
            }
            logger.error(("Cannot launch the mule app, the @Processor [compare-xml] within the connector [assert-object-equals] is not supported in mule "+ muleVersion));
            throw new BeanDefinitionParsingException(new Problem(("Cannot launch the mule app, the @Processor [compare-xml] within the connector [assert-object-equals] is not supported in mule "+ muleVersion), new Location(parserContext.getReaderContext().getResource()), null, noClassDefFoundError));
        }
    }

    public BeanDefinition parse(Element element, ParserContext parserContext) {
        BeanDefinitionBuilder builder = getBeanDefinitionBuilder(parserContext);
        builder.addConstructorArgValue("compareXml");
        builder.setScope(BeanDefinition.SCOPE_PROTOTYPE);
        if (hasAttribute(element, "expected-ref")) {
            if (element.getAttribute("expected-ref").startsWith("#")) {
                builder.addPropertyValue("expected", element.getAttribute("expected-ref"));
            } else {
                builder.addPropertyValue("expected", (("#[registry:"+ element.getAttribute("expected-ref"))+"]"));
            }
        }
        if (hasAttribute(element, "actual-ref")) {
            if (element.getAttribute("actual-ref").startsWith("#")) {
                builder.addPropertyValue("actual", element.getAttribute("actual-ref"));
            } else {
                builder.addPropertyValue("actual", (("#[registry:"+ element.getAttribute("actual-ref"))+"]"));
            }
        }
        parseProperty(builder, element, "xmlCompareOption", "xmlCompareOption");
        BeanDefinition definition = builder.getBeanDefinition();
        setNoRecurseOnDefinition(definition);
        attachProcessorDefinition(parserContext, definition);
        return definition;
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy