tree 14e073f7036533bbb3f14016299008cdbceb2f2a
parent 300d0e16e41b62f7563878ee183e16b4d00248ba
parent d34dca2b7c639e88b11702efe60b3fe9303a4d01
author Matthias Benkard <code@mulk.eu> 1673377104 +0000
committer Matthias Benkard <code@mulk.eu> 1673377104 +0000

Update all non-major dependencies to v2.15.3.final (mulk/mulkcms2!5)

This MR contains the following updates:

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

---

### Release Notes

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

### [`v2.15.3.Final`](https://github.com/quarkusio/quarkus/releases/tag/2.15.3.Final)

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

##### Complete changelog

-   [#&#8203;30255](https://github.com/quarkusio/quarkus/pull/30255) - Introduce a JSON Stream parser for the reactive rest client
-   [#&#8203;30242](https://github.com/quarkusio/quarkus/pull/30242) - Throw an IllegalStateException with basic info about the provider that failed to provide a resource
-   [#&#8203;30227](https://github.com/quarkusio/quarkus/pull/30227) - SmallRye GraphQL 1.9.1/2.0.1 + config property to control Federation
-   [#&#8203;30218](https://github.com/quarkusio/quarkus/pull/30218) - OIDC documentation fixes
-   [#&#8203;30200](https://github.com/quarkusio/quarkus/pull/30200) - Ensure that Kotlin implementation of QuarkusApplication works properly
-   [#&#8203;30195](https://github.com/quarkusio/quarkus/pull/30195) - Log graphql.execution.AbortExecutionException when it occurs
-   [#&#8203;30190](https://github.com/quarkusio/quarkus/issues/30190) - 2.15.2.Final breaks command mode with main class extends from QuarkusApplication in kotlin
-   [#&#8203;30187](https://github.com/quarkusio/quarkus/pull/30187) - Bump xstream from 1.4.19 to 1.4.20
-   [#&#8203;30183](https://github.com/quarkusio/quarkus/pull/30183) - Fixing typos in security overview doc
-   [#&#8203;30177](https://github.com/quarkusio/quarkus/pull/30177) - Properly handle SSE comments in RESTEasy Reactive client and server code
-   [#&#8203;30172](https://github.com/quarkusio/quarkus/pull/30172) - Codestarts - Fix flattening of log levels
-   [#&#8203;30169](https://github.com/quarkusio/quarkus/issues/30169) - NullPointerException when sending SSE with comment only
-   [#&#8203;30161](https://github.com/quarkusio/quarkus/pull/30161) - Align behavior for getDeferredIdentity and getIdentity in TestIdentityAssociation
-   [#&#8203;30160](https://github.com/quarkusio/quarkus/issues/30160) - Different behavior in TestIdentityAssociation for getDeferredIdentity and getIdentity
-   [#&#8203;30157](https://github.com/quarkusio/quarkus/pull/30157) - Gradle quarkusDev: don't use test classes dir for app classes
-   [#&#8203;30155](https://github.com/quarkusio/quarkus/pull/30155) - Show how to verify smallrye-jwt issuer in a shared network
-   [#&#8203;30154](https://github.com/quarkusio/quarkus/pull/30154) - Remove remaining references to javax classes
-   [#&#8203;30152](https://github.com/quarkusio/quarkus/issues/30152) - Improve error handling of AbortExecutionException in smallrye-graphql extension
-   [#&#8203;30146](https://github.com/quarkusio/quarkus/pull/30146) - Properly segregate Json MessageBodyReader/Writer classes for server and client
-   [#&#8203;30145](https://github.com/quarkusio/quarkus/issues/30145) - GraphQL federation directives, which allow multiple values, do not match Apollo contract
-   [#&#8203;30142](https://github.com/quarkusio/quarkus/pull/30142) - When disabling name and version for label selectod in k8s, don't remove from labels
-   [#&#8203;30138](https://github.com/quarkusio/quarkus/issues/30138) - Keycloak Dev Services
-   [#&#8203;30132](https://github.com/quarkusio/quarkus/pull/30132) - Register REST Client body parameters for reflection
-   [#&#8203;30119](https://github.com/quarkusio/quarkus/issues/30119) - Enable/disable GraphQL Federation automatically (+ add a config property for it)
-   [#&#8203;30100](https://github.com/quarkusio/quarkus/issues/30100) - Setting `add-version-to-label-selectors: false` removes the app.kubernetes.io/version label
-   [#&#8203;30078](https://github.com/quarkusio/quarkus/issues/30078) - Quarkus Kotlin Native Reactive REST Client not working properly
-   [#&#8203;30061](https://github.com/quarkusio/quarkus/issues/30061) - Adding Kotlin Tests Breaks Kotlin/Java project
-   [#&#8203;30044](https://github.com/quarkusio/quarkus/issues/30044) - Resteasy Reactive Rest Client fails to re-construct large chunks of streamed json (stream+json) and fails deserialization
-   [#&#8203;29998](https://github.com/quarkusio/quarkus/pull/29998) - Bump to smallrye-config 2.13.1
-   [#&#8203;29918](https://github.com/quarkusio/quarkus/issues/29918) - smallrye-config: Converter<Int> throws IllegalStateException
-   [#&#8203;29609](https://github.com/quarkusio/quarkus/pull/29609) - Remove Reflection replacements, now supported by GraalVM

</details>

<details>
<summary>quarkusio/quarkus-platform</summary>

### [`v2.15.3.Final`](https://github.com/quarkusio/quarkus-platform/compare/2.15.2.Final...2.15.3.Final)

[Compare Source](https://github.com/quarkusio/quarkus-platform/compare/2.15.2.Final...2.15.3.Final)

</details>

---

### Configuration

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

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **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-->