Skip to content

Commit e15dadc

Browse files
authored
Adds direct Jakarta dependency if only available as transitive (#767)
1 parent 932b979 commit e15dadc

File tree

2 files changed

+88
-0
lines changed

2 files changed

+88
-0
lines changed

src/main/resources/META-INF/rewrite/jakarta-ee-9.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -475,6 +475,11 @@ recipeList:
475475
groupId: jakarta.mail
476476
artifactId: jakarta.mail-api
477477
newVersion: 2.0.x
478+
- org.openrewrite.java.dependencies.AddDependency:
479+
groupId: jakarta.mail
480+
artifactId: jakarta.mail-api
481+
version: 2.0.x
482+
onlyIfUsing: javax.mail.*
478483
- org.openrewrite.java.ChangePackage:
479484
oldPackageName: javax.mail
480485
newPackageName: jakarta.mail

src/test/java/org/openrewrite/java/migrate/jakarta/JavaxMailToJakartaMailTest.java

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,4 +154,87 @@ public class TestApplication {
154154
)
155155
);
156156
}
157+
158+
@Test
159+
void addsJakartaMailDependencyIfExistingInTransitive() {
160+
rewriteRun(
161+
mavenProject(
162+
"Sample",
163+
srcMainJava(
164+
//language=java
165+
java(
166+
"""
167+
import javax.mail.Session;
168+
public class TestApplication {
169+
}
170+
""",
171+
"""
172+
import jakarta.mail.Session;
173+
public class TestApplication {
174+
}
175+
"""
176+
)
177+
),
178+
//language=xml
179+
pomXml(
180+
"""
181+
<?xml version="1.0" encoding="UTF-8"?>
182+
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
183+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
184+
<modelVersion>4.0.0</modelVersion>
185+
<groupId>com.example</groupId>
186+
<artifactId>demo</artifactId>
187+
<version>0.0.1-SNAPSHOT</version>
188+
</project>
189+
""",
190+
"""
191+
<?xml version="1.0" encoding="UTF-8"?>
192+
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
193+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
194+
<modelVersion>4.0.0</modelVersion>
195+
<groupId>com.example</groupId>
196+
<artifactId>demo</artifactId>
197+
<version>0.0.1-SNAPSHOT</version>
198+
<dependencies>
199+
<dependency>
200+
<groupId>jakarta.mail</groupId>
201+
<artifactId>jakarta.mail-api</artifactId>
202+
<version>2.0.1</version>
203+
</dependency>
204+
</dependencies>
205+
</project>
206+
"""
207+
)
208+
)
209+
);
210+
}
211+
212+
@Test
213+
void ignoresJakartaMailDependencyIfAlreadyExisting() {
214+
rewriteRun(
215+
mavenProject(
216+
"Sample",
217+
//language=xml
218+
pomXml(
219+
"""
220+
<?xml version="1.0" encoding="UTF-8"?>
221+
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
222+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
223+
<modelVersion>4.0.0</modelVersion>
224+
<groupId>com.example</groupId>
225+
<artifactId>demo</artifactId>
226+
<version>0.0.1-SNAPSHOT</version>
227+
<dependencies>
228+
<dependency>
229+
<groupId>jakarta.mail</groupId>
230+
<artifactId>jakarta.mail-api</artifactId>
231+
<version>2.0.1</version>
232+
</dependency>
233+
</dependencies>
234+
</project>
235+
"""
236+
)
237+
)
238+
);
239+
}
157240
}

0 commit comments

Comments
 (0)