snehashisp commented on code in PR #16984: URL: https://github.com/apache/kafka/pull/16984#discussion_r1870869164
########## connect/runtime/src/main/java/org/apache/kafka/connect/runtime/isolation/Plugins.java: ########## @@ -259,48 +299,91 @@ public Set<PluginDesc<SinkConnector>> sinkConnectors() { return scanResult.sinkConnectors(); } + public Set<PluginDesc<SinkConnector>> sinkConnectors(String connectorClassOrAlias) { + return pluginsOfClass(connectorClassOrAlias, scanResult.sinkConnectors()); + } + public Set<PluginDesc<SourceConnector>> sourceConnectors() { return scanResult.sourceConnectors(); } + public Set<PluginDesc<SourceConnector>> sourceConnectors(String connectorClassOrAlias) { + return pluginsOfClass(connectorClassOrAlias, scanResult.sourceConnectors()); + } + public Set<PluginDesc<Converter>> converters() { return scanResult.converters(); } + public Set<PluginDesc<Converter>> converters(String converterClassOrAlias) { + return pluginsOfClass(converterClassOrAlias, scanResult.converters()); + } + public Set<PluginDesc<HeaderConverter>> headerConverters() { return scanResult.headerConverters(); } + public Set<PluginDesc<HeaderConverter>> headerConverters(String headerConverterClassOrAlias) { + return pluginsOfClass(headerConverterClassOrAlias, scanResult.headerConverters()); + } + public Set<PluginDesc<Transformation<?>>> transformations() { return scanResult.transformations(); } + public Set<PluginDesc<Transformation<?>>> transformations(String transformationClassOrAlias) { + return pluginsOfClass(transformationClassOrAlias, scanResult.transformations()); + } + public Set<PluginDesc<Predicate<?>>> predicates() { return scanResult.predicates(); } + public Set<PluginDesc<Predicate<?>>> predicates(String predicateClassOrAlias) { + return pluginsOfClass(predicateClassOrAlias, scanResult.predicates()); + } + public Set<PluginDesc<ConnectorClientConfigOverridePolicy>> connectorClientConfigPolicies() { return scanResult.connectorClientConfigPolicies(); } + private <T> Set<PluginDesc<T>> pluginsOfClass(String classNameOrAlias, Set<PluginDesc<T>> allPluginsOfType) { Review Comment: I thought about it initially, and while this can be done in other modules, it was simpler to add this capability here rather than having to compute it in two separate places in the AbstractHerder and Recommenders, especially because they don't have access to the alias dictionary which would require us to expose it from the Plugins module and provide appropriate logic to handle aliases. IMO the ownership of plugins description and lookups should be encapsulated within the Plugins module itself. I agree with this increasing the API footprint, but I seems like a reasonable compromise. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: jira-unsubscr...@kafka.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org