tree 9cef675a90b9d20ca5e6e06fb97ceca71e020d3e
parent b552be76afac95963963cc35a111cde23c6d54d2
parent 736944c6b74e984433799772097089fb81b5f4f5
author Marge Bot <marge@benkard.de> 1701197596 +0000
committer Marge Bot <marge@benkard.de> 1701197596 +0000

Update all non-major dependencies (mulk/mulkcms2!45)

This MR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [flow-bin](https://github.com/flowtype/flow-bin) ([changelog](https://github.com/facebook/flow/blob/master/Changelog.md)) | devDependencies | minor | [`^0.220.0` -> `^0.222.0`](https://renovatebot.com/diffs/npm/flow-bin/0.220.0/0.222.0) |
| [org.postgresql:postgresql](https://jdbc.postgresql.org) ([source](https://github.com/pgjdbc/pgjdbc)) | build | minor | `42.6.0` -> `42.7.0` |
| [org.liquibase.ext:liquibase-hibernate5](https://github.com/liquibase/liquibase-hibernate/wiki) ([source](https://github.com/liquibase/liquibase-hibernate)) | build | minor | `4.24.0` -> `4.25.0` |
| [org.liquibase:liquibase-maven-plugin](http://www.liquibase.org/liquibase-maven-plugin) ([source](https://github.com/liquibase/liquibase)) | build | minor | `4.24.0` -> `4.25.0` |
| [org.jsoup:jsoup](https://jsoup.org/) ([source](https://github.com/jhy/jsoup)) | compile | minor | `1.16.2` -> `1.17.1` |
| [io.hypersistence:hypersistence-utils-hibernate-62](https://github.com/vladmihalcea/hypersistence-utils) | compile | patch | `3.6.0` -> `3.6.1` |
| [org.hibernate.orm:hibernate-envers](https://hibernate.org/orm) ([source](https://github.com/hibernate/hibernate-orm)) | build | minor | `6.3.1.Final` -> `6.4.0.Final` |
| [org.hibernate.orm:hibernate-core](https://hibernate.org/orm) ([source](https://github.com/hibernate/hibernate-orm)) | build | minor | `6.3.1.Final` -> `6.4.0.Final` |
| [com.blazebit:blaze-persistence-bom](https://persistence.blazebit.com) ([source](https://github.com/Blazebit/blaze-persistence)) | import | patch | `1.6.9` -> `1.6.10` |
| [com.diffplug.spotless:spotless-maven-plugin](https://github.com/diffplug/spotless) | build | minor | `2.40.0` -> `2.41.0` |
| [io.quarkus:quarkus-maven-plugin](https://github.com/quarkusio/quarkus) | build | minor | `3.5.1` -> `3.6.0` |
| [io.quarkus:quarkus-universe-bom](https://github.com/quarkusio/quarkus-platform) | import | patch | `3.5.1` -> `3.5.3` |

---

### Release Notes

<details>
<summary>flowtype/flow-bin</summary>

### [`v0.222.0`](https://github.com/flowtype/flow-bin/compare/543cad72eaa41b4c6bd25d409f7592f680a12f04...84a68f1729ef9263a4d0b1441f66ac4a3f43db35)

[Compare Source](https://github.com/flowtype/flow-bin/compare/543cad72eaa41b4c6bd25d409f7592f680a12f04...84a68f1729ef9263a4d0b1441f66ac4a3f43db35)

### [`v0.221.0`](https://github.com/flowtype/flow-bin/compare/e8b3a2e60ccc849106ea1e91ee3e69e2f2c5d671...543cad72eaa41b4c6bd25d409f7592f680a12f04)

[Compare Source](https://github.com/flowtype/flow-bin/compare/e8b3a2e60ccc849106ea1e91ee3e69e2f2c5d671...543cad72eaa41b4c6bd25d409f7592f680a12f04)

### [`v0.220.1`](https://github.com/flowtype/flow-bin/compare/030bfc6a238519daed67ffd1a72d3d87b07f9b0f...e8b3a2e60ccc849106ea1e91ee3e69e2f2c5d671)

[Compare Source](https://github.com/flowtype/flow-bin/compare/030bfc6a238519daed67ffd1a72d3d87b07f9b0f...e8b3a2e60ccc849106ea1e91ee3e69e2f2c5d671)

</details>

<details>
<summary>pgjdbc/pgjdbc</summary>

### [`v42.7.0`](https://github.com/pgjdbc/pgjdbc/blob/HEAD/CHANGELOG.md#&#8203;4270-2023-11-20-093300--0500)

##### Changed

-   fix: Deprecate for removal PGPoint.setLocation(java.awt.Point) to cut dependency to `java.desktop` module. [MR #&#8203;2967](https://github.com/pgjdbc/pgjdbc/pull/2967)
-   feat: return all catalogs for getCatalogs metadata query closes [ISSUE #&#8203;2949](https://github.com/pgjdbc/pgjdbc/issues/2949) [MR #&#8203;2953](https://github.com/pgjdbc/pgjdbc/pull/2953)
-   feat: support SET statements combining with other queries with semicolon in PreparedStatement [MR ##&#8203;2973](https://github.com/pgjdbc/pgjdbc/pull/2973)

##### Fixed

-   chore: add styleCheck Gradle task to report style violations [MR #&#8203;2980](https://github.com/pgjdbc/pgjdbc/pull/2980)
-   fix: Include currentXid in "Error rolling back prepared transaction" exception message [MR #&#8203;2978](https://github.com/pgjdbc/pgjdbc/pull/2978)
-   fix: add varbit as a basic type inside the TypeInfoCache [MR #&#8203;2960](https://github.com/pgjdbc/pgjdbc/pull/2960)
-   fix: Fix failing tests for version 16.  [MR #&#8203;2962](https://github.com/pgjdbc/pgjdbc/pull/2962)
-   fix: allow setting arrays with ANSI type name [MR #&#8203;2952](https://github.com/pgjdbc/pgjdbc/pull/2952)
-   feat: Use KeepAlive to confirm LSNs [MR #&#8203;2941](https://github.com/pgjdbc/pgjdbc/pull/2941)
-   fix: put double ' around log parameter [MR #&#8203;2936](https://github.com/pgjdbc/pgjdbc/pull/2936) fixes [ISSUE #&#8203;2935](https://github.com/pgjdbc/pgjdbc/issues/2935)
-   fix: Fix Issue [#&#8203;2928](https://github.com/pgjdbc/pgjdbc/issues/2928) number of ports not equal to number of servers in datasource [MR #&#8203;2929](https://github.com/pgjdbc/pgjdbc/pull/2929)
-   fix: Use canonical DateStyle name ([#&#8203;2925](https://github.com/pgjdbc/pgjdbc/issues/2925)) fixes [pgbouncer issue](https://github.com/pgbouncer/pgbouncer/issues/776)
-   fix: Method getFastLong should be able to parse all longs [MR #&#8203;2881](https://github.com/pgjdbc/pgjdbc/pull/2881)
-   docs: Fix typos in info.html [MR #&#8203;2860](https://github.com/pgjdbc/pgjdbc/pull/2860)
-   fix: Return correct default from PgDatabaseMetaData.getDefaultTransactionIsolation [MR #&#8203;2992](https://github.com/pgjdbc/pgjdbc/pull/2992) fixes [Issue #&#8203;2991](https://github.com/pgjdbc/pgjdbc/issues/2991)
-   test: fix assertion in RefCursorFetchTestultFetchSize rows
-   test: use try-with-resources in LogicalReplicationStatusTest

</details>

<details>
<summary>liquibase/liquibase-hibernate</summary>

### [`v4.25.0`](https://github.com/liquibase/liquibase-hibernate/releases/tag/v4.25.0): Support for Liquibase Hibernate 6 Extension v4.25.0

[Compare Source](https://github.com/liquibase/liquibase-hibernate/compare/v4.24.0...v4.25.0)

#### Changes

#### What's Changed

-   DAT-15993 - liquibase-hibernate using Liquibase Parent POM by [@&#8203;jandroav](https://github.com/jandroav) in https://github.com/liquibase/liquibase-hibernate/pull/587
-   Update README.md by [@&#8203;vivekBoii](https://github.com/vivekBoii) in https://github.com/liquibase/liquibase-hibernate/pull/585
-   Update pom.xml by [@&#8203;jandroav](https://github.com/jandroav) in https://github.com/liquibase/liquibase-hibernate/pull/596
-   chore(deps): bump liquibase/build-logic from 0.4.7 to 0.5.5 by [@&#8203;dependabot](https://github.com/dependabot) in https://github.com/liquibase/liquibase-hibernate/pull/609
-   Fixed a typo in ReadMe by [@&#8203;smty2018](https://github.com/smty2018) in https://github.com/liquibase/liquibase-hibernate/pull/600

#### New Contributors

-   [@&#8203;vivekBoii](https://github.com/vivekBoii) made their first contribution in https://github.com/liquibase/liquibase-hibernate/pull/585
-   [@&#8203;smty2018](https://github.com/smty2018) made their first contribution in https://github.com/liquibase/liquibase-hibernate/pull/600
-   [@&#8203;sayaliM0412](https://github.com/sayaliM0412) made their first contribution in https://github.com/liquibase/liquibase-hibernate/pull/618

**Full Changelog**: https://github.com/liquibase/liquibase-hibernate/compare/v4.24.0...v4.25.0

</details>

<details>
<summary>liquibase/liquibase</summary>

### [`v4.25.0`](https://github.com/liquibase/liquibase/blob/HEAD/changelog.txt#Liquibase-4250-is-a-major-release)

[Compare Source](https://github.com/liquibase/liquibase/compare/v4.24.0...v4.25.0)

</details>

<details>
<summary>vladmihalcea/hypersistence-utils</summary>

### [`v3.6.1`](https://github.com/vladmihalcea/hypersistence-utils/blob/HEAD/changelog.txt#Version-361---November-11-2023)

\================================================================================

Export the testing mechanism [#&#8203;676](https://github.com/vladmihalcea/hypersistence-utils/issues/676)

</details>

<details>
<summary>hibernate/hibernate-orm</summary>

### [`v6.4.0.Final`](https://github.com/hibernate/hibernate-orm/blob/HEAD/changelog.txt#Changes-in-640Final-November-23-2023)

[Compare Source](https://github.com/hibernate/hibernate-orm/compare/6.3.2...6.4.0)

https://hibernate.atlassian.net/projects/HHH/versions/32212

\*\* Bug
\* \[HHH-17454] - SemanticException caused by type check when comparing generic path to parameter expression
\* \[HHH-17428] - Parameter place holder should start from 1 in StandardTemporaryTableExporter
\* \[HHH-17415] - NullPointerException: EntityValuedPathInterpretation - getNavigablePath()
\* \[HHH-17412] - Type comparison error due to surprising javac method selection
\* \[HHH-17411] - Fetch join on treated join leads to owner not selected error
\* \[HHH-17386] - Type inference source is not reset for top level predicates
\* \[HHH-17384] - OneToMany association with [@&#8203;NotFound](https://github.com/NotFound) results in SQL with different JOIN-type for SELECT (LEFT JOIN) and COUNT (JOIN)
\* \[HHH-17383] - Association is null in lazy initialized element collection
\* \[HHH-17382] - Dynamic instantiation leads to superclass fields not found when using injection
\* \[HHH-17381] - fix wrong groupId in Compatibility.adoc
\* \[HHH-17380] - Persisting an entity with a non generated id and [@&#8203;MapsId](https://github.com/MapsId) throws PropertyValueException
\* \[HHH-17370] - ServiceException: Unable to create requested service \[org.hibernate.engine.jdbc.env.spi.JdbcEnvironment] due to: Cannot invoke "org.hibernate.resource.jdbc.spi.JdbcObserver.jdbcConnectionAcquisitionEnd(java.sql.Connection)" because "this.observer" is null
\* \[HHH-17344] - DB2zDialect NullPointerException
\* \[HHH-17328] - Retrieve entity using entity graph not adding type in the where clause for [@&#8203;Inheritance](https://github.com/Inheritance)(strategy = InheritanceType.SINGLE_TABLE)
\* \[HHH-17313] - Session#setDefaultReadOnly is ignored by named queries
\* \[HHH-17308] - AssertionError when mixing [@&#8203;SQLSelect](https://github.com/SQLSelect) and composite ID
\* \[HHH-17299] - AssertionError in DiscriminatorPathInterpretation when treating a path with the same subtype
\* \[HHH-17294] - Non-Embeddable JSON objects are not marked as dirty when modified
\* \[HHH-17292] - MappedSuperclass with more than 1 subclass level leads to "UnknownPathException: Could not resolve attribute"
\* \[HHH-17102] - [@&#8203;SqlResultSetMapping](https://github.com/SqlResultSetMapping) doesn’t work with [@&#8203;Inheritance](https://github.com/Inheritance)(strategy = InheritanceType.JOINED)

\*\* Deprecation
\* \[HHH-17441] - Deprecate [@&#8203;Comment](https://github.com/Comment)

\*\* Improvement
\* \[HHH-17425] - Introduce new configuration parameters for offline Dialect initialization
\* \[HHH-17424] - Have Dialect manage more of ExtractedDatabaseMetadata
\* \[HHH-17417] - Workaround Oracle driver issue to reduce connection creation
\* \[HHH-17409] - Support offset without limit in AbstractSimpleLimitHandler and Oracle12LimitHandler
\* \[HHH-17389] - Add getQueryHintString() for PostgreSQLDialect
\* \[HHH-17372] - Endless recursion between default implementations of SelectionQuery.getResultStream() and SelectionQuery.stream()
\* \[HHH-17355] - Smoothen rough edges with array functions
\* \[HHH-17340] - Fix typos in javadoc
\* \[HHH-17023] - Add support for Altibase dialect
\* \[HHH-15074] - Allow partial composite id generation for EmbeddedId

\*\* New Feature
\* \[HHH-17357] - Support pgvector types and functions
\* \[HHH-17210] - Expose custom JFR events

\*\* Sub-task
\* \[HHH-17347] - Support for JDK which do not support JFR events

\*\* Task
\* \[HHH-17390] - Change scope of AbstyractEntityInitializer#resolveInstance
\* \[HHH-17367] - Add links to tutorials in documentation
\* \[HHH-17362] - Define dependencies of hibernate-jpamodelgen as api
\* \[HHH-17350] - Work on hibernate-models, XSD and JAXB

### [`v6.3.2.Final`](https://github.com/hibernate/hibernate-orm/compare/6.3.1...6.3.2)

[Compare Source](https://github.com/hibernate/hibernate-orm/compare/6.3.1...6.3.2)

</details>

<details>
<summary>Blazebit/blaze-persistence</summary>

### [`v1.6.10`](https://github.com/Blazebit/blaze-persistence/blob/HEAD/CHANGELOG.md#&#8203;1610)

[Compare Source](https://github.com/Blazebit/blaze-persistence/compare/1.6.9...1.6.10)

12/11/2023 - [Release tag](https://github.com/Blazebit/blaze-persistence/releases/tag/1.6.10) [Resolved issues](https://github.com/Blazebit/blaze-persistence/issues?q=is%3Aissue+milestone%3A1.6.10+is%3Aclosed+sort%3Aupdated-desc)

##### New features

-   Support JDK 21
-   Add CockroachDB function registrations
-   Support Hibernate 6.3 and 6.4
-   Special case limit 1 in correlation builders to support old MySQL and MariaDB versions

##### Bug fixes

-   Fix parsing error for entity view limit mapping
-   Fix dropping of embeddable group by expression when nested property has same name as parent property
-   Fix SQL generation for lateral subqueries when correlated path has `@Where` predicate
-   Fix `ConcurrentModificationException` during metamodel determination for special Hibernate Envers mappings
-   Clear `EntityViewManager` static fields in entity view implementations to avoid possible memory leak
-   Ignore `@Any` mapped attributes in enum type scanning
-   Fix NPE caused by wrong order by expression during criteria builder copying
-   Workaround Hibernate 6 returning null java type for enum parameters
-   Add Entity View type test values for more Java types

##### Backwards-incompatible changes

None yet

</details>

<details>
<summary>diffplug/spotless</summary>

### [`v2.41.0`](https://github.com/diffplug/spotless/blob/HEAD/CHANGES.md#&#8203;2410---2023-08-29)

##### Added

-   Add a `jsonPatch` step to `json` formatter configurations. This allows patching of JSON documents using [JSON Patches](https://jsonpatch.com). ([#&#8203;1753](https://github.com/diffplug/spotless/pull/1753))
-   Support GJF own import order. ([#&#8203;1780](https://github.com/diffplug/spotless/pull/1780))

##### Fixed

-   Use latest versions of popular style guides for `eslint` tests to fix failing `useEslintXoStandardRules` test. ([#&#8203;1761](https://github.com/diffplug/spotless/pull/1761), [#&#8203;1756](https://github.com/diffplug/spotless/issues/1756))
-   Add support for `prettier` version `3.0.0` and newer. ([#&#8203;1760](https://github.com/diffplug/spotless/pull/1760), [#&#8203;1751](https://github.com/diffplug/spotless/issues/1751))
-   Fix npm install calls when npm cache is not up-to-date. ([#&#8203;1760](https://github.com/diffplug/spotless/pull/1760), [#&#8203;1750](https://github.com/diffplug/spotless/issues/1750))

##### Changes

-   Bump default `eslint` version to latest `8.31.0` -> `8.45.0` ([#&#8203;1761](https://github.com/diffplug/spotless/pull/1761))
-   Bump default `prettier` version to latest (v2) `2.8.1` -> `2.8.8`. ([#&#8203;1760](https://github.com/diffplug/spotless/pull/1760))
-   Bump default `greclipse` version to latest `4.27` -> `4.28`. ([#&#8203;1775](https://github.com/diffplug/spotless/pull/1775))

</details>

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

### [`v3.6.0`](https://github.com/quarkusio/quarkus/compare/3.5.3...3.6.0)

[Compare Source](https://github.com/quarkusio/quarkus/compare/3.5.3...3.6.0)

### [`v3.5.3`](https://github.com/quarkusio/quarkus/releases/tag/3.5.3)

[Compare Source](https://github.com/quarkusio/quarkus/compare/3.5.2...3.5.3)

##### Complete changelog

-   [#&#8203;37215](https://github.com/quarkusio/quarkus/pull/37215) - Use LinkedHashMap for parts map to ensure user input order
-   [#&#8203;37214](https://github.com/quarkusio/quarkus/issues/37214) - MultipartFormDataOutput should use an ordered map instead of a HashMap
-   [#&#8203;37210](https://github.com/quarkusio/quarkus/pull/37210) - \[3.5] Fix and adjust Quarkiverse extension template
-   [#&#8203;37209](https://github.com/quarkusio/quarkus/pull/37209) - Build cache - Additional tweaks
-   [#&#8203;37206](https://github.com/quarkusio/quarkus/pull/37206) - recognize quarkus.tls.trust-all property by keycloak-admin-client extension
-   [#&#8203;37174](https://github.com/quarkusio/quarkus/pull/37174) - Ignore files coming from quarkus-ide-launcher jar
-   [#&#8203;37130](https://github.com/quarkusio/quarkus/pull/37130) - Do not report unused deprecated runtime props with default value as used
-   [#&#8203;37102](https://github.com/quarkusio/quarkus/pull/37102) - Fix filter per extension in dev ui
-   [#&#8203;37073](https://github.com/quarkusio/quarkus/pull/37073) - Use 3.2 as the example stream for update-quarkus.adoc
-   [#&#8203;37072](https://github.com/quarkusio/quarkus/issues/37072) - Deprecated runtime configuration properties with default value are reported even though never used
-   [#&#8203;37046](https://github.com/quarkusio/quarkus/pull/37046) - Adjust Quarkiverse Antora doc templates a bit
-   [#&#8203;36961](https://github.com/quarkusio/quarkus/pull/36961) - Fix GraphQL WebSocket handling occurring before authorization

### [`v3.5.2`](https://github.com/quarkusio/quarkus/releases/tag/3.5.2)

[Compare Source](https://github.com/quarkusio/quarkus/compare/3.5.1...3.5.2)

##### Complete changelog

-   [#&#8203;37120](https://github.com/quarkusio/quarkus/pull/37120) - Bump Smallrye RM from 4.10.1 to 4.10.2
-   [#&#8203;37104](https://github.com/quarkusio/quarkus/pull/37104) - Make analytics tests more a bit more resilient
-   [#&#8203;37090](https://github.com/quarkusio/quarkus/pull/37090) - Add the actual coordinates of the MySQL driver
-   [#&#8203;37070](https://github.com/quarkusio/quarkus/pull/37070) - Security doc fix: Broken link and bad code snippet
-   [#&#8203;37069](https://github.com/quarkusio/quarkus/pull/37069) - Tiny tweaks based on QE feedback for Datasource guide
-   [#&#8203;37068](https://github.com/quarkusio/quarkus/pull/37068) - Updates infinispan client intelligence section
-   [#&#8203;37058](https://github.com/quarkusio/quarkus/pull/37058) - Bump com.fasterxml.jackson:jackson-bom from 2.15.2 to 2.15.3
-   [#&#8203;37055](https://github.com/quarkusio/quarkus/pull/37055) - Bump io.smallrye.config:smallrye-config-source-yaml from 3.4.1 to 3.4.4 in /devtools/gradle
-   [#&#8203;37038](https://github.com/quarkusio/quarkus/pull/37038) - Disable CustomManifestArgumentsTest on Windows
-   [#&#8203;37032](https://github.com/quarkusio/quarkus/pull/37032) - OpenAPI make sure basic auth auto detection work
-   [#&#8203;37028](https://github.com/quarkusio/quarkus/pull/37028) - Fix typos in reactive-sql-clients.adoc
-   [#&#8203;37025](https://github.com/quarkusio/quarkus/pull/37025) - Document how to log authentication failures for RESTEasy Reactive users migrating from the RESTEasy Classic
-   [#&#8203;37019](https://github.com/quarkusio/quarkus/pull/37019) - Address CVE-2023-21971 present in MySQL connector
-   [#&#8203;37018](https://github.com/quarkusio/quarkus/issues/37018) - Address CVE-2023-21971 present in MySQL connector
-   [#&#8203;37015](https://github.com/quarkusio/quarkus/pull/37015) - Bump org.eclipse.parsson:parsson from 1.1.4 to 1.1.5
-   [#&#8203;37010](https://github.com/quarkusio/quarkus/pull/37010) - Fix vale errors and some warnings in the OIDC Configuration Properties reference guide
-   [#&#8203;37006](https://github.com/quarkusio/quarkus/pull/37006) - Never register server specific providers in REST Client (fixed)
-   [#&#8203;37003](https://github.com/quarkusio/quarkus/pull/37003) - Small adjustments for documentation related content
-   [#&#8203;37001](https://github.com/quarkusio/quarkus/pull/37001) - Revert "Unblock SmallRye Health exposed routes"
-   [#&#8203;36991](https://github.com/quarkusio/quarkus/pull/36991) - Upgrade es-module-shims to 1.8.1
-   [#&#8203;36985](https://github.com/quarkusio/quarkus/pull/36985) - Generate a file with relations between guides
-   [#&#8203;36983](https://github.com/quarkusio/quarkus/pull/36983) - Fix discarded ObjectMapper configuration
-   [#&#8203;36981](https://github.com/quarkusio/quarkus/pull/36981) - Updates to Infinispan 14.0.20.Final
-   [#&#8203;36968](https://github.com/quarkusio/quarkus/pull/36968) - Send host.name in all spans
-   [#&#8203;36953](https://github.com/quarkusio/quarkus/pull/36953) - Workaround https://github.com/quarkusio/quarkus/issues/36952 alias https://github.com/jboss/jboss-parent-pom/issues/236 jboss-parent:40 still manages jdk-misc, but does not define version.jdk-misc anymore
-   [#&#8203;36942](https://github.com/quarkusio/quarkus/pull/36942) - Option TraceServiceLoaderFeature removed in GraalVM 23.1
-   [#&#8203;36941](https://github.com/quarkusio/quarkus/pull/36941) - Fix OTel Resource Attributes
-   [#&#8203;36924](https://github.com/quarkusio/quarkus/pull/36924) - Add keywords and topics for hibernate-search-orm-elasticsearch.adoc
-   [#&#8203;36917](https://github.com/quarkusio/quarkus/pull/36917) - Update SmallRye Config to 3.4.4
-   [#&#8203;36914](https://github.com/quarkusio/quarkus/pull/36914) - Reset databases/users for each Hibernate ORM tenancy test module
-   [#&#8203;36912](https://github.com/quarkusio/quarkus/pull/36912) - Avoid `@TempDir` in RestClientCDIDelegateBuilderTest
-   [#&#8203;36884](https://github.com/quarkusio/quarkus/issues/36884) - SmallRye Config property mapping mismatches from the property name in the generated config documentation
-   [#&#8203;36868](https://github.com/quarkusio/quarkus/issues/36868) - Native binary generated using quarkus, graalvm and picocli trying to read from .env folder in working directory
-   [#&#8203;36856](https://github.com/quarkusio/quarkus/issues/36856) - Lowercase env vars with hyphens are no picked up anymore in Quarkus 3.5.0 (e.g. in docker compose or Hashicorp Nomad)
-   [#&#8203;36850](https://github.com/quarkusio/quarkus/issues/36850) - ObjectMapper configuration is discarded in resteasy-reactive-jackson's JsonFactory
-   [#&#8203;36847](https://github.com/quarkusio/quarkus/issues/36847) - SmallRye Config error message suggests strange enum values when a bad value is passed
-   [#&#8203;36753](https://github.com/quarkusio/quarkus/pull/36753) - Fix order of defaults recording
-   [#&#8203;36742](https://github.com/quarkusio/quarkus/issues/36742) - DevUI resource error on main
-   [#&#8203;36711](https://github.com/quarkusio/quarkus/pull/36711) - Disable Http2RSTFloodProtectionTest on Windows
-   [#&#8203;36578](https://github.com/quarkusio/quarkus/pull/36578) - Maven CLI: add startWith matching into recipes detection
-   [#&#8203;36573](https://github.com/quarkusio/quarkus/issues/36573) - Maven CLI: add wildcard matching into recipes detection
-   [#&#8203;36570](https://github.com/quarkusio/quarkus/pull/36570) - Maven CLI: use recipes for platform extensions
-   [#&#8203;36568](https://github.com/quarkusio/quarkus/issues/36568) - Maven CLI: use recipes for platform extensions
-   [#&#8203;36129](https://github.com/quarkusio/quarkus/issues/36129) - auto-service-loader-registration fails with GraalVM CE 21+35.1
-   [#&#8203;32049](https://github.com/quarkusio/quarkus/issues/32049) - resteasy-reactive Interceptors don't get executed after Authorization failure
-   [#&#8203;31024](https://github.com/quarkusio/quarkus/issues/31024) - Resteasy Reactive client tries to use ContainerResponseFilter

</details>

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

### [`v3.5.3`](https://github.com/quarkusio/quarkus-platform/compare/3.5.2...3.5.3)

[Compare Source](https://github.com/quarkusio/quarkus-platform/compare/3.5.2...3.5.3)

### [`v3.5.2`](https://github.com/quarkusio/quarkus-platform/compare/3.5.1...3.5.2)

[Compare Source](https://github.com/quarkusio/quarkus-platform/compare/3.5.1...3.5.2)

</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.

👻 **Immortal**: This MR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.

---

 - [ ] <!-- 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-->