@Override public Optional<ExternalMessage> map(final Adaptable adaptable) { final Optional<ExternalMessage> mappedOpt = delegate.map(adaptable); return mappedOpt.map(mapped -> { final ExternalMessageBuilder messageBuilder = ExternalMessageFactory.newExternalMessageBuilder(mapped); messageBuilder.asResponse(adaptable.getPayload().getStatus().isPresent()); adaptable.getHeaders() .map(h -> h.get(ExternalMessage.REPLY_TO_HEADER)) .ifPresent( replyTo -> messageBuilder.withAdditionalHeaders(ExternalMessage.REPLY_TO_HEADER, replyTo)); return messageBuilder.build(); }); }
@Override public Optional<ExternalMessage> map(final Adaptable adaptable) { final Optional<ExternalMessage> mappedOpt = delegate.map(adaptable); return mappedOpt.map(mapped -> { final ExternalMessageBuilder messageBuilder = ExternalMessageFactory.newExternalMessageBuilder(mapped); messageBuilder.asResponse(adaptable.getPayload().getStatus().isPresent()); adaptable.getHeaders() .map(h -> h.get(ExternalMessage.REPLY_TO_HEADER)) .ifPresent( replyTo -> messageBuilder.withAdditionalHeaders(ExternalMessage.REPLY_TO_HEADER, replyTo)); return messageBuilder.build(); }); }
messageBuilder.withAdditionalHeaders(DittoHeaderDefinition.CORRELATION_ID.getKey(), c)); Optional.ofNullable(originalHeaders.get(ExternalMessage.CONTENT_TYPE_HEADER)) .ifPresent(c -> messageBuilder.withAdditionalHeaders(ExternalMessage.CONTENT_TYPE_HEADER, c)); Optional.ofNullable(originalHeaders.get(ExternalMessage.REPLY_TO_HEADER)) .ifPresent(r -> messageBuilder.withAdditionalHeaders(ExternalMessage.REPLY_TO_HEADER, r)); .withAdditionalHeaders(mappedHeaders) .build(); }).orElseGet(messageBuilder::build);
messageBuilder.withAdditionalHeaders(DittoHeaderDefinition.CORRELATION_ID.getKey(), c)); Optional.ofNullable(originalHeaders.get(ExternalMessage.CONTENT_TYPE_HEADER)) .ifPresent(c -> messageBuilder.withAdditionalHeaders(ExternalMessage.CONTENT_TYPE_HEADER, c)); Optional.ofNullable(originalHeaders.get(ExternalMessage.REPLY_TO_HEADER)) .ifPresent(r -> messageBuilder.withAdditionalHeaders(ExternalMessage.REPLY_TO_HEADER, r)); .withAdditionalHeaders(mappedHeaders) .build(); }).orElseGet(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> 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<Adaptable> map(final ExternalMessage message) { final ExternalMessage enhancedMessage; final String correlationId; if (!message.getHeaders().containsKey(DittoHeaderDefinition.CORRELATION_ID.getKey())) { // if no correlation-id was provided in the ExternalMessage, generate one here: correlationId = UUID.randomUUID().toString(); enhancedMessage = ExternalMessageFactory.newExternalMessageBuilder(message) .withAdditionalHeaders(DittoHeaderDefinition.CORRELATION_ID.getKey(), correlationId) .build(); } else { correlationId = message.getHeaders().get(DittoHeaderDefinition.CORRELATION_ID.getKey()); enhancedMessage = message; } final Optional<Adaptable> mappedOpt = delegate.map(enhancedMessage); return mappedOpt.map(mapped -> { final DittoHeadersBuilder headersBuilder = DittoHeaders.newBuilder(); headersBuilder.correlationId(correlationId); Optional.ofNullable(message.getHeaders().get(ExternalMessage.REPLY_TO_HEADER)).ifPresent(replyTo -> headersBuilder.putHeader(ExternalMessage.REPLY_TO_HEADER, replyTo) ); final Optional<DittoHeaders> headersOpt = mapped.getHeaders(); headersOpt.ifPresent(headersBuilder::putHeaders); // overwrite with mapped headers (if any) return ProtocolFactory.newAdaptableBuilder(mapped) .withHeaders(headersBuilder.build()) .build(); }); }
@Override public Optional<Adaptable> map(final ExternalMessage message) { final ExternalMessage enhancedMessage; final String correlationId; if (!message.getHeaders().containsKey(DittoHeaderDefinition.CORRELATION_ID.getKey())) { // if no correlation-id was provided in the ExternalMessage, generate one here: correlationId = UUID.randomUUID().toString(); enhancedMessage = ExternalMessageFactory.newExternalMessageBuilder(message) .withAdditionalHeaders(DittoHeaderDefinition.CORRELATION_ID.getKey(), correlationId) .build(); } else { correlationId = message.getHeaders().get(DittoHeaderDefinition.CORRELATION_ID.getKey()); enhancedMessage = message; } final Optional<Adaptable> mappedOpt = delegate.map(enhancedMessage); return mappedOpt.map(mapped -> { final DittoHeadersBuilder headersBuilder = DittoHeaders.newBuilder(); headersBuilder.correlationId(correlationId); Optional.ofNullable(message.getHeaders().get(ExternalMessage.REPLY_TO_HEADER)).ifPresent(replyTo -> headersBuilder.putHeader(ExternalMessage.REPLY_TO_HEADER, replyTo) ); final Optional<DittoHeaders> headersOpt = mapped.getHeaders(); headersOpt.ifPresent(headersBuilder::putHeaders); // overwrite with mapped headers (if any) return ProtocolFactory.newAdaptableBuilder(mapped) .withHeaders(headersBuilder.build()) .build(); }); }
messageBuilder.withAdditionalHeaders(ExternalMessage.CONTENT_TYPE_HEADER, ((CharSequence) contentType).toString());
messageBuilder.withAdditionalHeaders(ExternalMessage.CONTENT_TYPE_HEADER, ((CharSequence) contentType).toString());