Skip to content
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

Different behavior in native build using env var in application.properties when build with gradle vs. maven (Quarkus 3.x) #33321

Closed
dagrammy opened this issue May 12, 2023 · 27 comments · Fixed by #33819
Milestone

Comments

@dagrammy
Copy link
Contributor

Describe the bug

Setting a environment variable which is used like quarkus.some.var=${MY_ENV_VAR:defaultValue} in application.properties has no effect when the native image is build with gradle.

The important part is the replacement of MY_ENV_VAR with the set value in the property quarkus.some.var.

This can lead to unexpected behaviour during execution in production because a property does not have the expected value.
The behavior is only reproducible in Quarkus 3.x, but not in Quarkus 2.x.

To describe and reproduce this behavior the following configuration example is used:
quarkus.banner.enabled=${BANNER:false}

Reproducers:
maven -> https://github.com/dagrammy/quarkus-env-reproducer-maven
gradle -> https://github.com/dagrammy/quarkus-env-reproducer-gradle

Expected behavior

Setting the env var BANNER to true before starting the application should show the banner regardless of the build tool used.

Actual behavior

Using maven:
Expected behavior is met, the banner is shown.

Using gradle:
Expected behavior is not met, the banner is NOT shown.

How to Reproduce?

maven -> https://github.com/dagrammy/quarkus-env-reproducer-maven

build it using maven:

unset BANNER 
./mvnw clean package -Pnative

run it without env var:

./target/command-mode-quickstart-1.0.0-SNAPSHOT-runner 

-> header is NOT shown

run it with env var:

export BANNER=true 
./target/command-mode-quickstart-1.0.0-SNAPSHOT-runner 

-> header is shown


gradle -> https://github.com/dagrammy/quarkus-env-reproducer-gradle

build it using gradle:

unset BANNER 
./gradlew clean build -Dquarkus.package.type=native --info

run it without env var:

./build/command-mode-quickstart-gradle-1.0.0-SNAPSHOT-runner 

-> header is NOT shown

run it with env var:

export BANNER=true 
./build/command-mode-quickstart-gradle-1.0.0-SNAPSHOT-runner 

-> header is NOT shown although env var is set

Output of uname -a or ver

Darwin grammy.local 22.3.0 Darwin Kernel Version 22.3.0: Thu Jan 5 20:49:43 PST 2023; root:xnu-8792.81.2~2/RELEASE_ARM64_T8103 arm64

Output of java -version

openjdk version "17.0.5" 2022-10-18 OpenJDK Runtime Environment GraalVM CE 22.3.0 (build 17.0.5+8-jvmci-22.3-b08) OpenJDK 64-Bit Server VM GraalVM CE 22.3.0 (build 17.0.5+8-jvmci-22.3-b08, mixed mode, sharing)

GraalVM version (if different from Java)

No response

Quarkus version or git rev

3.0.3

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

Apache Maven 3.8.6 / Gradle 7.5.1

Additional information

No response

@dagrammy dagrammy added the kind/bug Something isn't working label May 12, 2023
@quarkus-bot
Copy link

quarkus-bot bot commented May 12, 2023

/cc @glefloch, @quarkusio/devtools (maven)

@maxandersen
Copy link
Contributor

I don't know for sure if this PR is the cause but I recall it not looking right as priorities of config seem to have changed.

#32662 (comment)

@aloubyansky @Eng-Fouad wdyt?

@ThoSap
Copy link

ThoSap commented May 17, 2023

I experience the very same issue with for example the Agroal environment variable QUARKUS_DATASOURCE__DATASOURCE_NAME__PASSWORD with Quarkus 3.0.3.Final, but this happens for all env vars and I'm also using Gradle as the build tool in my project.

In the QUARKUS_DATASOURCE__DATASOURCE_NAME__PASSWORD I have a $ inside the password (yes I know this really sucks), which I correctly escaped with \$ in bash and $$ in YAML files (application.yml, values.yaml of the HELM chart or the final generated deployment.yml of the Helm chart), which worked perfectly fine before with Quarkus 2.16.7.Final

As a workaround, I currently use the system properties as a command in the K8s Deployment e.g.

          command:
            - ./application
          args:
            - '-Dquarkus.http.host=0.0.0.0'
            # no $$ escape is needed here as the YAML string is enclosed in ' '
            - '-Dquarkus.datasource.customdatasource.password=SECRET$PW'

Output of java -version

My GraalVM native-image builds are done on Windows 11 22H2 22621.1702 using https://github.com/graalvm/graalvm-ce-builds/releases/tag/vm-22.3.2 and in the CI with builder Docker image quay.io/quarkus/ubi-quarkus-graalvmce-builder-image:22.3.2-java17

openjdk version "17.0.7" 2023-04-18
OpenJDK Runtime Environment GraalVM CE 22.3.2 (build 17.0.7+7-jvmci-22.3-b18)
OpenJDK 64-Bit Server VM GraalVM CE 22.3.2 (build 17.0.7+7-jvmci-22.3-b18, mixed mode, sharing)

Quarkus version or git rev

3.0.3.Final

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

The build is started with ./gradlew build -Dquarkus.package.type=native both on Windows and the multi-stage Dockerfile with the quay.io/quarkus/ubi-quarkus-graalvmce-builder-image:22.3.2-java17 Docker builder image

Gradle 8.1.1
Build time:   2023-04-21 12:31:26 UTC
Revision:     1cf537a851c635c364a4214885f8b9798051175b

Extensions used in build.gradle

dependencies {
    /*
     * Quarkus
     */
    implementation enforcedPlatform("${quarkusPlatformGroupId}:${quarkusPlatformArtifactId}:${quarkusPlatformVersion}")
    implementation 'io.quarkus:quarkus-agroal'
    implementation 'io.quarkus:quarkus-arc'
    implementation 'io.quarkus:quarkus-config-yaml'
    implementation 'io.quarkus:quarkus-grpc'
    implementation 'io.quarkus:quarkus-jdbc-oracle'
    implementation 'io.quarkus:quarkus-kubernetes'
    implementation 'io.quarkus:quarkus-micrometer-registry-prometheus'
    implementation 'io.quarkus:quarkus-oidc'
    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:1.18.26"
    annotationProcessor "org.projectlombok:lombok:1.18.26"

    /*
     * Guava
     */
    implementation "com.google.guava:guava:31.1-jre"

    /*
     * Protobuf Utils
     */
    implementation "com.google.protobuf:protobuf-java-util:3.22.0"

    /*
     * Quarkus Helm Runtime
     */
    implementation "io.quarkiverse.helm:quarkus-helm:1.0.7"

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

@MarkusKramer
Copy link

I'm also seeing a similar issue. I have in my application.properties

db.host=localhost
db.port=5432
db.name=postgres
db.schema=public
quarkus.datasource.jdbc.url=jdbc:postgresql://${db.host}:${db.port}/${db.name}
quarkus.datasource.reactive.url=postgresql://${db.host}:${db.port}/${db.name}?search_path=${db.schema}

Previously (Quarkus 2.x) I could set the db host by setting an environment variable "DB_HOST=something".

On Quarkus 3.0.3 when running as native image this no longer works (jvm mode works). Instead it always tried to connect to localhost.

@dagrammy
Copy link
Contributor Author

@MarkusKramer That is exactly the problem. In native builds with gradle, the environment variables are not resolved correctly with Quarkus 3.0.x.

@maxandersen I took a look at the PR you mentioned. Doesn't this change only affect quarkus dev mode? Are there perhaps other parts of the code that I could take a look at?

@ThoSap
Copy link

ThoSap commented May 22, 2023

This issue may be a regression of the following PRs:

@ThoSap
Copy link

ThoSap commented May 23, 2023

@snazy

@ThoSap
Copy link

ThoSap commented May 25, 2023

@geoand @zakkak sorry to tag you, do you have an idea why this happens?

@geoand
Copy link
Contributor

geoand commented May 25, 2023

cc @radcortez

@radcortez
Copy link
Member

Might be related with #31166. At least there was a big change around how Config is used in Gradle in that PR. Needs further investigation.

@dagrammy
Copy link
Contributor Author

@radcortez Thanks for your link! I looked I looked through the PR and came across an interesting section that I thought may have something to do with the problem.

https://github.com/quarkusio/quarkus/blob/main/devtools/gradle/gradle-application-plugin/src/main/java/io/quarkus/gradle/tasks/QuarkusTask.java#L96

This "very big hammer" (as the code is described in the comment) seems to be a bit too big. 😅

I commented out the code block...

 configMap.entrySet().stream().filter(e -> e.getKey().startsWith("quarkus."))
   .forEach(e -> forkOptions.systemProperty(e.getKey(), e.getValue()));

...and it worked!

As the comment describes, there is a reason for this code block. But this statement causes that no quarkus.* property can be set or overwritten in the way described above (quarkus.banner.enabled=${BANNER:false}) when building native with gradle.

@snazy Wdyt?

@maxandersen
Copy link
Contributor

Good find. The Big hammer does seems to go against what the pr describes - that config sources should now be correct incl. using env variables.

Does feel Like its too Big a hammer.

@snazy
Copy link
Contributor

snazy commented May 29, 2023

Ouch.

I suspect, this "big hammer" needs to be restricted to only "override" the (build time) properties that are explicitly configured via the Gradle build (so System properties set for the Gradle build, Gradle project properties, properties on the Quarkus Gradle extension, and the properties "forced" from some tasks. That would leave other configs (like the "banner enabled" one) untouched.

@maxandersen
Copy link
Contributor

Isn't env vars supposed to override any build file settings ?

@snazy
Copy link
Contributor

snazy commented May 29, 2023

Isn't env vars supposed to override any build file settings ?

The issue is that the config settings are (now) evaluated, so the currently effective value's used - not the value "expression".

@dagrammy
Copy link
Contributor Author

Thank you @snazy for your input and evaluation.

If I understand it correctly, not all but only the following (-> YES/NO) configurations should be set.

see https://github.com/quarkusio/quarkus/blob/main/devtools/gradle/gradle-application-plugin/src/main/java/io/quarkus/gradle/tasks/EffectiveConfig.java#L53

// Effective "ordinals" for the config sources:
// (see also https://quarkus.io/guides/config-reference#configuration-sources)
// 600 -> forcedProperties -> YES
// 500 -> taskProperties -> YES?
// 400 -> System.getProperties() -> NO? (because already set?)
// 300 -> System.getenv() -> NO?  (because already present?)
// 290 -> quarkusBuildProperties -> YES
// 280 -> projectProperties -> YES
// 250 -> application.(properties|yaml|yml) (in classpath/source) -> NO
// 100 -> microprofile.properties (in classpath/source) -> NO

But what I still don't understand respectively haven't found out. Why does it only affect the native build?

@ThoSap
Copy link

ThoSap commented May 30, 2023

If you find a fix for this issue, will there be a Quarkus 3.0.5.Final or 3.1.1.Final bugfix version?
Waiting until 3.2.0.Final releases on June 21st is probably not an option for some people.

@dagrammy
Copy link
Contributor Author

dagrammy commented Jun 5, 2023

After long hours over the past few days looking at the code and trying various approaches, here is a PR trying to solve the problem while maintaining the expected behaviour of the gradle build.

This PR changes/restricts which properties are passed to the gradle worker process as system properties.

Instead of all properties, only the following properties are passed now:

  • quarkus.package.*
  • quarkus.application.*
  • quarkus.gradle-worker.*

These properties are important so the gradle worker processes uses the correct outpur directory, package type (jar, native image,...).

Keep in mind, that this only affects properties passed to the gradle worker process. To build the actual artifact (e.g. jar, native image) all properties are used.

This PR fixes #33321.
Locally all gradle unit & integration test are executed successfully.

I would appreciate feedback and review of the PR. @snazy @maxandersen @radcortez

@maxandersen
Copy link
Contributor

Is this not different from how maven build are done?

If different. Is it expected ? Should maven be adjusted too to get consistency?

@aloubyansky

@snazy
Copy link
Contributor

snazy commented Jun 7, 2023

@maxandersen Maven and Grade differ here. The reason is that the Gradle build always defined a way to pass properties from "more sources" like the Gradle task configuration or Gradle project properties. Further the Gradle build has to respect that Quarkus build can happen in parallel - so using/modifying System properties and env vars isn't an option. That made it necessary to evaluate and re-assemble the properties for a particular Gradle build "again".
The issue here is that users can set any property, not just quarkus.* properties via e.g. the Gradle Quarkus tasks.

While I think that #33819 is good for now, the long term fix should probably be a bit different. I suspect, the EffectiveConfig approach is good to let the Quarkus Gradle plugin check "its own" settings.

  • Ideally, all relevant settings should be passed to the build worker(s) - "relevant" means configurations, that come from a higher-priority config-source than microprofile/application.properties/yaml
  • Pass "config expressions" as they are and not evaluate those "prematurely" (e.g. quarkus.enable.foo=${foo.enabled}) - not sure whether this would still be an issue with the above bullet point implemented (aka I don't know whether a system property quarkus.enable.foo=${foo.enabled} would be indirectly evaluate foo.enabled).

(Apologies for the late reply to some issues/PRs, been quite busy with "my main work stuff".)

@quarkus-bot quarkus-bot bot added this to the 3.2 - main milestone Jun 8, 2023
@gsmet gsmet modified the milestones: 3.2 - main, 3.1.2.Final Jun 14, 2023
benkard pushed a commit to benkard/quarkus-googlecloud-jsonlogging that referenced this issue Jun 18, 2023
…quarkus-googlecloud-jsonlogging!16)

This MR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [io.quarkus:quarkus-extension-processor](https://github.com/quarkusio/quarkus) |  | patch | `3.1.1.Final` -> `3.1.2.Final` |
| [io.quarkus:quarkus-extension-maven-plugin](https://github.com/quarkusio/quarkus) | build | patch | `3.1.1.Final` -> `3.1.2.Final` |
| [io.quarkus:quarkus-maven-plugin](https://github.com/quarkusio/quarkus) | build | patch | `3.1.1.Final` -> `3.1.2.Final` |
| [io.quarkus:quarkus-bom](https://github.com/quarkusio/quarkus) | import | patch | `3.1.1.Final` -> `3.1.2.Final` |

---

### Release Notes

<details>
<summary>quarkusio/quarkus</summary>

### [`v3.1.2.Final`](https://github.com/quarkusio/quarkus/releases/tag/3.1.2.Final)

[Compare Source](quarkusio/quarkus@3.1.1.Final...3.1.2.Final)

##### Complete changelog

-   [#&#8203;34041](quarkusio/quarkus#34041) - Fix endpoint address in the OpenShift guide
-   [#&#8203;34039](quarkusio/quarkus#34039) - Cleanup after REST Client multipart request
-   [#&#8203;34028](quarkusio/quarkus#34028) - Revert Liquibase to 4.20
-   [#&#8203;34024](quarkusio/quarkus#34024) - Avoid indefinite Uni wait in OIDC recorders
-   [#&#8203;34020](quarkusio/quarkus#34020) - Ensure Panache class transformers run before Arc's static method transformers
-   [#&#8203;34014](quarkusio/quarkus#34014) - Fix resolving custom ObjectMapper at deserialization in Resteasy Reactive
-   [#&#8203;34012](quarkusio/quarkus#34012) - Revert Liquibase to v4.20.0
-   [#&#8203;34008](quarkusio/quarkus#34008) - RESTEasy Reactive: ContextResolver<ObjectMapper> not called/used
-   [#&#8203;34005](quarkusio/quarkus#34005) - Panache tries to (and fails to) transform classes even if disabled
-   [#&#8203;34003](quarkusio/quarkus#34003) - ArC: fix InvocationContext#setParameters()
-   [#&#8203;34001](quarkusio/quarkus#34001) - AroundInvoke Interceptors can only modify parameters if first in chain
-   [#&#8203;33993](quarkusio/quarkus#33993) - Quarkus startup hangs in OidcRecorder
-   [#&#8203;33988](quarkusio/quarkus#33988) - Fix minor grammar mistake in config-reference.adoc
-   [#&#8203;33986](quarkusio/quarkus#33986) - Resource leak: Multipart HTTP-Requests leave Attr\_ temporary files not deleted
-   [#&#8203;33983](quarkusio/quarkus#33983) - Make sure our recipes are visible as a dependency when updating
-   [#&#8203;33978](quarkusio/quarkus#33978) - Generated docs should generate mvn create app command with Quarkus version and not stream version
-   [#&#8203;33971](quarkusio/quarkus#33971) - Protect include/exclude test commands against NPE
-   [#&#8203;33970](quarkusio/quarkus#33970) - Qute: skip generation of resources if a validation error occurs
-   [#&#8203;33968](quarkusio/quarkus#33968) - Update to Vert.x 4.4.3 and Netty 4.1.93.Final
-   [#&#8203;33966](quarkusio/quarkus#33966) - Quarkus crashing with dev-mode with Qute (on a specific situation)
-   [#&#8203;33965](quarkusio/quarkus#33965) - Don't include startup probe for KNative manifests
-   [#&#8203;33962](quarkusio/quarkus#33962) - Use JavaBinFinder when launching decompiler
-   [#&#8203;33961](quarkusio/quarkus#33961) - :dev terminal test commands don't work anymore (testSupport.include is null)
-   [#&#8203;33958](quarkusio/quarkus#33958) - Replace IfBuildProfile in UnlessBuildProfile javadoc
-   [#&#8203;33954](quarkusio/quarkus#33954) - UnlessBuildProfile Annotation Javadoc
-   [#&#8203;33948](quarkusio/quarkus#33948) - Manage org.glassfish.jaxb:txw2 at the same version as jaxb-core and jaxb-runtime
-   [#&#8203;33944](quarkusio/quarkus#33944) - Kubernetes + Smallrye Health Extensions: Knative deployment fails due to presence of startupProbe
-   [#&#8203;33940](quarkusio/quarkus#33940) - Manage net.java.dev.jna:jna-platform at the same version as net.java.dev.jna:jna
-   [#&#8203;33939](quarkusio/quarkus#33939) - Downgrade `maven-shade-plugin` to 3.2.1
-   [#&#8203;33934](quarkusio/quarkus#33934) - Bump SmallRye GraphQL to 2.2.1
-   [#&#8203;33930](quarkusio/quarkus#33930) - Decompiler fails when there's no java in path
-   [#&#8203;33912](quarkusio/quarkus#33912) - Bump Vert.x Mutiny Bindings to version 3.4.2
-   [#&#8203;33910](quarkusio/quarkus#33910) - Change redirection from /q/dev to /q/dev-ui to be FOUND instead of MOVED_PERMANENTLY
-   [#&#8203;33904](quarkusio/quarkus#33904) - Gradle plugin "confused" with parent-first vs removed vs optional artifacts
-   [#&#8203;33903](quarkusio/quarkus#33903) - ArC: beans injected into All List injection points should be unremovable
-   [#&#8203;33901](quarkusio/quarkus#33901) - Gradle-plugin: properly handle read-only files
-   [#&#8203;33893](quarkusio/quarkus#33893) - Bump jboss-logging from 3.5.0.Final to 3.5.1.Final
-   [#&#8203;33891](quarkusio/quarkus#33891) - Bump mariadb-java-client from 3.1.3 to 3.1.4
-   [#&#8203;33884](quarkusio/quarkus#33884) - Quarkus 3.1.1 causes Npe when using configinterceptor
-   [#&#8203;33878](quarkusio/quarkus#33878) - Upgrade to Maven 3.9.2 and Maven resolver 1.9.10
-   [#&#8203;33873](quarkusio/quarkus#33873) - Launch Liquibase and Flyway operations only when Arc is ready
-   [#&#8203;33872](quarkusio/quarkus#33872) - Add more documentation to `@RestHeader`
-   [#&#8203;33870](quarkusio/quarkus#33870) - Gradle plugin does not copy all files correctly, when having parent-first-artifacts
-   [#&#8203;33867](quarkusio/quarkus#33867) - Upgrade smallrye-health to 4.0.2
-   [#&#8203;33861](quarkusio/quarkus#33861) - Name resolution fails with `@RestHeader` annotation under certain condition
-   [#&#8203;33843](quarkusio/quarkus#33843) - AppCDS failed if mongodb-liquibase extension present
-   [#&#8203;33842](quarkusio/quarkus#33842) - AppCDS generation failed with `Permission denied`
-   [#&#8203;33841](quarkusio/quarkus#33841) - ArC: fix some scenarios with generic decorators
-   [#&#8203;33825](quarkusio/quarkus#33825) - smallrye-graphql-cdi triggers "Detected bean archive with bean discovery mode of 'all'" warning
-   [#&#8203;33824](quarkusio/quarkus#33824) - Replace references of s2i with openshift
-   [#&#8203;33819](quarkusio/quarkus#33819) - Restrict properties passed to gradle worker processes
-   [#&#8203;33803](quarkusio/quarkus#33803) - Generic CDI Decorator Throws java.lang.NoSuchMethodError
-   [#&#8203;33781](quarkusio/quarkus#33781) - Check if OIDC user-info-path is configured when UserInfo is required
-   [#&#8203;33772](quarkusio/quarkus#33772) - OIDC code authorization flow misleading error in some OAuth2 configurations
-   [#&#8203;33679](quarkusio/quarkus#33679) - Vert.X bump to 4.4.2 lead to `domain socket must not be empty` exception when used with Quarkus Micrometer extension
-   [#&#8203;33658](quarkusio/quarkus#33658) - redirect of /q/dev too permanent?
-   [#&#8203;33469](quarkusio/quarkus#33469) - Fix detection of project root in Quarkus CLI
-   [#&#8203;33402](quarkusio/quarkus#33402) - Extension provided plugins are not automatically added if plugin catalog is missing
-   [#&#8203;33333](quarkusio/quarkus#33333) - Use the container-provided settings decrypter
-   [#&#8203;33321](quarkusio/quarkus#33321) - Different behavior in native build using env var in application.properties when build with gradle vs. maven (Quarkus 3.x)
-   [#&#8203;33220](quarkusio/quarkus#33220) - Maven proxy usage is broken with Quarkus 3.0.2.Final
-   [#&#8203;33024](quarkusio/quarkus#33024) - Error trailers are not propagated when using new Vert.x gRPC support
-   [#&#8203;30811](quarkusio/quarkus#30811) - CDI Decorator ignored for beans implementing interface extending other generic interface

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever MR is behind base branch, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this MR and you won't be reminded about these updates again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box

---

This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC4yNC4wIiwidXBkYXRlZEluVmVyIjoiMzQuMjQuMCJ9-->
benkard added a commit to benkard/mulkcms2 that referenced this issue Aug 7, 2023
This MR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [io.quarkus:quarkus-maven-plugin](https://github.com/quarkusio/quarkus) | build | major | `2.16.7.Final` -> `3.2.3.Final` |
| [io.quarkus:quarkus-universe-bom](https://github.com/quarkusio/quarkus-platform) | import | major | `2.16.7.Final` -> `3.2.3.Final` |

---

### Release Notes

<details>
<summary>quarkusio/quarkus</summary>

### [`v3.2.3.Final`](https://github.com/quarkusio/quarkus/releases/tag/3.2.3.Final)

[Compare Source](https://github.com/quarkusio/quarkus/compare/3.2.2.Final...3.2.3.Final)

##### Complete changelog

-   [#&#8203;35131](https://github.com/quarkusio/quarkus/pull/35131) - Unlist Security JPA Common
-   [#&#8203;35130](https://github.com/quarkusio/quarkus/pull/35130) - Also support Universe BOM
-   [#&#8203;35129](https://github.com/quarkusio/quarkus/pull/35129) - Support user methods with `@Transactional` in REST Data with Panache ORM
-   [#&#8203;35120](https://github.com/quarkusio/quarkus/pull/35120) - Upgrade to Hibernate Search 6.2.0.Final in Quarkus 3.2
-   [#&#8203;35119](https://github.com/quarkusio/quarkus/pull/35119) - Properly resolve `@TestProfile` when using nested tests in base classes
-   [#&#8203;35114](https://github.com/quarkusio/quarkus/pull/35114) - Keep META-INF/MANIFEST.MF in the bootstrap Gradle resolver artifact
-   [#&#8203;35112](https://github.com/quarkusio/quarkus/pull/35112) - Testing - fix MockitoConfig(convertScopes = true)
-   [#&#8203;35107](https://github.com/quarkusio/quarkus/issues/35107) - User methods requiring a transaction in Hibernate ORM does not work for interfaces of Panache REST Data extension
-   [#&#8203;35104](https://github.com/quarkusio/quarkus/issues/35104) - `@Nested` tests in a superclass do not work with test profiles
-   [#&#8203;35101](https://github.com/quarkusio/quarkus/pull/35101) - Docs: fix typo in duplicated context guide
-   [#&#8203;35087](https://github.com/quarkusio/quarkus/pull/35087) - Take into account container element constraints in config mapping validation
-   [#&#8203;35081](https://github.com/quarkusio/quarkus/issues/35081) - Email validator on collection element not found after upgrade to Quarkus 3
-   [#&#8203;35080](https://github.com/quarkusio/quarkus/issues/35080) - Mocking Singleton does not work even when using  `@MockitoConfig`(convertScopes = true)
-   [#&#8203;35067](https://github.com/quarkusio/quarkus/pull/35067) - Set analytics filter logs to debug
-   [#&#8203;35061](https://github.com/quarkusio/quarkus/pull/35061) - Fix join message in websocket quickstart
-   [#&#8203;35060](https://github.com/quarkusio/quarkus/pull/35060) - Add clear error message when Reactive REST Client used outside of Quarkus
-   [#&#8203;35059](https://github.com/quarkusio/quarkus/pull/35059) - Stylistic Loggin guide tweaks
-   [#&#8203;35057](https://github.com/quarkusio/quarkus/pull/35057) - Update graal-sdk to 23.0.1 to enable Java 11 compatibility
-   [#&#8203;35054](https://github.com/quarkusio/quarkus/issues/35054) - Upgrade graal-sdk version to 23.0.1
-   [#&#8203;35040](https://github.com/quarkusio/quarkus/pull/35040) - Fix Keycloak token address in OIDC DevUI script
-   [#&#8203;35029](https://github.com/quarkusio/quarkus/issues/35029) - Keycloak dev services uses wrong token url for client_credentials grant type
-   [#&#8203;35022](https://github.com/quarkusio/quarkus/pull/35022) - Fixing and adding missing abstracts in the Logging guide
-   [#&#8203;35015](https://github.com/quarkusio/quarkus/pull/35015) - Limit `List` transformation in Spring DI module
-   [#&#8203;35013](https://github.com/quarkusio/quarkus/pull/35013) - Fix sidecars resource requirements properties in Kubernetes
-   [#&#8203;35011](https://github.com/quarkusio/quarkus/issues/35011) - `@ConfigProperty` injection semantics change when `quarkus-spring-di` is present and `@Inject` is used (regression in Quarkus 3)
-   [#&#8203;35009](https://github.com/quarkusio/quarkus/pull/35009) - Upgrade to SmallRye Fault Tolerance 6.2.6
-   [#&#8203;35006](https://github.com/quarkusio/quarkus/issues/35006) - quarkus-kubernetes Extension ignores multiple sidecars properties
-   [#&#8203;35005](https://github.com/quarkusio/quarkus/pull/35005) - Fix OIDC token verification failure message
-   [#&#8203;34999](https://github.com/quarkusio/quarkus/pull/34999) - Allow to exclude classes in REST Data with Panache with annotations
-   [#&#8203;34997](https://github.com/quarkusio/quarkus/pull/34997) - Document HttpServerOptionsCustomizer
-   [#&#8203;34994](https://github.com/quarkusio/quarkus/pull/34994) - OIDC UserInfo request must not be made if the token verification fails
-   [#&#8203;34993](https://github.com/quarkusio/quarkus/issues/34993) - OIDC UserInfo endpoint is called even if the token verification fails
-   [#&#8203;34992](https://github.com/quarkusio/quarkus/issues/34992) - Document usage of `HttpServerOptionsCustomizer`
-   [#&#8203;34991](https://github.com/quarkusio/quarkus/pull/34991) - Upgrade to Hibernate ORM 6.2.7.Final and Hibernate Reactive 2.0.4.Final
-   [#&#8203;34987](https://github.com/quarkusio/quarkus/pull/34987) - Ensure Kubernetes manifests are generated in the project location
-   [#&#8203;34986](https://github.com/quarkusio/quarkus/issues/34986) - Quarkus is affected by criteria query issue in Hibernate
-   [#&#8203;34952](https://github.com/quarkusio/quarkus/pull/34952) - Logging configuration stylistic review
-   [#&#8203;34951](https://github.com/quarkusio/quarkus/pull/34951) - Improve Javadoc of `@CustomSerialization`
-   [#&#8203;34948](https://github.com/quarkusio/quarkus/pull/34948) - Apply JavaPlugin on the deployment project
-   [#&#8203;34945](https://github.com/quarkusio/quarkus/pull/34945) - Fix Openshift deployments when using a custom output directory
-   [#&#8203;34944](https://github.com/quarkusio/quarkus/pull/34944) - Backport: Add option to produce PIE native binaries
-   [#&#8203;34938](https://github.com/quarkusio/quarkus/issues/34938) - `@UnlessBuildProperty` is ignored on PanacheEntityResource
-   [#&#8203;34936](https://github.com/quarkusio/quarkus/pull/34936) - Update RabbitMQ DevServices container to 3.12
-   [#&#8203;34917](https://github.com/quarkusio/quarkus/pull/34917) - Fix issue of e.getCause() returns null
-   [#&#8203;34906](https://github.com/quarkusio/quarkus/pull/34906) - Allow the use of HTTP2 in programmatically created REST Client
-   [#&#8203;34904](https://github.com/quarkusio/quarkus/pull/34904) - Dev UI Scheduler: Fix screen height
-   [#&#8203;34896](https://github.com/quarkusio/quarkus/issues/34896) - Quarkus resteasy-reactive (RestClientBuilder) HTTP2
-   [#&#8203;34894](https://github.com/quarkusio/quarkus/pull/34894) - Upgrade logstash-gelf to 1.15.1 and add it to dependabot
-   [#&#8203;34886](https://github.com/quarkusio/quarkus/pull/34886) - Fix http.route tracing attribute reporting
-   [#&#8203;34860](https://github.com/quarkusio/quarkus/pull/34860) - Proper ordering of the handlers chapters and addition of some examples in the Logging guide
-   [#&#8203;34857](https://github.com/quarkusio/quarkus/pull/34857) - Make sure links starting with attributes are identifiable
-   [#&#8203;34827](https://github.com/quarkusio/quarkus/issues/34827) - `quarkus.kubernetes.output-directory` is not (always) relative to project location
-   [#&#8203;34826](https://github.com/quarkusio/quarkus/pull/34826) - Fix build analytics documentation - payload example
-   [#&#8203;34778](https://github.com/quarkusio/quarkus/issues/34778) - Observability for HTTP Server - when http route is / then attribute 'http.route' is not sent
-   [#&#8203;34737](https://github.com/quarkusio/quarkus/pull/34737) - Avoid ambiguous use of 'Panache' in 'Logging with Panache'
-   [#&#8203;34703](https://github.com/quarkusio/quarkus/issues/34703) - Ignored projects also ask about build analytics
-   [#&#8203;34673](https://github.com/quarkusio/quarkus/issues/34673) - Openshift extension does not see kubernetes resources in custom location
-   [#&#8203;34671](https://github.com/quarkusio/quarkus/pull/34671) - Hibernate Reactive Panache: open session on demand for repositories
-   [#&#8203;34615](https://github.com/quarkusio/quarkus/pull/34615) - Bump h2 from 2.1.214 to 2.2.220 in /bom/application
-   [#&#8203;34542](https://github.com/quarkusio/quarkus/pull/34542) - Fix user methods requiring a session in Panache REST Data with Reactive
-   [#&#8203;34511](https://github.com/quarkusio/quarkus/pull/34511) - Duplicated context concept guide
-   [#&#8203;34432](https://github.com/quarkusio/quarkus/issues/34432) - User methods requiring a session in Hibernate Reactive does not work for interfaces of Panache REST Data extension
-   [#&#8203;34359](https://github.com/quarkusio/quarkus/pull/34359) - Add a section about MDC to the logging documentation

### [`v3.2.2.Final`](https://github.com/quarkusio/quarkus/releases/tag/3.2.2.Final)

[Compare Source](https://github.com/quarkusio/quarkus/compare/3.2.1.Final...3.2.2.Final)

##### Complete changelog

-   [#&#8203;34882](https://github.com/quarkusio/quarkus/pull/34882) - Revert to openjdk-17-runtime:1.16 images
-   [#&#8203;34881](https://github.com/quarkusio/quarkus/issues/34881) - Quarkus 3.2.1 openjdk base image tag
-   [#&#8203;34874](https://github.com/quarkusio/quarkus/pull/34874) - Properly return HTTP 406 on invalid Accept header
-   [#&#8203;34859](https://github.com/quarkusio/quarkus/pull/34859) - Remove false positive warning about quarkus.launch.rebuild
-   [#&#8203;34858](https://github.com/quarkusio/quarkus/issues/34858) - Treat incorrect Accept header as a user error
-   [#&#8203;34856](https://github.com/quarkusio/quarkus/pull/34856) - Fix unrecognised property
-   [#&#8203;34832](https://github.com/quarkusio/quarkus/pull/34832) - Bump io.smallrye.config:smallrye-config-source-yaml from 3.3.0 to 3.3.2 in /devtools/gradle
-   [#&#8203;34825](https://github.com/quarkusio/quarkus/issues/34825) - quarkus.analytics.uri.base unrecognized by build time analytics
-   [#&#8203;34815](https://github.com/quarkusio/quarkus/issues/34815) - Unrecognized configuration key "quarkus.launch.rebuild" reported when re-augmenting the application
-   [#&#8203;34814](https://github.com/quarkusio/quarkus/pull/34814) - Update SmallRye Config to 3.3.2
-   [#&#8203;34805](https://github.com/quarkusio/quarkus/pull/34805) - Fix container builds when explicitly setting `container-runtime`
-   [#&#8203;34725](https://github.com/quarkusio/quarkus/issues/34725) - Native image building fails when using podman
-   [#&#8203;34722](https://github.com/quarkusio/quarkus/pull/34722) - Make Snappy optional in JVM mode
-   [#&#8203;34699](https://github.com/quarkusio/quarkus/pull/34699) - Documenting a possibility to store transaction logs to a database
-   [#&#8203;34670](https://github.com/quarkusio/quarkus/issues/34670) - Make loading Snappy truly optional
-   [#&#8203;34631](https://github.com/quarkusio/quarkus/pull/34631) - Allow reauthentication if the OIDC state cookie is not matched
-   [#&#8203;34630](https://github.com/quarkusio/quarkus/issues/34630) - Make OIDC state handling more flexible

### [`v3.2.1.Final`](https://github.com/quarkusio/quarkus/releases/tag/3.2.1.Final)

[Compare Source](https://github.com/quarkusio/quarkus/compare/3.2.0.Final...3.2.1.Final)

##### Major changes

-   [#&#8203;34662](https://github.com/quarkusio/quarkus/pull/34662) - Add OpenAPI to management interface if enabled, with option to exclude

##### Complete changelog

-   [#&#8203;34809](https://github.com/quarkusio/quarkus/pull/34809) - Fix path segment handling of encoded values
-   [#&#8203;34804](https://github.com/quarkusio/quarkus/pull/34804) - Encode multi char code points correctly in RestEasy Reactive
-   [#&#8203;34802](https://github.com/quarkusio/quarkus/pull/34802) - Fail when GraalVM / Mandrel version detection fails
-   [#&#8203;34795](https://github.com/quarkusio/quarkus/pull/34795) - Discover all the project modules from all the Maven profiles by default
-   [#&#8203;34794](https://github.com/quarkusio/quarkus/pull/34794) - Improve jar resources' release robustness
-   [#&#8203;34789](https://github.com/quarkusio/quarkus/pull/34789) - Avoid race condition on adding content-length header
-   [#&#8203;34787](https://github.com/quarkusio/quarkus/issues/34787) - Quarkus Maven plugin is unable to resolve local deps when generating code tests
-   [#&#8203;34783](https://github.com/quarkusio/quarkus/pull/34783) - Stork - Removing out of date content and link upstream documentation
-   [#&#8203;34775](https://github.com/quarkusio/quarkus/pull/34775) - DevMojo warnIfBuildGoalMissing parameter to be able to supress the warning about missing build goal
-   [#&#8203;34774](https://github.com/quarkusio/quarkus/pull/34774) - Fixed workspace loading in dev mode when POM manipulaing plugins store POM files outside project directories
-   [#&#8203;34773](https://github.com/quarkusio/quarkus/pull/34773) - Add another hint how to decrease OIDC session cookie size
-   [#&#8203;34772](https://github.com/quarkusio/quarkus/pull/34772) - Remove token customizer from OIDC Microsoft provider
-   [#&#8203;34764](https://github.com/quarkusio/quarkus/issues/34764) - Quarkus Maven Plugin doubles up the /target folder when used with Flatten Plugin
-   [#&#8203;34753](https://github.com/quarkusio/quarkus/pull/34753) - Fix null logger
-   [#&#8203;34752](https://github.com/quarkusio/quarkus/pull/34752) - Align Vert.x version in RESTEasy Reactive with Quarkus
-   [#&#8203;34746](https://github.com/quarkusio/quarkus/pull/34746) - Properly implement redirection in REST Client for 307 responses
-   [#&#8203;34743](https://github.com/quarkusio/quarkus/pull/34743) - OIDC DEV UI - small alignment and width adjustments
-   [#&#8203;34739](https://github.com/quarkusio/quarkus/pull/34739) - Move DevUI Config resolution to Runtime
-   [#&#8203;34732](https://github.com/quarkusio/quarkus/issues/34732) - `ID token verification has failed: null` after upgrade from 3.1.0 -> 3.2.0
-   [#&#8203;34729](https://github.com/quarkusio/quarkus/issues/34729) - CVE-2023-2974 is reported in quarkus-core which does not allow our pipeline to complete
-   [#&#8203;34726](https://github.com/quarkusio/quarkus/pull/34726) - ArC: improve documentation on supported CDI features and limitations
-   [#&#8203;34720](https://github.com/quarkusio/quarkus/pull/34720) - Support serialization of class fields with Jackson in native
-   [#&#8203;34717](https://github.com/quarkusio/quarkus/issues/34717) - Failed to execute goal io.quarkus.platform:quarkus-maven-plugin:3.2.0.Final:generate-code
-   [#&#8203;34709](https://github.com/quarkusio/quarkus/pull/34709) - Support `@ConfigMapping` inheritance doc generation
-   [#&#8203;34707](https://github.com/quarkusio/quarkus/pull/34707) - Remove a class that wasn't meant to be added
-   [#&#8203;34702](https://github.com/quarkusio/quarkus/pull/34702) - Properly populate metrics uri in presence of auth failures
-   [#&#8203;34694](https://github.com/quarkusio/quarkus/issues/34694) - ClassSerializer missing its default no arg constructor in native mode
-   [#&#8203;34689](https://github.com/quarkusio/quarkus/pull/34689) - Ban only unavailable config services when initializing config in CodeGenerator
-   [#&#8203;34685](https://github.com/quarkusio/quarkus/pull/34685) - Allow override of dev services props by integration test extensions
-   [#&#8203;34683](https://github.com/quarkusio/quarkus/pull/34683) - Docfix: create multiple named reactive datasources is supported
-   [#&#8203;34682](https://github.com/quarkusio/quarkus/pull/34682) - Upgrade Hibernate Reactive to 2.0.3.Final
-   [#&#8203;34678](https://github.com/quarkusio/quarkus/pull/34678) - Don't mask deployment target from the CLI
-   [#&#8203;34675](https://github.com/quarkusio/quarkus/issues/34675) - quarkus deploy --openshift ignores quarkus.openshift.deployment-kind=Deployment
-   [#&#8203;34665](https://github.com/quarkusio/quarkus/pull/34665) - Docs: fix example snippet for VertxContextSupport
-   [#&#8203;34662](https://github.com/quarkusio/quarkus/pull/34662) - Add OpenAPI to management interface if enabled, with option to exclude
-   [#&#8203;34661](https://github.com/quarkusio/quarkus/pull/34661) - Bump sshd-common from 2.9.2 to 2.10.0 in /bom/application
-   [#&#8203;34658](https://github.com/quarkusio/quarkus/pull/34658) - Fix import issues in qute documentation examples
-   [#&#8203;34655](https://github.com/quarkusio/quarkus/pull/34655) - Refactor Hibernate mapping to use groups instead of dotted names
-   [#&#8203;34649](https://github.com/quarkusio/quarkus/pull/34649) - Fix OIDC DEV UI Live Reload
-   [#&#8203;34644](https://github.com/quarkusio/quarkus/issues/34644) - Rest client running GET requests instead of POST after redirect
-   [#&#8203;34642](https://github.com/quarkusio/quarkus/issues/34642) - Live Reload stopped working since 3.2.0.CR1
-   [#&#8203;34641](https://github.com/quarkusio/quarkus/pull/34641) - Don't load remote build analytics config if user has not accepted
-   [#&#8203;34632](https://github.com/quarkusio/quarkus/issues/34632) - Resteasy Reactive: Server becomes unresponsive due to race condition on ContainerResponseContext.getEntityStream()
-   [#&#8203;34629](https://github.com/quarkusio/quarkus/pull/34629) - Add QuarkusApplication javadoc
-   [#&#8203;34628](https://github.com/quarkusio/quarkus/issues/34628) - Quarkus 3.2: Hibernate ORM configuration problem
-   [#&#8203;34626](https://github.com/quarkusio/quarkus/issues/34626) - Quarkus 3.2.0.Final fetching build analytics remote config when disabled
-   [#&#8203;34625](https://github.com/quarkusio/quarkus/pull/34625) - Add hint for migration of servlets for RESTEasy Reactive
-   [#&#8203;34612](https://github.com/quarkusio/quarkus/pull/34612) - DevServices for Keycloak should support refresh token grant
-   [#&#8203;34610](https://github.com/quarkusio/quarkus/pull/34610) - Do not refresh OIDC session if the user is requesting logout
-   [#&#8203;34606](https://github.com/quarkusio/quarkus/pull/34606) - Timeout message for build analytics
-   [#&#8203;34601](https://github.com/quarkusio/quarkus/issues/34601) - zip file closed errors
-   [#&#8203;34593](https://github.com/quarkusio/quarkus/pull/34593) - Dev UI: Add Extension name in header page
-   [#&#8203;34592](https://github.com/quarkusio/quarkus/issues/34592) - OIDC Logout doesn't work after 5 minutes
-   [#&#8203;34586](https://github.com/quarkusio/quarkus/issues/34586) - Invalid handling of path segments in URLs by "quarkus-resteasy-reactive"
-   [#&#8203;34583](https://github.com/quarkusio/quarkus/pull/34583) - Ban all services from SmallRyeConfig in CodeGenerator
-   [#&#8203;34581](https://github.com/quarkusio/quarkus/pull/34581) - OpenTelemetry service name should have higher priority than app name and resource attribute service name
-   [#&#8203;34570](https://github.com/quarkusio/quarkus/pull/34570) - Prevent build failure when `@Blocking` on Application
-   [#&#8203;34566](https://github.com/quarkusio/quarkus/pull/34566) - Bump microprofile-openapi-api from 3.1 to 3.1.1
-   [#&#8203;34564](https://github.com/quarkusio/quarkus/pull/34564) - Bump smallrye-jwt.version from 4.2.1 to 4.3.0
-   [#&#8203;34559](https://github.com/quarkusio/quarkus/pull/34559) - Grpc: Fix hanging when Keycloak authorizer blocks thread and response never arrives
-   [#&#8203;34541](https://github.com/quarkusio/quarkus/pull/34541) - Fix error message about JDBC instrumentation
-   [#&#8203;34539](https://github.com/quarkusio/quarkus/pull/34539) - Prevent invalid warnings when setting `@QuarkusIntegrationTest` related properties
-   [#&#8203;34533](https://github.com/quarkusio/quarkus/pull/34533) - DevMojo: align Maven goal invocation logging with Maven 3.9 style
-   [#&#8203;34528](https://github.com/quarkusio/quarkus/pull/34528) - Fix Maven auth issue due to a classpath mix up
-   [#&#8203;34523](https://github.com/quarkusio/quarkus/pull/34523) - Fix notifications when reindexing the default PU through the dev UI
-   [#&#8203;34521](https://github.com/quarkusio/quarkus/pull/34521) - Track exceptions thrown during JAX-RS processing in the current span
-   [#&#8203;34520](https://github.com/quarkusio/quarkus/pull/34520) - Invoke secured blocking Grpc methods on worker thread
-   [#&#8203;34510](https://github.com/quarkusio/quarkus/pull/34510) - Enhance OpenTelemetry's DropTargetsSampler
-   [#&#8203;34509](https://github.com/quarkusio/quarkus/pull/34509) - Upgrade to Maven 3.9.3
-   [#&#8203;34508](https://github.com/quarkusio/quarkus/pull/34508) - Fix typo in InjectMock javadoc
-   [#&#8203;34507](https://github.com/quarkusio/quarkus/pull/34507) - Add SSL Support to integration test
-   [#&#8203;34502](https://github.com/quarkusio/quarkus/issues/34502) - Add support to run QuarkusIntegrationTest against https
-   [#&#8203;34499](https://github.com/quarkusio/quarkus/pull/34499) - Simplify and improve OIDC PKCE secret initialization
-   [#&#8203;34494](https://github.com/quarkusio/quarkus/pull/34494) - Restore ENTRYPOINT in Dockerfile templates
-   [#&#8203;34490](https://github.com/quarkusio/quarkus/pull/34490) - Make sure settings-security.xml is picked up from ~/.m2 if exists
-   [#&#8203;34484](https://github.com/quarkusio/quarkus/pull/34484) - Update OIDC DevUI doc with new DevUI images
-   [#&#8203;34482](https://github.com/quarkusio/quarkus/pull/34482) - Build Analytics - prompt improvements
-   [#&#8203;34481](https://github.com/quarkusio/quarkus/pull/34481) - ArC: fix possible StringIndexOutOfBoundsException in ArcJsonRPCService
-   [#&#8203;34478](https://github.com/quarkusio/quarkus/pull/34478) - Make plugin syncing log debug
-   [#&#8203;34474](https://github.com/quarkusio/quarkus/pull/34474) - Fix span export issue when user provided SpanProcessor beans exist
-   [#&#8203;34471](https://github.com/quarkusio/quarkus/pull/34471) - The Common Log Format requires the date to be wrapped into `[]`
-   [#&#8203;34468](https://github.com/quarkusio/quarkus/pull/34468) - Enforce the configured TLS version
-   [#&#8203;34466](https://github.com/quarkusio/quarkus/issues/34466) - DevUIArcJsonRPCTest.testInvocations unstable
-   [#&#8203;34463](https://github.com/quarkusio/quarkus/issues/34463) - QuarkusApplication Simple JavaDoc
-   [#&#8203;34458](https://github.com/quarkusio/quarkus/pull/34458) - Fix a typo in hibernate-reactive-panache.adoc
-   [#&#8203;34454](https://github.com/quarkusio/quarkus/pull/34454) - An option to attach an Uber JAR as the main project artifact
-   [#&#8203;34452](https://github.com/quarkusio/quarkus/pull/34452) - Fix Hibernate NoSuchMethod Exception  when TenantIdGeneration used in Quarkus 3 native mode
-   [#&#8203;34450](https://github.com/quarkusio/quarkus/pull/34450) - Support multiple backchannel logout tokens
-   [#&#8203;34449](https://github.com/quarkusio/quarkus/pull/34449) - Refactor BuildTimeConfigurationReader to make it easy to initialize a config outside ExtensionLoader
-   [#&#8203;34448](https://github.com/quarkusio/quarkus/issues/34448) - Failure to pull non-cached deps during test launch with proxy private repository
-   [#&#8203;34444](https://github.com/quarkusio/quarkus/pull/34444) - Fix extra registry config merging
-   [#&#8203;34443](https://github.com/quarkusio/quarkus/issues/34443) - Quarkus 3 native image fail to start with NoSuchMethod Exception
-   [#&#8203;34442](https://github.com/quarkusio/quarkus/issues/34442) - OIDC BackChannel Logout is not production ready
-   [#&#8203;34441](https://github.com/quarkusio/quarkus/pull/34441) - Upgrade to Hibernate ORM 6.2.6.Final, Hibernate Reactive 2.0.2.Final
-   [#&#8203;34440](https://github.com/quarkusio/quarkus/pull/34440) - Attach renamed original JAR to the Maven project to keep install plugin working
-   [#&#8203;34439](https://github.com/quarkusio/quarkus/issues/34439) - Quarkus gRPC `@Blocking` service bug (wrong kind of thread) with `@RolesAllowed`
-   [#&#8203;34433](https://github.com/quarkusio/quarkus/pull/34433) - Use debug logging for catalog initialization message
-   [#&#8203;34431](https://github.com/quarkusio/quarkus/pull/34431) - Prevent implicit image push when image build is explicitly disabled
-   [#&#8203;34425](https://github.com/quarkusio/quarkus/pull/34425) - Documentation: Native testing, fix typo
-   [#&#8203;34414](https://github.com/quarkusio/quarkus/pull/34414) - Improve generic resolution support in Spring Data JPA
-   [#&#8203;34413](https://github.com/quarkusio/quarkus/issues/34413) - deploy commnad incorrectly trigger image build
-   [#&#8203;34405](https://github.com/quarkusio/quarkus/pull/34405) - Fix typo in ResponseHeader annotation
-   [#&#8203;34404](https://github.com/quarkusio/quarkus/pull/34404) - Fix typo in imports of sample in resteasy-reactive-client doc
-   [#&#8203;34388](https://github.com/quarkusio/quarkus/issues/34388) - Provide possibility to run ./mvnw install with uber-jar creation, without renaming the uber-jar artefact
-   [#&#8203;34385](https://github.com/quarkusio/quarkus/issues/34385) - Bad command in documentation
-   [#&#8203;34383](https://github.com/quarkusio/quarkus/pull/34383) - Update ubi and openjdk-17-runtime images
-   [#&#8203;34376](https://github.com/quarkusio/quarkus/issues/34376) - swagger-ui endpoint is traced by OTel
-   [#&#8203;34374](https://github.com/quarkusio/quarkus/pull/34374) - Recover Kubernetes connection after watching builds logs timeout in OCP
-   [#&#8203;34373](https://github.com/quarkusio/quarkus/pull/34373) - Remove duplicate property kotlin.coroutine.version from application BOM
-   [#&#8203;34370](https://github.com/quarkusio/quarkus/issues/34370) - Quarkus is uing ubi8/ubi-minimal:8.6 and openjdk-17-runtime:1.15 while newer versions are available
-   [#&#8203;34368](https://github.com/quarkusio/quarkus/pull/34368) - Docs - describe authentication challenge in security architecture concept guide
-   [#&#8203;34366](https://github.com/quarkusio/quarkus/pull/34366) - Docs - configuration reference - environment variables
-   [#&#8203;34358](https://github.com/quarkusio/quarkus/pull/34358) - Updates Infinispan to 14.0.11.Final
-   [#&#8203;34353](https://github.com/quarkusio/quarkus/issues/34353) - OpenApi and SwaggerUi exposed on service port instead of management port
-   [#&#8203;34350](https://github.com/quarkusio/quarkus/issues/34350) - Spring Data API Extension Interface Projections not working with generic interfaces
-   [#&#8203;34347](https://github.com/quarkusio/quarkus/issues/34347) - Unable to pass command arguments to docker image in command line mode
-   [#&#8203;34336](https://github.com/quarkusio/quarkus/pull/34336) - ArC: fix constructor injection for abstract decorators
-   [#&#8203;34276](https://github.com/quarkusio/quarkus/issues/34276) - Openshift extension fails to deploy when on RHEL
-   [#&#8203;34175](https://github.com/quarkusio/quarkus/issues/34175) - Dev UI Documentation update for Security
-   [#&#8203;34146](https://github.com/quarkusio/quarkus/issues/34146) - BlockingOperationNotAllowedException in GRPC when using authentication
-   [#&#8203;34144](https://github.com/quarkusio/quarkus/pull/34144) - Remove usages of `@AlwaysInline`
-   [#&#8203;34141](https://github.com/quarkusio/quarkus/issues/34141) - Remove usage of `@AlwaysInline` as it's not GraalVM API
-   [#&#8203;34128](https://github.com/quarkusio/quarkus/pull/34128) - Complete review for the Logging reference guide
-   [#&#8203;34085](https://github.com/quarkusio/quarkus/issues/34085) - No gRPC response when no separate server is used & quarkus-keycloak-authorization is present
-   [#&#8203;34069](https://github.com/quarkusio/quarkus/pull/34069) - Improve config documentation generation for mappings
-   [#&#8203;33945](https://github.com/quarkusio/quarkus/issues/33945) - Dev-ui config editor not showing config values changed by a ConfigSourceInterceptor
-   [#&#8203;33889](https://github.com/quarkusio/quarkus/issues/33889) - Panache LockModeType ignored since 3.1.1
-   [#&#8203;33567](https://github.com/quarkusio/quarkus/issues/33567) - Custom ConfigSource not working with extensions that implement CodeGenProvider
-   [#&#8203;33446](https://github.com/quarkusio/quarkus/pull/33446) - Pass additional parameters to podman/docker on MacOS
-   [#&#8203;33407](https://github.com/quarkusio/quarkus/issues/33407) - OpenTelemetry custom SpanProcessor doesn't work in native mode
-   [#&#8203;33317](https://github.com/quarkusio/quarkus/issues/33317) - OpenTelemetry SDK autoconfiguration ignores OTEL service name in favor of Quarkus app name
-   [#&#8203;33188](https://github.com/quarkusio/quarkus/issues/33188) - Podman fails to build native on macOS
-   [#&#8203;33115](https://github.com/quarkusio/quarkus/issues/33115) - Quarkus maven plugin 3.0.1.Final artifact upload broken, Authentication failure in Azure Devops
-   [#&#8203;31010](https://github.com/quarkusio/quarkus/issues/31010) - HTTP access log %t missing enclosing brackets
-   [#&#8203;30802](https://github.com/quarkusio/quarkus/issues/30802) - OIDC: Generate PKCE secret 32 chars long if it is not set and the client secret is not 32 chars long
-   [#&#8203;30462](https://github.com/quarkusio/quarkus/issues/30462) - Bug/OpenTelemetry extension - unexpected exceptions are not recorded on the span
-   [#&#8203;27452](https://github.com/quarkusio/quarkus/issues/27452) - Fix TODO in DropTargetsSampler.java
-   [#&#8203;27384](https://github.com/quarkusio/quarkus/issues/27384) - OpenTelemetry: server spans of failed requests have no exception event
-   [#&#8203;24938](https://github.com/quarkusio/quarkus/issues/24938) - Micrometer URI templating does not apply for unauthorized requests
-   [#&#8203;10134](https://github.com/quarkusio/quarkus/issues/10134) - MicroProfile RestClient Encoding Failing for Emojis

### [`v3.2.0.Final`](https://github.com/quarkusio/quarkus/releases/tag/3.2.0.Final)

[Compare Source](https://github.com/quarkusio/quarkus/compare/3.1.3.Final...3.2.0.Final)

##### Major changes

-   [#&#8203;34227](https://github.com/quarkusio/quarkus/pull/34227) - Support custom claim types in quarkus-test-security-jwt and quarkus-test-security-oidc

##### Complete changelog

-   [#&#8203;34345](https://github.com/quarkusio/quarkus/pull/34345) - Add a section about march (graalvm 23+)
-   [#&#8203;34344](https://github.com/quarkusio/quarkus/pull/34344) - Small doc adjustments noticed when backporting recent MRs
-   [#&#8203;34340](https://github.com/quarkusio/quarkus/pull/34340) - Styling edits to security proactive auth docs
-   [#&#8203;34338](https://github.com/quarkusio/quarkus/pull/34338) - Build analytics - Improvements III
-   [#&#8203;34337](https://github.com/quarkusio/quarkus/pull/34337) - Fix typo & minor edits to security NVD doc
-   [#&#8203;34325](https://github.com/quarkusio/quarkus/pull/34325) - Add support for java.time.Year as JAX-RS parameter
-   [#&#8203;34324](https://github.com/quarkusio/quarkus/issues/34324) - resteasy-reactive java.time.Year ParamConverter
-   [#&#8203;34321](https://github.com/quarkusio/quarkus/pull/34321) - Inconsistent `Bearer token  authentication` in docs
-   [#&#8203;34320](https://github.com/quarkusio/quarkus/pull/34320) - Minor doc enhancements to Security Basic Auth docs
-   [#&#8203;34317](https://github.com/quarkusio/quarkus/pull/34317) - Minor doc enhancements to Identity providers
-   [#&#8203;34313](https://github.com/quarkusio/quarkus/pull/34313) - Filter out disabled REST methods from the OpenAPI document
-   [#&#8203;34290](https://github.com/quarkusio/quarkus/pull/34290) - Add more links between OIDC bearer and code flow authentication docs
-   [#&#8203;34288](https://github.com/quarkusio/quarkus/pull/34288) - Remove "-concept" from doc filenames and IDs
-   [#&#8203;34287](https://github.com/quarkusio/quarkus/pull/34287) - Style edits to "Authorization of web endpoints" Security ref doc
-   [#&#8203;34286](https://github.com/quarkusio/quarkus/pull/34286) - Make sure snapshot artifacts available in both workspace and remote repos are resolved from workspace in dev mode
-   [#&#8203;34280](https://github.com/quarkusio/quarkus/pull/34280) - Bump dekorate.version from 3.6.1 to 3.7.0
-   [#&#8203;34278](https://github.com/quarkusio/quarkus/pull/34278) - Describe how you can serve static files with a Vert.x route
-   [#&#8203;34275](https://github.com/quarkusio/quarkus/pull/34275) - Add extension suggestion in management interface reference
-   [#&#8203;34274](https://github.com/quarkusio/quarkus/pull/34274) - Build analytics - Improvements II
-   [#&#8203;34266](https://github.com/quarkusio/quarkus/pull/34266) - Make further updates to the update guide in the community and product docs so they match
-   [#&#8203;34259](https://github.com/quarkusio/quarkus/pull/34259) - Properly configure KubernetesSerialization for OpenShiftClient
-   [#&#8203;34258](https://github.com/quarkusio/quarkus/pull/34258) - Rephrase Non-mutable jar error message for remote-dev
-   [#&#8203;34256](https://github.com/quarkusio/quarkus/pull/34256) - Use -Dnative consistently as it is what we recommend
-   [#&#8203;34255](https://github.com/quarkusio/quarkus/pull/34255) - Build analytics - Fix windows prompt
-   [#&#8203;34252](https://github.com/quarkusio/quarkus/pull/34252) - Various fixes regarding GraalVM/Mandrel flavor
-   [#&#8203;34250](https://github.com/quarkusio/quarkus/pull/34250) - Propagate Smallrye Context when switching REST Client context
-   [#&#8203;34240](https://github.com/quarkusio/quarkus/pull/34240) - Fix create app exception min java version not thrown up
-   [#&#8203;34238](https://github.com/quarkusio/quarkus/issues/34238) - Should Quarkus set the `march` parameter by default?
-   [#&#8203;34235](https://github.com/quarkusio/quarkus/pull/34235) - Bump smallrye-mutiny-vertx-core from 3.3.0 to 3.4.2
-   [#&#8203;34233](https://github.com/quarkusio/quarkus/issues/34233) - OpenAPI $ref loop when setting Schema implementation
-   [#&#8203;34232](https://github.com/quarkusio/quarkus/pull/34232) - Bump commons-codec from 1.15 to 1.16.0
-   [#&#8203;34227](https://github.com/quarkusio/quarkus/pull/34227) - Support custom claim types in quarkus-test-security-jwt and quarkus-test-security-oidc
-   [#&#8203;34224](https://github.com/quarkusio/quarkus/pull/34224) - Use GraalVM CE instead of Mandrel for building static binaries
-   [#&#8203;34223](https://github.com/quarkusio/quarkus/pull/34223) - Provide a way to push env variables to dev services containers
-   [#&#8203;34220](https://github.com/quarkusio/quarkus/issues/34220) - Build a container image from scratch breaks due to missing libraries
-   [#&#8203;34215](https://github.com/quarkusio/quarkus/pull/34215) - Upgrade to SmallRye Fault Tolerance 6.2.4
-   [#&#8203;34214](https://github.com/quarkusio/quarkus/pull/34214) - Add smallrye-jwt test confirming RSA-OAEP encrypted token with RSA 1\_5 set in headers is rejected
-   [#&#8203;34212](https://github.com/quarkusio/quarkus/issues/34212) - Tracing Issue in Version 3.1.2 - Spans Not Consolidated under Parent Span
-   [#&#8203;34207](https://github.com/quarkusio/quarkus/pull/34207) - Qute: `@EngineConfiguration` validation - consider superclasses
-   [#&#8203;34195](https://github.com/quarkusio/quarkus/pull/34195) - Small fixes for the Dev UI doc
-   [#&#8203;34174](https://github.com/quarkusio/quarkus/pull/34174) - Bump smallrye-open-api.version from 3.3.4 to 3.4.0
-   [#&#8203;34163](https://github.com/quarkusio/quarkus/issues/34163) - Qute section helper type check is not complete
-   [#&#8203;34133](https://github.com/quarkusio/quarkus/issues/34133) - Can't set non-string values on claims on JWT tokens produced in tests
-   [#&#8203;34076](https://github.com/quarkusio/quarkus/pull/34076) - Kafka Dev UI: add ACL page, set Content-Type header, support msg headers
-   [#&#8203;34060](https://github.com/quarkusio/quarkus/pull/34060) - Style n grammar edits to security overview doc
-   [#&#8203;34038](https://github.com/quarkusio/quarkus/issues/34038) - Adding headers to Kafka message does not work via Kafka UI
-   [#&#8203;34030](https://github.com/quarkusio/quarkus/issues/34030) - REST endpoints disabled via the `@EndpointDisabled` annotation still appear in swagger
-   [#&#8203;33864](https://github.com/quarkusio/quarkus/issues/33864) - Support passing environment variables to devservices containers
-   [#&#8203;33725](https://github.com/quarkusio/quarkus/issues/33725) - Live reload with multi-module workspace containing SNAPSHOT dependencies
-   [#&#8203;33589](https://github.com/quarkusio/quarkus/pull/33589) - Make the update guide in the community and product docs match
-   [#&#8203;30442](https://github.com/quarkusio/quarkus/issues/30442) - quarkus-test-security-(jwt and oidc): support non-string claims (integers, arrays, maps)

### [`v3.1.3.Final`](https://github.com/quarkusio/quarkus/releases/tag/3.1.3.Final)

[Compare Source](https://github.com/quarkusio/quarkus/compare/3.1.2.Final...3.1.3.Final)

##### Complete changelog

-   [#&#8203;34314](https://github.com/quarkusio/quarkus/pull/34314) - Properly disambiguate projections from different repositories
-   [#&#8203;34312](https://github.com/quarkusio/quarkus/issues/34312) - Spring Data API Extension Interface-based Projections occasionally throws NoSuchMethodError
-   [#&#8203;34307](https://github.com/quarkusio/quarkus/pull/34307) - Fix NPE on OpenTelemetryVertxTracingFactory
-   [#&#8203;34305](https://github.com/quarkusio/quarkus/issues/34305) - NPE at io.quarkus.opentelemetry.runtime.tracing.intrumentation.vertx.OpenTelemetryVertxTracingFactory$VertxDelegator.receiveResponse(OpenTelemetryVertxTracingFactory.java:102)
-   [#&#8203;34281](https://github.com/quarkusio/quarkus/pull/34281) - Also create the default mailer if `@Location` is used
-   [#&#8203;34272](https://github.com/quarkusio/quarkus/issues/34272) - Null Pointer when sending mail through MailTemplate
-   [#&#8203;34253](https://github.com/quarkusio/quarkus/pull/34253) - Upgrade Hibernate Validator to 8.0.1.Final
-   [#&#8203;34249](https://github.com/quarkusio/quarkus/pull/34249) - Vert.x 4.4.4, Netty 4.1.94, and Mutiny Bindings 3.5.0
-   [#&#8203;34246](https://github.com/quarkusio/quarkus/pull/34246) - Make sure all base codestarts work for 2.x and 3.x
-   [#&#8203;34244](https://github.com/quarkusio/quarkus/pull/34244) - URL-encode OIDC post_logout_uri query parameter
-   [#&#8203;34228](https://github.com/quarkusio/quarkus/issues/34228) - Update netty-handler to address public known CVEs in versions before 4.1.94
-   [#&#8203;34211](https://github.com/quarkusio/quarkus/pull/34211) - Select the right default version for a dialect  when  using Hibernate Reactive
-   [#&#8203;34210](https://github.com/quarkusio/quarkus/issues/34210) - OIDC `post_logout_redirect_uri` query param appended to string buffer without % escape
-   [#&#8203;34126](https://github.com/quarkusio/quarkus/pull/34126) - Take image-pull-policy config into account for init-containers
-   [#&#8203;34125](https://github.com/quarkusio/quarkus/issues/34125) - Kubernetes init-containers ignore pull-policy
-   [#&#8203;34124](https://github.com/quarkusio/quarkus/pull/34124) - Upgrade Hibernate ORM to 6.2.5.Final and Hibernate Reactive to 2.0.1.Final
-   [#&#8203;34119](https://github.com/quarkusio/quarkus/pull/34119) - Fix for missing registry parameters in quarkus push image
-   [#&#8203;34098](https://github.com/quarkusio/quarkus/pull/34098) - ArC: implement equals/hashCode for TypeVariableImpl and WildcardTypeImpl
-   [#&#8203;34091](https://github.com/quarkusio/quarkus/pull/34091) - Bump BouncyCastle version to 1.74
-   [#&#8203;34089](https://github.com/quarkusio/quarkus/issues/34089) - Quarkus extension created with 2.13 stream and Quarkus CLI 3 contains Jakarta imports
-   [#&#8203;34073](https://github.com/quarkusio/quarkus/pull/34073) - Add configured SameSite attribute to all OIDC session cookies
-   [#&#8203;34072](https://github.com/quarkusio/quarkus/pull/34072) - Fix metadata for keycloak-admin-client-reactive
-   [#&#8203;34067](https://github.com/quarkusio/quarkus/pull/34067) - Bump snappy-java from 1.1.8.4 to 1.1.10.1 in /bom/application
-   [#&#8203;34064](https://github.com/quarkusio/quarkus/issues/34064) - SameSite cookie attribute not set when tokens are splitted with Quarkus OIDC
-   [#&#8203;34062](https://github.com/quarkusio/quarkus/pull/34062) - Fixes NullPointerException when using Infinispan Counter Manager
-   [#&#8203;34056](https://github.com/quarkusio/quarkus/pull/34056) - Adjust update command quoting for Windows
-   [#&#8203;34055](https://github.com/quarkusio/quarkus/pull/34055) - Fix service name in the OpenShift guide
-   [#&#8203;34050](https://github.com/quarkusio/quarkus/issues/34050) - Infinispan NPE when upgrading to Quarkus 3
-   [#&#8203;34032](https://github.com/quarkusio/quarkus/issues/34032) - Wrong hibernate dialect version detected for MS Sql Server
-   [#&#8203;33923](https://github.com/quarkusio/quarkus/pull/33923) - Return Access-Control-Expose-Headers in normal CORS requests
-   [#&#8203;33922](https://github.com/quarkusio/quarkus/issues/33922) - Access-Control-Expose-Headers not returned to request
-   [#&#8203;33880](https://github.com/quarkusio/quarkus/pull/33880) - Update Maven server auth config properties initialization
-   [#&#8203;33779](https://github.com/quarkusio/quarkus/issues/33779) - Quarkus 3/Hibernate 6 - Exception when access ElementCollection from an Entity with an embedded composite Key with associated Object
-   [#&#8203;33527](https://github.com/quarkusio/quarkus/pull/33527) - A few requested enhancements to the Ansible guide
-   [#&#8203;32843](https://github.com/quarkusio/quarkus/pull/32843) - Improve JavaDoc -> AsciiDoc transformation for lists, paragraphs and code blocks

### [`v3.1.2.Final`](https://github.com/quarkusio/quarkus/releases/tag/3.1.2.Final)

[Compare Source](https://github.com/quarkusio/quarkus/compare/3.1.1.Final...3.1.2.Final)

##### Complete changelog

-   [#&#8203;34041](https://github.com/quarkusio/quarkus/pull/34041) - Fix endpoint address in the OpenShift guide
-   [#&#8203;34039](https://github.com/quarkusio/quarkus/pull/34039) - Cleanup after REST Client multipart request
-   [#&#8203;34028](https://github.com/quarkusio/quarkus/pull/34028) - Revert Liquibase to 4.20
-   [#&#8203;34024](https://github.com/quarkusio/quarkus/pull/34024) - Avoid indefinite Uni wait in OIDC recorders
-   [#&#8203;34020](https://github.com/quarkusio/quarkus/pull/34020) - Ensure Panache class transformers run before Arc's static method transformers
-   [#&#8203;34014](https://github.com/quarkusio/quarkus/pull/34014) - Fix resolving custom ObjectMapper at deserialization in Resteasy Reactive
-   [#&#8203;34012](https://github.com/quarkusio/quarkus/issues/34012) - Revert Liquibase to v4.20.0
-   [#&#8203;34008](https://github.com/quarkusio/quarkus/issues/34008) - RESTEasy Reactive: ContextResolver<ObjectMapper> not called/used
-   [#&#8203;34005](https://github.com/quarkusio/quarkus/issues/34005) - Panache tries to (and fails to) transform classes even if disabled
-   [#&#8203;34003](https://github.com/quarkusio/quarkus/pull/34003) - ArC: fix InvocationContext#setParameters()
-   [#&#8203;34001](https://github.com/quarkusio/quarkus/issues/34001) - AroundInvoke Interceptors can only modify parameters if first in chain
-   [#&#8203;33993](https://github.com/quarkusio/quarkus/issues/33993) - Quarkus startup hangs in OidcRecorder
-   [#&#8203;33988](https://github.com/quarkusio/quarkus/pull/33988) - Fix minor grammar mistake in config-reference.adoc
-   [#&#8203;33986](https://github.com/quarkusio/quarkus/issues/33986) - Resource leak: Multipart HTTP-Requests leave Attr\_ temporary files not deleted
-   [#&#8203;33983](https://github.com/quarkusio/quarkus/pull/33983) - Make sure our recipes are visible as a dependency when updating
-   [#&#8203;33978](https://github.com/quarkusio/quarkus/pull/33978) - Generated docs should generate mvn create app command with Quarkus version and not stream version
-   [#&#8203;33971](https://github.com/quarkusio/quarkus/pull/33971) - Protect include/exclude test commands against NPE
-   [#&#8203;33970](https://github.com/quarkusio/quarkus/pull/33970) - Qute: skip generation of resources if a validation error occurs
-   [#&#8203;33968](https://github.com/quarkusio/quarkus/pull/33968) - Update to Vert.x 4.4.3 and Netty 4.1.93.Final
-   [#&#8203;33966](https://github.com/quarkusio/quarkus/issues/33966) - Quarkus crashing with dev-mode with Qute (on a specific situation)
-   [#&#8203;33965](https://github.com/quarkusio/quarkus/pull/33965) - Don't include startup probe for KNative manifests
-   [#&#8203;33962](https://github.com/quarkusio/quarkus/pull/33962) - Use JavaBinFinder when launching decompiler
-   [#&#8203;33961](https://github.com/quarkusio/quarkus/issues/33961) - :dev terminal test commands don't work anymore (testSupport.include is null)
-   [#&#8203;33958](https://github.com/quarkusio/quarkus/pull/33958) - Replace IfBuildProfile in UnlessBuildProfile javadoc
-   [#&#8203;33954](https://github.com/quarkusio/quarkus/issues/33954) - UnlessBuildProfile Annotation Javadoc
-   [#&#8203;33948](https://github.com/quarkusio/quarkus/pull/33948) - Manage org.glassfish.jaxb:txw2 at the same version as jaxb-core and jaxb-runtime
-   [#&#8203;33944](https://github.com/quarkusio/quarkus/issues/33944) - Kubernetes + Smallrye Health Extensions: Knative deployment fails due to presence of startupProbe
-   [#&#8203;33940](https://github.com/quarkusio/quarkus/pull/33940) - Manage net.java.dev.jna:jna-platform at the same version as net.java.dev.jna:jna
-   [#&#8203;33939](https://github.com/quarkusio/quarkus/pull/33939) - Downgrade `maven-shade-plugin` to 3.2.1
-   [#&#8203;33934](https://github.com/quarkusio/quarkus/pull/33934) - Bump SmallRye GraphQL to 2.2.1
-   [#&#8203;33930](https://github.com/quarkusio/quarkus/issues/33930) - Decompiler fails when there's no java in path
-   [#&#8203;33912](https://github.com/quarkusio/quarkus/pull/33912) - Bump Vert.x Mutiny Bindings to version 3.4.2
-   [#&#8203;33910](https://github.com/quarkusio/quarkus/pull/33910) - Change redirection from /q/dev to /q/dev-ui to be FOUND instead of MOVED_PERMANENTLY
-   [#&#8203;33904](https://github.com/quarkusio/quarkus/pull/33904) - Gradle plugin "confused" with parent-first vs removed vs optional artifacts
-   [#&#8203;33903](https://github.com/quarkusio/quarkus/pull/33903) - ArC: beans injected into All List injection points should be unremovable
-   [#&#8203;33901](https://github.com/quarkusio/quarkus/pull/33901) - Gradle-plugin: properly handle read-only files
-   [#&#8203;33893](https://github.com/quarkusio/quarkus/pull/33893) - Bump jboss-logging from 3.5.0.Final to 3.5.1.Final
-   [#&#8203;33891](https://github.com/quarkusio/quarkus/pull/33891) - Bump mariadb-java-client from 3.1.3 to 3.1.4
-   [#&#8203;33884](https://github.com/quarkusio/quarkus/issues/33884) - Quarkus 3.1.1 causes Npe when using configinterceptor
-   [#&#8203;33878](https://github.com/quarkusio/quarkus/pull/33878) - Upgrade to Maven 3.9.2 and Maven resolver 1.9.10
-   [#&#8203;33873](https://github.com/quarkusio/quarkus/pull/33873) - Launch Liquibase and Flyway operations only when Arc is ready
-   [#&#8203;33872](https://github.com/quarkusio/quarkus/pull/33872) - Add more documentation to `@RestHeader`
-   [#&#8203;33870](https://github.com/quarkusio/quarkus/issues/33870) - Gradle plugin does not copy all files correctly, when having parent-first-artifacts
-   [#&#8203;33867](https://github.com/quarkusio/quarkus/pull/33867) - Upgrade smallrye-health to 4.0.2
-   [#&#8203;33861](https://github.com/quarkusio/quarkus/issues/33861) - Name resolution fails with `@RestHeader` annotation under certain condition
-   [#&#8203;33843](https://github.com/quarkusio/quarkus/issues/33843) - AppCDS failed if mongodb-liquibase extension present
-   [#&#8203;33842](https://github.com/quarkusio/quarkus/issues/33842) - AppCDS generation failed with `Permission denied`
-   [#&#8203;33841](https://github.com/quarkusio/quarkus/pull/33841) - ArC: fix some scenarios with generic decorators
-   [#&#8203;33825](https://github.com/quarkusio/quarkus/issues/33825) - smallrye-graphql-cdi triggers "Detected bean archive with bean discovery mode of 'all'" warning
-   [#&#8203;33824](https://github.com/quarkusio/quarkus/pull/33824) - Replace references of s2i with openshift
-   [#&#8203;33819](https://github.com/quarkusio/quarkus/pull/33819) - Restrict properties passed to gradle worker processes
-   [#&#8203;33803](https://github.com/quarkusio/quarkus/issues/33803) - Generic CDI Decorator Throws java.lang.NoSuchMethodError
-   [#&#8203;33781](https://github.com/quarkusio/quarkus/pull/33781) - Check if OIDC user-info-path is configured when UserInfo is required
-   [#&#8203;33772](https://github.com/quarkusio/quarkus/issues/33772) - OIDC code authorization flow misleading error in some OAuth2 configurations
-   [#&#8203;33679](https://github.com/quarkusio/quarkus/issues/33679) - Vert.X bump to 4.4.2 lead to `domain socket must not be empty` exception when used with Quarkus Micrometer extension
-   [#&#8203;33658](https://github.com/quarkusio/quarkus/issues/33658) - redirect of /q/dev too permanent?
-   [#&#8203;33469](https://github.com/quarkusio/quarkus/pull/33469) - Fix detection of project root in Quarkus CLI
-   [#&#8203;33402](https://github.com/quarkusio/quarkus/issues/33402) - Extension provided plugins are not automatically added if plugin catalog is missing
-   [#&#8203;33333](https://github.com/quarkusio/quarkus/pull/33333) - Use the container-provided settings decrypter
-   [#&#8203;33321](https://github.com/quarkusio/quarkus/issues/33321) - Different behavior in native build using env var in application.properties when build with gradle vs. maven (Quarkus 3.x)
-   [#&#8203;33220](https://github.com/quarkusio/quarkus/issues/33220) - Maven proxy usage is broken with Quarkus 3.0.2.Final
-   [#&#8203;33024](https://github.com/quarkusio/quarkus/issues/33024) - Error trailers are not propagated when using new Vert.x gRPC support
-   [#&#8203;30811](https://github.com/quarkusio/quarkus/issues/30811) - CDI Decorator ignored for beans implementing interface extending other generic interface

### [`v3.1.1.Final`](https://github.com/quarkusio/quarkus/releases/tag/3.1.1.Final)

[Compare Source](https://github.com/quarkusio/quarkus/compare/3.1.0.Final...3.1.1.Final)

##### Complete changelog

-   [#&#8203;33846](https://github.com/quarkusio/quarkus/pull/33846) - Update Jackson to 2.15.2
-   [#&#8203;33834](https://github.com/quarkusio/quarkus/pull/33834) - Kafka serde discovery: handle channel names containing dot
-   [#&#8203;33821](https://github.com/quarkusio/quarkus/pull/33821) - DEV UI: Prevent NPE in JsonRpc#route after Quarkus app reloaded
-   [#&#8203;33820](https://github.com/quarkusio/quarkus/issues/33820) - DEV UI on reload logs NPE xception in JsonRpcRouter#route on line 200
-   [#&#8203;33815](https://github.com/quarkusio/quarkus/pull/33815) - Redis Hostname provider - do not call getHosts() twice
-   [#&#8203;33811](https://github.com/quarkusio/quarkus/pull/33811) - Only expose the Dev UI Routes if Vert.x HTTP is present
-   [#&#8203;33804](https://github.com/quarkusio/quarkus/issues/33804) - Dev Mode fails with Quarkus 3.1 and Kafka client (no vert.x http extension on the classpath)
-   [#&#8203;33802](https://github.com/quarkusio/quarkus/pull/33802) - Fix Dev UI v1 link in the guides
-   [#&#8203;33799](https://github.com/quarkusio/quarkus/pull/33799) - Fix message typo in OIDCRecorder
-   [#&#8203;33769](https://github.com/quarkusio/quarkus/pull/33769) - Fix detection of OpenTelemetry
-   [#&#8203;33763](https://github.com/quarkusio/quarkus/pull/33763) - When using RestMulti, don't require `@Produces`
-   [#&#8203;33761](https://github.com/quarkusio/quarkus/pull/33761) - Properly implement ClientRequestContext#setEntity
-   [#&#8203;33758](https://github.com/quarkusio/quarkus/pull/33758) - Update security-keycloak-admin-client.adoc
-   [#&#8203;33756](https://github.com/quarkusio/quarkus/pull/33756) - Prevent NPE in Jacoco report preparation when a workspace module has no sources
-   [#&#8203;33753](https://github.com/quarkusio/quarkus/pull/33753) - Bump apicurio-registry.version from 2.4.2.Final to 2.4.3.Final
-   [#&#8203;33752](https://github.com/quarkusio/quarkus/pull/33752) - Bump kotlinx-serialization-json from 1.5.0 to 1.5.1
-   [#&#8203;33746](https://github.com/quarkusio/quarkus/issues/33746) - Quarkus 3.1 still throws an error if `@Produces` is not defined on a stream response
-   [#&#8203;33741](https://github.com/quarkusio/quarkus/issues/33741) - io.quarkus:quarkus-jacoco cannot import pom module dependecy
-   [#&#8203;33738](https://github.com/quarkusio/quarkus/issues/33738) - Quarkus 3.1 rest client uses wrong Messagewriter
-   [#&#8203;33735](https://github.com/quarkusio/quarkus/pull/33735) - Make Elasticsearch Java Client's withJson(...) methods work in native mode
-   [#&#8203;33730](https://github.com/quarkusio/quarkus/issues/33730) - Smallrye Reactive Messaging with Kafka Connector does not support channel names containing a dot
-   [#&#8203;33720](https://github.com/quarkusio/quarkus/pull/33720) - Normalize podman vs. podman.exe and Podman Desktop
-   [#&#8203;33718](https://github.com/quarkusio/quarkus/pull/33718) - Fix native query support in Hibernate Reactive
-   [#&#8203;33713](https://github.com/quarkusio/quarkus/issues/33713) - NamedNativeQuery not working in native image
-   [#&#8203;33695](https://github.com/quarkusio/quarkus/pull/33695) - Update rewrite-maven-plugin to 4.46.0
-   [#&#8203;33689](https://github.com/quarkusio/quarkus/pull/33689) - DevTool-cli Clarify --errors help message
-   [#&#8203;33687](https://github.com/quarkusio/quarkus/pull/33687) - Call after construct callbacks when creating outer instances/QuarkusTest
-   [#&#8203;33680](https://github.com/quarkusio/quarkus/pull/33680) - Fix dropped exception on JSON stream cancellation
-   [#&#8203;33677](https://github.com/quarkusio/quarkus/pull/33677) - Fix npe when vert.x delegate is called but not set yet
-   [#&#8203;33671](https://github.com/quarkusio/quarkus/pull/33671) - Mark test failure in time for callbacks to know about it
-   [#&#8203;33670](https://github.com/quarkusio/quarkus/pull/33670) - Guard against potential NPE in GrpcClientConfiguration
-   [#&#8203;33667](https://github.com/quarkusio/quarkus/pull/33667) - Do not include the Kafka Dev UI beans during the native build
-   [#&#8203;33663](https://github.com/quarkusio/quarkus/pull/33663) - Fix SSE response with legacy publisher in native mode
-   [#&#8203;33660](https://github.com/quarkusio/quarkus/pull/33660) - Dev UI small fixes
-   [#&#8203;33659](https://github.com/quarkusio/quarkus/pull/33659) - Add DevConsoleCORSFilter to Dev UI JsonRPC WebSocket
-   [#&#8203;33657](https://github.com/quarkusio/quarkus/pull/33657) - Security JPA Reactive - catch non-unique result exception properly
-   [#&#8203;33652](https://github.com/quarkusio/quarkus/issues/33652) - Endpoint with RestSseElementType doesn't produce events in native
-   [#&#8203;33651](https://github.com/quarkusio/quarkus/pull/33651) - Refer to 'microprofile_jwt' scope in OIDC docs
-   [#&#8203;33649](https://github.com/quarkusio/quarkus/pull/33649) - \[Doc] Fix minor typo in devtool CLI
-   [#&#8203;33647](https://github.com/quarkusio/quarkus/issues/33647) - Incorrect test status in QuarkusTestAfterTestExecutionCallback and QuarkusTestAfterEachCallback for failing test
-   [#&#8203;33645](https://github.com/quarkusio/quarkus/pull/33645) - Ignore IndexDependencyBuildItem for missing dependencies
-   [#&#8203;33643](https://github.com/quarkusio/quarkus/issues/33643) - RolesAllowed and OIDC broken in 2.16.0-Final and 3.0.4-Final with KeyCloak
-   [#&#8203;33639](https://github.com/quarkusio/quarkus/pull/33639) - Upgrade to SmallRye Fault Tolerance 6.2.3
-   [#&#8203;33631](https://github.com/quarkusio/quarkus/issues/33631) - Hibernate Storing multiple items with `@IdClass` in one transaction fails
-   [#&#8203;33627](https://github.com/quarkusio/quarkus/pull/33627) - Do not bind the "grpc" container port when configured to use same server
-   [#&#8203;33623](https://github.com/quarkusio/quarkus/issues/33623) - Regression - Unable to build native binary when using quarkus-kafka-client extension
-   [#&#8203;33614](https://github.com/quarkusio/quarkus/pull/33614) - Reincorporate entries into jars' MANIFEST.MF
-   [#&#8203;33613](https://github.com/quarkusio/quarkus/issues/33613) - MANIFEST.MF don't contain information anymore since 3.1.x builds
-   [#&#8203;33612](https://github.com/quarkusio/quarkus/pull/33612) - Make repositories setup in quarkus-parent consistent with other poms
-   [#&#8203;33608](https://github.com/quarkusio/quarkus/pull/33608) - Propagate completion and error events in Redis pub/sub
-   [#&#8203;33604](https://github.com/quarkusio/quarkus/pull/33604) - Fix support of InputStream multipart without filename in REST Client
-   [#&#8203;33601](https://github.com/quarkusio/quarkus/issues/33601) - Rest client using multipart stopped working while migrating to Quarkus 3
-   [#&#8203;33598](https://github.com/quarkusio/quarkus/pull/33598) - Fix the Micrometer MP Metrics annotation transformation
-   [#&#8203;33597](https://github.com/quarkusio/quarkus/pull/33597) - Bump dekorate to 3.6.1
-   [#&#8203;33595](https://github.com/quarkusio/quarkus/pull/33595) - Skip manifest entry properties that are missing values
-   [#&#8203;33594](https://github.com/quarkusio/quarkus/issues/33594) - Invalid Mocks in `@Nested` Tests with `@TestProfile` after upgrade to Quarkus 3
-   [#&#8203;33593](https://github.com/quarkusio/quarkus/issues/33593) - GrpcClientConfiguration.inProcess results in NPE when config not present
-   [#&#8203;33591](https://github.com/quarkusio/quarkus/pull/33591) - Correct a typo in native-reference.adoc
-   [#&#8203;33588](https://github.com/quarkusio/quarkus/issues/33588) - Failed to stop Quarkus \[Error Occurred After Shutdown] error when adjusting configuration through Dev UI
-   [#&#8203;33587](https://github.com/quarkusio/quarkus/issues/33587) - Dev UI - Configuration - unable to filter configuration properties defined in application.properties
-   [#&#8203;33586](https://github.com/quarkusio/quarkus/pull/33586) - Use 'target' as output dir for platform test classes loaded from JARs
-   [#&#8203;33585](https://github.com/quarkusio/quarkus/issues/33585) - NPE When Constructor Injecting a Microprofile Metric
-   [#&#8203;33582](https://github.com/quarkusio/quarkus/issues/33582) - Kubernetes to enforcing quarkus.kubernetes.replicas=0
-   [#&#8203;33581](https://github.com/quarkusio/quarkus/pull/33581) - Fix check to return existing marshaller if class is already bounded
-   [#&#8203;33579](https://github.com/quarkusio/quarkus/issues/33579) - Is it a Typo? seems like a bug in code. As it always returns false
-   [#&#8203;33578](https://github.com/quarkusio/quarkus/pull/33578) - Fix typo in grpc in-process runtime config
-   [#&#8203;33573](https://github.com/quarkusio/quarkus/issues/33573) - disableTrustManager is not used in ResteasyReactiveClientProvider
-   [#&#8203;33569](https://github.com/quarkusio/quarkus/pull/33569) - Pass disableTrustManager in ResteasyReactiveClientProvider
-   [#&#8203;33538](https://github.com/quarkusio/quarkus/pull/33538) - Dev UI new common component for no-service/data
-   [#&#8203;33531](https://github.com/quarkusio/quarkus/pull/33531) - Update Vert.x Mutiny bindings to version 3.4.1
-   [#&#8203;33498](https://github.com/quarkusio/quarkus/pull/33498) - Upgrade Hibernate ORM and Hibernate Reactive
-   [#&#8203;33418](https://github.com/quarkusio/quarkus/issues/33418) - Quarkus redis reactive pubsub disconnecting handler
-   [#&#8203;33305](https://github.com/quarkusio/quarkus/issues/33305) - OutputTargetBuildItem.getOutputDirectory() returning a strange value when running a test in the Platform
-   [#&#8203;33300](https://github.com/quarkusio/quarkus/pull/33300) - Register PGobject subtypes for reflection
-   [#&#8203;33285](https://github.com/quarkusio/quarkus/issues/33285) - Vertx race condition may not initialise OpenTelemetry
-   [#&#8203;33206](https://github.com/quarkusio/quarkus/issues/33206) - Using duration with hibernate and postgres interval leads to error in native mode
-   [#&#8203;33072](https://github.com/quarkusio/quarkus/issues/33072) -  Quarkus Native on(GraalVM) issue with ElasticSearch Java Client: No deserializer found in 'co.elastic.clients.elasticsearch.core.UpdateByQueryRequest.\_DESERIALIZER'
-   [#&#8203;32963](https://github.com/quarkusio/quarkus/issues/32963) - Reactive Client - Mutiny Dropped Exception on Cancel (stream+json)
-   [#&#8203;32926](https://github.com/quarkusio/quarkus/issues/32926) - New Form editor in Configuration doesn't show up the key/value in application.properties
-   [#&#8203;32234](https://github.com/quarkusio/quarkus/issues/32234) - Dev UI 2 - Generalize No Dev Services element
-   [#&#8203;29422](https://github.com/quarkusio/quarkus/issues/29422) - DevUI - config editor doesn't notify user when something goes wrong
-   [#&#8203;28971](https://github.com/quarkusio/quarkus/issues/28971) - Quarkus Maven Plugin unable to handle maven exclusions

### [`v3.1.0.Final`](https://github.com/quarkusio/quarkus/releases/tag/3.1.0.Final)

[Compare Source](https://github.com/quarkusio/quarkus/compare/3.0.4.Final...3.1.0.Final)

##### Complete changelog

-   [#&#8203;33536](https://github.com/quarkusio/quarkus/pull/33536) - Add some media queries for dev ui to render better on smaller screens
-   [#&#8203;33511](https://github.com/quarkusio/quarkus/pull/33511) - Move Status tag to footer
-   [#&#8203;33510](https://github.com/quarkusio/quarkus/pull/33510) - Dev UI: OpenAPI - Fix paths when custom
-   [#&#8203;33477](https://github.com/quarkusio/quarkus/issues/33477) - Dev-UI v2 fails to work with swagger-ui extension after changing its path config
-   [#&#8203;33472](https://github.com/quarkusio/quarkus/pull/33472) - Disable non configured default OIDC tenant if TenantConfigResolver is available
-   [#&#8203;33468](https://github.com/quarkusio/quarkus/issues/33468) - Upgrade vertx to 4.4.\* to allow TLS Server certificate rotation without restarts
-   [#&#8203;33462](https://github.com/quarkusio/quarkus/pull/33462) - Add support of signature algorithms (PSxxx, EdDSA) in quarkus-oidc
-   [#&#8203;33459](https://github.com/quarkusio/quarkus/pull/33459) - Disable flaky OTel-GraphQL test for now
-   [#&#8203;33432](https://github.com/quarkusio/quarkus/pull/33432) - Fix log issue with `@QuarkusIntegrationTest`
-   [#&#8203;33424](https://github.com/quarkusio/quarkus/pull/33424) - Update graal-sdk to 22.3.2
-   [#&#8203;33423](https://github.com/quarkusio/quarkus/issues/33423) - Update graal-sdk to 22.3.2 to address public known CVEs in version 22.3.0
-   [#&#8203;33416](https://github.com/quarkusio/quarkus/pull/33416) - Update to vertx 4.4.2
-   [#&#8203;33351](https://github.com/quarkusio/quarkus/pull/33351) - Fix blank DEV UI extension pages when loading data from Back End
-   [#&#8203;33331](https://github.com/quarkusio/quarkus/issues/33331) - dev-ui in Q3 is log is difficult to enlarge
-   [#&#8203;33268](https://github.com/quarkusio/quarkus/pull/33268) - Replace `jboss-parent` with `quarkus-parent`
-   [#&#8203;33229](https://github.com/quarkusio/quarkus/issues/33229) - Native binary run log is not visible when running tests with Quarkus main
-   [#&#8203;33120](https://github.com/quarkusio/quarkus/issues/33120) - Do not require OIDC users disable default tenant when TenantConfigResolver is used

### [`v3.0.4.Final`](https://github.com/quarkusio/quarkus/releases/tag/3.0.4.Final)

[Compare Source](https://github.com/quarkusio/quarkus/compare/3.0.3.Final...3.0.4.Final)

##### Complete changelog

-   [#&#8203;33551](https://github.com/quarkusio/quarkus/pull/33551) - Properly include Prometheus related code
-   [#&#8203;33547](https://github.com/quarkusio/quarkus/issues/33547) - infinispan-client + micrometer combination doesn't compile in native
-   [#&#8203;33542](https://github.com/quarkusio/quarkus/pull/33542) - Limit subclass codec registration to known working codecs
-   [#&#8203;33539](https://github.com/quarkusio/quarkus/pull/33539) - fix typo in grpc-service-consumption.adoc
-   [#&#8203;33537](https://github.com/quarkusio/quarkus/pull/33537) - Fix the custom card for Dev UI Rabbit MQ
-   [#&#8203;33499](https://github.com/quarkusio/quarkus/pull/33499) - Ensure that invoker is properly initialized in QuartzJobDefinition#schedule
-   [#&#8203;33491](https://github.com/quarkusio/quarkus/pull/33491) - Ensure that cookies added in filters are visible to resource methods
-   [#&#8203;33490](https://github.com/quarkusio/quarkus/issues/33490) - Cookies created in request filters are not accessible in Resource Methods
-   [#&#8203;33488](https://github.com/quarkusio/quarkus/pull/33488) - Bump Resteasy Classic to 6.2.4.Final
-   [#&#8203;33478](https://github.com/quarkusio/quarkus/pull/33478) - Arc - remove logging when discovering a an illega…
@hartmut-co-uk
Copy link

Dear issue/PR authors, would you be so kind to verify if the changes made related to this issue have caused the workaround for arm64 native build to stop working?
#30545 (comment)

If so, would it be valid to create a PR adding "quarkus.native." to the list of whitelisted properties?

@dagrammy
Copy link
Contributor Author

dagrammy commented Nov 4, 2023

Hi @hartmut-co-uk,

I am in the original author of the mentioned PR/commit. It sounds plausible that the workaround no longer works for this reason, because the properties are no longer passed on to the gradle worker process. I see no harm in adding quarkus.native.* to the whitelist.

Maybe you could try to do a local Quarkus build with the following change, see if it works again and open a PR?

private static final List<String> WORKER_BUILD_FORK_OPTIONS = List.of("quarkus.package.",
        "quarkus.application.", "quarkus.gradle-worker.", "quarkus.native.");

@hartmut-co-uk
Copy link

Hi @hartmut-co-uk,

I am in the original author of the mentioned PR/commit. It sounds plausible that the workaround no longer works for this reason, because the properties are no longer passed on to the gradle worker process. I see no harm in adding quarkus.native.* to the whitelist.

Maybe you could try to do a local Quarkus build with the following change, see if it works again and open a PR?

private static final List<String> WORKER_BUILD_FORK_OPTIONS = List.of("quarkus.package.",
        "quarkus.application.", "quarkus.gradle-worker.", "quarkus.native.");

Update: #37021 seems to have fixed this. At least with quarkus 3.6.3 it's working as it did before (<3.2.0).

@dagrammy
Copy link
Contributor Author

Well, it fixed your problem but reintroduced ours. 😉

Tbh, we have now simply replaced gradle with maven. Just kidding....although I had really thought about it for a moment.

But we have completely banned environment variable substitution in application.properties as this feature just seems too unstable in native mode.

Instead we replace complete properties as env var with QUARKUS_REST_SOME_CLIENT_SOME_VALUE_YADA_YADA_YADA.

@ThoSap
Copy link

ThoSap commented Jan 4, 2024

@snazy @maxandersen @radcortez @gsmet @aloubyansky can you please reopen this issue, as #37021 reintroduced the issues from this original issue.
See the comment of @dagrammy above.

Related issues:
#37273
#37649

@radcortez
Copy link
Member

Have you had a chance to try #37987? Thanks!

@dagrammy
Copy link
Contributor Author

Sorry for the late reply.

I have tested with my reproducer (https://github.com/dagrammy/quarkus-env-reproducer-maven) and version 3.6.5 and it works again.

Thank you very much! 🙂 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Done
Development

Successfully merging a pull request may close this issue.

10 participants