Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Closed
jorsol opened this issue Feb 11, 2021 · 14 comments · Fixed by #15087
Closed

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

jorsol opened this issue Feb 11, 2021 · 14 comments · Fixed by #15087
Labels
kind/bug Something isn't working
Milestone

Comments

@jorsol
Copy link
Contributor

jorsol commented Feb 11, 2021

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.

public RuntimeValue<SdkHttpClient.Builder> configureSyncApacheHttpClient(String clientName,

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

Environment (please complete the following information):

  • Output of uname -a or ver: Linux 5.8.0-43-generic x86_64
  • Output of java -version: openjdk version "15.0.2" 2021-01-19
  • GraalVM version (if different from Java):
  • Quarkus version or git rev: 1.12.0.CR1
  • Build tool (ie. output of mvnw --version or gradlew --version): 3.6.3
@jorsol jorsol added the kind/bug Something isn't working label Feb 11, 2021
@ghost ghost added the triage/needs-triage label Feb 11, 2021
@gsmet
Copy link
Member

gsmet commented Feb 11, 2021

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
Copy link
Contributor Author

jorsol commented Feb 11, 2021

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
Copy link
Member

gsmet commented Feb 11, 2021

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
Copy link
Contributor Author

jorsol commented Feb 11, 2021

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

You can try to remove the exclusions too.

@gsmet
Copy link
Member

gsmet commented Feb 12, 2021

Thanks, I will have a look later today.

@gsmet
Copy link
Member

gsmet commented Feb 12, 2021

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
Copy link
Contributor Author

jorsol commented Feb 12, 2021

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: #15046

@gsmet
Copy link
Member

gsmet commented Feb 12, 2021

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
Copy link
Contributor Author

jorsol commented Feb 12, 2021

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
Copy link
Member

gsmet commented Feb 15, 2021

@jorsol could you have a look at #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
Copy link
Member

gsmet commented Feb 16, 2021

@jorsol any feedback? Clock is ticking :)

@jorsol
Copy link
Contributor Author

jorsol commented Feb 16, 2021

@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
Copy link
Contributor Author

jorsol commented Feb 16, 2021

@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.

@quarkus-bot quarkus-bot bot added this to the 1.13 - master milestone Feb 16, 2021
@gsmet
Copy link
Member

gsmet commented Feb 16, 2021

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.

@gsmet gsmet modified the milestones: 1.13 - master, 1.12.0.Final Feb 16, 2021
gsmet added a commit to gsmet/quarkus that referenced this issue Feb 16, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants