INT-3309 Pluggable MessageBuilder
This is still a work in process. There are a bunch of TODOs in classes that are not managed by Spring and so need to have the MessageBuilderFactory injected. But I am looking for feedback on the approach. INT-3309 Resolve TODOs Provide access to the MessageBuilderFactory in all classes. INT-3309 Polishing + Tests * Fallback to 'fromMessage()' if mutating and inbound message is not MutableMessage * Add 'alwaysMutate' boolean to MutableMessageBuilderFactory - coerces 'fromMessage' calls to 'mutateMessage' * Add tests INT-3309 Polishing; PR Comments Also add tests to parent/child contexts where the parent has the default message builder and the child has a mutable message builder. INT-3309 More Polish; PR Comments Also fix removeHeader in MMB.
This commit is contained in:
committed by
Artem Bilan
parent
4c775bce9d
commit
ff845b5069
@@ -30,7 +30,6 @@ import org.springframework.data.redis.serializer.StringRedisSerializer;
|
||||
import org.springframework.integration.channel.MessagePublishingErrorHandler;
|
||||
import org.springframework.integration.endpoint.MessageProducerSupport;
|
||||
import org.springframework.integration.redis.event.RedisExceptionEvent;
|
||||
import org.springframework.integration.support.MessageBuilder;
|
||||
import org.springframework.integration.support.channel.BeanFactoryChannelResolver;
|
||||
import org.springframework.integration.util.ErrorHandlingTaskExecutor;
|
||||
import org.springframework.jmx.export.annotation.ManagedMetric;
|
||||
@@ -204,7 +203,7 @@ public class RedisQueueMessageDrivenEndpoint extends MessageProducerSupport impl
|
||||
if (this.serializer != null) {
|
||||
payload = this.serializer.deserialize(value);
|
||||
}
|
||||
message = MessageBuilder.withPayload(payload).build();
|
||||
message = this.getMessageBuilderFactory().withPayload(payload).build();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -30,7 +30,6 @@ import org.springframework.expression.spel.support.StandardEvaluationContext;
|
||||
import org.springframework.integration.context.IntegrationObjectSupport;
|
||||
import org.springframework.integration.core.MessageSource;
|
||||
import org.springframework.integration.expression.ExpressionUtils;
|
||||
import org.springframework.integration.support.MessageBuilder;
|
||||
import org.springframework.integration.transaction.IntegrationResourceHolder;
|
||||
import org.springframework.messaging.Message;
|
||||
import org.springframework.transaction.support.TransactionSynchronizationManager;
|
||||
@@ -128,7 +127,7 @@ public class RedisStoreMessageSource extends IntegrationObjectSupport
|
||||
return null;
|
||||
}
|
||||
else {
|
||||
return MessageBuilder.withPayload(store).build();
|
||||
return this.getMessageBuilderFactory().withPayload(store).build();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user