mirror of
https://github.com/OpenAPITools/openapi-generator.git
synced 2025-07-04 14:40:53 +00:00
[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.
This commit is contained in:
parent
a03f7a58c3
commit
f6f5c9b8b9
@ -22,6 +22,7 @@ import io.airlift.airline.Option;
|
|||||||
|
|
||||||
import io.swagger.parser.OpenAPIParser;
|
import io.swagger.parser.OpenAPIParser;
|
||||||
import io.swagger.v3.oas.models.OpenAPI;
|
import io.swagger.v3.oas.models.OpenAPI;
|
||||||
|
import io.swagger.v3.parser.core.models.ParseOptions;
|
||||||
import io.swagger.v3.parser.core.models.SwaggerParseResult;
|
import io.swagger.v3.parser.core.models.SwaggerParseResult;
|
||||||
import org.apache.commons.lang3.text.WordUtils;
|
import org.apache.commons.lang3.text.WordUtils;
|
||||||
import org.openapitools.codegen.validation.ValidationResult;
|
import org.openapitools.codegen.validation.ValidationResult;
|
||||||
@ -45,8 +46,9 @@ public class Validate implements Runnable {
|
|||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
System.out.println("Validating spec (" + spec + ")");
|
System.out.println("Validating spec (" + spec + ")");
|
||||||
|
ParseOptions options = new ParseOptions();
|
||||||
SwaggerParseResult result = new OpenAPIParser().readLocation(spec, null, null);
|
options.setResolve(true);
|
||||||
|
SwaggerParseResult result = new OpenAPIParser().readLocation(spec, null, options);
|
||||||
List<String> messageList = result.getMessages();
|
List<String> messageList = result.getMessages();
|
||||||
Set<String> errors = new HashSet<>(messageList);
|
Set<String> errors = new HashSet<>(messageList);
|
||||||
Set<String> warnings = new HashSet<>();
|
Set<String> warnings = new HashSet<>();
|
||||||
|
@ -19,12 +19,13 @@
|
|||||||
package org.openapitools.generator.gradle.plugin.tasks
|
package org.openapitools.generator.gradle.plugin.tasks
|
||||||
|
|
||||||
import io.swagger.parser.OpenAPIParser
|
import io.swagger.parser.OpenAPIParser
|
||||||
|
import io.swagger.v3.parser.core.models.ParseOptions
|
||||||
import org.gradle.api.DefaultTask
|
import org.gradle.api.DefaultTask
|
||||||
import org.gradle.api.GradleException
|
import org.gradle.api.GradleException
|
||||||
|
import org.gradle.api.logging.Logging
|
||||||
import org.gradle.api.tasks.Internal
|
import org.gradle.api.tasks.Internal
|
||||||
import org.gradle.api.tasks.TaskAction
|
import org.gradle.api.tasks.TaskAction
|
||||||
import org.gradle.api.tasks.options.Option
|
import org.gradle.api.tasks.options.Option
|
||||||
import org.gradle.api.logging.Logging
|
|
||||||
import org.gradle.internal.logging.text.StyledTextOutput
|
import org.gradle.internal.logging.text.StyledTextOutput
|
||||||
import org.gradle.internal.logging.text.StyledTextOutputFactory
|
import org.gradle.internal.logging.text.StyledTextOutputFactory
|
||||||
import org.gradle.kotlin.dsl.property
|
import org.gradle.kotlin.dsl.property
|
||||||
@ -71,7 +72,11 @@ open class ValidateTask : DefaultTask() {
|
|||||||
val recommendations = recommend.get()
|
val recommendations = recommend.get()
|
||||||
|
|
||||||
logger.quiet("Validating spec $spec")
|
logger.quiet("Validating spec $spec")
|
||||||
val result = OpenAPIParser().readLocation(spec, null, null)
|
|
||||||
|
val options = ParseOptions()
|
||||||
|
options.isResolve = true
|
||||||
|
|
||||||
|
val result = OpenAPIParser().readLocation(spec, null, options)
|
||||||
val messages = result.messages.toSet()
|
val messages = result.messages.toSet()
|
||||||
val out = services.get(StyledTextOutputFactory::class.java).create("openapi")
|
val out = services.get(StyledTextOutputFactory::class.java).create("openapi")
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user