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 24, 2021
1 parent a4a10ae commit 263a592
Showing 1 changed file with 7 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
import javax.enterprise.inject.spi.DeploymentException;
import javax.inject.Singleton;

import io.quarkus.deployment.builditem.nativeimage.RuntimeInitializedClassBuildItem;
import org.eclipse.microprofile.config.Config;
import org.eclipse.microprofile.config.ConfigProvider;
import org.jboss.jandex.AnnotationInstance;
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 263a592

Please sign in to comment.