class KafkaAdminClient implements Closeable {

    public Collection<AdminClient.ConsumerSummary> getConsumerGroupSummaries(String consumerGroup) {
        if (StringUtils.isBlank(consumerGroup))
            throw new IllegalArgumentException("consumerGroup cannot be null, empty or blank");

        AdminClient.ConsumerGroupSummary summary;

        try {
            // this will throw IAE if the consumer group is dead/empty
            summary = getAdminClient().describeConsumerGroup(consumerGroup, operationTimeout);
        } catch (IllegalArgumentException e) {
            LOG.debug("Error while attempting to describe consumer group {}", consumerGroup, e);
            return Collections.emptyList();
        } catch (KafkaException e) {
            throw new AdminOperationException("Unable to retrieve summaries for consumer group: " + consumerGroup, e);
        }

        return Collections.unmodifiableCollection(convertToJavaSet(summary.consumers().get().iterator()));
    }

    public  KafkaAdminClient(Properties properties);

}