Skip to content

Commit f6f5c9b

Browse files
authored
[cli][gradle] Validate now uses parseOptions w/setResolve (#5471)
* [cli] Validate now uses parseOptions w/setResolve The validate command now uses ParseOptions#setResolve(true) to match how we parse in CodegenConfigurator and online's Generate. Without this option, the OpenAPI 3 parser skips the "resolve" block, which made lead to validations in the command not matching validations during generation. * [gradle] Validate now uses parseOptions w/setResolve The Graldle validate command now uses ParseOptions#setResolve(true) to match how we parse in CodegenConfigurator and online's Generate. Without this option, the OpenAPI 3 parser skips the "resolve" block, which made lead to validations in the command not matching validations during generation.
1 parent a03f7a5 commit f6f5c9b

2 files changed

Lines changed: 11 additions & 4 deletions

File tree

  • modules
    • openapi-generator-cli/src/main/java/org/openapitools/codegen/cmd
    • openapi-generator-gradle-plugin/src/main/kotlin/org/openapitools/generator/gradle/plugin/tasks

modules/openapi-generator-cli/src/main/java/org/openapitools/codegen/cmd/Validate.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222

2323
import io.swagger.parser.OpenAPIParser;
2424
import io.swagger.v3.oas.models.OpenAPI;
25+
import io.swagger.v3.parser.core.models.ParseOptions;
2526
import io.swagger.v3.parser.core.models.SwaggerParseResult;
2627
import org.apache.commons.lang3.text.WordUtils;
2728
import org.openapitools.codegen.validation.ValidationResult;
@@ -45,8 +46,9 @@ public class Validate implements Runnable {
4546
@Override
4647
public void run() {
4748
System.out.println("Validating spec (" + spec + ")");
48-
49-
SwaggerParseResult result = new OpenAPIParser().readLocation(spec, null, null);
49+
ParseOptions options = new ParseOptions();
50+
options.setResolve(true);
51+
SwaggerParseResult result = new OpenAPIParser().readLocation(spec, null, options);
5052
List<String> messageList = result.getMessages();
5153
Set<String> errors = new HashSet<>(messageList);
5254
Set<String> warnings = new HashSet<>();

modules/openapi-generator-gradle-plugin/src/main/kotlin/org/openapitools/generator/gradle/plugin/tasks/ValidateTask.kt

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,13 @@
1919
package org.openapitools.generator.gradle.plugin.tasks
2020

2121
import io.swagger.parser.OpenAPIParser
22+
import io.swagger.v3.parser.core.models.ParseOptions
2223
import org.gradle.api.DefaultTask
2324
import org.gradle.api.GradleException
25+
import org.gradle.api.logging.Logging
2426
import org.gradle.api.tasks.Internal
2527
import org.gradle.api.tasks.TaskAction
2628
import org.gradle.api.tasks.options.Option
27-
import org.gradle.api.logging.Logging
2829
import org.gradle.internal.logging.text.StyledTextOutput
2930
import org.gradle.internal.logging.text.StyledTextOutputFactory
3031
import org.gradle.kotlin.dsl.property
@@ -71,7 +72,11 @@ open class ValidateTask : DefaultTask() {
7172
val recommendations = recommend.get()
7273

7374
logger.quiet("Validating spec $spec")
74-
val result = OpenAPIParser().readLocation(spec, null, null)
75+
76+
val options = ParseOptions()
77+
options.isResolve = true
78+
79+
val result = OpenAPIParser().readLocation(spec, null, options)
7580
val messages = result.messages.toSet()
7681
val out = services.get(StyledTextOutputFactory::class.java).create("openapi")
7782

0 commit comments

Comments
 (0)