Hello,
I think I have found a regression.
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).
If you like I could provide a contribution for that.
Thanks,
Paolo.
On Tue, 13 Jan 2026 at 17:04, Christo Lolov <[email protected]> wrote:
> Hello Kafka users, developers and client-developers,
>
> This is the RC0 candidate for release of Apache Kafka 4.2.0.
>
> This release has many exciting changes such as Kafka Queues being
> marked as production-ready, dead letter queues in Kafka Streams, a
> preview of the new Kafka Streams rebalance protocol, improved
> consistency across Kafka CLI arguments and metrics!
>
> I will raise a PR with a new blog post to the kafka-site repository in
> the next 24 hours and share the link as a reply to this thread.
>
> Release notes for the 4.2.0 release:
> https://dist.apache.org/repos/dist/dev/kafka/4.2.0-rc0/RELEASE_NOTES.html
>
> *** Please download, test and vote by Wednesday, January 21, 10am UTC
>
> Kafka's KEYS file containing PGP keys we use to sign the release:
> https://kafka.apache.org/KEYS
>
> * Release artifacts to be voted upon (source and binary):
> https://dist.apache.org/repos/dist/dev/kafka/4.2.0-rc0/
>
> * Docker release artifacts to be voted upon:
> apache/kafka:4.2.0-rc0
> apache/kafka-native:4.2.0-rc0
>
> * Maven artifacts to be voted upon:
> https://repository.apache.org/content/groups/staging/org/apache/kafka/
>
> * Javadoc:
> https://dist.apache.org/repos/dist/dev/kafka/4.2.0-rc0/javadoc/index.html
>
> * Tag to be voted upon (off 4.2 branch) is the 4.2.0 tag:
> https://github.com/apache/kafka/releases/tag/4.2.0-rc0
>
> * Documentation:
> I will raise a PR with the changes to the kafka-site repository in the
> next 24 hours and share the link as a reply to this thread.
>
> * Protocol:
> I will raise a PR with the changes to the kafka-site repository in the
> next 24 hours and share the link as a reply to this thread.
>
> * Successful CI builds for the 4.2 branch:
> Unit/integration tests:
> https://github.com/apache/kafka/actions/runs/20953445348/job/60245258542
> System tests: My environment needs to be recreated before I can share
> results from my end, so any results shared by voters would be greatly
> appreciated!
>
> * Successful Docker Image Github Actions Pipeline for 4.2 branch:
> Docker Build Test Pipeline (JVM):
> https://github.com/apache/kafka/actions/runs/20962291986
> Docker Build Test Pipeline (Native):
> https://github.com/apache/kafka/actions/runs/20958037429
>
> Note - when I run the quickstart against the JVM Docker image I need
> to specify the process.roles. I do not seem to need to specify the
> process.roles if I run the 4.1.1 image. I will run this once again
> tomorrow in another clean environment, but if somebody else can
> confirm/deny whether they can reproduce this beforehand this would
> also be greatly appreciated!
>
> Thanks,
> Christo
>
--
Paolo Patierno
*Senior Principal Software Engineer @ IBM**CNCF Ambassador*
Twitter : @ppatierno <http://twitter.com/ppatierno>
Linkedin : paolopatierno <http://it.linkedin.com/in/paolopatierno>
GitHub : ppatierno <https://github.com/ppatierno>