io.streamnative.kafka.client.three.zero.Admin300Impl Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of kafka-3-0 Show documentation
Show all versions of kafka-3-0 Show documentation
The Kafka client wrapper for 3.0.x
/**
* Copyright (c) 2019 - 2024 StreamNative, Inc.. All Rights Reserved.
*/
/**
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package io.streamnative.kafka.client.three.zero;
import io.streamnative.kafka.client.api.GroupOffsetsInfo;
import io.streamnative.kafka.client.api.KafkaAdmin;
import java.util.Collections;
import java.util.List;
import org.apache.kafka.clients.admin.AdminClient;
import org.apache.kafka.clients.admin.AdminClientConfig;
public class Admin300Impl implements KafkaAdmin {
private final AdminClient admin;
public Admin300Impl(final String bootstrapServers) {
this.admin = AdminClient.create(Collections.singletonMap(
AdminClientConfig.BOOTSTRAP_SERVERS_CONFIG, bootstrapServers));
}
@Override
public void close() {
admin.close();
}
@Override
public List listConsumerGroupOffsets(String group) throws Exception {
return admin.listConsumerGroupOffsets(group).partitionsToOffsetAndMetadata().get().entrySet().stream()
.map(e -> new GroupOffsetsInfo(e.getKey().topic(), e.getKey().partition(), e.getValue().offset()))
.toList();
}
}