@Override protected Optional<HeaderDefinition> getSpecificDefinitionByKey(final CharSequence key) { return MessageHeaderDefinition.forKey(key); }
@Override protected void validateValueType(final CharSequence key, final CharSequence value) { super.validateValueType(key, value); MessageHeaderDefinition.forKey(key).ifPresent(definition -> { if (MANDATORY_HEADERS.contains(definition)) { final String msgTemplate = "Value for mandatory header with key <{0}> cannot be overwritten!"; throw new IllegalArgumentException(MessageFormat.format(msgTemplate, key)); } definition.validateValue(value); }); }