Skip to content

Commit

Permalink
add missing reflective class
Browse files Browse the repository at this point in the history
  • Loading branch information
Loic Hermann authored and Loic Hermann committed Aug 9, 2024
1 parent c759912 commit 8112414
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 44 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@
import io.quarkus.deployment.annotations.BuildStep;
import io.quarkus.deployment.builditem.CombinedIndexBuildItem;
import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem;
import io.quarkus.deployment.builditem.nativeimage.RuntimeInitializedClassBuildItem;
import io.quarkus.deployment.builditem.nativeimage.RuntimeInitializedPackageBuildItem;

public class NettyShadedProcessor {
Expand Down Expand Up @@ -51,40 +50,37 @@ void registerReflecttionsNettyShaded(BuildProducer<ReflectiveClassBuildItem> ref
prefixPackageDir + ".BaseMpscLinkedArrayQueueColdProducerFields",
prefixPackageDir + ".BaseMpscLinkedArrayQueueConsumerFields",
"io.grpc.internal.DnsNameResolverProvider")
.constructors(true)
.methods(true)
.fields(true)
.constructors()
.methods()
.fields()
.build());

Collection<ClassInfo> nrs = combinedIndex.getIndex().getAllKnownSubclasses(NAME_RESOLVER_PROVIDER);
for (ClassInfo nr : nrs) {
reflections.produce(ReflectiveClassBuildItem.builder(nr.name().toString())
.constructors(true)
.methods(true)
.fields(false)
.constructors()
.methods()
.build());
}

reflections.produce(ReflectiveClassBuildItem.builder(DnsNameResolverProvider.class)
.constructors(true)
.methods(true)
.fields(false)
.constructors()
.methods()
.build());
reflections.produce(ReflectiveClassBuildItem.builder("io.grpc.util.SecretRoundRobinLoadBalancerProvider$Provider")
.constructors(true)
.methods(true)
.fields(false)
.constructors()
.methods()
.build());
reflections.produce(ReflectiveClassBuildItem.builder(NettyChannelProvider.class)
.constructors(true)
.methods(true)
.fields(false)
.constructors()
.methods()
.build());
reflections.produce(ReflectiveClassBuildItem.builder(ReadableBuffers.class)
.constructors(true)
.methods(true)
.fields(true)
.constructors()
.methods()
.fields()
.build());

}

/**
Expand All @@ -97,33 +93,11 @@ void registerReflecttionsNettyShaded(BuildProducer<ReflectiveClassBuildItem> ref
// resourceBuildItem.produce(new NativeImageResourceDirectoryBuildItem("META-INF"));
// }
@BuildStep
void runTimeInitializationForNettyShaded(BuildProducer<RuntimeInitializedClassBuildItem> runtimeInitialized,
void runTimeInitializationForNettyShaded(
BuildProducer<RuntimeInitializedPackageBuildItem> runtimePackages) {
runtimeInitialized.produce(new RuntimeInitializedClassBuildItem("io.grpc.netty.shaded.io.netty.handler.ssl.OpenSsl"));
runtimeInitialized
.produce(new RuntimeInitializedClassBuildItem("io.grpc.netty.shaded.io.netty.handler.ssl.OpenSslContext"));
runtimeInitialized.produce(new RuntimeInitializedClassBuildItem(
"io.grpc.netty.shaded.io.netty.handler.ssl.ReferenceCountedOpenSslEngine"));
runtimeInitialized.produce(new RuntimeInitializedClassBuildItem(
"io.grpc.netty.shaded.io.netty.handler.ssl.JdkNpnApplicationProtocolNegotiator"));
runtimeInitialized
.produce(new RuntimeInitializedClassBuildItem("io.grpc.netty.shaded.io.netty.handler.ssl.JettyAlpnSslEngine"));
runtimeInitialized.produce(new RuntimeInitializedClassBuildItem(
"io.grpc.netty.shaded.io.netty.handler.ssl.JettyAlpnSslEngine$ClientEngine"));
runtimeInitialized.produce(new RuntimeInitializedClassBuildItem(
"io.grpc.netty.shaded.io.netty.handler.ssl.JettyAlpnSslEngine$ServerEngine"));
runtimeInitialized
.produce(new RuntimeInitializedClassBuildItem("io.grpc.netty.shaded.io.netty.handler.ssl.JettyNpnSslEngine"));
runtimeInitialized.produce(new RuntimeInitializedClassBuildItem("io.grpc.netty.shaded.io.netty.internal.tcnative.SSL"));
runtimeInitialized.produce(
new RuntimeInitializedClassBuildItem("io.grpc.netty.shaded.io.netty.internal.tcnative.CertificateVerifier"));
runtimeInitialized.produce(
new RuntimeInitializedClassBuildItem("io.grpc.netty.shaded.io.netty.internal.tcnative.SSLPrivateKeyMethod"));

runtimePackages.produce(new RuntimeInitializedPackageBuildItem("io.grpc.netty.shaded.io.grpc.netty"));
runtimePackages.produce(new RuntimeInitializedPackageBuildItem("io.grpc.netty.shaded.io.netty.channel.epoll"));
runtimePackages.produce(new RuntimeInitializedPackageBuildItem("io.grpc.netty.shaded.io.netty.channel.unix"));

runtimeInitialized.produce(new RuntimeInitializedClassBuildItem("io.grpc.internal.RetriableStream"));
runtimePackages.produce(new RuntimeInitializedPackageBuildItem("io.grpc.netty.shaded.io.netty.handler.ssl"));
runtimePackages.produce(new RuntimeInitializedPackageBuildItem("io.grpc.netty.shaded.io.netty.internal.tcnative"));
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
quarkus.native.additional-build-args=--initialize-at-run-time=io.quarkiverse.temporal.it.client.TransferApp

0 comments on commit 8112414

Please sign in to comment.