Skip to content

Commit

Permalink
Harmonize capability constants
Browse files Browse the repository at this point in the history
  • Loading branch information
HerrDerb committed Feb 17, 2023
1 parent 16e7260 commit ebcbd16
Show file tree
Hide file tree
Showing 2 changed files with 95 additions and 54 deletions.
108 changes: 54 additions & 54 deletions core/deployment/src/main/java/io/quarkus/deployment/Capability.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,47 +5,47 @@
*/
public interface Capability {

String QUARKUS_PREFIX = "io.quarkus.";
String QUARKUS_PREFIX = "io.quarkus";

/**
* A datasource connection pool implementation
*/
String AGROAL = QUARKUS_PREFIX + "agroal";
String AGROAL = QUARKUS_PREFIX + ".agroal";

/**
* JSR 365 compatible contexts and dependency injection
*/
String CDI = QUARKUS_PREFIX + "cdi";
String CDI = QUARKUS_PREFIX + ".cdi";

String CONFIG_YAML = QUARKUS_PREFIX + "config.yaml";
String CONFIG_YAML = QUARKUS_PREFIX + ".config.yaml";

/**
* Java Servlet API
*/
String SERVLET = QUARKUS_PREFIX + "servlet";
String SERVLET = QUARKUS_PREFIX + ".servlet";

/**
* Java Transaction API (JTA)
*/
String TRANSACTIONS = QUARKUS_PREFIX + "transactions";
String TRANSACTIONS = QUARKUS_PREFIX + ".transactions";

String LRA_PARTICIPANT = QUARKUS_PREFIX + "lra.participant";
String LRA_PARTICIPANT = QUARKUS_PREFIX + ".lra.participant";

String JACKSON = QUARKUS_PREFIX + "jackson";
String JACKSON = QUARKUS_PREFIX + ".jackson";

String KOTLIN = QUARKUS_PREFIX + "kotlin";
String KOTLIN = QUARKUS_PREFIX + ".kotlin";

String JSONB = QUARKUS_PREFIX + "jsonb";
String JSONB = QUARKUS_PREFIX + ".jsonb";

String HAL = QUARKUS_PREFIX + "hal";
String HAL = QUARKUS_PREFIX + ".hal";

String REST = QUARKUS_PREFIX + "rest";
String REST = QUARKUS_PREFIX + ".rest";
String REST_CLIENT = REST + ".client";
String REST_CLIENT_REACTIVE = REST_CLIENT + ".reactive";
String REST_JACKSON = REST + ".jackson";
String REST_JSONB = REST + ".jsonb";

String RESTEASY = QUARKUS_PREFIX + "resteasy";
String RESTEASY = QUARKUS_PREFIX + ".resteasy";
String RESTEASY_JSON = RESTEASY + ".json";

String RESTEASY_JSON_JACKSON = RESTEASY_JSON + ".jackson";
Expand All @@ -60,86 +60,86 @@ public interface Capability {
String RESTEASY_REACTIVE_JSON_JACKSON = RESTEASY_REACTIVE_JSON + ".jackson";
String RESTEASY_REACTIVE_JSON_JSONB = RESTEASY_REACTIVE_JSON + ".jsonb";

String JWT = QUARKUS_PREFIX + "jwt";
String JWT = QUARKUS_PREFIX + ".jwt";

/**
* @deprecated Tika has been moved to the Quarkiverse
*/
@Deprecated
String TIKA = QUARKUS_PREFIX + "tika";
String TIKA = QUARKUS_PREFIX + ".tika";

String MONGODB_CLIENT = QUARKUS_PREFIX + "mongodb-client";
String MONGODB_PANACHE = QUARKUS_PREFIX + "mongodb.panache";
String MONGODB_CLIENT = QUARKUS_PREFIX + ".mongodb-client";
String MONGODB_PANACHE = QUARKUS_PREFIX + ".mongodb.panache";
String MONGODB_PANACHE_KOTLIN = MONGODB_PANACHE + ".kotlin";

String ELASTICSEARCH_REST_HIGH_LEVEL_CLIENT = QUARKUS_PREFIX + "elasticsearch-rest-high-level-client";
String ELASTICSEARCH_REST_HIGH_LEVEL_CLIENT = QUARKUS_PREFIX + ".elasticsearch-rest-high-level-client";

String FLYWAY = QUARKUS_PREFIX + "flyway";
String LIQUIBASE = QUARKUS_PREFIX + "liquibase";
String FLYWAY = QUARKUS_PREFIX + ".flyway";
String LIQUIBASE = QUARKUS_PREFIX + ".liquibase";

String SECURITY = QUARKUS_PREFIX + "security";
String SECURITY = QUARKUS_PREFIX + ".security";
String SECURITY_ELYTRON_OAUTH2 = SECURITY + ".elytron.oauth2";
String SECURITY_ELYTRON_JDBC = SECURITY + ".elytron.jdbc";
String SECURITY_ELYTRON_LDAP = SECURITY + ".elytron.ldap";
String SECURITY_JPA = SECURITY + ".jpa";

String QUARTZ = QUARKUS_PREFIX + "quartz";
String KUBERNETES_SERVICE_BINDING = QUARKUS_PREFIX + "kubernetes.service.binding";
String KUBERNETES_CLIENT = QUARKUS_PREFIX + "kubernetes.client";
String QUARTZ = QUARKUS_PREFIX + ".quartz";
String KUBERNETES_SERVICE_BINDING = QUARKUS_PREFIX + ".kubernetes.service.binding";
String KUBERNETES_CLIENT = QUARKUS_PREFIX + ".kubernetes.client";

/**
* @deprecated
* @see io.quarkus.deployment.metrics.MetricsCapabilityBuildItem
*/
String METRICS = QUARKUS_PREFIX + "metrics";
String CONTAINER_IMAGE_JIB = QUARKUS_PREFIX + "container.image.jib";
String CONTAINER_IMAGE_DOCKER = QUARKUS_PREFIX + "container.image.docker";
String CONTAINER_IMAGE_S2I = QUARKUS_PREFIX + "container.image.s2i";
String CONTAINER_IMAGE_OPENSHIFT = QUARKUS_PREFIX + "container.image.openshift";
String CONTAINER_IMAGE_BUILDPACK = QUARKUS_PREFIX + "container.image.buildpack";
String HIBERNATE_ORM = QUARKUS_PREFIX + "hibernate.orm";
String HIBERNATE_ENVERS = QUARKUS_PREFIX + "hibernate.envers";
String HIBERNATE_REACTIVE = QUARKUS_PREFIX + "hibernate.reactive";
String HIBERNATE_VALIDATOR = QUARKUS_PREFIX + "hibernate.validator";
String OPENTELEMETRY_TRACER = QUARKUS_PREFIX + "opentelemetry.tracer";

String OPENSHIFT = QUARKUS_PREFIX + "openshift";
String METRICS = QUARKUS_PREFIX + ".metrics";
String CONTAINER_IMAGE_JIB = QUARKUS_PREFIX + ".container.image.jib";
String CONTAINER_IMAGE_DOCKER = QUARKUS_PREFIX + ".container.image.docker";
String CONTAINER_IMAGE_S2I = QUARKUS_PREFIX + ".container.image.s2i";
String CONTAINER_IMAGE_OPENSHIFT = QUARKUS_PREFIX + ".container.image.openshift";
String CONTAINER_IMAGE_BUILDPACK = QUARKUS_PREFIX + ".container.image.buildpack";
String HIBERNATE_ORM = QUARKUS_PREFIX + ".hibernate.orm";
String HIBERNATE_ENVERS = QUARKUS_PREFIX + ".hibernate.envers";
String HIBERNATE_REACTIVE = QUARKUS_PREFIX + ".hibernate.reactive";
String HIBERNATE_VALIDATOR = QUARKUS_PREFIX + ".hibernate.validator";
String OPENTELEMETRY_TRACER = QUARKUS_PREFIX + ".opentelemetry.tracer";

String OPENSHIFT = QUARKUS_PREFIX + ".openshift";
String OPENSHIFT_CLIENT = OPENSHIFT + ".client";

String OIDC = QUARKUS_PREFIX + "oidc";
String OIDC = QUARKUS_PREFIX + ".oidc";

/**
* Presence of an io.opentracing tracer (for example, Jaeger).
*/
String OPENTRACING = QUARKUS_PREFIX + "opentracing";
String OPENTRACING = QUARKUS_PREFIX + ".opentracing";
/**
* Presence of SmallRye OpenTracing.
*/
String SMALLRYE_OPENTRACING = QUARKUS_PREFIX + "smallrye.opentracing";
String SMALLRYE_HEALTH = QUARKUS_PREFIX + "smallrye.health";
String SMALLRYE_OPENAPI = QUARKUS_PREFIX + "smallrye.openapi";
String SMALLRYE_GRAPHQL = QUARKUS_PREFIX + "smallrye.graphql";
String SMALLRYE_FAULT_TOLERANCE = QUARKUS_PREFIX + "smallrye.faulttolerance";
String SMALLRYE_OPENTRACING = QUARKUS_PREFIX + ".smallrye.opentracing";
String SMALLRYE_HEALTH = QUARKUS_PREFIX + ".smallrye.health";
String SMALLRYE_OPENAPI = QUARKUS_PREFIX + ".smallrye.openapi";
String SMALLRYE_GRAPHQL = QUARKUS_PREFIX + ".smallrye.graphql";
String SMALLRYE_FAULT_TOLERANCE = QUARKUS_PREFIX + ".smallrye.faulttolerance";

String SPRING_WEB = QUARKUS_PREFIX + "spring.web";
String SPRING_WEB = QUARKUS_PREFIX + ".spring.web";

String VERTX = QUARKUS_PREFIX + "vertx";
String VERTX = QUARKUS_PREFIX + ".vertx";
String VERTX_CORE = VERTX + ".core";
String VERTX_HTTP = VERTX + ".http";

String APICURIO_REGISTRY = QUARKUS_PREFIX + "apicurio.registry";
String APICURIO_REGISTRY = QUARKUS_PREFIX + ".apicurio.registry";
String APICURIO_REGISTRY_AVRO = APICURIO_REGISTRY + ".avro";

String CONFLUENT_REGISTRY = QUARKUS_PREFIX + "confluent.registry";
String CONFLUENT_REGISTRY = QUARKUS_PREFIX + ".confluent.registry";
String CONFLUENT_REGISTRY_AVRO = CONFLUENT_REGISTRY + ".avro";

String PICOCLI = QUARKUS_PREFIX + "picocli";
String PICOCLI = QUARKUS_PREFIX + ".picocli";

String KAFKA = QUARKUS_PREFIX + "kafka";
String KAFKA = QUARKUS_PREFIX + ".kafka";

String SMALLRYE_REACTIVE_MESSAGING = QUARKUS_PREFIX + "smallrye.reactive.messaging";
String REDIS_CLIENT = QUARKUS_PREFIX + "redis";
String SMALLRYE_REACTIVE_MESSAGING = QUARKUS_PREFIX + ".smallrye.reactive.messaging";
String REDIS_CLIENT = QUARKUS_PREFIX + ".redis";

String CACHE = QUARKUS_PREFIX + "cache";
String JDBC_ORACLE = QUARKUS_PREFIX + "jdbc.oracle";
String CACHE = QUARKUS_PREFIX + ".cache";
String JDBC_ORACLE = QUARKUS_PREFIX + ".jdbc.oracle";
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
package io.quarkus.deployment;

import static java.util.function.Predicate.not;
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.jupiter.api.Assertions.fail;

import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
import java.util.stream.Stream;

import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.MethodSource;

public class CapabilityTest {
private static Stream<Arguments> capabilityFields() {
Field[] declaredFields = Capability.class.getDeclaredFields();
return Stream.of(declaredFields)
.filter(field -> Modifier.isStatic(field.getModifiers()))
.filter(field -> field.getType().equals(String.class))
.map(CapabilityTest::getString)
.filter(not(Capability.QUARKUS_PREFIX::equals))
.map(value -> Arguments.of(value));
}

@ParameterizedTest
@MethodSource("capabilityFields")
void validateCapabilityString(String capabilityName) {
assertThat(capabilityName).startsWith(Capability.QUARKUS_PREFIX + ".");
assertThat(capabilityName).doesNotContain("..");
}

private static String getString(Field field) {
try {
return (String) field.get(null);
} catch (IllegalArgumentException | IllegalAccessException e) {
fail(e);
return "";
}
}
}

0 comments on commit ebcbd16

Please sign in to comment.