-
Notifications
You must be signed in to change notification settings - Fork 2.7k
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
Improve compatibility of the REST Client configuration #42932
Conversation
🎊 PR Preview b702e31 has been successfully built and deployed to https://quarkus-pr-main-42932-preview.surge.sh/version/main/guides/
|
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
The CI failures seem related
…On Sun, Sep 1, 2024, 03:46 quarkus-bot[bot] ***@***.***> wrote:
Status for workflow Quarkus CI
This is the status report for running Quarkus CI on commit e69225d
<e69225d>
.
Failing Jobs
Status Name Step Failures Logs Raw logs Build scan
✖ JVM Tests - JDK 17 Build Failures
<#m_8440690412275905414_user-content-test-failures-job-29519280841> Logs
<https://github.com/quarkusio/quarkus/actions/runs/10649192250/job/29519280841> Raw
logs
<https://github.com/quarkusio/quarkus/commit/e69225ded3de3013345457828305d2eaaf66bfc5/checks/29519280841/logs>
🚧
✖ JVM Tests - JDK 21 Build Failures
<#m_8440690412275905414_user-content-test-failures-job-29519281220> Logs
<https://github.com/quarkusio/quarkus/actions/runs/10649192250/job/29519281220> Raw
logs
<https://github.com/quarkusio/quarkus/commit/e69225ded3de3013345457828305d2eaaf66bfc5/checks/29519281220/logs>
🚧
✖ JVM Tests - JDK 17 Windows Build Failures
<#m_8440690412275905414_user-content-test-failures-job-29519281346> Logs
<https://github.com/quarkusio/quarkus/actions/runs/10649192250/job/29519281346> Raw
logs
<https://github.com/quarkusio/quarkus/commit/e69225ded3de3013345457828305d2eaaf66bfc5/checks/29519281346/logs>
🚧
Full information is available in the Build summary check run
<https://github.com/quarkusio/quarkus/runs/29519854942>.
Failures ⚙️ JVM Tests - JDK 17 #
<#m_8440690412275905414_user-content-test-failures-job-29519280841>
- Failing: extensions/resteasy-classic/resteasy-client/runtime ! Skipped: extensions/amazon-lambda-http/http-event-server extensions/amazon-lambda-rest/rest-event-server extensions/amazon-lambda/event-server and 98 more
📦 extensions/resteasy-classic/resteasy-client/runtime
✖
io.quarkus.restclient.runtime.RestClientBaseTest.testClientSpecificConfigs
line 109 - History
<https://ge.quarkus.io/scans/tests?tests.container=io.quarkus.restclient.runtime.RestClientBaseTest&tests.test=testClientSpecificConfigs>
- More details
<https://github.com/quarkusio/quarkus/runs/29519854942#user-content-test-failure-io.quarkus.restclient.runtime.restclientbasetest-1>
- Source on GitHub
<https://github.com/quarkusio/quarkus/blob/e69225ded3de3013345457828305d2eaaf66bfc5/extensions/resteasy-classic/resteasy-client/runtime/src/test/java/io/quarkus/restclient/runtime/RestClientBaseTest.java#L109>
Argument(s) are different! Wanted:
restClientBuilder.baseUrl(
http://localhost
);
-> at io.quarkus.restclient.runtime.RestClientBaseTest.testClientSpecificConfigs(RestClientBaseTest.java:109)
Actual invocations have different arguments:
restClientBuilder.baseUrl(
http://localhost:8080
------------------------------
⚙️ JVM Tests - JDK 21 #
<#m_8440690412275905414_user-content-test-failures-job-29519281220>
- Failing: extensions/resteasy-classic/resteasy-client/runtime ! Skipped: extensions/amazon-lambda-http/http-event-server extensions/amazon-lambda-rest/rest-event-server extensions/amazon-lambda/event-server and 98 more
📦 extensions/resteasy-classic/resteasy-client/runtime
✖
io.quarkus.restclient.runtime.RestClientBaseTest.testClientSpecificConfigs
line 109 - History
<https://ge.quarkus.io/scans/tests?tests.container=io.quarkus.restclient.runtime.RestClientBaseTest&tests.test=testClientSpecificConfigs>
- More details
<https://github.com/quarkusio/quarkus/runs/29519854942#user-content-test-failure-io.quarkus.restclient.runtime.restclientbasetest-1>
- Source on GitHub
<https://github.com/quarkusio/quarkus/blob/e69225ded3de3013345457828305d2eaaf66bfc5/extensions/resteasy-classic/resteasy-client/runtime/src/test/java/io/quarkus/restclient/runtime/RestClientBaseTest.java#L109>
Argument(s) are different! Wanted:
restClientBuilder.baseUrl(
http://localhost
);
-> at io.quarkus.restclient.runtime.RestClientBaseTest.testClientSpecificConfigs(RestClientBaseTest.java:109)
Actual invocations have different arguments:
restClientBuilder.baseUrl(
http://localhost:8080
------------------------------
⚙️ JVM Tests - JDK 17 Windows #
<#m_8440690412275905414_user-content-test-failures-job-29519281346>
- Failing: extensions/resteasy-classic/resteasy-client/runtime ! Skipped: extensions/amazon-lambda-http/http-event-server extensions/amazon-lambda-rest/rest-event-server extensions/amazon-lambda/event-server and 98 more
📦 extensions/resteasy-classic/resteasy-client/runtime
✖
io.quarkus.restclient.runtime.RestClientBaseTest.testClientSpecificConfigs
line 109 - History
<https://ge.quarkus.io/scans/tests?tests.container=io.quarkus.restclient.runtime.RestClientBaseTest&tests.test=testClientSpecificConfigs>
- More details
<https://github.com/quarkusio/quarkus/runs/29519854942#user-content-test-failure-io.quarkus.restclient.runtime.restclientbasetest-1>
- Source on GitHub
<https://github.com/quarkusio/quarkus/blob/e69225ded3de3013345457828305d2eaaf66bfc5/extensions/resteasy-classic/resteasy-client/runtime/src/test/java/io/quarkus/restclient/runtime/RestClientBaseTest.java#L109>
Argument(s) are different! Wanted:
restClientBuilder.baseUrl(
http://localhost
);
-> at io.quarkus.restclient.runtime.RestClientBaseTest.testClientSpecificConfigs(RestClientBaseTest.java:109)
Actual invocations have different arguments:
restClientBuilder.baseUrl(
http://localhost:8080
------------------------------
Flaky tests - Develocity <https://ge.quarkus.io/scans/tests> ⚙️ JVM Tests
- JDK 17 📦 extensions/resteasy-reactive/rest-client/deployment
✖
io.quarkus.rest.client.reactive.stork.StorkResponseTimeLoadBalancerTest.shouldUseFasterService
- History
<https://ge.quarkus.io/scans/tests?tests.container=io.quarkus.rest.client.reactive.stork.StorkResponseTimeLoadBalancerTest&tests.test=shouldUseFasterService>
- expected: "hello, Alice" but was: "hello, I'm a slow server" -
org.opentest4j.AssertionFailedError
org.opentest4j.AssertionFailedError:
expected: "hello, Alice"
but was: "hello, I'm a slow server"
at io.quarkus.rest.client.reactive.stork.StorkResponseTimeLoadBalancerTest.shouldUseFasterService(StorkResponseTimeLoadBalancerTest.java:58)
at java.base/java.lang.reflect.Method.invoke(Method.java:569)
at io.quarkus.test.QuarkusUnitTest.runExtensionMethod(QuarkusUnitTest.java:499)
at io.quarkus.test.QuarkusUnitTest.interceptTestMethod(QuarkusUnitTest.java:413)
—
Reply to this email directly, view it on GitHub
<#42932 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ABBMDPZFWKTVURMNWUTAQ4DZUJPVDAVCNFSM6AAAAABNOI7TZGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGMRTGA4TENZSHE>
.
You are receiving this because your review was requested.Message ID:
***@***.***>
|
e69225d
to
1da0004
Compare
Just a wrong assertion: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the PR! I added some comments.
I must admit that I'm a bit concerned that this config requires so many hacks. But I can't say I understand fully all the requirements so it's just a vague impression.
for (RegisteredRestClient restClient : restClients) { | ||
builder.withDefaultValue("quarkus.rest-client.\"" + restClient.getFullName() + "\".force", "true"); | ||
builder.withDefaultValue("quarkus.rest-client." + restClient.getSimpleName() + ".force", "true"); | ||
if (restClient.getConfigKey() != null) { | ||
builder.withDefaultValue("quarkus.rest-client." + restClient.getConfigKey() + ".force", "true"); | ||
builder.withDefaultValue("quarkus.rest-client.\"" + restClient.getConfigKey() + "\".force", "true"); | ||
} | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why are we doing that and enforcing this value here? I don't understand why we would have to do that.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
OK, so I have done my homework about this thing and it seems reasonable.
I wonder though if we should come up with a way to filter it from the Dev UI? Maybe by filtering config that shouldn't appear in the doc? If it's not in the doc, I would thing that we wouldn't want it to be visible.
Or we would need another annotation.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Note that I'm not requesting a change for this patch. Just thinking out loud for the future.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've tried to add that explanation here:
Lines 19 to 27 in 1da0004
* Usually, named configuration is mapped using a <code>Map</code> because the names are dynamic and unknown to | |
* Quarkus. In the case of the REST Client, configuration names are fixed and known at build time, but not to the point | |
* where the names can be mapped statically, so they still need to be mapped in a <code>Map</code>. | |
* <p> | |
* To populate a <code>Map</code>, because the names are dynamic, the Config system has to rely on the list of | |
* property names provided by each source. This also applies to the REST Client, but since the names are known to | |
* Quarkus, the REST Client configuration could be loaded even for sources that don't provide a list of property | |
* names. To achieve such behaviour, we provide a dummy configuration under each REST Client name to force | |
* the Config system to look up the remaining configuration in the same tree. |
Let me expand that further, and then I can update the javadoc too:
In config, when we populate a Map
, we must rely on the list of property names because the key is dynamic. As an example, if we want to retrieve the list of datasources, we have to look for properties quarkus.datasource."datasource-name"
, and then we do the rest.
There is a catch: of course, this only works when we get at least one property of the tree with the expected name. The problem is that some sources (like Vault) cannot list the properties. In the example case, if all the datasource properties are only set in Vault, we cannot load that configuration because we don't know it exists. What we recommend is to set some base properties and then override them.
In the case of the REST Client, it's a bit of a mix. At the mapping level, we use a Map
because, obviously, we can't represent an unknown number of clients in the mapping structure, but we do know all the possible keys in advance. So, I'm adding a dummy key to force the lookup. Once the Config knows the dynamic part of a key, it will then query all the other pieces directly so that the Vault config will work.
I plan to support this out of the box without having to rely on workarounds.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, I missed it because of the context of the diff but the Javadoc you already have is perfectly clear. That's what I was trying to say in my previous message by "doing my homework" :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I wonder though if we should come up with a way to filter it from the Dev UI? Maybe by filtering config that shouldn't appear in the doc? If it's not in the doc, I would thing that we wouldn't want it to be visible.
Yes, it is annoying, and I didn't think of that when I added it in the first place. We could filter it with the doc annotation, or maybe @Deprecated
?
Anyway, I'll add something in the Config system for such cases (we have the same case in OTel), where we can't statically map the configuration, but the keys are well-known. I'll add something that will always query specific keys without relying on the list provided by the sources, so these types of hacks will no longer be required.
/** | ||
* Duplicate mapping of {@link RestClientConfig#url()} to keep a reference of the name used to retrieve the | ||
* <code>url</code>. We need this to reload the <code>url</code> configuration in case it contains an expression | ||
* to <code>${quarkus.http.port}</code>, which is only set after we load the config. | ||
*/ | ||
@ConfigDocIgnore | ||
@WithName("url") | ||
ConfigValue urlValue(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe it's a crazy idea but should we affect the random port when reading the config instead? Maybe by using a converter?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Unfortunately, no. The problem here is how we read and set quarkus.http.port
.
One of the first things we do when we start Quarkus is to load the configurations and cache the values in the mappings / roots (this is the same for old roots and new mappings). This is fine when we explicitly set the quarkus.http.port
since the value gets expanded to the explicitly set port.
When we set a random port of 0
, we delegate the random port assignment to Vert.x, but we also need the configuration to be loaded to start Vert.x. So we have a chicken-egg problem here because the configuration starts before Vert.x, any expansion done for ${quarkus.http.port}
is 0
(the random port). This will get cached in the config objects.
Once Vert.x sets the port, this is mutating the SystemProperties
:
Lines 1312 to 1332 in f399671
if (https) { | |
actualHttpsPort = actualPort; | |
validateHttpPorts(actualHttpPort, actualHttpsPort); | |
} else { | |
actualHttpPort = actualPort; | |
validateHttpPorts(actualHttpPort, actualHttpsPort); | |
} | |
if (actualPort != options.getPort()) { | |
// Override quarkus.http(s)?.(test-)?port | |
String schema; | |
if (https) { | |
clearHttpsProperty = true; | |
schema = "https"; | |
} else { | |
clearHttpProperty = true; | |
actualHttpPort = actualPort; | |
schema = "http"; | |
} | |
portSystemProperties = new PortSystemProperties(); | |
portSystemProperties.set(schema, actualPort, launchMode); | |
} |
Which is a different problem that is causing other issues like:
#42844
#42106 (comment)
#27996
When we get the actual port, all the configuration objects are cached, and we need to query the configuration again to get the updated value. The problem is getting the discovered property name by the REST Client (see explanation in #42904 (comment)). Adding a ConfigValue
here at the mapping class allows us to keep a reference to the full property name of the `URL' so we can query it without having to reconstruct all the REST Client name variations.
This worked previously because it was specifically implemented in REST Client with:
#21530
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
But is Vert.x doing things that we can't do ourselves when the config is read? The contract of this is that you get a random port, we don't really care if it's Vert.x assigning it? Especially since you might want a random port for something else than Vert.x.
Now maybe Vert.x is doing something very clever that we can't replicate easily at the config level?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
BTW, if it wasn't obvious, I'm not advocating that we change things now. But I'm wondering if it's worth discussing it for the future.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also obviously, we would need to keep a list of the ports randomly affected around to make sure we don't affect the same port twice.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I fully agree. We need to remove the random port generation from Vert.x and do it before the config is set up. This would eliminate many of our current hacks and issues.
Of course, I didn't want to make that change here, so I had to rely on another hack :)
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Yes, I get it :( The reason why we have to come up with these many hacks was how the REST Client configuration was implemented: Namely, ignoring all the rules set in place by config roots. We probably shouldn't have allowed that, but at the time, we didn't have mappings fully developed and we didn't encounter issues like #41313, #42092 and others we tried to resolve with #42106. Moving forward, I'll see what I can add to work out of the box in the Config system directly to be able to remove some of these hacks. |
I'm fully in favor of removing the hacks at some point in the near future. |
That is the intention, especially because it will unlock other features, fix bugs, and remove other hacks. During this work, I took a lot of notes, and I'll start filling in issues with the work we have to do. |
Have you by any chance done any profiling for this change? Asking because lately we've seen stuff creep up where we didn't expect it :) |
1da0004
to
39d5ba1
Compare
Status for workflow
|
Status for workflow
|
No. My concern was making it compatible with the old implementation, but both have serious issues. Currently, to populate a REST Client Config, we may have to query all of the following names:
This is crazy! Granted, that We probably need to break a few things to improve this... for instance if I set quarkus.rest-client."foo.bar.Client".url=
quarkus.rest-client."Client".uri=
quarkus.rest-client.config-key.providers=
quarkus.rest-client."config-key".connect-timeout=
config-key/mp-rest/read-timeout= I hope no one is mixing things like this :) I think we should move forward with some things (breaking), like:
I still have to think about quotes... currently, the default implementation in |
+1 from me. But we need to be careful as it would be a breaking change. But that's totally something we could merge for 3.16. |
Agreed, go ahead and break/remove so of the old stuff for 3.16 |
Also, I think we can drop most of the fallbacks we introduced recently (including My rule of thumb is that we need the deprecation to be in at least one LTS and not be too new. |
Makes sense.
Kill them :) |
Sharing some numbers (without much analysis yet - single REST Client app with
This does not measure isolated code changes (it was just to get some quick numbers), so we cannot be sure of the actual degradation. When comparing startup performance, we expect some degradation between With this PR, we can also expect to get worse startup numbers since we are doing even more work. Memory-wise, after the initial request, things are very similar (and I still need to try this PR directly on top of #42106 for a fair comparison. I'm not too fond of these startup numbers, but I'm also unsure if we can improve them without breaking things. I can see two options:
In the meantime, I'll see if I can improve it in any way. |
Stuck between a rock and a hard place :) |
I guess going with an extra hack for the backport and then making the proper fix for |
I think we can live with this and merge this. I think it's better than reverting everything now. |
I very much look forward to having this cleaned up for 3.16 though :) |
Yes, this is going to be a top priority. |
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.233.0` -> `^0.247.0`](https://renovatebot.com/diffs/npm/flow-bin/0.233.0/0.247.1) | | [org.postgresql:postgresql](https://jdbc.postgresql.org) ([source](https://github.com/pgjdbc/pgjdbc)) | build | patch | `42.7.3` -> `42.7.4` | | [org.liquibase:liquibase-maven-plugin](http://www.liquibase.org/liquibase-maven-plugin) ([source](https://github.com/liquibase/liquibase)) | build | minor | `4.27.0` -> `4.29.2` | | [org.jsoup:jsoup](https://jsoup.org/) ([source](https://github.com/jhy/jsoup)) | compile | minor | `1.17.2` -> `1.18.1` | | [net.java.dev.jna:jna](https://github.com/java-native-access/jna) | compile | minor | `5.14.0` -> `5.15.0` | | [io.hypersistence:hypersistence-utils-hibernate-62](https://github.com/vladmihalcea/hypersistence-utils) | compile | minor | `3.7.3` -> `3.8.2` | | [org.hibernate.orm:hibernate-envers](https://hibernate.org/orm) ([source](https://github.com/hibernate/hibernate-orm)) | build | minor | `6.4.4.Final` -> `6.6.1.Final` | | [org.hibernate.orm:hibernate-core](https://hibernate.org/orm) ([source](https://github.com/hibernate/hibernate-orm)) | build | minor | `6.4.4.Final` -> `6.6.1.Final` | | [com.blazebit:blaze-persistence-bom](https://persistence.blazebit.com) ([source](https://github.com/Blazebit/blaze-persistence)) | import | patch | `1.6.11` -> `1.6.12` | | [io.quarkus:quarkus-maven-plugin](https://github.com/quarkusio/quarkus) | build | minor | `3.9.2` -> `3.15.1` | | [io.quarkus:quarkus-universe-bom](https://github.com/quarkusio/quarkus-platform) | import | minor | `3.9.2` -> `3.15.1` | | [org.apache.maven.plugins:maven-enforcer-plugin](https://maven.apache.org/enforcer/) | build | minor | `3.4.1` -> `3.5.0` | --- ### Release Notes <details> <summary>flowtype/flow-bin</summary> ### [`v0.247.1`](https://github.com/flowtype/flow-bin/compare/10b085506316e3df04e6524249812434671efaa6...70454fda20bc6aedf0824bdc85b97b47f2e5f8a2) [Compare Source](https://github.com/flowtype/flow-bin/compare/10b085506316e3df04e6524249812434671efaa6...70454fda20bc6aedf0824bdc85b97b47f2e5f8a2) ### [`v0.247.0`](https://github.com/flowtype/flow-bin/compare/20ab003f3a24c2799c5971f663393d5af82794d3...10b085506316e3df04e6524249812434671efaa6) [Compare Source](https://github.com/flowtype/flow-bin/compare/20ab003f3a24c2799c5971f663393d5af82794d3...10b085506316e3df04e6524249812434671efaa6) ### [`v0.246.0`](https://github.com/flowtype/flow-bin/compare/85a0d04d7c141e1667afaa057401994ced0e765f...20ab003f3a24c2799c5971f663393d5af82794d3) [Compare Source](https://github.com/flowtype/flow-bin/compare/85a0d04d7c141e1667afaa057401994ced0e765f...20ab003f3a24c2799c5971f663393d5af82794d3) ### [`v0.245.2`](https://github.com/flowtype/flow-bin/compare/9063cfaf3ed5da8031a928adef10ae5f35fd9078...85a0d04d7c141e1667afaa057401994ced0e765f) [Compare Source](https://github.com/flowtype/flow-bin/compare/9063cfaf3ed5da8031a928adef10ae5f35fd9078...85a0d04d7c141e1667afaa057401994ced0e765f) ### [`v0.245.1`](https://github.com/flowtype/flow-bin/compare/a1d3980687d16ccd587bd34664057f7f215eb99c...9063cfaf3ed5da8031a928adef10ae5f35fd9078) [Compare Source](https://github.com/flowtype/flow-bin/compare/a1d3980687d16ccd587bd34664057f7f215eb99c...9063cfaf3ed5da8031a928adef10ae5f35fd9078) ### [`v0.245.0`](https://github.com/flowtype/flow-bin/compare/89816515a2450b76be86b9dcbb1b875c04777272...a1d3980687d16ccd587bd34664057f7f215eb99c) [Compare Source](https://github.com/flowtype/flow-bin/compare/89816515a2450b76be86b9dcbb1b875c04777272...a1d3980687d16ccd587bd34664057f7f215eb99c) ### [`v0.244.0`](https://github.com/flowtype/flow-bin/compare/0db80b23abf49b4685591cb8ea2bda7633d638e1...89816515a2450b76be86b9dcbb1b875c04777272) [Compare Source](https://github.com/flowtype/flow-bin/compare/0db80b23abf49b4685591cb8ea2bda7633d638e1...89816515a2450b76be86b9dcbb1b875c04777272) ### [`v0.243.0`](https://github.com/flowtype/flow-bin/compare/d83988cef7089dad1c3749bd8f2acef1f69393b0...0db80b23abf49b4685591cb8ea2bda7633d638e1) [Compare Source](https://github.com/flowtype/flow-bin/compare/d83988cef7089dad1c3749bd8f2acef1f69393b0...0db80b23abf49b4685591cb8ea2bda7633d638e1) ### [`v0.242.1`](https://github.com/flowtype/flow-bin/compare/370552e762b2ef8fbfe7a9f0f5796218a5816b9c...d83988cef7089dad1c3749bd8f2acef1f69393b0) [Compare Source](https://github.com/flowtype/flow-bin/compare/370552e762b2ef8fbfe7a9f0f5796218a5816b9c...d83988cef7089dad1c3749bd8f2acef1f69393b0) ### [`v0.242.0`](https://github.com/flowtype/flow-bin/compare/925098ae8b6bc4a15cdc69adfd48380e92de50fd...370552e762b2ef8fbfe7a9f0f5796218a5816b9c) [Compare Source](https://github.com/flowtype/flow-bin/compare/925098ae8b6bc4a15cdc69adfd48380e92de50fd...370552e762b2ef8fbfe7a9f0f5796218a5816b9c) ### [`v0.241.0`](https://github.com/flowtype/flow-bin/compare/5a823f36c8e38b0c0b050da02e3a30db752076df...925098ae8b6bc4a15cdc69adfd48380e92de50fd) [Compare Source](https://github.com/flowtype/flow-bin/compare/5a823f36c8e38b0c0b050da02e3a30db752076df...925098ae8b6bc4a15cdc69adfd48380e92de50fd) ### [`v0.240.0`](https://github.com/flowtype/flow-bin/compare/0327290783f593218ed77036d23989a8613d9e6c...5a823f36c8e38b0c0b050da02e3a30db752076df) [Compare Source](https://github.com/flowtype/flow-bin/compare/0327290783f593218ed77036d23989a8613d9e6c...5a823f36c8e38b0c0b050da02e3a30db752076df) ### [`v0.239.1`](https://github.com/flowtype/flow-bin/compare/43818100eee78b634a406c1f8596303a90903863...0327290783f593218ed77036d23989a8613d9e6c) [Compare Source](https://github.com/flowtype/flow-bin/compare/43818100eee78b634a406c1f8596303a90903863...0327290783f593218ed77036d23989a8613d9e6c) ### [`v0.239.0`](https://github.com/flowtype/flow-bin/compare/1fd806b4f0b469859df26fb86c741c37c532cd82...43818100eee78b634a406c1f8596303a90903863) [Compare Source](https://github.com/flowtype/flow-bin/compare/1fd806b4f0b469859df26fb86c741c37c532cd82...43818100eee78b634a406c1f8596303a90903863) ### [`v0.238.3`](https://github.com/flowtype/flow-bin/compare/e07895360fef9ac997c059a9872ad4522024b979...1fd806b4f0b469859df26fb86c741c37c532cd82) [Compare Source](https://github.com/flowtype/flow-bin/compare/e07895360fef9ac997c059a9872ad4522024b979...1fd806b4f0b469859df26fb86c741c37c532cd82) ### [`v0.238.2`](https://github.com/flowtype/flow-bin/compare/9e702bc625706909abec18a2e213e58979198300...e07895360fef9ac997c059a9872ad4522024b979) [Compare Source](https://github.com/flowtype/flow-bin/compare/9e702bc625706909abec18a2e213e58979198300...e07895360fef9ac997c059a9872ad4522024b979) ### [`v0.238.1`](https://github.com/flowtype/flow-bin/compare/4777db2e9c0a1e93b59b7e71dab9254a1d5ae476...9e702bc625706909abec18a2e213e58979198300) [Compare Source](https://github.com/flowtype/flow-bin/compare/4777db2e9c0a1e93b59b7e71dab9254a1d5ae476...9e702bc625706909abec18a2e213e58979198300) ### [`v0.238.0`](https://github.com/flowtype/flow-bin/compare/d10459018eecc0569ac4eca99d61f6f119ec4e88...4777db2e9c0a1e93b59b7e71dab9254a1d5ae476) [Compare Source](https://github.com/flowtype/flow-bin/compare/d10459018eecc0569ac4eca99d61f6f119ec4e88...4777db2e9c0a1e93b59b7e71dab9254a1d5ae476) ### [`v0.237.2`](https://github.com/flowtype/flow-bin/compare/c90ffb77c988e84f8f2f8f35cec4478fa29474da...d10459018eecc0569ac4eca99d61f6f119ec4e88) [Compare Source](https://github.com/flowtype/flow-bin/compare/c90ffb77c988e84f8f2f8f35cec4478fa29474da...d10459018eecc0569ac4eca99d61f6f119ec4e88) ### [`v0.237.1`](https://github.com/flowtype/flow-bin/compare/a7d70600c007668013567c20ba8997c1f08fd401...c90ffb77c988e84f8f2f8f35cec4478fa29474da) [Compare Source](https://github.com/flowtype/flow-bin/compare/a7d70600c007668013567c20ba8997c1f08fd401...c90ffb77c988e84f8f2f8f35cec4478fa29474da) ### [`v0.237.0`](https://github.com/flowtype/flow-bin/compare/367281e370b4283b9b6fef94472392c435b6531b...a7d70600c007668013567c20ba8997c1f08fd401) [Compare Source](https://github.com/flowtype/flow-bin/compare/367281e370b4283b9b6fef94472392c435b6531b...a7d70600c007668013567c20ba8997c1f08fd401) ### [`v0.236.0`](https://github.com/flowtype/flow-bin/compare/359a953247f67c56ecea7cc413cfcd9bbcf34397...367281e370b4283b9b6fef94472392c435b6531b) [Compare Source](https://github.com/flowtype/flow-bin/compare/359a953247f67c56ecea7cc413cfcd9bbcf34397...367281e370b4283b9b6fef94472392c435b6531b) ### [`v0.235.1`](https://github.com/flowtype/flow-bin/compare/143bb64cafd66efacbe8df5c669aee86b77ce9b6...359a953247f67c56ecea7cc413cfcd9bbcf34397) [Compare Source](https://github.com/flowtype/flow-bin/compare/143bb64cafd66efacbe8df5c669aee86b77ce9b6...359a953247f67c56ecea7cc413cfcd9bbcf34397) ### [`v0.234.0`](https://github.com/flowtype/flow-bin/compare/2ebcdf3a8f03993e8ccab9e9fb6742000b54f929...143bb64cafd66efacbe8df5c669aee86b77ce9b6) [Compare Source](https://github.com/flowtype/flow-bin/compare/2ebcdf3a8f03993e8ccab9e9fb6742000b54f929...143bb64cafd66efacbe8df5c669aee86b77ce9b6) </details> <details> <summary>pgjdbc/pgjdbc</summary> ### [`v42.7.4`](https://github.com/pgjdbc/pgjdbc/blob/HEAD/CHANGELOG.md#​4274-2024-08-22-080000--0400) ##### Added - chore: SCRAM dependency to 3.1 and support channel binding [MR #​3188](https://github.com/pgjdbc/pgjdbc/pull/3188) - chore: Add PostgreSQL 15, 16, and 17beta1 to CI tests [MR #​3299](https://github.com/pgjdbc/pgjdbc/pull/3299) - test: Update to 17beta3 [MR #​3308](https://github.com/pgjdbc/pgjdbc/pull/3308) - chore: Implement direct SSL ALPN connections [MR #​3252](https://github.com/pgjdbc/pgjdbc/pull/3252) - translation: Add Korean translation file [MR #​3276](https://github.com/pgjdbc/pgjdbc/pull/3276) ##### Fixed - fix: PgInterval ignores case for represented interval string [MR #​3344](https://github.com/pgjdbc/pgjdbc/pull/3344) - perf: Avoid extra copies when receiving int4 and int2 in PGStream [MR #​3295](https://github.com/pgjdbc/pgjdbc/pull/3295) - fix: Add support for Infinity::numeric values in ResultSet.getObject [MR #​3304](https://github.com/pgjdbc/pgjdbc/pull/3304) - fix: Ensure order of results for getDouble [MR #​3301](https://github.com/pgjdbc/pgjdbc/pull/3301) - perf: Replace BufferedOutputStream with unsynchronized PgBufferedOutputStream, allow configuring different Java and SO_SNDBUF buffer sizes [MR #​3248](https://github.com/pgjdbc/pgjdbc/pull/3248) - fix: Fix SSL tests [MR #​3260](https://github.com/pgjdbc/pgjdbc/pull/3260) - fix: Support bytea in preferQueryMode=simple [MR #​3243](https://github.com/pgjdbc/pgjdbc/pull/3243) - fix: Fix [#​3234](https://github.com/pgjdbc/pgjdbc/issues/3234) - Return -1 as update count for stored procedure calls [MR #​3235](https://github.com/pgjdbc/pgjdbc/pull/3235) - fix: Fix [#​3224](https://github.com/pgjdbc/pgjdbc/issues/3224) - conversion for TIME '24:00' to LocalTime breaks in binary-mode [MR #​3225](https://github.com/pgjdbc/pgjdbc/pull/3225) - perf: Speed up getDate by parsing bytes instead of String [MR #​3141](https://github.com/pgjdbc/pgjdbc/pull/3141) - fix: support PreparedStatement.setBlob(1, Blob) and PreparedStatement.setClob(1, Clob) for lobs that return -1 for length [MR #​3136](https://github.com/pgjdbc/pgjdbc/pull/3136) - fix: Validates resultset Params in PGStatement constructor. uses assertThro… [MR #​3171](https://github.com/pgjdbc/pgjdbc/pull/3171) - fix: Validates resultset parameters [MR #​3167](https://github.com/pgjdbc/pgjdbc/pull/3167) - docs: Replace greater to with greater than [MR #​3315](https://github.com/pgjdbc/pgjdbc/pull/3315) - docs: Clarify binaryTransfer and prepareThreshold [MR #​3338](https://github.com/pgjdbc/pgjdbc/pull/3338) - docs: use.md, typo [MR #​3314](https://github.com/pgjdbc/pgjdbc/pull/3314) - test: Use docker v2 which changes docker-compose to docker compose [#​3339](https://github.com/pgjdbc/pgjdbc/pull/3339) - refactor: Merge PgPreparedStatement#setBinaryStream int and long methods [MR #​3165](https://github.com/pgjdbc/pgjdbc/pull/3165) - test: Test both binaryMode=true,false when creating connections in DatabaseMetaDataTest [MR #​3231](https://github.com/pgjdbc/pgjdbc/pull/3231) - docs: Fixed typos in all source code and documentations [MR #​3242](https://github.com/pgjdbc/pgjdbc/pull/3242) - chore: Remove self-hosted runner [MR #​3227](https://github.com/pgjdbc/pgjdbc/pull/3227) - docs: Add cancelSignalTimeout in README [MR #​3190](https://github.com/pgjdbc/pgjdbc/pull/3190) - docs: Document READ_ONLY_MODE in README [MR #​3175](https://github.com/pgjdbc/pgjdbc/pull/3175) - test: Test for +/- infinity double values [MR #​3294](https://github.com/pgjdbc/pgjdbc/pull/3294) - test: Switch localhost and auth-test around for test-gss [MR #​3343](https://github.com/pgjdbc/pgjdbc/pull/3343) - fix: remove preDescribe from internalExecuteBatch [MR #​2883](https://github.com/pgjdbc/pgjdbc/pull/2883) ##### Deprecated - test: Deprecate all PostgreSQL versions older than 9.1 [MR #​3335](https://github.com/pgjdbc/pgjdbc/pull/3335) </details> <details> <summary>liquibase/liquibase</summary> ### [`v4.29.2`](https://github.com/liquibase/liquibase/blob/HEAD/changelog.txt#Liquibase-4292-is-a-patch-release) [Compare Source](https://github.com/liquibase/liquibase/compare/v4.29.1...v4.29.2) > Liquibase 4.29.2 patches minor issues found in Liquibase 4.29.1 release. ### [`v4.29.1`](https://github.com/liquibase/liquibase/blob/HEAD/changelog.txt#Liquibase-4291-is-a-patch-release) [Compare Source](https://github.com/liquibase/liquibase/compare/v4.29.0...v4.29.1) - Liquibase 4.29.1 patches a pom mismatch in the Liquibase BigQuery Commercial Extension. - Liquibase 4.29.1 resolves an issue with the zip distribution where all files were incorrectly placed inside liquibase-4.29.1 directory. This update ensures proper file organization and installation. ### [`v4.29.0`](https://github.com/liquibase/liquibase/blob/HEAD/changelog.txt#Liquibase-4290-is-a-major-release) [Compare Source](https://github.com/liquibase/liquibase/compare/v4.28.0...v4.29.0) > \[!IMPORTANT] > Liquibase 4.29.0 contains several New Capabilities and Notable Enhancements for Liquibase Pro users: Python-based Custom Policy Checks and a new Big Query extension. > \[!NOTE] > See the [Liquibase 4.29.0 Release Notes](https://docs.liquibase.com/start/release-notes/liquibase-release-notes/liquibase-4.29.0.html) for the complete set of release information. ### [`v4.28.0`](https://github.com/liquibase/liquibase/blob/HEAD/changelog.txt#Liquibase-4280-is-a-major-release) [Compare Source](https://github.com/liquibase/liquibase/compare/v4.27.0...v4.28.0) </details> <details> <summary>jhy/jsoup</summary> ### [`v1.18.1`](https://github.com/jhy/jsoup/blob/HEAD/CHANGES.md#​1181-2024-Jul-10) ##### Improvements - **Stream Parser**: A `StreamParser` provides a progressive parse of its input. As each `Element` is completed, it is emitted via a `Stream` or `Iterator` interface. Elements returned will be complete with all their children, and an (empty) next sibling, if applicable. Elements (or their children) may be removed from the DOM during the parse, for e.g. to conserve memory, providing a mechanism to parse an input document that would otherwise be too large to fit into memory, yet still providing a DOM interface to the document and its elements. Additionally, the parser provides a `selectFirst(String query)` / `selectNext(String query)`, which will run the parser until a hit is found, at which point the parse is suspended. It can be resumed via another `select()` call, or via the `stream()` or `iterator()` methods. [2096](https://github.com/jhy/jsoup/pull/2096) - **Download Progress**: added a Response Progress event interface, which reports progress and URLs are downloaded (and parsed). Supported on both a session and a single connection level. [2164](https://github.com/jhy/jsoup/pull/2164), [656](https://github.com/jhy/jsoup/issues/656) - Added `Path` accepting parse methods: `Jsoup.parse(Path)`, `Jsoup.parse(path, charsetName, baseUri, parser)`, etc. [2055](https://github.com/jhy/jsoup/pull/2055) - Updated the `button` tag configuration to include a space between multiple button elements in the `Element.text()` method. [2105](https://github.com/jhy/jsoup/issues/2105) - Added support for the `ns|*` all elements in namespace Selector. [1811](https://github.com/jhy/jsoup/issues/1811) - When normalising attribute names during serialization, invalid characters are now replaced with `_`, vs being stripped. This should make the process clearer, and generally prevent an invalid attribute name being coerced unexpectedly. [2143](https://github.com/jhy/jsoup/issues/2143) ##### Changes - Removed previously deprecated internal classes and methods. [2094](https://github.com/jhy/jsoup/pull/2094) - Build change: the built jar's OSGi manifest no longer imports itself. [2158](https://github.com/jhy/jsoup/issues/2158) ##### Bug Fixes - When tracking source positions, if the first node was a TextNode, its position was incorrectly set to `-1.` [2106](https://github.com/jhy/jsoup/issues/2106) - When connecting (or redirecting) to URLs with characters such as `{`, `}` in the path, a Malformed URL exception would be thrown (if in development), or the URL might otherwise not be escaped correctly (if in production). The URL encoding process has been improved to handle these characters correctly. [2142](https://github.com/jhy/jsoup/issues/2142) - When using `W3CDom` with a custom output Document, a Null Pointer Exception would be thrown. [2114](https://github.com/jhy/jsoup/pull/2114) - The `:has()` selector did not match correctly when using sibling combinators (like e.g.: `h1:has(+h2)`). [2137](https://github.com/jhy/jsoup/issues/2137) - The `:empty` selector incorrectly matched elements that started with a blank text node and were followed by non-empty nodes, due to an incorrect short-circuit. [2130](https://github.com/jhy/jsoup/issues/2130) - `Element.cssSelector()` would fail with "Did not find balanced marker" when building a selector for elements that had a `(` or `[` in their class names. And selectors with those characters escaped would not match as expected. [2146](https://github.com/jhy/jsoup/issues/2146) - Updated `Entities.escape(string)` to make the escaped text suitable for both text nodes and attributes (previously was only for text nodes). This does not impact the output of `Element.html()` which correctly applies a minimal escape depending on if the use will be for text data or in a quoted attribute. [1278](https://github.com/jhy/jsoup/issues/1278) - Fuzz: a Stack Overflow exception could occur when resolving a crafted `<base href>` URL, in the normalizing regex. [2165](https://github.com/jhy/jsoup/issues/2165) *** </details> <details> <summary>java-native-access/jna</summary> ### [`v5.15.0`](https://github.com/java-native-access/jna/blob/HEAD/CHANGES.md#Release-5150) [Compare Source](https://github.com/java-native-access/jna/compare/5.14.0...5.15.0) \============== ## Features - [#​1578](https://github.com/java-native-access/jna/pull/1578): Add support for FreeBSD aarch64 - [@​alexdupre](https://github.com/alexdupre). - [#​1593](https://github.com/java-native-access/jna/pull/1593): Add support for DragonFly BSD x86-64 - [@​liweitianux](https://github.com/liweitianux). - [#​1595](https://github.com/java-native-access/jna/pull/1595): Add `IsProcessorFeaturePresent` to `c.s.j.p.win32.Kernel32` - [@​dbwiddis](https://github.com/dbwiddis). - [#​1602](https://github.com/java-native-access/jna/pull/1602): Add `XMoveWindow`, `XResizeWindow`, `XMoveResizeWindow`, `XRaiseWindow`, `XLowerWindow` X11 calls to `c.s.j.p.unix.X11` - [@​vinceh121](https://github.com/vinceh121). - [#​1613](https://github.com/java-native-access/jna/issues/1613): Added static helper method \`Native#getNativeLibrary' for getting the underlying NativeLibrary instance from a Library interface instance or from a "registered" class - [@​matthiasblaesing](https://github.com/matthiasblaesing). - [#​1624](https://github.com/java-native-access/jna/pull/1624): Enable linker build-id for android builds - [@​mstyura](https://github.com/mstyura). ## Bug Fixes - [#​1579](https://github.com/java-native-access/jna/issues/1579): Fix analysis of ELF binary on arm systems running with a java ELF binary without section table headers (java8 on armv7 NAS) - [@​matthiasblaesing](https://github.com/matthiasblaesing). - [#​1586](https://github.com/java-native-access/jna/issues/1586): Fix free_callback JNI weak reference leak - [@​xiezhaokun](https://github.com/xiezhaokun). - [6486c90d913a413f247eef84742ce3c474738933](https://github.com/java-native-access/jna/commit/6486c90d913a413f247eef84742ce3c474738933): Check CallbackReference#cbstruct for null when checking existing Reference - [@​matthiasblaesing](https://github.com/matthiasblaesing). - [#​1622](https://github.com/java-native-access/jna/issues/1622): Add "linux-riscv64" entry to OSGI Bundle-NativeCode header in MANIFEST.MF - [@​matthiasblaesing](https://github.com/matthiasblaesing). </details> <details> <summary>vladmihalcea/hypersistence-utils</summary> ### [`v3.8.2`](https://github.com/vladmihalcea/hypersistence-utils/blob/HEAD/changelog.txt#Version-382---July-25-2024) \================================================================================ Add JsonClobType and improve JsonType to support CLOB column types [#​734](https://github.com/vladmihalcea/hypersistence-utils/issues/734) ### [`v3.8.1`](https://github.com/vladmihalcea/hypersistence-utils/blob/HEAD/changelog.txt#Version-381---July-03-2024) \================================================================================ Enhance BatchSequenceGenerator with support for IdGeneratorType [#​728](https://github.com/vladmihalcea/hypersistence-utils/issues/728) ### [`v3.8.0`](https://github.com/vladmihalcea/hypersistence-utils/blob/HEAD/changelog.txt#Version-380---June-27-2024) \================================================================================ Add support for mapping Java Enums to custom ordinal values [#​730](https://github.com/vladmihalcea/hypersistence-utils/issues/730) ### [`v3.7.7`](https://github.com/vladmihalcea/hypersistence-utils/blob/HEAD/changelog.txt#Version-377---June-21-2024) \================================================================================ Remove hypersistence-utils-hibernate-52 module [#​726](https://github.com/vladmihalcea/hypersistence-utils/issues/726) MonetaryAmountType should use currency instead of property for the second attribute [#​707](https://github.com/vladmihalcea/hypersistence-utils/issues/707) ### [`v3.7.6`](https://github.com/vladmihalcea/hypersistence-utils/blob/HEAD/changelog.txt#Version-376---June-04-2024) \================================================================================ Use Spring Data Range as an alternative to PostgreSQL range type [#​721](https://github.com/vladmihalcea/hypersistence-utils/issues/721) ListArrayType on Set entity attribute fails for EntityManager.merge operation [#​717](https://github.com/vladmihalcea/hypersistence-utils/issues/717) ### [`v3.7.5`](https://github.com/vladmihalcea/hypersistence-utils/blob/HEAD/changelog.txt#Version-375---April-29-2024) \================================================================================ NullableCharacterType prevents Hibernate from escaping backslash properly [#​715](https://github.com/vladmihalcea/hypersistence-utils/issues/715) ### [`v3.7.4`](https://github.com/vladmihalcea/hypersistence-utils/blob/HEAD/changelog.txt#Version-374---April-18-2024) \================================================================================ Make the JsonTypeDescriptor thread-safe [#​713](https://github.com/vladmihalcea/hypersistence-utils/issues/713) Equals method not found on abstract class [#​709](https://github.com/vladmihalcea/hypersistence-utils/issues/709) </details> <details> <summary>hibernate/hibernate-orm</summary> ### [`v6.6.1.Final`](https://github.com/hibernate/hibernate-orm/compare/6.6.0...6.6.1) [Compare Source](https://github.com/hibernate/hibernate-orm/compare/6.6.0...6.6.1) ### [`v6.6.0.Final`](https://github.com/hibernate/hibernate-orm/compare/6.5.3...6.6.0) [Compare Source](https://github.com/hibernate/hibernate-orm/compare/6.5.3...6.6.0) ### [`v6.5.3.Final`](https://github.com/hibernate/hibernate-orm/compare/6.5.2...6.5.3) [Compare Source](https://github.com/hibernate/hibernate-orm/compare/6.5.2...6.5.3) ### [`v6.5.2.Final`](https://github.com/hibernate/hibernate-orm/compare/6.5.1...6.5.2) [Compare Source](https://github.com/hibernate/hibernate-orm/compare/6.5.1...6.5.2) ### [`v6.5.1.Final`](https://github.com/hibernate/hibernate-orm/compare/6.5.0...6.5.1) [Compare Source](https://github.com/hibernate/hibernate-orm/compare/6.5.0...6.5.1) ### [`v6.5.0.Final`](https://github.com/hibernate/hibernate-orm/compare/6.4.10...6.5.0) [Compare Source](https://github.com/hibernate/hibernate-orm/compare/6.4.10...6.5.0) ### [`v6.4.10.Final`](https://github.com/hibernate/hibernate-orm/compare/6.4.9...6.4.10) [Compare Source](https://github.com/hibernate/hibernate-orm/compare/6.4.9...6.4.10) ### [`v6.4.9.Final`](https://github.com/hibernate/hibernate-orm/compare/6.4.8...6.4.9) [Compare Source](https://github.com/hibernate/hibernate-orm/compare/6.4.8...6.4.9) ### [`v6.4.8.Final`](https://github.com/hibernate/hibernate-orm/compare/6.4.7...6.4.8) [Compare Source](https://github.com/hibernate/hibernate-orm/compare/6.4.7...6.4.8) ### [`v6.4.7.Final`](https://github.com/hibernate/hibernate-orm/compare/6.4.6...6.4.7) [Compare Source](https://github.com/hibernate/hibernate-orm/compare/6.4.6...6.4.7) ### [`v6.4.6.Final`](https://github.com/hibernate/hibernate-orm/compare/6.4.5...6.4.6) [Compare Source](https://github.com/hibernate/hibernate-orm/compare/6.4.5...6.4.6) ### [`v6.4.5.Final`](https://github.com/hibernate/hibernate-orm/compare/6.4.4...6.4.5) [Compare Source](https://github.com/hibernate/hibernate-orm/compare/6.4.4...6.4.5) </details> <details> <summary>Blazebit/blaze-persistence</summary> ### [`v1.6.12`](https://github.com/Blazebit/blaze-persistence/blob/HEAD/CHANGELOG.md#​1612) [Compare Source](https://github.com/Blazebit/blaze-persistence/compare/1.6.11...1.6.12) 02/08/2024 - [Release tag](https://github.com/Blazebit/blaze-persistence/releases/tag/1.6.12) [Resolved issues](https://github.com/Blazebit/blaze-persistence/issues?q=is%3Aissue+milestone%3A1.6.12+is%3Aclosed+sort%3Aupdated-desc) ##### New features - Add support for Spring Data/Boot 3.3 - Add `date_iso`, `time_iso` and `timestamp_iso` internal functions ##### Bug fixes - Fix bug in collection insert code triggered by Hibernate ORM 6.4.2 - Fix concurrency issue leading to NPE when concurrently creating entity view updaters - Fix `CAST_STRING` for SQL Server - Ensure Spring Jackson integration copies `ObjectMapper` bean - Fix entity view processor generated code for `@MappingSingular` leading to compilation error - Fix `MULTISET` issues with temporal `BasicUserType` ##### Backwards-incompatible changes None yet </details> <details> <summary>quarkusio/quarkus</summary> ### [`v3.15.1`](https://github.com/quarkusio/quarkus/releases/tag/3.15.1) [Compare Source](https://github.com/quarkusio/quarkus/compare/3.15.0...3.15.1) ##### Complete changelog - [#​38531](https://github.com/quarkusio/quarkus/issues/38531) - Compilation fails on Azure Functions Blob Trigger - [#​42711](https://github.com/quarkusio/quarkus/pull/42711) - Bump Keycloak version to 25.0.4 - [#​43305](https://github.com/quarkusio/quarkus/issues/43305) - gRPC bidi streaming testing in DevUI is broken - [#​43310](https://github.com/quarkusio/quarkus/issues/43310) - Docs: config property names in the generated docs are no longer links - [#​43311](https://github.com/quarkusio/quarkus/pull/43311) - Fix a few issues with the local proxy for REST Client feature - [#​43337](https://github.com/quarkusio/quarkus/pull/43337) - Fix gRPC DevUI testing console - [#​43343](https://github.com/quarkusio/quarkus/pull/43343) - Minor updates to the Getting Started with Security doc - [#​43344](https://github.com/quarkusio/quarkus/pull/43344) - The logging guide review for 3.15 - [#​43355](https://github.com/quarkusio/quarkus/pull/43355) - Remove unnecessary symbols that force you to change lines after copying each time - [#​43371](https://github.com/quarkusio/quarkus/pull/43371) - The Data source guide review for-3-15 - [#​43377](https://github.com/quarkusio/quarkus/pull/43377) - Docs: Fix example in "Accessing Static Fields and Methods" - [#​43391](https://github.com/quarkusio/quarkus/issues/43391) - Quarkus Spring Data documentation should document newly supported interfaces and update existing examples - [#​43403](https://github.com/quarkusio/quarkus/pull/43403) - Fix classloading in AzureFunctionsProcessor#findFunctions - [#​43407](https://github.com/quarkusio/quarkus/pull/43407) - Picocli guide - add a note about passing arguments for gradle project - [#​43411](https://github.com/quarkusio/quarkus/pull/43411) - Remove a duplicated line in the TLS registry guide - [#​43414](https://github.com/quarkusio/quarkus/issues/43414) - Update protobuf-java to 3.25.5 - [#​43426](https://github.com/quarkusio/quarkus/pull/43426) - Bump Keycloak version to 25.0.6 - [#​43431](https://github.com/quarkusio/quarkus/pull/43431) - Bump protoc/protobuf-java from 3.25.3 to 3.25.5 - [#​43447](https://github.com/quarkusio/quarkus/pull/43447) - Update headings to headings to prevent confusing numbering - [#​43451](https://github.com/quarkusio/quarkus/pull/43451) - Spring APIs - Document newly supported interfaces and update existing examples - [#​43457](https://github.com/quarkusio/quarkus/pull/43457) - Remove a superfluous quote in the GraphQL client docs - [#​43460](https://github.com/quarkusio/quarkus/pull/43460) - Small followup for Picocli + Gradle improvement - [#​43493](https://github.com/quarkusio/quarkus/pull/43493) - Config Doc - Bring back the links for config sections and properties ### [`v3.15.0`](https://github.com/quarkusio/quarkus/releases/tag/3.15.0) [Compare Source](https://github.com/quarkusio/quarkus/compare/3.14.4...3.15.0) ##### Complete changelog - [#​43207](https://github.com/quarkusio/quarkus/pull/43207) - Cleanup & nitpicks on guide: security-jwt - [#​43297](https://github.com/quarkusio/quarkus/issues/43297) - Using jib with opentelemetry cannot produce a stable library layer - [#​43300](https://github.com/quarkusio/quarkus/pull/43300) - Set filtered jar's manifest time to epoch - [#​43309](https://github.com/quarkusio/quarkus/pull/43309) - Follow up of the fix making jar file reference close idempotent with minor comments and refactor - [#​43313](https://github.com/quarkusio/quarkus/pull/43313) - Smallrye GraphQL: add missing federation annotations to index - [#​43314](https://github.com/quarkusio/quarkus/pull/43314) - Make sure server log load on Dev UI start - [#​43315](https://github.com/quarkusio/quarkus/pull/43315) - TLS reference guide IDs' unification ### [`v3.14.4`](https://github.com/quarkusio/quarkus/releases/tag/3.14.4) [Compare Source](https://github.com/quarkusio/quarkus/compare/3.14.3...3.14.4) ##### Complete changelog - [#​29604](https://github.com/quarkusio/quarkus/issues/29604) - Add quarkus property to set the hibernate flushmode - [#​37618](https://github.com/quarkusio/quarkus/issues/37618) - No server chosen by com.mongodb.reactivestreams: Failed looking up SRV record - [#​42706](https://github.com/quarkusio/quarkus/pull/42706) - TLS reference guide review: Follow-up - [#​43087](https://github.com/quarkusio/quarkus/pull/43087) - Messaging extensions doc update for tls-registry usage - [#​43187](https://github.com/quarkusio/quarkus/issues/43187) - Pulsar devservice is not starting on RHEL 8 aarch64 - [#​43212](https://github.com/quarkusio/quarkus/pull/43212) - Fixed Maven artifact resolver initialization in QuarkusProjectMojoBase - [#​43217](https://github.com/quarkusio/quarkus/issues/43217) - Calling blocking code from SecurityIdentityAugmentor causes concurrent requests to be limited by the number of event loop threads - [#​43222](https://github.com/quarkusio/quarkus/pull/43222) - Introduce retry into Mongo DNS resolution - [#​43224](https://github.com/quarkusio/quarkus/pull/43224) - Bump com.gradle.plugin-publish from 1.2.2 to 1.3.0 in /devtools/gradle - [#​43228](https://github.com/quarkusio/quarkus/issues/43228) - Fails to shutdown when using grpc and kafka-streams extensions - [#​43234](https://github.com/quarkusio/quarkus/pull/43234) - Add a note on JsonFormat annotation and ORM FormatMapper - [#​43246](https://github.com/quarkusio/quarkus/pull/43246) - Expose property `quarkus.hibernate-orm.flush.mode` - [#​43247](https://github.com/quarkusio/quarkus/issues/43247) - Application hangs when using quarkus.http.ssl.certificate.reload-period less than 30s - [#​43248](https://github.com/quarkusio/quarkus/pull/43248) - Don't execute blocking security code serially as it limits concurrent blocking execution to number of the event loops - [#​43252](https://github.com/quarkusio/quarkus/pull/43252) - Properly fail when TLS reload config is invalid - [#​43257](https://github.com/quarkusio/quarkus/pull/43257) - Fix jar file reference close race condition - [#​43261](https://github.com/quarkusio/quarkus/issues/43261) - Quarkus is using an H2 version with a regression causing data loss - [#​43263](https://github.com/quarkusio/quarkus/pull/43263) - KafkaStreamsProducer no longer shuts down the injected executorservice - [#​43265](https://github.com/quarkusio/quarkus/pull/43265) - Downgrade H2 to 2.3.230 - [#​43266](https://github.com/quarkusio/quarkus/pull/43266) - \[3.15] Revert Gradle cache compatibility changes - [#​43275](https://github.com/quarkusio/quarkus/pull/43275) - Use the branch version to compile the quickstarts - [#​43277](https://github.com/quarkusio/quarkus/pull/43277) - Fix an OidcEndpoint typo in the OIDC doc - [#​43279](https://github.com/quarkusio/quarkus/pull/43279) - Downgrade the default pulsar devservice image to 3.2.4 - [#​43289](https://github.com/quarkusio/quarkus/pull/43289) - Do not define quarkus.version as it makes Keycloak resolution fail ### [`v3.14.3`](https://github.com/quarkusio/quarkus/releases/tag/3.14.3) [Compare Source](https://github.com/quarkusio/quarkus/compare/3.14.2...3.14.3) ##### Complete changelog - [#​30087](https://github.com/quarkusio/quarkus/issues/30087) - jbang does not persist Q:CONFIG keys nor build set keys - [#​32831](https://github.com/quarkusio/quarkus/issues/32831) - Hibernate Validator Failure When TZ Set to Non-UTC - [#​41558](https://github.com/quarkusio/quarkus/pull/41558) - Add documentation for vertx and qute integration - [#​41559](https://github.com/quarkusio/quarkus/issues/41559) - Add documentation for Vertx and Qute integration - [#​42256](https://github.com/quarkusio/quarkus/issues/42256) - Gradle early task configuration causes ` quarkus.container-image. ` properties to be ignored - [#​42496](https://github.com/quarkusio/quarkus/pull/42496) - Configuration Cache compatibility (`QuarkusGenerateCode` - `QuarkusBuid`) - [#​42511](https://github.com/quarkusio/quarkus/pull/42511) - TLS Reference guide grammar check and review - [#​42724](https://github.com/quarkusio/quarkus/issues/42724) - gRPC Server INTERNAL: HTTP status code 400 When Upgrading from 3.12.3 > 3.13.0 - [#​42751](https://github.com/quarkusio/quarkus/issues/42751) - `tls` command not found despite the extension present in the application - [#​42851](https://github.com/quarkusio/quarkus/issues/42851) - classic resteasy-client: ensure sub-resources are also proxied - [#​42875](https://github.com/quarkusio/quarkus/pull/42875) - Compatibility with configuration cache for image tasks - [#​42905](https://github.com/quarkusio/quarkus/pull/42905) - Port resteasy fix for sub-resources - [#​42908](https://github.com/quarkusio/quarkus/issues/42908) - Cannot initialize file manager - [#​42948](https://github.com/quarkusio/quarkus/pull/42948) - Document generic synthetic bean creation - [#​42990](https://github.com/quarkusio/quarkus/issues/42990) - `logout.backchannel.path` fails when `http.root-path` is present - Again - [#​42995](https://github.com/quarkusio/quarkus/pull/42995) - Fix minor typo: Use correct syntax for TIP admonition - [#​42998](https://github.com/quarkusio/quarkus/pull/42998) - Error page and not found page now looks the same in prod mode - [#​43000](https://github.com/quarkusio/quarkus/pull/43000) - Fix registration of backchannel logout route - [#​43009](https://github.com/quarkusio/quarkus/pull/43009) - mention gradle dsl kts not supported in quarkus update - [#​43010](https://github.com/quarkusio/quarkus/pull/43010) - Fix error message when a REST Client throws an exception - [#​43015](https://github.com/quarkusio/quarkus/pull/43015) - REST: comment out useless 10K System.out.printl() in the DrainTest - [#​43017](https://github.com/quarkusio/quarkus/issues/43017) - DefaultJaxRsRolesAllowedImplMethodSecuredTest produces a large number of errors - [#​43018](https://github.com/quarkusio/quarkus/pull/43018) - Reduce log clutter in security tests - [#​43019](https://github.com/quarkusio/quarkus/pull/43019) - Properly escape log message additions - [#​43020](https://github.com/quarkusio/quarkus/issues/43020) - Store Quarkus version in native executable - [#​43021](https://github.com/quarkusio/quarkus/issues/43021) - Decorated stacktrace that is added to the log record is not properly decorated - [#​43023](https://github.com/quarkusio/quarkus/pull/43023) - Reduce Agroal pool logging - [#​43025](https://github.com/quarkusio/quarkus/pull/43025) - Support transitive extensions when searching for plugins - [#​43028](https://github.com/quarkusio/quarkus/pull/43028) - Bump org.jboss.marshalling:jboss-marshalling from 2.2.0.Final to 2.2.1.Final - [#​43029](https://github.com/quarkusio/quarkus/pull/43029) - Bump mongo-client.version from 5.1.3 to 5.1.4 - [#​43040](https://github.com/quarkusio/quarkus/issues/43040) - Excluding depencency from arc based on group id only results in NoSuchElementException - [#​43041](https://github.com/quarkusio/quarkus/pull/43041) - Update Vertx to version 4.5.10 - [#​43043](https://github.com/quarkusio/quarkus/pull/43043) - Fix Arc dependency exclusion configuration - [#​43044](https://github.com/quarkusio/quarkus/issues/43044) - include sbom feature in LTS - [#​43045](https://github.com/quarkusio/quarkus/pull/43045) - Embed quarkus version in native executable as a global string symbol - [#​43051](https://github.com/quarkusio/quarkus/issues/43051) - Show exception cause during logging filter initialization - [#​43052](https://github.com/quarkusio/quarkus/pull/43052) - Show exception cause during logging filter initialization - [#​43055](https://github.com/quarkusio/quarkus/pull/43055) - Avoid publishing the `docs` module in Maven Central in extension template - [#​43063](https://github.com/quarkusio/quarkus/pull/43063) - Bump com.gradle:common-custom-user-data-maven-extension from 2 to 2.0.1 - [#​43066](https://github.com/quarkusio/quarkus/pull/43066) - Add Application links on the welcome page - [#​43070](https://github.com/quarkusio/quarkus/pull/43070) - Add a note about let's encrypt challenge requiring the port 80 to be accessible - [#​43071](https://github.com/quarkusio/quarkus/issues/43071) - Quarkus CLI for extension setting old rest name - [#​43082](https://github.com/quarkusio/quarkus/pull/43082) - Fix guide URL in web-dependency-locator - [#​43083](https://github.com/quarkusio/quarkus/pull/43083) - Apply quarkus-rest-client-oidc-token-propagation name - [#​43085](https://github.com/quarkusio/quarkus/pull/43085) - \[3.14] Fix Boolean serializer - [#​43089](https://github.com/quarkusio/quarkus/pull/43089) - Avoid using "Reactive" for Quarkus REST in security doc - [#​43095](https://github.com/quarkusio/quarkus/pull/43095) - Qute: fix unsatisfied exception when recording rendered results is off - [#​43096](https://github.com/quarkusio/quarkus/pull/43096) - Use a Quarkus-specific clock provider that is reinitialized at runtime - [#​43107](https://github.com/quarkusio/quarkus/issues/43107) - TLS registry named config and Quarkus Messaging Kafka or Kafka Client can lead to failed application startup - [#​43108](https://github.com/quarkusio/quarkus/pull/43108) - Use the shared JsonProvider when creating Jsonb instance - [#​43109](https://github.com/quarkusio/quarkus/issues/43109) - Documentation generation for configuration properties in OIDC module leaves out plenty of information - [#​43112](https://github.com/quarkusio/quarkus/pull/43112) - Fix visual studio code svg - [#​43113](https://github.com/quarkusio/quarkus/issues/43113) - Documentation is not rendering the VSCode icon - [#​43115](https://github.com/quarkusio/quarkus/pull/43115) - Config Doc - Configure OIDC Common annotation processor for legacy root - [#​43116](https://github.com/quarkusio/quarkus/pull/43116) - Kafka TLS Registry integration: include tls-configuration-name in Kafka config - [#​43118](https://github.com/quarkusio/quarkus/pull/43118) - Fix doc numeration level of lists extension methods - [#​43126](https://github.com/quarkusio/quarkus/pull/43126) - Allows users to exclude DefaultMismatchedInputException - [#​43131](https://github.com/quarkusio/quarkus/pull/43131) - Revert "Satisfy GraalVM's classpath needs for the deletion of `org.h2.fulltext.FullTextLucene`" - [#​43132](https://github.com/quarkusio/quarkus/pull/43132) - Fix obsolete name in integration tests pom.xml of quarkus extension codestart - [#​43135](https://github.com/quarkusio/quarkus/issues/43135) - The class CertificateReloadedEvent missing - [#​43137](https://github.com/quarkusio/quarkus/pull/43137) - The CDI event fired after a successful update of certificates was wrong in the documentation - [#​43139](https://github.com/quarkusio/quarkus/pull/43139) - \[3.14] Initial support for SBOM generation and CycloneDX - [#​43142](https://github.com/quarkusio/quarkus/pull/43142) - Fix flaky OTel tests - [#​43157](https://github.com/quarkusio/quarkus/pull/43157) - \[3.14] Make generated Jackson serializers to work with null values of boxed types - [#​43160](https://github.com/quarkusio/quarkus/pull/43160) - Add runtime properties to Quarkus builder - [#​43168](https://github.com/quarkusio/quarkus/pull/43168) - Update rest-data-panache docs to clarify experimental status - [#​43169](https://github.com/quarkusio/quarkus/pull/43169) - Fixes error if annotation processing directories do not exist - [#​43194](https://github.com/quarkusio/quarkus/pull/43194) - Fix javadoc for quarkus.bootstrap.incubating-model-resolver - [#​43195](https://github.com/quarkusio/quarkus/pull/43195) - Config Doc - Reset list status for passthrough maps ### [`v3.14.2`](https://github.com/quarkusio/quarkus/releases/tag/3.14.2) [Compare Source](https://github.com/quarkusio/quarkus/compare/3.14.1...3.14.2) ##### Complete changelog - [#​31375](https://github.com/quarkusio/quarkus/issues/31375) - RuntimeException using VirtualThreads with Jacoco - [#​31802](https://github.com/quarkusio/quarkus/issues/31802) - Unauthenticated request with a request path that contains a semicolon results in a server exception when using OIDC - [#​34395](https://github.com/quarkusio/quarkus/issues/34395) - Spring Data API Extension Property Expressions with List not working - [#​41854](https://github.com/quarkusio/quarkus/issues/41854) - REST request fails after adding maven dependency to quarkus-opentelemetry - [#​41927](https://github.com/quarkusio/quarkus/pull/41927) - Fix off-by-one issue caused by ObservabilityIntegrationRecorder using its own method for getting path without prefix - [#​42098](https://github.com/quarkusio/quarkus/issues/42098) - Kotlin junit ParameterizedTest with list as argument, not working anymore (3.13.0.CR1) - [#​42109](https://github.com/quarkusio/quarkus/pull/42109) - Make sure arrays are always cloned as arrays - [#​42136](https://github.com/quarkusio/quarkus/pull/42136) - Fail OIDC build if a primitive type Claim is injected in Singleton - [#​42205](https://github.com/quarkusio/quarkus/pull/42205) - Enable comments (reasons) in the generated reflect-config.json and improve hierarchical registration tracing - [#​42228](https://github.com/quarkusio/quarkus/issues/42228) - Native image build fails with `-Dquarkus.native.report-errors-at-runtime` - [#​42301](https://github.com/quarkusio/quarkus/issues/42301) - Records that contain Enum are still unsupported with `@ParameterizedTest` even with Serializable in 3.13.0 - [#​42394](https://github.com/quarkusio/quarkus/issues/42394) - Take `@JsonProperty` into account in the reflection free Jackson serializers - [#​42466](https://github.com/quarkusio/quarkus/issues/42466) - quarkus.knative.app-config-map misses adding the volumes to the ksvc template - [#​42485](https://github.com/quarkusio/quarkus/pull/42485) - Fix quarkus.knative.app-config-map misses adding the volumes to the ksvc template - [#​42491](https://github.com/quarkusio/quarkus/pull/42491) - Change dekorate template to use the intended knative object - [#​42535](https://github.com/quarkusio/quarkus/pull/42535) - Add "how to write dev services" documentation - [#​42578](https://github.com/quarkusio/quarkus/issues/42578) - OTEL + `quarkus.http.test-timeout` -> NullPointerException: Cannot invoke "io.vertx.core.spi.observability.HttpResponse.headers()" because "httpResponse" is null - [#​42619](https://github.com/quarkusio/quarkus/issues/42619) - Jackson build time serializers could use SerializableString field names - [#​42651](https://github.com/quarkusio/quarkus/pull/42651) - Use SerializableString field names + support for `@JsonProperty` in the reflection free Jackson serializers - [#​42661](https://github.com/quarkusio/quarkus/pull/42661) - Bump Micrometer to 1.13 - [#​42684](https://github.com/quarkusio/quarkus/pull/42684) - Encode URL in OIDC cookie - [#​42702](https://github.com/quarkusio/quarkus/pull/42702) - Updates to Infinispan 15.0.8.Final - [#​42703](https://github.com/quarkusio/quarkus/pull/42703) - Update security docs - [#​42705](https://github.com/quarkusio/quarkus/pull/42705) - Fix for resolving entity fields based on collections and generics - [#​42707](https://github.com/quarkusio/quarkus/pull/42707) - Update OAuth2 docs because of change in Bearer token check change - [#​42714](https://github.com/quarkusio/quarkus/issues/42714) - Continuous testing exclude-tags or exclude-engines cannot be configured via pom.xml anymore in 3.13 - [#​42718](https://github.com/quarkusio/quarkus/pull/42718) - Bump flyway.version from 10.17.1 to 10.17.2 - [#​42733](https://github.com/quarkusio/quarkus/issues/42733) - Qute template exception don't print origin - [#​42745](https://github.com/quarkusio/quarkus/pull/42745) - Remove useless enum converter allocation - [#​42752](https://github.com/quarkusio/quarkus/issues/42752) - `quarkus`cli always return 1 for exitcode for plugin commands - [#​42755](https://github.com/quarkusio/quarkus/pull/42755) - Upload native build stats from a single GH runner - [#​42761](https://github.com/quarkusio/quarkus/issues/42761) - Qute: ignore template files that contain whitespace in its name - [#​42766](https://github.com/quarkusio/quarkus/pull/42766) - Use initial Quarkus Dev config for test tags and engines - [#​42773](https://github.com/quarkusio/quarkus/pull/42773) - Remove jakarta.json.Json usage for performance reasons - [#​42774](https://github.com/quarkusio/quarkus/issues/42774) - quarkus.rest.jackson.optimization.enable-reflection-free-serializers=true fails native build of StartStopTS microprofile application - [#​42778](https://github.com/quarkusio/quarkus/issues/42778) - Rest Client (formerly reactive) keep using DEFAULT_MAX_POOL_SIZE - [#​42779](https://github.com/quarkusio/quarkus/pull/42779) - QuarkusComponentTest: programmatic lookup improvements - [#​42783](https://github.com/quarkusio/quarkus/pull/42783) - Qute: ignore template files that contain whitespace in its name - [#​42786](https://github.com/quarkusio/quarkus/issues/42786) - Quarkus CLI Catalog wipes its content when a new plugin is added / removed - [#​42787](https://github.com/quarkusio/quarkus/pull/42787) - Qute: print origin if non-literal value used in bracket notation - [#​42788](https://github.com/quarkusio/quarkus/pull/42788) - Invalidate catalogs when adding/removing plugins - [#​42793](https://github.com/quarkusio/quarkus/pull/42793) - Quote directory variable to support directories with spaces - [#​42794](https://github.com/quarkusio/quarkus/pull/42794) - Avoid `NullPointerException`s when application fails to start - [#​42806](https://github.com/quarkusio/quarkus/issues/42806) - quarkus-websockets-next client connect to WSS not possible - [#​42808](https://github.com/quarkusio/quarkus/issues/42808) - quarkus-websockets-next client adds / to empty path - [#​42810](https://github.com/quarkusio/quarkus/pull/42810) - Register InetAddressResolverProvider service providers - [#​42814](https://github.com/quarkusio/quarkus/pull/42814) - OpenTelemetry traces and metrics config fallback to base - [#​42815](https://github.com/quarkusio/quarkus/issues/42815) - The configuration options missing the `quarkus.oidc.credentials.*` - [#​42820](https://github.com/quarkusio/quarkus/pull/42820) - Disable GrpcCliTest#testCommand due to CI failures - [#​42821](https://github.com/quarkusio/quarkus/pull/42821) - CDI: add cross-reference links to docs - [#​42822](https://github.com/quarkusio/quarkus/pull/42822) - Qute docs: clarify template record not annotated with `@CheckedTemplate` - [#​42823](https://github.com/quarkusio/quarkus/pull/42823) - Properly set PoolOptions for REST Client - [#​42826](https://github.com/quarkusio/quarkus/pull/42826) - WebSockets Next - client: support the `wss` scheme correctly - [#​42828](https://github.com/quarkusio/quarkus/issues/42828) - Duplicate annotation for class: interface org.jetbrains.annotations.NotNull - [#​42830](https://github.com/quarkusio/quarkus/pull/42830) - WebSockets Next: support endpoints with empty path - [#​42832](https://github.com/quarkusio/quarkus/pull/42832) - Respect exit code of cli commands - [#​42833](https://github.com/quarkusio/quarkus/pull/42833) - ArC - static methods interception: fix the set of copied annotations - [#​42835](https://github.com/quarkusio/quarkus/pull/42835) - Config Doc - Fix two scanning issues - [#​42837](https://github.com/quarkusio/quarkus/pull/42837) - ArC docs: mention ` @​Inject `[@All](https://github.com/All)` List<> ` in section about unused beans - [#​42840](https://github.com/quarkusio/quarkus/issues/42840) - Possible to handle routes for base URI without path from extensions - [#​42844](https://github.com/quarkusio/quarkus/issues/42844) - System properties config overrides in tests does not seem to take effect properly in quarkus 3.14.1 - [#​42846](https://github.com/quarkusio/quarkus/pull/42846) - Updating selected OIDC/OpenID guides - [#​42848](https://github.com/quarkusio/quarkus/pull/42848) - Bump org.jetbrains.kotlinx:kotlinx-serialization-json from 1.7.1 to 1.7.2 - [#​42853](https://github.com/quarkusio/quarkus/pull/42853) - Config Doc - Also ignore FileNotFoundException - [#​42856](https://github.com/quarkusio/quarkus/pull/42856) - Always put Jackson first in documentation - [#​42857](https://github.com/quarkusio/quarkus/issues/42857) - quarkus-rest-client-jackson - Force property - [#​42858](https://github.com/quarkusio/quarkus/issues/42858) - `ExtLogRecord` creation is more costly following the update to SmallRye Common 2.4.0 - [#​42859](https://github.com/quarkusio/quarkus/pull/42859) - Satisfy GraalVM's classpath needs for the deletion of `org.h2.fulltext.FullTextLucene` - [#​42860](https://github.com/quarkusio/quarkus/issues/42860) - Quarkus output class in incorrect folder on live reload (gradle, multimodule, kotlin) - [#​42862](https://github.com/quarkusio/quarkus/pull/42862) - Revert "QuarkusTestProfile overrides in a high ordinal application.properties" - [#​42864](https://github.com/quarkusio/quarkus/pull/42864) - Correct typo in messaging.adoc - [#​42865](https://github.com/quarkusio/quarkus/issues/42865) - kafka_version label is unkown in native mode - [#​42866](https://github.com/quarkusio/quarkus/issues/42866) - DevUI log timestamp difference, as it was reported in GMT - [#​42867](https://github.com/quarkusio/quarkus/issues/42867) - Dev mode error page stacktrace doesn't open problematic code IDE on click - [#​42869](https://github.com/quarkusio/quarkus/issues/42869) - Dev UI log view doesn't catch up with logs after application restart - [#​42870](https://github.com/quarkusio/quarkus/issues/42870) - Decorated stacktraces in dev mode are not provided when using tools like curl or postman - [#​42871](https://github.com/quarkusio/quarkus/issues/42871) - org.springframework.aot.hint.annotation.Reflective missing from our Spring compatibilty layer? - [#​42877](https://github.com/quarkusio/quarkus/issues/42877) - Quarkus CLI subcommand `tls` is missing help option despite showing help - [#​42880](https://github.com/quarkusio/quarkus/pull/42880) - Remove BOOTSTRAP config phase from documentation - [#​42881](https://github.com/quarkusio/quarkus/pull/42881) - Bump com.gradle.plugin-publish from 1.2.1 to 1.2.2 in /devtools/gradle - [#​42883](https://github.com/quarkusio/quarkus/pull/42883) - Fix Quarkus CLI TLS command help option - [#​42884](https://github.com/quarkusio/quarkus/issues/42884) - `CompiledJavaVersionBuildStep` may load a wrong class number with gradle - [#​42885](https://github.com/quarkusio/quarkus/pull/42885) - Bump wildfly-elytron.version from 2.5.1.Final to 2.5.2.Final - [#​42889](https://github.com/quarkusio/quarkus/pull/42889) - Fix some small Dev UI issues - [#​42895](https://github.com/quarkusio/quarkus/pull/42895) - Upgrade spring-api dependency - [#​42896](https://github.com/quarkusio/quarkus/pull/42896) - Possible to handle routes for base URI without path from extensions - [#​42897](https://github.com/quarkusio/quarkus/pull/42897) - Process classes from the application artifact instead of the module output directory - [#​42898](https://github.com/quarkusio/quarkus/pull/42898) - Fix Kafka kafka-version metrics tag missing in native - [#​42899](https://github.com/quarkusio/quarkus/pull/42899) - Use quarkus-rest instead of quarkus-resteasy as default extension in maven plugin - [#​42901](https://github.com/quarkusio/quarkus/pull/42901) - Add LGTM traces test / check - [#​42911](https://github.com/quarkusio/quarkus/pull/42911) - Fix OTel DelayedAttributes bean handling - [#​42913](https://github.com/quarkusio/quarkus/pull/42913) - Gradle - Correctly merge classes dir when using dev mode - [#​42914](https://github.com/quarkusio/quarkus/pull/42914) - Fix Jackson serializers generation for interfaces and boxed primitive types - [#​42915](https://github.com/quarkusio/quarkus/issues/42915) - Upgrading to 3.13.x+ causes parameterised tests using record argument to fail with LinkageError 'loader constraint violation' - [#​42916](https://github.com/quarkusio/quarkus/pull/42916) - Update to JBoss Marshalling 2.2.0.Final - [#​42918](https://github.com/quarkusio/quarkus/pull/42918) - Update SmallRye Common to 2.6.0 - [#​42919](https://github.com/quarkusio/quarkus/issues/42919) - ContainerRequestFilter checking for annotation fails in native - [#​42924](https://github.com/quarkusio/quarkus/pull/42924) - Bump io.smallrye.common:smallrye-common-bom from 2.5.0 to 2.6.0 - [#​42926](https://github.com/quarkusio/quarkus/pull/42926) - Bump hibernate-search.version from 7.2.0.Final to 7.2.1.Final - [#​42927](https://github.com/quarkusio/quarkus/pull/42927) - Add missing dot to GraalVM not found message - [#​42928](https://github.com/quarkusio/quarkus/issues/42928) - Property \[autoIncrement] was not found for object type \[liquibase.datatype.core.BigIntType] - [#​42930](https://github.com/quarkusio/quarkus/pull/42930) - Config Doc - Avoid annotations in primitive type name - [#​42932](https://github.com/quarkusio/quarkus/pull/42932) - Improve compatibility of the REST Client configuration - [#​42936](https://github.com/quarkusio/quarkus/pull/42936) - Add decorate to all contents types and added text base error response - [#​42941](https://github.com/quarkusio/quarkus/pull/42941) - Register all resource classes for reflection when `ResourceInfo` is used - [#​42944](https://github.com/quarkusio/quarkus/issues/42944) - Test: `quarkus.http.port` is not updated with random port activated through `quarkus.http.test-port=0` - [#​42950](https://github.com/quarkusio/quarkus/issues/42950) - Changed order of property resolution in tests - [#​42958](https://github.com/quarkusio/quarkus/issues/42958) - Signed OIDC UserInfo whith charset not recognized - [#​42962](https://github.com/quarkusio/quarkus/pull/42962) - Support OIDC signed UserInfo with charset content type parameters - [#​42964](https://github.com/quarkusio/quarkus/pull/42964) - Registering Liquibase BigIntType and Additional Classes for Reflection - [#​42968](https://github.com/quarkusio/quarkus/pull/42968) - Bump flyway.version from 10.17.2 to 10.17.3 - [#​42969](https://github.com/quarkusio/quarkus/pull/42969) - Bump io.quarkus:quarkus-platform-bom-maven-plugin from 0.0.107 to 0.0.108 - [#​42977](https://github.com/quarkusio/quarkus/issues/42977) - Quarkus REST client and Quarkus REST with abstract resource - NATIVE build fails - [#​42980](https://github.com/quarkusio/quarkus/pull/42980) - Prevent REST Client handling of abstract classes - [#​42981](https://github.com/quarkusio/quarkus/issues/42981) - `gu install native-image` instructions are not need anymore - [#​42983](https://github.com/quarkusio/quarkus/pull/42983) - Remove mentions to obsolete `gu install native-image` ### [`v3.14.1`](https://github.com/quarkusio/quarkus/releases/tag/3.14.1) [Compare Source](https://github.com/quarkusio/quarkus/compare/3.14.0...3.14.1) ##### Complete changelog - [#​42166](https://github.com/quarkusio/quarkus/issues/42166) - LogManager error of type GENERIC_FAILURE: Handler with name 'console' is linked to a category but not configured. - [#​42537](https://github.com/quarkusio/quarkus/issues/42537) - REST usage fails with native when e.g. ContainerResponseFilter is used - [#​42612](https://github.com/quarkusio/quarkus/issues/42612) - MQTT dev services always start if another reactive messaging connector is present - [#​42670](https://github.com/quarkusio/quarkus/pull/42670) - Upgrade opentelemetry-semconv to 1.26.0-alpha - [#​42672](https://github.com/quarkusio/quarkus/pull/42672) - Add socket timeout config for the hotrod client - [#​42698](https://github.com/quarkusio/quarkus/pull/42698) - Fix config encryption CLI command in guide - [#​42725](https://github.com/quarkusio/quarkus/pull/42725) - Bump mssql-jdbc to 12.8.1 - [#​42738](https://github.com/quarkusio/quarkus/pull/42738) - Fix OIDC Discord provider configuration - [#​42742](https://github.com/quarkusio/quarkus/pull/42742) - Bump org.postgresql:postgresql from 42.7.3 to 42.7.4 - [#​42746](https://github.com/quarkusio/quarkus/pull/42746) - Fix MQTT dev services always start if there is another connector present - [#​42753](https://github.com/quarkusio/quarkus/pull/42753) - TLS - Prevent Duplicate Entries in .env File - [#​42754](https://github.com/quarkusio/quarkus/pull/42754) - Register resource classes for reflection when ContainerResponseFilter exists - [#​42758](https://github.com/quarkusio/quarkus/pull/42758) - Single enum converter - [#​42759](https://github.com/quarkusio/quarkus/pull/42759) - Save Objects::hash varargs array allocation on JarResource::hashCode - [#​42784](https://github.com/quarkusio/quarkus/issues/42784) - Quarkus CLI report error when using CLI plugins with flags - [#​42785](https://github.com/quarkusio/quarkus/pull/42785) - False error message on cli plug with flags - [#​42789](https://github.com/quarkusio/quarkus/pull/42789) - Fix logging categories doc example - [#​42797](https://github.com/quarkusio/quarkus/pull/42797) - Upgrade to SmallRye GraphQL 2.9.2 ### [`v3.14.0`](https://github.com/quarkusio/quarkus/releases/tag/3.14.0) [Compare Source](https://github.com/quarkusio/quarkus/compare/3.13.3...3.14.0) ##### Complete changelog - [#​42367](https://github.com/quarkusio/quarkus/issues/42367) - Setting quarkus.http.proxy.proxy-address-forwarding=true changes Host header to host - [#​42449](https://github.com/quarkusio/quarkus/issues/42449) - Gradle task quarkusGenerateCode with custom Microprofile converter causes java.util.ServiceConfigurationError - [#​42539](https://github.com/quarkusio/quarkus/pull/42539) - Added office 365 email configuration - [#​42546](https://github.com/quarkusio/quarkus/issues/42546) - Wrong callback URL in documentation for GitHub OIDC - [#​42548](https://github.com/quarkusio/quarkus/pull/42548) - Fixing documentation regarding OIDC with GitHub - [#​42551](https://github.com/quarkusio/quarkus/pull/42551) - Bump apicurio-registry.version from 2.5.10.Final to 2.6.2.Final - [#​42561](https://github.com/quarkusio/quarkus/pull/42561) - Properly handle case when quarkus-extension.yaml doesn't exist - [#​42572](https://github.com/quarkusio/quarkus/pull/42572) - Add keystore and truststore default format change - [#​42584](https://github.com/quarkusio/quarkus/issues/42584) - Custom Smallrye ConfigSourceInterceptor not loading class using Gradle - [#​42585](https://github.com/quarkusio/quarkus/pull/42585) - Do not try to create temp directory in test archives - [#​42614](https://github.com/quarkusio/quarkus/issues/42614) - Improve error message / exception "Unable to start the management interface" by mentioning the actual port number - [#​42617](https://github.com/quarkusio/quarkus/pull/42617) - Add host and port when error creating management interface - [#​42622](https://github.com/quarkusio/quarkus/pull/42622) - New Stork version aligning k8s client version - [#​42624](https://github.com/quarkusio/quarkus/pull/42624) - Try a new approach for caching Maven local repository - [#​42633](https://github.com/quarkusio/quarkus/pull/42633) - Bump `quarkiverse-parent` from 16 to 17 - [#​42648](https://github.com/quarkusio/quarkus/pull/42648) - Use the `Host` header in a proxied responses instead of `host` - [#​42649](https:/…
The move of REST Client configuration to
@ConfigMapping
in #42106 is causing some issues that this PR should fix:The old config was only queried when the REST Client was being created, so it was possible to use expressions like
${quarkus.http.port}
in the URL/ URI. For all extensions, the config is loaded when the application starts, so any further changes to the configuration are not visible. This is the case when we generate a random port and update${quarkus.http.port}
. We are now loading the URL / URI on REST Client creation.The
force
lookup to allow loading configuration from "invisible" sourcesquarkus/extensions/resteasy-classic/rest-client-config/runtime/src/main/java/io/quarkus/restclient/config/AbstractRestClientConfigBuilder.java
Lines 19 to 27 in e69225d
@RegisterRestClient#configKey
had multiple segments, so it was causing a few issues.Also, the old implementation allowed the mixing of quoted and unquoted keys in the configuration names. This was never supported in the current Config system. I've added it here, using some interceptors and I'll properly implement this in
SmallRyeConfig
directly so other extensions behave the same way.Fixes quarkus-rest-client-jackson - Force property #42857
Fixes Test:
quarkus.http.port
is not updated with random port activated throughquarkus.http.test-port=0
#42944Fixes https://quarkusio.zulipchat.com/#narrow/stream/187030-users/topic/Rest-client.20url.20is.20now.20build.20time.20property.3F