private void populateRoutingInfoHeaders(final Message message, final Envelope envelope) { if (envelope != null) { message.setHeader(RabbitMQConstants.ROUTING_KEY, envelope.getRoutingKey()); message.setHeader(RabbitMQConstants.EXCHANGE_NAME, envelope.getExchange()); message.setHeader(RabbitMQConstants.DELIVERY_TAG, envelope.getDeliveryTag()); message.setHeader(RabbitMQConstants.REDELIVERY_TAG, envelope.isRedeliver()); } }
private static Map<String, Object> headers(final BasicProperties props, Envelope envelope) { Map<String, Object> result = props.getHeaders().entrySet().stream().collect(toMap(Entry::getKey, MessageFactory::headerValue)); result.put("DeliveryTag", envelope.getDeliveryTag()); result.put("Exchange", envelope.getExchange()); result.put("RoutingKey", envelope.getRoutingKey()); result.put("Redeliver", envelope.isRedeliver()); return result; }
@Override public void handleDelivery(String consumerTag, Envelope envelope, BasicProperties properties, byte[] body) throws IOException { if (closed) return; long deliveryTag = envelope.getDeliveryTag(); channelHandler.maxDeliveryTag = deliveryTag = deliveryTag + channelHandler.previousMaxDeliveryTag; delegate.handleDelivery( consumerTag, new Envelope(deliveryTag, envelope.isRedeliver(), envelope.getExchange(), envelope.getRoutingKey()), properties, body); }
@Override public void handleDelivery(String consumerTag, Envelope envelope, BasicProperties properties, byte[] body) throws IOException { if (closed) return; long deliveryTag = envelope.getDeliveryTag(); channelHandler.maxDeliveryTag = deliveryTag = deliveryTag + channelHandler.previousMaxDeliveryTag; delegate.handleDelivery( consumerTag, new Envelope(deliveryTag, envelope.isRedeliver(), envelope.getExchange(), envelope.getRoutingKey()), properties, body); }
"messageHeaders", headers); unackedMessages.put(internalDeliverTag, System.currentTimeMillis()); final Envelope internalEnvelope = new Envelope(internalDeliverTag, envelope.isRedeliver(), envelope.getExchange(), envelope.getRoutingKey()); Acknowledger acknowledger = createAcknowledger(channel, internalEnvelope, headers, body); Message message = new Message(acknowledger, internalEnvelope, headers, body);
public static void populate(JsonObject json, Envelope envelope) { if (envelope == null) return; put("deliveryTag", envelope.getDeliveryTag(), json); put("isRedeliver", envelope.isRedeliver(), json); put("exchange", envelope.getExchange(), json); put("routingKey", envelope.getRoutingKey(), json); }
@Override public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException { RabbitMessage msg = RabbitMessage.newMessage().body(body) .properties(properties) .redeliver(envelope.isRedeliver()); long deliveryTag = envelope.getDeliveryTag(); _self.onRabbitReceive(msg, (Void, e) -> { if (e != null) { _channel.basicReject(deliveryTag, false); } else { _channel.basicAck(deliveryTag, false); } }); } });
message.getMessageId(), gatewayId, deliveryTag); messageContext.setUpdatedTime(AiravataUtils.getTime(message.getUpdatedTime())); messageContext.setIsRedeliver(envelope.isRedeliver()); handler.onMessage(messageContext); } else {
static RMQMessage convertJmsMessage(RMQSession session, GetResponse response, ReceivingContextConsumer receivingContextConsumer) throws JMSException { // Deserialize the message payload from the byte[] body RMQMessage message = fromMessage(response.getBody(), session.getTrustedPackages()); message.setSession(session); // Insert session in received message for Message.acknowledge message.setJMSRedelivered(response.getEnvelope().isRedeliver()); // Set the redelivered flag message.setRabbitDeliveryTag(response.getEnvelope().getDeliveryTag()); // Insert delivery tag in received message for Message.acknowledge // message.setJMSDestination(dest); // DO NOT set the destination bug#57214768 // JMSProperties already set message.setReadonly(true); // Set readOnly - mandatory for received messages maybeSetupDirectReplyTo(message, response.getProps().getReplyTo()); receivingContextConsumer.accept(new ReceivingContext(message)); return message; }
target.setReceivedExchange(envelope.getExchange()); target.setReceivedRoutingKey(envelope.getRoutingKey()); target.setRedelivered(envelope.isRedeliver()); target.setDeliveryTag(envelope.getDeliveryTag());
target.setReceivedExchange(envelope.getExchange()); target.setReceivedRoutingKey(envelope.getRoutingKey()); target.setRedelivered(envelope.isRedeliver()); target.setDeliveryTag(envelope.getDeliveryTag());
/** * Construct a new message * * @param consumerTag the <i>consumer tag</i> associated with the consumer * @param envelope packaging data for the message * @param properties content header data for the message * @param body the message body (opaque, client-specific byte array) */ RabbitMQMessageImpl(byte[] body, String consumerTag, com.rabbitmq.client.Envelope envelope, AMQP.BasicProperties properties) { this.body = Buffer.buffer(body); this.consumerTag = consumerTag; this.envelope = new EnvelopeImpl(envelope.getDeliveryTag(), envelope.isRedeliver(), envelope.getExchange(), envelope.getRoutingKey()); this.properties = new BasicPropertiesImpl( properties.getContentType(), properties.getContentEncoding(), properties.getHeaders(), properties.getDeliveryMode(), properties.getPriority(), properties.getCorrelationId(), properties.getReplyTo(), properties.getExpiration(), properties.getMessageId(), properties.getTimestamp(), properties.getType(), properties.getUserId(), properties.getAppId(), properties.getClusterId() ); }
private static RMQMessage convertAmqpMessage(RMQSession session, RMQDestination dest, GetResponse response, ReceivingContextConsumer receivingContextConsumer) throws JMSException { try { BasicProperties props = response.getProps(); RMQMessage message = RMQMessage.isAmqpTextMessage(props.getHeaders()) ? new RMQTextMessage() : new RMQBytesMessage(); message = RMQMessage.fromAmqpMessage(response.getBody(), message); // Deserialize the message payload from the byte[] body message.setSession(session); // Insert session in received message for Message.acknowledge message.setJMSRedelivered(response.getEnvelope().isRedeliver()); // Set the redelivered flag message.setRabbitDeliveryTag(response.getEnvelope().getDeliveryTag()); // Insert delivery tag in received message for Message.acknowledge message.setJMSDestination(dest); // We cannot know the original destination, so set local one message.setJMSPropertiesFromAmqpProperties(props); message.setReadonly(true); // Set readOnly - mandatory for received messages maybeSetupDirectReplyTo(message, response.getProps().getReplyTo()); receivingContextConsumer.accept(new ReceivingContext(message)); return message; } catch (IOException x) { throw new RMQJMSException(x); } }
messageContext.setIsRedeliver(envelope.isRedeliver()); handler.onMessage(messageContext); } catch (TException e) {
private DeliveredMessage(QueueingConsumer.Delivery delivery) { super(delivery.getBody()); redelivery = delivery.getEnvelope().isRedeliver(); deliveryTag = delivery.getEnvelope().getDeliveryTag(); routingKey = delivery.getEnvelope().getRoutingKey(); exchange = delivery.getEnvelope().getExchange(); className = delivery.getProperties().getClassName(); clusterId = delivery.getProperties().getClusterId(); contentEncoding = delivery.getProperties().getContentEncoding(); contentType = delivery.getProperties().getContentType(); correlationId = delivery.getProperties().getCorrelationId(); deliveryMode = delivery.getProperties().getDeliveryMode(); expiration = delivery.getProperties().getExpiration(); headers = delivery.getProperties().getHeaders(); messageId = delivery.getProperties().getMessageId(); priority = delivery.getProperties().getPriority(); replyTo = delivery.getProperties().getReplyTo(); timestamp = delivery.getProperties().getTimestamp(); type = delivery.getProperties().getType(); userId = delivery.getProperties().getUserId(); }