-
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
ArC: implement CDI 4.1 #40208
ArC: implement CDI 4.1 #40208
Conversation
Each commit is best reviewed separately. They are all fairly small, except of the one that adds support for method invokers. |
Not a review but nice work :). |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
🙈 The PR is closed and the preview is expired. |
Rebased. |
This comment has been minimized.
This comment has been minimized.
independent-projects/arc/runtime/src/main/java/io/quarkus/arc/impl/BeanManagerImpl.java
Outdated
Show resolved
Hide resolved
independent-projects/arc/processor/src/main/java/io/quarkus/arc/processor/BeanGenerator.java
Outdated
Show resolved
Hide resolved
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.
@Ladicek do you plan to add support for Quarkus build items used to define method invokers?
I don't think that's necessary. Method invokers can be registered in the bean registration phase, for which a build item already exists. (Aside: maybe this should be better documented?) I have a few examples ( |
This comment has been minimized.
This comment has been minimized.
independent-projects/arc/runtime/src/main/java/io/quarkus/arc/ArcInvocationContext.java
Show resolved
Hide resolved
independent-projects/arc/runtime/src/main/java/io/quarkus/arc/impl/Types.java
Outdated
Show resolved
Hide resolved
With |
Indeed that's what I meant :-) Yeah, I agree. I should probably write some documentation into the CDI integration guide... |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Here's a PR to remove the test for |
A producer may have priority as defined by CDI 4.1 (or obtained from a stereotype, as permitted but not really specified in CDI 4.0), but does not necessarily have to be an alternative. During ambiguity resolution, if such non-alternative producer with priority is declared on an alternative bean, we must first consider the priority declared on the producer, even if the producer is not itself an alternative. To do that, this commit changes the ambiguity resolution implementation to use `BeanInfo.getPririty()` instead of `getAlternativePriority()`. The difference is that `getAlternativePriority()` returns `null` when the bean itself is not an alternative. Given that the method was previously only used during ambiguity resolution, and only after non-alternative beans (and producers on non-alternative beans) were eliminated, this is correct. In fact, this commit also marks `BeanInfo.getAlternativePriority()` as deprecated for removal. For all practical purposes, `getPriority()` is a better choice; it is usually meaningless to consider a bean priority only when the bean is an alternative, and pretend that the bean has no priority when it is not an alternative.
…der with CurrentInjectionPointProvider
The new version doesn't contain the `@ManagedBean` annotation, which was removed in Jakarta Annotations 3.0.
Rebased and updated the RESTEasy Reactive TCK. |
Status for workflow
|
Status for workflow
|
Status | Name | Step | Failures | Logs | Raw logs | Build scan |
---|---|---|---|---|---|---|
✔️ | JVM Tests - JDK 17 | Logs | Raw logs | 🔍 | ||
✔️ | JVM Tests - JDK 21 | Logs | Raw logs | 🔍 | ||
✖ | JVM Tests - JDK 17 Windows | Build |
Logs | Raw logs | 🚧 |
You can consult the Develocity build scans.
Flaky tests - Develocity
⚙️ Maven Tests - JDK 17 Windows
📦 integration-tests/maven
✖ io.quarkus.maven.it.CreateProjectMojoIT.testProjectGenerationFromScratch
- History
Cannot delete directory: target\test-classes\projects\project-generation
-java.lang.RuntimeException
java.lang.RuntimeException: Cannot delete directory: target\test-classes\projects\project-generation
at io.quarkus.maven.it.MojoTestBase.initEmptyProject(MojoTestBase.java:72)
at io.quarkus.maven.it.CreateProjectMojoIT.testProjectGenerationFromScratch(CreateProjectMojoIT.java:60)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
Caused by: org.apache.commons.io.IOExceptionList: 1 exception(s): [org.apache.commons.io.IOIndexedException: IOException #0: Cannot delete file: target\test-classes\projects\project-generation\build-create-project-generation.log]
at org.apache.commons.io.IOExceptionList.checkEmpty(IOExceptionList.java:50)
✖ io.quarkus.maven.it.CreateProjectMojoIT.testProjectGenerationFromScratch
- History
Cannot delete directory: target\test-classes\projects\project-generation
-java.lang.RuntimeException
java.lang.RuntimeException: Cannot delete directory: target\test-classes\projects\project-generation
at io.quarkus.maven.it.MojoTestBase.initEmptyProject(MojoTestBase.java:72)
at io.quarkus.maven.it.CreateProjectMojoIT.testProjectGenerationFromScratch(CreateProjectMojoIT.java:60)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
Caused by: org.apache.commons.io.IOExceptionList: 1 exception(s): [org.apache.commons.io.IOIndexedException: IOException #0: Cannot delete file: target\test-classes\projects\project-generation\build-create-project-generation.log]
at org.apache.commons.io.IOExceptionList.checkEmpty(IOExceptionList.java:50)
No description provided.