Skip to content

Commit

Permalink
Register reflectively accessed elements for jdbc DB2 driver
Browse files Browse the repository at this point in the history
  • Loading branch information
zakkak committed Jan 10, 2025
1 parent 6742705 commit 28fb8dc
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package io.quarkus.deployment;

import io.quarkus.deployment.annotations.BuildProducer;
import io.quarkus.deployment.annotations.BuildStep;
import io.quarkus.deployment.builditem.nativeimage.NativeImageResourceBuildItem;
import io.quarkus.deployment.builditem.nativeimage.ServiceProviderBuildItem;

public class MessageFormatProcessor {

/* Register service providers and resrouces accessed transitively through java.text.MessageFormat */
@BuildStep
void registerCommonResourceBundleProvider(BuildProducer<ServiceProviderBuildItem> services,
BuildProducer<NativeImageResourceBuildItem> resources) {
services.produce(new ServiceProviderBuildItem("sun.util.resources.LocaleData$CommonResourceBundleProvider"));
resources.produce(new NativeImageResourceBuildItem("sun.util.resources.provider.LocaleDataProvider"));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
import io.quarkus.deployment.builditem.nativeimage.JPMSExportBuildItem;
import io.quarkus.deployment.builditem.nativeimage.NativeImageAllowIncompleteClasspathBuildItem;
import io.quarkus.deployment.builditem.nativeimage.NativeImageConfigBuildItem;
import io.quarkus.deployment.builditem.nativeimage.NativeImageResourceBuildItem;
import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem;
import io.quarkus.deployment.builditem.nativeimage.ServiceProviderBuildItem;
import io.quarkus.jdbc.db2.runtime.DB2AgroalConnectionConfigurer;
Expand Down Expand Up @@ -88,6 +89,10 @@ void registerForReflection(BuildProducer<ReflectiveClassBuildItem> reflectiveCla
T4Resources.class)
.reason(getClass().getName() + " DB2 JDBC driver classes")
.build());

reflectiveClass.produce(ReflectiveClassBuildItem.builder("com.ibm.pdq.cmx.client.DataSourceFactory")
.reason(getClass().getName() + " accessed reflectively by DB2 JDBC driver")
.build());
}

@BuildStep
Expand Down Expand Up @@ -133,4 +138,9 @@ void addExportsToNativeImage(BuildProducer<JPMSExportBuildItem> jpmsExports) {
// --add-exports=java.base/sun.security.action=ALL-UNNAMED
jpmsExports.produce(new JPMSExportBuildItem("java.base", "sun.security.action"));
}

@BuildStep
NativeImageResourceBuildItem registerResources() {
return new NativeImageResourceBuildItem("pdq.properties");
}
}

0 comments on commit 28fb8dc

Please sign in to comment.