public static void toJson(PartitionInfo obj, java.util.Map<String, Object> json) { if (obj.getInSyncReplicas() != null) { JsonArray array = new JsonArray(); obj.getInSyncReplicas().forEach(item -> array.add(item.toJson())); json.put("inSyncReplicas", array); } if (obj.getLeader() != null) { json.put("leader", obj.getLeader().toJson()); } json.put("partition", obj.getPartition()); if (obj.getReplicas() != null) { JsonArray array = new JsonArray(); obj.getReplicas().forEach(item -> array.add(item.toJson())); json.put("replicas", array); } if (obj.getTopic() != null) { json.put("topic", obj.getTopic()); } } }
@Override public KafkaProducer<K, V> partitionsFor(String topic, Handler<AsyncResult<List<PartitionInfo>>> handler) { this.stream.partitionsFor(topic, done -> { if (done.succeeded()) { // TODO: use Helper class and stream approach List<PartitionInfo> partitions = new ArrayList<>(); for (org.apache.kafka.common.PartitionInfo kafkaPartitionInfo: done.result()) { PartitionInfo partitionInfo = new PartitionInfo(); partitionInfo .setInSyncReplicas( Stream.of(kafkaPartitionInfo.inSyncReplicas()).map(Helper::from).collect(Collectors.toList())) .setLeader(Helper.from(kafkaPartitionInfo.leader())) .setPartition(kafkaPartitionInfo.partition()) .setReplicas( Stream.of(kafkaPartitionInfo.replicas()).map(Helper::from).collect(Collectors.toList())) .setTopic(kafkaPartitionInfo.topic()); partitions.add(partitionInfo); } handler.handle(Future.succeededFuture(partitions)); } else { handler.handle(Future.failedFuture(done.cause())); } }); return this; }
List<PartitionInfo> availablePartitions = partitionsResult.result(); Optional<PartitionInfo> requestedPartitionInfo = availablePartitions.stream().filter(p -> p.getPartition() == this.partition).findFirst();
@Override public KafkaConsumer<K, V> partitionsFor(String topic, Handler<AsyncResult<List<PartitionInfo>>> handler) { this.stream.partitionsFor(topic, done -> { if (done.succeeded()) { // TODO: use Helper class and stream approach List<PartitionInfo> partitions = new ArrayList<>(); for (org.apache.kafka.common.PartitionInfo kafkaPartitionInfo: done.result()) { PartitionInfo partitionInfo = new PartitionInfo(); partitionInfo .setInSyncReplicas( Stream.of(kafkaPartitionInfo.inSyncReplicas()).map(Helper::from).collect(Collectors.toList())) .setLeader(Helper.from(kafkaPartitionInfo.leader())) .setPartition(kafkaPartitionInfo.partition()) .setReplicas( Stream.of(kafkaPartitionInfo.replicas()).map(Helper::from).collect(Collectors.toList())) .setTopic(kafkaPartitionInfo.topic()); partitions.add(partitionInfo); } handler.handle(Future.succeededFuture(partitions)); } else { handler.handle(Future.failedFuture(done.cause())); } }); return this; }
@Override public KafkaConsumer<K, V> listTopics(Handler<AsyncResult<Map<String,List<PartitionInfo>>>> handler) { this.stream.listTopics(done -> { if (done.succeeded()) { // TODO: use Helper class and stream approach Map<String,List<PartitionInfo>> topics = new HashMap<>(); for (Map.Entry<String,List<org.apache.kafka.common.PartitionInfo>> topicEntry: done.result().entrySet()) { List<PartitionInfo> partitions = new ArrayList<>(); for (org.apache.kafka.common.PartitionInfo kafkaPartitionInfo: topicEntry.getValue()) { PartitionInfo partitionInfo = new PartitionInfo(); partitionInfo .setInSyncReplicas( Stream.of(kafkaPartitionInfo.inSyncReplicas()).map(Helper::from).collect(Collectors.toList())) .setLeader(Helper.from(kafkaPartitionInfo.leader())) .setPartition(kafkaPartitionInfo.partition()) .setReplicas( Stream.of(kafkaPartitionInfo.replicas()).map(Helper::from).collect(Collectors.toList())) .setTopic(kafkaPartitionInfo.topic()); partitions.add(partitionInfo); } topics.put(topicEntry.getKey(), partitions); } handler.handle(Future.succeededFuture(topics)); } else { handler.handle(Future.failedFuture(done.cause())); } }); return this; }
list.add(new io.vertx.kafka.client.common.Node((JsonObject)item)); }); obj.setInSyncReplicas(list); obj.setLeader(new io.vertx.kafka.client.common.Node((JsonObject)member.getValue())); obj.setPartition(((Number)member.getValue()).intValue()); list.add(new io.vertx.kafka.client.common.Node((JsonObject)item)); }); obj.setReplicas(list); obj.setTopic((String)member.getValue());