/** * Create a configuration instance with the provided entries. */ public Config(Collection<ConfigEntry> entries) { for (ConfigEntry entry : entries) { this.entries.put(entry.name(), entry); } }
List<AlterConfigsRequest.ConfigEntry> configEntries = new ArrayList<>(); for (ConfigEntry configEntry: configs.get(resource).entries()) configEntries.add(new AlterConfigsRequest.ConfigEntry(configEntry.name(), configEntry.value())); requestMap.put(resource, new AlterConfigsRequest.Config(configEntries)); futures.put(resource, new KafkaFutureImpl<>());
private Map<String, String> topicConfiguration(String topicName) { Map<String, String> configMap = Collections.emptyMap(); try { ConfigResource cr = new ConfigResource(ConfigResource.Type.TOPIC, topicName); DescribeConfigsResult dc = adminClient.describeConfigs(singleton(cr)); Map<ConfigResource, Config> configs = dc.all().get(); Config config = configs.get(cr); configMap = config.entries().stream().filter(x -> !x.isDefault() && !x.isReadOnly()).collect(toMap(x -> x.name(), x -> x.value())); log.debug("Existing configuration for topic {} is {}", topicName, configMap); } catch (InterruptedException | ExecutionException e) { log.warn("Exception occured during topic configuration retrieval. name: {}", topicName, e); } return configMap; }
private List<ConfigItem> describeResource(final ConfigResource configResource) { final DescribeConfigsResult result = adminClient.describeConfigs(Collections.singleton(configResource)); final List<ConfigItem> configItems = new ArrayList<>(); try { final Map<ConfigResource, Config> configMap = result.all().get(); final Config config = configMap.get(configResource); for (final ConfigEntry configEntry : config.entries()) { // Skip sensitive entries if (configEntry.isSensitive()) { continue; } configItems.add( new ConfigItem(configEntry.name(), configEntry.value(), configEntry.isDefault()) ); } return configItems; } catch (InterruptedException | ExecutionException e) { // TODO Handle this throw new RuntimeException(e.getMessage(), e); } }
/** * Create a Topic to reflect the given TopicMetadata. */ public static Topic fromTopicMetadata(TopicMetadata meta) { if (meta == null) { return null; } Topic.Builder builder = new Topic.Builder() .withTopicName(meta.getDescription().name()) .withNumPartitions(meta.getDescription().partitions().size()) .withNumReplicas((short) meta.getDescription().partitions().get(0).replicas().size()) .withMetadata(null); for (ConfigEntry entry: meta.getConfig().entries()) { if (!entry.isDefault()) { builder.withConfigEntry(entry.name(), entry.value()); } } return builder.build(); }