[ https://issues.apache.org/jira/browse/KAFKA-15203?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17849814#comment-17849814 ]
Ganesh Sadanala edited comment on KAFKA-15203 at 5/28/24 12:20 AM: ------------------------------------------------------------------- [~chia7712] There are 2 ways to invoke the Kafka Connect Plugin discovery. 1. The first is the core application flow(Plugins.initLoaders(...) which is used by Worker.startConnector(...)). I see that initLoaders is still using `ReflectionScanner` along with `ServiceLoader` to load plugins. The use case is to completely transition this to `ServiceLoader`. [~gharris1727] Is `ReflectionScanner` still needed here? 2. The terminal invoking tool/script `connect-plugin-path.sh` which uses the `org.apache.kafka.tools.ConnectPluginPath` to make use of both the Reflections and ServiceLoader mechanism to load the plugins. Since this a manual invoke (which I assume), there is no harm in using the Reflections for loading other plugins which are not required for the connect and/or not having the manifest files. I think this is the reason why [~gharris1727] said about it in the first comment: "The long term plan will be to make the reflections library less necessary via KAFKA-14627, and then the usage of reflections can be limited to the connect-plugin-path.sh script. We have not yet decided on a deprecation schedule and corresponding sunset date on the usage of this library." I am still going through the codebase to see if any modifications are needed. was (Author: JIRAUSER305566): [~chia7712] There are 2 ways to invoke the Kafka Connect Plugin discovery. 1. The first is the core application flow(Plugins.initLoaders(...) which is used by Worker.startConnector(...)). I see that initLoaders is still using `ReflectionScanner` along with `ServiceLoader` to load plugins. 2. The terminal invoking tool/script `connect-plugin-path.sh` which uses the `org.apache.kafka.tools.ConnectPluginPath` to make use of both the Reflections and ServiceLoader mechanism to load the plugins. Since this a manual invoke (which I assume), there is no harm in using the Reflections for loading other plugins which are not required for the connect and/or not having the manifest files. I think this is the reason why [~gharris1727] said about it in the first comment: "The long term plan will be to make the reflections library less necessary via KAFKA-14627, and then the usage of reflections can be limited to the connect-plugin-path.sh script. We have not yet decided on a deprecation schedule and corresponding sunset date on the usage of this library." I am still going through the codebase to see if any modifications are needed. > Remove dependency on Reflections > --------------------------------- > > Key: KAFKA-15203 > URL: https://issues.apache.org/jira/browse/KAFKA-15203 > Project: Kafka > Issue Type: Bug > Components: connect > Reporter: Divij Vaidya > Assignee: Ganesh Sadanala > Priority: Major > Labels: newbie > Fix For: 5.0.0 > > > We currently depend on reflections library which is EOL. Quoting from the > GitHub site: > _> Please note: Reflections library is currently NOT under active development > or maintenance_ > > This poses a supply chain risk for our project where the security fixes and > other major bugs in underlying dependency may not be addressed timely. > Hence, we should plan to remove this dependency. -- This message was sent by Atlassian Jira (v8.20.10#820010)