/** * Post-process the given response message before it will be sent. * <p>The default implementation sets the response's correlation id * to the request message's correlation id, if any; otherwise to the * request message id. * @param request the original incoming JMS message * @param response the outgoing JMS message about to be sent * @throws JMSException if thrown by JMS API methods * @see javax.jms.Message#setJMSCorrelationID */ protected void postProcessResponse(Message request, Message response) throws JMSException { String correlation = request.getJMSCorrelationID(); if (correlation == null) { correlation = request.getJMSMessageID(); } response.setJMSCorrelationID(correlation); }
message.setJMSCorrelationID(jmsHeaderCorrelationID);
jmsMessage.setJMSCorrelationID((String) jmsCorrelationId);
/** * Create the invocation result response message. * <p>The default implementation creates a JMS ObjectMessage for the given * RemoteInvocationResult object. It sets the response's correlation id * to the request message's correlation id, if any; otherwise to the * request message id. * @param request the original request message * @param session the JMS session to use * @param result the invocation result * @return the message response to send * @throws javax.jms.JMSException if creating the message failed */ protected Message createResponseMessage(Message request, Session session, RemoteInvocationResult result) throws JMSException { Message response = this.messageConverter.toMessage(result, session); String correlation = request.getJMSCorrelationID(); if (correlation == null) { correlation = request.getJMSMessageID(); } response.setJMSCorrelationID(correlation); return response; }
message.setJMSTimestamp(Long.parseLong(entry.getValue())); } else if (entry.getKey().equals(JmsHeaders.CORRELATION_ID)) { message.setJMSCorrelationID(entry.getValue()); } else if (entry.getKey().equals(JmsHeaders.TYPE)) { message.setJMSType(entry.getValue());
@Test public void jmsCorrelationIdMappedToHeader() throws JMSException { String correlationId = "ABC-123"; javax.jms.Message jmsMessage = new StubTextMessage(); jmsMessage.setJMSCorrelationID(correlationId); assertInboundHeader(jmsMessage, JmsHeaders.CORRELATION_ID, correlationId); }
/** * Copies the standard JMS and user defined properties from the givem * message to the specified message * * @param fromMessage the message to take the properties from * @param toMessage the message to add the properties to * @throws JMSException */ public static void copyProperties(Message fromMessage, Message toMessage) throws JMSException { toMessage.setJMSMessageID(fromMessage.getJMSMessageID()); toMessage.setJMSCorrelationID(fromMessage.getJMSCorrelationID()); toMessage.setJMSReplyTo(transformDestination(fromMessage.getJMSReplyTo())); toMessage.setJMSDestination(transformDestination(fromMessage.getJMSDestination())); toMessage.setJMSDeliveryMode(fromMessage.getJMSDeliveryMode()); toMessage.setJMSRedelivered(fromMessage.getJMSRedelivered()); toMessage.setJMSType(fromMessage.getJMSType()); toMessage.setJMSExpiration(fromMessage.getJMSExpiration()); toMessage.setJMSPriority(fromMessage.getJMSPriority()); toMessage.setJMSTimestamp(fromMessage.getJMSTimestamp()); Enumeration propertyNames = fromMessage.getPropertyNames(); while (propertyNames.hasMoreElements()) { String name = propertyNames.nextElement().toString(); Object obj = fromMessage.getObjectProperty(name); toMessage.setObjectProperty(name, obj); } } }
private void onMessageAsync(javax.jms.Message message, String correlationId) throws Exception { SettableListenableFuture<AbstractIntegrationMessageBuilder<?>> future = this.futures.remove(correlationId); if (future != null) { message.setJMSCorrelationID(null); future.set(buildReply(message)); } else { logger.warn("Late reply for " + correlationId); } }
private void copyCorrelationIdFromRequestToReply(javax.jms.Message requestMessage, javax.jms.Message replyMessage) throws JMSException { if (this.correlationKey != null) { if (this.correlationKey.equals("JMSCorrelationID")) { replyMessage.setJMSCorrelationID(requestMessage.getJMSCorrelationID()); } else { String value = requestMessage.getStringProperty(this.correlationKey); if (value != null) { replyMessage.setStringProperty(this.correlationKey, value); } else if (this.logger.isWarnEnabled()) { this.logger.warn("No property value available on request Message for correlationKey '" + this.correlationKey + "'"); } } } else if (replyMessage.getJMSCorrelationID() == null) { replyMessage.setJMSCorrelationID(requestMessage.getJMSMessageID()); } }
String correlation = UUID.randomUUID().toString().replaceAll("'", "''"); if (this.correlationKey.equals("JMSCorrelationID")) { jmsRequest.setJMSCorrelationID(correlation); messageSelector = "JMSCorrelationID = '" + correlation + "'"; jmsRequest.setJMSCorrelationID(null); messageSelector = this.correlationKey + " = '" + correlation + "'";
correlation = this.gatewayCorrelation + "_" + Long.toString(this.correlationId.incrementAndGet()); if (this.correlationKey.equals("JMSCorrelationID")) { jmsRequest.setJMSCorrelationID(correlation); jmsRequest.setJMSCorrelationID(null);
jmsMessage.setJMSCorrelationID((String) jmsCorrelationId);
jmsRequest.setJMSCorrelationID(null); reply = doSendAndReceiveAsyncDefaultCorrelation(destination, jmsRequest, session, priority); ((javax.jms.Message) reply).setJMSCorrelationID(null);
@Test public void testJmsCorrelationIdMappedToHeader() throws JMSException { String correlationId = "ABC-123"; javax.jms.Message jmsMessage = new StubTextMessage(); jmsMessage.setJMSCorrelationID(correlationId); DefaultJmsHeaderMapper mapper = new DefaultJmsHeaderMapper(); Map<String, Object> headers = mapper.toHeaders(jmsMessage); Object attrib = headers.get(JmsHeaders.CORRELATION_ID); assertNotNull(attrib); assertSame(correlationId, attrib); }
final javax.jms.Message jmsReply = request; template.send(request.getJMSReplyTo(), session -> { jmsReply.setJMSCorrelationID(jmsReply.getJMSMessageID()); return jmsReply; });
final javax.jms.Message jmsReply = request; template.send(request.getJMSReplyTo(), (MessageCreator) session -> { jmsReply.setJMSCorrelationID(jmsReply.getJMSMessageID()); return jmsReply; });
final javax.jms.Message jmsReply = request; template.send(request.getJMSReplyTo(), session -> { jmsReply.setJMSCorrelationID(jmsReply.getJMSMessageID()); return jmsReply; });
public void ConvertSend() { Map map = new HashMap(); map.put("Name", "Vimal"); map.put("Age", new Integer(45)); jmsTemplate.convertAndSend("jmsQueue", map, new MessagePostProcessor() { public Message postProcessMessage(Message message) throws JMSException { message.setIntProperty("ID", 9999); message.setJMSCorrelationID("123-99999"); return message; } }); }
@Override public Message createMessage(Session session) throws JMSException { Message mes = session.createMessage(); mes.setJMSCorrelationID(message.getJMSCorrelationID()); mes.setStringProperty("message", "dealSuccess!"); return mes; } });
public void testJMSSelectors(ConnectionSupplier producerConnectionSupplier, ConnectionSupplier consumerConnectionSupplier) throws Exception { testJMSSelector(producerConnectionSupplier, consumerConnectionSupplier, NORMAL_QUEUE_NAME, message -> message.setStringProperty("color", "blue"), "color = 'blue'"); testJMSSelector(producerConnectionSupplier, consumerConnectionSupplier, NORMAL_QUEUE_NAME, message -> message.setJMSCorrelationID("correlation"), "JMSCorrelationID = 'correlation'"); testJMSSelector(producerConnectionSupplier, consumerConnectionSupplier, NORMAL_QUEUE_NAME, null, "JMSPriority = 1", Message.DEFAULT_DELIVERY_MODE, 1, Message.DEFAULT_TIME_TO_LIVE); testJMSSelector(producerConnectionSupplier, consumerConnectionSupplier, NORMAL_QUEUE_NAME, message -> message.setStringProperty("JMSXGroupID", "groupA"), "JMSXGroupID = 'groupA'"); }