Skip to content

Commit 25d0d06

Browse files
Improve shouldRun method (#1142) (#1146)
Co-authored-by: Matheus Cruz <[email protected]>
1 parent 72347d8 commit 25d0d06

File tree

2 files changed

+21
-10
lines changed

2 files changed

+21
-10
lines changed

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
public interface ServerCodegenConfig {
88

99
String DEFAULT_PACKAGE = "io.apicurio.api";
10+
String DEFAULT_DIR = "openapi";
1011

1112
/**
1213
* The OpenAPI specification filename.

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

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

3+
import static io.quarkiverse.openapi.server.generator.deployment.ServerCodegenConfig.DEFAULT_DIR;
4+
35
import java.io.File;
46
import java.nio.file.Files;
57
import java.nio.file.Path;
68
import java.util.Arrays;
9+
import java.util.Optional;
710

811
import org.eclipse.microprofile.config.Config;
912
import org.slf4j.Logger;
@@ -36,27 +39,34 @@ public String inputDirectory() {
3639
return "resources";
3740
}
3841

39-
private Path getInputBaseDir(final Path sourceDir, final Config config) {
40-
return config.getOptionalValue(CodegenConfig.getInputBaseDirPropertyName(), String.class)
41-
.map(inputBaseDir -> {
42-
int srcIndex = sourceDir.toString().lastIndexOf("src");
43-
return Path.of(sourceDir.toString().substring(0, srcIndex), inputBaseDir);
44-
}).orElse(Path.of(sourceDir.toString(), "openapi"));
42+
private Optional<String> getInputBaseDirRelativeToModule(final Path sourceDir, final Config config) {
43+
return config.getOptionalValue(CodegenConfig.getInputBaseDirPropertyName(), String.class).map(baseDir -> {
44+
int srcIndex = sourceDir.toString().lastIndexOf("src");
45+
return srcIndex < 0 ? null : Path.of(sourceDir.toString().substring(0, srcIndex), baseDir).toString();
46+
});
4547
}
4648

4749
@Override
4850
public boolean shouldRun(Path sourceDir, Config config) {
49-
boolean specIsPresent = config.getOptionalValue(CodegenConfig.getSpecPropertyName(), String.class).isPresent();
50-
if (!specIsPresent) {
51+
Optional<String> possibleSpecPropertyName = config.getOptionalValue(CodegenConfig.getSpecPropertyName(), String.class);
52+
if (possibleSpecPropertyName.isEmpty()) {
5153
log.warn("The {} property is not present, the code generation will be ignored",
5254
CodegenConfig.getSpecPropertyName());
55+
return false;
56+
}
57+
String specPropertyName = possibleSpecPropertyName.get();
58+
String relativeInputBaseDir = getInputBaseDirRelativeToModule(sourceDir, config).orElse(null);
59+
if (relativeInputBaseDir != null) {
60+
return Files.exists(Path.of(relativeInputBaseDir).resolve(specPropertyName));
61+
} else {
62+
return Files.exists(sourceDir.resolve(DEFAULT_DIR).resolve(specPropertyName));
5363
}
54-
return specIsPresent;
5564
}
5665

5766
@Override
5867
public boolean trigger(CodeGenContext context) throws CodeGenException {
59-
final Path openApiDir = getInputBaseDir(context.inputDir(), context.config());
68+
final Path openApiDir = Path.of(getInputBaseDirRelativeToModule(context.inputDir(), context.config())
69+
.orElse(context.inputDir().resolve(DEFAULT_DIR).toString()));
6070

6171
validateOpenApiDir(context, openApiDir);
6272

0 commit comments

Comments
 (0)