}
}
public void process(Exchange exchange) {
try {
DeliveryChannel deliveryChannel = componentContext.getDeliveryChannel();
MessageExchangeFactory exchangeFactory = deliveryChannel.createExchangeFactory();
MessageExchange messageExchange = binding.makeJbiMessageExchange(exchange, exchangeFactory, jbiEndpoint.getMep());
if (jbiEndpoint.getOperation() != null) {
messageExchange.setOperation(QName.valueOf(jbiEndpoint.getOperation()));
}
URIResolver.configureExchange(messageExchange, componentContext, jbiEndpoint.getDestinationUri());
deliveryChannel.sendSync(messageExchange);
if (messageExchange.getStatus() == ExchangeStatus.ERROR) {
exchange.setException(messageExchange.getError());
} else if (messageExchange.getStatus() == ExchangeStatus.ACTIVE) {
addHeaders(messageExchange, exchange);
if (messageExchange.getFault() != null) {
exchange.getFault().setBody(messageExchange.getFault().getContent());
addHeaders(messageExchange.getFault(), exchange.getFault());
addAttachments(messageExchange.getFault(), exchange.getFault());
} else {
exchange.getOut().setBody(messageExchange.getMessage("out").getContent());
addHeaders(messageExchange.getMessage("out"), exchange.getOut());
addAttachments(messageExchange.getMessage("out"), exchange.getOut());
}
messageExchange.setStatus(ExchangeStatus.DONE);
deliveryChannel.send(messageExchange);
}
} catch (MessagingException e) {
throw new JbiException(e);
} catch (URISyntaxException e) {