Skip to content

Commit dda5e56

Browse files
committed
feat(extensions): add Title, Description, and configProperties to all extensions
Add Title and Description annotations to ~50 extension classes across all providers (kafka, kafka-connect, schema-registry, aiven, aws, core) so that the redesigned api-extensions list command can display meaningful titles. Add configProperties() overrides to LocalResourceRepository and GitHubResourceRepository so their configuration is discoverable via the API. Add title truncation (30 chars) to the CLI table output.
1 parent dd39c28 commit dda5e56

55 files changed

Lines changed: 249 additions & 1 deletion

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

cli/src/main/java/io/streamthoughts/jikkou/client/command/extension/ListExtensionCommand.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ public Integer call() throws IOException {
8282
extension.provider(),
8383
extension.category(),
8484
extension.name(),
85-
Objects.toString(extension.title(), ""),
85+
truncate(Objects.toString(extension.title(), ""), 30),
8686
String.valueOf(extension.enabled())
8787
})
8888
.toArray(String[][]::new);
@@ -105,4 +105,11 @@ public Integer call() throws IOException {
105105
}
106106
return CommandLine.ExitCode.OK;
107107
}
108+
109+
private static String truncate(String value, int maxLength) {
110+
if (value == null || value.length() <= maxLength) {
111+
return value;
112+
}
113+
return value.substring(0, maxLength - 3) + "...";
114+
}
108115
}

providers/jikkou-provider-aiven/src/main/java/io/streamthoughts/jikkou/extension/aiven/reconciler/AivenKafkaQuotaCollector.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@
88

99
import com.fasterxml.jackson.core.JsonProcessingException;
1010
import com.fasterxml.jackson.databind.JsonNode;
11+
import io.streamthoughts.jikkou.core.annotation.Description;
1112
import io.streamthoughts.jikkou.core.annotation.SupportedResource;
13+
import io.streamthoughts.jikkou.core.annotation.Title;
1214
import io.streamthoughts.jikkou.core.config.Configuration;
1315
import io.streamthoughts.jikkou.core.exceptions.ConfigException;
1416
import io.streamthoughts.jikkou.core.extension.ExtensionContext;
@@ -30,6 +32,8 @@
3032
import java.util.stream.Collectors;
3133
import org.jetbrains.annotations.NotNull;
3234

35+
@Title("Collect Aiven Kafka quotas")
36+
@Description("Collects Kafka quota resources from an Aiven service.")
3337
@SupportedResource(type = V1KafkaQuota.class)
3438
public class AivenKafkaQuotaCollector implements Collector<V1KafkaQuota> {
3539

providers/jikkou-provider-aiven/src/main/java/io/streamthoughts/jikkou/extension/aiven/reconciler/AivenKafkaQuotaController.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,9 @@
1212
import static io.streamthoughts.jikkou.core.ReconciliationMode.UPDATE;
1313

1414
import io.streamthoughts.jikkou.core.ReconciliationContext;
15+
import io.streamthoughts.jikkou.core.annotation.Description;
1516
import io.streamthoughts.jikkou.core.annotation.SupportedResource;
17+
import io.streamthoughts.jikkou.core.annotation.Title;
1618
import io.streamthoughts.jikkou.core.config.ConfigProperty;
1719
import io.streamthoughts.jikkou.core.exceptions.ConfigException;
1820
import io.streamthoughts.jikkou.core.extension.ExtensionContext;
@@ -36,6 +38,8 @@
3638
import java.util.concurrent.atomic.AtomicBoolean;
3739
import org.jetbrains.annotations.NotNull;
3840

41+
@Title("Reconcile Aiven Kafka quotas")
42+
@Description("Reconciles Kafka quota resources on an Aiven service to match the desired state.")
3943
@ControllerConfiguration(
4044
supportedModes = {CREATE, DELETE, UPDATE, FULL}
4145
)

providers/jikkou-provider-aiven/src/main/java/io/streamthoughts/jikkou/extension/aiven/reconciler/AivenKafkaTopicAclEntryCollector.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@
88

99
import com.fasterxml.jackson.core.JsonProcessingException;
1010
import com.fasterxml.jackson.databind.JsonNode;
11+
import io.streamthoughts.jikkou.core.annotation.Description;
1112
import io.streamthoughts.jikkou.core.annotation.SupportedResource;
13+
import io.streamthoughts.jikkou.core.annotation.Title;
1214
import io.streamthoughts.jikkou.core.config.Configuration;
1315
import io.streamthoughts.jikkou.core.exceptions.ConfigException;
1416
import io.streamthoughts.jikkou.core.extension.ExtensionContext;
@@ -30,6 +32,8 @@
3032
import java.util.stream.Collectors;
3133
import org.jetbrains.annotations.NotNull;
3234

35+
@Title("Collect Aiven Kafka topic ACLs")
36+
@Description("Collects Kafka topic ACL entry resources from an Aiven service.")
3337
@SupportedResource(type = V1KafkaTopicAclEntry.class)
3438
public class AivenKafkaTopicAclEntryCollector implements Collector<V1KafkaTopicAclEntry> {
3539

providers/jikkou-provider-aiven/src/main/java/io/streamthoughts/jikkou/extension/aiven/reconciler/AivenKafkaTopicAclEntryController.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,9 @@
1111
import static io.streamthoughts.jikkou.core.ReconciliationMode.FULL;
1212

1313
import io.streamthoughts.jikkou.core.ReconciliationContext;
14+
import io.streamthoughts.jikkou.core.annotation.Description;
1415
import io.streamthoughts.jikkou.core.annotation.SupportedResource;
16+
import io.streamthoughts.jikkou.core.annotation.Title;
1517
import io.streamthoughts.jikkou.core.config.ConfigProperty;
1618
import io.streamthoughts.jikkou.core.exceptions.ConfigException;
1719
import io.streamthoughts.jikkou.core.extension.ExtensionContext;
@@ -35,6 +37,8 @@
3537
import java.util.concurrent.atomic.AtomicBoolean;
3638
import org.jetbrains.annotations.NotNull;
3739

40+
@Title("Reconcile Aiven Kafka topic ACLs")
41+
@Description("Reconciles Kafka topic ACL entry resources on an Aiven service to match the desired state.")
3842
@ControllerConfiguration(
3943
supportedModes = {CREATE, DELETE, FULL}
4044
)

providers/jikkou-provider-aiven/src/main/java/io/streamthoughts/jikkou/extension/aiven/reconciler/AivenKafkaTopicCollector.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,9 @@
1010

1111
import com.fasterxml.jackson.core.JsonProcessingException;
1212
import com.fasterxml.jackson.databind.JsonNode;
13+
import io.streamthoughts.jikkou.core.annotation.Description;
1314
import io.streamthoughts.jikkou.core.annotation.SupportedResource;
15+
import io.streamthoughts.jikkou.core.annotation.Title;
1416
import io.streamthoughts.jikkou.core.config.ConfigProperty;
1517
import io.streamthoughts.jikkou.core.config.Configuration;
1618
import io.streamthoughts.jikkou.core.exceptions.ConfigException;
@@ -41,6 +43,8 @@
4143
import java.util.function.Predicate;
4244
import org.jetbrains.annotations.NotNull;
4345

46+
@Title("Collect Aiven Kafka topics")
47+
@Description("Collects Kafka topic resources from an Aiven service.")
4448
@SupportedResource(kind = "KafkaTopic", apiVersion = ApiVersions.KAFKA_AIVEN_V1BETA2)
4549
public class AivenKafkaTopicCollector extends ContextualExtension implements Collector<V1KafkaTopic> {
4650

providers/jikkou-provider-aiven/src/main/java/io/streamthoughts/jikkou/extension/aiven/reconciler/AivenKafkaTopicController.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,9 @@
1313
import static io.streamthoughts.jikkou.extension.aiven.ApiVersions.KAFKA_AIVEN_V1BETA2;
1414

1515
import io.streamthoughts.jikkou.core.ReconciliationContext;
16+
import io.streamthoughts.jikkou.core.annotation.Description;
1617
import io.streamthoughts.jikkou.core.annotation.SupportedResource;
18+
import io.streamthoughts.jikkou.core.annotation.Title;
1719
import io.streamthoughts.jikkou.core.config.ConfigProperty;
1820
import io.streamthoughts.jikkou.core.config.Configuration;
1921
import io.streamthoughts.jikkou.core.extension.ContextualExtension;
@@ -44,6 +46,8 @@
4446
import org.slf4j.Logger;
4547
import org.slf4j.LoggerFactory;
4648

49+
@Title("Reconcile Aiven Kafka topics")
50+
@Description("Reconciles Kafka topic resources on an Aiven service to match the desired state.")
4751
@SupportedResource(apiVersion = KAFKA_AIVEN_V1BETA2, kind = "KafkaTopicChange")
4852
@SupportedResource(apiVersion = KAFKA_AIVEN_V1BETA2, kind = "KafkaTopic")
4953
@ControllerConfiguration(

providers/jikkou-provider-aiven/src/main/java/io/streamthoughts/jikkou/extension/aiven/reconciler/AivenSchemaRegistryAclEntryCollector.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@
88

99
import com.fasterxml.jackson.core.JsonProcessingException;
1010
import com.fasterxml.jackson.databind.JsonNode;
11+
import io.streamthoughts.jikkou.core.annotation.Description;
1112
import io.streamthoughts.jikkou.core.annotation.SupportedResource;
13+
import io.streamthoughts.jikkou.core.annotation.Title;
1214
import io.streamthoughts.jikkou.core.config.Configuration;
1315
import io.streamthoughts.jikkou.core.exceptions.ConfigException;
1416
import io.streamthoughts.jikkou.core.exceptions.JikkouRuntimeException;
@@ -31,6 +33,8 @@
3133
import java.util.stream.Collectors;
3234
import org.jetbrains.annotations.NotNull;
3335

36+
@Title("Collect Aiven Schema Registry ACLs")
37+
@Description("Collects Schema Registry ACL entry resources from an Aiven service.")
3438
@SupportedResource(type = V1SchemaRegistryAclEntry.class)
3539
public final class AivenSchemaRegistryAclEntryCollector implements Collector<V1SchemaRegistryAclEntry> {
3640

providers/jikkou-provider-aiven/src/main/java/io/streamthoughts/jikkou/extension/aiven/reconciler/AivenSchemaRegistryAclEntryController.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,9 @@
1111
import static io.streamthoughts.jikkou.core.ReconciliationMode.FULL;
1212

1313
import io.streamthoughts.jikkou.core.ReconciliationContext;
14+
import io.streamthoughts.jikkou.core.annotation.Description;
1415
import io.streamthoughts.jikkou.core.annotation.SupportedResource;
16+
import io.streamthoughts.jikkou.core.annotation.Title;
1517
import io.streamthoughts.jikkou.core.config.ConfigProperty;
1618
import io.streamthoughts.jikkou.core.extension.ExtensionContext;
1719
import io.streamthoughts.jikkou.core.models.change.ResourceChange;
@@ -34,6 +36,8 @@
3436
import java.util.concurrent.atomic.AtomicBoolean;
3537
import org.jetbrains.annotations.NotNull;
3638

39+
@Title("Reconcile Aiven Schema Registry ACLs")
40+
@Description("Reconciles Schema Registry ACL entry resources on an Aiven service to match the desired state.")
3741
@ControllerConfiguration(
3842
supportedModes = {CREATE, DELETE, FULL}
3943
)

providers/jikkou-provider-aiven/src/main/java/io/streamthoughts/jikkou/extension/aiven/reconciler/AivenSchemaRegistrySubjectCollector.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,9 @@
1010
import com.fasterxml.jackson.databind.JsonNode;
1111
import io.streamthoughts.jikkou.common.utils.AsyncUtils;
1212
import io.streamthoughts.jikkou.common.utils.Pair;
13+
import io.streamthoughts.jikkou.core.annotation.Description;
1314
import io.streamthoughts.jikkou.core.annotation.SupportedResource;
15+
import io.streamthoughts.jikkou.core.annotation.Title;
1416
import io.streamthoughts.jikkou.core.config.Configuration;
1517
import io.streamthoughts.jikkou.core.exceptions.ConfigException;
1618
import io.streamthoughts.jikkou.core.exceptions.JikkouRuntimeException;
@@ -38,6 +40,8 @@
3840
/**
3941
* Aiven - Schema Registry Subjects Collector.
4042
*/
43+
@Title("Collect Aiven Schema Registry subjects")
44+
@Description("Collects Schema Registry subject resources from an Aiven service.")
4145
@SupportedResource(
4246
apiVersion = ApiVersions.KAFKA_AIVEN_V1BETA1,
4347
kind = ApiVersions.SCHEMA_REGISTRY_KIND

0 commit comments

Comments
 (0)