Skip to content

More descriptive exceptions need to be thrown #133

Description

@SENIAN

Im unable to debug my openapi.yaml file properly if this validation error is thrown.
I've got another validator for my openapi spec and this reports that my openapi spec has no validation errors.

Plugin settings:

 <groupId>io.openapiprocessor</groupId>
<artifactId>openapi-processor-maven-plugin</artifactId>
<version>2021.1</version>
<configuration>
<id>openapi-generation</id>
<apiPath>${project.basedir}/openapi.yaml</apiPath>
</configuration>
<executions>
<execution>
<id>openapi-generation</id>
<phase>generate-sources</phase>
<goals>
<goal>process</goal>
</goals>
<configuration>
<id>spring</id>
<options>
<values>
<targetDir>${project.basedir}/target/generated-sources</targetDir>
<mapping>${project.basedir}/openapi-mapping.yaml</mapping>
<parser>OPENAPI4J</parser>
<showWarnings>true</showWarnings>
<bean-validation>true</bean-validation>
</values>
</options>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>io.openapiprocessor</groupId>
<artifactId>openapi-processor-core</artifactId>
<version>2021.4.2</version>
</dependency>
<dependency>
<groupId>io.openapiprocessor</groupId>
<artifactId>openapi-processor-spring</artifactId>
<version>2021.4</version>
</dependency>
</dependencies>
</plugin>

OpenAPI SPEC:

openapi: 3.0.3
info:
title: An API
version: '1.0'
paths:
/manager/epa:
patch:
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseMessage'
responses:
'200':
description: Successfully executed
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseMessage'
'400':
description: Bad Request
$ref: '#/components/responses/404'
'404':
$ref: '#/components/responses/404'
'500':
description: Internal error
content:
application/json:
schema:
type: string
get:
parameters:
- in: query
name: id
schema:
type: string
required: true
description: Retrieve an instance
responses:
'200':
description: Successfully executed
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseMessage'
'400':
$ref: '#/components/schemas/ResponseMessage'
'404':
$ref: '#/components/responses/404'
'500':
description: Internal error
content:
application/json:
schema:
type: string
components:
securitySchemes:
basicAuth:
type: http
scheme: basic
schemas:
ResponseMessage:
type: object
properties:
correlationId:
type: string
resultCode:
type: integer
resultDetails:
$ref: '#/components/schemas/MessageDetails'
MessageDetails:
type: object
properties:
exitCode:
type: integer
exitMessage:
type: string
res1:
type: string
res2:
type: string
stacktrace:
type: string
responses:
'200':
description: Successfully processed your request.
content:
text/plain:
schema:
$ref: '#/components/schemas/ResponseMessage'
'204':
description: Successfully updated
content:
text/plain:
schema:
$ref: '#/components/schemas/ResponseMessage'
'400':
description: The request was invalid
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseMessage'
'404':
description: Resource cannot be found or does not exist.
'500':
description:
Internal error
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseMessage'
security:
- basicAuth: []
Error thrown:
[ERROR] Failed to execute goal io.openapiprocessor:openapi-processor-maven-plugin:2021.1:process (openapi-generation) on project servicemanager-cc: openapi-processor-spring execution failed!: OpenApi3 validation failure -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal io.openapiprocessor:openapi-processor-maven-plugin:2021.1:process (openapi-generation) on project servicemanager-cc: openapi-processor-spring execution failed!
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:215)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:957)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:289)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:193)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:566)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
Caused by: org.apache.maven.plugin.MojoExecutionException: openapi-processor-spring execution failed!
at io.openapiprocessor.maven.ProcessMojo.execute (ProcessMojo.java:67)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:957)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:289)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:193)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:566)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
Caused by: org.openapi4j.core.validation.ValidationException: OpenApi3 validation failure
at org.openapi4j.parser.validation.v3.OpenApi3Validator.validate (OpenApi3Validator.java:28)
at org.openapi4j.parser.OpenApi3Parser.parse (OpenApi3Parser.java:41)
at org.openapi4j.parser.OpenApi3Parser.parse (OpenApi3Parser.java:17)
at org.openapi4j.parser.OpenApiParser.parse (OpenApiParser.java:53)
at io.openapiprocessor.core.parser.openapi4j.Parser.parse (Parser.kt:33)
at io.openapiprocessor.core.parser.Parser.parse (Parser.kt:29)
at io.openapiprocessor.spring.processor.SpringProcessor.run (SpringProcessor.kt:39)
at io.openapiprocessor.maven.ProcessorRunner.run (ProcessorRunner.java:31)
at io.openapiprocessor.maven.ProcessMojo.execute (ProcessMojo.java:60)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:957)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:289)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:193)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:566)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions