Skip to content

Commit eea2180

Browse files
committed
Add bean validation feature from apicurio-codegen 1.2.5.Final
1 parent 057cf8a commit eea2180

File tree

5 files changed

+29
-38
lines changed

5 files changed

+29
-38
lines changed

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
3030
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
3131
<quarkus.version>3.20.1</quarkus.version>
32-
<apicurio.version>1.2.1.Final</apicurio.version>
32+
<apicurio.version>1.2.5.Final</apicurio.version>
3333
<version.com.github.javaparser>3.27.0</version.com.github.javaparser>
3434
<version.org.assertj>3.27.3</version.org.assertj>
3535
<version.org.eclipse.microprofile.fault-tolerance>4.1.2</version.org.eclipse.microprofile.fault-tolerance>

server/deployment/src/main/java/io/quarkiverse/openapi/server/generator/deployment/CodegenConfig.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ public interface CodegenConfig extends ServerCodegenConfig {
1414
String INPUT_BASE_DIR = CODEGEN_TIME_CONFIG_PREFIX + ".input-base-dir";
1515
String CODEGEN_REACTIVE = CODEGEN_TIME_CONFIG_PREFIX + ".reactive";
1616
String GENERATE_BUILDERS = CODEGEN_TIME_CONFIG_PREFIX + ".builders";
17+
String CODEGEN_BEAN_VALIDATION = CODEGEN_TIME_CONFIG_PREFIX + ".bean-validation";
1718

1819
static String getBasePackagePropertyName() {
1920
return CODEGEN_BASE_PACKAGE;
@@ -34,4 +35,8 @@ static String getCodegenReactive() {
3435
static String getGenerateBuilders() {
3536
return GENERATE_BUILDERS;
3637
}
38+
39+
static String getUseBeanValidation() {
40+
return CODEGEN_BEAN_VALIDATION;
41+
}
3742
}

server/deployment/src/main/java/io/quarkiverse/openapi/server/generator/deployment/ServerCodegenConfig.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,4 +37,10 @@ public interface ServerCodegenConfig {
3737
*/
3838
@WithDefault(DEFAULT_PACKAGE)
3939
Optional<String> basePackage();
40+
41+
/**
42+
* Whether it must generate resources and beans using bean validation (JSR-303).
43+
*/
44+
@WithDefault("false")
45+
boolean useBeanValidation();
4046
}

server/deployment/src/main/java/io/quarkiverse/openapi/server/generator/deployment/codegen/ApicurioCodegenWrapper.java

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
package io.quarkiverse.openapi.server.generator.deployment.codegen;
22

3-
import static io.quarkiverse.openapi.server.generator.deployment.CodegenConfig.getBasePackagePropertyName;
4-
import static io.quarkiverse.openapi.server.generator.deployment.CodegenConfig.getCodegenReactive;
53
import static io.quarkiverse.openapi.server.generator.deployment.ServerCodegenConfig.DEFAULT_PACKAGE;
64

75
import java.io.File;
@@ -22,6 +20,7 @@
2220

2321
import io.apicurio.hub.api.codegen.JaxRsProjectSettings;
2422
import io.apicurio.hub.api.codegen.OpenApi2JaxRs;
23+
import io.quarkiverse.openapi.server.generator.deployment.CodegenConfig;
2524
import io.quarkus.bootstrap.prebuild.CodeGenException;
2625

2726
public class ApicurioCodegenWrapper {
@@ -42,6 +41,8 @@ public ApicurioCodegenWrapper(Config config, File outdir, JaxRsProjectSettings p
4241
this.projectSettings = projectSettings;
4342
this.projectSettings.setJavaPackage(getBasePackage());
4443
this.projectSettings.setReactive(getReactiveValue());
44+
this.projectSettings.setUseJsr303(getUseBeanValidation());
45+
this.projectSettings.setGenerateBuilders(getGenerateBuilders());
4546
}
4647

4748
public void generate(Path openApiResource) throws CodeGenException {
@@ -63,14 +64,11 @@ public void generate(Path openApiResource) throws CodeGenException {
6364

6465
try (FileOutputStream fos = new FileOutputStream(zipFile);
6566
FileInputStream openApiStream = new FileInputStream(openApiFile)) {
66-
OpenApi2JaxRs generator = new OpenApi2JaxRs() {
67-
{
68-
config = new ConfigurableGenerationConfig(ApicurioCodegenWrapper.this.config);
69-
}
70-
};
67+
OpenApi2JaxRs generator = new OpenApi2JaxRs();
7168
generator.setSettings(projectSettings);
7269
generator.setUpdateOnly(true);
7370
generator.setOpenApiDocument(openApiStream);
71+
7472
log.info("Generating code...");
7573
generator.generate(fos);
7674
} catch (Exception e) {
@@ -114,13 +112,23 @@ private void unzip(File fromZipFile, File toOutputDir) throws IOException {
114112

115113
private String getBasePackage() {
116114
return config
117-
.getOptionalValue(getBasePackagePropertyName(), String.class)
115+
.getOptionalValue(CodegenConfig.getBasePackagePropertyName(), String.class)
118116
.orElse(DEFAULT_PACKAGE);
119117
}
120118

121119
private Boolean getReactiveValue() {
122120
return config
123-
.getOptionalValue(getCodegenReactive(), Boolean.class)
121+
.getOptionalValue(CodegenConfig.getCodegenReactive(), Boolean.class)
122+
.orElse(Boolean.FALSE);
123+
}
124+
125+
private Boolean getUseBeanValidation() {
126+
return config.getOptionalValue(CodegenConfig.getUseBeanValidation(), Boolean.class)
127+
.orElse(Boolean.FALSE);
128+
}
129+
130+
private Boolean getGenerateBuilders() {
131+
return config.getOptionalValue(CodegenConfig.getGenerateBuilders(), Boolean.class)
124132
.orElse(Boolean.FALSE);
125133
}
126134

server/deployment/src/main/java/io/quarkiverse/openapi/server/generator/deployment/codegen/ConfigurableGenerationConfig.java

Lines changed: 0 additions & 28 deletions
This file was deleted.

0 commit comments

Comments
 (0)