quarkusio / quarkus

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

Amazon S3 build failure on v1.12.0.CR1 using url-connection-client #15014

Closed jorsol closed 3 years ago

jorsol commented 3 years ago

Describe the bug I'm using the url-connection-client with S3, declaring the dependencies as:

    <dependency>
      <groupId>io.quarkus</groupId>
      <artifactId>quarkus-amazon-s3</artifactId>
      <exclusions>
        <exclusion>
          <groupId>software.amazon.awssdk</groupId>
          <artifactId>apache-client</artifactId>
        </exclusion>
        <exclusion>
          <groupId>software.amazon.awssdk</groupId>
          <artifactId>netty-nio-client</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>software.amazon.awssdk</groupId>
      <artifactId>url-connection-client</artifactId>
    </dependency>

When I try to update the version from Quarkus 1.11.2.Final to 1.12.0.CR1 the build fails with the following stack trace:

[ERROR] Failed to execute goal io.quarkus:quarkus-maven-plugin:1.12.0.CR1:build (default) on project cm-api: Failed to build quarkus application: io.quarkus.builder.BuildException: Build failure: Build failed due to errors
[ERROR]     [error]: Build step io.quarkus.amazon.s3.deployment.S3Processor#setupTransport threw an exception: java.lang.NoClassDefFoundError: software/amazon/awssdk/http/apache/ProxyConfiguration$Builder
[ERROR]     at java.base/java.lang.Class.getDeclaredMethods0(Native Method)
[ERROR]     at java.base/java.lang.Class.privateGetDeclaredMethods(Class.java:3325)
[ERROR]     at java.base/java.lang.Class.getDeclaredMethods(Class.java:2466)
[ERROR]     at io.quarkus.deployment.proxy.ProxyFactory.addMethodsOfClass(ProxyFactory.java:97)
[ERROR]     at io.quarkus.deployment.proxy.ProxyFactory.addMethodsOfClass(ProxyFactory.java:93)
[ERROR]     at io.quarkus.deployment.proxy.ProxyFactory.<init>(ProxyFactory.java:65)
[ERROR]     at io.quarkus.deployment.recording.BytecodeRecorderImpl.getRecordingProxy(BytecodeRecorderImpl.java:338)
[ERROR]     at io.quarkus.deployment.ExtensionLoader.lambda$loadStepsFromClass$86(ExtensionLoader.java:747)
[ERROR]     at io.quarkus.deployment.ExtensionLoader$2.execute(ExtensionLoader.java:916)
[ERROR]     at io.quarkus.builder.BuildContext.run(BuildContext.java:277)
[ERROR]     at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2415)
[ERROR]     at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1452)
[ERROR]     at java.base/java.lang.Thread.run(Thread.java:832)
[ERROR]     at org.jboss.threads.JBossThread.run(JBossThread.java:501)
[ERROR] Caused by: java.lang.ClassNotFoundException: software.amazon.awssdk.http.apache.ProxyConfiguration$Builder
[ERROR]     at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:50)
[ERROR]     at org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass(ClassRealm.java:271)
[ERROR]     at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:247)
[ERROR]     at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:239)
[ERROR]     at io.quarkus.bootstrap.classloading.QuarkusClassLoader.loadClass(QuarkusClassLoader.java:428)
[ERROR]     at io.quarkus.bootstrap.classloading.QuarkusClassLoader.loadClass(QuarkusClassLoader.java:378)
[ERROR]     ... 14 more
[ERROR] -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal io.quarkus:quarkus-maven-plugin:1.12.0.CR1:build (default) on project cm-api: Failed to build quarkus application
    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:64)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:564)
    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: Failed to build quarkus application
    at io.quarkus.maven.BuildMojo.doExecute (BuildMojo.java:135)
    at io.quarkus.maven.QuarkusBootstrapMojo.execute (QuarkusBootstrapMojo.java:89)
    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:64)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:564)
    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: java.lang.RuntimeException: io.quarkus.builder.BuildException: Build failure: Build failed due to errors
    [error]: Build step io.quarkus.amazon.s3.deployment.S3Processor#setupTransport threw an exception: java.lang.NoClassDefFoundError: software/amazon/awssdk/http/apache/ProxyConfiguration$Builder
    at java.base/java.lang.Class.getDeclaredMethods0(Native Method)
    at java.base/java.lang.Class.privateGetDeclaredMethods(Class.java:3325)
    at java.base/java.lang.Class.getDeclaredMethods(Class.java:2466)
    at io.quarkus.deployment.proxy.ProxyFactory.addMethodsOfClass(ProxyFactory.java:97)
    at io.quarkus.deployment.proxy.ProxyFactory.addMethodsOfClass(ProxyFactory.java:93)
    at io.quarkus.deployment.proxy.ProxyFactory.<init>(ProxyFactory.java:65)
    at io.quarkus.deployment.recording.BytecodeRecorderImpl.getRecordingProxy(BytecodeRecorderImpl.java:338)
    at io.quarkus.deployment.ExtensionLoader.lambda$loadStepsFromClass$86(ExtensionLoader.java:747)
    at io.quarkus.deployment.ExtensionLoader$2.execute(ExtensionLoader.java:916)
    at io.quarkus.builder.BuildContext.run(BuildContext.java:277)
    at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2415)
    at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1452)
    at java.base/java.lang.Thread.run(Thread.java:832)
    at org.jboss.threads.JBossThread.run(JBossThread.java:501)
Caused by: java.lang.ClassNotFoundException: software.amazon.awssdk.http.apache.ProxyConfiguration$Builder
    at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:50)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass(ClassRealm.java:271)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:247)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:239)
    at io.quarkus.bootstrap.classloading.QuarkusClassLoader.loadClass(QuarkusClassLoader.java:428)
    at io.quarkus.bootstrap.classloading.QuarkusClassLoader.loadClass(QuarkusClassLoader.java:378)
    ... 14 more

    at io.quarkus.runner.bootstrap.AugmentActionImpl.runAugment (AugmentActionImpl.java:308)
    at io.quarkus.runner.bootstrap.AugmentActionImpl.createProductionApplication (AugmentActionImpl.java:141)
    at io.quarkus.maven.BuildMojo.doExecute (BuildMojo.java:104)
    at io.quarkus.maven.QuarkusBootstrapMojo.execute (QuarkusBootstrapMojo.java:89)
    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:64)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:564)
    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: io.quarkus.builder.BuildException: Build failure: Build failed due to errors
    [error]: Build step io.quarkus.amazon.s3.deployment.S3Processor#setupTransport threw an exception: java.lang.NoClassDefFoundError: software/amazon/awssdk/http/apache/ProxyConfiguration$Builder
    at java.base/java.lang.Class.getDeclaredMethods0(Native Method)
    at java.base/java.lang.Class.privateGetDeclaredMethods(Class.java:3325)
    at java.base/java.lang.Class.getDeclaredMethods(Class.java:2466)
    at io.quarkus.deployment.proxy.ProxyFactory.addMethodsOfClass(ProxyFactory.java:97)
    at io.quarkus.deployment.proxy.ProxyFactory.addMethodsOfClass(ProxyFactory.java:93)
    at io.quarkus.deployment.proxy.ProxyFactory.<init>(ProxyFactory.java:65)
    at io.quarkus.deployment.recording.BytecodeRecorderImpl.getRecordingProxy(BytecodeRecorderImpl.java:338)
    at io.quarkus.deployment.ExtensionLoader.lambda$loadStepsFromClass$86(ExtensionLoader.java:747)
    at io.quarkus.deployment.ExtensionLoader$2.execute(ExtensionLoader.java:916)
    at io.quarkus.builder.BuildContext.run(BuildContext.java:277)
    at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2415)
    at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1452)
    at java.base/java.lang.Thread.run(Thread.java:832)
    at org.jboss.threads.JBossThread.run(JBossThread.java:501)
Caused by: java.lang.ClassNotFoundException: software.amazon.awssdk.http.apache.ProxyConfiguration$Builder
    at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:50)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass(ClassRealm.java:271)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:247)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:239)
    at io.quarkus.bootstrap.classloading.QuarkusClassLoader.loadClass(QuarkusClassLoader.java:428)
    at io.quarkus.bootstrap.classloading.QuarkusClassLoader.loadClass(QuarkusClassLoader.java:378)
    ... 14 more

    at io.quarkus.builder.Execution.run (Execution.java:116)
    at io.quarkus.builder.BuildExecutionBuilder.execute (BuildExecutionBuilder.java:79)
    at io.quarkus.deployment.QuarkusAugmentor.run (QuarkusAugmentor.java:153)
    at io.quarkus.runner.bootstrap.AugmentActionImpl.runAugment (AugmentActionImpl.java:306)
    at io.quarkus.runner.bootstrap.AugmentActionImpl.createProductionApplication (AugmentActionImpl.java:141)
    at io.quarkus.maven.BuildMojo.doExecute (BuildMojo.java:104)
    at io.quarkus.maven.QuarkusBootstrapMojo.execute (QuarkusBootstrapMojo.java:89)
    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:64)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:564)
    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: java.lang.NoClassDefFoundError: software/amazon/awssdk/http/apache/ProxyConfiguration$Builder
    at java.lang.Class.getDeclaredMethods0 (Native Method)
    at java.lang.Class.privateGetDeclaredMethods (Class.java:3325)
    at java.lang.Class.getDeclaredMethods (Class.java:2466)
    at io.quarkus.deployment.proxy.ProxyFactory.addMethodsOfClass (ProxyFactory.java:97)
    at io.quarkus.deployment.proxy.ProxyFactory.addMethodsOfClass (ProxyFactory.java:93)
    at io.quarkus.deployment.proxy.ProxyFactory.<init> (ProxyFactory.java:65)
    at io.quarkus.deployment.recording.BytecodeRecorderImpl.getRecordingProxy (BytecodeRecorderImpl.java:338)
    at io.quarkus.deployment.ExtensionLoader.lambda$loadStepsFromClass$86 (ExtensionLoader.java:747)
    at io.quarkus.deployment.ExtensionLoader$2.execute (ExtensionLoader.java:916)
    at io.quarkus.builder.BuildContext.run (BuildContext.java:277)
    at org.jboss.threads.EnhancedQueueExecutor$Task.run (EnhancedQueueExecutor.java:2415)
    at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run (EnhancedQueueExecutor.java:1452)
    at java.lang.Thread.run (Thread.java:832)
    at org.jboss.threads.JBossThread.run (JBossThread.java:501)
Caused by: java.lang.ClassNotFoundException: software.amazon.awssdk.http.apache.ProxyConfiguration$Builder
    at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass (SelfFirstStrategy.java:50)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass (ClassRealm.java:271)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass (ClassRealm.java:247)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass (ClassRealm.java:239)
    at io.quarkus.bootstrap.classloading.QuarkusClassLoader.loadClass (QuarkusClassLoader.java:428)
    at io.quarkus.bootstrap.classloading.QuarkusClassLoader.loadClass (QuarkusClassLoader.java:378)
    at java.lang.Class.getDeclaredMethods0 (Native Method)
    at java.lang.Class.privateGetDeclaredMethods (Class.java:3325)
    at java.lang.Class.getDeclaredMethods (Class.java:2466)
    at io.quarkus.deployment.proxy.ProxyFactory.addMethodsOfClass (ProxyFactory.java:97)
    at io.quarkus.deployment.proxy.ProxyFactory.addMethodsOfClass (ProxyFactory.java:93)
    at io.quarkus.deployment.proxy.ProxyFactory.<init> (ProxyFactory.java:65)
    at io.quarkus.deployment.recording.BytecodeRecorderImpl.getRecordingProxy (BytecodeRecorderImpl.java:338)
    at io.quarkus.deployment.ExtensionLoader.lambda$loadStepsFromClass$86 (ExtensionLoader.java:747)
    at io.quarkus.deployment.ExtensionLoader$2.execute (ExtensionLoader.java:916)
    at io.quarkus.builder.BuildContext.run (BuildContext.java:277)
    at org.jboss.threads.EnhancedQueueExecutor$Task.run (EnhancedQueueExecutor.java:2415)
    at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run (EnhancedQueueExecutor.java:1452)
    at java.lang.Thread.run (Thread.java:832)
    at org.jboss.threads.JBossThread.run (JBossThread.java:501)

If I don't exclude the apache-client dependency, and I have tests that create an S3Client mock , the tests fails with: Multiple HTTP implementations were found on the classpath. To avoid non-deterministic loading implementations, please explicitly provide an HTTP client via the client builders, set the software.amazon.awssdk.http.service.impl system property with the FQCN of the HTTP service to use as the default, or remove all but one HTTP implementation from the classpath

Now if I set the system property on surefire configuration like: <software.amazon.awssdk.http.service.impl>software.amazon.awssdk.http.urlconnection.UrlConnectionSdkHttpService</software.amazon.awssdk.http.service.impl> the test works and builds successfully, but I end up with the apache-client also in the lib, and is incorrect for the Multiple HTTP implementation found on classpath, so the problem is from the build part of Quarkus.

Expected behavior Run normally as before (this release doesn't seem to have any breaking change in the S3 extension).

Actual behavior For some reason, it looks like the method configureSyncApacheHttpClient is called, when it should call the configureSyncUrlConnectionHttpClient instead. https://github.com/quarkusio/quarkus/blob/16326d6b9d4c5d62015827d42c34ac4c03f272f4/extensions/amazon-services/common/runtime/src/main/java/io/quarkus/amazon/common/runtime/AmazonClientTransportRecorder.java#L94

To Reproduce I don't have a small reproducer but happy to provide more feedback as needed.

Environment (please complete the following information):

gsmet commented 3 years ago

The apache-client and netty-nio-client dependencies are optional in quarkus-amazon-s3 so I don't understand why you would need to exclude them. Do you have them when you do a mvn dependency:tree? Could you explain what's going on?

Could you also paste your config (credentials excluded)?

Thanks!

jorsol commented 3 years ago

They are marked as runtime by s3 and for some reason I end up with those dependencies on the lib folder, that's why I exclude them (even on 1.11):

[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ cm-api ---
[INFO] nf.postgresqlco:cm-api:jar:1.0.0-SNAPSHOT
[INFO] +- com.ongres.pgconfig:pgconfig-validator:jar:1.2.2:compile
[INFO] +- io.quarkus:quarkus-resteasy:jar:1.12.0.CR1:compile
[INFO] |  +- io.quarkus:quarkus-vertx-http:jar:1.12.0.CR1:compile
[INFO] |  |  +- io.quarkus:quarkus-security-runtime-spi:jar:1.12.0.CR1:compile
[INFO] |  |  +- io.quarkus:quarkus-vertx-http-dev-console-runtime-spi:jar:1.12.0.CR1:compile
[INFO] |  |  +- io.quarkus.security:quarkus-security:jar:1.1.3.Final:compile
[INFO] |  |  |  \- io.smallrye.reactive:mutiny:jar:0.13.0:compile
[INFO] |  |  +- io.quarkus:quarkus-vertx-core:jar:1.12.0.CR1:compile
[INFO] |  |  |  \- io.vertx:vertx-core:jar:3.9.5:compile
[INFO] |  |  |     +- io.netty:netty-handler-proxy:jar:4.1.49.Final:compile
[INFO] |  |  |     |  \- io.netty:netty-codec-socks:jar:4.1.49.Final:compile
[INFO] |  |  |     \- io.netty:netty-resolver-dns:jar:4.1.49.Final:compile
[INFO] |  |  |        \- io.netty:netty-codec-dns:jar:4.1.49.Final:compile
[INFO] |  |  \- io.vertx:vertx-web:jar:3.9.5:compile
[INFO] |  |     +- io.vertx:vertx-web-common:jar:3.9.5:compile
[INFO] |  |     +- io.vertx:vertx-auth-common:jar:3.9.5:compile
[INFO] |  |     \- io.vertx:vertx-bridge-common:jar:3.9.5:compile
[INFO] |  \- io.quarkus:quarkus-resteasy-server-common:jar:1.12.0.CR1:compile
[INFO] |     \- jakarta.validation:jakarta.validation-api:jar:2.0.2:compile
[INFO] +- io.quarkus:quarkus-resteasy-multipart:jar:1.12.0.CR1:compile
[INFO] |  +- org.jboss.resteasy:resteasy-multipart-provider:jar:4.5.9.Final:compile
[INFO] |  |  +- org.jboss.resteasy:resteasy-core-spi:jar:4.5.9.Final:compile
[INFO] |  |  |  \- org.jboss.spec.javax.ws.rs:jboss-jaxrs-api_2.1_spec:jar:2.0.1.Final:compile
[INFO] |  |  +- org.jboss.resteasy:resteasy-core:jar:4.5.9.Final:compile
[INFO] |  |  |  \- com.ibm.async:asyncutil:jar:0.1.0:compile
[INFO] |  |  +- org.jboss.resteasy:resteasy-client:jar:4.5.9.Final:compile
[INFO] |  |  |  +- org.jboss.resteasy:resteasy-client-api:jar:4.5.9.Final:compile
[INFO] |  |  |  \- commons-io:commons-io:jar:2.8.0:compile
[INFO] |  |  +- org.jboss.resteasy:resteasy-jaxb-provider:jar:4.5.9.Final:compile
[INFO] |  |  |  \- org.glassfish.jaxb:jaxb-runtime:jar:2.3.3-b02:compile
[INFO] |  |  |     +- org.glassfish.jaxb:txw2:jar:2.3.3-b02:compile
[INFO] |  |  |     \- com.sun.istack:istack-commons-runtime:jar:3.0.10:compile
[INFO] |  |  +- com.sun.mail:jakarta.mail:jar:1.6.4:compile
[INFO] |  |  +- org.apache.james:apache-mime4j-dom:jar:0.8.3:compile
[INFO] |  |  |  \- org.apache.james:apache-mime4j-core:jar:0.8.3:compile
[INFO] |  |  \- org.apache.james:apache-mime4j-storage:jar:0.8.3:compile
[INFO] |  \- org.jboss.logging:commons-logging-jboss-logging:jar:1.0.0.Final:compile
[INFO] +- io.quarkus:quarkus-junit5:jar:1.12.0.CR1:test
[INFO] |  +- io.quarkus:quarkus-bootstrap-core:jar:1.12.0.CR1:test
[INFO] |  |  +- io.quarkus:quarkus-bootstrap-app-model:jar:1.12.0.CR1:test
[INFO] |  |  +- io.quarkus:quarkus-bootstrap-maven-resolver:jar:1.12.0.CR1:test
[INFO] |  |  |  +- org.apache.maven:maven-embedder:jar:3.6.3:test
[INFO] |  |  |  |  +- org.apache.maven:maven-settings:jar:3.6.3:test
[INFO] |  |  |  |  +- org.apache.maven:maven-core:jar:3.6.3:test
[INFO] |  |  |  |  |  +- org.apache.maven:maven-artifact:jar:3.6.3:test
[INFO] |  |  |  |  |  \- org.codehaus.plexus:plexus-component-annotations:jar:2.1.0:test
[INFO] |  |  |  |  +- org.apache.maven:maven-plugin-api:jar:3.6.3:test
[INFO] |  |  |  |  +- org.apache.maven:maven-model:jar:3.6.3:test
[INFO] |  |  |  |  +- org.apache.maven:maven-model-builder:jar:3.6.3:test
[INFO] |  |  |  |  +- org.apache.maven:maven-builder-support:jar:3.6.3:test
[INFO] |  |  |  |  +- org.apache.maven.resolver:maven-resolver-api:jar:1.4.1:test
[INFO] |  |  |  |  +- org.apache.maven.resolver:maven-resolver-util:jar:1.4.1:test
[INFO] |  |  |  |  +- org.apache.maven.shared:maven-shared-utils:jar:3.2.1:test
[INFO] |  |  |  |  +- com.google.inject:guice:jar:no_aop:4.2.1:test
[INFO] |  |  |  |  +- org.codehaus.plexus:plexus-utils:jar:3.2.1:test
[INFO] |  |  |  |  +- org.codehaus.plexus:plexus-classworlds:jar:2.6.0:test
[INFO] |  |  |  |  \- commons-cli:commons-cli:jar:1.4:test
[INFO] |  |  |  +- org.eclipse.sisu:org.eclipse.sisu.plexus:jar:0.3.4:test
[INFO] |  |  |  +- org.apache.maven:maven-settings-builder:jar:3.6.3:test
[INFO] |  |  |  |  +- org.codehaus.plexus:plexus-interpolation:jar:1.25:test
[INFO] |  |  |  |  \- org.sonatype.plexus:plexus-sec-dispatcher:jar:1.4:test
[INFO] |  |  |  |     \- org.sonatype.plexus:plexus-cipher:jar:1.4:test
[INFO] |  |  |  +- org.apache.maven:maven-resolver-provider:jar:3.6.3:test
[INFO] |  |  |  |  +- org.apache.maven:maven-repository-metadata:jar:3.6.3:test
[INFO] |  |  |  |  +- org.apache.maven.resolver:maven-resolver-spi:jar:1.4.1:test
[INFO] |  |  |  |  \- org.apache.maven.resolver:maven-resolver-impl:jar:1.4.1:test
[INFO] |  |  |  +- org.apache.maven.resolver:maven-resolver-connector-basic:jar:1.4.1:test
[INFO] |  |  |  +- org.apache.maven.resolver:maven-resolver-transport-wagon:jar:1.4.1:test
[INFO] |  |  |  +- org.apache.maven.wagon:wagon-http:jar:3.3.4:test
[INFO] |  |  |  |  +- org.apache.maven.wagon:wagon-http-shared:jar:3.3.4:test
[INFO] |  |  |  |  |  \- org.jsoup:jsoup:jar:1.12.1:test
[INFO] |  |  |  |  \- org.apache.maven.wagon:wagon-provider-api:jar:3.3.4:test
[INFO] |  |  |  \- org.apache.maven.wagon:wagon-file:jar:3.3.4:test
[INFO] |  |  +- io.quarkus:quarkus-bootstrap-gradle-resolver:jar:1.12.0.CR1:test
[INFO] |  |  \- io.smallrye.common:smallrye-common-io:jar:1.5.0:compile
[INFO] |  +- org.eclipse.sisu:org.eclipse.sisu.inject:jar:0.3.4:test
[INFO] |  +- io.quarkus:quarkus-test-common:jar:1.12.0.CR1:test
[INFO] |  |  +- io.quarkus:quarkus-core-deployment:jar:1.12.0.CR1:test
[INFO] |  |  |  +- io.quarkus.gizmo:gizmo:jar:1.0.6.Final:test
[INFO] |  |  |  |  \- org.ow2.asm:asm-util:jar:9.0:test
[INFO] |  |  |  |     +- org.ow2.asm:asm-tree:jar:9.0:test
[INFO] |  |  |  |     \- org.ow2.asm:asm-analysis:jar:9.0:test
[INFO] |  |  |  +- io.quarkus:quarkus-class-change-agent:jar:1.12.0.CR1:test
[INFO] |  |  |  +- io.quarkus:quarkus-devtools-utilities:jar:1.12.0.CR1:test
[INFO] |  |  |  \- io.quarkus:quarkus-builder:jar:1.12.0.CR1:test
[INFO] |  |  +- io.quarkus:quarkus-jsonp-deployment:jar:1.12.0.CR1:test
[INFO] |  |  \- org.jboss:jandex:jar:2.2.3.Final:compile
[INFO] |  +- org.junit.jupiter:junit-jupiter:jar:5.7.1:test
[INFO] |  |  +- org.junit.jupiter:junit-jupiter-params:jar:5.7.1:test
[INFO] |  |  \- org.junit.jupiter:junit-jupiter-engine:jar:5.7.1:test
[INFO] |  |     \- org.junit.platform:junit-platform-engine:jar:1.7.1:test
[INFO] |  +- io.quarkus:quarkus-core:jar:1.12.0.CR1:compile
[INFO] |  |  +- jakarta.enterprise:jakarta.enterprise.cdi-api:jar:2.0.2:compile
[INFO] |  |  |  \- jakarta.el:jakarta.el-api:jar:3.0.3:compile
[INFO] |  |  +- jakarta.inject:jakarta.inject-api:jar:1.0:compile
[INFO] |  |  +- io.quarkus:quarkus-ide-launcher:jar:1.12.0.CR1:compile
[INFO] |  |  +- io.quarkus:quarkus-development-mode-spi:jar:1.12.0.CR1:compile
[INFO] |  |  +- io.smallrye.config:smallrye-config:jar:1.10.2:compile
[INFO] |  |  |  +- io.smallrye.config:smallrye-config-common:jar:1.10.2:compile
[INFO] |  |  |  +- io.smallrye.common:smallrye-common-expression:jar:1.5.0:compile
[INFO] |  |  |  |  \- io.smallrye.common:smallrye-common-function:jar:1.5.0:compile
[INFO] |  |  |  +- io.smallrye.common:smallrye-common-constraint:jar:1.5.0:compile
[INFO] |  |  |  \- io.smallrye.common:smallrye-common-classloader:jar:1.5.0:compile
[INFO] |  |  +- org.jboss.logmanager:jboss-logmanager-embedded:jar:1.0.6:compile
[INFO] |  |  +- org.jboss.logging:jboss-logging-annotations:jar:2.2.0.Final:compile
[INFO] |  |  +- org.jboss.threads:jboss-threads:jar:3.2.0.Final:compile
[INFO] |  |  +- org.slf4j:slf4j-api:jar:1.7.30:compile
[INFO] |  |  +- org.jboss.slf4j:slf4j-jboss-logmanager:jar:1.1.0.Final:compile
[INFO] |  |  +- org.graalvm.sdk:graal-sdk:jar:21.0.0:compile
[INFO] |  |  +- org.wildfly.common:wildfly-common:jar:1.5.4.Final-format-001:compile
[INFO] |  |  \- io.quarkus:quarkus-bootstrap-runner:jar:1.12.0.CR1:compile
[INFO] |  \- com.thoughtworks.xstream:xstream:jar:1.4.15:test
[INFO] |     +- xmlpull:xmlpull:jar:1.1.3.1:test
[INFO] |     \- xpp3:xpp3_min:jar:1.1.4c:test
[INFO] +- io.rest-assured:rest-assured:jar:4.3.3:test
[INFO] |  +- org.codehaus.groovy:groovy:jar:3.0.7:test
[INFO] |  +- org.codehaus.groovy:groovy-xml:jar:3.0.7:test
[INFO] |  +- org.apache.httpcomponents:httpclient:jar:4.5.13:compile
[INFO] |  |  +- org.apache.httpcomponents:httpcore:jar:4.4.14:compile
[INFO] |  |  \- commons-codec:commons-codec:jar:1.14:compile
[INFO] |  +- org.apache.httpcomponents:httpmime:jar:4.5.13:test
[INFO] |  +- org.hamcrest:hamcrest:jar:2.1:test
[INFO] |  +- org.ccil.cowan.tagsoup:tagsoup:jar:1.2.1:test
[INFO] |  +- io.rest-assured:json-path:jar:4.3.3:test
[INFO] |  |  +- org.codehaus.groovy:groovy-json:jar:3.0.7:test
[INFO] |  |  \- io.rest-assured:rest-assured-common:jar:4.3.3:test
[INFO] |  \- io.rest-assured:xml-path:jar:4.3.3:test
[INFO] |     +- org.apache.commons:commons-lang3:jar:3.11:test
[INFO] |     +- jakarta.xml.bind:jakarta.xml.bind-api:jar:2.3.3:test
[INFO] |     |  \- jakarta.activation:jakarta.activation-api:jar:1.2.1:compile
[INFO] |     \- com.sun.xml.bind:jaxb-impl:jar:2.3.3:test
[INFO] +- io.quarkus:quarkus-flyway:jar:1.12.0.CR1:compile
[INFO] |  +- org.flywaydb:flyway-core:jar:7.5.2:compile
[INFO] |  +- io.quarkus:quarkus-agroal:jar:1.12.0.CR1:compile
[INFO] |  |  +- io.quarkus:quarkus-datasource:jar:1.12.0.CR1:compile
[INFO] |  |  +- org.jboss.narayana.jta:narayana-jta:jar:5.10.6.Final:compile
[INFO] |  |  |  +- org.jboss:jboss-transaction-spi:jar:7.6.0.Final:compile
[INFO] |  |  |  \- org.jboss.spec.javax.resource:jboss-connector-api_1.7_spec:jar:1.0.0.Final:compile
[INFO] |  |  +- org.jboss.narayana.jts:narayana-jts-integration:jar:5.10.6.Final:compile
[INFO] |  |  +- jakarta.transaction:jakarta.transaction-api:jar:1.3.3:compile
[INFO] |  |  +- io.agroal:agroal-api:jar:1.9:compile
[INFO] |  |  +- io.agroal:agroal-narayana:jar:1.9:compile
[INFO] |  |  +- io.agroal:agroal-pool:jar:1.9:compile
[INFO] |  |  \- io.quarkus:quarkus-credentials:jar:1.12.0.CR1:compile
[INFO] |  +- io.quarkus:quarkus-narayana-jta:jar:1.12.0.CR1:compile
[INFO] |  |  +- io.quarkus:quarkus-mutiny:jar:1.12.0.CR1:compile
[INFO] |  |  |  +- io.quarkus:quarkus-smallrye-context-propagation:jar:1.12.0.CR1:compile
[INFO] |  |  |  |  \- io.smallrye:smallrye-context-propagation:jar:1.1.0:compile
[INFO] |  |  |  |     +- io.smallrye:smallrye-context-propagation-api:jar:1.1.0:compile
[INFO] |  |  |  |     \- io.smallrye:smallrye-context-propagation-storage:jar:1.1.0:compile
[INFO] |  |  |  \- io.smallrye.reactive:mutiny-context-propagation:jar:0.13.0:compile
[INFO] |  |  +- io.smallrye:smallrye-context-propagation-jta:jar:1.1.0:compile
[INFO] |  |  +- io.smallrye.reactive:smallrye-reactive-converter-api:jar:1.4.0:compile
[INFO] |  |  \- io.smallrye.reactive:smallrye-reactive-converter-mutiny:jar:1.4.0:compile
[INFO] |  \- io.quarkus:quarkus-datasource-common:jar:1.12.0.CR1:compile
[INFO] +- io.quarkus:quarkus-hibernate-validator:jar:1.12.0.CR1:compile
[INFO] |  +- io.quarkus:quarkus-arc:jar:1.12.0.CR1:compile
[INFO] |  |  +- io.quarkus.arc:arc:jar:1.12.0.CR1:compile
[INFO] |  |  \- org.eclipse.microprofile.context-propagation:microprofile-context-propagation-api:jar:1.0.1:compile
[INFO] |  +- org.hibernate.validator:hibernate-validator:jar:6.2.0.Final:compile
[INFO] |  |  \- com.fasterxml:classmate:jar:1.3.4:compile
[INFO] |  \- org.glassfish:jakarta.el:jar:3.0.3:compile
[INFO] +- io.quarkus:quarkus-rest-client:jar:1.12.0.CR1:compile
[INFO] |  +- io.quarkus:quarkus-resteasy-common:jar:1.12.0.CR1:compile
[INFO] |  |  \- com.sun.activation:jakarta.activation:jar:1.2.1:compile
[INFO] |  +- org.jboss.resteasy:resteasy-client-microprofile:jar:4.5.9.Final:compile
[INFO] |  |  \- org.eclipse.microprofile.rest.client:microprofile-rest-client-api:jar:1.4.1:compile
[INFO] |  +- jakarta.interceptor:jakarta.interceptor-api:jar:1.2.5:compile
[INFO] |  \- org.apache.httpcomponents:httpasyncclient:jar:4.1.4:compile
[INFO] |     \- org.apache.httpcomponents:httpcore-nio:jar:4.4.14:compile
[INFO] +- io.quarkus:quarkus-resteasy-jackson:jar:1.12.0.CR1:compile
[INFO] |  +- io.quarkus:quarkus-jackson:jar:1.12.0.CR1:compile
[INFO] |  |  \- com.fasterxml.jackson.module:jackson-module-parameter-names:jar:2.12.1:compile
[INFO] |  +- org.jboss.resteasy:resteasy-jackson2-provider:jar:4.5.9.Final:compile
[INFO] |  |  +- com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider:jar:2.12.1:compile
[INFO] |  |  |  +- com.fasterxml.jackson.jaxrs:jackson-jaxrs-base:jar:2.12.1:compile
[INFO] |  |  |  \- com.fasterxml.jackson.module:jackson-module-jaxb-annotations:jar:2.12.1:compile
[INFO] |  |  \- com.github.java-json-tools:json-patch:jar:1.13:compile
[INFO] |  |     +- com.github.java-json-tools:msg-simple:jar:1.2:compile
[INFO] |  |     |  \- com.github.java-json-tools:btf:jar:1.3:compile
[INFO] |  |     \- com.github.java-json-tools:jackson-coreutils:jar:2.0:compile
[INFO] |  \- org.jboss.spec.javax.xml.bind:jboss-jaxb-api_2.3_spec:jar:2.0.0.Final:compile
[INFO] +- io.quarkus:quarkus-smallrye-openapi:jar:1.12.0.CR1:compile
[INFO] |  +- io.smallrye:smallrye-open-api-core:jar:2.0.20:compile
[INFO] |  |  +- org.eclipse.microprofile.openapi:microprofile-openapi-api:jar:1.1.2:compile
[INFO] |  |  \- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:jar:2.12.1:compile
[INFO] |  |     \- org.yaml:snakeyaml:jar:1.27:compile
[INFO] |  \- io.quarkus:quarkus-swagger-ui:jar:1.12.0.CR1:compile
[INFO] +- io.quarkus:quarkus-smallrye-jwt:jar:1.12.0.CR1:compile
[INFO] |  +- io.smallrye:smallrye-jwt:jar:2.4.3:compile
[INFO] |  +- jakarta.annotation:jakarta.annotation-api:jar:1.3.5:compile
[INFO] |  +- io.quarkus:quarkus-vertx-web:jar:1.12.0.CR1:compile
[INFO] |  |  +- io.quarkus:quarkus-vertx:jar:1.12.0.CR1:compile
[INFO] |  |  |  \- io.smallrye.reactive:smallrye-mutiny-vertx-core:jar:1.4.0:compile
[INFO] |  |  |     +- io.smallrye.reactive:smallrye-mutiny-vertx-runtime:jar:1.4.0:compile
[INFO] |  |  |     \- io.smallrye.reactive:vertx-mutiny-generator:jar:1.4.0:compile
[INFO] |  |  |        \- io.vertx:vertx-codegen:jar:3.9.5:compile
[INFO] |  |  |           \- org.mvel:mvel2:jar:2.3.1.Final:compile
[INFO] |  |  \- io.smallrye.common:smallrye-common-annotation:jar:1.5.0:compile
[INFO] |  +- io.quarkus:quarkus-security:jar:1.12.0.CR1:compile
[INFO] |  +- io.quarkus:quarkus-smallrye-jwt-build:jar:1.12.0.CR1:compile
[INFO] |  \- io.quarkus:quarkus-jsonp:jar:1.12.0.CR1:compile
[INFO] |     \- org.glassfish:jakarta.json:jar:1.1.6:compile
[INFO] +- io.quarkus:quarkus-smallrye-health:jar:1.12.0.CR1:compile
[INFO] |  +- io.smallrye:smallrye-health:jar:2.2.5:compile
[INFO] |  |  +- org.eclipse.microprofile.health:microprofile-health-api:jar:2.2:compile
[INFO] |  |  \- io.smallrye:smallrye-health-api:jar:2.2.5:compile
[INFO] |  \- io.smallrye:smallrye-health-provided-checks:jar:2.2.5:compile
[INFO] +- io.quarkus:quarkus-jdbc-postgresql:jar:1.12.0.CR1:compile
[INFO] |  \- org.postgresql:postgresql:jar:42.2.18:compile
[INFO] +- io.quarkus:quarkus-kubernetes:jar:1.12.0.CR1:compile
[INFO] |  \- io.quarkus:quarkus-kubernetes-client-internal:jar:1.12.0.CR1:compile
[INFO] +- io.quarkus:quarkus-cache:jar:1.12.0.CR1:compile
[INFO] |  \- io.quarkus:quarkus-caffeine:jar:1.12.0.CR1:compile
[INFO] |     \- com.github.ben-manes.caffeine:caffeine:jar:2.8.8:compile
[INFO] +- io.quarkus:quarkus-container-image-jib:jar:1.12.0.CR1:compile
[INFO] +- io.netty:netty-transport-native-epoll:jar:linux-x86_64:4.1.49.Final:compile
[INFO] |  +- io.netty:netty-common:jar:4.1.49.Final:compile
[INFO] |  +- io.netty:netty-buffer:jar:4.1.49.Final:compile
[INFO] |  +- io.netty:netty-transport:jar:4.1.49.Final:compile
[INFO] |  |  \- io.netty:netty-resolver:jar:4.1.49.Final:compile
[INFO] |  \- io.netty:netty-transport-native-unix-common:jar:4.1.49.Final:compile
[INFO] +- io.quarkus:quarkus-amazon-s3:jar:1.12.0.CR1:compile
[INFO] |  +- io.quarkus:quarkus-netty:jar:1.12.0.CR1:compile
[INFO] |  |  +- io.netty:netty-codec:jar:4.1.49.Final:compile
[INFO] |  |  \- io.netty:netty-handler:jar:4.1.49.Final:compile
[INFO] |  +- io.quarkus:quarkus-amazon-common:jar:1.12.0.CR1:compile
[INFO] |  |  +- software.amazon.awssdk:sdk-core:jar:2.15.79:compile
[INFO] |  |  +- software.amazon.awssdk:aws-core:jar:2.15.79:compile
[INFO] |  |  |  \- software.amazon.eventstream:eventstream:jar:1.0.1:compile
[INFO] |  |  +- software.amazon.awssdk:regions:jar:2.15.79:compile
[INFO] |  |  \- software.amazon.awssdk:auth:jar:2.15.79:compile
[INFO] |  \- software.amazon.awssdk:s3:jar:2.15.79:compile
[INFO] |     +- software.amazon.awssdk:aws-xml-protocol:jar:2.15.79:compile
[INFO] |     |  \- software.amazon.awssdk:aws-query-protocol:jar:2.15.79:compile
[INFO] |     +- software.amazon.awssdk:protocol-core:jar:2.15.79:compile
[INFO] |     +- software.amazon.awssdk:arns:jar:2.15.79:compile
[INFO] |     +- software.amazon.awssdk:profiles:jar:2.15.79:compile
[INFO] |     +- software.amazon.awssdk:metrics-spi:jar:2.15.79:compile
[INFO] |     +- software.amazon.awssdk:apache-client:jar:2.15.79:runtime
[INFO] |     \- software.amazon.awssdk:netty-nio-client:jar:2.15.79:runtime
[INFO] |        +- io.netty:netty-codec-http:jar:4.1.49.Final:compile
[INFO] |        +- io.netty:netty-codec-http2:jar:4.1.49.Final:compile
[INFO] |        \- com.typesafe.netty:netty-reactive-streams-http:jar:2.0.4:runtime
[INFO] |           \- com.typesafe.netty:netty-reactive-streams:jar:2.0.4:runtime
[INFO] +- software.amazon.awssdk:url-connection-client:jar:2.15.79:compile
[INFO] |  +- software.amazon.awssdk:utils:jar:2.15.79:compile
[INFO] |  +- software.amazon.awssdk:annotations:jar:2.15.79:compile
[INFO] |  \- software.amazon.awssdk:http-client-spi:jar:2.15.79:compile
[INFO] +- io.opentelemetry:opentelemetry-api:jar:0.12.0:compile
[INFO] |  \- io.opentelemetry:opentelemetry-context:jar:0.12.0:compile
[INFO] +- io.opentelemetry:opentelemetry-sdk:jar:0.12.0:compile
[INFO] |  +- io.opentelemetry:opentelemetry-sdk-common:jar:0.12.0:compile
[INFO] |  +- io.opentelemetry:opentelemetry-sdk-metrics:jar:0.12.0:compile
[INFO] |  \- io.opentelemetry:opentelemetry-sdk-trace:jar:0.12.0:compile
[INFO] +- io.opentelemetry:opentelemetry-exporter-jaeger:jar:0.12.0:compile
[INFO] |  +- io.grpc:grpc-api:jar:1.34.0:compile
[INFO] |  |  +- io.grpc:grpc-context:jar:1.34.0:compile
[INFO] |  |  \- org.codehaus.mojo:animal-sniffer-annotations:jar:1.18:runtime
[INFO] |  +- io.opentelemetry:opentelemetry-sdk-extension-otproto:jar:0.12.0:runtime
[INFO] |  |  \- io.opentelemetry:opentelemetry-proto:jar:0.12.0:runtime
[INFO] |  +- io.grpc:grpc-protobuf:jar:1.34.0:runtime
[INFO] |  |  +- com.google.api.grpc:proto-google-common-protos:jar:1.17.0:runtime
[INFO] |  |  \- io.grpc:grpc-protobuf-lite:jar:1.34.0:runtime
[INFO] |  +- io.grpc:grpc-stub:jar:1.34.0:runtime
[INFO] |  +- com.google.protobuf:protobuf-java:jar:3.14.0:runtime
[INFO] |  \- com.google.protobuf:protobuf-java-util:jar:3.14.0:runtime
[INFO] |     \- com.google.code.gson:gson:jar:2.8.6:runtime
[INFO] +- io.grpc:grpc-netty-shaded:jar:1.34.0:compile
[INFO] |  \- io.grpc:grpc-core:jar:1.34.0:compile
[INFO] |     +- com.google.android:annotations:jar:4.1.1.4:runtime
[INFO] |     \- io.perfmark:perfmark-api:jar:0.19.0:runtime
[INFO] +- org.jooq:jooq:jar:3.14.6:compile
[INFO] |  \- org.reactivestreams:reactive-streams:jar:1.0.3:compile
[INFO] +- org.jooq:jool:jar:0.9.14:compile
[INFO] +- org.antlr:antlr4-runtime:jar:4.8:compile
[INFO] +- org.immutables:value:jar:2.8.8:compile
[INFO] +- org.zalando:problem:jar:0.25.0:compile
[INFO] +- org.apiguardian:apiguardian-api:jar:1.1.1:compile
[INFO] +- org.zalando:jackson-datatype-problem:jar:0.25.0:compile
[INFO] |  \- com.fasterxml.jackson.core:jackson-databind:jar:2.12.1:compile
[INFO] +- com.fasterxml.jackson.datatype:jackson-datatype-jdk8:jar:2.12.1:compile
[INFO] |  \- com.fasterxml.jackson.core:jackson-core:jar:2.12.1:compile
[INFO] +- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar:2.12.1:compile
[INFO] |  \- com.fasterxml.jackson.core:jackson-annotations:jar:2.12.1:compile
[INFO] +- com.fasterxml.jackson.datatype:jackson-datatype-guava:jar:2.12.1:compile
[INFO] +- com.google.guava:guava:jar:30.1-jre:compile
[INFO] +- com.google.guava:failureaccess:jar:1.0.1:compile
[INFO] +- org.eclipse.jdt:org.eclipse.jdt.annotation:jar:2.2.600:compile
[INFO] +- org.jetbrains:annotations:jar:20.1.0:compile
[INFO] +- io.smallrye:smallrye-jwt-build:jar:2.4.3:test
[INFO] |  +- org.eclipse.microprofile.config:microprofile-config-api:jar:1.4:compile
[INFO] |  +- org.eclipse.microprofile.jwt:microprofile-jwt-auth-api:jar:1.1.1:compile
[INFO] |  +- org.bitbucket.b_c:jose4j:jar:0.7.6:compile
[INFO] |  +- io.smallrye:smallrye-jwt-common:jar:2.4.3:compile
[INFO] |  \- org.jboss.logging:jboss-logging:jar:3.4.1.Final:compile
[INFO] +- org.testcontainers:junit-jupiter:jar:1.15.1:test
[INFO] |  +- org.testcontainers:testcontainers:jar:1.15.1:test
[INFO] |  |  +- org.apache.commons:commons-compress:jar:1.20:test
[INFO] |  |  +- org.rnorth.duct-tape:duct-tape:jar:1.0.8:test
[INFO] |  |  +- org.rnorth.visible-assertions:visible-assertions:jar:2.1.2:test
[INFO] |  |  |  \- net.java.dev.jna:jna:jar:5.3.1:test
[INFO] |  |  +- com.github.docker-java:docker-java-api:jar:3.2.7:test
[INFO] |  |  \- com.github.docker-java:docker-java-transport-zerodep:jar:3.2.7:test
[INFO] |  |     \- com.github.docker-java:docker-java-transport:jar:3.2.7:test
[INFO] |  \- org.junit.jupiter:junit-jupiter-api:jar:5.7.1:test
[INFO] |     +- org.opentest4j:opentest4j:jar:1.2.0:test
[INFO] |     \- org.junit.platform:junit-platform-commons:jar:1.7.1:test
[INFO] +- org.testcontainers:postgresql:jar:1.15.1:test
[INFO] |  \- org.testcontainers:jdbc:jar:1.15.1:test
[INFO] |     \- org.testcontainers:database-commons:jar:1.15.1:test
[INFO] +- org.skyscreamer:jsonassert:jar:1.5.0:test
[INFO] |  \- com.vaadin.external.google:android-json:jar:0.0.20131108.vaadin1:test
[INFO] +- com.google.truth:truth:jar:1.1.2:test
[INFO] |  +- org.checkerframework:checker-qual:jar:2.5.2:test
[INFO] |  +- junit:junit:jar:4.13.1:test
[INFO] |  |  \- org.hamcrest:hamcrest-core:jar:1.3:test
[INFO] |  +- com.google.auto.value:auto-value-annotations:jar:1.7.4:test
[INFO] |  +- com.google.errorprone:error_prone_annotations:jar:2.2.0:compile
[INFO] |  \- org.ow2.asm:asm:jar:9.0:test
[INFO] +- com.google.truth.extensions:truth-java8-extension:jar:1.1.2:test
[INFO] \- org.jacoco:org.jacoco.agent:jar:runtime:0.8.6:test

Anyway, I don't have set up the quarkus.s3.sync-client.type if you ask, so the default url should apply. The weird thing is that for some reason is jumping into the apache type.

gsmet commented 3 years ago

Any chance you could prepare me a small Maven reproducer? I don't need it to really connect to S3, I would just like to experiment properly with your setup and see how things are initialized.

Thanks!

jorsol commented 3 years ago

Ok, here you have it: https://github.com/jorsol/quarkus-bug-15014

You can try to remove the exclusions too.

gsmet commented 3 years ago

Thanks, I will have a look later today.

gsmet commented 3 years ago

I had a look. I think it was working before because the Apache classes were leaking in the deployment phase and it's not the case anymore. So it looks like a side effect of an unrelated bugfix.

Fixing it will require some reorganization of the code. I'll try to come up with a fix before the Final.

jorsol commented 3 years ago

Thanks,

BTW have you noticed the leak of apache-client and netty-nio-client dependencies in the quarkus-app/lib/main? This is one of the reasons I have to exclude those dependencies explicitly, the <optional> is not enforced since is pulled from the main dependency of the service as a runtime dependency.

So one possible "fix" is to exclude them: https://github.com/quarkusio/quarkus/pull/15046

gsmet commented 3 years ago

Yeah, I have already committed a change to exclude them in my tree. They should have been optional all along.

Now I need to figure out how to get the recorder working properly.

jorsol commented 3 years ago

Yeah, I have already committed a change to exclude them in my tree. They should have been optional all along.

Great, so closing my PR then.

gsmet commented 3 years ago

@jorsol could you have a look at https://github.com/quarkusio/quarkus/pull/15087 and give it a try?

https://github.com/quarkusio/quarkus/blob/master/CONTRIBUTING.md#checking-an-issue-is-fixed-in-master might be useful, just check my branch instead of master.

I'm building the artifacts of 1.12.0.Final on Wednesday so, if we could iterate tomorrow, that would be perfect.

gsmet commented 3 years ago

@jorsol any feedback? Clock is ticking :)

jorsol commented 3 years ago

@gsmet sorry, I haven't had time to test it yet, will start testing it right now, give me a couple of hours, although I'm confident it will work :)

jorsol commented 3 years ago

@gsmet It works for my use case, the reproducer works as expected. Thanks!

Just a small note, url-connection-client and apache-client are mutually exclusive, so having this should fail at build time.

    <dependency>
      <groupId>software.amazon.awssdk</groupId>
      <artifactId>url-connection-client</artifactId>
    </dependency>
    <dependency>
      <groupId>software.amazon.awssdk</groupId>
      <artifactId>apache-client</artifactId>
    </dependency>

Right now this fails at runtime with: software.amazon.awssdk.core.exception.SdkClientException: Multiple HTTP implementations were found on the classpath. ....

So it would be nice to detect this at build time too, possibly by checking the implementation of quarkus.s3.sync-client.type and then check if the other implementation is present at build time too and fail properly.

gsmet commented 3 years ago

So it would be nice to detect this at build time too, possibly by checking the implementation of quarkus.s3.sync-client.type and then check if the other implementation is present at build time too and fail properly.

So sure... feel free to open an enhancement request. Probably a good issue for a new contributor.