Skip to content

More descriptive exceptions need to be thrown #133

Closed
@SENIAN

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