Skip to content

Commit

Permalink
Register required AHC classes for runtime initialization
Browse files Browse the repository at this point in the history
Fixes #1126
  • Loading branch information
jamesnetherton authored and actions-user committed May 1, 2020
1 parent e797254 commit 30bcfdb
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -16,14 +16,22 @@
*/
package org.apache.camel.quarkus.component.support.ahc.deployment;

import io.quarkus.deployment.annotations.BuildProducer;
import io.quarkus.deployment.annotations.BuildStep;
import io.quarkus.deployment.builditem.ExtensionSslNativeSupportBuildItem;
import io.quarkus.deployment.builditem.FeatureBuildItem;
import io.quarkus.deployment.builditem.nativeimage.NativeImageResourceBuildItem;
import io.quarkus.deployment.builditem.nativeimage.RuntimeInitializedClassBuildItem;

class SupportAhcProcessor {

private static final String FEATURE = "camel-support-ahc";
private static final String[] RUNTIME_INITIALIZED_CLASSES = new String[] {
"org.asynchttpclient.netty.channel.ChannelManager",
"org.asynchttpclient.netty.request.NettyRequestSender",
"org.asynchttpclient.RequestBuilderBase",
"org.asynchttpclient.resolver.RequestHostnameResolver"
};

@BuildStep
FeatureBuildItem feature() {
Expand All @@ -42,4 +50,11 @@ ExtensionSslNativeSupportBuildItem activateSslNativeSupport() {
return new ExtensionSslNativeSupportBuildItem(FEATURE);
}

@BuildStep
void runtimeInitializedClasses(BuildProducer<RuntimeInitializedClassBuildItem> runtimeInitializedClass) {
for (String className : RUNTIME_INITIALIZED_CLASSES) {
runtimeInitializedClass
.produce(new RuntimeInitializedClassBuildItem(className));
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@

import io.quarkus.deployment.annotations.BuildStep;
import io.quarkus.deployment.builditem.FeatureBuildItem;
import io.quarkus.deployment.builditem.nativeimage.RuntimeInitializedClassBuildItem;

class AhcWsProcessor {

Expand All @@ -28,4 +29,8 @@ FeatureBuildItem feature() {
return new FeatureBuildItem(FEATURE);
}

@BuildStep
RuntimeInitializedClassBuildItem runtimeInitializedClasses() {
return new RuntimeInitializedClassBuildItem("org.asynchttpclient.netty.ws.NettyWebSocket");
}
}

0 comments on commit 30bcfdb

Please sign in to comment.