/** * Extracts message identifier. * @param message * @return message identifier */ public static String extractMessageId(Message<?> message) { return (message!=null&&message.getHeaders()!=null)? (String)message.getHeaders().get(MessageRegistryConstants.MSG_HEADER_ID):null; }
public boolean isComplete(List<Message<?>> messages) { if (CollectionUtils.isEmpty(messages)) { return false; } return messages.size() != 0 && (messages.size() >= messages.get(0).getHeaders().getSequenceSize()); }
/** * Private constructor to be invoked from the static factory methods only. */ private MessageBuilder(T payload, Message<T> originalMessage) { Assert.notNull(payload, "payload must not be null"); this.payload = payload; this.originalMessage = originalMessage; if (originalMessage != null) { this.copyHeaders(originalMessage.getHeaders()); } }
public boolean accept(Message<?> message) { Long expirationDate = message.getHeaders().getExpirationDate(); if (expirationDate == null) { return true; } return expirationDate > System.currentTimeMillis(); }
@Override protected List<Object> getChannelIndicatorList(Message<?> message) { Object value = message.getHeaders().get(this.headerName); if (value instanceof String && ((String) value).indexOf(',') != -1) { value = StringUtils.tokenizeToStringArray((String) value, ",", true, true); } return Collections.singletonList(value); }
/** * Extracts process identifier. * @param message * @return process identifier */ public static String extractProcessId(Message<?> message) { return (message!=null&&message.getHeaders()!=null)? ((ProcessContext) message.getHeaders().get(MessageRegistryConstants.MSG_HEADER_CTX)).getProcessId():null; }
protected final MessageChannel resolveReplyChannelFromMessage(Message<?> message) { Object replyChannel = message.getHeaders().getReplyChannel(); if (replyChannel != null) { if (replyChannel instanceof MessageChannel) { return (MessageChannel) replyChannel; } if (logger.isWarnEnabled()) { logger.warn("Aggregator can only reply to a 'replyChannel' of type MessageChannel."); } } return null; }
public int compare(Message<?> message1, Message<?> message2) { Integer s1 = message1.getHeaders().getSequenceNumber(); Integer s2 = message2.getHeaders().getSequenceNumber(); if (s1 == null) { s1 = 0; } if (s2 == null) { s2 = 0; } return s1.compareTo(s2); }
/** * Private constructor to be invoked from the static factory methods only. */ private RelaxedMessageBuilder(T payload, Message<T> originalMessage) { Assert.notNull(payload, "payload must not be null"); this.payload = payload; this.originalMessage = originalMessage; if (originalMessage != null) { this.copyHeaders(originalMessage.getHeaders()); } }
public Object getCorrelationKey(Message<?> message) { return message.getHeaders().get(this.attributeName); }
public Integer getSequenceIndex(){ return (Integer)message.getHeaders().get(MessageRegistryConstants.MSG_HEADER_SEQ_IDX); }
private Properties getStringTypedHeaders(Message<?> message) { Properties properties = new Properties(); MessageHeaders headers = message.getHeaders(); for (String key : headers.keySet()) { Object value = headers.get(key); if (value instanceof String) { properties.setProperty(key, (String) value); } } return properties; }
public int compare(Message<?> message1, Message<?> message2) { MessagePriority priority1 = message1.getHeaders().getPriority(); MessagePriority priority2 = message2.getHeaders().getPriority(); priority1 = priority1 != null ? priority1 : MessagePriority.NORMAL; priority2 = priority2 != null ? priority2 : MessagePriority.NORMAL; return priority1.compareTo(priority2); } }
/** * Extracts process id. * @param message * @return process id */ protected String extractProcessId(final Message<?> message) { return ((ProcessContext) message.getHeaders().get( MessageRegistryConstants.MSG_HEADER_CTX)).getProcessId(); }
private boolean hasReceivedAllMessages(MessageBarrier<SortedSet<Message<?>>> barrier) { if(barrier.getMessages().isEmpty()) { return false; } int sequenceSize = barrier.getMessages().first().getHeaders().getSequenceSize(); int messagesCurrentlyInBarrier = barrier.getMessages().size(); Integer lastReleasedSequenceNumber = barrier.getAttribute(LAST_RELEASED_SEQUENCE_NUMBER); return (lastReleasedSequenceNumber + messagesCurrentlyInBarrier == sequenceSize); }
@Override protected void processBarrier(MessageBarrier<SortedSet<Message<?>>> barrier) { if (hasReceivedAllMessages(barrier)) { barrier.setComplete(); } List<Message<?>> releasedMessages = releaseAvailableMessages(barrier); if (!CollectionUtils.isEmpty(releasedMessages)) { Message<?> lastMessage = releasedMessages.get(releasedMessages.size()-1); if (lastMessage.getHeaders().getSequenceNumber().equals(lastMessage.getHeaders().getSequenceSize())) { this.removeBarrier(barrier.getCorrelationKey()); } this.sendReplies(releasedMessages, this.resolveReplyChannelFromMessage(releasedMessages.get(0))); } }
@Override protected void handleRequestMessage(Message<?> requestMessage, ReplyMessageHolder replyMessageHolder) { if (requestMessage.getHeaders().getReplyChannel() == null) { this.verifyOutputChannel(); } replyMessageHolder.set(requestMessage); }
public final Message<?> transform(Message<?> message) { try { Map<String, Object> headerMap = new HashMap<String, Object>(message.getHeaders()); this.transformHeaders(headerMap); return MessageBuilder.withPayload(message.getPayload()).copyHeaders(headerMap).build(); } catch (Exception e) { throw new MessagingException(message, "failed to transform message headers", e); } }
/** * @param message */ protected Message<String> doTransform(Message<BlobDetails> message) throws BlobTransformException { if (LOG.isDebugEnabled()) { LOG.debug("Transform blob to string: '{}'", String.valueOf(message.getPayload())); } BlobDetails payload = message.getPayload(); String blobAsString = getTemplate().receiveAsString(payload.getContainerName(), payload.getName()); MessageBuilder<String> builder = (MessageBuilder<String>) MessageBuilder.withPayload(blobAsString)// .copyHeaders(message.getHeaders()); Message<String> blobMessage = builder.build(); return blobMessage; } }
public final Message<?> transform(Message<?> message) { try { @SuppressWarnings("unchecked") U result = this.transformPayload((T) message.getPayload()); return MessageBuilder.withPayload(result).copyHeaders(message.getHeaders()).build(); } catch (MessageTransformationException e) { throw e; } catch (Exception e) { throw new MessageTransformationException(message, "failed to transform message payload", e); } }