Skip to content

Commit 68c05c2

Browse files
#192 Change OpenApiGeneratorCodeGenBase#shouldRun to throw an exception rather than return false (#314) (#316)
* #192 Change OpenApiGeneratorCodeGenBase#shouldRun to throw an exception rather than return fals * #192 add input-base-dir path on properties to generate-code-tests step * Revert "#192 add input-base-dir path on properties to generate-code-tests step" This reverts commit db74b9e. * #192 add condition to test path (cherry picked from commit 84060f8) Co-authored-by: Bruno Alves <[email protected]>
1 parent 582eadb commit 68c05c2

File tree

1 file changed

+20
-10
lines changed

1 file changed

+20
-10
lines changed

deployment/src/main/java/io/quarkiverse/openapi/generator/deployment/codegen/OpenApiGeneratorCodeGenBase.java

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import java.nio.file.Files;
1919
import java.nio.file.Path;
2020
import java.util.List;
21+
import java.util.Optional;
2122
import java.util.stream.Stream;
2223

2324
import org.eclipse.microprofile.config.Config;
@@ -67,11 +68,19 @@ public String inputDirectory() {
6768

6869
@Override
6970
public boolean shouldRun(Path sourceDir, Config config) {
70-
String inputBaseDir = getInputBaseDirRelativeToModule(sourceDir, config);
71-
if (inputBaseDir != null && !Files.isDirectory(Path.of(inputBaseDir))) {
72-
throw new OpenApiGeneratorException(String.format("Invalid path on %s: %s", INPUT_BASE_DIR, inputBaseDir));
73-
}
74-
return inputBaseDir != null || Files.isDirectory(sourceDir);
71+
Optional<String> inputBaseDir = getInputBaseDirRelativeToModule(sourceDir, config);
72+
inputBaseDir.ifPresentOrElse(s -> {
73+
if (!Files.isDirectory(Path.of(s))) {
74+
throw new OpenApiGeneratorException(String.format("Invalid path on %s: %s", INPUT_BASE_DIR, s));
75+
}
76+
}, () -> {
77+
if (!Files.isDirectory(sourceDir)
78+
&& !sourceDir.endsWith(Path.of("src", "test", this.inputDirectory()))) {
79+
throw new OpenApiGeneratorException(String.format("Invalid path on %s: %s", INPUT_BASE_DIR, sourceDir));
80+
}
81+
});
82+
83+
return true;
7584
}
7685

7786
protected boolean isRestEasyReactive(CodeGenContext context) {
@@ -83,8 +92,8 @@ protected boolean isRestEasyReactive(CodeGenContext context) {
8392
@Override
8493
public boolean trigger(CodeGenContext context) throws CodeGenException {
8594
final Path outDir = context.outDir();
86-
String inputBaseDir = getInputBaseDirRelativeToModule(context.inputDir(), context.config());
87-
final Path openApiDir = inputBaseDir != null ? Path.of(inputBaseDir) : context.inputDir();
95+
Optional<String> inputBaseDir = getInputBaseDirRelativeToModule(context.inputDir(), context.config());
96+
final Path openApiDir = inputBaseDir.map(Path::of).orElseGet(context::inputDir);
8897
final List<String> filesToInclude = context.config().getOptionalValues(INCLUDE_FILES, String.class).orElse(List.of());
8998
final List<String> filesToExclude = context.config().getOptionalValues(EXCLUDE_FILES, String.class).orElse(List.of());
9099

@@ -136,7 +145,8 @@ private boolean isJacksonReactiveClient(ResolvedDependency resolvedDependency) {
136145
}
137146

138147
// TODO: do not generate if the output dir has generated files and the openapi file has the same checksum of the previous run
139-
protected void generate(final Config config, final Path openApiFilePath, final Path outDir, boolean isRestEasyReactive) {
148+
protected void generate(final Config config, final Path openApiFilePath, final Path outDir,
149+
boolean isRestEasyReactive) {
140150
final String basePackage = getBasePackage(config, openApiFilePath);
141151
final Boolean verbose = config.getOptionalValue(VERBOSE_PROPERTY_NAME, Boolean.class).orElse(false);
142152
final Boolean validateSpec = config.getOptionalValue(VALIDATE_SPEC_PROPERTY_NAME, Boolean.class).orElse(true);
@@ -195,10 +205,10 @@ private String getBasePackage(final Config config, final Path openApiFilePath) {
195205
.orElse(String.format("%s.%s", DEFAULT_PACKAGE, getSanitizedFileName(openApiFilePath)));
196206
}
197207

198-
private String getInputBaseDirRelativeToModule(final Path sourceDir, final Config config) {
208+
private Optional<String> getInputBaseDirRelativeToModule(final Path sourceDir, final Config config) {
199209
return config.getOptionalValue(INPUT_BASE_DIR, String.class).map(inputBaseDir -> {
200210
int srcIndex = sourceDir.toString().lastIndexOf("src");
201211
return srcIndex < 0 ? null : sourceDir.toString().substring(0, srcIndex) + inputBaseDir;
202-
}).orElse(null);
212+
});
203213
}
204214
}

0 commit comments

Comments
 (0)