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: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]