Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Harmonize capability constants #30983

Merged
merged 1 commit into from
Feb 17, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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 "";
}
}
}