@@ -753,11 +753,6 @@ public class SimpleFunctionRegistry implements FunctionRegistry {
|
|||||||
if (functionInvocationHelper != null && CloudEventMessageUtils.isCloudEvent(((Message) input))) {
|
if (functionInvocationHelper != null && CloudEventMessageUtils.isCloudEvent(((Message) input))) {
|
||||||
result = functionInvocationHelper.postProcessResult(result, (Message) input);
|
result = functionInvocationHelper.postProcessResult(result, (Message) input);
|
||||||
}
|
}
|
||||||
else {
|
|
||||||
Map<String, Object> headersMap = new HashMap<>(((Message) result).getHeaders());
|
|
||||||
this.sanitizeHeaders(((Message) input).getHeaders()).forEach((k, v) -> headersMap.putIfAbsent(k, v));
|
|
||||||
result = MessageBuilder.withPayload(((Message) result).getPayload()).copyHeaders(headersMap).build();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if (functionInvocationHelper != null && CloudEventMessageUtils.isCloudEvent(((Message) input))) {
|
if (functionInvocationHelper != null && CloudEventMessageUtils.isCloudEvent(((Message) input))) {
|
||||||
|
|||||||
@@ -156,6 +156,17 @@ public class BeanFactoryAwareFunctionRegistryTests {
|
|||||||
assertThat(c.size()).isEqualTo(2);
|
assertThat(c.size()).isEqualTo(2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testReturnedMessageIsUnmodified() throws Exception {
|
||||||
|
FunctionCatalog catalog = this.configureCatalog();
|
||||||
|
Function<Message<String>, Message<byte[]>> function = catalog.lookup("uppercaseMessage", "application/json");
|
||||||
|
assertThat(function).isNotNull();
|
||||||
|
|
||||||
|
Message<byte[]> result = function.apply(MessageBuilder.withPayload("bob").setHeader("foo", "foo").build());
|
||||||
|
assertThat(result.getHeaders().containsKey("foo")).isFalse();
|
||||||
|
assertThat(result.getHeaders().containsKey("bar")).isTrue();
|
||||||
|
}
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
@Test
|
@Test
|
||||||
public void testDefaultLookup() throws Exception {
|
public void testDefaultLookup() throws Exception {
|
||||||
@@ -1078,6 +1089,15 @@ public class BeanFactoryAwareFunctionRegistryTests {
|
|||||||
return v -> v.toUpperCase();
|
return v -> v.toUpperCase();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public Function<Message<String>, Message<String>> uppercaseMessage() {
|
||||||
|
return message -> {
|
||||||
|
Message<String> result = MessageBuilder.fromMessage(message)
|
||||||
|
.removeHeader("foo").setHeader("bar", "bar").build();
|
||||||
|
return result;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
public Function<String, Void> consumerFunction() {
|
public Function<String, Void> consumerFunction() {
|
||||||
return v -> {
|
return v -> {
|
||||||
|
|||||||
Reference in New Issue
Block a user