Parameters are arriving to source/sink lowercase.
maxOffsetsPerTrigger
parameter as an example:
KafkaSourceProvider
uses caseInsensitiveParams which converts keys to lowercaseKafkaMicroBatchStream
usesCaseInsensitiveStringMap
where get operation uses lowercase conversionKafkaSource
usesCaseInsensitiveMap
where get operation uses lowercase conversion
In the last case CaseInsensitiveMap
extends Map
and as said it provides lowercase key lookup but in the interface only Map
is passed which doesn't enforce this implementation detail.
The possible future problem is that there are code parts which are depending on this implementation detail. An example for this is groupidprefix
(there are others so don't want to finger-point). If the implementation behind the scenes change all such code parts will break.
The final statement it works but brittle.