@Override public String getTo() { MessageMetaData_1_0.MessageHeader_1_0 messageHeader = getMessageHeader(); return messageHeader.getTo(); }
@Override public ServerMessage<MessageMetaData_1_0> createMessage(StoredMessage<MessageMetaData_1_0> msg) { return new Message_1_0(msg); }
@Override public boolean isResourceAcceptable(final TransactionLogResource resource) { return getMessageHeader().getNotValidBefore() == 0L || resourceSupportsDeliveryDelay(resource); }
try QpidByteBuffer bodyContent = message.getContent(); HeaderSection headerSection = message.getHeaderSection(); long timeSpentOnBroker = System.currentTimeMillis() - message.getArrivalTime(); final long adjustedTtl = Math.max(0L, ttl.longValue() - timeSpentOnBroker); header.setTtl(UnsignedInteger.valueOf(adjustedTtl)); if((section = message.getDeliveryAnnotationsSection()) != null) if((section = message.getMessageAnnotationsSection()) != null) if((section = message.getPropertiesSection()) != null) if((section = message.getApplicationPropertiesSection()) != null) if((section = message.getFooterSection()) != null) getSession().getAMQPConnection().registerMessageDelivered(message.getSize()); getEndpoint().transfer(transfer, false);
MessageProperties messageProps = new MessageProperties(); final MessageMetaData_1_0.MessageHeader_1_0 origHeader = serverMsg.getMessageHeader(); deliveryProps.setDeliveryMode(serverMsg.isPersistent() ? MessageDeliveryMode.PERSISTENT : MessageDeliveryMode.NON_PERSISTENT); deliveryProps.setExpiration(serverMsg.getExpiration()); deliveryProps.setPriority(MessageDeliveryPriority.get(origHeader.getPriority())); final long arrivalTime = serverMsg.getArrivalTime(); if (creationTime != null)
final MessageMetaData_1_0.MessageHeader_1_0 header = serverMsg.getMessageHeader(); final BasicContentHeaderProperties props = new BasicContentHeaderProperties(); props.setAppId(serverMsg.getMessageHeader().getAppId()); props.setContentType(bodyMimeType); props.setEncoding(convertToShortStringForProperty("content-encoding", serverMsg.getMessageHeader().getEncoding())); props.setCorrelationId(getCorrelationIdAsShortString(serverMsg)); props.setDeliveryMode(serverMsg.isPersistent() ? BasicContentHeaderProperties.PERSISTENT : BasicContentHeaderProperties.NON_PERSISTENT); if (ttl != null) props.setExpiration(ttl + serverMsg.getArrivalTime()); props.setPriority(serverMsg.getMessageHeader().getPriority()); props.setReplyTo(getReplyTo(serverMsg, addressSpace)); Date timestamp = getCreationTime(serverMsg); props.setTimestamp(serverMsg.getArrivalTime()); for (String headerName : serverMsg.getMessageHeader().getHeaderNames()) headerProps.put(headerName, convertValue(serverMsg.getMessageHeader().getHeader(headerName))); return new MessageMetaData(publishInfo, chb, serverMsg.getArrivalTime());
private AMQMessageHeader convertHeader(final Message_1_0 serverMessage, final NamedAddressSpace addressSpace, final Object convertedBodyObject) { final String convertedMimeType = getInternalConvertedMimeType(serverMessage, convertedBodyObject); final MessageMetaData_1_0.MessageHeader_1_0 messageHeader = serverMessage.getMessageHeader(); return new InternalMessageHeader(messageHeader.getHeadersAsMap(), messageHeader.getCorrelationId(), messageHeader.getExpiration(), messageHeader.getUserId(), messageHeader.getAppId(), messageHeader.getMessageId(), convertedMimeType, messageHeader.getEncoding(), messageHeader.getPriority(), messageHeader.getTimestamp(), messageHeader.getNotValidBefore(), messageHeader.getType(), messageHeader.getReplyTo(), serverMessage.getArrivalTime()); }
try try (QpidByteBuffer allData = serverMessage.getContent())
private Map<String, Object> getApplicationHeaders(final Message_1_0 serverMsg) final MessageMetaData_1_0.MessageHeader_1_0 origHeader = serverMsg.getMessageHeader(); final Map<String, Object> applicationProperties = serverMsg.getMessageHeader().getHeadersAsMap(); for(String key: applicationProperties.keySet())
@Override public final Message_1_0 convert(M message, NamedAddressSpace addressSpace) { SectionEncoder sectionEncoder = new SectionEncoderImpl(_typeRegistry); return new Message_1_0(convertToStoredMessage(message, sectionEncoder)); }
private AMQShortString getReplyTo(final Message_1_0 serverMsg, final NamedAddressSpace addressSpace) final String replyTo = serverMsg.getMessageHeader().getReplyTo();
@Override public Message_1_0 createMessage(final QpidByteBuffer payload, final MessageStore store, final Object connectionReference) { List<EncodingRetainingSection<?>> dataSections = new ArrayList<>(); List<EncodingRetainingSection<?>> allSections; try { allSections = getSectionDecoder().parseAll(payload); } catch (AmqpErrorException e) { throw new AmqpErrorRuntimeException(e); } MessageMetaData_1_0 mmd = createMessageMetaData(allSections, dataSections); MessageHandle<MessageMetaData_1_0> handle = store.addMessage(mmd); for (EncodingRetainingSection<?> dataSection : dataSections) { try (QpidByteBuffer encodedForm = dataSection.getEncodedForm()) { handle.addContent(encodedForm); } dataSection.dispose(); } final StoredMessage<MessageMetaData_1_0> storedMessage = handle.allContentAdded(); return new Message_1_0(storedMessage, connectionReference); }
@Override public String getInitialRoutingAddress() { MessageMetaData_1_0.MessageHeader_1_0 messageHeader = getMessageHeader(); final String routingAddress; if (messageHeader.getHeader("routing-key") instanceof String) { routingAddress = (String) messageHeader.getHeader("routing-key"); } else if (messageHeader.getHeader("routing_key") instanceof String) { routingAddress = (String) messageHeader.getHeader("routing_key"); } else if (messageHeader.getSubject() != null) { routingAddress = messageHeader.getSubject(); } else { routingAddress = ""; } return routingAddress; }