private void extractPayloadFromMessage(final JmsMessage message, final ExternalMessageBuilder builder) throws JMSException { if (message instanceof TextMessage) { final String payload = ((TextMessage) message).getText(); builder.withText(payload); } else if (message instanceof BytesMessage) { final BytesMessage bytesMessage = (BytesMessage) message; final long bodyLength = bytesMessage.getBodyLength(); if (bodyLength >= Integer.MIN_VALUE && bodyLength <= Integer.MAX_VALUE) { final int length = (int) bodyLength; final ByteBuffer byteBuffer = ByteBuffer.allocate(length); bytesMessage.readBytes(byteBuffer.array()); builder.withBytes(byteBuffer); } else { throw new IllegalArgumentException("Message too large..."); } } else { final Destination destination = message.getJMSDestination(); final Map<String, String> headersMapFromJmsMessage = extractHeadersMapFromJmsMessage(message); log.debug("Received message at '{}' of unsupported type ({}) with headers: {}", destination, message.getClass().getName(), headersMapFromJmsMessage); } }
private void extractPayloadFromMessage(final JmsMessage message, final ExternalMessageBuilder builder) throws JMSException { if (message instanceof TextMessage) { final String payload = ((TextMessage) message).getText(); builder.withText(payload); } else if (message instanceof BytesMessage) { final BytesMessage bytesMessage = (BytesMessage) message; final long bodyLength = bytesMessage.getBodyLength(); if (bodyLength >= Integer.MIN_VALUE && bodyLength <= Integer.MAX_VALUE) { final int length = (int) bodyLength; final ByteBuffer byteBuffer = ByteBuffer.allocate(length); bytesMessage.readBytes(byteBuffer.array()); builder.withBytes(byteBuffer); } else { throw new IllegalArgumentException("Message too large..."); } } else { final Destination destination = message.getJMSDestination(); final Map<String, String> headersMapFromJmsMessage = extractHeadersMapFromJmsMessage(message); log.debug("Received message at '{}' of unsupported type ({}) with headers: {}", destination, message.getClass().getName(), headersMapFromJmsMessage); } }
@Override public Optional<ExternalMessage> apply(final Adaptable adaptable) { final JsonifiableAdaptable jsonifiableAdaptable = ProtocolFactory.wrapAsJsonifiableAdaptable(adaptable); final ExternalMessageBuilder messageBuilder = ExternalMessageFactory.newExternalMessageBuilder( adaptable.getHeaders().orElseGet(adaptable::getDittoHeaders)) .withTopicPath(adaptable.getTopicPath()); messageBuilder.withAdditionalHeaders(ExternalMessage.CONTENT_TYPE_HEADER, DittoConstants.DITTO_PROTOCOL_CONTENT_TYPE); messageBuilder.withText(jsonifiableAdaptable.toJsonString()); return Optional.of(messageBuilder.build()); }
@Override public Optional<ExternalMessage> apply(final Adaptable adaptable) { final JsonifiableAdaptable jsonifiableAdaptable = ProtocolFactory.wrapAsJsonifiableAdaptable(adaptable); final ExternalMessageBuilder messageBuilder = ExternalMessageFactory.newExternalMessageBuilder( adaptable.getHeaders().orElseGet(adaptable::getDittoHeaders)) .withTopicPath(adaptable.getTopicPath()); messageBuilder.withAdditionalHeaders(ExternalMessage.CONTENT_TYPE_HEADER, DittoConstants.DITTO_PROTOCOL_CONTENT_TYPE); messageBuilder.withText(jsonifiableAdaptable.toJsonString()); return Optional.of(messageBuilder.build()); }
@Override public Optional<ExternalMessage> map(final Adaptable adaptable) { final Map<String, String> headers = new LinkedHashMap<>(adaptable.getHeaders().orElse(DittoHeaders.empty())); final String jsonString = ProtocolFactory.wrapAsJsonifiableAdaptable(adaptable).toJsonString(); final boolean isError = TopicPath.Criterion.ERRORS.equals(adaptable.getTopicPath().getCriterion()); final boolean isResponse = adaptable.getPayload().getStatus().isPresent(); return Optional.of( ExternalMessageFactory.newExternalMessageBuilder(headers) .withTopicPath(adaptable.getTopicPath()) .withText(jsonString) .asResponse(isResponse) .asError(isError) .build()); }
@Override public Optional<ExternalMessage> map(final Adaptable adaptable) { final Map<String, String> headers = new LinkedHashMap<>(adaptable.getHeaders().orElse(DittoHeaders.empty())); final String jsonString = ProtocolFactory.wrapAsJsonifiableAdaptable(adaptable).toJsonString(); final boolean isError = TopicPath.Criterion.ERRORS.equals(adaptable.getTopicPath().getCriterion()); final boolean isResponse = adaptable.getPayload().getStatus().isPresent(); return Optional.of( ExternalMessageFactory.newExternalMessageBuilder(headers) .withTopicPath(adaptable.getTopicPath()) .withText(jsonString) .asResponse(isResponse) .asError(isError) .build()); }
messageBuilder.withBytes(byteBuffer.get()); } else if (!(textPayload instanceof Undefined)) { messageBuilder.withText(((CharSequence) textPayload).toString()); } else { throw MessageMappingFailedException.newBuilder("")
messageBuilder.withBytes(byteBuffer.get()); } else if (!(textPayload instanceof Undefined)) { messageBuilder.withText(((CharSequence) textPayload).toString()); } else { throw MessageMappingFailedException.newBuilder("")
if (shouldBeInterpretedAsText(contentType)) { final String text = new String(body, MessageMappers.determineCharset(contentType)); externalMessageBuilder.withText(text); } else { externalMessageBuilder.withBytes(body);
if (shouldBeInterpretedAsText(contentType)) { final String text = new String(body, MessageMappers.determineCharset(contentType)); externalMessageBuilder.withText(text); } else { externalMessageBuilder.withBytes(body);