Skip to content

Commit

Permalink
Runtime initialize grpc class using j.u.Random
Browse files Browse the repository at this point in the history
  • Loading branch information
zakkak committed Mar 25, 2021
1 parent a4a10ae commit 2dd4726
Showing 1 changed file with 7 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
import io.quarkus.deployment.annotations.BuildStep;
import io.quarkus.deployment.builditem.FeatureBuildItem;
import io.quarkus.deployment.builditem.nativeimage.NativeImageResourceBuildItem;
import io.quarkus.deployment.builditem.nativeimage.RuntimeInitializedClassBuildItem;
import io.quarkus.gizmo.MethodCreator;
import io.quarkus.gizmo.MethodDescriptor;
import io.quarkus.gizmo.ResultHandle;
Expand Down Expand Up @@ -175,6 +176,12 @@ void registerSslResources(BuildProducer<NativeImageResourceBuildItem> resourceBu
registerResourcesForProperties(config, resourceBuildItem, TRUST_STORE_PATTERN, CERTIFICATE_PATTERN, KEY_PATTERN);
}

@BuildStep
void runtimeInitialize(BuildProducer<RuntimeInitializedClassBuildItem> producer) {
// io.grpc.internal.RetriableStream uses j.u.Ramdom, so needs to be runtime-initialized
producer.produce(new RuntimeInitializedClassBuildItem("io.grpc.internal.RetriableStream"));
}

private void generateChannelProducer(MethodCreator mc, GrpcServiceBuildItem svc) {
ResultHandle name = mc.load(svc.getServiceName());
ResultHandle result = mc.invokeStaticMethod(CREATE_CHANNEL_METHOD, name);
Expand Down

0 comments on commit 2dd4726

Please sign in to comment.