From 2c9d58428d894e820af00a9e52d2b2937b85b378 Mon Sep 17 00:00:00 2001 From: Tom Cunningham Date: Thu, 9 Feb 2017 11:12:16 -0500 Subject: [PATCH] SWITCHYARD-2979 Transformer invoked from getContent() should also handle Message parameter --- .../java/org/switchyard/bus/camel/CamelMessage.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/core/bus/camel/src/main/java/org/switchyard/bus/camel/CamelMessage.java b/core/bus/camel/src/main/java/org/switchyard/bus/camel/CamelMessage.java index 6cc57df59..4b81e85ea 100644 --- a/core/bus/camel/src/main/java/org/switchyard/bus/camel/CamelMessage.java +++ b/core/bus/camel/src/main/java/org/switchyard/bus/camel/CamelMessage.java @@ -108,7 +108,18 @@ protected T getBody(Class type, Object body) { + "', class=" + transformer.getClass() + "'] to the body '" + body + "'"); } - Object transformedContent = transformer.transform(body); + + Object transformedContent = null; + if (Message.class.isAssignableFrom(transformer.getFromType())) { + // A returned object just indicates that the transformation took place. + transformer.transform(this); + transformedContent = getBody(); + } else { + // A returned object indicates that the transformation took place and is + // used as the new Message payload. + transformedContent = transformer.transform(body); + } + if (transformedContent == null) { throw BusMessages.MESSAGES.transformerReturnedNull(body.getClass().getName(), type.getName(), transformer.getClass().getName()); }