From 184c33e20fc698adf2cc44f07e7ab45c5c2cf14e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lvaro=20S=C3=A1nchez-Mariscal?= Date: Fri, 16 Sep 2022 13:33:53 +0200 Subject: [PATCH] Fix GraalVM configuration of `software.amazon.awssdk:apache-client` The GraalVM configuration of `software.amazon.awssdk:apache-client` is incomplete. Without this change, `software.amazon.awssdk.http.apache.pacheHttpClient` fails with: ``` Caused by: java.lang.ExceptionInInitializerError: null at org.apache.http.conn.ssl.SSLConnectionSocketFactory.(SSLConnectionSocketFactory.java:151) at java.lang.Class.ensureInitialized(DynamicHub.java:525) at software.amazon.awssdk.http.apache.ApacheHttpClient$ApacheConnectionManagerFactory.getPreferredSocketFactory(ApacheHttpClient.java:658) at software.amazon.awssdk.http.apache.ApacheHttpClient$ApacheConnectionManagerFactory.create(ApacheHttpClient.java:637) at software.amazon.awssdk.http.apache.ApacheHttpClient.createClient(ApacheHttpClient.java:151) at software.amazon.awssdk.http.apache.ApacheHttpClient.(ApacheHttpClient.java:125) at software.amazon.awssdk.http.apache.ApacheHttpClient.(ApacheHttpClient.java:104) at software.amazon.awssdk.http.apache.ApacheHttpClient$DefaultBuilder.buildWithDefaults(ApacheHttpClient.java:629) at software.amazon.awssdk.http.SdkHttpClient$Builder.build(SdkHttpClient.java:69) at io.micronaut.aws.sdk.v2.client.apache.ApacheClientFactory.doCreateClient(ApacheClientFactory.java:62) at io.micronaut.aws.sdk.v2.client.apache.ApacheClientFactory.apacheClient(ApacheClientFactory.java:47) at io.micronaut.aws.sdk.v2.client.apache.$ApacheClientFactory$ApacheClient0$Definition.build(Unknown Source) at io.micronaut.context.DefaultBeanContext.resolveByBeanFactory(DefaultBeanContext.java:2354) ... 81 common frames omitted Caused by: org.apache.commons.logging.LogConfigurationException: java.lang.ClassNotFoundException: org.apache.commons.logging.impl.LogFactoryImpl (Caused by java.lang.ClassNotFoundException: org.apache.commons.logging.impl.LogFactoryImpl) at org.apache.commons.logging.LogFactory.createFactory(LogFactory.java:1158) at org.apache.commons.logging.LogFactory$2.run(LogFactory.java:960) at java.security.AccessController.executePrivileged(AccessController.java:169) at java.security.AccessController.doPrivileged(AccessController.java:83) at org.apache.commons.logging.LogFactory.newFactory(LogFactory.java:957) at org.apache.commons.logging.LogFactory.getFactory(LogFactory.java:624) at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:655) at org.apache.http.conn.ssl.AbstractVerifier.(AbstractVerifier.java:61) at org.apache.http.conn.ssl.AllowAllHostnameVerifier.(AllowAllHostnameVerifier.java:44) at org.apache.http.conn.ssl.AllowAllHostnameVerifier.(AllowAllHostnameVerifier.java:46) ... 94 common frames omitted Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.impl.LogFactoryImpl at jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:52) at jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) at java.lang.ClassLoader.loadClass(ClassLoader.java:133) at org.apache.commons.logging.LogFactory.createFactory(LogFactory.java:1020) ``` --- .../apache-client/reflect-config.json | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/http-clients/apache-client/src/main/resources/META-INF/native-image/software.amazon.awssdk/apache-client/reflect-config.json b/http-clients/apache-client/src/main/resources/META-INF/native-image/software.amazon.awssdk/apache-client/reflect-config.json index 32161aa16f75..f7beca91278e 100644 --- a/http-clients/apache-client/src/main/resources/META-INF/native-image/software.amazon.awssdk/apache-client/reflect-config.json +++ b/http-clients/apache-client/src/main/resources/META-INF/native-image/software.amazon.awssdk/apache-client/reflect-config.json @@ -24,5 +24,20 @@ "allPublicMethods": true, "allDeclaredClasses": true, "allPublicClasses": true - } -] \ No newline at end of file + }, + { + "name":"org.apache.commons.logging.impl.Jdk14Logger", + "methods":[{"name":"","parameterTypes":["java.lang.String"] }] + }, + { + "name":"org.apache.commons.logging.impl.Log4JLogger" + }, + { + "name":"org.apache.commons.logging.impl.LogFactoryImpl", + "methods":[{"name":"","parameterTypes":[] }] + }, + { + "name":"org.apache.commons.logging.impl.WeakHashtable", + "methods":[{"name":"","parameterTypes":[] }] + } +]