Skip to content

Commit 0e1dc62

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

File tree

5 files changed

+38
-48
lines changed

5 files changed

+38
-48
lines changed

pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@
2828
<maven.compiler.release>17</maven.compiler.release>
2929
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
3030
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
31-
<quarkus.version>3.20.1</quarkus.version>
32-
<apicurio.version>1.2.1.Final</apicurio.version>
31+
<apicurio.version>1.2.5.Final</apicurio.version>
32+
<quarkus.version>3.25.0</quarkus.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: 25 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,13 @@
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;
5-
import static io.quarkiverse.openapi.server.generator.deployment.ServerCodegenConfig.DEFAULT_PACKAGE;
3+
import io.apicurio.hub.api.codegen.JaxRsProjectSettings;
4+
import io.apicurio.hub.api.codegen.OpenApi2JaxRs;
5+
import io.quarkiverse.openapi.server.generator.deployment.CodegenConfig;
6+
import io.quarkus.bootstrap.prebuild.CodeGenException;
7+
import org.apache.commons.io.IOUtils;
8+
import org.eclipse.microprofile.config.Config;
9+
import org.slf4j.Logger;
10+
import org.slf4j.LoggerFactory;
611

712
import java.io.File;
813
import java.io.FileInputStream;
@@ -15,14 +20,7 @@
1520
import java.util.zip.ZipEntry;
1621
import java.util.zip.ZipFile;
1722

18-
import org.apache.commons.io.IOUtils;
19-
import org.eclipse.microprofile.config.Config;
20-
import org.slf4j.Logger;
21-
import org.slf4j.LoggerFactory;
22-
23-
import io.apicurio.hub.api.codegen.JaxRsProjectSettings;
24-
import io.apicurio.hub.api.codegen.OpenApi2JaxRs;
25-
import io.quarkus.bootstrap.prebuild.CodeGenException;
23+
import static io.quarkiverse.openapi.server.generator.deployment.ServerCodegenConfig.DEFAULT_PACKAGE;
2624

2725
public class ApicurioCodegenWrapper {
2826

@@ -42,6 +40,8 @@ public ApicurioCodegenWrapper(Config config, File outdir, JaxRsProjectSettings p
4240
this.projectSettings = projectSettings;
4341
this.projectSettings.setJavaPackage(getBasePackage());
4442
this.projectSettings.setReactive(getReactiveValue());
43+
this.projectSettings.setUseJsr303(getUseBeanValidation());
44+
this.projectSettings.setGenerateBuilders(getGenerateBuilders());
4545
}
4646

4747
public void generate(Path openApiResource) throws CodeGenException {
@@ -63,14 +63,11 @@ public void generate(Path openApiResource) throws CodeGenException {
6363

6464
try (FileOutputStream fos = new FileOutputStream(zipFile);
6565
FileInputStream openApiStream = new FileInputStream(openApiFile)) {
66-
OpenApi2JaxRs generator = new OpenApi2JaxRs() {
67-
{
68-
config = new ConfigurableGenerationConfig(ApicurioCodegenWrapper.this.config);
69-
}
70-
};
66+
OpenApi2JaxRs generator = new OpenApi2JaxRs();
7167
generator.setSettings(projectSettings);
7268
generator.setUpdateOnly(true);
7369
generator.setOpenApiDocument(openApiStream);
70+
7471
log.info("Generating code...");
7572
generator.generate(fos);
7673
} catch (Exception e) {
@@ -114,13 +111,23 @@ private void unzip(File fromZipFile, File toOutputDir) throws IOException {
114111

115112
private String getBasePackage() {
116113
return config
117-
.getOptionalValue(getBasePackagePropertyName(), String.class)
114+
.getOptionalValue(CodegenConfig.getBasePackagePropertyName(), String.class)
118115
.orElse(DEFAULT_PACKAGE);
119116
}
120117

121118
private Boolean getReactiveValue() {
122119
return config
123-
.getOptionalValue(getCodegenReactive(), Boolean.class)
120+
.getOptionalValue(CodegenConfig.getCodegenReactive(), Boolean.class)
121+
.orElse(Boolean.FALSE);
122+
}
123+
124+
private Boolean getUseBeanValidation() {
125+
return config.getOptionalValue(CodegenConfig.getUseBeanValidation(), Boolean.class)
126+
.orElse(Boolean.FALSE);
127+
}
128+
129+
private Boolean getGenerateBuilders() {
130+
return config.getOptionalValue(CodegenConfig.getGenerateBuilders(), Boolean.class)
124131
.orElse(Boolean.FALSE);
125132
}
126133

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)