From 94632903284494381077c4a7c38ced06be758b27 Mon Sep 17 00:00:00 2001 From: Mark Fisher Date: Wed, 10 Dec 2008 23:47:05 +0000 Subject: [PATCH] Transformer parsers now implement getTransformerClassName() to return a String instead of returning Class instances with getTransformerClass(). This avoids the loading of Classes that may lead to dependencies not available for the tools (INT-114). --- .../file/config/FileToByteArrayTransformerParser.java | 7 ++----- .../file/config/FileToStringTransformerParser.java | 6 ++---- .../mail/config/MailToStringTransformerParser.java | 6 ++---- .../xml/config/XmlMarshallingTransformerParser.java | 6 ++---- .../xml/config/XmlUnmarshallingTransformerParser.java | 6 ++---- .../xml/config/XsltPayloadTransformerParser.java | 6 ++---- .../config/xml/AbstractTransformerParser.java | 9 ++++----- .../config/xml/IntegrationNamespaceUtils.java | 3 +++ .../config/xml/SimpleHeaderEnricherParser.java | 6 ++---- 9 files changed, 21 insertions(+), 34 deletions(-) diff --git a/org.springframework.integration.file/src/main/java/org/springframework/integration/file/config/FileToByteArrayTransformerParser.java b/org.springframework.integration.file/src/main/java/org/springframework/integration/file/config/FileToByteArrayTransformerParser.java index 99120f5f74..7835e4744f 100644 --- a/org.springframework.integration.file/src/main/java/org/springframework/integration/file/config/FileToByteArrayTransformerParser.java +++ b/org.springframework.integration.file/src/main/java/org/springframework/integration/file/config/FileToByteArrayTransformerParser.java @@ -16,9 +16,6 @@ package org.springframework.integration.file.config; -import org.springframework.integration.file.transformer.FileToByteArrayTransformer; -import org.springframework.integration.transformer.Transformer; - /** * Parser for the <file-to-bytes-transformer> element. * @@ -27,8 +24,8 @@ import org.springframework.integration.transformer.Transformer; public class FileToByteArrayTransformerParser extends AbstractFilePayloadTransformerParser { @Override - protected Class getTransformerClass() { - return FileToByteArrayTransformer.class; + protected String getTransformerClassName() { + return "org.springframework.integration.file.transformer.FileToByteArrayTransformer"; } } diff --git a/org.springframework.integration.file/src/main/java/org/springframework/integration/file/config/FileToStringTransformerParser.java b/org.springframework.integration.file/src/main/java/org/springframework/integration/file/config/FileToStringTransformerParser.java index 6e91a32c3c..0b382699c0 100644 --- a/org.springframework.integration.file/src/main/java/org/springframework/integration/file/config/FileToStringTransformerParser.java +++ b/org.springframework.integration.file/src/main/java/org/springframework/integration/file/config/FileToStringTransformerParser.java @@ -21,8 +21,6 @@ import org.w3c.dom.Element; import org.springframework.beans.factory.support.BeanDefinitionBuilder; import org.springframework.beans.factory.xml.ParserContext; import org.springframework.integration.config.xml.IntegrationNamespaceUtils; -import org.springframework.integration.file.transformer.FileToStringTransformer; -import org.springframework.integration.transformer.Transformer; /** * Parser for the <file-to-string-transformer> element. @@ -32,8 +30,8 @@ import org.springframework.integration.transformer.Transformer; public class FileToStringTransformerParser extends AbstractFilePayloadTransformerParser { @Override - protected Class getTransformerClass() { - return FileToStringTransformer.class; + protected String getTransformerClassName() { + return "org.springframework.integration.file.transformer.FileToStringTransformer"; } @Override 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 c5be311f91..8b7e38ef3e 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 @@ -22,8 +22,6 @@ import org.springframework.beans.factory.support.BeanDefinitionBuilder; import org.springframework.beans.factory.xml.ParserContext; import org.springframework.integration.config.xml.AbstractTransformerParser; import org.springframework.integration.config.xml.IntegrationNamespaceUtils; -import org.springframework.integration.mail.transformer.MailToStringTransformer; -import org.springframework.integration.transformer.Transformer; /** * Parser for the <mail-to-string-transformer> element. @@ -33,8 +31,8 @@ import org.springframework.integration.transformer.Transformer; public class MailToStringTransformerParser extends AbstractTransformerParser { @Override - protected Class getTransformerClass() { - return MailToStringTransformer.class; + protected String getTransformerClassName() { + return "org.springframework.integration.mail.transformer.MailToStringTransformer"; } @Override 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 2b66e53be6..3bd4c98208 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 @@ -21,8 +21,6 @@ import org.w3c.dom.Element; import org.springframework.beans.factory.support.BeanDefinitionBuilder; import org.springframework.beans.factory.xml.ParserContext; import org.springframework.integration.config.xml.AbstractTransformerParser; -import org.springframework.integration.transformer.Transformer; -import org.springframework.integration.xml.transformer.XmlPayloadMarshallingTransformer; import org.springframework.util.Assert; import org.springframework.util.StringUtils; @@ -33,8 +31,8 @@ import org.springframework.util.StringUtils; public class XmlMarshallingTransformerParser extends AbstractTransformerParser { @Override - protected Class getTransformerClass() { - return XmlPayloadMarshallingTransformer.class; + protected String getTransformerClassName() { + return "org.springframework.integration.xml.transformer.XmlPayloadMarshallingTransformer"; } @Override 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 a275ca83f9..564e22b47f 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 @@ -21,8 +21,6 @@ import org.w3c.dom.Element; import org.springframework.beans.factory.support.BeanDefinitionBuilder; import org.springframework.beans.factory.xml.ParserContext; import org.springframework.integration.config.xml.AbstractTransformerParser; -import org.springframework.integration.transformer.Transformer; -import org.springframework.integration.xml.transformer.XmlPayloadUnmarshallingTransformer; import org.springframework.util.Assert; /** @@ -32,8 +30,8 @@ import org.springframework.util.Assert; public class XmlUnmarshallingTransformerParser extends AbstractTransformerParser { @Override - protected Class getTransformerClass() { - return XmlPayloadUnmarshallingTransformer.class; + protected String getTransformerClassName() { + return "org.springframework.integration.xml.transformer.XmlPayloadUnmarshallingTransformer"; } @Override 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 edae86e2c1..f2080d6115 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 @@ -22,8 +22,6 @@ import org.springframework.beans.factory.support.BeanDefinitionBuilder; import org.springframework.beans.factory.xml.ParserContext; import org.springframework.integration.config.xml.AbstractTransformerParser; import org.springframework.integration.config.xml.IntegrationNamespaceUtils; -import org.springframework.integration.transformer.Transformer; -import org.springframework.integration.xml.transformer.XsltPayloadTransformer; import org.springframework.util.Assert; import org.springframework.util.StringUtils; @@ -34,8 +32,8 @@ import org.springframework.util.StringUtils; public class XsltPayloadTransformerParser extends AbstractTransformerParser { @Override - protected Class getTransformerClass() { - return XsltPayloadTransformer.class; + protected String getTransformerClassName() { + return "org.springframework.integration.xml.transformer.XsltPayloadTransformer"; } @Override diff --git a/org.springframework.integration/src/main/java/org/springframework/integration/config/xml/AbstractTransformerParser.java b/org.springframework.integration/src/main/java/org/springframework/integration/config/xml/AbstractTransformerParser.java index e2b4faa0cf..99648db279 100644 --- a/org.springframework.integration/src/main/java/org/springframework/integration/config/xml/AbstractTransformerParser.java +++ b/org.springframework.integration/src/main/java/org/springframework/integration/config/xml/AbstractTransformerParser.java @@ -21,8 +21,6 @@ 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.transformer.Transformer; -import org.springframework.integration.transformer.MessageTransformingHandler; /** * @author Mark Fisher @@ -31,9 +29,10 @@ public abstract class AbstractTransformerParser extends AbstractConsumerEndpoint @Override protected BeanDefinitionBuilder parseHandler(Element element, ParserContext parserContext) { - BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition(MessageTransformingHandler.class); + BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition( + IntegrationNamespaceUtils.BASE_PACKAGE + ".transformer.MessageTransformingHandler"); BeanDefinitionBuilder transformerBuilder = - BeanDefinitionBuilder.genericBeanDefinition(this.getTransformerClass()); + BeanDefinitionBuilder.genericBeanDefinition(this.getTransformerClassName()); this.parseTransformer(element, parserContext, transformerBuilder); String transformerBeanName = BeanDefinitionReaderUtils.registerWithGeneratedName( transformerBuilder.getBeanDefinition(), parserContext.getRegistry()); @@ -41,7 +40,7 @@ public abstract class AbstractTransformerParser extends AbstractConsumerEndpoint return builder; } - protected abstract Class getTransformerClass(); + protected abstract String getTransformerClassName(); protected abstract void parseTransformer(Element element, ParserContext parserContext, BeanDefinitionBuilder builder); diff --git a/org.springframework.integration/src/main/java/org/springframework/integration/config/xml/IntegrationNamespaceUtils.java b/org.springframework.integration/src/main/java/org/springframework/integration/config/xml/IntegrationNamespaceUtils.java index 1308573b73..5da36525f6 100644 --- a/org.springframework.integration/src/main/java/org/springframework/integration/config/xml/IntegrationNamespaceUtils.java +++ b/org.springframework.integration/src/main/java/org/springframework/integration/config/xml/IntegrationNamespaceUtils.java @@ -38,6 +38,9 @@ import org.springframework.util.StringUtils; */ public abstract class IntegrationNamespaceUtils { + static final String BASE_PACKAGE = "org.springframework.integration"; + + /** * Populates the specified bean definition property with the value * of the attribute whose name is provided if that attribute is diff --git a/org.springframework.integration/src/main/java/org/springframework/integration/config/xml/SimpleHeaderEnricherParser.java b/org.springframework.integration/src/main/java/org/springframework/integration/config/xml/SimpleHeaderEnricherParser.java index b2116d4b0d..b90f830fa8 100644 --- a/org.springframework.integration/src/main/java/org/springframework/integration/config/xml/SimpleHeaderEnricherParser.java +++ b/org.springframework.integration/src/main/java/org/springframework/integration/config/xml/SimpleHeaderEnricherParser.java @@ -29,8 +29,6 @@ import org.springframework.beans.factory.support.BeanDefinitionBuilder; import org.springframework.beans.factory.support.ManagedMap; import org.springframework.beans.factory.xml.ParserContext; import org.springframework.core.Conventions; -import org.springframework.integration.transformer.HeaderEnricher; -import org.springframework.integration.transformer.Transformer; import org.springframework.util.ObjectUtils; /** @@ -64,8 +62,8 @@ public class SimpleHeaderEnricherParser extends AbstractTransformerParser { @Override - protected Class getTransformerClass() { - return HeaderEnricher.class; + protected String getTransformerClassName() { + return IntegrationNamespaceUtils.BASE_PACKAGE + ".transformer.HeaderEnricher"; } protected boolean isEligibleHeaderName(String headerName) {