Skip to content

Commit 88a1c90

Browse files
evie-lautimtebeek
andauthored
Ensure jakarta.annotation dependency is provided scope. Add/change tests (#734)
* Ensure jakarta.annotation dependency is provided scope. Add/change tests * Apply suggestions from code review --------- Co-authored-by: Tim te Beek <[email protected]>
1 parent d8e4990 commit 88a1c90

File tree

2 files changed

+65
-5
lines changed

2 files changed

+65
-5
lines changed

src/main/resources/META-INF/rewrite/add-common-annotations-dependencies.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,15 @@ recipeList:
3333
newGroupId: jakarta.annotation
3434
newArtifactId: jakarta.annotation-api
3535
newVersion: 1.3.x
36+
# Jakarta EE recommends `provided` scope
37+
- org.openrewrite.maven.ChangeDependencyScope:
38+
groupId: jakarta.annotation
39+
artifactId: jakarta.annotation-api
40+
newScope: provided
3641
- org.openrewrite.java.dependencies.AddDependency:
3742
groupId: jakarta.annotation
3843
artifactId: jakarta.annotation-api
3944
version: 1.3.x
4045
onlyIfUsing: javax.annotation..*
46+
scope: provided
4147
acceptTransitive: true

src/test/java/org/openrewrite/java/migrate/javax/AddCommonAnnotationsDependenciesTest.java

Lines changed: 59 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ void addDependencyIfAnnotationJsr250Present() {
4343
java(
4444
"""
4545
import javax.annotation.Generated;
46-
46+
4747
@Generated("Hello")
4848
class A {
4949
}
@@ -53,17 +53,70 @@ class A {
5353
//language=xml
5454
pomXml(
5555
"""
56-
<?xml version="1.0" encoding="UTF-8"?>
57-
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
56+
<project>
5857
<modelVersion>4.0.0</modelVersion>
5958
<groupId>org.sample</groupId>
6059
<artifactId>sample</artifactId>
6160
<version>1.0.0</version>
6261
</project>
6362
""",
6463
"""
65-
<?xml version="1.0" encoding="UTF-8"?>
66-
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
64+
<project>
65+
<modelVersion>4.0.0</modelVersion>
66+
<groupId>org.sample</groupId>
67+
<artifactId>sample</artifactId>
68+
<version>1.0.0</version>
69+
<dependencies>
70+
<dependency>
71+
<groupId>jakarta.annotation</groupId>
72+
<artifactId>jakarta.annotation-api</artifactId>
73+
<version>1.3.5</version>
74+
<scope>provided</scope>
75+
</dependency>
76+
</dependencies>
77+
</project>
78+
"""
79+
)
80+
)
81+
);
82+
}
83+
84+
@Test
85+
void changeAndUpgradeDependencyIfAnnotationJsr250Present() {
86+
rewriteRun(
87+
spec -> spec.parser(JavaParser.fromJavaVersion().dependsOn("package javax.annotation; public @interface Generated {}")),
88+
mavenProject("my-project",
89+
//language=java
90+
srcMainJava(
91+
java(
92+
"""
93+
import javax.annotation.Generated;
94+
95+
@Generated("Hello")
96+
class A {
97+
}
98+
"""
99+
)
100+
),
101+
//language=xml
102+
pomXml(
103+
"""
104+
<project>
105+
<modelVersion>4.0.0</modelVersion>
106+
<groupId>org.sample</groupId>
107+
<artifactId>sample</artifactId>
108+
<version>1.0.0</version>
109+
<dependencies>
110+
<dependency>
111+
<groupId>javax.annotation</groupId>
112+
<artifactId>javax.annotation-api</artifactId>
113+
<version>1.3.2</version>
114+
</dependency>
115+
</dependencies>
116+
</project>
117+
""",
118+
"""
119+
<project>
67120
<modelVersion>4.0.0</modelVersion>
68121
<groupId>org.sample</groupId>
69122
<artifactId>sample</artifactId>
@@ -73,6 +126,7 @@ class A {
73126
<groupId>jakarta.annotation</groupId>
74127
<artifactId>jakarta.annotation-api</artifactId>
75128
<version>1.3.5</version>
129+
<scope>provided</scope>
76130
</dependency>
77131
</dependencies>
78132
</project>

0 commit comments

Comments
 (0)