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).

This commit is contained in:
Mark Fisher
2008-12-10 23:47:05 +00:00
parent 1755dfd676
commit 9463290328
9 changed files with 21 additions and 34 deletions

View File

@@ -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<? extends Transformer> getTransformerClass();
protected abstract String getTransformerClassName();
protected abstract void parseTransformer(Element element, ParserContext parserContext, BeanDefinitionBuilder builder);

View File

@@ -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

View File

@@ -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<? extends Transformer> getTransformerClass() {
return HeaderEnricher.class;
protected String getTransformerClassName() {
return IntegrationNamespaceUtils.BASE_PACKAGE + ".transformer.HeaderEnricher";
}
protected boolean isEligibleHeaderName(String headerName) {