quarkusio / quarkus

Quarkus: Supersonic Subatomic Java.
https://quarkus.io
Apache License 2.0
13.88k stars 2.71k forks source link

@RegisterForReflection(ignoreNested = false) does not compile with GraalVM 21.0.1+12 with flag --enable-preview and Gradle v8.5 #38297

Closed ThoSap closed 3 months ago

ThoSap commented 10 months ago

Describe the bug

When I compile my Quarkus 3.6.6 based project with compile flag --enable-preview I get the following error, as I'm using JEP 430: String Templates in a class which is annotated with @RegisterForReflection(ignoreNested = false) (I use inner classes here).

[error]: Build step io.quarkus.deployment.steps.RegisterForReflectionBuildStep#build threw an exception: java.lang.UnsupportedClassVersionError: Preview features are not enabled for com/example/myproject/domain/cube/CubeManifest (class file version 65.65535). Try running with '--enable-preview'
at java.base/java.lang.ClassLoader.defineClass1(Native Method)
at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1027)
at io.quarkus.bootstrap.classloading.QuarkusClassLoader.loadClass(QuarkusClassLoader.java:508)
at io.quarkus.bootstrap.classloading.QuarkusClassLoader.loadClass(QuarkusClassLoader.java:468)
at io.quarkus.deployment.steps.RegisterForReflectionBuildStep.registerClass(RegisterForReflectionBuildStep.java:134)
at io.quarkus.deployment.steps.RegisterForReflectionBuildStep.build(RegisterForReflectionBuildStep.java:77)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at io.quarkus.deployment.ExtensionLoader$3.execute(ExtensionLoader.java:849)
at io.quarkus.builder.BuildContext.run(BuildContext.java:256)
at org.jboss.threads.ContextHandler$1.runWith(ContextHandler.java:18)
at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2513)
at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1538)
at java.base/java.lang.Thread.run(Thread.java:1583)
at org.jboss.threads.JBossThread.run(JBossThread.java:501)

The public methods that cause this error as they use STR."...\{myVariable}..." are in the top-level class and not in the nested public class. When I replace STR."...\{myVariable}..." with normal string concatenation "..." + myVariable + "..." the project compiles fine.

I also use the JEP 430: String Templates preview feature in other classes which are not annotated with @RegisterForReflection and there is no issue.

The build only fails if JEP 430: String Templates and @RegisterForReflection are combined in at least one class, does not matter which one.

Gradle is configured to use Java 21 and --enable-preview:

java {
    sourceCompatibility = JavaVersion.VERSION_21
    targetCompatibility = JavaVersion.VERSION_21
}
// Enable JEP 430: String Templates (Preview in Java 21)
tasks.withType(JavaCompile).configureEach {
    options.compilerArgs << '--enable-preview'
}
tasks.withType(Test).configureEach {
    jvmArgs += '--enable-preview'
}
tasks.withType(JavaExec).configureEach {
    jvmArgs += '--enable-preview'
}

Expected behavior

A class that uses the JEP 430: String Templates preview feature and is annotated with @RegisterForReflection should compile.

Actual behavior

The project does NOT compile if a class uses the JEP 430: String Templates preview feature and is annotated with @RegisterForReflection.

How to Reproduce?

No response

Output of uname -a or ver

Microsoft Windows [Version 10.0.22631.3007]

Output of java -version

OpenJDK 64-Bit Server VM GraalVM CE 21.0.2+13.1 (build 21.0.2+13-jvmci-23.1-b30, mixed mode, sharing)

Mandrel or GraalVM version (if different from Java)

No response

Quarkus version or git rev

3.6.6

Build tool (ie. output of mvnw --version or gradlew --version)

Gradle 8.5

Additional information

The build.gradle file:

buildscript {
    ext {
        /**
         * https://projectlombok.org/
         * https://github.com/rzwitserloot/lombok
         * https://mvnrepository.com/artifact/org.projectlombok/lombok
         */
        lombokVersion = '1.18.30'

        /**
         * https://www.jooq.org/
         * https://www.jooq.org/download/versions
         * https://repo.jooq.org/
         * https://github.com/jOOQ/jOOQ
         * https://mvnrepository.com/artifact/org.jooq/jooq
         */
        jooqVersion = '3.19.2'

        /**
         * https://www.oracle.com/database/technologies/appdev/jdbc-downloads.html
         * https://mvnrepository.com/artifact/com.oracle.database.jdbc/ojdbc11
         */
        oracleJDBCVersion = '23.3.0.23.09'

        /**
         * https://www.enterprisedb.com/software-downloads-postgres#edb-connectors
         */
        edbJDBCVersion = '42.5.4.1'

        /**
         * https://jdbc.postgresql.org/
         * https://github.com/pgjdbc/pgjdbc
         * https://mvnrepository.com/artifact/org.postgresql/postgresql
         */
        postgresJDBCVersion = '42.7.1'

        /**
         * https://github.com/trinodb/trino/tree/master/client/trino-jdbc
         * https://mvnrepository.com/artifact/io.trino/trino-jdbc
         */
        trinoJDBCVersion = '436'

        /**
         * https://quarkiverse.github.io/quarkiverse-docs/quarkus-quinoa/dev/
         * https://github.com/quarkiverse/quarkus-quinoa
         * https://mvnrepository.com/artifact/io.quarkiverse.quinoa/quarkus-quinoa
         */
        quinoaVersion = '2.3.2'

        /**
         * https://docs.sonarqube.org/latest/analysis/scan/sonarscanner-for-gradle/
         * https://plugins.gradle.org/plugin/org.sonarqube
         */
        sonarQubePluginVersion = '4.4.1.3373'
    }
}

plugins {
    id 'idea'
    id 'java'
    id 'io.quarkus'
    id 'org.sonarqube' version "$sonarQubePluginVersion"
}

repositories {
    mavenCentral()
    mavenLocal()
}

description 'My Project'
group 'com.example'
version '0.0.0-SNAPSHOT'

dependencies {
    /**
     * Quarkus
     */
    implementation enforcedPlatform("${quarkusPlatformGroupId}:${quarkusPlatformArtifactId}:${quarkusPlatformVersion}")
    implementation 'io.quarkus:quarkus-agroal'
    implementation 'io.quarkus:quarkus-arc'
    implementation 'io.quarkus:quarkus-cache'
    implementation 'io.quarkus:quarkus-config-yaml'
    implementation 'io.quarkus:quarkus-core-deployment' // Needed for the WatchServiceFileSystemWatcher
    implementation 'io.quarkus:quarkus-jdbc-oracle'
    implementation 'io.quarkus:quarkus-jdbc-postgresql'
    implementation 'io.quarkus:quarkus-kubernetes'
    implementation 'io.quarkus:quarkus-micrometer'
    implementation 'io.quarkus:quarkus-micrometer-registry-prometheus'
    implementation 'io.quarkus:quarkus-oidc'
    implementation 'io.quarkus:quarkus-resteasy-reactive'
    implementation 'io.quarkus:quarkus-resteasy-reactive-jackson'
    implementation 'io.quarkus:quarkus-smallrye-health'
    implementation 'io.quarkus:quarkus-smallrye-openapi'

    testImplementation 'io.quarkus:quarkus-junit5'
    testImplementation 'io.rest-assured:rest-assured'

    /**
     * Lombok
     */
    compileOnly "org.projectlombok:lombok:$lombokVersion"
    annotationProcessor "org.projectlombok:lombok:$lombokVersion"

    /**
     * jOOQ
     */
    implementation "org.jooq.pro:jooq:$jooqVersion"
    compileOnly "org.jooq.pro:jooq-meta:$jooqVersion"
    // Oracle JDBC SQL XML interface (needed when Oracle SQL version < 18c)
    implementation "com.oracle.database.xml:xdb:$oracleJDBCVersion"
    implementation "com.oracle.database.xml:xmlparserv2:$oracleJDBCVersion"
    // Oracle JDBC Driver for jOOQ generation
    jooqCodegen "com.oracle.database.jdbc:ojdbc11:$oracleJDBCVersion"
    // Runtime JDBC drivers required by My Project for making queries with jOOQ
    implementation "com.oracle.database.jdbc:ojdbc11:$oracleJDBCVersion"
    //implementation "com.edb:postgres-edb-jdbc:$edbJDBCVersion"
    implementation "org.postgresql:postgresql:$postgresJDBCVersion"
    implementation "io.trino:trino-jdbc:$trinoJDBCVersion"

    /**
     * Quinoa - Quarkus UI with NO hAssle
     */
    implementation "io.quarkiverse.quinoa:quarkus-quinoa:$quinoaVersion"

    /**
     * Jackson dataformat library for YAML (uses SnakeYAML behind the scenes)
     */
    implementation 'com.fasterxml.jackson.dataformat:jackson-dataformat-yaml'

    /**
     * GraalVM SubstrateVM image builder components
     */
    compileOnly 'org.graalvm.sdk:graal-sdk'
}

wrapper {
    distributionType = Wrapper.DistributionType.ALL
    gradleVersion = '8.5'
}

java {
    sourceCompatibility = JavaVersion.VERSION_21
    targetCompatibility = JavaVersion.VERSION_21
}
// Enable JEP 430: String Templates (Preview in Java 21)
tasks.withType(JavaCompile).configureEach {
    options.compilerArgs << '--enable-preview'
}
tasks.withType(Test).configureEach {
    jvmArgs += '--enable-preview'
}
tasks.withType(JavaExec).configureEach {
    jvmArgs += '--enable-preview'
}

compileJava {
    options.encoding = 'UTF-8'
    options.compilerArgs << '-parameters'
}

compileTestJava {
    options.encoding = 'UTF-8'
}

test {
    systemProperty 'java.util.logging.manager', 'org.jboss.logmanager.LogManager'
}

quarkusAppPartsBuild {
    doNotTrackState('''
    Always execute Gradle task quarkusAppPartsBuild to run the Quinoa build, should only the frontend code change,
    and to always generate the K8s deploy manifest kubernetes.yml
    ''')
}

tasks.register('printProjectName') {
    doLast {
        println project.name
    }
}

tasks.register('printProjectDescription') {
    doLast {
        println project.description
    }
}

tasks.register('printProjectVersion') {
    doLast {
        println project.version
    }
}

sonar {
    properties {
        property 'sonar.projectKey', 'example_company_myproject_AdsfsASAS12ed1e'
        property 'sonar.projectName', 'Example Company'
    }
}
quarkus-bot[bot] commented 10 months ago

/cc @Karm (mandrel), @galderz (mandrel), @geoand (kubernetes), @glefloch, @iocanel (kubernetes), @quarkusio/devtools, @zakkak (mandrel)

ThoSap commented 10 months ago

The full build log when I start .\gradlew build -x test -Dquarkus.quinoa.force-install=true -Dquarkus.package.type=native:

Initialized native services in: C:\Users\thosap\.gradle\native
Initialized jansi services in: C:\Users\thosap\.gradle\native
Received JVM installation metadata from 'C:\GraalVM\graalvm-community-openjdk-21.0.2+13.1': {JAVA_HOME=C:\GraalVM\graalvm-community-openjdk-21.0.2+13.1, JAVA_VERSION=21.0.2, JAVA_VENDOR=GraalVM Community, RUNTIME_NAME=OpenJDK Runtime Environment, RUNTIME_VERSION=21.0.2+13-jvmci-23.1-b30, VM_NAME=OpenJDK 64-Bit Server VM, VM_VERSION=21.0.2+13-jvmci-23.1-b30, VM_VENDOR=GraalVM Community, OS_ARCH=amd64}
Found daemon DaemonInfo{pid=30524, address=[448a95a8-92ba-4054-8f0a-8b810dcbd561 port:62006, addresses:[/127.0.0.1]], state=Idle, lastBusy=1705651733964, context=DefaultDaemonContext[uid=678a38f4-a212-41b4-a05a-0898d390c278,javaHome=C:\GraalVM\graalvm-community-openjdk-21.0.1+12.1,daemonRegistryDir=C:\Users\thosap\.gradle\daemon,pid=30524,idleTimeout=10800000,priority=NORMAL,applyInstrumentationAgent=true,daemonOpts=-XX:MaxMetaspaceSize=512m,--add-opens=java.base/java.util=ALL-UNNAMED,--add-opens=java.base/java.lang=ALL-UNNAMED,--add-opens=java.base/java.lang.invoke=ALL-UNNAMED,--add-opens=java.prefs/java.util.prefs=ALL-UNNAMED,--add-opens=java.base/java.nio.charset=ALL-UNNAMED,--add-opens=java.base/java.net=ALL-UNNAMED,--add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED,-Xmx1536m,-Dfile.encoding=utf-8,-Duser.country=DE,-Duser.language=de,-Duser.variant]} however its context does not match the desired criteria.
Java home is different.
Wanted: DefaultDaemonContext[uid=null,javaHome=C:\GraalVM\graalvm-community-openjdk-21.0.2+13.1,daemonRegistryDir=C:\Users\thosap\.gradle\daemon,pid=11856,idleTimeout=null,priority=NORMAL,applyInstrumentationAgent=true,daemonOpts=-XX:MaxMetaspaceSize=512m,--add-opens=java.base/java.util=ALL-UNNAMED,--add-opens=java.base/java.lang=ALL-UNNAMED,--add-opens=java.base/java.lang.invoke=ALL-UNNAMED,--add-opens=java.prefs/java.util.prefs=ALL-UNNAMED,--add-opens=java.base/java.nio.charset=ALL-UNNAMED,--add-opens=java.base/java.net=ALL-UNNAMED,--add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED,-Xmx1536m,-Dfile.encoding=utf-8,-Duser.country=DE,-Duser.language=de,-Duser.variant]
Actual: DefaultDaemonContext[uid=678a38f4-a212-41b4-a05a-0898d390c278,javaHome=C:\GraalVM\graalvm-community-openjdk-21.0.1+12.1,daemonRegistryDir=C:\Users\thosap\.gradle\daemon,pid=30524,idleTimeout=10800000,priority=NORMAL,applyInstrumentationAgent=true,daemonOpts=-XX:MaxMetaspaceSize=512m,--add-opens=java.base/java.util=ALL-UNNAMED,--add-opens=java.base/java.lang=ALL-UNNAMED,--add-opens=java.base/java.lang.invoke=ALL-UNNAMED,--add-opens=java.prefs/java.util.prefs=ALL-UNNAMED,--add-opens=java.base/java.nio.charset=ALL-UNNAMED,--add-opens=java.base/java.net=ALL-UNNAMED,--add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED,-Xmx1536m,-Dfile.encoding=utf-8,-Duser.country=DE,-Duser.language=de,-Duser.variant]

  Looking for a different daemon...
The client will now receive all logging from the daemon (pid: 2168). The daemon log file: C:\Users\thosap\.gradle\daemon\8.5\daemon-2168.out.log
Starting 2nd build in daemon [uptime: 3 mins 37.649 secs, performance: 100%, GC rate: 0.00/s, heap usage: 0% of 1.5 GiB, non-heap usage: 15% of 512 MiB]
Using 12 worker leases.
Now considering [C:\Users\thosap\Git\myproject\workspace\backend] as hierarchies to watch
Watching the file system is configured to be enabled if available
File system watching is active
Starting Build
Settings evaluated using settings file 'C:\Users\thosap\Git\myproject\workspace\backend\settings.gradle'.
Using local directory build cache for the root build (location = C:\Users\thosap\.gradle\caches\build-cache-1, removeUnusedEntriesAfter = 7 days).
Projects loaded. Root project using build file 'C:\Users\thosap\Git\myproject\workspace\backend\build.gradle'.
Included projects: [root project 'myproject']

> Configure project :
Evaluating root project 'myproject' using build file 'C:\Users\thosap\Git\myproject\workspace\backend\build.gradle'.
The 'sonarqube' task depends on compile tasks. This behavior is now deprecated and will be removed in version 5.x. To avoid implicit compilation, set property 'sonar.gradle.skipCompile' to 'true' and make sure your project is compiled, before analysis has started.
The 'sonar' task depends on compile tasks. This behavior is now deprecated and will be removed in version 5.x. To avoid implicit compilation, set property 'sonar.gradle.skipCompile' to 'true' and make sure your project is compiled, before analysis has started.
file or directory 'C:\Users\thosap\Git\myproject\workspace\backend\build\classes\java\quarkus-generated-sources\grpc', not found
file or directory 'C:\Users\thosap\Git\myproject\workspace\backend\build\classes\java\quarkus-generated-sources\avdl', not found
file or directory 'C:\Users\thosap\Git\myproject\workspace\backend\build\classes\java\quarkus-generated-sources\avpr', not found
file or directory 'C:\Users\thosap\Git\myproject\workspace\backend\build\classes\java\quarkus-generated-sources\avsc', not found
All projects evaluated.
Task name matched 'build'
Selected primary task 'build' from project :
Tasks to be executed: [task ':processResources', task ':quarkusGenerateCode', task ':writeJooqReflectionClass', task ':compileJava', task ':classes', task ':jar', task ':quarkusAppPartsBuild', task ':quarkusDependenciesBuild', task ':quarkusBuild', task ':assemble', task ':check', task ':build']
Tasks that were excluded: [task ':test']
Resolve mutations for :processResources (Thread[#158,Execution worker,5,main]) started.
:processResources (Thread[#158,Execution worker,5,main]) started.

> Task :processResources UP-TO-DATE
Caching disabled for task ':processResources' because:
  Not worth caching
Skipping task ':processResources' as it is up-to-date.
Resolve mutations for :quarkusGenerateCode (Thread[#158,Execution worker,5,main]) started.
:quarkusGenerateCode (Thread[#158,Execution worker,5,main]) started.

> Task :quarkusGenerateCode UP-TO-DATE
Build cache key for task ':quarkusGenerateCode' is f3a76cd50d09aee82b847909d189f7ff
Skipping task ':quarkusGenerateCode' as it is up-to-date.
Resolve mutations for :writeJooqReflectionClass (Thread[#158,Execution worker,5,main]) started.
:writeJooqReflectionClass (Thread[#158,Execution worker,5,main]) started.

> Task :writeJooqReflectionClass UP-TO-DATE
Skipping task ':writeJooqReflectionClass' as it has no actions.
Resolve mutations for :compileJava (Thread[#158,Execution worker,5,main]) started.
:compileJava (Thread[#160,Execution worker Thread 3,5,main]) started.

> Task :compileJava
Build cache key for task ':compileJava' is fafebfc58cf97a481cb7a296a316272e
Task ':compileJava' is not up-to-date because:
  Input property 'stableSources' file C:\Users\thosap\Git\myproject\workspace\backend\src\main\java\com\example\myproject\domain\cube\CubeManifest.java has changed.
Created classpath snapshot for incremental compilation in 0.225 secs.
file or directory 'C:\Users\thosap\Git\myproject\workspace\backend\build\classes\java\quarkus-generated-sources\grpc', not found
file or directory 'C:\Users\thosap\Git\myproject\workspace\backend\build\classes\java\quarkus-generated-sources\avdl', not found
file or directory 'C:\Users\thosap\Git\myproject\workspace\backend\build\classes\java\quarkus-generated-sources\avpr', not found
file or directory 'C:\Users\thosap\Git\myproject\workspace\backend\build\classes\java\quarkus-generated-sources\avsc', not found
Compiling with toolchain 'C:\GraalVM\graalvm-community-openjdk-21.0.2+13.1'.
file or directory 'C:\Users\thosap\Git\myproject\workspace\backend\build\classes\java\quarkus-generated-sources\grpc', not found
file or directory 'C:\Users\thosap\Git\myproject\workspace\backend\build\classes\java\quarkus-generated-sources\avdl', not found
file or directory 'C:\Users\thosap\Git\myproject\workspace\backend\build\classes\java\quarkus-generated-sources\avpr', not found
file or directory 'C:\Users\thosap\Git\myproject\workspace\backend\build\classes\java\quarkus-generated-sources\avsc', not found
Compiling with JDK Java compiler API.
Hinweis: Einige Eingabedateien verwenden nicht geprüfte oder unsichere Vorgänge.
Hinweis: Wiederholen Sie die Kompilierung mit -Xlint:unchecked, um Details zu erhalten.
Hinweis: Einige Eingabedateien verwenden Vorschaufeatures von Java SE 21.
Hinweis: Wiederholen Sie die Kompilierung mit -Xlint:preview, um Details zu erhalten.
Incremental compilation of 61 classes completed in 4.525 secs.
Class dependency analysis for incremental compilation took 0.349 secs.
Stored cache entry for task ':compileJava' with cache key fafebfc58cf97a481cb7a296a316272e
Resolve mutations for :classes (Thread[#160,Execution worker Thread 3,5,main]) started.
:classes (Thread[#160,Execution worker Thread 3,5,main]) started.

> Task :classes
Skipping task ':classes' as it has no actions.
Resolve mutations for :jar (Thread[#160,Execution worker Thread 3,5,main]) started.
:jar (Thread[#160,Execution worker Thread 3,5,main]) started.

> Task :jar
Caching disabled for task ':jar' because:
  Not worth caching
Task ':jar' is not up-to-date because:
  Input property 'rootSpec$1' file C:\Users\thosap\Git\myproject\workspace\backend\build\classes\java\main\com\example\myproject\domain\cube\CubeManifest$Dimension.class has changed.
  Input property 'rootSpec$1' file C:\Users\thosap\Git\myproject\workspace\backend\build\classes\java\main\com\example\myproject\domain\cube\CubeManifest$JoinReference.class has changed.
  Input property 'rootSpec$1' file C:\Users\thosap\Git\myproject\workspace\backend\build\classes\java\main\com\example\myproject\domain\cube\CubeManifest$MainTable.class has changed.
Resolve mutations for :quarkusAppPartsBuild (Thread[#160,Execution worker Thread 3,5,main]) started.
:quarkusAppPartsBuild (Thread[#160,Execution worker Thread 3,5,main]) started.

> Task :quarkusAppPartsBuild
Caching disabled for task ':quarkusAppPartsBuild' because:
  Task is untracked because:
    Always execute Gradle task quarkusAppPartsBuild to run the Quinoa build, should only the frontend code change,
    and to always generate the K8s deploy manifest kubernetes.yml

Task ':quarkusAppPartsBuild' is not up-to-date because:
  Task is untracked because:
    Always execute Gradle task quarkusAppPartsBuild to run the Quinoa build, should only the frontend code change,
    and to always generate the K8s deploy manifest kubernetes.yml

Building Quarkus app for package type native in C:\Users\thosap\Git\myproject\workspace\backend\build\quarkus-build\gen
file or directory 'C:\Users\thosap\Git\myproject\workspace\backend\src\integrationTest\java', not found
file or directory 'C:\Users\thosap\Git\myproject\workspace\backend\build\classes\java\quarkus-generated-sources\grpc', not found
file or directory 'C:\Users\thosap\Git\myproject\workspace\backend\build\classes\java\quarkus-generated-sources\avdl', not found
file or directory 'C:\Users\thosap\Git\myproject\workspace\backend\build\classes\java\quarkus-generated-sources\avpr', not found
file or directory 'C:\Users\thosap\Git\myproject\workspace\backend\build\classes\java\quarkus-generated-sources\avsc', not found
file or directory 'C:\Users\thosap\Git\myproject\workspace\backend\src\quarkus-generated-sources\java', not found
file or directory 'C:\Users\thosap\Git\myproject\workspace\backend\src\quarkus-test-generated-sources\java', not found
file or directory 'C:\Users\thosap\Git\myproject\workspace\backend\src\integrationTest\resources', not found
file or directory 'C:\Users\thosap\Git\myproject\workspace\backend\src\native-test\resources', not found
file or directory 'C:\Users\thosap\Git\myproject\workspace\backend\src\quarkus-generated-sources\resources', not found
file or directory 'C:\Users\thosap\Git\myproject\workspace\backend\src\quarkus-test-generated-sources\resources', not found
Starting Quarkus application build for package type native
Effective properties:
    quarkus.analytics.disabled=true
    quarkus.application.name=myproject
    quarkus.application.version=0.0.0-SNAPSHOT
    quarkus.cache.caffeine.translation-params-cache.expire-after-write=PT1H
    quarkus.cache.caffeine.translation-params-cache.initial-capacity=16
    quarkus.cache.caffeine.translation-params-cache.metrics-enabled=true
    quarkus.console.color=true
    quarkus.container-image.group=myproject
    quarkus.container-image.name=app
    quarkus.container-image.registry=registry.example.com
    quarkus.container-image.tag=${quarkus.application.version}
    quarkus.datasource.devservices.enabled=false
    quarkus.datasource.health.enabled=true
    quarkus.datasource.myproject.db-kind=oracle
    quarkus.datasource.myproject.devservices.enabled=false
    quarkus.datasource.myproject.jdbc.acquisition-timeout=PT10S
    quarkus.datasource.myproject.jdbc.background-validation-interval=PT1M
    quarkus.datasource.myproject.jdbc.enable-metrics=true
    quarkus.datasource.myproject.jdbc.extended-leak-report=true
    quarkus.datasource.myproject.jdbc.idle-removal-interval=PT5M
    quarkus.datasource.myproject.jdbc.initial-size=3
    quarkus.datasource.myproject.jdbc.leak-detection-interval=PT10M
    quarkus.datasource.myproject.jdbc.max-size=50
    quarkus.datasource.myproject.jdbc.min-size=3
    quarkus.datasource.myproject.jdbc.url=${MYPROJECT_PROCESS_DS_ORACLE_JDBC_URL}
    quarkus.datasource.myproject.password=${MYPROJECT_PROCESS_DS_ORACLE_PASSWORD}
    quarkus.datasource.myproject.username=${MYPROJECT_PROCESS_DS_ORACLE_USERNAME}
    quarkus.datasource.jdbc=false
    quarkus.datasource.metrics.enabled=true
    quarkus.health.extensions.enabled=true
    quarkus.health.openapi.included=true
    quarkus.http.access-log.enabled=true
    quarkus.http.access-log.exclude-pattern=^(?!\/api(?!\/dev|\/_static|\/health-ui|\/swagger-ui)).*$
    quarkus.http.access-log.pattern=Request HTTP %s %m %U (%b bytes in %D ms) by %u from IP %h (Scheme=%{i,X-Forwarded-Proto}, Protocol=%H)
    quarkus.http.compress-media-types=text/plain,text/html,text/css,text/javascript,text/xml,application/atom+xml,application/geo+json,application/javascript,application/json,application/ld+json,application/manifest+json,application/rdf+xml,application/rss+xml,application/x-javascript,application/xhtml+xml,application/xml,font/eot,font/otf,font/ttf,image/svg+xml
    quarkus.http.compress-media-types[0]=text/plain
    quarkus.http.compress-media-types[10]=application/manifest+json
    quarkus.http.compress-media-types[11]=application/rdf+xml
    quarkus.http.compress-media-types[12]=application/rss+xml
    quarkus.http.compress-media-types[13]=application/x-javascript
    quarkus.http.compress-media-types[14]=application/xhtml+xml
    quarkus.http.compress-media-types[15]=application/xml
    quarkus.http.compress-media-types[16]=font/eot
    quarkus.http.compress-media-types[17]=font/otf
    quarkus.http.compress-media-types[18]=font/ttf
    quarkus.http.compress-media-types[19]=image/svg+xml
    quarkus.http.compress-media-types[1]=text/html
    quarkus.http.compress-media-types[2]=text/css
    quarkus.http.compress-media-types[3]=text/javascript
    quarkus.http.compress-media-types[4]=text/xml
    quarkus.http.compress-media-types[5]=application/atom+xml
    quarkus.http.compress-media-types[6]=application/geo+json
    quarkus.http.compress-media-types[7]=application/javascript
    quarkus.http.compress-media-types[8]=application/json
    quarkus.http.compress-media-types[9]=application/ld+json
    quarkus.http.enable-compression=true
    quarkus.http.host-enabled=true
    quarkus.http.http2-push-enabled=true
    quarkus.http.http2=true
    quarkus.http.limits.max-body-size=25600K
    quarkus.http.limits.max-chunk-size=8192
    quarkus.http.limits.max-form-attribute-size=2048
    quarkus.http.limits.max-header-size=20K
    quarkus.http.limits.max-initial-line-length=4096
    quarkus.http.non-application-root-path=/api
    quarkus.http.port=8080
    quarkus.http.proxy.enable-forwarded-host=true
    quarkus.http.proxy.proxy-address-forwarding=true
    quarkus.http.record-request-start-time=true
    quarkus.http.root-path=/
    quarkus.http.static-resources.max-age=PT1H
    quarkus.jackson.fail-on-unknown-properties=true
    quarkus.keycloak.devservices.container-env.KC_HEALTH_ENABLED=true
    quarkus.keycloak.devservices.container-env.KC_LOG=console
    quarkus.keycloak.devservices.container-env.KC_LOG_CONSOLE_COLOR=true
    quarkus.keycloak.devservices.container-env.KC_LOG_CONSOLE_FORMAT=%d{yyyy-MM-dd'T'HH:mm:ss.SSS'Z'} %-5p [%c] (%t) %s%e%n
    quarkus.keycloak.devservices.container-env.KC_METRICS_ENABLED=true
    quarkus.keycloak.devservices.container-env.KEYCLOAK_ADMIN=admin
    quarkus.keycloak.devservices.container-env.KEYCLOAK_ADMIN_PASSWORD=admin
    quarkus.keycloak.devservices.container-env.PS1=[\u@\h \W]\$$
    quarkus.keycloak.devservices.create-realm=false
    quarkus.keycloak.devservices.enabled=true
    quarkus.keycloak.devservices.image-name=quay.io/keycloak/keycloak:23.0.4
    quarkus.keycloak.devservices.port=8081
    quarkus.keycloak.devservices.realm-name=Example
    quarkus.keycloak.devservices.realm-path=Example-realm.json
    quarkus.keycloak.devservices.realm-path[0]=Example-realm.json
    quarkus.keycloak.devservices.show-logs=false
    quarkus.keycloak.devservices.start-command=start-dev --storage=chm
    quarkus.kubernetes.add-version-to-label-selectors=false
    quarkus.kubernetes.annotations."app.kubernetes.io/version"=${quarkus.application.version}
    quarkus.kubernetes.deploy=false
    quarkus.kubernetes.deployment-kind=Deployment
    quarkus.kubernetes.deployment-target=kubernetes
    quarkus.kubernetes.empty-dir-volumes=git
    quarkus.kubernetes.empty-dir-volumes[0]=git
    quarkus.kubernetes.env.fields.KUBERNETES_NODE_NAME=spec.nodeName
    quarkus.kubernetes.env.secrets=myproject-env-vars
    quarkus.kubernetes.env.secrets[0]=myproject-env-vars
    quarkus.kubernetes.env.vars.myproject_PROCESS_DS_ORACLE_JDBC_URL=${quarkus.datasource.myproject.jdbc.url}
    quarkus.kubernetes.env.vars.myproject_PROCESS_DS_ORACLE_PASSWORD=${quarkus.datasource.myproject.password}
    quarkus.kubernetes.env.vars.myproject_PROCESS_DS_ORACLE_USERNAME=${quarkus.datasource.myproject.username}
    quarkus.kubernetes.env.vars.OIDC_KEYCLOAK_BASE_URL=${myproject.oidc.keycloak.base-url}
    quarkus.kubernetes.env.vars.OIDC_KEYCLOAK_CLIENT_ID=${myproject.oidc.keycloak.client-id}
    quarkus.kubernetes.env.vars.OIDC_KEYCLOAK_REALM=${myproject.oidc.keycloak.realm}
    quarkus.kubernetes.env.vars.OIDC_TOKEN_ISSUER=${quarkus.oidc.token.issuer}
    quarkus.kubernetes.env.vars.QUARKUS_OIDC_AUTH_SERVER_URL=${quarkus.oidc.auth-server-url}
    quarkus.kubernetes.image-pull-policy=Always
    quarkus.kubernetes.image-pull-secrets=nexus
    quarkus.kubernetes.image-pull-secrets[0]=nexus
    quarkus.kubernetes.ingress.annotations."nginx.ingress.kubernetes.io/enable-cors"=true
    quarkus.kubernetes.ingress.annotations."nginx.ingress.kubernetes.io/http2-push-preload"=true
    quarkus.kubernetes.ingress.annotations."nginx.ingress.kubernetes.io/preserve-trailing-slash"=true
    quarkus.kubernetes.ingress.expose=true
    quarkus.kubernetes.ingress.host=myprojectvalid.example.com
    quarkus.kubernetes.ingress.target-port=http
    quarkus.kubernetes.ingress.tls.star-certificate.enabled=true
    quarkus.kubernetes.ingress.tls.star-certificate.hosts=myprojectvalid.example.com
    quarkus.kubernetes.ingress.tls.star-certificate.hosts[0]=myprojectvalid.example.com
    quarkus.kubernetes.init-containers.config-git-clone.env.vars.GITSYNC_DEPTH=1
    quarkus.kubernetes.init-containers.config-git-clone.env.vars.GITSYNC_LINK=config
    quarkus.kubernetes.init-containers.config-git-clone.env.vars.GITSYNC_MAX_FAILURES=0
    quarkus.kubernetes.init-containers.config-git-clone.env.vars.GITSYNC_ONE_TIME=true
    quarkus.kubernetes.init-containers.config-git-clone.env.vars.GITSYNC_PERIOD=30s
    quarkus.kubernetes.init-containers.config-git-clone.env.vars.GITSYNC_REF=validation
    quarkus.kubernetes.init-containers.config-git-clone.env.vars.GITSYNC_REPO=git@bitbucket.org:examplecompany/myproject-config.git
    quarkus.kubernetes.init-containers.config-git-clone.env.vars.GITSYNC_ROOT=/git
    quarkus.kubernetes.init-containers.config-git-clone.env.vars.GITSYNC_SSH_KEY_FILE=/etc/git-secret/ssh
    quarkus.kubernetes.init-containers.config-git-clone.env.vars.GITSYNC_SSH_KNOWN_HOSTS=true
    quarkus.kubernetes.init-containers.config-git-clone.env.vars.GITSYNC_SSH_KNOWN_HOSTS_FILE=/etc/git-secret/known_hosts
    quarkus.kubernetes.init-containers.config-git-clone.env.vars.GITSYNC_SYNC_TIMEOUT=120s
    quarkus.kubernetes.init-containers.config-git-clone.env.vars.GITSYNC_VERBOSE=6
    quarkus.kubernetes.init-containers.config-git-clone.image=registry.k8s.io/git-sync/git-sync:v4.2.0
    quarkus.kubernetes.init-containers.config-git-clone.mounts.git.name=git
    quarkus.kubernetes.init-containers.config-git-clone.mounts.git.path=/git
    quarkus.kubernetes.init-containers.config-git-clone.mounts.known-hosts.name=known-hosts
    quarkus.kubernetes.init-containers.config-git-clone.mounts.known-hosts.path=/etc/git-secret/known_hosts
    quarkus.kubernetes.init-containers.config-git-clone.mounts.known-hosts.read-only=true
    quarkus.kubernetes.init-containers.config-git-clone.mounts.known-hosts.sub-path=known_hosts
    quarkus.kubernetes.init-containers.config-git-clone.mounts.ssh.name=ssh
    quarkus.kubernetes.init-containers.config-git-clone.mounts.ssh.path=/etc/git-secret/ssh
    quarkus.kubernetes.init-containers.config-git-clone.mounts.ssh.read-only=true
    quarkus.kubernetes.init-containers.config-git-clone.mounts.ssh.sub-path=ssh
    quarkus.kubernetes.init-containers.config-git-clone.resources.limits.memory=100Mi
    quarkus.kubernetes.init-containers.config-git-clone.resources.requests.cpu=5m
    quarkus.kubernetes.init-containers.config-git-clone.resources.requests.memory=60Mi
    quarkus.kubernetes.liveness-probe.failure-threshold=3
    quarkus.kubernetes.liveness-probe.http-action-port-name=http
    quarkus.kubernetes.liveness-probe.initial-delay=PT10S
    quarkus.kubernetes.liveness-probe.period=PT30S
    quarkus.kubernetes.liveness-probe.success-threshold=1
    quarkus.kubernetes.liveness-probe.timeout=PT10S
    quarkus.kubernetes.mounts.git.name=git
    quarkus.kubernetes.mounts.git.path=/git
    quarkus.kubernetes.name=myproject
    quarkus.kubernetes.namespace=example-valid-myproject
    quarkus.kubernetes.ports.http.path=${quarkus.http.root-path}
    quarkus.kubernetes.readiness-probe.failure-threshold=3
    quarkus.kubernetes.readiness-probe.http-action-port-name=http
    quarkus.kubernetes.readiness-probe.initial-delay=PT0S
    quarkus.kubernetes.readiness-probe.period=PT10S
    quarkus.kubernetes.readiness-probe.success-threshold=1
    quarkus.kubernetes.readiness-probe.timeout=PT3S
    quarkus.kubernetes.replicas=1
    quarkus.kubernetes.resources.limits.memory=1024Mi
    quarkus.kubernetes.resources.requests.cpu=100m
    quarkus.kubernetes.resources.requests.memory=1024Mi
    quarkus.kubernetes.secret-volumes.known-hosts.default-mode=0444
    quarkus.kubernetes.secret-volumes.known-hosts.items.known_hosts.mode=-1
    quarkus.kubernetes.secret-volumes.known-hosts.items.known_hosts.path=known_hosts
    quarkus.kubernetes.secret-volumes.known-hosts.optional=true
    quarkus.kubernetes.secret-volumes.known-hosts.secret-name=myproject-config-git-known-hosts
    quarkus.kubernetes.secret-volumes.ssh.default-mode=0444
    quarkus.kubernetes.secret-volumes.ssh.items.ssh.mode=-1
    quarkus.kubernetes.secret-volumes.ssh.items.ssh.path=ssh
    quarkus.kubernetes.secret-volumes.ssh.optional=true
    quarkus.kubernetes.secret-volumes.ssh.secret-name=myproject-config-git-key
    quarkus.kubernetes.sidecars.config-git-sync.env.vars.GITSYNC_DEPTH=1
    quarkus.kubernetes.sidecars.config-git-sync.env.vars.GITSYNC_LINK=config
    quarkus.kubernetes.sidecars.config-git-sync.env.vars.GITSYNC_MAX_FAILURES=20
    quarkus.kubernetes.sidecars.config-git-sync.env.vars.GITSYNC_PERIOD=30s
    quarkus.kubernetes.sidecars.config-git-sync.env.vars.GITSYNC_REF=validation
    quarkus.kubernetes.sidecars.config-git-sync.env.vars.GITSYNC_REPO=git@bitbucket.org:examplecompany/myproject-config.git
    quarkus.kubernetes.sidecars.config-git-sync.env.vars.GITSYNC_ROOT=/git
    quarkus.kubernetes.sidecars.config-git-sync.env.vars.GITSYNC_SSH_KEY_FILE=/etc/git-secret/ssh
    quarkus.kubernetes.sidecars.config-git-sync.env.vars.GITSYNC_SSH_KNOWN_HOSTS=true
    quarkus.kubernetes.sidecars.config-git-sync.env.vars.GITSYNC_SSH_KNOWN_HOSTS_FILE=/etc/git-secret/known_hosts
    quarkus.kubernetes.sidecars.config-git-sync.env.vars.GITSYNC_SYNC_TIMEOUT=120s
    quarkus.kubernetes.sidecars.config-git-sync.env.vars.GITSYNC_VERBOSE=1
    quarkus.kubernetes.sidecars.config-git-sync.image=registry.k8s.io/git-sync/git-sync:v4.1.0
    quarkus.kubernetes.sidecars.config-git-sync.mounts.git.name=git
    quarkus.kubernetes.sidecars.config-git-sync.mounts.git.path=/git
    quarkus.kubernetes.sidecars.config-git-sync.mounts.known-hosts.name=known-hosts
    quarkus.kubernetes.sidecars.config-git-sync.mounts.known-hosts.path=/etc/git-secret/known_hosts
    quarkus.kubernetes.sidecars.config-git-sync.mounts.known-hosts.read-only=true
    quarkus.kubernetes.sidecars.config-git-sync.mounts.known-hosts.sub-path=known_hosts
    quarkus.kubernetes.sidecars.config-git-sync.mounts.ssh.name=ssh
    quarkus.kubernetes.sidecars.config-git-sync.mounts.ssh.path=/etc/git-secret/ssh
    quarkus.kubernetes.sidecars.config-git-sync.mounts.ssh.read-only=true
    quarkus.kubernetes.sidecars.config-git-sync.mounts.ssh.sub-path=ssh
    quarkus.kubernetes.sidecars.config-git-sync.resources.limits.memory=100Mi
    quarkus.kubernetes.sidecars.config-git-sync.resources.requests.cpu=5m
    quarkus.kubernetes.sidecars.config-git-sync.resources.requests.memory=60Mi
    quarkus.kubernetes.startup-probe.failure-threshold=3
    quarkus.kubernetes.startup-probe.http-action-port-name=http
    quarkus.kubernetes.startup-probe.initial-delay=PT5S
    quarkus.kubernetes.startup-probe.period=PT10S
    quarkus.kubernetes.startup-probe.success-threshold=1
    quarkus.kubernetes.startup-probe.timeout=PT10S
    quarkus.kubernetes.version=${quarkus.application.version}
    quarkus.live-reload.instrumentation=true
    quarkus.log.category."com.example".level=${MYPROJECT_LOG_LEVEL:INFO}
    quarkus.log.category."io.quarkiverse.quinoa.QuinoaDevWebSocketProxyHandler".level=WARN
    quarkus.log.category."io.quarkus.deployment.util.FSWatchUtil".level=INFO
    quarkus.log.category."org.jooq".level=${JOOQ_LOG_LEVEL:INFO}
    quarkus.log.category."org.jooq.impl.FieldsImpl".level=WARN
    quarkus.log.category."org.jooq.impl.FieldsImpl".use-parent-handlers=false
    quarkus.log.console.enable=true
    quarkus.log.console.format=%d{yyyy-MM-dd'T'HH:mm:ss.SSS'Z'} %-5p [%c{1}] (%t) %s%e%n
    quarkus.log.level=INFO
    quarkus.log.metrics.enabled=true
    quarkus.log.min-level=DEBUG
    quarkus.micrometer.enabled=true
    quarkus.micrometer.export.json.enabled=true
    quarkus.native.add-all-charsets=true
    quarkus.native.additional-build-args=-march=native,-J--enable-preview,--initialize-at-run-time=oracle.xml.util.UnicodeUtil\,io.trino.jdbc.TrinoDriver
    quarkus.native.additional-build-args[0]=-march=native
    quarkus.native.additional-build-args[1]=-J--enable-preview
    quarkus.native.additional-build-args[2]=--initialize-at-run-time=oracle.xml.util.UnicodeUtil,io.trino.jdbc.TrinoDriver
    quarkus.native.compression.level=6
    quarkus.native.monitoring=jfr,jvmstat,heapdump
    quarkus.native.monitoring[0]=jfr
    quarkus.native.monitoring[1]=jvmstat
    quarkus.native.monitoring[2]=heapdump
    quarkus.native.native-image-xmx=20g
    quarkus.native.resources.includes=io/trino/jdbc/$internal/joda/time/tz/data/**
    quarkus.native.resources.includes[0]=io/trino/jdbc/$internal/joda/time/tz/data/**
    quarkus.oidc.application-type=hybrid
    quarkus.oidc.auth-server-url=https://keycloakvalid.example.com/auth/realms/Example
    quarkus.oidc.auth.server.url=https://keycloakvalid.example.com/auth/realms/Example
    quarkus.oidc.authentication.cookie-force-secure=true
    quarkus.oidc.authentication.cookie-path=/
    quarkus.oidc.authentication.force-redirect-https-scheme=true
    quarkus.oidc.authentication.java-script-auto-redirect=true
    quarkus.oidc.authentication.remove-redirect-parameters=true
    quarkus.oidc.authentication.restore-path-after-redirect=true
    quarkus.oidc.client-id=${myproject.oidc.keycloak.client-id}
    quarkus.oidc.discovery-enabled=true
    quarkus.oidc.enabled=true
    quarkus.oidc.logout.path=${quarkus.resteasy-reactive.path}/user/logout
    quarkus.oidc.logout.post-logout-path=/
    quarkus.oidc.roles.role-claim-path=realm_access/roles
    quarkus.oidc.roles.role-claim-separator=,
    quarkus.oidc.roles.source=accesstoken
    quarkus.oidc.token-state-manager.split-tokens=true
    quarkus.oidc.token.issuer=${OIDC_TOKEN_ISSUER:${quarkus.oidc.auth-server-url}}
    quarkus.package.manifest.add-implementation-entries=true
    quarkus.package.type=native
    quarkus.profile=prod
    quarkus.quinoa.build-dir=dist/apps/myproject
    quarkus.quinoa.dev-server.check-timeout=60000
    quarkus.quinoa.dev-server.host=localhost
    quarkus.quinoa.dev-server.logs=false
    quarkus.quinoa.dev-server.managed=true
    quarkus.quinoa.dev-server.port=4200
    quarkus.quinoa.dev-server.websocket=true
    quarkus.quinoa.enable-spa-routing=true
    quarkus.quinoa.force-install=true
    quarkus.quinoa.package-manager-command.dev=startQuinoa
    quarkus.quinoa.package-manager=pnpm
    quarkus.quinoa.ui-dir=../frontend
    quarkus.resteasy-reactive.path=/api/v1
    quarkus.smallrye-health.context-propagation=false
    quarkus.smallrye-health.ui.always-include=true
    quarkus.smallrye-health.ui.enable=true
    quarkus.smallrye-openapi.auto-add-security-requirement=false
    quarkus.smallrye-openapi.auto-add-security=false
    quarkus.smallrye-openapi.enable=true
    quarkus.smallrye-openapi.info-contact-email=contact@example.com
    quarkus.smallrye-openapi.info-contact-name=Example Software Developers
    quarkus.smallrye-openapi.info-contact-url=https://help.example.com/
    quarkus.smallrye-openapi.info-description=myproject REST API
    quarkus.smallrye-openapi.info-title=myproject REST API
    quarkus.smallrye-openapi.oauth2-implicit-authorization-url=${myproject.oidc.keycloak.base-url}/realms/${myproject.oidc.keycloak.realm}/protocol/openid-connect/auth
    quarkus.smallrye-openapi.oauth2-implicit-refresh-url=${myproject.oidc.keycloak.base-url}/realms/${myproject.oidc.keycloak.realm}/protocol/openid-connect/token
    quarkus.smallrye-openapi.operation-id-strategy=METHOD
    quarkus.smallrye-openapi.security-scheme-description=Keycloak Example Company
    quarkus.smallrye-openapi.security-scheme-name=Keycloak
    quarkus.smallrye-openapi.security-scheme=oauth2-implicit
    quarkus.ssl.native=true
    quarkus.swagger-ui.always-include=true
    quarkus.swagger-ui.deep-linking=true
    quarkus.swagger-ui.display-operation-id=true
    quarkus.swagger-ui.enable=true
    quarkus.swagger-ui.filter=true
    quarkus.swagger-ui.footer=&copy; 2024 Example Company
    quarkus.swagger-ui.oauth-client-id=${myproject.oidc.keycloak.client-id}
    quarkus.swagger-ui.persist-authorization=true
    quarkus.swagger-ui.show-common-extensions=true
    quarkus.swagger-ui.show-extensions=true
    quarkus.swagger-ui.syntax-highlight=false
    quarkus.swagger-ui.theme=flattop
    quarkus.swagger-ui.title=myproject REST API
    quarkus.swagger-ui.validator-url=none
Starting process 'Gradle Worker Daemon 2'. Working directory: C:\Users\thosap\.gradle\workers Command: C:\GraalVM\graalvm-community-openjdk-21.0.2+13.1\bin\java.exe -Dquarkus.analytics.disabled=true -Dquarkus.application.name=myproject -Dquarkus.application.version=0.0.0-SNAPSHOT -Dquarkus.cache.caffeine.translation-params-cache.expire-after-write=PT1H -Dquarkus.cache.caffeine.translation-params-cache.initial-capacity=16 -Dquarkus.cache.caffeine.translation-params-cache.metrics-enabled=true -Dquarkus.console.color=true -Dquarkus.container-image.group=myproject -Dquarkus.container-image.name=app -Dquarkus.container-image.registry=registry.example.com -Dquarkus.container-image.tag=${quarkus.application.version} -Dquarkus.datasource.devservices.enabled=false -Dquarkus.datasource.health.enabled=true -Dquarkus.datasource.myproject.db-kind=oracle -Dquarkus.datasource.myproject.devservices.enabled=false -Dquarkus.datasource.myproject.jdbc.acquisition-timeout=PT10S -Dquarkus.datasource.myproject.jdbc.background-validation-interval=PT1M -Dquarkus.datasource.myproject.jdbc.enable-metrics=true -Dquarkus.datasource.myproject.jdbc.extended-leak-report=true -Dquarkus.datasource.myproject.jdbc.idle-removal-interval=PT5M -Dquarkus.datasource.myproject.jdbc.initial-size=3 -Dquarkus.datasource.myproject.jdbc.leak-detection-interval=PT10M -Dquarkus.datasource.myproject.jdbc.max-size=50 -Dquarkus.datasource.myproject.jdbc.min-size=3 -Dquarkus.datasource.myproject.jdbc.url=${MYPROJECT_PROCESS_DS_ORACLE_JDBC_URL} -Dquarkus.datasource.myproject.password=${MYPROJECT_PROCESS_DS_ORACLE_PASSWORD} -Dquarkus.datasource.myproject.username=${MYPROJECT_PROCESS_DS_ORACLE_USERNAME} -Dquarkus.datasource.jdbc=false -Dquarkus.datasource.metrics.enabled=true -Dquarkus.health.extensions.enabled=true -Dquarkus.health.openapi.included=true -Dquarkus.http.access-log.enabled=true -Dquarkus.http.access-log.exclude-pattern=^(?!\/api(?!\/dev|\/_static|\/health-ui|\/swagger-ui)).*$ -Dquarkus.http.access-log.pattern=Request HTTP %s %m %U (%b bytes in %D ms) by %u from IP %h (Scheme=%{i,X-Forwarded-Proto}, Protocol=%H) -Dquarkus.http.compress-media-types=text/plain,text/html,text/css,text/javascript,text/xml,application/atom+xml,application/geo+json,application/javascript,application/json,application/ld+json,application/manifest+json,application/rdf+xml,application/rss+xml,application/x-javascript,application/xhtml+xml,application/xml,font/eot,font/otf,font/ttf,image/svg+xml -Dquarkus.http.compress-media-types[0]=text/plain -Dquarkus.http.compress-media-types[10]=application/manifest+json -Dquarkus.http.compress-media-types[11]=application/rdf+xml -Dquarkus.http.compress-media-types[12]=application/rss+xml -Dquarkus.http.compress-media-types[13]=application/x-javascript -Dquarkus.http.compress-media-types[14]=application/xhtml+xml -Dquarkus.http.compress-media-types[15]=application/xml -Dquarkus.http.compress-media-types[16]=font/eot -Dquarkus.http.compress-media-types[17]=font/otf -Dquarkus.http.compress-media-types[18]=font/ttf -Dquarkus.http.compress-media-types[19]=image/svg+xml -Dquarkus.http.compress-media-types[1]=text/html -Dquarkus.http.compress-media-types[2]=text/css -Dquarkus.http.compress-media-types[3]=text/javascript -Dquarkus.http.compress-media-types[4]=text/xml -Dquarkus.http.compress-media-types[5]=application/atom+xml -Dquarkus.http.compress-media-types[6]=application/geo+json -Dquarkus.http.compress-media-types[7]=application/javascript -Dquarkus.http.compress-media-types[8]=application/json -Dquarkus.http.compress-media-types[9]=application/ld+json -Dquarkus.http.enable-compression=true -Dquarkus.http.host-enabled=true -Dquarkus.http.http2=true -Dquarkus.http.http2-push-enabled=true -Dquarkus.http.limits.max-body-size=25600K -Dquarkus.http.limits.max-chunk-size=8192 -Dquarkus.http.limits.max-form-attribute-size=2048 -Dquarkus.http.limits.max-header-size=20K -Dquarkus.http.limits.max-initial-line-length=4096 -Dquarkus.http.non-application-root-path=/api -Dquarkus.http.port=8080 -Dquarkus.http.proxy.enable-forwarded-host=true -Dquarkus.http.proxy.proxy-address-forwarding=true -Dquarkus.http.record-request-start-time=true -Dquarkus.http.root-path=/ -Dquarkus.http.static-resources.max-age=PT1H -Dquarkus.jackson.fail-on-unknown-properties=true -Dquarkus.keycloak.devservices.container-env.KC_HEALTH_ENABLED=true -Dquarkus.keycloak.devservices.container-env.KC_LOG=console -Dquarkus.keycloak.devservices.container-env.KC_LOG_CONSOLE_COLOR=true -Dquarkus.keycloak.devservices.container-env.KC_LOG_CONSOLE_FORMAT=%d{yyyy-MM-dd'T'HH:mm:ss.SSS'Z'} %-5p [%c] (%t) %s%e%n -Dquarkus.keycloak.devservices.container-env.KC_METRICS_ENABLED=true -Dquarkus.keycloak.devservices.container-env.KEYCLOAK_ADMIN=admin -Dquarkus.keycloak.devservices.container-env.KEYCLOAK_ADMIN_PASSWORD=admin -Dquarkus.keycloak.devservices.container-env.PS1=[\u@\h \W]\$$  -Dquarkus.keycloak.devservices.create-realm=false -Dquarkus.keycloak.devservices.enabled=true -Dquarkus.keycloak.devservices.image-name=quay.io/keycloak/keycloak:23.0.4 -Dquarkus.keycloak.devservices.port=8081 -Dquarkus.keycloak.devservices.realm-name=Example -Dquarkus.keycloak.devservices.realm-path=Example-realm.json -Dquarkus.keycloak.devservices.realm-path[0]=Example-realm.json -Dquarkus.keycloak.devservices.show-logs=false -Dquarkus.keycloak.devservices.start-command=start-dev --storage=chm -Dquarkus.kubernetes.add-version-to-label-selectors=false -Dquarkus.kubernetes.annotations."app.kubernetes.io/version"=${quarkus.application.version} -Dquarkus.kubernetes.deploy=false -Dquarkus.kubernetes.deployment-kind=Deployment -Dquarkus.kubernetes.deployment-target=kubernetes -Dquarkus.kubernetes.empty-dir-volumes=git -Dquarkus.kubernetes.empty-dir-volumes[0]=git -Dquarkus.kubernetes.env.fields.KUBERNETES_NODE_NAME=spec.nodeName -Dquarkus.kubernetes.env.secrets=myproject-env-vars -Dquarkus.kubernetes.env.secrets[0]=myproject-env-vars -Dquarkus.kubernetes.env.vars.myproject_PROCESS_DS_ORACLE_JDBC_URL=${quarkus.datasource.myproject.jdbc.url} -Dquarkus.kubernetes.env.vars.myproject_PROCESS_DS_ORACLE_PASSWORD=${quarkus.datasource.myproject.password} -Dquarkus.kubernetes.env.vars.myproject_PROCESS_DS_ORACLE_USERNAME=${quarkus.datasource.myproject.username} -Dquarkus.kubernetes.env.vars.OIDC_KEYCLOAK_BASE_URL=${myproject.oidc.keycloak.base-url} -Dquarkus.kubernetes.env.vars.OIDC_KEYCLOAK_CLIENT_ID=${myproject.oidc.keycloak.client-id} -Dquarkus.kubernetes.env.vars.OIDC_KEYCLOAK_REALM=${myproject.oidc.keycloak.realm} -Dquarkus.kubernetes.env.vars.OIDC_TOKEN_ISSUER=${quarkus.oidc.token.issuer} -Dquarkus.kubernetes.env.vars.QUARKUS_OIDC_AUTH_SERVER_URL=${quarkus.oidc.auth-server-url} -Dquarkus.kubernetes.image-pull-policy=Always -Dquarkus.kubernetes.image-pull-secrets=nexus -Dquarkus.kubernetes.image-pull-secrets[0]=nexus -Dquarkus.kubernetes.ingress.annotations."nginx.ingress.kubernetes.io/enable-cors"=true -Dquarkus.kubernetes.ingress.annotations."nginx.ingress.kubernetes.io/http2-push-preload"=true -Dquarkus.kubernetes.ingress.annotations."nginx.ingress.kubernetes.io/preserve-trailing-slash"=true -Dquarkus.kubernetes.ingress.expose=true -Dquarkus.kubernetes.ingress.host=myprojectvalid.example.com -Dquarkus.kubernetes.ingress.target-port=http -Dquarkus.kubernetes.ingress.tls.star-certificate.enabled=true -Dquarkus.kubernetes.ingress.tls.star-certificate.hosts=myprojectvalid.example.com -Dquarkus.kubernetes.ingress.tls.star-certificate.hosts[0]=myprojectvalid.example.com -Dquarkus.kubernetes.init-containers.config-git-clone.env.vars.GITSYNC_DEPTH=1 -Dquarkus.kubernetes.init-containers.config-git-clone.env.vars.GITSYNC_LINK=config -Dquarkus.kubernetes.init-containers.config-git-clone.env.vars.GITSYNC_MAX_FAILURES=0 -Dquarkus.kubernetes.init-containers.config-git-clone.env.vars.GITSYNC_ONE_TIME=true -Dquarkus.kubernetes.init-containers.config-git-clone.env.vars.GITSYNC_PERIOD=30s -Dquarkus.kubernetes.init-containers.config-git-clone.env.vars.GITSYNC_REF=validation -Dquarkus.kubernetes.init-containers.config-git-clone.env.vars.GITSYNC_REPO=git@bitbucket.org:examplecompany/myproject-config.git -Dquarkus.kubernetes.init-containers.config-git-clone.env.vars.GITSYNC_ROOT=/git -Dquarkus.kubernetes.init-containers.config-git-clone.env.vars.GITSYNC_SSH_KEY_FILE=/etc/git-secret/ssh -Dquarkus.kubernetes.init-containers.config-git-clone.env.vars.GITSYNC_SSH_KNOWN_HOSTS=true -Dquarkus.kubernetes.init-containers.config-git-clone.env.vars.GITSYNC_SSH_KNOWN_HOSTS_FILE=/etc/git-secret/known_hosts -Dquarkus.kubernetes.init-containers.config-git-clone.env.vars.GITSYNC_SYNC_TIMEOUT=120s -Dquarkus.kubernetes.init-containers.config-git-clone.env.vars.GITSYNC_VERBOSE=6 -Dquarkus.kubernetes.init-containers.config-git-clone.image=registry.k8s.io/git-sync/git-sync:v4.2.0 -Dquarkus.kubernetes.init-containers.config-git-clone.mounts.git.name=git -Dquarkus.kubernetes.init-containers.config-git-clone.mounts.git.path=/git -Dquarkus.kubernetes.init-containers.config-git-clone.mounts.known-hosts.name=known-hosts -Dquarkus.kubernetes.init-containers.config-git-clone.mounts.known-hosts.path=/etc/git-secret/known_hosts -Dquarkus.kubernetes.init-containers.config-git-clone.mounts.known-hosts.read-only=true -Dquarkus.kubernetes.init-containers.config-git-clone.mounts.known-hosts.sub-path=known_hosts -Dquarkus.kubernetes.init-containers.config-git-clone.mounts.ssh.name=ssh -Dquarkus.kubernetes.init-containers.config-git-clone.mounts.ssh.path=/etc/git-secret/ssh -Dquarkus.kubernetes.init-containers.config-git-clone.mounts.ssh.read-only=true -Dquarkus.kubernetes.init-containers.config-git-clone.mounts.ssh.sub-path=ssh -Dquarkus.kubernetes.init-containers.config-git-clone.resources.limits.memory=100Mi -Dquarkus.kubernetes.init-containers.config-git-clone.resources.requests.cpu=5m -Dquarkus.kubernetes.init-containers.config-git-clone.resources.requests.memory=60Mi -Dquarkus.kubernetes.liveness-probe.failure-threshold=3 -Dquarkus.kubernetes.liveness-probe.http-action-port-name=http -Dquarkus.kubernetes.liveness-probe.initial-delay=PT10S -Dquarkus.kubernetes.liveness-probe.period=PT30S -Dquarkus.kubernetes.liveness-probe.success-threshold=1 -Dquarkus.kubernetes.liveness-probe.timeout=PT10S -Dquarkus.kubernetes.mounts.git.name=git -Dquarkus.kubernetes.mounts.git.path=/git -Dquarkus.kubernetes.name=myproject -Dquarkus.kubernetes.namespace=example-valid-myproject -Dquarkus.kubernetes.ports.http.path=${quarkus.http.root-path} -Dquarkus.kubernetes.readiness-probe.failure-threshold=3 -Dquarkus.kubernetes.readiness-probe.http-action-port-name=http -Dquarkus.kubernetes.readiness-probe.initial-delay=PT0S -Dquarkus.kubernetes.readiness-probe.period=PT10S -Dquarkus.kubernetes.readiness-probe.success-threshold=1 -Dquarkus.kubernetes.readiness-probe.timeout=PT3S -Dquarkus.kubernetes.replicas=1 -Dquarkus.kubernetes.resources.limits.memory=1024Mi -Dquarkus.kubernetes.resources.requests.cpu=100m -Dquarkus.kubernetes.resources.requests.memory=1024Mi -Dquarkus.kubernetes.secret-volumes.known-hosts.default-mode=0444 -Dquarkus.kubernetes.secret-volumes.known-hosts.items.known_hosts.mode=-1 -Dquarkus.kubernetes.secret-volumes.known-hosts.items.known_hosts.path=known_hosts -Dquarkus.kubernetes.secret-volumes.known-hosts.optional=true -Dquarkus.kubernetes.secret-volumes.known-hosts.secret-name=myproject-config-git-known-hosts -Dquarkus.kubernetes.secret-volumes.ssh.default-mode=0444 -Dquarkus.kubernetes.secret-volumes.ssh.items.ssh.mode=-1 -Dquarkus.kubernetes.secret-volumes.ssh.items.ssh.path=ssh -Dquarkus.kubernetes.secret-volumes.ssh.optional=true -Dquarkus.kubernetes.secret-volumes.ssh.secret-name=myproject-config-git-key -Dquarkus.kubernetes.sidecars.config-git-sync.env.vars.GITSYNC_DEPTH=1 -Dquarkus.kubernetes.sidecars.config-git-sync.env.vars.GITSYNC_LINK=config -Dquarkus.kubernetes.sidecars.config-git-sync.env.vars.GITSYNC_MAX_FAILURES=20 -Dquarkus.kubernetes.sidecars.config-git-sync.env.vars.GITSYNC_PERIOD=30s -Dquarkus.kubernetes.sidecars.config-git-sync.env.vars.GITSYNC_REF=validation -Dquarkus.kubernetes.sidecars.config-git-sync.env.vars.GITSYNC_REPO=git@bitbucket.org:examplecompany/myproject-config.git -Dquarkus.kubernetes.sidecars.config-git-sync.env.vars.GITSYNC_ROOT=/git -Dquarkus.kubernetes.sidecars.config-git-sync.env.vars.GITSYNC_SSH_KEY_FILE=/etc/git-secret/ssh -Dquarkus.kubernetes.sidecars.config-git-sync.env.vars.GITSYNC_SSH_KNOWN_HOSTS=true -Dquarkus.kubernetes.sidecars.config-git-sync.env.vars.GITSYNC_SSH_KNOWN_HOSTS_FILE=/etc/git-secret/known_hosts -Dquarkus.kubernetes.sidecars.config-git-sync.env.vars.GITSYNC_SYNC_TIMEOUT=120s -Dquarkus.kubernetes.sidecars.config-git-sync.env.vars.GITSYNC_VERBOSE=1 -Dquarkus.kubernetes.sidecars.config-git-sync.image=registry.k8s.io/git-sync/git-sync:v4.1.0 -Dquarkus.kubernetes.sidecars.config-git-sync.mounts.git.name=git -Dquarkus.kubernetes.sidecars.config-git-sync.mounts.git.path=/git -Dquarkus.kubernetes.sidecars.config-git-sync.mounts.known-hosts.name=known-hosts -Dquarkus.kubernetes.sidecars.config-git-sync.mounts.known-hosts.path=/etc/git-secret/known_hosts -Dquarkus.kubernetes.sidecars.config-git-sync.mounts.known-hosts.read-only=true -Dquarkus.kubernetes.sidecars.config-git-sync.mounts.known-hosts.sub-path=known_hosts -Dquarkus.kubernetes.sidecars.config-git-sync.mounts.ssh.name=ssh -Dquarkus.kubernetes.sidecars.config-git-sync.mounts.ssh.path=/etc/git-secret/ssh -Dquarkus.kubernetes.sidecars.config-git-sync.mounts.ssh.read-only=true -Dquarkus.kubernetes.sidecars.config-git-sync.mounts.ssh.sub-path=ssh -Dquarkus.kubernetes.sidecars.config-git-sync.resources.limits.memory=100Mi -Dquarkus.kubernetes.sidecars.config-git-sync.resources.requests.cpu=5m -Dquarkus.kubernetes.sidecars.config-git-sync.resources.requests.memory=60Mi -Dquarkus.kubernetes.startup-probe.failure-threshold=3 -Dquarkus.kubernetes.startup-probe.http-action-port-name=http -Dquarkus.kubernetes.startup-probe.initial-delay=PT5S -Dquarkus.kubernetes.startup-probe.period=PT10S -Dquarkus.kubernetes.startup-probe.success-threshold=1 -Dquarkus.kubernetes.startup-probe.timeout=PT10S -Dquarkus.kubernetes.version=${quarkus.application.version} -Dquarkus.live-reload.instrumentation=true -Dquarkus.log.category."com.example".level=${MYPROJECT_LOG_LEVEL:INFO} -Dquarkus.log.category."io.quarkiverse.quinoa.QuinoaDevWebSocketProxyHandler".level=WARN -Dquarkus.log.category."io.quarkus.deployment.util.FSWatchUtil".level=INFO -Dquarkus.log.category."org.jooq".level=${JOOQ_LOG_LEVEL:INFO} -Dquarkus.log.category."org.jooq.impl.FieldsImpl".level=WARN -Dquarkus.log.category."org.jooq.impl.FieldsImpl".use-parent-handlers=false -Dquarkus.log.console.enable=true -Dquarkus.log.console.format=%d{yyyy-MM-dd'T'HH:mm:ss.SSS'Z'} %-5p [%c{1}] (%t) %s%e%n -Dquarkus.log.level=INFO -Dquarkus.log.metrics.enabled=true -Dquarkus.log.min-level=DEBUG -Dquarkus.micrometer.enabled=true -Dquarkus.micrometer.export.json.enabled=true -Dquarkus.native.add-all-charsets=true -Dquarkus.native.additional-build-args=-march=native,-J--enable-preview,--initialize-at-run-time=oracle.xml.util.UnicodeUtil\,io.trino.jdbc.TrinoDriver -Dquarkus.native.additional-build-args[0]=-march=native -Dquarkus.native.additional-build-args[1]=-J--enable-preview -Dquarkus.native.additional-build-args[2]=--initialize-at-run-time=oracle.xml.util.UnicodeUtil,io.trino.jdbc.TrinoDriver -Dquarkus.native.compression.level=6 -Dquarkus.native.monitoring=jfr,jvmstat,heapdump -Dquarkus.native.monitoring[0]=jfr -Dquarkus.native.monitoring[1]=jvmstat -Dquarkus.native.monitoring[2]=heapdump -Dquarkus.native.native-image-xmx=20g -Dquarkus.native.resources.includes=io/trino/jdbc/$internal/joda/time/tz/data/** -Dquarkus.native.resources.includes[0]=io/trino/jdbc/$internal/joda/time/tz/data/** -Dquarkus.oidc.application-type=hybrid -Dquarkus.oidc.auth-server-url=https://keycloakvalid.example.com/auth/realms/Example -Dquarkus.oidc.auth.server.url=https://keycloakvalid.example.com/auth/realms/Example -Dquarkus.oidc.authentication.cookie-force-secure=true -Dquarkus.oidc.authentication.cookie-path=/ -Dquarkus.oidc.authentication.force-redirect-https-scheme=true -Dquarkus.oidc.authentication.java-script-auto-redirect=true -Dquarkus.oidc.authentication.remove-redirect-parameters=true -Dquarkus.oidc.authentication.restore-path-after-redirect=true -Dquarkus.oidc.client-id=${myproject.oidc.keycloak.client-id} -Dquarkus.oidc.discovery-enabled=true -Dquarkus.oidc.enabled=true -Dquarkus.oidc.logout.path=${quarkus.resteasy-reactive.path}/user/logout -Dquarkus.oidc.logout.post-logout-path=/ -Dquarkus.oidc.roles.role-claim-path=realm_access/roles -Dquarkus.oidc.roles.role-claim-separator=, -Dquarkus.oidc.roles.source=accesstoken -Dquarkus.oidc.token-state-manager.split-tokens=true -Dquarkus.oidc.token.issuer=${OIDC_TOKEN_ISSUER:${quarkus.oidc.auth-server-url}} -Dquarkus.package.manifest.add-implementation-entries=true -Dquarkus.package.type=native -Dquarkus.profile=prod -Dquarkus.quinoa.build-dir=dist/apps/myproject -Dquarkus.quinoa.dev-server.check-timeout=60000 -Dquarkus.quinoa.dev-server.host=localhost -Dquarkus.quinoa.dev-server.logs=false -Dquarkus.quinoa.dev-server.managed=true -Dquarkus.quinoa.dev-server.port=4200 -Dquarkus.quinoa.dev-server.websocket=true -Dquarkus.quinoa.enable-spa-routing=true -Dquarkus.quinoa.force-install=true -Dquarkus.quinoa.package-manager=pnpm -Dquarkus.quinoa.package-manager-command.dev=startQuinoa -Dquarkus.quinoa.ui-dir=../frontend -Dquarkus.resteasy-reactive.path=/api/v1 -Dquarkus.smallrye-health.context-propagation=false -Dquarkus.smallrye-health.ui.always-include=true -Dquarkus.smallrye-health.ui.enable=true -Dquarkus.smallrye-openapi.auto-add-security=false -Dquarkus.smallrye-openapi.auto-add-security-requirement=false -Dquarkus.smallrye-openapi.enable=true -Dquarkus.smallrye-openapi.info-contact-email=pmbrusoftdev@example.com -Dquarkus.smallrye-openapi.info-contact-name=PM BRU Software Developers -Dquarkus.smallrye-openapi.info-contact-url=https://ihelp.example.com/ -Dquarkus.smallrye-openapi.info-description=myproject REST API -Dquarkus.smallrye-openapi.info-title=myproject REST API -Dquarkus.smallrye-openapi.oauth2-implicit-authorization-url=${myproject.oidc.keycloak.base-url}/realms/${myproject.oidc.keycloak.realm}/protocol/openid-connect/auth -Dquarkus.smallrye-openapi.oauth2-implicit-refresh-url=${myproject.oidc.keycloak.base-url}/realms/${myproject.oidc.keycloak.realm}/protocol/openid-connect/token -Dquarkus.smallrye-openapi.operation-id-strategy=METHOD -Dquarkus.smallrye-openapi.security-scheme=oauth2-implicit -Dquarkus.smallrye-openapi.security-scheme-description=Keycloak Example Company -Dquarkus.smallrye-openapi.security-scheme-name=Keycloak -Dquarkus.ssl.native=true -Dquarkus.swagger-ui.always-include=true -Dquarkus.swagger-ui.deep-linking=true -Dquarkus.swagger-ui.display-operation-id=true -Dquarkus.swagger-ui.enable=true -Dquarkus.swagger-ui.filter=true -Dquarkus.swagger-ui.footer=&copy; 2024 Example Company -Dquarkus.swagger-ui.oauth-client-id=${myproject.oidc.keycloak.client-id} -Dquarkus.swagger-ui.persist-authorization=true -Dquarkus.swagger-ui.show-common-extensions=true -Dquarkus.swagger-ui.show-extensions=true -Dquarkus.swagger-ui.syntax-highlight=false -Dquarkus.swagger-ui.theme=flattop -Dquarkus.swagger-ui.title=myproject REST API -Dquarkus.swagger-ui.validator-url=none @C:\Users\thosap\.gradle\.tmp\gradle-worker-classpath13218257168951770137txt -Xmx512m -Dfile.encoding=UTF-8 -Duser.country=DE -Duser.language=de -Duser.variant worker.org.gradle.process.internal.worker.GradleWorkerMain 'Gradle Worker Daemon 2'
Successfully started process 'Gradle Worker Daemon 2'
Started Gradle worker daemon (0.545 secs) with fork options DaemonForkOptions{executable=C:\GraalVM\graalvm-community-openjdk-21.0.2+13.1\bin\java.exe, minHeapSize=null, maxHeapSize=null, jvmArgs=[], keepAliveMode=SESSION}.

This JVM does not support getting OS memory, so no OS memory status updates will be broadcast

> Task :quarkusAppPartsBuild
Building Quarkus application com.example:myproject:0.0.0-SNAPSHOT
  base name:                   myproject-0.0.0-SNAPSHOT
  target directory:            C:\Users\thosap\Git\myproject\workspace\backend\build
  configured package type:     null
  configured output directory: null
  configured output name:      null
  Gradle version:              8.5
JBoss Threads version 3.5.1.Final

The following extensions have required native-image to allow run-time resolution of classes: {quarkus-jdbc-oracle}. This is a global requirement which might have unexpected effects on other extensions as well, and is a hint of the library needing some additional refactoring to better support GraalVM native-image. In the case of 3rd party dependencies and/or proprietary code there is not much we can do - please ask for support to your library vendor. If you incur in any problem with other Quarkus extensions, please try reproducing the problem without these extensions first.
Unrecognized configuration key "quarkus.kubernetes.ingress.annotations.nginx.ingress.kubernetes.io/http2-push-preload" was provided; it will be ignored; verify that the dependency extension for this configuration is set or that you did not make a typo
Unrecognized configuration key "quarkus.log.category.com.example.level" was provided; it will be ignored; verify that the dependency extension for this configuration is set or that you did not make a typo
Unrecognized configuration key "quarkus.kubernetes.ingress.annotations.nginx.ingress.kubernetes.io/enable-cors" was provided; it will be ignored; verify that the dependency extension for this configuration is set or that you did not make a typo
Unrecognized configuration key "quarkus.log.category.org.jooq.level" was provided; it will be ignored; verify that the dependency extension for this configuration is set or that you did not make a typo
Unrecognized configuration key "quarkus.kubernetes.ingress.annotations.nginx.ingress.kubernetes.io/preserve-trailing-slash" was provided; it will be ignored; verify that the dependency extension for this configuration is set or that you did not make a typo
Unrecognized configuration key "quarkus.log.category.org.jooq.impl.FieldsImpl.use-parent-handlers" was provided; it will be ignored; verify that the dependency extension for this configuration is set or that you did not make a typo
Unrecognized configuration key "quarkus.kubernetes.annotations.app.kubernetes.io/version" was provided; it will be ignored; verify that the dependency extension for this configuration is set or that you did not make a typo
Unrecognized configuration key "quarkus.log.category.io.quarkus.deployment.util.FSWatchUtil.level" was provided; it will be ignored; verify that the dependency extension for this configuration is set or that you did not make a typo
Unrecognized configuration key "quarkus.log.category.org.jooq.impl.FieldsImpl.level" was provided; it will be ignored; verify that the dependency extension for this configuration is set or that you did not make a typo
Unrecognized configuration key "quarkus.log.category.io.quarkiverse.quinoa.QuinoaDevWebSocketProxyHandler.level" was provided; it will be ignored; verify that the dependency extension for this configuration is set or that you did not make a typo
Invalid AnsiLogger Stream -> Swapping to default sdt out logger.
Running Quinoa package manager install command: pnpm install
[WARN] Could not detect project version. Using 'latest'.
Kubernetes manifests are generated with 'The container port http' having provided value '8080'. The app and manifests will get out of sync if the property 'quarkus.http.port' is changed at runtime.
Lockfile is up to date, resolution step is skipped
Packages: +18
++++++++++++++++++

Done in 3.4s

> Task :quarkusAppPartsBuild FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':quarkusAppPartsBuild'.
> There was a failure while executing work items
   > A failure occurred while executing io.quarkus.gradle.tasks.worker.BuildWorker
      > io.quarkus.builder.BuildException: Build failure: Build failed due to errors
                [error]: Build step io.quarkus.deployment.steps.RegisterForReflectionBuildStep#build threw an exception: java.lang.UnsupportedClassVersionError: Preview features are not enabled for com/example/myproject/domain/cube/CubeManifest (class file version 65.65535). Try running with '--enable-preview'
                at java.base/java.lang.ClassLoader.defineClass1(Native Method)
                at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1027)
                at io.quarkus.bootstrap.classloading.QuarkusClassLoader.loadClass(QuarkusClassLoader.java:508)
                at io.quarkus.bootstrap.classloading.QuarkusClassLoader.loadClass(QuarkusClassLoader.java:468)
                at io.quarkus.deployment.steps.RegisterForReflectionBuildStep.registerClass(RegisterForReflectionBuildStep.java:134)
                at io.quarkus.deployment.steps.RegisterForReflectionBuildStep.build(RegisterForReflectionBuildStep.java:77)
                at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
                at java.base/java.lang.reflect.Method.invoke(Method.java:580)
                at io.quarkus.deployment.ExtensionLoader$3.execute(ExtensionLoader.java:849)
                at io.quarkus.builder.BuildContext.run(BuildContext.java:256)
                at org.jboss.threads.ContextHandler$1.runWith(ContextHandler.java:18)
                at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2513)
                at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1538)
                at java.base/java.lang.Thread.run(Thread.java:1583)
                at org.jboss.threads.JBossThread.run(JBossThread.java:501)

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --debug option to get more log output.
> Run with --scan to get full insights.
> Get more help at https://help.gradle.org.

Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0.

You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.

For more on this, please refer to https://docs.gradle.org/8.5/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation.

BUILD FAILED in 16s
5 actionable tasks: 3 executed, 2 up-to-date
Watched directory hierarchies: [C:\Users\thosap\Git\myproject\workspace\backend]
Stopped 1 worker daemon(s).
ThoSap commented 10 months ago

I just tried the same with the newly released OpenJDK 64-Bit Server VM GraalVM CE 21.0.2+13.1 (build 21.0.2+13-jvmci-23.1-b30, mixed mode, sharing), and I get the same result.

If I remove the JEP 430: String Templates from the one class CubeManifest with the annotation @RegisterForReflection, the project compiles fine.

I also use JEP 430: String Templates in other classes, the compile error only appears if JEP 430: String Templates and @RegisterForReflection are combined in one class.

galderz commented 10 months ago

Do you have a standalone reproducer? cc @glefloch @quarkusio/devtools

ThoSap commented 9 months ago

Also adding the following in the build.gradle did not fix the issue. If I find the time I will make a small reproducer.

tasks.withType(io.quarkus.gradle.tasks.QuarkusRun).configureEach {
    jvmArgs += '--enable-preview'
}
gsmet commented 3 months ago

I'm closing this one. Please reopen if you can provide a standalone reproducer.