Skip to content

Commit c0134dc

Browse files
committed
small refactoring
1 parent c3640a4 commit c0134dc

File tree

2 files changed

+14
-12
lines changed

2 files changed

+14
-12
lines changed

api/src/main/java/io/kafbat/ui/service/ReactiveAdminClient.java

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -118,8 +118,8 @@ public enum SupportedFeature {
118118
this.predicate = (admin, ver) -> Mono.just(ver != null && ver >= fromVersion);
119119
}
120120

121-
static Mono<Set<SupportedFeature>> forVersion(AdminClient ac, String kafkaVersionStr) {
122-
@Nullable Float kafkaVersion = KafkaVersion.parse(kafkaVersionStr).orElse(null);
121+
static Mono<Set<SupportedFeature>> forVersion(AdminClient ac, Optional<String> kafkaVersionStr) {
122+
@Nullable Float kafkaVersion = kafkaVersionStr.flatMap(KafkaVersion::parse).orElse(null);
123123
return Flux.fromArray(SupportedFeature.values())
124124
.flatMap(f -> f.predicate.apply(ac, kafkaVersion).map(enabled -> Tuples.of(f, enabled)))
125125
.filter(Tuple2::getT2)
@@ -158,22 +158,24 @@ private static Mono<ConfigRelatedInfo> extract(AdminClient ac) {
158158
.flatMap(tuple -> {
159159
List<ConfigEntry> configs = tuple.getT1();
160160
FeatureMetadata featureMetadata = tuple.getT2();
161-
String version = DEFAULT_UNKNOWN_VERSION;
161+
Optional<String> version = Optional.empty();
162162
boolean topicDeletionEnabled = true;
163163
for (ConfigEntry entry : configs) {
164164
if (entry.name().contains("inter.broker.protocol.version")) {
165-
version = entry.value();
165+
version = Optional.of(entry.value());
166166
}
167167
if (entry.name().equals("delete.topic.enable")) {
168168
topicDeletionEnabled = Boolean.parseBoolean(entry.value());
169169
}
170170
}
171-
FinalizedVersionRange metadataVersion =
172-
featureMetadata.finalizedFeatures().get("metadata.version");
173-
if (metadataVersion != null) {
174-
version = MetadataVersion.findVersion(metadataVersion.maxVersionLevel(), version);
171+
if (version.isEmpty()) {
172+
FinalizedVersionRange metadataVersion =
173+
featureMetadata.finalizedFeatures().get("metadata.version");
174+
if (metadataVersion != null) {
175+
version = MetadataVersion.findVersion(metadataVersion.maxVersionLevel());
176+
}
175177
}
176-
final String finalVersion = version;
178+
final String finalVersion = version.orElse(DEFAULT_UNKNOWN_VERSION);
177179
final boolean finalTopicDeletionEnabled = topicDeletionEnabled;
178180
return SupportedFeature.forVersion(ac, version)
179181
.map(features -> new ConfigRelatedInfo(finalVersion, features, finalTopicDeletionEnabled));

api/src/main/java/io/kafbat/ui/util/MetadataVersion.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package io.kafbat.ui.util;
22

33
import java.util.Arrays;
4+
import java.util.Optional;
45

56
public enum MetadataVersion {
67
IBP_3_0_IV1(1, "3.0-IV1"),
@@ -38,11 +39,10 @@ public enum MetadataVersion {
3839
this.release = release;
3940
}
4041

41-
public static String findVersion(int featureLevel, String defaultValue) {
42+
public static Optional<String> findVersion(int featureLevel) {
4243
return Arrays.stream(values())
4344
.filter(v -> v.featureLevel == featureLevel)
44-
.findFirst().map(v -> v.release)
45-
.orElse(defaultValue);
45+
.findFirst().map(v -> v.release);
4646
}
4747

4848
}

0 commit comments

Comments
 (0)