I was able to get it to work by injecting the transformer as I mentioned I would try. The transformer is basic:
Code:
public class ByteArrayToJsonTransformer extends AbstractTransformer {
@Override
protected Object doTransform(Message<?> message) throws Exception {
Object payload = message.getPayload();
return new String((byte[]) payload);
}
}
I injected this in the cafe-amqp configuration file cafeDemo-amqp-operations-xml.xml, just after the inbound-channel-adapter definition:
Code:
<bean class="com.sellis.transfomers.ByteArrayToJsonTransformer" id="byteArrayToJsonTransformer"/>
<int:transformer input-channel="byteToJsonChannel" output-channel="jsonOrders"
ref="byteArrayToJsonTransformer"/>
<int:json-to-object-transformer id="json-to-order" input-channel="jsonOrders" output-channel="preOrders"
type="org.springframework.integration.samples.cafe.Order" />
Now the demo is running for me.