}
public void onMessageExchange(MessageExchange exchange) throws MessagingException {
if (exchange.getStatus() != ExchangeStatus.DONE) {
// lets create an endpoint
DeliveryChannel deliveryChannel = getDeliveryChannel();
MessageExchangeFactory rpcFactory = deliveryChannel.createExchangeFactory(requestResponseEndpoint);
InOut rpc = rpcFactory.createInOutExchange();
rpc.setInMessage(exchange.getMessage("in"));
boolean answer = deliveryChannel.sendSync(rpc);
MessageExchangeFactory outputFactory = deliveryChannel.createExchangeFactory(outputEndpoint);
InOnly inOnly = outputFactory.createInOnlyExchange();
if (answer) {
inOnly.setInMessage(rpc.getOutMessage());
deliveryChannel.send(inOnly);
done(exchange);
}
else if (exchange instanceof InOnly == false) {
inOnly.setError(rpc.getError());
Fault fault = rpc.getFault();