Paolo Patierno created KAFKA-20076:
--------------------------------------
Summary: Wrong (uppercase) PluginType JSON serialization
Key: KAFKA-20076
URL: https://issues.apache.org/jira/browse/KAFKA-20076
Project: Kafka
Issue Type: Bug
Reporter: Paolo Patierno
Assignee: Paolo Patierno
On trunk and current Kafka 4.2.0 RC0, when running Kafka Connect and submitting
an HTTP GET request to the /connector-plugins endpoint, the JSON serialized
"type" filed in the body response is now uppercase instead of being lowercase
as in the past.
Following a comparison between Apache Kafka 4.1 ...
[{"class":"org.apache.kafka.connect.mirror.MirrorCheckpointConnector","type":"source","version":"4.1.1"},{"class":"org.apache.kafka.connect.mirror.MirrorHeartbeatConnector","type":"source","version":"4.1.1"},{"class":"org.apache.kafka.connect.mirror.MirrorSourceConnector","type":"source","version":"4.1.1"}]
... and the current Apache Kafka 4.2 RC0
[{"class":"org.apache.kafka.connect.mirror.MirrorCheckpointConnector","type":"SOURCE","version":"4.2.0"},{"class":"org.apache.kafka.connect.mirror.MirrorHeartbeatConnector","type":"SOURCE","version":"4.2.0"},{"class":"org.apache.kafka.connect.mirror.MirrorSourceConnector","type":"SOURCE","version":"4.2.0"}]
As you can see it's "source" vs "SOURCE". I had same result with "sink" vs
"SINK".
I think this is due to the last change from converting the PluginInfo from
being a class to a record which had an impact together with the JSON
serialization.
When it was a class, a dedicated type.toString() was used which explicitly does
a lower case transformation.
As a record, the "type" field is directly serialized by JSON by using the enum
values from PluginType which are all uppercase of course.
It means that this issue affects all the other values as well the way they are
serialized (not just SINK, SOURCE but also CONVERTER, TRANSFORMATION, and so
on).
--
This message was sent by Atlassian Jira
(v8.20.10#820010)