Open melloware opened 2 months ago
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 :)
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:
RNING] Changes have been made to primefaces-showcase\src\main\java\org\primefaces\showcase\view\overlay\MovieView.java by:
[WARNING] org.openrewrite.java.migrate.jakarta.JakartaEE10
[WARNING] org.openrewrite.java.migrate.jakarta.JavaxMigrationToJakarta
[WARNING] org.openrewrite.java.migrate.jakarta.JavaxAnnotationMigrationToJakartaAnnotation
[WARNING] org.openrewrite.java.ChangeType: {oldFullyQualifiedTypeName=javax.annotation.PostConstruct, newFullyQualifiedTypeName=jakarta.annotation.PostConstruct}
[WARNING] org.openrewrite.java.migrate.jakarta.JavaxEnterpriseToJakartaEnterprise
[WARNING] org.openrewrite.java.ChangePackage: {oldPackageName=javax.enterprise, newPackageName=jakarta.enterprise, recursive=true}
[WARNING] org.openrewrite.java.migrate.jakarta.JavaxFacesToJakartaFaces
[WARNING] org.openrewrite.java.ChangePackage: {oldPackageName=javax.faces, newPackageName=jakarta.faces, recursive=true}
[WARNING] org.openrewrite.java.migrate.jakarta.JavaxInjectMigrationToJakartaInject
[WARNING] org.openrewrite.java.ChangePackage: {oldPackageName=javax.inject, newPackageName=jakarta.inject, recursive=true}
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 ChangeType
instead of a ChangePackage
?
@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, Mahi
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 https://github.com/openrewrite/rewrite-migrate-java/blob/6920ea6943c672aea6a7ffa0d7e1316c2208b05b/src/main/resources/META-INF/rewrite/jakarta-ee-9.yml#L116-L118
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 import
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.