INT-773 Refactored MethodInvokingTransformer to have a single constructor expecting a MessageProcessor. All configuration of a MessageMappingMethodInvoker now happens externally (in the FactoryBean or annotation post-processor).
This commit is contained in:
@@ -17,6 +17,7 @@
|
||||
package org.springframework.integration.config;
|
||||
|
||||
import org.springframework.integration.handler.ExpressionEvaluatingMessageProcessor;
|
||||
import org.springframework.integration.handler.MessageMappingMethodInvoker;
|
||||
import org.springframework.integration.handler.MessageProcessor;
|
||||
import org.springframework.integration.message.MessageHandler;
|
||||
import org.springframework.integration.transformer.MessageTransformingHandler;
|
||||
@@ -40,10 +41,13 @@ public class TransformerFactoryBean extends AbstractMessageHandlerFactoryBean {
|
||||
transformer = (Transformer) targetObject;
|
||||
}
|
||||
else if (StringUtils.hasText(targetMethodName)) {
|
||||
transformer = new MethodInvokingTransformer(targetObject, targetMethodName);
|
||||
MessageProcessor messageProcessor = new MessageMappingMethodInvoker(targetObject, targetMethodName);
|
||||
transformer = new MethodInvokingTransformer(messageProcessor);
|
||||
}
|
||||
else {
|
||||
transformer = new MethodInvokingTransformer(targetObject);
|
||||
MessageProcessor messageProcessor = new MessageMappingMethodInvoker(
|
||||
targetObject, org.springframework.integration.annotation.Transformer.class);
|
||||
transformer = new MethodInvokingTransformer(messageProcessor);
|
||||
}
|
||||
return new MessageTransformingHandler(transformer);
|
||||
}
|
||||
|
||||
@@ -20,6 +20,8 @@ import java.lang.reflect.Method;
|
||||
|
||||
import org.springframework.beans.factory.ListableBeanFactory;
|
||||
import org.springframework.integration.annotation.Transformer;
|
||||
import org.springframework.integration.handler.MessageMappingMethodInvoker;
|
||||
import org.springframework.integration.handler.MessageProcessor;
|
||||
import org.springframework.integration.message.MessageHandler;
|
||||
import org.springframework.integration.transformer.MethodInvokingTransformer;
|
||||
import org.springframework.integration.transformer.MessageTransformingHandler;
|
||||
@@ -39,7 +41,8 @@ public class TransformerAnnotationPostProcessor extends AbstractMethodAnnotation
|
||||
|
||||
@Override
|
||||
protected MessageHandler createHandler(Object bean, Method method, Transformer annotation) {
|
||||
MethodInvokingTransformer transformer = new MethodInvokingTransformer(bean, method);
|
||||
MessageProcessor messageProcessor = new MessageMappingMethodInvoker(bean, method);
|
||||
MethodInvokingTransformer transformer = new MethodInvokingTransformer(messageProcessor);
|
||||
MessageTransformingHandler handler = new MessageTransformingHandler(transformer);
|
||||
String outputChannelName = annotation.outputChannel();
|
||||
if (StringUtils.hasText(outputChannelName)) {
|
||||
|
||||
@@ -16,12 +16,10 @@
|
||||
|
||||
package org.springframework.integration.transformer;
|
||||
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.Map;
|
||||
import java.util.Properties;
|
||||
|
||||
import org.springframework.integration.core.Message;
|
||||
import org.springframework.integration.handler.MessageMappingMethodInvoker;
|
||||
import org.springframework.integration.handler.MessageProcessor;
|
||||
import org.springframework.integration.message.MessageBuilder;
|
||||
import org.springframework.integration.message.MessageHandlingException;
|
||||
@@ -40,19 +38,6 @@ public class MethodInvokingTransformer implements Transformer {
|
||||
this.messageProcessor = messageProcessor;
|
||||
}
|
||||
|
||||
public MethodInvokingTransformer(Object object, Method method) {
|
||||
this.messageProcessor = new MessageMappingMethodInvoker(object, method);
|
||||
}
|
||||
|
||||
public MethodInvokingTransformer(Object object, String methodName) {
|
||||
this.messageProcessor = new MessageMappingMethodInvoker(object, methodName);
|
||||
}
|
||||
|
||||
public MethodInvokingTransformer(Object object) {
|
||||
this.messageProcessor = new MessageMappingMethodInvoker(object,
|
||||
org.springframework.integration.annotation.Transformer.class);
|
||||
}
|
||||
|
||||
|
||||
public Message<?> transform(Message<?> message) {
|
||||
Object result = this.messageProcessor.processMessage(message);
|
||||
|
||||
Reference in New Issue
Block a user