/** * Returns the Message payload (or null if the Message is null). */ public Object fromMessage(Message<?> message) { if (message == null || message.getPayload() == null) { return null; } return message.getPayload(); }
/** * 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; }
protected Collection<MessageChannel> determineTargetChannels(Message<?> message) { Collection<String> channelNames = channelResolver.determineTargetChannelNames( (T) message.getPayload(), message.getHeaders()); if (channelNames!=null) { if (!channelNames.isEmpty()) {
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; } }
protected boolean isOrchestrationMessage(Message<?> message) { return (message.getPayload() instanceof IOrchestrationPayload); }
public boolean isComplete(List<Message<?>> messages) { if (CollectionUtils.isEmpty(messages)) { return false; } return messages.size() != 0 && (messages.size() >= messages.get(0).getHeaders().getSequenceSize()); }
/** * Writes single element and notifies {@link IMessageRegistry} instance. * @param processId * @param message */ protected void writeSingle(final String processId, final Message<?> message) { try { if (message==null) { log.warn("nothing to write for process " + processId); return; } if (msgIdThreadLocal!=null) { msgIdThreadLocal.set( (String) message.getHeaders().get(MessageRegistryConstants.MSG_HEADER_ID)); } singleElementWriterNode.store(message.getPayload(), (ProcessContext) message.getHeaders().get( MessageRegistryConstants.MSG_HEADER_CTX)); messageRegistry.consume(processId, (String) message.getHeaders().get( MessageRegistryConstants.MSG_HEADER_ID)); } catch (final Exception e) { throw new MessageHandlingException(message, e); } }
protected boolean isOrchestrationMessage(Message<?> message) { return (message.getPayload() instanceof IOrchestrationPayload); }
/** * 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()); } }
int idx = 0; for (final Message<?> message : messages) { payloads.add(message.getPayload()); ids[idx] = (String) message.getHeaders().get( MessageRegistryConstants.MSG_HEADER_ID); idx++; (ProcessContext) messages.get(messages.size()-1).getHeaders().get( MessageRegistryConstants.MSG_HEADER_CTX):null; if (msgIdThreadLocal!=null) { msgIdThreadLocal.set( (String) currentMessage.getHeaders().get(MessageRegistryConstants.MSG_HEADER_ID));
@Override protected MessageChannel determineTargetChannel(Message<?> message) { return this.payloadTypeChannelMap.get(message.getPayload().getClass()); }
public boolean accept(Message<?> message) { Long expirationDate = message.getHeaders().getExpirationDate(); if (expirationDate == null) { return true; } return expirationDate > System.currentTimeMillis(); }
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); } }
private List<?> extractPayloadsFromMessages(List<Message<?>> messages) { List<Object> payloadList = new ArrayList<Object>(); for (Message<?> message : messages) { payloadList.add(message.getPayload()); } return payloadList; }
@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); }
return null; Assert.notNull(message.getPayload(), "Message payload must not be null."); Object[] args = new Object[this.parameterMetadata.length]; for (int i = 0; i < this.parameterMetadata.length; i++) { Header headerAnnotation = metadata.getHeaderAnnotation(); if (metadata == this.payloadParameterMetadata) { args[i] = message.getPayload(); Object value = message.getHeaders().get(headerName); if (value == null && headerAnnotation.required()) { throw new MessageHandlingException(message, "required header '" + headerName + "' not available"); args[i] = message.getHeaders();
public boolean accept(Message<?> message) { Assert.notNull(message, "'message' must not be null"); Object payload = message.getPayload(); Assert.notNull(payload, "'payload' must not be null"); for (Class<?> type : this.acceptedTypes) { if (type.isAssignableFrom(payload.getClass())) { return true; } } return false; }
/** * 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; }
/** * @param message * @throws IOException */ public Message<byte[]> doTransform(Message<BlobDetails> message) throws BlobTransformException { if (LOG.isDebugEnabled()) { LOG.debug("Transform blob to byte array: '{}'", String.valueOf(message.getPayload())); } BlobDetails payload = message.getPayload(); MessageBuilder<byte[]> builder; InputStream input = getTemplate().receiveAsInputStream(payload.getContainerName(), payload.getName()); ByteArrayOutputStream output = new ByteArrayOutputStream(); try { IOUtils.copy(input, output); } catch (IOException e) { throw new BlobTransformException("Failed to copy blob [" + payload + "] byte stream to byte array", e); } builder = (MessageBuilder<byte[]>) MessageBuilder.withPayload(output.toByteArray())// .copyHeaders(message.getHeaders()); Message<byte[]> blobMessage = builder.build(); return blobMessage; } }