-
Notifications
You must be signed in to change notification settings - Fork 80
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
@PostConstruct
import being removed from beans
#457
Comments
@PostConstruct
being removed from @RequestScopedBeans
@PostConstruct
being removed from beans
Thanks for the report @melloware & welcome back! @cjobinabo Does this ring familiar to you or your team? Did we miss a test case to handle this properly? |
Nice to be back! I am lurking always checking on your progress :) |
@PostConstruct
being removed from beans@PostConstruct
import being removed from beans
I am looking through PR's and I can't see anything in particular that would have changed this? This was definitely not broken a couple of months ago when I did all my JakartaEE10 testing so it must have changed more recently? |
Interesting in my log i see that it ran the correct recipes:
But it definitely dopped the import. The code I am running against is here: https://github.com/primefaces/primefaces/tree/master/primefaces-showcase |
although interesting its a |
@melloware I have tried replicating your issue, for me PostConstruct import is not deleted diff --git a/devworkspace/oss/openrewrite-app/src/main/java/com/learnopenrewrite/app/Demo.java b/devworkspace/oss/openrewrite-app/src/main/java/com/learnopenrewrite/app/Demo.java
index 9c2ec3c..ef57d3e 100644
--- a/devworkspace/oss/openrewrite-app/src/main/java/com/learnopenrewrite/app/Demo.java
+++ b/devworkspace/oss/openrewrite-app/src/main/java/com/learnopenrewrite/app/Demo.java
@@ -1,6 +1,6 @@ org.openrewrite.config.CompositeRecipe
package com.learnopenrewrite.app;
-import javax.annotation.PostConstruct;
+import jakarta.annotation.PostConstruct;
public class Demo { However, when I ran your code, am able to replicate that PostConstruct import statement got deleted. Keep you posted. Thanks, |
Thanks @bsmahi i agree when I write a small test case it works but on that large project it is happening. Thanks for replicating! |
We did a new release Wednesday which also includes these recent changes
Would you mind checking if this still affects you using these versions?
It's odd that this has started happening. We hadn't added an explicit unit test for this one as it's just a few lines of yaml rewrite-migrate-java/src/main/resources/META-INF/rewrite/jakarta-ee-9.yml Lines 116 to 118 in 6920ea6
|
Confirmed this is still happening with latest release. It works in a small isolated test case but not in a large project like PrimeFaces Showcase its still stripping the |
Any news with regards to this one? It affects our EE10 migration as well... The weird thing about it is that indeed the "ChangeType" recipe is so simple that it should "just work", and the big frightening question is: Why does it still do so only in a simple test case, but not in real world scenarios? I fear that the underlying issue is not just about javax.annotation.PostConstruct, but could also apply "arbitrary" other cases where org.openrewrite.java.ChangeType has been used (and they silently fail to replace or even remove lines)!? 😢 @timtebeek , many thanks for an update on the current status... |
No news unfortunately, although we'd definitely like to see this fixed, especially if there's a suspected underlying issue with a core recipe. Would you be able to provide us with an ideally minimal reproducer? As unit tests for now appear not to cover this just yet. |
I am not positive but I have a feeling that two different rules are somehow applying here in the EE10 migration causing this. I will try and study it further but it is very strange. |
I submitted a PR and all tests are passing but I can't figure out with Gradle how do I do the equivalent of |
Which was exactly the main culprit here. With any sufficiently stripped-down test case, it works fine, and in the full complex scenario, it fails... But thanks a million to @melloware 👍 - I think you chose a very valid approach, and as I was testing myself to move from ChangeType to ChangePackage with good results, I am more than confident that this type of resolution will work - 🤞 Are you already able to tell us which official release version will contain this fix? many thx for the super-fast response time! Highly appreciated! 😄 👍 |
@AndreasALoew i know once @timtebeek approves the team is good about doing releases every week or two weeks I think this fix works as well! |
@melloware , after looking into your PR, great catch to notice that you have to revert the renaming for "javax.annotation.processing"... 👍 👍 👍 😉 Just out of curiosity: How did you notice - I myself would have overlooked this from what I can see in our code base... |
@timtebeek noticed in commit history of why it was done like this in the first place. I would not have noticed! |
Thanks all! Our latest snapshot versions should contain this fix; would appreciate a quick check if the problem is indeed resolved, but for now we'll assume this is fixed. |
Yes, I can confirm that the latest snapshot fixes the issue for "my"/our fully complex scenario👍 Thanks again! 😄 |
I am glad we got to the bottom of this! |
What version of OpenRewrite are you using?
Latest
How are you running OpenRewrite?
CLI using
mvn -U org.openrewrite.maven:rewrite-maven-plugin:run -Drewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-migrate-java:RELEASE -Drewrite.activeRecipes=org.openrewrite.java.migrate.jakarta.JakartaEE10
CDI Spec: https://jakarta.ee/specifications/cdi/2.0/cdi-spec-2.0.pdf
Before conversion:
After Conversion:
ERROR
Instead of converting
import javax.annotation.PostConstruct;
it just removed theimport
entirely.The text was updated successfully, but these errors were encountered: