diff --git a/client/deployment/src/main/java/io/quarkiverse/openapi/generator/deployment/CodegenConfig.java b/client/deployment/src/main/java/io/quarkiverse/openapi/generator/deployment/CodegenConfig.java index 6927b2275..1f88e602d 100644 --- a/client/deployment/src/main/java/io/quarkiverse/openapi/generator/deployment/CodegenConfig.java +++ b/client/deployment/src/main/java/io/quarkiverse/openapi/generator/deployment/CodegenConfig.java @@ -4,7 +4,6 @@ import java.util.Arrays; import java.util.List; import java.util.Map; -import java.util.stream.Collectors; import io.quarkiverse.openapi.generator.deployment.codegen.OpenApiGeneratorOutputPaths; import io.quarkus.runtime.annotations.ConfigPhase; @@ -30,15 +29,18 @@ public interface CodegenConfig extends GlobalCodegenConfig { String BUILD_TIME_SPEC_PREFIX_FORMAT = "quarkus." + CODEGEN_TIME_CONFIG_PREFIX + ".spec.%s"; List SUPPORTED_CONFIGURATIONS = Arrays.stream(ConfigName.values()).map(cn -> cn.name) - .collect(Collectors.toList()); + .toList(); enum ConfigName { //global configs VERBOSE("verbose"), INPUT_BASE_DIR("input-base-dir"), + GAV_SCANNING("gav-scanning"), TEMPLATE_BASE_DIR("template-base-dir"), INCLUDE("include"), EXCLUDE("exclude"), + ARTIFACT_ID_FILTER("artifact-id-filter"), + EXCLUDE_GAVS("exclude-gavs"), VALIDATE_SPEC("validateSpec"), DEFAULT_SECURITY_SCHEME("default-security-scheme"), diff --git a/client/deployment/src/main/java/io/quarkiverse/openapi/generator/deployment/GlobalCodegenConfig.java b/client/deployment/src/main/java/io/quarkiverse/openapi/generator/deployment/GlobalCodegenConfig.java index 0c9f5888c..4dc562c6d 100644 --- a/client/deployment/src/main/java/io/quarkiverse/openapi/generator/deployment/GlobalCodegenConfig.java +++ b/client/deployment/src/main/java/io/quarkiverse/openapi/generator/deployment/GlobalCodegenConfig.java @@ -1,5 +1,6 @@ package io.quarkiverse.openapi.generator.deployment; +import java.util.List; import java.util.Optional; import io.smallrye.config.WithDefault; @@ -27,6 +28,13 @@ public interface GlobalCodegenConfig extends CommonItemConfig { @WithName("input-base-dir") Optional inputBaseDir(); + /** + * Whether or not to skip gav scanning. + */ + @WithName("gav-scanning") + @WithDefault("true") + boolean gavScanning(); + /** * Option to change the directory where template files must be found. */ @@ -53,6 +61,19 @@ public interface GlobalCodegenConfig extends CommonItemConfig { @WithName("exclude") Optional exclude(); + /** + * Option to filter artifactId from generation + */ + @WithName("artifact-id-filter") + @WithDefault(".*openapi.*") + Optional artifactIdFilter(); + + /** + * Option to exclude GAVs from generation + */ + @WithName("exclude-gavs") + Optional> excludeGavs(); + /** * Create security for the referenced security scheme */ diff --git a/client/deployment/src/main/java/io/quarkiverse/openapi/generator/deployment/codegen/OpenApiGeneratorCodeGen.java b/client/deployment/src/main/java/io/quarkiverse/openapi/generator/deployment/codegen/OpenApiGeneratorCodeGen.java index 499304bc9..fb1c2b317 100644 --- a/client/deployment/src/main/java/io/quarkiverse/openapi/generator/deployment/codegen/OpenApiGeneratorCodeGen.java +++ b/client/deployment/src/main/java/io/quarkiverse/openapi/generator/deployment/codegen/OpenApiGeneratorCodeGen.java @@ -8,6 +8,6 @@ public String providerId() { @Override public String[] inputExtensions() { - return new String[] { JSON, YAML, YML }; + return SUPPORTED_EXTENSIONS_WITH_LEADING_DOT.toArray(new String[0]); } } diff --git a/client/deployment/src/main/java/io/quarkiverse/openapi/generator/deployment/codegen/OpenApiGeneratorCodeGenBase.java b/client/deployment/src/main/java/io/quarkiverse/openapi/generator/deployment/codegen/OpenApiGeneratorCodeGenBase.java index 809e0101e..c1bd7376e 100644 --- a/client/deployment/src/main/java/io/quarkiverse/openapi/generator/deployment/codegen/OpenApiGeneratorCodeGenBase.java +++ b/client/deployment/src/main/java/io/quarkiverse/openapi/generator/deployment/codegen/OpenApiGeneratorCodeGenBase.java @@ -26,6 +26,7 @@ import java.util.List; import java.util.Map; import java.util.Optional; +import java.util.Set; import java.util.function.Predicate; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -56,9 +57,12 @@ */ public abstract class OpenApiGeneratorCodeGenBase implements CodeGenProvider { - static final String YAML = ".yaml"; - static final String YML = ".yml"; - static final String JSON = ".json"; + static final String YAML = "yaml"; + static final String YML = "yml"; + static final String JSON = "json"; + + static final Set SUPPORTED_EXTENSIONS = Set.of(YAML, YML, JSON); + static final Set SUPPORTED_EXTENSIONS_WITH_LEADING_DOT = Set.of("." + YAML, "." + YML, "." + JSON); private static final String DEFAULT_PACKAGE = "org.openapi.quarkus"; private static final String CONFIG_KEY_PROPERTY = "config-key"; diff --git a/client/deployment/src/main/java/io/quarkiverse/openapi/generator/deployment/codegen/OpenApiSpecInputProvider.java b/client/deployment/src/main/java/io/quarkiverse/openapi/generator/deployment/codegen/OpenApiSpecInputProvider.java index 83e9a778f..2d10a7de4 100644 --- a/client/deployment/src/main/java/io/quarkiverse/openapi/generator/deployment/codegen/OpenApiSpecInputProvider.java +++ b/client/deployment/src/main/java/io/quarkiverse/openapi/generator/deployment/codegen/OpenApiSpecInputProvider.java @@ -3,6 +3,7 @@ import java.io.InputStream; import java.util.List; +import io.quarkus.bootstrap.prebuild.CodeGenException; import io.quarkus.deployment.CodeGenContext; /** @@ -13,8 +14,10 @@ public interface OpenApiSpecInputProvider { /** * Fetch OpenAPI specification files from a given source. * + * @param context the current codegen context. + * @throws CodeGenException if an error occurs while reading the spec files. * @return a list of spec files in {@link InputStream} format. */ - List read(CodeGenContext context); + List read(CodeGenContext context) throws CodeGenException; } diff --git a/client/deployment/src/main/java/io/quarkiverse/openapi/generator/deployment/codegen/YamlOrJsonGAVCoordinateOpenApiSpecInputProvider.java b/client/deployment/src/main/java/io/quarkiverse/openapi/generator/deployment/codegen/YamlOrJsonGAVCoordinateOpenApiSpecInputProvider.java new file mode 100644 index 000000000..108605d33 --- /dev/null +++ b/client/deployment/src/main/java/io/quarkiverse/openapi/generator/deployment/codegen/YamlOrJsonGAVCoordinateOpenApiSpecInputProvider.java @@ -0,0 +1,109 @@ +package io.quarkiverse.openapi.generator.deployment.codegen; + +import static io.quarkiverse.openapi.generator.deployment.CodegenConfig.getGlobalConfigName; +import static io.quarkiverse.openapi.generator.deployment.CodegenConfig.ConfigName.ARTIFACT_ID_FILTER; +import static io.quarkiverse.openapi.generator.deployment.CodegenConfig.ConfigName.EXCLUDE_GAVS; +import static io.quarkiverse.openapi.generator.deployment.CodegenConfig.ConfigName.GAV_SCANNING; +import static io.quarkiverse.openapi.generator.deployment.codegen.OpenApiGeneratorCodeGenBase.SUPPORTED_EXTENSIONS; + +import java.io.IOException; +import java.nio.file.Files; +import java.util.ArrayList; +import java.util.List; +import java.util.function.Predicate; + +import org.jboss.logging.Logger; + +import io.quarkus.bootstrap.prebuild.CodeGenException; +import io.quarkus.deployment.CodeGenContext; +import io.quarkus.maven.dependency.ResolvedDependency; +import io.smallrye.config.common.utils.StringUtil; + +/** + * Provides OpenAPI specification input from Maven GAV (GroupId:ArtifactId:Version) coordinates. + *

+ * This provider scans the application's dependencies for YAML or JSON files that match + * specific criteria and provides them as input for OpenAPI code generation. It implements + * the {@link OpenApiSpecInputProvider} interface to integrate with the OpenAPI Generator's + * code generation pipeline. + *

+ * + *

Scanning Behavior

+ *

+ * The provider performs the following steps: + *

+ *
    + *
  1. Checks if GAV scanning is enabled via configuration (enabled by default)
  2. + *
  3. Filters dependencies by artifact type (yaml/yml/json)
  4. + *
  5. Applies artifact ID filtering using a regex pattern
  6. + *
  7. Excludes specific GAVs based on configuration
  8. + *
  9. Creates {@link SpecInputModel} instances for each matching dependency
  10. + *
+ * + *

Configuration

+ *

+ * The provider respects the following configuration properties: + *

+ *
    + *
  • {@code quarkus.openapi-generator.codegen.gav-scanning} - Enable/disable GAV scanning
  • + *
  • {@code quarkus.openapi-generator.codegen.artifact-id-filter} - Regex pattern for artifact ID filtering
  • + *
  • {@code quarkus.openapi-generator.codegen.exclude-gavs} - List of GAV coordinates to exclude + * (format: groupId:artifactId:classifier)
  • + *
+ * + *

Example Usage

+ * + *
+ * # application.properties
+ * quarkus.openapi-generator.codegen.gav-scanning=true
+ * quarkus.openapi-generator.codegen.artifact-id-filter=.*api.*
+ * quarkus.openapi-generator.codegen.exclude-gavs=com.example:old-api
+ * 
+ * + * @see OpenApiSpecInputProvider + * @see SpecInputModel + * @see CodeGenContext + */ +public class YamlOrJsonGAVCoordinateOpenApiSpecInputProvider implements OpenApiSpecInputProvider { + private static final Logger LOG = Logger.getLogger(YamlOrJsonGAVCoordinateOpenApiSpecInputProvider.class); + + @Override + public List read(CodeGenContext context) throws CodeGenException { + if (!context.config().getOptionalValue(getGlobalConfigName(GAV_SCANNING), Boolean.class) + .orElse(true)) { + LOG.debug("GAV scanning is disabled."); + return List.of(); + } + + List gavsToExclude = context.config().getOptionalValues(getGlobalConfigName(EXCLUDE_GAVS), String.class) + .orElse(List.of()); + String artifactIdFilter = context.config().getOptionalValue(getGlobalConfigName(ARTIFACT_ID_FILTER), String.class) + .filter(Predicate.not(String::isBlank)) + .orElse(".*openapi.*"); + + List yamlDependencies = context.applicationModel().getDependencies().stream() + .filter(rd -> SUPPORTED_EXTENSIONS.contains(rd.getType().toLowerCase())) + .filter(rd -> rd.getArtifactId().matches(artifactIdFilter)) + .filter(rd -> !gavsToExclude.contains(rd.getKey().toGacString())) + .toList(); + + if (yamlDependencies.isEmpty()) { + LOG.debug("No suitable GAV dependencies found. ArtifactIdFilter was %s and gavsToExclude were %s." + .formatted(artifactIdFilter, gavsToExclude)); + return List.of(); + } + var inputModels = new ArrayList(); + for (ResolvedDependency yamlDependency : yamlDependencies) { + var gacString = StringUtil.replaceNonAlphanumericByUnderscores(yamlDependency.getKey().toGacString()); + var path = yamlDependency.getResolvedPaths().stream().findFirst() + .orElseThrow(() -> new CodeGenException("Could not find maven path of %s.".formatted(gacString))); + try { + inputModels.add(new SpecInputModel(gacString, Files.newInputStream(path))); + } catch (IOException e) { + throw new CodeGenException("Could not open input stream of %s from %s.".formatted(gacString, path.toString()), + e); + } + } + return inputModels; + } +} diff --git a/client/deployment/src/main/resources/META-INF/services/io.quarkiverse.openapi.generator.deployment.codegen.OpenApiSpecInputProvider b/client/deployment/src/main/resources/META-INF/services/io.quarkiverse.openapi.generator.deployment.codegen.OpenApiSpecInputProvider new file mode 100644 index 000000000..3eb47dd6d --- /dev/null +++ b/client/deployment/src/main/resources/META-INF/services/io.quarkiverse.openapi.generator.deployment.codegen.OpenApiSpecInputProvider @@ -0,0 +1 @@ +io.quarkiverse.openapi.generator.deployment.codegen.YamlOrJsonGAVCoordinateOpenApiSpecInputProvider \ No newline at end of file diff --git a/client/integration-tests/gav-source/pom.xml b/client/integration-tests/gav-source/pom.xml new file mode 100644 index 000000000..e1d7f6a04 --- /dev/null +++ b/client/integration-tests/gav-source/pom.xml @@ -0,0 +1,67 @@ + + + + quarkus-openapi-generator-integration-tests + io.quarkiverse.openapi.generator + 3.0.0-lts-SNAPSHOT + + 4.0.0 + + quarkus-openapi-generator-gav-source + Quarkus - OpenAPI Generator - Integration Tests - Client - GAV source + Example project for OpenAPI with GAV source + + + + + org.apache.maven.plugins + maven-install-plugin + + + install-echo1 + + install-file + + package + + quarkus-openapi-generator-gav-source-echo1 + io.quarkiverse.openapi.generator + 3.0.0-SNAPSHOT + src/main/openapi/echo.yaml + yaml + + + + install-echo2 + + install-file + + package + + quarkus-openapi-generator-gav-source-echo2 + io.quarkiverse.openapi.generator + 3.0.0-SNAPSHOT + src/main/openapi/echo.yaml + yaml + + + + install-other + + install-file + + package + + quarkus-openapi-generator-gav-source-other + io.quarkiverse.openapi.generator + 3.0.0-SNAPSHOT + src/main/openapi/echo.yaml + yaml + + + + + + + + \ No newline at end of file diff --git a/client/integration-tests/gav-source/src/main/openapi/echo.yaml b/client/integration-tests/gav-source/src/main/openapi/echo.yaml new file mode 100644 index 000000000..f93ea2182 --- /dev/null +++ b/client/integration-tests/gav-source/src/main/openapi/echo.yaml @@ -0,0 +1,34 @@ +openapi: 3.0.3 +info: + title: echo + version: '1.0.0' + description: "" +paths: + /echo: + post: + summary: Echo + operationId: echo + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/Message" + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/Echo' +components: + schemas: + Echo: + type: object + properties: + echo: + type: string + Message: + type: object + properties: + message: + type: string \ No newline at end of file diff --git a/client/integration-tests/gav/pom.xml b/client/integration-tests/gav/pom.xml new file mode 100644 index 000000000..90c25266a --- /dev/null +++ b/client/integration-tests/gav/pom.xml @@ -0,0 +1,105 @@ + + + + quarkus-openapi-generator-integration-tests + io.quarkiverse.openapi.generator + 3.0.0-lts-SNAPSHOT + + 4.0.0 + + quarkus-openapi-generator-it-gav + Quarkus - OpenAPI Generator - Integration Tests - Client - GAV + Example project for OpenAPI via GAV coordinates + + + + io.quarkiverse.openapi.generator + quarkus-openapi-generator + + + + + io.quarkiverse.openapi.generator + quarkus-openapi-generator-gav-source-echo1 + 3.0.0-SNAPSHOT + yaml + + + + io.quarkiverse.openapi.generator + quarkus-openapi-generator-gav-source-echo2 + 3.0.0-SNAPSHOT + yaml + + + org.assertj + assertj-core + test + + + io.quarkus + quarkus-junit5 + test + + + + + + io.quarkus + quarkus-maven-plugin + true + + + + build + generate-code + generate-code-tests + + + + + + + + + native-image + + + native + + + + + + maven-surefire-plugin + + ${native.surefire.skip} + + + + maven-failsafe-plugin + + + + integration-test + verify + + + + ${project.build.directory}/${project.build.finalName}-runner + org.jboss.logmanager.LogManager + ${maven.home} + + + + + + + + + native + + + + + \ No newline at end of file diff --git a/client/integration-tests/gav/src/main/resources/application.properties b/client/integration-tests/gav/src/main/resources/application.properties new file mode 100644 index 000000000..c04013366 --- /dev/null +++ b/client/integration-tests/gav/src/main/resources/application.properties @@ -0,0 +1,5 @@ +quarkus.keycloak.devservices.enabled=false + +quarkus.openapi-generator.codegen.artifact-id-filter=.*echo.* +quarkus.openapi-generator.codegen.exclude-gavs=io.quarkiverse.openapi.generator:quarkus-openapi-generator-gav-source-echo2 +quarkus.openapi-generator.codegen.spec.io_quarkiverse_openapi_generator_quarkus_openapi_generator_gav_source_echo1.serializable-model=true \ No newline at end of file diff --git a/client/integration-tests/gav/src/test/java/io/quarkiverse/openapi/generator/it/QuarkusGAVOpenApiTest.java b/client/integration-tests/gav/src/test/java/io/quarkiverse/openapi/generator/it/QuarkusGAVOpenApiTest.java new file mode 100644 index 000000000..1e427c185 --- /dev/null +++ b/client/integration-tests/gav/src/test/java/io/quarkiverse/openapi/generator/it/QuarkusGAVOpenApiTest.java @@ -0,0 +1,42 @@ +package io.quarkiverse.openapi.generator.it; + +import static org.assertj.core.api.Assertions.*; + +import java.io.Serializable; + +import org.junit.jupiter.api.Test; + +class QuarkusGAVOpenApiTest { + @Test + void echo1IsBeingGenerated() { + assertThatCode( + () -> Class.forName( + "org.openapi.quarkus.io_quarkiverse_openapi_generator_quarkus_openapi_generator_gav_source_echo1.api.DefaultApi")) + .doesNotThrowAnyException(); + } + + @Test + void echoModelIsBeingGeneratedWithSerializableInterface() { + assertThatCode(() -> { + Class apiClass = Class.forName( + "org.openapi.quarkus.io_quarkiverse_openapi_generator_quarkus_openapi_generator_gav_source_echo1.model.Echo"); + assertThat(apiClass.getInterfaces()).contains(Serializable.class); + }).doesNotThrowAnyException(); + } + + @Test + void echo2IsBeingNotGenerated() { + assertThatCode( + () -> Class.forName( + "org.openapi.quarkus.io_quarkiverse_openapi_generator_quarkus_openapi_generator_gav_source_echo2.api.DefaultApi")) + .isInstanceOf(ClassNotFoundException.class); + } + + @Test + void otherIsBeingNotGenerated() { + assertThatCode( + () -> Class.forName( + "org.openapi.quarkus.io_quarkiverse_openapi_generator_quarkus_openapi_generator_gav_source_other.api.DefaultApi")) + .isInstanceOf(ClassNotFoundException.class); + } +} diff --git a/client/integration-tests/pom.xml b/client/integration-tests/pom.xml index bd9b5cfb0..7a8dda1b6 100644 --- a/client/integration-tests/pom.xml +++ b/client/integration-tests/pom.xml @@ -22,6 +22,8 @@ cookie-authentication custom-templates enum-property + gav-source + gav enum-unexpected exclude generate-flags diff --git a/docs/modules/ROOT/pages/includes/quarkus-openapi-generator.adoc b/docs/modules/ROOT/pages/includes/quarkus-openapi-generator.adoc index 41d33043d..16659c893 100644 --- a/docs/modules/ROOT/pages/includes/quarkus-openapi-generator.adoc +++ b/docs/modules/ROOT/pages/includes/quarkus-openapi-generator.adoc @@ -538,6 +538,27 @@ endif::add-copy-button-to-env-var[] |string | +a|icon:lock[title=Fixed at build time] [[quarkus-openapi-generator_quarkus-openapi-generator-codegen-gav-scanning]] [.property-path]##link:#quarkus-openapi-generator_quarkus-openapi-generator-codegen-gav-scanning[`quarkus.openapi-generator.codegen.gav-scanning`]## +ifdef::add-copy-button-to-config-props[] +config_property_copy_button:+++quarkus.openapi-generator.codegen.gav-scanning+++[] +endif::add-copy-button-to-config-props[] + + +[.description] +-- +Whether or not to skip gav scanning. + + +ifdef::add-copy-button-to-env-var[] +Environment variable: env_var_with_copy_button:+++QUARKUS_OPENAPI_GENERATOR_CODEGEN_GAV_SCANNING+++[] +endif::add-copy-button-to-env-var[] +ifndef::add-copy-button-to-env-var[] +Environment variable: `+++QUARKUS_OPENAPI_GENERATOR_CODEGEN_GAV_SCANNING+++` +endif::add-copy-button-to-env-var[] +-- +|boolean +|`+++true+++` + a|icon:lock[title=Fixed at build time] [[quarkus-openapi-generator_quarkus-openapi-generator-codegen-template-base-dir]] [.property-path]##link:#quarkus-openapi-generator_quarkus-openapi-generator-codegen-template-base-dir[`quarkus.openapi-generator.codegen.template-base-dir`]## ifdef::add-copy-button-to-config-props[] config_property_copy_button:+++quarkus.openapi-generator.codegen.template-base-dir+++[] @@ -622,6 +643,48 @@ endif::add-copy-button-to-env-var[] |string | +a|icon:lock[title=Fixed at build time] [[quarkus-openapi-generator_quarkus-openapi-generator-codegen-artifact-id-filter]] [.property-path]##link:#quarkus-openapi-generator_quarkus-openapi-generator-codegen-artifact-id-filter[`quarkus.openapi-generator.codegen.artifact-id-filter`]## +ifdef::add-copy-button-to-config-props[] +config_property_copy_button:+++quarkus.openapi-generator.codegen.artifact-id-filter+++[] +endif::add-copy-button-to-config-props[] + + +[.description] +-- +Option to filter artifactId from generation + + +ifdef::add-copy-button-to-env-var[] +Environment variable: env_var_with_copy_button:+++QUARKUS_OPENAPI_GENERATOR_CODEGEN_ARTIFACT_ID_FILTER+++[] +endif::add-copy-button-to-env-var[] +ifndef::add-copy-button-to-env-var[] +Environment variable: `+++QUARKUS_OPENAPI_GENERATOR_CODEGEN_ARTIFACT_ID_FILTER+++` +endif::add-copy-button-to-env-var[] +-- +|string +|`+++.*openapi.*+++` + +a|icon:lock[title=Fixed at build time] [[quarkus-openapi-generator_quarkus-openapi-generator-codegen-exclude-gavs]] [.property-path]##link:#quarkus-openapi-generator_quarkus-openapi-generator-codegen-exclude-gavs[`quarkus.openapi-generator.codegen.exclude-gavs`]## +ifdef::add-copy-button-to-config-props[] +config_property_copy_button:+++quarkus.openapi-generator.codegen.exclude-gavs+++[] +endif::add-copy-button-to-config-props[] + + +[.description] +-- +Option to exclude GAVs from generation + + +ifdef::add-copy-button-to-env-var[] +Environment variable: env_var_with_copy_button:+++QUARKUS_OPENAPI_GENERATOR_CODEGEN_EXCLUDE_GAVS+++[] +endif::add-copy-button-to-env-var[] +ifndef::add-copy-button-to-env-var[] +Environment variable: `+++QUARKUS_OPENAPI_GENERATOR_CODEGEN_EXCLUDE_GAVS+++` +endif::add-copy-button-to-env-var[] +-- +|list of string +| + a|icon:lock[title=Fixed at build time] [[quarkus-openapi-generator_quarkus-openapi-generator-codegen-default-security-scheme]] [.property-path]##link:#quarkus-openapi-generator_quarkus-openapi-generator-codegen-default-security-scheme[`quarkus.openapi-generator.codegen.default-security-scheme`]## ifdef::add-copy-button-to-config-props[] config_property_copy_button:+++quarkus.openapi-generator.codegen.default-security-scheme+++[] diff --git a/docs/modules/ROOT/pages/includes/quarkus-openapi-generator_quarkus.openapi-generator.adoc b/docs/modules/ROOT/pages/includes/quarkus-openapi-generator_quarkus.openapi-generator.adoc index 41d33043d..16659c893 100644 --- a/docs/modules/ROOT/pages/includes/quarkus-openapi-generator_quarkus.openapi-generator.adoc +++ b/docs/modules/ROOT/pages/includes/quarkus-openapi-generator_quarkus.openapi-generator.adoc @@ -538,6 +538,27 @@ endif::add-copy-button-to-env-var[] |string | +a|icon:lock[title=Fixed at build time] [[quarkus-openapi-generator_quarkus-openapi-generator-codegen-gav-scanning]] [.property-path]##link:#quarkus-openapi-generator_quarkus-openapi-generator-codegen-gav-scanning[`quarkus.openapi-generator.codegen.gav-scanning`]## +ifdef::add-copy-button-to-config-props[] +config_property_copy_button:+++quarkus.openapi-generator.codegen.gav-scanning+++[] +endif::add-copy-button-to-config-props[] + + +[.description] +-- +Whether or not to skip gav scanning. + + +ifdef::add-copy-button-to-env-var[] +Environment variable: env_var_with_copy_button:+++QUARKUS_OPENAPI_GENERATOR_CODEGEN_GAV_SCANNING+++[] +endif::add-copy-button-to-env-var[] +ifndef::add-copy-button-to-env-var[] +Environment variable: `+++QUARKUS_OPENAPI_GENERATOR_CODEGEN_GAV_SCANNING+++` +endif::add-copy-button-to-env-var[] +-- +|boolean +|`+++true+++` + a|icon:lock[title=Fixed at build time] [[quarkus-openapi-generator_quarkus-openapi-generator-codegen-template-base-dir]] [.property-path]##link:#quarkus-openapi-generator_quarkus-openapi-generator-codegen-template-base-dir[`quarkus.openapi-generator.codegen.template-base-dir`]## ifdef::add-copy-button-to-config-props[] config_property_copy_button:+++quarkus.openapi-generator.codegen.template-base-dir+++[] @@ -622,6 +643,48 @@ endif::add-copy-button-to-env-var[] |string | +a|icon:lock[title=Fixed at build time] [[quarkus-openapi-generator_quarkus-openapi-generator-codegen-artifact-id-filter]] [.property-path]##link:#quarkus-openapi-generator_quarkus-openapi-generator-codegen-artifact-id-filter[`quarkus.openapi-generator.codegen.artifact-id-filter`]## +ifdef::add-copy-button-to-config-props[] +config_property_copy_button:+++quarkus.openapi-generator.codegen.artifact-id-filter+++[] +endif::add-copy-button-to-config-props[] + + +[.description] +-- +Option to filter artifactId from generation + + +ifdef::add-copy-button-to-env-var[] +Environment variable: env_var_with_copy_button:+++QUARKUS_OPENAPI_GENERATOR_CODEGEN_ARTIFACT_ID_FILTER+++[] +endif::add-copy-button-to-env-var[] +ifndef::add-copy-button-to-env-var[] +Environment variable: `+++QUARKUS_OPENAPI_GENERATOR_CODEGEN_ARTIFACT_ID_FILTER+++` +endif::add-copy-button-to-env-var[] +-- +|string +|`+++.*openapi.*+++` + +a|icon:lock[title=Fixed at build time] [[quarkus-openapi-generator_quarkus-openapi-generator-codegen-exclude-gavs]] [.property-path]##link:#quarkus-openapi-generator_quarkus-openapi-generator-codegen-exclude-gavs[`quarkus.openapi-generator.codegen.exclude-gavs`]## +ifdef::add-copy-button-to-config-props[] +config_property_copy_button:+++quarkus.openapi-generator.codegen.exclude-gavs+++[] +endif::add-copy-button-to-config-props[] + + +[.description] +-- +Option to exclude GAVs from generation + + +ifdef::add-copy-button-to-env-var[] +Environment variable: env_var_with_copy_button:+++QUARKUS_OPENAPI_GENERATOR_CODEGEN_EXCLUDE_GAVS+++[] +endif::add-copy-button-to-env-var[] +ifndef::add-copy-button-to-env-var[] +Environment variable: `+++QUARKUS_OPENAPI_GENERATOR_CODEGEN_EXCLUDE_GAVS+++` +endif::add-copy-button-to-env-var[] +-- +|list of string +| + a|icon:lock[title=Fixed at build time] [[quarkus-openapi-generator_quarkus-openapi-generator-codegen-default-security-scheme]] [.property-path]##link:#quarkus-openapi-generator_quarkus-openapi-generator-codegen-default-security-scheme[`quarkus.openapi-generator.codegen.default-security-scheme`]## ifdef::add-copy-button-to-config-props[] config_property_copy_button:+++quarkus.openapi-generator.codegen.default-security-scheme+++[]