GH-680 Add support for strict (or not) dependency on target-protocol header for CE
Resolves #680
This commit is contained in:
@@ -275,9 +275,13 @@ public final class CloudEventMessageUtils {
|
||||
* @return prefix (e.g., 'ce_' or 'ce-' etc.)
|
||||
*/
|
||||
static String determinePrefixToUse(Map<String, Object> messageHeaders) {
|
||||
return determinePrefixToUse(messageHeaders, false);
|
||||
}
|
||||
|
||||
static String determinePrefixToUse(Map<String, Object> messageHeaders, boolean strict) {
|
||||
String targetProtocol = (String) messageHeaders.get(MessageUtils.TARGET_PROTOCOL);
|
||||
String prefix = determinePrefixToUse(targetProtocol);
|
||||
if (StringUtils.hasText(prefix)) {
|
||||
if (StringUtils.hasText(prefix) && (strict || StringUtils.hasText((String) messageHeaders.get(prefix + _SPECVERSION)))) {
|
||||
return prefix;
|
||||
}
|
||||
else {
|
||||
@@ -294,7 +298,7 @@ public final class CloudEventMessageUtils {
|
||||
}
|
||||
}
|
||||
|
||||
return "";
|
||||
return DEFAULT_ATTR_PREFIX;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -90,7 +90,7 @@ public class CloudEventsFunctionInvocationHelper implements FunctionInvocationHe
|
||||
if (this.messageConverter != null && CLOUD_EVENT_CLASS != null && CLOUD_EVENT_CLASS.isAssignableFrom(result.getClass())) {
|
||||
convertedResult = this.messageConverter.toMessage(result, input.getHeaders());
|
||||
}
|
||||
String targetPrefix = CloudEventMessageUtils.determinePrefixToUse(input.getHeaders());
|
||||
String targetPrefix = CloudEventMessageUtils.determinePrefixToUse(input.getHeaders(), true);
|
||||
return this.doPostProcessResult(convertedResult, targetPrefix);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user