chia7712 commented on code in PR #19477:
URL: https://github.com/apache/kafka/pull/19477#discussion_r2047281878
##########
clients/src/main/java/org/apache/kafka/clients/admin/ListGroupsOptions.java:
##########
@@ -45,6 +57,11 @@ public ListGroupsOptions inGroupStates(Set<GroupState>
groupStates) {
return this;
}
+ public ListGroupsOptions withProtocolTypes(Set<String> protocolTypes) {
+ this.protocolTypes = (protocolTypes == null ||
protocolTypes.isEmpty()) ? Set.of() : Set.copyOf(protocolTypes);
Review Comment:
Could you please change the `Collections.emptySet()` to `Set.of` for the
line#56?
##########
clients/src/main/java/org/apache/kafka/clients/admin/Admin.java:
##########
@@ -879,20 +879,24 @@ default DescribeConsumerGroupsResult
describeConsumerGroups(Collection<String> g
/**
* List the consumer groups available in the cluster.
+ * @deprecated Since 4.1. Use {@link Admin#listGroups(ListGroupsOptions)}
instead.
*
* @param options The options to use when listing the consumer groups.
* @return The ListConsumerGroupsResult.
*/
+ @Deprecated
Review Comment:
`@Deprecated(since = "4.1", forRemoval = true)`
##########
clients/src/main/java/org/apache/kafka/clients/admin/ListGroupsOptions.java:
##########
@@ -32,8 +33,19 @@
@InterfaceStability.Evolving
public class ListGroupsOptions extends AbstractOptions<ListGroupsOptions> {
- private Set<GroupState> groupStates = Collections.emptySet();
- private Set<GroupType> types = Collections.emptySet();
+ private Set<GroupState> groupStates = Set.of();
+ private Set<GroupType> types = Set.of();
+ private Set<String> protocolTypes = Set.of();
+
+ /**
+ * Only consumer groups will be returned by listGroups().
+ * This operation sets filters on group type and protocol type which
select consumer groups.
+ */
+ public ListGroupsOptions forConsumerGroups() {
Review Comment:
This new API is not in KIP-1043, therefore its code style is probably open
for discussion :smiley:
Given that this API appears to be a helper function for creating a specific
query, perhaps we could refactor it as a static method.
```java
public static ListGroupsOptions forConsumerGroups() {
return new ListGroupsOptions()
.withTypes(Set.of(GroupType.CLASSIC, GroupType.CONSUMER))
.withProtocolTypes(Set.of("",
ConsumerProtocol.PROTOCOL_TYPE));
}
```
and then the code `new ListGroupsOptions().forConsumerGroups()` can be
replaced by `ListGroupsOptions.forConsumerGroups()`
##########
clients/src/main/java/org/apache/kafka/clients/admin/Admin.java:
##########
@@ -879,20 +879,24 @@ default DescribeConsumerGroupsResult
describeConsumerGroups(Collection<String> g
/**
* List the consumer groups available in the cluster.
+ * @deprecated Since 4.1. Use {@link Admin#listGroups(ListGroupsOptions)}
instead.
*
* @param options The options to use when listing the consumer groups.
* @return The ListConsumerGroupsResult.
*/
+ @Deprecated
ListConsumerGroupsResult listConsumerGroups(ListConsumerGroupsOptions
options);
/**
* List the consumer groups available in the cluster with the default
options.
* <p>
* This is a convenience method for {@link
#listConsumerGroups(ListConsumerGroupsOptions)} with default options.
* See the overload for more details.
+ * @deprecated Since 4.1. Use {@link Admin#listGroups(ListGroupsOptions)}
instead.
Review Comment:
`Use {@link Admin#listGroups()} instead.`
##########
clients/src/main/java/org/apache/kafka/clients/admin/Admin.java:
##########
@@ -879,20 +879,24 @@ default DescribeConsumerGroupsResult
describeConsumerGroups(Collection<String> g
/**
* List the consumer groups available in the cluster.
+ * @deprecated Since 4.1. Use {@link Admin#listGroups(ListGroupsOptions)}
instead.
*
* @param options The options to use when listing the consumer groups.
* @return The ListConsumerGroupsResult.
*/
+ @Deprecated
ListConsumerGroupsResult listConsumerGroups(ListConsumerGroupsOptions
options);
/**
* List the consumer groups available in the cluster with the default
options.
* <p>
* This is a convenience method for {@link
#listConsumerGroups(ListConsumerGroupsOptions)} with default options.
* See the overload for more details.
+ * @deprecated Since 4.1. Use {@link Admin#listGroups(ListGroupsOptions)}
instead.
*
* @return The ListConsumerGroupsResult.
*/
+ @Deprecated
Review Comment:
`@Deprecated(since = "4.1", forRemoval = true)`
##########
clients/src/main/java/org/apache/kafka/clients/admin/ListGroupsOptions.java:
##########
@@ -61,6 +78,13 @@ public Set<GroupState> groupStates() {
return groupStates;
}
+ /**
+ * Returns the list of protocol types that are requested or empty if no
protocol types have been specified.
+ */
+ public Set<String> protocolTypes() {
Review Comment:
I guess there will be a follow-up to use this field?
--
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]