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:
@@ -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);
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user