-
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
Correct how we process injection point transformers for SR CP #38841
Conversation
This comment has been minimized.
This comment has been minimized.
I have added a comment that also alters gRPC processor which is incorrectly expecting method param as annotation target. With that, it should be review ready. |
This comment has been minimized.
This comment has been minimized.
extensions/grpc/deployment/src/main/java/io/quarkus/grpc/deployment/GrpcClientProcessor.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.
I can't exactly say I understand the ConProp extension, but the rest LGTM.
@mkouba I let you review that one. Also we need to decide if it's a good idea to backport it or not. I'm on the verge tbh. |
I've used the builder pattern for |
Actually, I just realized that the bit I fixed in Arc codebase might be worth it as that fixes how you can apply injection point transformers on method params in general 🤔 |
This comment has been minimized.
This comment has been minimized.
@manovotn looks like |
Noticed, already working on it; I will send a separate PR. |
Correct gRPC injection point transformer to expect method AnnotationTarget instead of method param.
This should be good to merge but just to be safe and get proper CI result, I've rebased the PR onto main. |
The |
Status for workflow
|
Status | Name | Step | Failures | Logs | Raw logs | Build scan |
---|---|---|---|---|---|---|
✖ | Native Tests - Data5 | Build |
Failures | Logs | Raw logs | 🚧 |
Full information is available in the Build summary check run.
Failures
⚙️ Native Tests - Data5 #
- Failing: integration-tests/jpa-postgresql-withxml
📦 integration-tests/jpa-postgresql-withxml
✖ io.quarkus.it.jpa.postgresql.ImageMetricsITCase.verifyImageMetrics
line 15
- History - More details - Source on GitHub
org.opentest4j.AssertionFailedError: Expected analysis_results.fields.reflection to be within range [163 +- 3%] but was 168 ==> expected: <true> but was: <false>
at org.junit.jupiter.api.AssertionFailureBuilder.build(AssertionFailureBuilder.java:151)
at org.junit.jupiter.api.AssertionFailureBuilder.buildAndThrow(AssertionFailureBuilder.java:132)
at org.junit.jupiter.api.AssertTrue.failNotTrue(AssertTrue.java:63)
at org.junit.jupiter.api.AssertTrue.assertTrue(AssertTrue.java:36)
at org.junit.jupiter.api.Assertions.assertTrue(Assertions.java:214)
at io.quarkus.test.junit.nativeimage.NativeBuildOutputExtension.assertValueWithinRange(NativeBuildOutputExtension.java:90)
at io.quarkus.test.junit.nativeimage.NativeBuildOutputExtension.lambda$verifyImageMetrics$0(NativeBuildOutputExtension.java:66)
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)
This fixes how we process injection points for SR CP processor where we were incorrectly expecting
AnnotationTarget
for method param while we should be operating on just method.There was also a bug in Arc that, for a method injection point, returned a set of qualifiers belonging to the whole method instead of just given parameter.
I have yet to take a closer look at other usages in Quarkus which may have similar issues - one of which is the grpc processor I mentioned in the original issue.