Java Code Examples for org.graalvm.nativeimage.hosted.RuntimeReflection

The following examples show how to use org.graalvm.nativeimage.hosted.RuntimeReflection. These examples are extracted from open source projects. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source Project: micronaut-sql   Source File: JdbcFeature.java    License: Apache License 2.0 6 votes vote down vote up
private void handlePostgres(BeforeAnalysisAccess access) {
    Class<?> postgresDriver = access.findClassByName(POSTGRESQL_DRIVER);
    if (postgresDriver != null) {
        RuntimeReflection.register(postgresDriver);
        RuntimeClassInitialization.initializeAtBuildTime(postgresDriver);

        initializeAtBuildTime(access,
                POSTGRESQL_DRIVER,
                "org.postgresql.util.SharedTimer"
        );

        registerAllFields(access, "org.postgresql.PGProperty");

        ResourcesRegistry resourcesRegistry = getResourceRegistry();
        if (resourcesRegistry != null) {
            resourcesRegistry.addResources("META-INF/services/java.sql.Driver");
        }
    }
}
 
Example 2
Source Project: micronaut-sql   Source File: JdbcFeature.java    License: Apache License 2.0 6 votes vote down vote up
private void handleMariadb(BeforeAnalysisAccess access) {
    Class<?> mariaDriver = access.findClassByName(MARIADB_DRIVER);
    if (mariaDriver != null) {
        RuntimeReflection.register(mariaDriver);
        registerAllAccess(mariaDriver);

        ResourcesRegistry resourcesRegistry = getResourceRegistry();
        if (resourcesRegistry != null) {
            resourcesRegistry.addResources("META-INF/services/java.sql.Driver");
        }

        registerAllIfPresent(access, "org.mariadb.jdbc.util.Options");

        RuntimeClassInitialization.initializeAtBuildTime("org.mariadb");
        RuntimeClassInitialization.initializeAtRunTime("org.mariadb.jdbc.credential.aws");

        initializeAtRuntime(access, "org.mariadb.jdbc.internal.failover.impl.MastersSlavesListener");
        initializeAtRuntime(access, "org.mariadb.jdbc.internal.com.send.authentication.SendPamAuthPacket");
    }
}
 
Example 3
Source Project: micronaut-sql   Source File: JdbcFeature.java    License: Apache License 2.0 6 votes vote down vote up
private void handleSqlServer(BeforeAnalysisAccess access) {
    Class<?> sqlServerDriver = access.findClassByName(SQL_SERVER_DRIVER);
    if (sqlServerDriver != null) {
        RuntimeReflection.register(sqlServerDriver);
        registerAllAccess(sqlServerDriver);

        RuntimeClassInitialization.initializeAtBuildTime(SQL_SERVER_DRIVER);

        initializeAtBuildTime(access, "com.microsoft.sqlserver.jdbc.Util");
        initializeAtBuildTime(access, "com.microsoft.sqlserver.jdbc.SQLServerException");
        registerAllIfPresent(access, "com.microsoft.sqlserver.jdbc.SQLServerDriver");

        ResourcesRegistry resourcesRegistry = getResourceRegistry();
        if (resourcesRegistry != null) {
            resourcesRegistry.addResources("META-INF/services/java.sql.Driver");
            resourcesRegistry.addResources("javax.crypto.Cipher.class");
            resourcesRegistry.addResourceBundles("com.microsoft.sqlserver.jdbc.SQLServerResource");
        }
    }
}
 
Example 4
Source Project: micronaut-sql   Source File: JdbcFeature.java    License: Apache License 2.0 5 votes vote down vote up
private void handleH2(BeforeAnalysisAccess access) {
    Class<?> h2Driver = access.findClassByName(H2_DRIVER);
    if (h2Driver != null) {
        registerAllIfPresent(access, "org.h2.mvstore.db.MVTableEngine");

        RuntimeReflection.register(h2Driver);
        RuntimeClassInitialization.initializeAtBuildTime(h2Driver);

        ResourcesRegistry resourcesRegistry = getResourceRegistry();
        if (resourcesRegistry != null) {
            resourcesRegistry.addResources("META-INF/services/java.sql.Driver");
            resourcesRegistry.addResources("org/h2/util/data.zip");
        }
    }
}
 
Example 5
Source Project: micronaut-sql   Source File: JdbcFeature.java    License: Apache License 2.0 5 votes vote down vote up
private void registerAllAccess(Class<?> t) {
    RuntimeReflection.register(t);
    RuntimeReflection.registerForReflectiveInstantiation(t);
    for (Method method : t.getMethods()) {
        RuntimeReflection.register(method);
    }
    Field[] fields = t.getFields();
    for (Field field : fields) {
        RuntimeReflection.register(field);
    }
}
 
Example 6
Source Project: micronaut-sql   Source File: JdbcFeature.java    License: Apache License 2.0 5 votes vote down vote up
private void registerAllForRuntimeReflection(BeforeAnalysisAccess access, String n) {
    Class<?> t = access.findClassByName(n);
    if (t != null) {
        RuntimeReflection.register(t);
        registerAllFields(access, n);
        registerAllMethods(access, n);
        registerAllConstructors(access, n);
    }
}
 
Example 7
Source Project: micronaut-sql   Source File: JdbcFeature.java    License: Apache License 2.0 5 votes vote down vote up
private void registerAllFields(BeforeAnalysisAccess access, String n) {
    Class<?> t = access.findClassByName(n);
    if (t != null) {
        Field[] fields = t.getFields();
        for (Field field : fields) {
            RuntimeReflection.register(field);
        }
    }
}
 
Example 8
Source Project: micronaut-sql   Source File: JdbcFeature.java    License: Apache License 2.0 5 votes vote down vote up
private void registerAllMethods(BeforeAnalysisAccess access, String n) {
    Class<?> t = access.findClassByName(n);
    if (t != null) {
        for (Method method : t.getMethods()) {
            RuntimeReflection.register(method);
        }
    }
}
 
Example 9
Source Project: micronaut-sql   Source File: JdbcFeature.java    License: Apache License 2.0 5 votes vote down vote up
private void registerAllConstructors(BeforeAnalysisAccess access, String n) {
    Class<?> t = access.findClassByName(n);
    if (t != null) {
        for (Constructor constructor : t.getConstructors()) {
            RuntimeReflection.register(constructor);
        }
    }
}
 
Example 10
Source Project: micronaut-sql   Source File: HibernateFeature.java    License: Apache License 2.0 5 votes vote down vote up
private void registerIfPresent(BeforeAnalysisAccess access, String name, Class<? extends Dialect>... dialects) {
    Class<?> driver = access.findClassByName(name);
    if (driver != null) {
        for (Class<? extends Dialect> dialect : dialects) {
            RuntimeReflection.register(dialect);
            RuntimeReflection.registerForReflectiveInstantiation(dialect);
        }
    }
}
 
Example 11
Source Project: micronaut-kafka   Source File: KafkaSubstitutions.java    License: Apache License 2.0 5 votes vote down vote up
@Override
public void beforeAnalysis(BeforeAnalysisAccess access) {
    Class<?> c = access.findClassByName("java.util.zip.CRC32C");
    if (c != null) {
        RuntimeReflection.registerForReflectiveInstantiation(c);
        RuntimeReflection.register(c);
    }
}
 
Example 12
public void beforeAnalysis(BeforeAnalysisAccess access) {
    try {
        // json types
        RuntimeReflection.register(java.util.ArrayList.class.getDeclaredConstructor());
        RuntimeReflection.register(java.util.LinkedHashMap.class.getDeclaredConstructor());

        // extras (grpc seems to need this)
        RuntimeReflection.register(io.netty.channel.socket.nio.NioServerSocketChannel.class.getDeclaredConstructor());

    } catch (NoSuchMethodException e) {
        throw new RuntimeException(e);
    }
}