Class OracleMetadataOverrides
For this reason, the META-INF/native-image/native-image.properties resource is excluded explicitly; then we re-implement the equivalent directives using Quarkus build items.
Other resources such as jni-config.json and resource-config.json are not excluded, so to ensure we match the recommendations from the Oracle JDBC engineering team and make it easier to pick up improvements in these when the driver gets updated.
Regarding reflect-config.json, we also prefer excluding it for the time being even though it's strictly not necessary: the reason is that the previous driver version had a build-breaking mistake; this was fixed in version 21.3 so should no longer be necessary, but the previous driver had been tested more widely and would require it, so this would facilitate the option to revert to the older version in case of problems.
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription(package private) io.quarkus.deployment.builditem.nativeimage.NativeImageResourceBundleBuildItem(package private) voidbuild(io.quarkus.deployment.annotations.BuildProducer<io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem> reflectiveClass) Should match the contents of reflect-config.json(package private) io.quarkus.deployment.builditem.RemovedResourceBuildItem(package private) voidexcludeOracleDirectives(io.quarkus.deployment.annotations.BuildProducer<io.quarkus.deployment.builditem.nativeimage.ExcludeConfigBuildItem> nativeImageExclusions) (package private) io.quarkus.deployment.builditem.nativeimage.NativeImageAllowIncompleteClasspathBuildItem(package private) voidruntimeInitializeDriver(io.quarkus.deployment.annotations.BuildProducer<io.quarkus.deployment.builditem.nativeimage.RuntimeInitializedClassBuildItem> runtimeInitialized, io.quarkus.deployment.annotations.BuildProducer<io.quarkus.deployment.builditem.nativeimage.RuntimeReinitializedClassBuildItem> runtimeReinitialized)
-
Field Details
-
DRIVER_JAR_MATCH_REGEX
- See Also:
-
NATIVE_IMAGE_RESOURCE_MATCH_REGEX
- See Also:
-
NATIVE_IMAGE_REFLECT_CONFIG_MATCH_REGEX
- See Also:
-
-
Constructor Details
-
OracleMetadataOverrides
public OracleMetadataOverrides()
-
-
Method Details
-
build
void build(io.quarkus.deployment.annotations.BuildProducer<io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem> reflectiveClass) Should match the contents of reflect-config.json- Parameters:
reflectiveClass- buildItem producer
-
runtimeInitializeDriver
void runtimeInitializeDriver(io.quarkus.deployment.annotations.BuildProducer<io.quarkus.deployment.builditem.nativeimage.RuntimeInitializedClassBuildItem> runtimeInitialized, io.quarkus.deployment.annotations.BuildProducer<io.quarkus.deployment.builditem.nativeimage.RuntimeReinitializedClassBuildItem> runtimeReinitialized) -
excludeOracleDirectives
void excludeOracleDirectives(io.quarkus.deployment.annotations.BuildProducer<io.quarkus.deployment.builditem.nativeimage.ExcludeConfigBuildItem> nativeImageExclusions) -
naughtyDriver
io.quarkus.deployment.builditem.nativeimage.NativeImageAllowIncompleteClasspathBuildItem naughtyDriver() -
enhancedCharsetSubstitutions
io.quarkus.deployment.builditem.RemovedResourceBuildItem enhancedCharsetSubstitutions() -
additionalResourceBundles
io.quarkus.deployment.builditem.nativeimage.NativeImageResourceBundleBuildItem additionalResourceBundles()
-