Moved GatewayParser, AbstractTransformerParser, and SimpleHeaderEnricherParser into org.springframework.integration.config to avoid dependency cycles.

This commit is contained in:
Mark Fisher
2008-10-10 17:11:18 +00:00
parent 0dfe9ca191
commit 11e53cf7e7
11 changed files with 46 additions and 52 deletions

View File

@@ -20,8 +20,8 @@ import org.w3c.dom.Element;
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
import org.springframework.beans.factory.xml.ParserContext;
import org.springframework.integration.config.AbstractTransformerParser;
import org.springframework.integration.transformer.Transformer;
import org.springframework.integration.transformer.config.AbstractTransformerParser;
import org.springframework.integration.xml.transformer.XmlPayloadMarshallingTransformer;
import org.springframework.util.Assert;
import org.springframework.util.StringUtils;
@@ -42,10 +42,10 @@ public class XmlMarshallingTransformerParser extends AbstractTransformerParser {
@Override
protected void parseTransformer(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) {
String resultTransformer = element.getAttribute("result-transformer");
String resultFactory = element.getAttribute("result-factory");
String resultType = element.getAttribute("result-type");
String marshaller = element.getAttribute("marshaller");
String resultTransformer = element.getAttribute("result-transformer");
Assert.hasText(marshaller, "the 'marshaller' attribute is required");
builder.addConstructorArgReference(marshaller);
if (StringUtils.hasText(resultTransformer)) {

View File

@@ -20,8 +20,8 @@ import org.w3c.dom.Element;
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
import org.springframework.beans.factory.xml.ParserContext;
import org.springframework.integration.config.AbstractTransformerParser;
import org.springframework.integration.transformer.Transformer;
import org.springframework.integration.transformer.config.AbstractTransformerParser;
import org.springframework.integration.xml.transformer.XmlPayloadUnmarshallingTransformer;
import org.springframework.util.Assert;

View File

@@ -20,8 +20,9 @@ import org.w3c.dom.Element;
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
import org.springframework.beans.factory.xml.ParserContext;
import org.springframework.integration.config.AbstractTransformerParser;
import org.springframework.integration.config.IntegrationNamespaceUtils;
import org.springframework.integration.transformer.Transformer;
import org.springframework.integration.transformer.config.AbstractTransformerParser;
import org.springframework.integration.xml.transformer.XsltPayloadTransformer;
import org.springframework.util.Assert;
import org.springframework.util.StringUtils;
@@ -47,24 +48,20 @@ public class XsltPayloadTransformerParser extends AbstractTransformerParser {
String resultTransformer = element.getAttribute("result-transformer");
String resultFactory = element.getAttribute("result-factory");
String resultType = element.getAttribute("result-type");
boolean bothHaveText = StringUtils.hasText(xslResource) && StringUtils.hasText(xslTemplates);
boolean oneHasText = StringUtils.hasText(xslResource) || StringUtils.hasText(xslTemplates);
Assert.state(!bothHaveText && oneHasText, "Exactly one of 'xsl-resource' or 'xsl-templates' is required.");
Assert.isTrue(StringUtils.hasText(xslResource) ^ StringUtils.hasText(xslTemplates),
"Exactly one of 'xsl-resource' or 'xsl-templates' is required.");
if (StringUtils.hasText(xslResource)) {
builder.addConstructorArgValue(xslResource);
}
else if (StringUtils.hasText(xslTemplates)) {
builder.addConstructorArgReference(xslTemplates);
}
String sourceFactory = element.getAttribute("source-factory");
if (StringUtils.hasText(sourceFactory)) {
builder.addPropertyReference("sourceFactory", sourceFactory);
}
resultFactoryHelper.assertResultFactoryAndTypeValid(resultFactory, resultType);
resultFactoryHelper.addResultFactory(builder, resultType, resultFactory);
if (StringUtils.hasText(resultTransformer)) {
builder.addConstructorArgReference(resultTransformer);
}
IntegrationNamespaceUtils.setReferenceIfAttributeDefined(builder, element, "source-factory");
}
}