Skip to content

Migrate from legacy config classes #247

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged

Conversation

jamesnetherton
Copy link
Contributor

@jamesnetherton jamesnetherton commented Jul 22, 2025

  • Upgrade Quarkus to 3.25.0
  • Updates to make the project buildable with JDK 21
  • Migrate from legacy config classes to @ConfigMapping interfaces

Fixes #246

* Upgrade Quarkus to 3.25.0
* Updates to make the project buildable with JDK 21
* Migrate from legacy config classes to @ConfigMapping interfaces

Fixes datastax#246
@jamesnetherton jamesnetherton force-pushed the migrate-to-config-mapping branch from 5ebd8fd to c6eab1f Compare July 23, 2025 11:45
@gsmet
Copy link
Contributor

gsmet commented Jul 23, 2025

👋 for your information, this is going to be blocking for the upcoming Quarkus 3.26.0 coming in August.

I might also have some other things to fix in this component before the release so it would be nice if this could be merged once CI has run so that we can make progress on the other issues.

Thanks!

@absurdfarce
Copy link
Contributor

Thanks for the PR @jamesnetherton! This is something I've wanted to get to for some time but work on this extension has been de-prioritized on our end... so it's been difficult to find time for it.

I'm working on running this through some tests on our side. Assuming there aren't any problems (and I'm not expecting any) I'll try to get this merged shortly so as to unblock any future work (per the comments above from @gsmet).

@absurdfarce
Copy link
Contributor

absurdfarce commented Jul 31, 2025

I've confirmed that I can get the Java test target (as defined in the Jenkinsfile) to pass locally with some very minor tweaks. I haven't been able to get the native integration tests working yet, though. The relevant command there (also defined in the Jenkinsfile) seems to fail consistently in the MicroProfile tests:

$ mvn -B -V verify -Dnative -rf :cassandra-quarkus-integration-tests -Djacoco.skip=true                                                                 [675/675]
Apache Maven 3.9.1 (2e178502fcdbffc201671fb2537d0cb4b4cc58f8)                                                                                                                                                   
Maven home: /work/local/maven                                                                                                                                                                                   Java version: 17.0.14, vendor: Debian, runtime: /usr/lib/jvm/java-17-openjdk-arm64                                                                                                                              
Default locale: en_US, platform encoding: UTF-8                                                                                                                                                                 OS name: "linux", version: "6.1.0-18-arm64", arch: "aarch64", family: "unix"                                                                                                                                    
[INFO] Scanning for projects...                                                                                                                                                                                 
[INFO] ------------------------------------------------------------------------                                                                                                                                 
[INFO] Reactor Build Order:                                                                                                                                                                                     
[INFO]                                                                                                                                                                                                          
[INFO] Cassandra Quarkus :: IT                                            [pom]                                                                                                                                 
[INFO] Cassandra Quarkus :: IT :: Application                             [jar]                                                                                                                                 
[INFO] Cassandra Quarkus :: IT :: Main Tests                              [jar]                                                                                                                                 
[INFO] Cassandra Quarkus :: IT :: DSE Tests                               [jar]                                                                                                                                 
[INFO] Cassandra Quarkus :: IT :: MicroProfile Metrics Tests              [jar]                                                                                                                                 
[INFO] Cassandra Quarkus :: IT :: Metrics Disabled Tests                  [jar]                                                                                                                                 
[INFO] Cassandra Quarkus :: IT :: No Mapper                               [jar]                                                                                                                                 
[INFO] Cassandra Quarkus :: Quickstart                                    [jar]                                                                                                                                 
[INFO]                                                                                                       
...
[INFO] --- quarkus:3.25.0:build (default) @ cassandra-quarkus-integration-tests-metrics-microprofile --- 
[WARNING] [io.quarkus.resteasy.mutiny.deployment.ResteasyMutinyProcessor] The quarkus-resteasy-mutiny extension is deprecated. Switch to Quarkus REST instead.
This extension adds support for Uni and Multi to RESTEasy Classic, without using the reactive execution model, as RESTEasy Classic does not use it. To properly integrate Mutiny and RESTEasy, use Quarkus REST.
 See https://quarkus.io/guides/getting-started-reactive for detailed instructions
[WARNING] [io.quarkus.deployment.pkg.steps.NativeImageBuildStep] Cannot find the `native-image` in the GRAALVM_HOME, JAVA_HOME and System PATH. Attempting to fall back to container build.
[WARNING] [io.quarkus.deployment.index] Reindexing /work/git/cassandra-quarkus/integration-tests/application/target/cassandra-quarkus-integration-tests-application-1.2.1-SNAPSHOT.jar, at least Jandex 3.0 must
 be used to index an application dependency (index version is 9)
[INFO] [io.quarkus.deployment.pkg.steps.JarResultBuildStep] Building native image source jar: /work/git/cassandra-quarkus/integration-tests/metrics-microprofile/target/cassandra-quarkus-integration-tests-metr
ics-microprofile-1.2.1-SNAPSHOT-native-image-source-jar/cassandra-quarkus-integration-tests-metrics-microprofile-1.2.1-SNAPSHOT-runner.jar
[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildStep] Building native image from /work/git/cassandra-quarkus/integration-tests/metrics-microprofile/target/cassandra-quarkus-integration-tests-metrics-m
icroprofile-1.2.1-SNAPSHOT-native-image-source-jar/cassandra-quarkus-integration-tests-metrics-microprofile-1.2.1-SNAPSHOT-runner.jar
[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildContainerRunner] Using docker to run the native image builder
[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildContainerRunner] Pulling builder image 'quay.io/quarkus/ubi9-quarkus-mandrel-builder-image:jdk-21'
jdk-21: Pulling from quarkus/ubi9-quarkus-mandrel-builder-image
Digest: sha256:85f3199f35854dc79362a4152a90c2d45a724d6315e8f8ab1ea952d878ff3653
Status: Image is up to date for quay.io/quarkus/ubi9-quarkus-mandrel-builder-image:jdk-21
quay.io/quarkus/ubi9-quarkus-mandrel-builder-image:jdk-21
[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildStep] Running Quarkus native-image plugin on MANDREL 23.1.8.0 JDK 21.0.8+9-LTS                                                                 [125/675]
[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildRunner] docker run --env LANG=C --rm -v /work/git/cassandra-quarkus/integration-tests/metrics-microprofile/target/cassandra-quarkus-integration-tests-me
trics-microprofile-1.2.1-SNAPSHOT-native-image-source-jar:/project:z --name build-native-XScnu quay.io/quarkus/ubi9-quarkus-mandrel-builder-image:jdk-21 -J-Djava.util.logging.manager=org.jboss.logmanager.LogM
anager -J-Dsun.nio.ch.maxUpdateArraySize=100 -J-Duser.language=en -J-Duser.country=US -J-Dlogging.initial-configurator.min-level=500 -J-Dvertx.logger-delegate-factory-class-name=io.quarkus.vertx.core.runtime.
VertxLogDelegateFactory -J-Dvertx.disableDnsResolver=true -J-Dio.netty.leakDetection.level=DISABLED -J-Dio.netty.allocator.maxOrder=3 -H:+UnlockExperimentalVMOptions -H:IncludeLocales=en-US -H:-UnlockExperime
ntalVMOptions -J-Dfile.encoding=UTF-8 -J--add-exports=org.graalvm.nativeimage.builder/com.oracle.svm.core.jdk=ALL-UNNAMED --features=io.quarkus.runner.Feature,io.quarkus.runtime.graal.DisableLoggingFeature,io
.quarkus.runtime.graal.SkipConsoleServiceProvidersFeature -J--add-exports=java.security.jgss/sun.security.krb5=ALL-UNNAMED -J--add-exports=java.security.jgss/sun.security.jgss=ALL-UNNAMED -J--add-opens=java.b
ase/java.text=ALL-UNNAMED -J--add-opens=java.base/java.io=ALL-UNNAMED -J--add-opens=java.base/java.lang.invoke=ALL-UNNAMED -J--add-opens=java.base/java.util=ALL-UNNAMED -H:+UnlockExperimentalVMOptions -H:Buil
dOutputJSONFile=cassandra-quarkus-integration-tests-metrics-microprofile-1.2.1-SNAPSHOT-runner-build-output-stats.json -H:-UnlockExperimentalVMOptions -H:+UnlockExperimentalVMOptions -H:+GenerateBuildArtifact
sFile -H:-UnlockExperimentalVMOptions --strict-image-heap --install-exit-handlers -H:+UnlockExperimentalVMOptions -H:+AllowFoldMethods -H:-UnlockExperimentalVMOptions -J-Djava.awt.headless=true --no-fallback 
--link-at-build-time -H:+UnlockExperimentalVMOptions -H:+ReportExceptionStackTraces -H:-UnlockExperimentalVMOptions -H:-AddAllCharsets --enable-url-protocols=http,https --enable-monitoring=heapdump -H:+Unlock
ExperimentalVMOptions -H:-UseServiceLoaderFeature -H:-UnlockExperimentalVMOptions -J--add-exports=org.graalvm.nativeimage/org.graalvm.nativeimage.impl=ALL-UNNAMED --exclude-config io\.netty\.netty-codec /META
-INF/native-image/io\.netty/netty-codec/generated/handlers/reflect-config\.json --exclude-config io\.netty\.netty-handler /META-INF/native-image/io\.netty/netty-handler/generated/handlers/reflect-config\.json
 cassandra-quarkus-integration-tests-metrics-microprofile-1.2.1-SNAPSHOT-runner -jar cassandra-quarkus-integration-tests-metrics-microprofile-1.2.1-SNAPSHOT-runner.jar
[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildRunner] Warning: The option '-H:IncludeResources=application\.properties' is experimental and must be enabled via '-H:+UnlockExperimentalVMOptions' in t
he future.
[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildRunner] Warning: The option '-H:IncludeResources=application\.conf' is experimental and must be enabled via '-H:+UnlockExperimentalVMOptions' in the fut
ure.
[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildRunner] Warning: The option '-H:IncludeResources=application\.json' is experimental and must be enabled via '-H:+UnlockExperimentalVMOptions' in the fut
ure.
[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildRunner] Warning: The option '-H:IncludeResources=.*Driver\.properties' is experimental and must be enabled via '-H:+UnlockExperimentalVMOptions' in the 
future.
[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildRunner] Warning: The option '-H:DynamicProxyConfigurationResources=META-INF/native-image/com.datastax.oss/java-driver-core/proxy.json' is experimental a
nd must be enabled via '-H:+UnlockExperimentalVMOptions' in the future.
[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildRunner] Warning: The option '-H:IncludeResourceBundles=yasson-messages' is experimental and must be enabled via '-H:+UnlockExperimentalVMOptions' in the
 future.
[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildRunner] Warning: The option '-H:ReflectionConfigurationResources=META-INF/native-image/com.datastax.oss/java-driver-core/reflection.json' is experimenta
l and must be enabled via '-H:+UnlockExperimentalVMOptions' in the future.
[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildRunner] Warning: The option '-H:ReflectionConfigurationResources=META-INF/native-image/com.datastax.oss/java-driver-metrics-microprofile/reflection.json
' is experimental and must be enabled via '-H:+UnlockExperimentalVMOptions' in the future.
[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildRunner] Warning: The option '-H:IncludeResources=reference\.conf' is experimental and must be enabled via '-H:+UnlockExperimentalVMOptions' in the futur
e.
[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildRunner] Warning: Please re-evaluate whether any experimental option is required, and either remove or unlock it. The build output lists all active exper
imental options, including where they come from and possible alternatives. If you think an experimental option should be considered as stable, please file an issue.
[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildRunner] ========================================================================================================================                [91/675]
[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildRunner] GraalVM Native Image: Generating 'cassandra-quarkus-integration-tests-metrics-microprofile-1.2.1-SNAPSHOT-runner' (executable)...               
[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildRunner] ========================================================================================================================                        
[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildRunner] For detailed information and explanations on the build output, visit:
[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildRunner] https://github.com/oracle/graal/blob/master/docs/reference-manual/native-image/BuildOutput.md
[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildRunner] ------------------------------------------------------------------------------------------------------------------------
[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildRunner] [1/8] Initializing...                                                                                    (4.8s @ 0.14GB)
[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildRunner]  Java version: 21.0.8+9-LTS, vendor version: Mandrel-23.1.8.0-Final
[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildRunner]  Graal compiler: optimization level: 2, target machine: armv8-a
[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildRunner]  C compiler: gcc (redhat, aarch64, 11.5.0)
[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildRunner]  Garbage collector: Serial GC (max heap size: 80% of RAM)
[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildRunner]  5 user-specific feature(s):
[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildRunner]  - com.oracle.svm.thirdparty.gson.GsonFeature
[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildRunner]  - io.quarkus.runner.Feature: Auto-generated class by Quarkus from the existing extensions
[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildRunner]  - io.quarkus.runtime.graal.DisableLoggingFeature: Adapts logging during the analysis phase
[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildRunner]  - io.quarkus.runtime.graal.SkipConsoleServiceProvidersFeature: Skip unsupported console service providers when quarkus.native.auto-service-load
er-registration is false
[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildRunner]  - org.eclipse.angus.activation.nativeimage.AngusActivationFeature
[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildRunner] ------------------------------------------------------------------------------------------------------------------------
[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildRunner]  9 experimental option(s) unlocked:
[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildRunner]  - '-H:+AllowFoldMethods' (origin(s): command line)
[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildRunner]  - '-H:DynamicProxyConfigurationResources' (origin(s): 'META-INF/native-image/com.datastax.oss/java-driver-core/native-image.properties' in 'fil
e:///project/lib/com.datastax.oss.java-driver-core-4.15.0.jar')
[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildRunner]  - '-H:BuildOutputJSONFile' (origin(s): command line)
[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildRunner]  - '-H:-UseServiceLoaderFeature' (origin(s): command line)
[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildRunner]  - '-H:IncludeResourceBundles' (origin(s): 'META-INF/native-image/org.eclipse/yasson/native-image.properties' in 'file:///project/lib/org.eclips
e.yasson-3.0.4.jar')
[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildRunner]  - '-H:+GenerateBuildArtifactsFile' (origin(s): command line)
[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildRunner]  - '-H:AddOpens' (alternative API option(s): --add-opens java.base/java.lang=ALL-UNNAMED; origin(s): command line)
[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildRunner]  - '-H:IncludeResources' (origin(s): 'META-INF/native-image/com.datastax.oss/java-driver-core/native-image.properties' in 'file:///project/lib/c
om.datastax.oss.java-driver-core-4.15.0.jar', 'META-INF/native-image/com.datastax.oss/java-driver-core/native-image.properties' in 'file:///project/lib/com.datastax.oss.java-driver-core-4.15.0.jar', 'META-INF
/native-image/com.datastax.oss/java-driver-core/native-image.properties' in 'file:///project/lib/com.datastax.oss.java-driver-core-4.15.0.jar', 'META-INF/native-image/com.datastax.oss/java-driver-core/native-
image.properties' in 'file:///project/lib/com.datastax.oss.java-driver-core-4.15.0.jar', 'META-INF/native-image/com.datastax.oss/java-driver-core/native-image.properties' in 'file:///project/lib/com.datastax.
oss.java-driver-core-4.15.0.jar')
[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildRunner]  - '-H:ReflectionConfigurationResources' (origin(s): 'META-INF/native-image/com.datastax.oss/java-driver-core/native-image.properties' in 'file:
///project/lib/com.datastax.oss.java-driver-core-4.15.0.jar', 'META-INF/native-image/com.datastax.oss/java-driver-metrics-microprofile/native-image.properties' in 'file:///project/lib/com.datastax.oss.java-dr
iver-metrics-microprofile-4.15.0.jar')
[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildRunner] ------------------------------------------------------------------------------------------------------------------------
[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildRunner] Build resources:
[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildRunner]  - 8.82GB of memory (75.6% of 11.67GB system memory, determined at start)
[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildRunner]  - 4 thread(s) (100.0% of 4 available processor(s), determined at start)
[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildRunner] 17:11:46,605 INFO  [com.dat.oss.qua.run.int.qua.CassandraClientRecorder] Enabling Cassandra metrics using MicroProfile.
[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildRunner] 17:11:53,604 INFO  [com.dat.oss.dri.int.cor.DefaultMavenCoordinates] DataStax Java driver for Apache Cassandra(R) (com.datastax.oss:java-driver-
core) version 4.15.0
[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildRunner] [2/8] Performing analysis...  [*****]                                                                   (28.9s @ 1.40GB)
[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildRunner]    17,183 reachable types   (89.2% of   19,274 total)
[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildRunner]    23,630 reachable fields  (60.9% of   38,809 total)
[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildRunner]    83,114 reachable methods (58.6% of  141,882 total)
[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildRunner]     5,201 types,   268 fields, and 4,203 methods registered for reflection
[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildRunner]        62 types,    67 fields, and    55 methods registered for JNI access
[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildRunner]         4 native libraries: dl, pthread, rt, z
[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildRunner] [3/8] Building universe...                                                                               (4.5s @ 1.51GB)
[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildRunner] [4/8] Parsing methods...      [**]                                                                       (2.5s @ 1.66GB)
[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildRunner] [5/8] Inlining methods...     [***]                                                                      (1.7s @ 1.84GB)
[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildRunner] [6/8] Compiling methods...    [*****]                                                                   (28.7s @ 1.24GB)
[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildRunner] [7/8] Laying out methods...   [**]                                                                       (3.9s @ 1.65GB)
[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildRunner] 
[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildRunner] [8/8] Creating image...       [**]                                                                       (0.0s @ 1.94GB)
Fatal error: jdk.vm.ci.common.JVMCIError: java.nio.file.AccessDeniedException: /project/svm_err_b_20250731T171301.084_pid52.md
        at jdk.internal.vm.ci/jdk.vm.ci.common.JVMCIError.shouldNotReachHere(JVMCIError.java:52)
        at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.reports.ReportUtils.reportImpl(ReportUtils.java:174)
        at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.reports.ReportUtils.report(ReportUtils.java:155)
        at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.ProgressReporter.printEpilog(ProgressReporter.java:652)
        at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.reportEpilog(NativeImageGeneratorRunner.java:605)
        at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.buildImage(NativeImageGeneratorRunner.java:597)
        at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.build(NativeImageGeneratorRunner.java:721)
        at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.start(NativeImageGeneratorRunner.java:143)
        at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.main(NativeImageGeneratorRunner.java:98)
Caused by: java.nio.file.AccessDeniedException: /project/svm_err_b_20250731T171301.084_pid52.md
        at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:90)
        at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:106)
        at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111)
        at java.base/sun.nio.fs.UnixFileSystemProvider.newByteChannel(UnixFileSystemProvider.java:261)
        at java.base/java.nio.file.Files.newByteChannel(Files.java:380)
        at java.base/java.nio.file.Files.createFile(Files.java:658)
        at org.graalvm.nativeimage.pointsto/com.oracle.graal.pointsto.reports.ReportUtils.reportImpl(ReportUtils.java:164)
        ... 7 more

As I understand this new build process everything here is happening in the builder Docker image so my working assumption is that anything setup on my local environment won't figure into this.

I'll continue digging into this on my end but wanted to get results out here as quickly as possible.

@jamesnetherton
Copy link
Contributor Author

jamesnetherton commented Jul 31, 2025

I originally tested on MacOS with a local GraalVM install and all tests passed there.

I just tested on Linux, building the native image in a container and it failed initially at integration-tests/no-mapper with AccessDeniedException.

But, I ran the build a second time and it passed without issues 🙃.

I'm not sure what's going on TBH.

@absurdfarce
Copy link
Contributor

So I'm running my tests on Debian 12.5 using the native image builder Docker image. I do see several tests succeed before this one fails; "IT::Main Tests" appears to successfully build a native binary using the image and all the tests therein pass. The next subproject after that is the Microprofile tests and that's when things seem to go off the rails.

Is there a flag I can pass to Maven to make it use a local GraalVM instance? I'd kinda like to try this with a local build, see if I get different results.

That stack trace is... weird. :(

@jamesnetherton
Copy link
Contributor Author

try this with a local build

See the docs here: https://quarkus.io/guides/building-native-image#configuring-graalvm

@absurdfarce
Copy link
Contributor

A local test build with graalvm-jdk-21.0.8+12.1 worked fine out of the box. I'll update the Jenkins runner and re-test, but based on these results I think we'll be good to go.

@absurdfarce
Copy link
Contributor

Jenkins build with local GraalVM install + minor build fixes was green. I'm going to merge this and create a PR for the build fixes and then merge that immediately after.

@absurdfarce absurdfarce self-requested a review August 1, 2025 23:04
@absurdfarce absurdfarce merged commit 69339e6 into datastax:main Aug 1, 2025
2 of 3 checks passed
@jamesnetherton jamesnetherton deleted the migrate-to-config-mapping branch August 2, 2025 07:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Migrate from legacy Quarkus config classes to @ConfigMapping annotated interfaces
3 participants