public void setExpiration() { long expiration = ((BasicContentHeaderProperties) _contentHeaderBody.getProperties()).getExpiration(); long timestamp = ((BasicContentHeaderProperties) _contentHeaderBody.getProperties()).getTimestamp(); if (SYNCHED_CLOCKS) { _expiration = expiration; } else { // Update TTL to be in broker time. if (expiration != 0L) { if (timestamp != 0L) { // todo perhaps use arrival time long diff = (System.currentTimeMillis() - timestamp); if ((diff > 1000L) || (diff < 1000L)) { _expiration = expiration + diff; } } } } }
private IncomingMessage message(final boolean immediate, boolean persistent) throws AMQException { MessagePublishInfo publish = new MessagePublishInfo() { public AMQShortString getExchange() { return null; } public void setExchange(AMQShortString exchange) { throw new NotImplementedException(); } public void setRoutingKey(AMQShortString routingKey) { throw new NotImplementedException(); } public boolean isImmediate() { return immediate; } public boolean isMandatory() { return false; } public AMQShortString getRoutingKey() { return null; } }; ContentHeaderBody contentHeaderBody = new ContentHeaderBody(); contentHeaderBody.bodySize = MESSAGE_SIZE; // in bytes contentHeaderBody.setProperties(new BasicContentHeaderProperties()); ((BasicContentHeaderProperties) contentHeaderBody.getProperties()) .setDeliveryMode((byte) (persistent ? 2 : 1)); IncomingMessage msg = new IncomingMessage(publish); msg.setContentHeaderBody(contentHeaderBody); return msg; }