Skip to content

Commit

Permalink
don't add all externalMessage headers in DittoMessageMapper
Browse files Browse the repository at this point in the history
* this must be done explicitly in header mapping of connection sources

Signed-off-by: Thomas Jaeckle <thomas.jaeckle@bosch-si.com>
  • Loading branch information
thjaeckle committed Nov 15, 2019
1 parent 83350f4 commit 7b9592d
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 16 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ public List<Adaptable> map(final ExternalMessage message) {
ProtocolFactory.jsonifiableAdaptableFromJson(JsonFactory.newObject(payload))
);

final DittoHeaders mergedHeaders = mergeHeaders(message, jsonifiableAdaptable);
final DittoHeaders mergedHeaders = jsonifiableAdaptable.getDittoHeaders();
return singletonList(
ProtocolFactory.newAdaptableBuilder(jsonifiableAdaptable).withHeaders(mergedHeaders).build());
}
Expand Down Expand Up @@ -125,17 +125,4 @@ private static Charset determineCharset(final Map<String, String> messageHeaders
return CharsetDeterminer.getInstance().apply(messageHeaders.get(ExternalMessage.CONTENT_TYPE_HEADER));
}

/**
* Merge message headers of message and adaptable. Adaptable headers do override message headers!
*
* @param message the message
* @param adaptable the adaptable
* @return the merged headers
*/
private static DittoHeaders mergeHeaders(final ExternalMessage message, final Adaptable adaptable) {
final Map<String, String> headers = new HashMap<>(message.getHeaders());
adaptable.getHeaders().ifPresent(headers::putAll);
return DittoHeaders.of(headers);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,9 @@ private static Map.Entry<ExternalMessage, List<Adaptable>> valid1() {
.build())
.build());

final ExternalMessage message = ExternalMessageFactory.newExternalMessageBuilder(headers)
// by default, the DittoMessageMapper should not automatically use all headers from the ExternalMessage
// those would have to be mapped by an explicit header mapping
final ExternalMessage message = ExternalMessageFactory.newExternalMessageBuilder(Collections.emptyMap())
.withTopicPath(adaptable.getTopicPath())
.withText(adaptable.toJsonString())
.build();
Expand All @@ -123,7 +125,6 @@ private static Map.Entry<ExternalMessage, List<Adaptable>> valid2() {

final List<Adaptable> expected = Collections.singletonList(
ProtocolFactory.newAdaptableBuilder(ProtocolFactory.jsonifiableAdaptableFromJson(json))
.withHeaders(DittoHeaders.of(headers))
.build());
final ExternalMessage message = ExternalMessageFactory.newExternalMessageBuilder(headers)
.withText(json.toString())
Expand Down

0 comments on commit 7b9592d

Please sign in to comment.