@Override
public void reply(Message request, MessageReply reply) {
if (Boolean.valueOf(request.getHeaderEntry(CloudBus.HEADER_NO_NEED_REPLY_MSG))) {
if (logger.isTraceEnabled()) {
logger.trace(String.format("%s in message%s is set, drop reply%s", CloudBus.HEADER_NO_NEED_REPLY_MSG,
wire.dumpMessage(request), wire.dumpMessage(reply)));
}
return;
}
AMQP.BasicProperties.Builder builder = new AMQP.BasicProperties.Builder();
reply.setAMQPProperties(builder.deliveryMode(1).build());
reply.getHeaders().put(CloudBus.HEADER_IS_MESSAGE_REPLY, Boolean.TRUE.toString());
reply.putHeaderEntry(CloudBus.HEADER_CORRELATION_ID, request.getId());
reply.setServiceId(request.getHeaderEntry(CloudBus.HEADER_REPLY_TO));
buildResponseMessageMetaData(reply);
if (request instanceof NeedReplyMessage) {
callReplyPreSendingExtensions(reply, (NeedReplyMessage) request);
}
wire.send(reply, false);
}