diff --git a/org.springframework.integration.file/src/main/java/org/springframework/integration/file/config/AbstractFilePayloadTransformerParser.java b/org.springframework.integration.file/src/main/java/org/springframework/integration/file/config/AbstractFilePayloadTransformerParser.java index 539db60b94..e7db6479e5 100644 --- a/org.springframework.integration.file/src/main/java/org/springframework/integration/file/config/AbstractFilePayloadTransformerParser.java +++ b/org.springframework.integration.file/src/main/java/org/springframework/integration/file/config/AbstractFilePayloadTransformerParser.java @@ -20,7 +20,7 @@ import org.w3c.dom.Element; import org.springframework.beans.factory.support.BeanDefinitionBuilder; import org.springframework.beans.factory.xml.ParserContext; -import org.springframework.integration.transformer.config.AbstractTransformerParser; +import org.springframework.integration.config.AbstractTransformerParser; /** * Base class for File payload transformer parsers. diff --git a/org.springframework.integration.mail/src/main/java/org/springframework/integration/mail/config/MailNamespaceHandler.java b/org.springframework.integration.mail/src/main/java/org/springframework/integration/mail/config/MailNamespaceHandler.java index 5ae5b99c98..797bbbfc39 100644 --- a/org.springframework.integration.mail/src/main/java/org/springframework/integration/mail/config/MailNamespaceHandler.java +++ b/org.springframework.integration.mail/src/main/java/org/springframework/integration/mail/config/MailNamespaceHandler.java @@ -17,8 +17,8 @@ package org.springframework.integration.mail.config; import org.springframework.beans.factory.xml.NamespaceHandlerSupport; +import org.springframework.integration.config.SimpleHeaderEnricherParser; import org.springframework.integration.mail.MailHeaders; -import org.springframework.integration.transformer.config.SimpleHeaderEnricherParser; /** * Namespace handler for the 'mail' namespace. diff --git a/org.springframework.integration.mail/src/main/java/org/springframework/integration/mail/config/MailToStringTransformerParser.java b/org.springframework.integration.mail/src/main/java/org/springframework/integration/mail/config/MailToStringTransformerParser.java index 1b961d818f..b3c9a54328 100644 --- a/org.springframework.integration.mail/src/main/java/org/springframework/integration/mail/config/MailToStringTransformerParser.java +++ b/org.springframework.integration.mail/src/main/java/org/springframework/integration/mail/config/MailToStringTransformerParser.java @@ -20,10 +20,10 @@ 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.mail.transformer.MailToStringTransformer; import org.springframework.integration.transformer.Transformer; -import org.springframework.integration.transformer.config.AbstractTransformerParser; /** * Parser for the <mail-to-string-transformer> element. diff --git a/org.springframework.integration.xml/src/main/java/org/springframework/integration/xml/config/XmlMarshallingTransformerParser.java b/org.springframework.integration.xml/src/main/java/org/springframework/integration/xml/config/XmlMarshallingTransformerParser.java index 76cc077644..7b6c625669 100644 --- a/org.springframework.integration.xml/src/main/java/org/springframework/integration/xml/config/XmlMarshallingTransformerParser.java +++ b/org.springframework.integration.xml/src/main/java/org/springframework/integration/xml/config/XmlMarshallingTransformerParser.java @@ -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)) { diff --git a/org.springframework.integration.xml/src/main/java/org/springframework/integration/xml/config/XmlUnmarshallingTransformerParser.java b/org.springframework.integration.xml/src/main/java/org/springframework/integration/xml/config/XmlUnmarshallingTransformerParser.java index 7a7149fcfd..2ad11a4292 100644 --- a/org.springframework.integration.xml/src/main/java/org/springframework/integration/xml/config/XmlUnmarshallingTransformerParser.java +++ b/org.springframework.integration.xml/src/main/java/org/springframework/integration/xml/config/XmlUnmarshallingTransformerParser.java @@ -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; diff --git a/org.springframework.integration.xml/src/main/java/org/springframework/integration/xml/config/XsltPayloadTransformerParser.java b/org.springframework.integration.xml/src/main/java/org/springframework/integration/xml/config/XsltPayloadTransformerParser.java index 8c400cf723..6690f58a89 100644 --- a/org.springframework.integration.xml/src/main/java/org/springframework/integration/xml/config/XsltPayloadTransformerParser.java +++ b/org.springframework.integration.xml/src/main/java/org/springframework/integration/xml/config/XsltPayloadTransformerParser.java @@ -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"); } } diff --git a/org.springframework.integration.xml/src/test/java/org/springframework/integration/xml/transformer/XsltPayloadTransformerTest.java b/org.springframework.integration.xml/src/test/java/org/springframework/integration/xml/transformer/XsltPayloadTransformerTests.java similarity index 72% rename from org.springframework.integration.xml/src/test/java/org/springframework/integration/xml/transformer/XsltPayloadTransformerTest.java rename to org.springframework.integration.xml/src/test/java/org/springframework/integration/xml/transformer/XsltPayloadTransformerTests.java index 27b3c4bdde..fc6b89fd86 100644 --- a/org.springframework.integration.xml/src/test/java/org/springframework/integration/xml/transformer/XsltPayloadTransformerTest.java +++ b/org.springframework.integration.xml/src/test/java/org/springframework/integration/xml/transformer/XsltPayloadTransformerTests.java @@ -26,17 +26,18 @@ import javax.xml.transform.dom.DOMResult; import org.junit.Before; import org.junit.Test; +import org.w3c.dom.Document; + import org.springframework.core.io.ByteArrayResource; import org.springframework.core.io.Resource; import org.springframework.integration.message.MessagingException; import org.springframework.integration.xml.util.XmlTestUtil; import org.springframework.xml.transform.StringSource; -import org.w3c.dom.Document; /** * @author Jonas Partner */ -public class XsltPayloadTransformerTest { +public class XsltPayloadTransformerTests { private XsltPayloadTransformer transformer; @@ -44,42 +45,42 @@ public class XsltPayloadTransformerTest { private String outputAsString = "test"; + @Before public void setUp() throws Exception { transformer = new XsltPayloadTransformer(getXslResource()); } + @Test public void testDocumentAsPayload() throws Exception { - Object transformed = transformer.transformPayload(XmlTestUtil - .getDocumentForString(docAsString)); - assertTrue("Wrong return type for document payload", Document.class - .isAssignableFrom(transformed.getClass())); + Object transformed = transformer.transformPayload( + XmlTestUtil.getDocumentForString(docAsString)); + assertTrue("Wrong return type for document payload", + Document.class.isAssignableFrom(transformed.getClass())); Document transformedDocument = (Document) transformed; - assertXMLEqual(outputAsString, XmlTestUtil - .docToString(transformedDocument)); + assertXMLEqual(outputAsString, XmlTestUtil.docToString(transformedDocument)); } @Test public void testSourceAsPayload() throws Exception { - Object transformed = transformer - .transformPayload(new StringSource(docAsString)); - assertEquals("Wrong return type for source payload", DOMResult.class, - transformed.getClass()); + Object transformed = transformer.transformPayload(new StringSource(docAsString)); + assertEquals("Wrong return type for source payload", + DOMResult.class, transformed.getClass()); DOMResult result = (DOMResult) transformed; - assertXMLEqual("Document incorrect after transformation", XmlTestUtil - .getDocumentForString(outputAsString), (Document) result - .getNode()); + assertXMLEqual("Document incorrect after transformation", + XmlTestUtil.getDocumentForString(outputAsString), + (Document) result.getNode()); } @Test public void testStringAsPayload() throws Exception { Object transformed = transformer.transformPayload(docAsString); - assertEquals("Wrong return type for string payload", String.class, - transformed.getClass()); + assertEquals("Wrong return type for string payload", + String.class, transformed.getClass()); String transformedString = (String) transformed; - assertXMLEqual("String incorrect after transform", outputAsString, - transformedString); + assertXMLEqual("String incorrect after transform", + outputAsString, transformedString); } @Test @@ -89,19 +90,17 @@ public class XsltPayloadTransformerTest { assertEquals("Wrong return type for useFactories true", DOMResult.class, transformed.getClass()); DOMResult result = (DOMResult) transformed; - assertXMLEqual("Document incorrect after transformation", XmlTestUtil - .getDocumentForString(outputAsString), (Document) result - .getNode()); + assertXMLEqual("Document incorrect after transformation", + XmlTestUtil.getDocumentForString(outputAsString), + (Document) result.getNode()); } @Test public void testSourceWithResultTransformer() throws Exception { Integer returnValue = new Integer(13); transformer = new XsltPayloadTransformer(getXslResource(), new StubResultTransformer(returnValue)); - Object transformed = transformer - .transformPayload(new StringSource(docAsString)); - assertEquals("Wrong value from result conversion", returnValue, - transformed); + Object transformed = transformer.transformPayload(new StringSource(docAsString)); + assertEquals("Wrong value from result conversion", returnValue, transformed); } @Test(expected = TransformerException.class) @@ -114,23 +113,24 @@ public class XsltPayloadTransformerTest { transformer.transformPayload(new Long(12)); } + private Resource getXslResource() throws Exception { String xsl = "test"; return new ByteArrayResource(xsl.getBytes("UTF-8")); } + public static class StubResultTransformer implements ResultTransformer { - private Object objToReturn; + private Object objectToReturn; - public StubResultTransformer(Object objToReturn) { - this.objToReturn = objToReturn; + public StubResultTransformer(Object objectToReturn) { + this.objectToReturn = objectToReturn; } - public Object transformResult(Result res) { - return objToReturn; + public Object transformResult(Result result) { + return objectToReturn; } - } } diff --git a/org.springframework.integration/src/main/java/org/springframework/integration/transformer/config/AbstractTransformerParser.java b/org.springframework.integration/src/main/java/org/springframework/integration/config/AbstractTransformerParser.java similarity index 93% rename from org.springframework.integration/src/main/java/org/springframework/integration/transformer/config/AbstractTransformerParser.java rename to org.springframework.integration/src/main/java/org/springframework/integration/config/AbstractTransformerParser.java index aa024ddc1d..68a25027d6 100644 --- a/org.springframework.integration/src/main/java/org/springframework/integration/transformer/config/AbstractTransformerParser.java +++ b/org.springframework.integration/src/main/java/org/springframework/integration/config/AbstractTransformerParser.java @@ -14,14 +14,13 @@ * limitations under the License. */ -package org.springframework.integration.transformer.config; +package org.springframework.integration.config; import org.w3c.dom.Element; import org.springframework.beans.factory.support.BeanDefinitionBuilder; import org.springframework.beans.factory.support.BeanDefinitionReaderUtils; import org.springframework.beans.factory.xml.ParserContext; -import org.springframework.integration.config.AbstractConsumerEndpointParser; import org.springframework.integration.transformer.Transformer; import org.springframework.integration.transformer.TransformerEndpoint; diff --git a/org.springframework.integration/src/main/java/org/springframework/integration/gateway/config/GatewayParser.java b/org.springframework.integration/src/main/java/org/springframework/integration/config/GatewayParser.java similarity index 93% rename from org.springframework.integration/src/main/java/org/springframework/integration/gateway/config/GatewayParser.java rename to org.springframework.integration/src/main/java/org/springframework/integration/config/GatewayParser.java index 61486cf883..6a422159a6 100644 --- a/org.springframework.integration/src/main/java/org/springframework/integration/gateway/config/GatewayParser.java +++ b/org.springframework.integration/src/main/java/org/springframework/integration/config/GatewayParser.java @@ -14,13 +14,12 @@ * limitations under the License. */ -package org.springframework.integration.gateway.config; +package org.springframework.integration.config; import org.w3c.dom.Element; import org.springframework.beans.factory.support.BeanDefinitionBuilder; import org.springframework.beans.factory.xml.AbstractSimpleBeanDefinitionParser; -import org.springframework.integration.config.IntegrationNamespaceUtils; import org.springframework.integration.gateway.GatewayProxyFactoryBean; import org.springframework.util.ObjectUtils; diff --git a/org.springframework.integration/src/main/java/org/springframework/integration/config/IntegrationNamespaceHandler.java b/org.springframework.integration/src/main/java/org/springframework/integration/config/IntegrationNamespaceHandler.java index ba55e71394..70abc481f5 100644 --- a/org.springframework.integration/src/main/java/org/springframework/integration/config/IntegrationNamespaceHandler.java +++ b/org.springframework.integration/src/main/java/org/springframework/integration/config/IntegrationNamespaceHandler.java @@ -17,7 +17,6 @@ package org.springframework.integration.config; import org.springframework.beans.factory.xml.NamespaceHandlerSupport; -import org.springframework.integration.gateway.config.GatewayParser; /** * Namespace handler for the integration namespace. diff --git a/org.springframework.integration/src/main/java/org/springframework/integration/transformer/config/SimpleHeaderEnricherParser.java b/org.springframework.integration/src/main/java/org/springframework/integration/config/SimpleHeaderEnricherParser.java similarity index 97% rename from org.springframework.integration/src/main/java/org/springframework/integration/transformer/config/SimpleHeaderEnricherParser.java rename to org.springframework.integration/src/main/java/org/springframework/integration/config/SimpleHeaderEnricherParser.java index 1b066df6d6..d248924e8d 100644 --- a/org.springframework.integration/src/main/java/org/springframework/integration/transformer/config/SimpleHeaderEnricherParser.java +++ b/org.springframework.integration/src/main/java/org/springframework/integration/config/SimpleHeaderEnricherParser.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.integration.transformer.config; +package org.springframework.integration.config; import java.util.HashMap; import java.util.Map;