quarkusio / quarkus

Quarkus: Supersonic Subatomic Java.
https://quarkus.io
Apache License 2.0
13.82k stars 2.69k forks source link

[3.8.6] generate-code goal leads to NoSuchMethodError on io.quarkus.runtime.util.StringUtil.changePrefix #43883

Closed mcanzerini closed 1 month ago

mcanzerini commented 1 month ago

Describe the bug

We have an internal framework on top of quarkus with several extensions (built with quarkus 3.15.1). We wanted to ensure that our extensions are compatible with the LTS 3.8, so that I have downgraded quarkus in our test application (keeping the latest versions of extensions based on quarkus 3.15).

The app does not build anymore with this error at generate-code goal:

org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal io.quarkus.platform:quarkus-maven-plugin:3.8.6:generate-code (default) on project my-project: Quarkus code generation phase has failed
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:333)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:316)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:212)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:174)
    at org.apache.maven.lifecycle.internal.MojoExecutor.access$000 (MojoExecutor.java:75)
    at org.apache.maven.lifecycle.internal.MojoExecutor$1.run (MojoExecutor.java:162)
    at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute (DefaultMojosExecutionStrategy.java:39)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:159)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:105)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:73)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:53)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:118)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:261)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:173)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:101)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:906)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:283)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:206)
    at jdk.internal.reflect.DirectMethodHandleAccessor.invoke (DirectMethodHandleAccessor.java:103)
    at java.lang.reflect.Method.invoke (Method.java:580)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:283)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:226)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:407)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:348)
Caused by: org.apache.maven.plugin.MojoExecutionException: Quarkus code generation phase has failed
    at io.quarkus.maven.GenerateCodeMojo.generateCode (GenerateCodeMojo.java:94)
    at io.quarkus.maven.GenerateCodeMojo.doExecute (GenerateCodeMojo.java:54)
    at io.quarkus.maven.QuarkusBootstrapMojo.execute (QuarkusBootstrapMojo.java:171)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:126)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:328)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:316)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:212)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:174)
    at org.apache.maven.lifecycle.internal.MojoExecutor.access$000 (MojoExecutor.java:75)
    at org.apache.maven.lifecycle.internal.MojoExecutor$1.run (MojoExecutor.java:162)
    at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute (DefaultMojosExecutionStrategy.java:39)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:159)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:105)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:73)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:53)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:118)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:261)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:173)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:101)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:906)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:283)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:206)
    at jdk.internal.reflect.DirectMethodHandleAccessor.invoke (DirectMethodHandleAccessor.java:103)
    at java.lang.reflect.Method.invoke (Method.java:580)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:283)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:226)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:407)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:348)
Caused by: java.lang.reflect.InvocationTargetException
    at jdk.internal.reflect.DirectMethodHandleAccessor.invoke (DirectMethodHandleAccessor.java:118)
    at java.lang.reflect.Method.invoke (Method.java:580)
    at io.quarkus.maven.GenerateCodeMojo.generateCode (GenerateCodeMojo.java:88)
    at io.quarkus.maven.GenerateCodeMojo.doExecute (GenerateCodeMojo.java:54)
    at io.quarkus.maven.QuarkusBootstrapMojo.execute (QuarkusBootstrapMojo.java:171)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:126)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:328)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:316)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:212)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:174)
    at org.apache.maven.lifecycle.internal.MojoExecutor.access$000 (MojoExecutor.java:75)
    at org.apache.maven.lifecycle.internal.MojoExecutor$1.run (MojoExecutor.java:162)
    at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute (DefaultMojosExecutionStrategy.java:39)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:159)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:105)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:73)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:53)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:118)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:261)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:173)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:101)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:906)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:283)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:206)
    at jdk.internal.reflect.DirectMethodHandleAccessor.invoke (DirectMethodHandleAccessor.java:103)
    at java.lang.reflect.Method.invoke (Method.java:580)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:283)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:226)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:407)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:348)
Caused by: java.lang.NoSuchMethodError: 'java.lang.String io.quarkus.runtime.util.StringUtil.changePrefix(java.lang.String, java.lang.String, java.lang.String)'
    at io.quarkus.resteasy.reactive.common.runtime.ResteasyReactiveConfigRelocateInterceptor$1.apply (ResteasyReactiveConfigRelocateInterceptor.java:19)
    at io.quarkus.resteasy.reactive.common.runtime.ResteasyReactiveConfigRelocateInterceptor$1.apply (ResteasyReactiveConfigRelocateInterceptor.java:16)
    at io.smallrye.config.RelocateConfigSourceInterceptor.getValue (RelocateConfigSourceInterceptor.java:24)
    at io.smallrye.config.SmallRyeConfigSourceInterceptorContext.proceed (SmallRyeConfigSourceInterceptorContext.java:20)
    at io.smallrye.config.RelocateConfigSourceInterceptor.getValue (RelocateConfigSourceInterceptor.java:25)
    at io.quarkus.smallrye.openapi.runtime.OpenApiConfigMapping.getValue (OpenApiConfigMapping.java:30)
    at io.smallrye.config.SmallRyeConfigSourceInterceptorContext.proceed (SmallRyeConfigSourceInterceptorContext.java:20)
    at io.smallrye.config.SmallRyeConfigBuilder$3.getInterceptor (SmallRyeConfigBuilder.java:311)
    at io.smallrye.config.SmallRyeConfigBuilder$InterceptorWithPriority.getInterceptor (SmallRyeConfigBuilder.java:770)
    at io.smallrye.config.SmallRyeConfig$ConfigSources.<init> (SmallRyeConfig.java:728)
    at io.smallrye.config.SmallRyeConfig.<init> (SmallRyeConfig.java:81)
    at io.smallrye.config.SmallRyeConfigBuilder.build (SmallRyeConfigBuilder.java:724)
    at io.quarkus.deployment.configuration.BuildTimeConfigurationReader.initConfiguration (BuildTimeConfigurationReader.java:415)
    at io.quarkus.deployment.CodeGenerator.lambda$getConfig$6 (CodeGenerator.java:288)
    at io.quarkus.deployment.CodeGenerator.readConfig (CodeGenerator.java:350)
    at io.quarkus.deployment.CodeGenerator.getConfig (CodeGenerator.java:287)
    at io.quarkus.deployment.CodeGenerator.initAndRun (CodeGenerator.java:75)
    at jdk.internal.reflect.DirectMethodHandleAccessor.invoke (DirectMethodHandleAccessor.java:103)
    at java.lang.reflect.Method.invoke (Method.java:580)
    at io.quarkus.maven.GenerateCodeMojo.generateCode (GenerateCodeMojo.java:88)
    at io.quarkus.maven.GenerateCodeMojo.doExecute (GenerateCodeMojo.java:54)
    at io.quarkus.maven.QuarkusBootstrapMojo.execute (QuarkusBootstrapMojo.java:171)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:126)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:328)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:316)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:212)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:174)
    at org.apache.maven.lifecycle.internal.MojoExecutor.access$000 (MojoExecutor.java:75)
    at org.apache.maven.lifecycle.internal.MojoExecutor$1.run (MojoExecutor.java:162)
    at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute (DefaultMojosExecutionStrategy.java:39)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:159)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:105)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:73)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:53)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:118)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:261)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:173)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:101)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:906)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:283)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:206)
    at jdk.internal.reflect.DirectMethodHandleAccessor.invoke (DirectMethodHandleAccessor.java:103)
    at java.lang.reflect.Method.invoke (Method.java:580)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:283)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:226)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:407)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:348)

We have an extension based on quarkus-rest. The issue goes away when I downgrade this extension to a version with quarkus-resteasy-reactive. Is there any link?

Can someone help me on this? 🙂

geoand commented 1 month ago

Thanks for reporting.

Are you sure you are not mixing different Quarkus or RESTEasy Reactive versions?

mcanzerini commented 1 month ago

Hi, I made a dependency tree to be sure I was using the right Quarkus 3.8.6 version in all dependencies. It printed no other version.

Here is the output:

--- dependency:3.6.1:tree (default-cli) @ my-project ---
com.my.project:my-project:jar:1.3.0-SNAPSHOT
+- com.my.framework:my-framework-soap:jar:3.3.0:compile
|  +- io.quarkiverse.cxf:quarkus-cxf:jar:3.8.6:compile
|  |  +- io.quarkiverse.cxf:quarkus-cxf-saaj:jar:3.8.6:compile
|  |  |  \- com.sun.xml.messaging.saaj:saaj-impl:jar:2.0.1:compile
|  |  |     \- org.jvnet.staxex:stax-ex:jar:2.0.1:compile
|  |  +- io.quarkiverse.cxf:quarkus-cxf-axiom-api-stub:jar:3.8.6:compile
|  |  +- io.quarkiverse.cxf:quarkus-cxf-woodstox:jar:3.8.6:compile
|  |  +- org.apache.cxf:cxf-rt-features-logging:jar:4.0.5:compile
|  |  +- org.apache.cxf:cxf-rt-frontend-jaxws:jar:4.0.5:compile
|  |  |  +- xml-resolver:xml-resolver:jar:1.2:compile
|  |  |  +- org.apache.cxf:cxf-rt-bindings-soap:jar:4.0.5:compile
|  |  |  |  +- org.apache.cxf:cxf-rt-wsdl:jar:4.0.5:compile
|  |  |  |  \- org.apache.cxf:cxf-rt-databinding-jaxb:jar:4.0.5:compile
|  |  |  +- org.apache.cxf:cxf-rt-bindings-xml:jar:4.0.5:compile
|  |  |  +- org.apache.cxf:cxf-rt-frontend-simple:jar:4.0.5:compile
|  |  |  +- org.apache.cxf:cxf-rt-ws-addr:jar:4.0.5:compile
|  |  |  \- org.eclipse.angus:angus-activation:jar:2.0.1:compile
|  |  +- jakarta.servlet:jakarta.servlet-api:jar:6.0.0:compile
|  |  +- jakarta.validation:jakarta.validation-api:jar:3.0.2:compile
|  |  +- org.apache.cxf:cxf-rt-transports-http:jar:4.0.5:compile
|  |  +- io.quarkus:quarkus-jaxb:jar:3.8.6:compile
|  |  +- io.quarkus:quarkus-jaxp:jar:3.8.6:compile
|  |  +- io.quarkus:quarkus-jackson:jar:3.8.6:compile
|  |  |  +- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar:2.17.2:compile
|  |  |  +- com.fasterxml.jackson.datatype:jackson-datatype-jdk8:jar:2.17.2:compile
|  |  |  \- com.fasterxml.jackson.module:jackson-module-parameter-names:jar:2.17.2:compile
|  |  \- org.jvnet.mimepull:mimepull:jar:1.10.0:compile
|  +- io.quarkiverse.cxf:quarkus-cxf-rt-ws-security:jar:3.8.6:compile
|  |  +- io.quarkiverse.cxf:quarkus-cxf-santuario-xmlsec:jar:3.8.6:compile
|  |  +- org.eclipse.angus:angus-mail:jar:2.0.3:compile
|  |  |  +- jakarta.activation:jakarta.activation-api:jar:2.1.2:compile
|  |  |  \- jakarta.mail:jakarta.mail-api:jar:2.1.3:compile
|  |  +- org.apache.cxf:cxf-rt-ws-security:jar:4.0.5:compile
|  |  |  +- org.apache.cxf:cxf-rt-security-saml:jar:4.0.5:compile
|  |  |  |  \- org.apache.cxf:cxf-rt-security:jar:4.0.5:compile
|  |  |  +- org.ehcache:ehcache:jar:jakarta:3.10.8:compile
|  |  |  +- org.apache.wss4j:wss4j-ws-security-dom:jar:3.0.3:compile
|  |  |  |  \- org.apache.wss4j:wss4j-ws-security-common:jar:3.0.3:compile
|  |  |  |     +- org.opensaml:opensaml-saml-impl:jar:4.3.0:compile
|  |  |  |     |  +- org.opensaml:opensaml-core:jar:4.3.0:compile
|  |  |  |     |  +- org.opensaml:opensaml-profile-api:jar:4.3.0:compile
|  |  |  |     |  +- org.opensaml:opensaml-saml-api:jar:4.3.0:compile
|  |  |  |     |  +- org.opensaml:opensaml-security-api:jar:4.3.0:compile
|  |  |  |     |  +- org.opensaml:opensaml-security-impl:jar:4.3.0:compile
|  |  |  |     |  +- org.opensaml:opensaml-soap-api:jar:4.3.0:compile
|  |  |  |     |  +- org.opensaml:opensaml-xmlsec-api:jar:4.3.0:compile
|  |  |  |     |  +- org.opensaml:opensaml-xmlsec-impl:jar:4.3.0:compile
|  |  |  |     |  \- net.shibboleth.utilities:java-support:jar:8.4.0:compile
|  |  |  |     +- org.cryptacular:cryptacular:jar:1.2.6:compile
|  |  |  |     +- org.opensaml:opensaml-xacml-impl:jar:4.3.0:compile
|  |  |  |     |  \- org.opensaml:opensaml-xacml-api:jar:4.3.0:compile
|  |  |  |     +- org.opensaml:opensaml-xacml-saml-impl:jar:4.3.0:compile
|  |  |  |     |  \- org.opensaml:opensaml-xacml-saml-api:jar:4.3.0:compile
|  |  |  |     \- org.jasypt:jasypt:jar:1.9.3:compile
|  |  |  +- org.apache.wss4j:wss4j-policy:jar:3.0.3:compile
|  |  |  |  \- org.apache.neethi:neethi:jar:3.2.0:compile
|  |  |  +- org.apache.wss4j:wss4j-ws-security-stax:jar:3.0.3:compile
|  |  |  |  \- org.apache.wss4j:wss4j-bindings:jar:3.0.3:compile
|  |  |  \- org.apache.wss4j:wss4j-ws-security-policy-stax:jar:3.0.3:compile
|  |  \- org.apache.cxf:cxf-rt-ws-mex:jar:4.0.5:compile
|  |     \- org.apache.cxf:cxf-rt-ws-policy:jar:4.0.5:compile
|  |        \- wsdl4j:wsdl4j:jar:1.6.3:compile
|  +- org.apache.santuario:xmlsec:jar:3.0.4:compile
|  |  +- jakarta.xml.bind:jakarta.xml.bind-api:jar:4.0.1:compile
|  |  +- commons-codec:commons-codec:jar:1.16.1:compile
|  |  \- com.fasterxml.woodstox:woodstox-core:jar:6.6.1:compile
|  |     \- org.codehaus.woodstox:stax2-api:jar:4.2.2:compile
|  \- jakarta.jws:jakarta.jws-api:jar:3.0.0:compile
+- org.bouncycastle:bcprov-jdk18on:jar:1.78.1:compile
+- com.my.framework:my-framework-rest:jar:2.4.0:compile
|  +- io.quarkus:quarkus-resteasy-client:jar:3.8.6:compile
|  |  +- io.quarkus:quarkus-resteasy-common:jar:3.8.6:compile
|  |  |  +- org.jboss.resteasy:resteasy-core:jar:6.2.7.Final:compile
|  |  |  |  +- org.jboss.resteasy:resteasy-core-spi:jar:6.2.7.Final:compile
|  |  |  |  \- com.ibm.async:asyncutil:jar:0.1.0:compile
|  |  |  \- org.jboss.resteasy.microprofile:microprofile-config:jar:2.1.5.Final:compile
|  |  +- io.quarkus:quarkus-apache-httpclient:jar:3.8.6:compile
|  |  +- io.quarkus:quarkus-rest-client-config:jar:3.8.6:compile
|  |  |  \- org.eclipse.microprofile.rest.client:microprofile-rest-client-api:jar:3.0.1:compile
|  |  +- org.jboss.resteasy.microprofile:microprofile-rest-client:jar:2.1.5.Final:compile
|  |  |  +- org.jboss.resteasy.microprofile:microprofile-rest-client-base:jar:2.1.5.Final:compile
|  |  |  \- org.jboss.resteasy:resteasy-client:jar:6.2.7.Final:compile
|  |  |     \- org.jboss.resteasy:resteasy-client-api:jar:6.2.7.Final:compile
|  |  +- jakarta.interceptor:jakarta.interceptor-api:jar:2.1.0:compile
|  |  +- org.apache.httpcomponents:httpasyncclient:jar:4.1.5:compile
|  |  |  \- org.apache.httpcomponents:httpcore-nio:jar:4.4.16:compile
|  |  \- org.jboss.logging:commons-logging-jboss-logging:jar:1.0.0.Final:compile
|  \- io.quarkus:quarkus-smallrye-jwt:jar:3.8.6:compile
|     +- io.smallrye:smallrye-jwt:jar:4.4.0:compile
|     |  +- org.eclipse.microprofile.jwt:microprofile-jwt-auth-api:jar:2.1:compile
|     |  +- org.bitbucket.b_c:jose4j:jar:0.9.6:compile
|     |  \- io.smallrye:smallrye-jwt-common:jar:4.4.0:compile
|     +- jakarta.annotation:jakarta.annotation-api:jar:2.1.1:compile
|     \- io.quarkus:quarkus-smallrye-jwt-build:jar:3.8.6:compile
|        \- io.smallrye:smallrye-jwt-build:jar:4.4.0:compile
+- com.my.framework:my-framework-logging:jar:2.3.0:compile
|  +- io.quarkus:quarkus-security:jar:3.8.6:compile
|  |  \- io.quarkus:quarkus-security-runtime-spi:jar:3.8.6:compile
|  \- io.quarkus:quarkus-logging-json:jar:3.8.6:compile
|     \- org.jboss.logmanager:jboss-logmanager:jar:3.0.6.Final:compile
|        +- io.smallrye.common:smallrye-common-cpu:jar:2.2.0:compile
|        +- io.smallrye.common:smallrye-common-expression:jar:2.2.0:compile
|        |  \- io.smallrye.common:smallrye-common-function:jar:2.2.0:compile
|        +- io.smallrye.common:smallrye-common-net:jar:2.2.0:compile
|        \- io.smallrye.common:smallrye-common-ref:jar:2.2.0:compile
+- com.my.framework:my-framework-core:jar:2.4.0:compile
+- com.my.framework:my-framework-db2:jar:1.0.0:compile
+- io.quarkus:quarkus-arc:jar:3.8.6:compile
|  +- io.quarkus.arc:arc:jar:3.8.6:compile
|  |  +- jakarta.transaction:jakarta.transaction-api:jar:2.0.1:compile
|  |  +- io.smallrye.reactive:mutiny:jar:2.5.8:compile
|  |  \- org.jboss.logging:jboss-logging:jar:3.5.3.Final:compile
|  +- io.quarkus:quarkus-core:jar:3.8.6:compile
|  |  +- jakarta.inject:jakarta.inject-api:jar:2.0.1:compile
|  |  +- io.smallrye.common:smallrye-common-os:jar:2.2.0:compile
|  |  +- io.quarkus:quarkus-ide-launcher:jar:3.8.6:compile
|  |  +- io.quarkus:quarkus-development-mode-spi:jar:3.8.6:compile
|  |  +- io.smallrye.config:smallrye-config:jar:3.5.4:compile
|  |  |  \- io.smallrye.config:smallrye-config-core:jar:3.5.4:compile
|  |  |     +- io.smallrye.common:smallrye-common-classloader:jar:2.2.0:compile
|  |  |     \- io.smallrye.config:smallrye-config-common:jar:3.5.4:compile
|  |  +- org.jboss.logging:jboss-logging-annotations:jar:2.2.1.Final:compile
|  |  +- org.jboss.threads:jboss-threads:jar:3.5.1.Final:compile
|  |  +- org.jboss.slf4j:slf4j-jboss-logmanager:jar:2.0.0.Final:compile
|  |  +- org.wildfly.common:wildfly-common:jar:1.7.0.Final:compile
|  |  +- io.quarkus:quarkus-bootstrap-runner:jar:3.8.6:compile
|  |  \- io.quarkus:quarkus-fs-util:jar:0.0.10:compile
|  \- org.eclipse.microprofile.context-propagation:microprofile-context-propagation-api:jar:1.3:compile
+- io.quarkus:quarkus-resteasy-reactive:jar:3.8.6:compile
|  +- io.quarkus:quarkus-resteasy-reactive-common:jar:3.8.6:compile
|  |  \- io.quarkus.resteasy.reactive:resteasy-reactive-common:jar:3.8.6:compile
|  |     +- io.quarkus.resteasy.reactive:resteasy-reactive-common-types:jar:3.8.6:compile
|  |     +- org.reactivestreams:reactive-streams:jar:1.0.4:compile
|  |     \- io.smallrye.reactive:mutiny-zero-flow-adapters:jar:1.0.0:compile
|  +- io.quarkus.resteasy.reactive:resteasy-reactive-vertx:jar:3.8.6:compile
|  |  +- io.vertx:vertx-web:jar:4.5.7:compile
|  |  |  +- io.vertx:vertx-web-common:jar:4.5.7:compile
|  |  |  +- io.vertx:vertx-auth-common:jar:4.5.7:compile
|  |  |  \- io.vertx:vertx-bridge-common:jar:4.5.7:compile
|  |  +- io.smallrye.reactive:smallrye-mutiny-vertx-core:jar:3.11.0:compile
|  |  |  +- io.smallrye.reactive:smallrye-mutiny-vertx-runtime:jar:3.11.0:compile
|  |  |  \- io.smallrye.reactive:vertx-mutiny-generator:jar:3.11.0:compile
|  |  |     \- io.vertx:vertx-codegen:jar:4.5.7:compile
|  |  \- io.quarkus.resteasy.reactive:resteasy-reactive:jar:3.8.6:compile
|  +- io.quarkus:quarkus-vertx-http:jar:3.8.6:compile
|  |  +- io.quarkus:quarkus-credentials:jar:3.8.6:compile
|  |  +- io.smallrye.reactive:smallrye-mutiny-vertx-web:jar:3.11.0:compile
|  |  |  +- io.smallrye.reactive:smallrye-mutiny-vertx-web-common:jar:3.11.0:compile
|  |  |  +- io.smallrye.reactive:smallrye-mutiny-vertx-auth-common:jar:3.11.0:compile
|  |  |  +- io.smallrye.reactive:smallrye-mutiny-vertx-bridge-common:jar:3.11.0:compile
|  |  |  \- io.smallrye.reactive:smallrye-mutiny-vertx-uri-template:jar:3.11.0:compile
|  |  |     \- io.vertx:vertx-uri-template:jar:4.5.7:compile
|  |  \- io.github.crac:org-crac:jar:0.1.3:compile
|  +- io.quarkus:quarkus-jsonp:jar:3.8.6:compile
|  |  \- org.eclipse.parsson:parsson:jar:1.1.5:compile
|  \- io.quarkus:quarkus-virtual-threads:jar:3.8.6:compile
|     \- io.vertx:vertx-core:jar:4.5.7:compile
|        +- io.netty:netty-common:jar:4.1.108.Final:compile
|        +- io.netty:netty-buffer:jar:4.1.108.Final:compile
|        +- io.netty:netty-transport:jar:4.1.108.Final:compile
|        +- io.netty:netty-handler:jar:4.1.108.Final:compile
|        |  \- io.netty:netty-transport-native-unix-common:jar:4.1.108.Final:compile
|        +- io.netty:netty-handler-proxy:jar:4.1.108.Final:compile
|        |  \- io.netty:netty-codec-socks:jar:4.1.108.Final:compile
|        +- io.netty:netty-codec-http:jar:4.1.108.Final:compile
|        +- io.netty:netty-codec-http2:jar:4.1.108.Final:compile
|        +- io.netty:netty-resolver:jar:4.1.108.Final:compile
|        \- io.netty:netty-resolver-dns:jar:4.1.108.Final:compile
|           \- io.netty:netty-codec-dns:jar:4.1.108.Final:compile
+- io.quarkus:quarkus-resteasy-reactive-jackson:jar:3.8.6:compile
|  \- io.quarkus:quarkus-resteasy-reactive-jackson-common:jar:3.8.6:compile
|     \- io.quarkus.resteasy.reactive:resteasy-reactive-jackson:jar:3.8.6:compile
+- io.quarkus:quarkus-hibernate-validator:jar:3.8.6:compile
|  +- org.hibernate.validator:hibernate-validator:jar:8.0.1.Final:compile
|  |  \- com.fasterxml:classmate:jar:1.6.0:compile
|  +- org.glassfish.expressly:expressly:jar:5.0.0:compile
|  |  \- jakarta.el:jakarta.el-api:jar:5.0.1:compile
|  +- io.smallrye.config:smallrye-config-validator:jar:3.5.4:compile
|  \- jakarta.ws.rs:jakarta.ws.rs-api:jar:3.1.0:compile
+- io.quarkus:quarkus-hibernate-orm-panache:jar:3.8.6:compile
|  +- io.quarkus:quarkus-hibernate-orm:jar:3.8.6:compile
|  |  +- io.quarkus:quarkus-agroal:jar:3.8.6:compile
|  |  |  +- io.quarkus:quarkus-datasource:jar:3.8.6:compile
|  |  |  +- io.agroal:agroal-api:jar:2.4:compile
|  |  |  +- io.agroal:agroal-narayana:jar:2.4:compile
|  |  |  |  \- org.jboss:jboss-transaction-spi:jar:8.0.0.Final:compile
|  |  |  \- io.agroal:agroal-pool:jar:2.4:compile
|  |  +- io.quarkus:quarkus-narayana-jta:jar:3.8.6:compile
|  |  |  +- io.quarkus:quarkus-transaction-annotations:jar:3.8.6:compile
|  |  |  +- io.quarkus:quarkus-datasource-common:jar:3.8.6:compile
|  |  |  +- io.smallrye:smallrye-context-propagation-jta:jar:2.1.2:compile
|  |  |  +- io.smallrye.reactive:smallrye-reactive-converter-api:jar:3.0.1:compile
|  |  |  +- io.smallrye.reactive:smallrye-reactive-converter-mutiny:jar:3.0.1:compile
|  |  |  +- org.jboss.narayana.jta:narayana-jta:jar:7.0.2.Final:compile
|  |  |  |  +- jakarta.resource:jakarta.resource-api:jar:2.1.0:compile
|  |  |  |  +- org.jboss.invocation:jboss-invocation:jar:2.0.0.Final:compile
|  |  |  |  \- org.eclipse.microprofile.reactive-streams-operators:microprofile-reactive-streams-operators-api:jar:3.0:compile
|  |  |  \- org.jboss.narayana.jts:narayana-jts-integration:jar:7.0.2.Final:compile
|  |  +- org.hibernate.orm:hibernate-core:jar:6.4.8.Final:compile
|  |  |  \- org.antlr:antlr4-runtime:jar:4.13.0:runtime
|  |  +- net.bytebuddy:byte-buddy:jar:1.14.11:compile
|  |  +- org.hibernate.common:hibernate-commons-annotations:jar:6.0.6.Final:compile
|  |  +- org.hibernate.orm:hibernate-graalvm:jar:6.4.8.Final:compile
|  |  +- org.glassfish.jaxb:jaxb-runtime:jar:4.0.4:compile
|  |  |  \- org.glassfish.jaxb:jaxb-core:jar:4.0.4:compile
|  |  |     +- org.glassfish.jaxb:txw2:jar:4.0.4:compile
|  |  |     \- com.sun.istack:istack-commons-runtime:jar:4.1.2:compile
|  |  +- jakarta.persistence:jakarta.persistence-api:jar:3.1.0:compile
|  |  +- org.hibernate:quarkus-local-cache:jar:0.3.0:compile
|  |  \- io.quarkus:quarkus-caffeine:jar:3.8.6:compile
|  |     \- com.github.ben-manes.caffeine:caffeine:jar:3.1.5:compile
|  |        \- com.google.errorprone:error_prone_annotations:jar:2.24.0:compile
|  +- io.quarkus:quarkus-hibernate-orm-panache-common:jar:3.8.6:compile
|  |  \- io.quarkus:quarkus-panache-hibernate-common:jar:3.8.6:compile
|  \- io.quarkus:quarkus-panache-common:jar:3.8.6:compile
+- io.quarkus:quarkus-jdbc-db2:jar:3.8.6:compile
|  \- com.ibm.db2:jcc:jar:11.5.8.0:compile
+- io.opentelemetry.instrumentation:opentelemetry-jdbc:jar:1.32.0-alpha:compile
|  +- io.opentelemetry.instrumentation:opentelemetry-instrumentation-api:jar:1.32.0:compile
|  |  \- io.opentelemetry:opentelemetry-extension-incubator:jar:1.32.0-alpha:runtime
|  +- io.opentelemetry.instrumentation:opentelemetry-instrumentation-api-semconv:jar:1.32.0-alpha:compile
|  \- io.opentelemetry:opentelemetry-api:jar:1.32.0:compile
|     \- io.opentelemetry:opentelemetry-context:jar:1.32.0:compile
+- io.quarkus:quarkus-test-h2:jar:3.8.6:test
|  +- io.quarkus:quarkus-test-common:jar:3.8.6:test
|  |  +- io.quarkus:quarkus-core-deployment:jar:3.8.6:test
|  |  |  +- org.aesh:readline:jar:2.4:test
|  |  |  |  \- org.fusesource.jansi:jansi:jar:2.4.0:test
|  |  |  +- org.aesh:aesh:jar:2.7:test
|  |  |  +- io.quarkus.gizmo:gizmo:jar:1.7.0:test
|  |  |  |  \- org.ow2.asm:asm-util:jar:9.6:test
|  |  |  |     \- org.ow2.asm:asm-analysis:jar:9.6:test
|  |  |  +- io.quarkus:quarkus-class-change-agent:jar:3.8.6:test
|  |  |  +- io.quarkus:quarkus-devtools-utilities:jar:3.8.6:test
|  |  |  +- io.quarkus:quarkus-builder:jar:3.8.6:test
|  |  |  +- org.graalvm.sdk:nativeimage:jar:23.1.2:test
|  |  |  |  \- org.graalvm.sdk:word:jar:23.1.2:test
|  |  |  \- org.junit.platform:junit-platform-launcher:jar:1.10.1:test
|  |  +- io.quarkus:quarkus-bootstrap-maven-resolver:jar:3.8.6:test
|  |  |  +- io.smallrye.beanbag:smallrye-beanbag-maven:jar:1.4.0:test
|  |  |  |  +- io.smallrye.beanbag:smallrye-beanbag-sisu:jar:1.4.0:test
|  |  |  |  |  \- io.smallrye.beanbag:smallrye-beanbag:jar:1.4.0:test
|  |  |  |  +- javax.inject:javax.inject:jar:1:test
|  |  |  |  +- org.apache.maven:maven-artifact:jar:3.9.6:test
|  |  |  |  +- org.apache.maven:maven-builder-support:jar:3.9.6:test
|  |  |  |  +- org.apache.maven:maven-model:jar:3.9.6:test
|  |  |  |  +- org.apache.maven:maven-model-builder:jar:3.9.6:test
|  |  |  |  +- org.apache.maven:maven-repository-metadata:jar:3.9.6:test
|  |  |  |  +- org.apache.maven:maven-settings:jar:3.9.6:test
|  |  |  |  +- org.apache.maven.resolver:maven-resolver-api:jar:1.9.18:test
|  |  |  |  +- org.apache.maven.resolver:maven-resolver-impl:jar:1.9.18:test
|  |  |  |  |  \- org.apache.maven.resolver:maven-resolver-named-locks:jar:1.9.18:test
|  |  |  |  +- org.apache.maven.resolver:maven-resolver-spi:jar:1.9.18:test
|  |  |  |  +- org.apache.maven.resolver:maven-resolver-util:jar:1.9.18:test
|  |  |  |  +- org.apache.maven.resolver:maven-resolver-transport-http:jar:1.9.18:test
|  |  |  |  +- org.apache.maven.wagon:wagon-provider-api:jar:3.5.3:test
|  |  |  |  +- org.apache.maven.wagon:wagon-http-shared:jar:3.5.3:test
|  |  |  |  +- org.codehaus.plexus:plexus-interpolation:jar:1.26:test
|  |  |  |  +- org.codehaus.plexus:plexus-utils:jar:3.5.1:test
|  |  |  |  +- org.codehaus.plexus:plexus-xml:jar:4.0.0:test
|  |  |  |  |  \- org.apache.maven:maven-xml-impl:jar:4.0.0-alpha-5:test
|  |  |  |  |     \- org.apache.maven:maven-api-xml:jar:4.0.0-alpha-5:test
|  |  |  |  |        \- org.apache.maven:maven-api-meta:jar:4.0.0-alpha-5:test
|  |  |  |  +- org.codehaus.plexus:plexus-cipher:jar:2.0:test
|  |  |  |  \- org.codehaus.plexus:plexus-sec-dispatcher:jar:2.0:test
|  |  |  +- org.apache.maven:maven-embedder:jar:3.9.6:test
|  |  |  |  +- org.apache.maven:maven-core:jar:3.9.6:test
|  |  |  |  |  \- org.codehaus.plexus:plexus-component-annotations:jar:2.1.0:test
|  |  |  |  +- org.apache.maven:maven-plugin-api:jar:3.9.6:test
|  |  |  |  +- org.apache.maven.shared:maven-shared-utils:jar:3.3.4:test
|  |  |  |  +- com.google.inject:guice:jar:5.1.0:test
|  |  |  |  |  \- aopalliance:aopalliance:jar:1.0:test
|  |  |  |  +- com.google.guava:failureaccess:jar:1.0.1:compile
|  |  |  |  +- javax.annotation:javax.annotation-api:jar:1.3.2:test
|  |  |  |  +- org.codehaus.plexus:plexus-classworlds:jar:2.6.0:test
|  |  |  |  \- commons-cli:commons-cli:jar:1.5.0:test
|  |  |  +- org.eclipse.sisu:org.eclipse.sisu.plexus:jar:0.9.0.M2:test
|  |  |  +- org.apache.maven:maven-settings-builder:jar:3.9.6:test
|  |  |  +- org.apache.maven:maven-resolver-provider:jar:3.9.6:test
|  |  |  +- org.apache.maven.resolver:maven-resolver-connector-basic:jar:1.9.18:test
|  |  |  +- org.apache.maven.resolver:maven-resolver-transport-wagon:jar:1.9.18:test
|  |  |  +- org.apache.maven.wagon:wagon-http:jar:3.5.3:test
|  |  |  \- org.apache.maven.wagon:wagon-file:jar:3.5.3:test
|  |  +- io.quarkus:quarkus-bootstrap-gradle-resolver:jar:3.8.6:test
|  |  +- io.smallrye:jandex:jar:3.1.6:compile
|  |  \- commons-io:commons-io:jar:2.15.1:test
|  \- com.h2database:h2:jar:2.2.224:test
+- io.quarkus:quarkus-smallrye-health:jar:3.8.6:compile
|  +- io.smallrye:smallrye-health:jar:4.1.0:compile
|  |  +- org.eclipse.microprofile.health:microprofile-health-api:jar:4.0.1:compile
|  |  +- io.smallrye:smallrye-health-api:jar:4.1.0:compile
|  |  \- jakarta.json:jakarta.json-api:jar:2.1.3:compile
|  \- io.smallrye:smallrye-health-provided-checks:jar:4.1.0:compile
+- io.quarkus:quarkus-smallrye-openapi:jar:3.8.6:compile
|  +- io.smallrye:smallrye-open-api-core:jar:3.10.0:compile
|  |  +- org.eclipse.microprofile.openapi:microprofile-openapi-api:jar:3.1.1:compile
|  |  +- org.eclipse.microprofile.config:microprofile-config-api:jar:3.1:compile
|  |  +- com.fasterxml.jackson.core:jackson-core:jar:2.17.2:compile
|  |  +- com.fasterxml.jackson.core:jackson-databind:jar:2.17.2:compile
|  |  \- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:jar:2.17.2:compile
|  |     \- org.yaml:snakeyaml:jar:2.2:compile
|  \- io.quarkus:quarkus-swagger-ui:jar:3.8.6:compile
+- io.quarkus:quarkus-elytron-security-properties-file:jar:3.8.6:compile
|  +- io.quarkus:quarkus-elytron-security:jar:3.8.6:compile
|  |  \- io.quarkus:quarkus-elytron-security-common:jar:3.8.6:compile
|  +- org.wildfly.security:wildfly-elytron-auth-server:jar:2.2.3.Final:compile
|  |  +- org.wildfly.security:wildfly-elytron-auth:jar:2.2.3.Final:compile
|  |  +- org.wildfly.security:wildfly-elytron-base:jar:2.2.3.Final:compile
|  |  +- org.wildfly.security:wildfly-elytron-credential:jar:2.2.3.Final:compile
|  |  |  +- org.wildfly.security:wildfly-elytron-asn1:jar:2.2.3.Final:compile
|  |  |  +- org.wildfly.security:wildfly-elytron-keystore:jar:2.2.3.Final:compile
|  |  |  |  \- org.wildfly.security:wildfly-elytron-x500-cert:jar:2.2.3.Final:compile
|  |  |  |     \- org.wildfly.security:wildfly-elytron-x500-cert-util:jar:2.2.3.Final:compile
|  |  |  \- org.wildfly.security:wildfly-elytron-provider-util:jar:2.2.3.Final:compile
|  |  +- org.wildfly.security:wildfly-elytron-permission:jar:2.2.3.Final:compile
|  |  +- org.wildfly.security:wildfly-elytron-util:jar:2.2.3.Final:compile
|  |  \- org.wildfly.security:wildfly-elytron-x500:jar:2.2.3.Final:compile
|  +- org.wildfly.security:wildfly-elytron-password-impl:jar:2.2.3.Final:compile
|  +- org.wildfly.security:wildfly-elytron-realm:jar:2.2.3.Final:compile
|  |  \- org.wildfly.security:wildfly-elytron-encryption:jar:2.2.3.Final:compile
|  +- io.quarkus.security:quarkus-security:jar:2.0.3.Final:compile
|  +- jakarta.enterprise:jakarta.enterprise.cdi-api:jar:4.0.1:compile
|  |  \- jakarta.enterprise:jakarta.enterprise.lang-model:jar:4.0.1:compile
|  +- jakarta.authorization:jakarta.authorization-api:jar:2.1.0:compile
|  \- jakarta.authentication:jakarta.authentication-api:jar:3.0.0:compile
+- io.quarkus:quarkus-micrometer-registry-prometheus:jar:3.8.6:compile
|  +- io.quarkus:quarkus-micrometer:jar:3.8.6:compile
|  \- io.micrometer:micrometer-registry-prometheus:jar:1.12.2:compile
|     \- io.prometheus:simpleclient_common:jar:0.16.0:compile
|        \- io.prometheus:simpleclient:jar:0.16.0:compile
|           +- io.prometheus:simpleclient_tracer_otel:jar:0.16.0:compile
|           |  \- io.prometheus:simpleclient_tracer_common:jar:0.16.0:compile
|           \- io.prometheus:simpleclient_tracer_otel_agent:jar:0.16.0:compile
+- io.quarkus:quarkus-opentelemetry:jar:3.8.6:compile
|  +- io.quarkus:quarkus-vertx:jar:3.8.6:compile
|  |  +- io.quarkus:quarkus-netty:jar:3.8.6:compile
|  |  |  +- io.netty:netty-codec:jar:4.1.108.Final:compile
|  |  |  \- com.aayushatharva.brotli4j:brotli4j:jar:1.16.0:compile
|  |  |     +- com.aayushatharva.brotli4j:service:jar:1.16.0:compile
|  |  |     \- com.aayushatharva.brotli4j:native-windows-x86_64:jar:1.16.0:compile
|  |  +- io.netty:netty-codec-haproxy:jar:4.1.108.Final:compile
|  |  +- io.smallrye.common:smallrye-common-annotation:jar:2.2.0:compile
|  |  +- io.quarkus:quarkus-vertx-latebound-mdc-provider:jar:3.8.6:compile
|  |  \- io.smallrye:smallrye-fault-tolerance-vertx:jar:6.2.6:compile
|  +- io.quarkus:quarkus-grpc-common:jar:3.8.6:compile
|  |  +- com.google.code.findbugs:jsr305:jar:3.0.2:compile
|  |  +- io.vertx:vertx-grpc:jar:4.5.7:compile
|  |  |  +- io.grpc:grpc-netty:jar:1.59.1:compile
|  |  |  |  +- io.grpc:grpc-core:jar:1.59.1:compile
|  |  |  |  |  +- com.google.code.gson:gson:jar:2.10.1:runtime
|  |  |  |  |  +- io.grpc:grpc-context:jar:1.59.1:runtime
|  |  |  |  |  \- io.grpc:grpc-util:jar:1.59.1:runtime
|  |  |  |  \- io.perfmark:perfmark-api:jar:0.26.0:runtime
|  |  |  +- io.grpc:grpc-protobuf:jar:1.59.1:compile
|  |  |  |  +- com.google.protobuf:protobuf-java:jar:3.25.0:compile
|  |  |  |  +- com.google.api.grpc:proto-google-common-protos:jar:2.28.0:compile
|  |  |  |  \- io.grpc:grpc-protobuf-lite:jar:1.59.1:compile
|  |  |  \- com.google.guava:guava:jar:33.0.0-jre:compile
|  |  |     \- com.google.j2objc:j2objc-annotations:jar:2.8:compile
|  |  \- io.vertx:vertx-grpc-server:jar:4.5.7:compile
|  +- io.smallrye.common:smallrye-common-vertx-context:jar:2.2.0:compile
|  |  \- io.smallrye.common:smallrye-common-constraint:jar:2.2.0:compile
|  +- io.opentelemetry:opentelemetry-sdk-extension-autoconfigure:jar:1.32.0:compile
|  +- io.opentelemetry:opentelemetry-sdk:jar:1.32.0:compile
|  |  +- io.opentelemetry:opentelemetry-sdk-common:jar:1.32.0:compile
|  |  +- io.opentelemetry:opentelemetry-sdk-trace:jar:1.32.0:compile
|  |  +- io.opentelemetry:opentelemetry-sdk-metrics:jar:1.32.0:compile
|  |  \- io.opentelemetry:opentelemetry-sdk-logs:jar:1.32.0:compile
|  +- io.opentelemetry:opentelemetry-extension-annotations:jar:1.18.0:compile
|  +- io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:jar:1.32.0:compile
|  +- io.opentelemetry.semconv:opentelemetry-semconv:jar:1.26.0-alpha:compile
|  +- io.opentelemetry:opentelemetry-api-events:jar:1.32.0-alpha:compile
|  +- io.opentelemetry.instrumentation:opentelemetry-instrumentation-annotations:jar:1.32.0:compile
|  +- io.opentelemetry.instrumentation:opentelemetry-instrumentation-annotations-support:jar:1.32.0-alpha:compile
|  +- io.opentelemetry:opentelemetry-exporter-otlp-common:jar:1.32.0:compile
|  |  \- io.opentelemetry:opentelemetry-exporter-common:jar:1.32.0:compile
|  +- io.opentelemetry:opentelemetry-exporter-otlp:jar:1.32.0:compile
|  |  \- io.opentelemetry:opentelemetry-exporter-sender-okhttp:jar:1.32.0:runtime
|  \- io.vertx:vertx-grpc-client:jar:4.5.7:compile
|     +- io.vertx:vertx-grpc-common:jar:4.5.7:compile
|     +- io.grpc:grpc-stub:jar:1.59.1:compile
|     \- io.grpc:grpc-api:jar:1.59.1:compile
+- io.quarkiverse.cxf:quarkus-cxf-rt-features-metrics:jar:3.8.6:compile
|  +- io.micrometer:micrometer-core:jar:1.12.2:compile
|  |  +- io.micrometer:micrometer-commons:jar:1.12.2:compile
|  |  +- io.micrometer:micrometer-observation:jar:1.12.2:compile
|  |  +- org.hdrhistogram:HdrHistogram:jar:2.1.12:runtime
|  |  \- org.latencyutils:LatencyUtils:jar:2.0.3:runtime
|  \- org.apache.cxf:cxf-rt-features-metrics:jar:4.0.5:compile
|     +- jakarta.xml.ws:jakarta.xml.ws-api:jar:3.0.1:compile
|     |  \- jakarta.xml.soap:jakarta.xml.soap-api:jar:2.0.1:compile
|     \- org.apache.cxf:cxf-core:jar:4.0.5:compile
|        \- org.apache.ws.xmlschema:xmlschema-core:jar:2.3.1:compile
+- io.quarkiverse.cxf:quarkus-cxf-integration-tracing-opentelemetry:jar:3.8.6:compile
|  \- org.apache.cxf:cxf-integration-tracing-opentelemetry:jar:4.0.5:compile
|     +- org.apache.cxf:cxf-rt-management:jar:4.0.5:compile
|     \- io.opentelemetry.semconv:opentelemetry-semconv-incubating:jar:1.26.0-alpha:compile
+- org.mapstruct:mapstruct:jar:1.5.5.Final:compile
+- io.quarkiverse.jsch:quarkus-jsch:jar:3.0.7:compile
|  \- com.github.mwiede:jsch:jar:0.2.17:compile
+- io.quarkus:quarkus-junit5:jar:3.8.6:test
|  +- io.quarkus:quarkus-bootstrap-core:jar:3.8.6:test
|  |  +- io.quarkus:quarkus-bootstrap-app-model:jar:3.8.6:test
|  |  \- io.smallrye.common:smallrye-common-io:jar:2.2.0:compile
|  +- org.eclipse.sisu:org.eclipse.sisu.inject:jar:0.9.0.M2:test
|  +- io.quarkus:quarkus-junit5-properties:jar:3.8.6:test
|  +- org.junit.jupiter:junit-jupiter:jar:5.10.1:test
|  |  +- org.junit.jupiter:junit-jupiter-api:jar:5.10.1:test
|  |  |  +- org.opentest4j:opentest4j:jar:1.3.0:test
|  |  |  +- org.junit.platform:junit-platform-commons:jar:1.10.1:test
|  |  |  \- org.apiguardian:apiguardian-api:jar:1.1.2:test
|  |  +- org.junit.jupiter:junit-jupiter-params:jar:5.10.1:test
|  |  \- org.junit.jupiter:junit-jupiter-engine:jar:5.10.1:test
|  |     \- org.junit.platform:junit-platform-engine:jar:1.10.1:test
|  \- com.thoughtworks.xstream:xstream:jar:1.4.20:test
|     \- io.github.x-stream:mxparser:jar:1.2.2:test
|        \- xmlpull:xmlpull:jar:1.1.3.1:test
+- io.quarkus:quarkus-junit5-mockito:jar:3.8.6:test
|  +- org.mockito:mockito-junit-jupiter:jar:5.8.0:test
|  |  \- org.mockito:mockito-core:jar:5.8.0:test
|  |     +- net.bytebuddy:byte-buddy-agent:jar:1.14.10:test
|  |     \- org.objenesis:objenesis:jar:3.3:test
|  +- io.quarkus:quarkus-junit5-mockito-config:jar:3.8.6:test
|  +- io.quarkus:quarkus-arc-deployment:jar:3.8.6:test
|  |  +- io.quarkus:quarkus-smallrye-context-propagation-spi:jar:3.8.6:test
|  |  +- io.quarkus:quarkus-vertx-http-dev-ui-spi:jar:3.8.6:test
|  |  +- io.quarkus.arc:arc-processor:jar:3.8.6:test
|  |  \- io.quarkus:quarkus-arc-test-supplement:jar:3.8.6:test
|  +- org.mockito:mockito-subclass:jar:5.8.0:test
|  \- io.quarkus:quarkus-mutiny:jar:3.8.6:compile
|     +- io.quarkus:quarkus-smallrye-context-propagation:jar:3.8.6:compile
|     |  \- io.smallrye:smallrye-context-propagation:jar:2.1.2:compile
|     |     +- io.smallrye:smallrye-context-propagation-api:jar:2.1.2:compile
|     |     \- io.smallrye:smallrye-context-propagation-storage:jar:2.1.2:compile
|     \- io.smallrye.reactive:mutiny-smallrye-context-propagation:jar:2.5.8:compile
+- io.rest-assured:rest-assured:jar:5.4.0:test
|  +- org.apache.groovy:groovy:jar:4.0.16:test
|  +- org.apache.groovy:groovy-xml:jar:4.0.16:test
|  +- org.apache.httpcomponents:httpclient:jar:4.5.14:compile
|  |  \- org.apache.httpcomponents:httpcore:jar:4.4.16:compile
|  +- org.apache.httpcomponents:httpmime:jar:4.5.14:test
|  +- org.hamcrest:hamcrest:jar:2.2:test
|  +- org.ccil.cowan.tagsoup:tagsoup:jar:1.2.1:test
|  +- io.rest-assured:json-path:jar:5.4.0:test
|  |  +- org.apache.groovy:groovy-json:jar:4.0.16:test
|  |  \- io.rest-assured:rest-assured-common:jar:5.4.0:test
|  \- io.rest-assured:xml-path:jar:5.4.0:test
|     \- org.apache.commons:commons-lang3:jar:3.14.0:test
+- com.my.framework:my-framework-jwt-tests:jar:1.0.0:test
|  +- com.nimbusds:nimbus-jose-jwt:jar:9.37.3:test
|  |  \- com.github.stephenc.jcip:jcip-annotations:jar:1.0-1:test
|  \- org.bouncycastle:bcpkix-jdk15on:jar:1.61:test
|     \- org.bouncycastle:bcprov-jdk15on:jar:1.61:test
+- org.testcontainers:testcontainers:jar:1.19.6:test
|  +- junit:junit:jar:4.13.2:test
|  +- org.slf4j:slf4j-api:jar:2.0.6:compile
|  +- org.apache.commons:commons-compress:jar:1.26.1:test
|  +- org.rnorth.duct-tape:duct-tape:jar:1.0.8:test
|  |  \- org.jetbrains:annotations:jar:24.1.0:test
|  +- com.github.docker-java:docker-java-api:jar:3.3.5:test
|  |  \- com.fasterxml.jackson.core:jackson-annotations:jar:2.17.2:compile
|  \- com.github.docker-java:docker-java-transport-zerodep:jar:3.3.5:test
|     +- com.github.docker-java:docker-java-transport:jar:3.3.5:test
|     \- net.java.dev.jna:jna:jar:5.8.0:test
+- org.testcontainers:junit-jupiter:jar:1.19.6:test
\- io.quarkus:quarkus-jacoco:jar:3.8.6:test
   +- org.jacoco:org.jacoco.core:jar:0.8.11:test
   |  +- org.ow2.asm:asm:jar:9.6:test
   |  \- org.ow2.asm:asm-tree:jar:9.6:test
   +- org.jacoco:org.jacoco.report:jar:0.8.11:test
   +- org.jacoco:org.jacoco.agent:jar:0.8.11:test
   +- org.jacoco:org.jacoco.agent:jar:runtime:0.8.11:test
   \- org.ow2.asm:asm-commons:jar:9.6:test
geoand commented 1 month ago

Can you please try mvn quarkus:dependency-tree as well?

mcanzerini commented 1 month ago

Ok it helps a lot, now I see this as a dependency of our rest extension:

io.quarkus:quarkus-rest-deployment:jar:3.15.1 (compile)
  io.quarkus:quarkus-rest-server-spi-deployment:jar:3.15.1 (compile)
    io.quarkus:quarkus-rest-spi-deployment:jar:3.15.1 (compile)
  io.quarkus:quarkus-rest-common-deployment:jar:3.15.1 (compile)
    io.quarkus:quarkus-rest-common:jar:3.15.1 (compile)

I had already added this exclusion:

<exclusion>
  <groupId>io.quarkus</groupId>
  <artifactId>quarkus-rest</artifactId>
</exclusion>

But it seems it is not enough so I added:

<exclusion>
  <groupId>io.quarkus</groupId>
  <artifactId>quarkus-rest-deployment</artifactId>
</exclusion>

And the app can build again.

Thanks for your help, I will close the issue but just to understand: Is it the right solution to add exclusion here?

Thanks

geoand commented 1 month ago

Sounds good!

gsmet commented 1 month ago

Another option if you're trying to support both versions is to use quarkus-resteasy-reactive instead. It will work for both LTS (will start failing with 3.16) without the need to add an exclusion but... you will have a warning for 3.15 as it will use a relocation.

quarkus-resteasy-reactive got renamed to quarkus-rest.

mcanzerini commented 1 month ago

Thanks for your suggestion. Indeed, we use quarkus-rest on purpose in our extension to remove the warning and be ready for the next versions. I think it is more acceptable for us to add the exclusion in apps that use 3.8.6, instead of having the deprecated quarkus-resteasy-reactive since we will certainly migrate our extensions to quarkus 3.16.

gsmet commented 1 month ago

Makes perfect sense. Just make sure you add the quarkus-resteasy-reactive dependency in the apps using 3.8.