-
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
Switch Vert.x HTTP to @ConfigMapping #35246
Conversation
radcortez
commented
Aug 7, 2023
•
edited
Loading
edited
- Part of Optimize config generation #32209
- Fixes null keys in YAML config break JSON compatibility #34292
964a75e
to
80d5b39
Compare
This comment has been minimized.
This comment has been minimized.
80d5b39
to
3875d03
Compare
Failing Jobs - Building 3875d03
Full information is available in the Build summary check run. Failures⚙️ JVM Tests - JDK 17 Windows #- Failing: extensions/vertx-http/deployment
! Skipped: extensions/agroal/deployment extensions/amazon-lambda-http/deployment extensions/amazon-lambda-rest/deployment and 353 more 📦 extensions/vertx-http/deployment✖ ⚙️ Native Tests - Security2 #- Failing: integration-tests/oidc
📦 integration-tests/oidc✖
|
@radcortez I'm pretty sure the fact that you fixed |
Right now both properties The plan is to support #33877, so we can deprecate this (and other properties) and provide more direct feedback to the user. Regardless, I'll add a note. |
@gsmet @radcortez Shouldn't we label this PR as a breaking change? It breaks all Quarkiverse/third-party extensions that consume |
Yeah, I noticed this problem in my Quarkus GitHub App extension but with the runtime config. I never actually considered the config an API (especially given it's in the I'm not sure if we should ask people to move to the method or if we should advertise a better way of getting this config (maybe by getting the Vert.x instance and get the value from there if possible). @radcortez @cescoffier thoughts? |
Well, I'd say that it's the only type-safe way... The truth is that the content of the
But that would only solve the runtime part, what about the build steps? |
In my opinion, it’s a breaking change. Unfortunately, there is no way to get the values from the vertx instance. Keeping a VertxOption instance around sounds a bit overkill (and it’s not a one-to-one mapping). |
Hum... good point. In reality, because these classes are public, we have no idea if they are being used outside our own internal code. Probably we need to consider that any Config root / mapping classes are public APIs. |
It's like public build items. You can consume it in your build steps. Moreover, |
Exactly. But we usually always treat this as internal APIs. Build items are bit more obscure for the regular users, so I guess that is not a big deal. I agree that we may see more users relying on the Config objects. |
This feels like a stalemate. Quarkus knows whether someone injects config classes. Can't Quarkus generate config classes for few releases only if necessary and log warning that these classes should be migrated to the Is there a Quarkus issue where this migration is tracked, or a plan for the I'm mostly interested because QE test framework needs to detect all used build time properties before Quarkus build and I don't want to do it in 2 ways. But after reading #32209 it seems there also are performance objectives. |
Eventually, we will have to figure something out here. I didn't want to put a warning message that would reach the user and create unnecessary noise. An option could be to do it at compilation time of Quarkus, or of an Extension, but not a Quarkus App.
Yes they can, but the extension would need to pick which one to use, because it codes directly against the specific type.
Not at the moment. We talked about this a few times, but we also had a few issues, like this one, that had to be reverted. I believe things should be better now after some improvements we did with performance.
What are you doing exactly? Maybe I can help. |
We run many tests with different configuration combinations (and test methods) in order to tests many features and scenarios on same application classes and with same dependencies. When they are native tests, we need to know whether we can reuse native executable (which can spare significant test execution time). So far we use hardcoded list, but it is absolutely incomplete and sometimes properties are moved ... I watched this issue as my plan was to build |