diff --git a/pom.xml b/pom.xml
index f4f8604e..d3310163 100644
--- a/pom.xml
+++ b/pom.xml
@@ -29,7 +29,7 @@
UTF-8
UTF-8
3.20.1
- 1.2.1.Final
+ 1.2.5.Final
3.27.0
3.27.3
4.1.2
diff --git a/server/deployment/src/main/java/io/quarkiverse/openapi/server/generator/deployment/CodegenConfig.java b/server/deployment/src/main/java/io/quarkiverse/openapi/server/generator/deployment/CodegenConfig.java
index 1ff20a99..5b86ea19 100755
--- a/server/deployment/src/main/java/io/quarkiverse/openapi/server/generator/deployment/CodegenConfig.java
+++ b/server/deployment/src/main/java/io/quarkiverse/openapi/server/generator/deployment/CodegenConfig.java
@@ -14,6 +14,7 @@ public interface CodegenConfig extends ServerCodegenConfig {
String INPUT_BASE_DIR = CODEGEN_TIME_CONFIG_PREFIX + ".input-base-dir";
String CODEGEN_REACTIVE = CODEGEN_TIME_CONFIG_PREFIX + ".reactive";
String GENERATE_BUILDERS = CODEGEN_TIME_CONFIG_PREFIX + ".builders";
+ String CODEGEN_BEAN_VALIDATION = CODEGEN_TIME_CONFIG_PREFIX + ".bean-validation";
static String getBasePackagePropertyName() {
return CODEGEN_BASE_PACKAGE;
@@ -34,4 +35,8 @@ static String getCodegenReactive() {
static String getGenerateBuilders() {
return GENERATE_BUILDERS;
}
+
+ static String getUseBeanValidation() {
+ return CODEGEN_BEAN_VALIDATION;
+ }
}
diff --git a/server/deployment/src/main/java/io/quarkiverse/openapi/server/generator/deployment/ServerCodegenConfig.java b/server/deployment/src/main/java/io/quarkiverse/openapi/server/generator/deployment/ServerCodegenConfig.java
index 9d502617..9766f412 100644
--- a/server/deployment/src/main/java/io/quarkiverse/openapi/server/generator/deployment/ServerCodegenConfig.java
+++ b/server/deployment/src/main/java/io/quarkiverse/openapi/server/generator/deployment/ServerCodegenConfig.java
@@ -37,4 +37,10 @@ public interface ServerCodegenConfig {
*/
@WithDefault(DEFAULT_PACKAGE)
Optional basePackage();
+
+ /**
+ * Whether it must generate resources and beans using bean validation (JSR-303).
+ */
+ @WithDefault("false")
+ boolean useBeanValidation();
}
diff --git a/server/deployment/src/main/java/io/quarkiverse/openapi/server/generator/deployment/codegen/ApicurioCodegenWrapper.java b/server/deployment/src/main/java/io/quarkiverse/openapi/server/generator/deployment/codegen/ApicurioCodegenWrapper.java
index 4e7cd38a..d0e3de2c 100755
--- a/server/deployment/src/main/java/io/quarkiverse/openapi/server/generator/deployment/codegen/ApicurioCodegenWrapper.java
+++ b/server/deployment/src/main/java/io/quarkiverse/openapi/server/generator/deployment/codegen/ApicurioCodegenWrapper.java
@@ -1,7 +1,5 @@
package io.quarkiverse.openapi.server.generator.deployment.codegen;
-import static io.quarkiverse.openapi.server.generator.deployment.CodegenConfig.getBasePackagePropertyName;
-import static io.quarkiverse.openapi.server.generator.deployment.CodegenConfig.getCodegenReactive;
import static io.quarkiverse.openapi.server.generator.deployment.ServerCodegenConfig.DEFAULT_PACKAGE;
import java.io.File;
@@ -22,6 +20,7 @@
import io.apicurio.hub.api.codegen.JaxRsProjectSettings;
import io.apicurio.hub.api.codegen.OpenApi2JaxRs;
+import io.quarkiverse.openapi.server.generator.deployment.CodegenConfig;
import io.quarkus.bootstrap.prebuild.CodeGenException;
public class ApicurioCodegenWrapper {
@@ -42,6 +41,8 @@ public ApicurioCodegenWrapper(Config config, File outdir, JaxRsProjectSettings p
this.projectSettings = projectSettings;
this.projectSettings.setJavaPackage(getBasePackage());
this.projectSettings.setReactive(getReactiveValue());
+ this.projectSettings.setUseJsr303(getUseBeanValidation());
+ this.projectSettings.setGenerateBuilders(getGenerateBuilders());
}
public void generate(Path openApiResource) throws CodeGenException {
@@ -63,14 +64,11 @@ public void generate(Path openApiResource) throws CodeGenException {
try (FileOutputStream fos = new FileOutputStream(zipFile);
FileInputStream openApiStream = new FileInputStream(openApiFile)) {
- OpenApi2JaxRs generator = new OpenApi2JaxRs() {
- {
- config = new ConfigurableGenerationConfig(ApicurioCodegenWrapper.this.config);
- }
- };
+ OpenApi2JaxRs generator = new OpenApi2JaxRs();
generator.setSettings(projectSettings);
generator.setUpdateOnly(true);
generator.setOpenApiDocument(openApiStream);
+
log.info("Generating code...");
generator.generate(fos);
} catch (Exception e) {
@@ -114,13 +112,23 @@ private void unzip(File fromZipFile, File toOutputDir) throws IOException {
private String getBasePackage() {
return config
- .getOptionalValue(getBasePackagePropertyName(), String.class)
+ .getOptionalValue(CodegenConfig.getBasePackagePropertyName(), String.class)
.orElse(DEFAULT_PACKAGE);
}
private Boolean getReactiveValue() {
return config
- .getOptionalValue(getCodegenReactive(), Boolean.class)
+ .getOptionalValue(CodegenConfig.getCodegenReactive(), Boolean.class)
+ .orElse(Boolean.FALSE);
+ }
+
+ private Boolean getUseBeanValidation() {
+ return config.getOptionalValue(CodegenConfig.getUseBeanValidation(), Boolean.class)
+ .orElse(Boolean.FALSE);
+ }
+
+ private Boolean getGenerateBuilders() {
+ return config.getOptionalValue(CodegenConfig.getGenerateBuilders(), Boolean.class)
.orElse(Boolean.FALSE);
}
diff --git a/server/deployment/src/main/java/io/quarkiverse/openapi/server/generator/deployment/codegen/ConfigurableGenerationConfig.java b/server/deployment/src/main/java/io/quarkiverse/openapi/server/generator/deployment/codegen/ConfigurableGenerationConfig.java
deleted file mode 100644
index f54ec10a..00000000
--- a/server/deployment/src/main/java/io/quarkiverse/openapi/server/generator/deployment/codegen/ConfigurableGenerationConfig.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package io.quarkiverse.openapi.server.generator.deployment.codegen;
-
-import org.eclipse.microprofile.config.Config;
-import org.jsonschema2pojo.DefaultGenerationConfig;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import io.quarkiverse.openapi.server.generator.deployment.CodegenConfig;
-
-public class ConfigurableGenerationConfig extends DefaultGenerationConfig {
-
- private static final Logger log = LoggerFactory.getLogger(ConfigurableGenerationConfig.class);
-
- private final boolean generateBuilders;
-
- public ConfigurableGenerationConfig(Config config) {
- generateBuilders = config
- .getOptionalValue(CodegenConfig.getGenerateBuilders(), Boolean.class)
- .orElse(Boolean.FALSE);
- log.debug("generateBuilders={}", generateBuilders);
- }
-
- @Override
- public boolean isGenerateBuilders() {
- return generateBuilders;
- }
-
-}