public static void ensureProperty(
            Map<String, ? super String> props,
            String key,
            String expectedValue,
            String justification,
            boolean caseSensitive
    ) {
        ensurePropertyAndGetWarning(props, key, expectedValue, justification, caseSensitive).ifPresent(log::warn);
    }
Ensure that the {@link Map properties} contain an expected value for the given key, inserting the
expected value into the properties if necessary.

<p>If there is a pre-existing value for the key in the properties, log a warning to the user
that this value will be ignored, and the expected value will be used instead.

@param props the configuration properties provided by the user; may not be null
@param key the name of the property to check on; may not be null
@param expectedValue the expected value for the property; may not be null
@param justification the reason the property cannot be overridden.
                     Will follow the phrase "The value... for the... property will be ignored as it cannot be overridden ".
                     For example, one might supply the message "in connectors with the DLQ feature enabled" for this parameter.
                     May be null (in which case, no justification is given to the user in the logged warning message)
@param caseSensitive whether the value should match case-insensitively
connect/runtime/src/main/java/org/apache/kafka/connect/util/ConnectUtils.java