]> git.argeo.org Git - gpl/argeo-slc.git/blob - graalvm/org.argeo.slc.graalvm/src/org/argeo/slc/graalvm/feature/ArgeoToolFeature.java
fa6e5a96eaba4f820d455c6a74da615cdffe88fe
[gpl/argeo-slc.git] / graalvm / org.argeo.slc.graalvm / src / org / argeo / slc / graalvm / feature / ArgeoToolFeature.java
1 package org.argeo.slc.graalvm.feature;
2
3 import java.security.Security;
4
5 import org.bouncycastle.jce.provider.BouncyCastleProvider;
6 import org.graalvm.nativeimage.hosted.Feature;
7 import org.graalvm.nativeimage.hosted.RuntimeClassInitialization;
8
9 import net.i2p.crypto.eddsa.EdDSASecurityProvider;
10
11 /** Required native image customisations. */
12 public class ArgeoToolFeature implements Feature {
13
14 @Override
15 public void afterRegistration(AfterRegistrationAccess access) {
16 // JCE providers need to be registered at build time.
17 // https://github.com/oracle/graal/issues/2800#issuecomment-702480444
18 // https://github.com/micronaut-projects/micronaut-oracle-cloud/pull/17/files#r498585779
19 RuntimeClassInitialization.initializeAtBuildTime("org.bouncycastle");
20 Security.addProvider(new BouncyCastleProvider());
21
22 RuntimeClassInitialization.initializeAtBuildTime("net.i2p.crypto.eddsa");
23 Security.addProvider(new EdDSASecurityProvider());
24
25 // required for Tomcat JNI DLL to load properly
26 RuntimeClassInitialization.initializeAtBuildTime("org.apache.tomcat.jni");
27
28 // RuntimeClassInitializationSupport rci = ImageSingletonsSupport.lookup(RuntimeClassInitializationSupport.class);
29 // rci.rerunInitialization("org.bouncycastle.jcajce.provider.drbg.DRBG$Default", "dependency with native random");
30 // rci.rerunInitialization("org.bouncycastle.jcajce.provider.drbg.DRBG$NonceAndIV",
31 // "dependency with native random");
32 }
33
34 }