rest-openapi code generation does not work with Gradle
- Dominant language
- Java
- Stars
- 302
- Forks
- 232
- Avg merge
- 1d 20h
- Merged PRs (30d)
- 114
Description
### Bug description
There is a class loading issue. Seems resolving stuff via the Java `ServiceLoader` has some problems:
```
Caused by: java.util.ServiceConfigurationError: io.swagger.codegen.v3.CodegenConfig: Provider io.swagger.codegen.v3.generators.html.StaticHtmlCodegen could not be instantiated
at io.swagger.codegen.v3.CodegenConfigLoader.forName(CodegenConfigLoader.java:19)
at io.swagger.codegen.v3.config.CodegenConfigurator.loadCodegenConfig(CodegenConfigurator.java:673)
at io.swagger.codegen.v3.config.CodegenConfigurator.toClientOptInput(CodegenConfigurator.java:518)
at org.apache.camel.quarkus.component.rest.openapi.deployment.CamelQuarkusSwaggerCodegenProvider.trigger(CamelQuarkusSwaggerCodegenProvider.java:145)
at io.quarkus.deployment.CodeGenerator.lambda$trigger$4(CodeGenerator.java:206)
at io.quarkus.deployment.CodeGenerator.callWithClassloader(CodeGenerator.java:181)
at io.quarkus.deployment.CodeGenerator.trigger(CodeGenerator.java:203)
at io.quarkus.deployment.CodeGenerator.initAndRun(CodeGenerator.java:80)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
... 23 more
Caused by: java.lang.NoClassDefFoundError: org/commonmark/parser/Parser
at io.swagger.codegen.v3.utils.Markdown.(Markdown.java:15)
at io.swagger.codegen.v3.generators.html.StaticHtmlCodegen.(StaticHtmlCodegen.java:160)
at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:62)
... 32 more
Caused by: java.lang.ClassNotFoundException: org.commonmark.parser.Parser
at io.quarkus.bootstrap.classloading.QuarkusClassLoader.loadClass(QuarkusClassLoader.java:569)
at io.quarkus.bootstrap.classloading.QuarkusClassLoader.loadClass(QuarkusClassLoader.java:517)
... 35 more
```
Contributor guide
No contributing guide indexed for this repository
Research direction
Start at CamelQuarkusSwaggerCodegenProvider.trigger and trace how the Gradle rest-openapi code-generation classloader resolves Swagger Codegen providers. Reproduce the failure using the stack trace and inspect the missing org.commonmark.parser.Parser dependency. Done means rest-openapi code generation works with Gradle without the ServiceLoader or ClassNotFoundException shown here.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- build-system
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100