Skip to content

Commit 2467d78

Browse files
authored
Align JakartaEE migrations with EE9 vs EE10 versions (#674)
# WHY The `org.openrewrite.java.migrate.jakarta.JavaxMigrationToJakarta` recipe states in the description that it will migrate to the EE9 version. However it updates both api and implementation jars to `latest.release`. As a consequence the EE9 migration will pick a version for EE10 or later. Since later Jakarta EE versions sometime remove or change api, this may lead to compile time or runtime errors. # WHAT This commit updates both the EE9 and the EE10 recipe to pin specification jars to the version corresponding to the umbrella EE version. The versions are aligned with https://github.com/jakartaee/jakartaee-api/blob/9.1.0/pom.xml and https://github.com/jakartaee/jakartaee-api/blob/10.0.0/pom.xml respectively. Where runtime dependencies are added, e.g. `com.sun.xml.ws:jaxws-rt`, the implementation matching the spec version is selected: `com.sun.xml.ws:jaxws-rt:3.x` for `jakarta.xml.ws:jakarta.xml.ws-api:3.0.x` and `com.sun.xml.ws:jaxws-rt:4.x` for `jakarta.xml.ws:jakarta.xml.ws-api:4.0.x`
1 parent b741117 commit 2467d78

File tree

3 files changed

+197
-74
lines changed

3 files changed

+197
-74
lines changed

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

+103
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ tags:
2323
- jakarta
2424
recipeList:
2525
- org.openrewrite.java.migrate.jakarta.JavaxMigrationToJakarta
26+
- org.openrewrite.java.migrate.jakarta.MigrationToJakarta10Apis
2627
- org.openrewrite.java.migrate.jakarta.Faces2xMigrationToJakarta4x
2728
- org.openrewrite.java.migrate.jakarta.RemovedIsParmetersProvidedMethod
2829
- org.openrewrite.java.migrate.jakarta.RemovedSOAPElementFactory
@@ -37,7 +38,81 @@ recipeList:
3738
- org.openrewrite.java.migrate.jakarta.JavaxBeanValidationXmlToJakartaBeanValidationXml
3839
- org.openrewrite.java.migrate.jakarta.JavaxToJakartaCdiExtensions
3940
- org.openrewrite.java.migrate.jakarta.UpdateJakartaPlatform10
41+
---
42+
type: specs.openrewrite.org/v1beta/recipe
43+
name: org.openrewrite.java.migrate.jakarta.MigrationToJakarta10Apis
44+
displayName: Migrate Jakarta EE 9 api dependencies to Jakarta EE 10 versions
45+
description: Jakarta EE 10 updates some apis compared to Jakarta EE 9.
46+
tags:
47+
- jakarta
48+
# NOTE: The spec versions in this section comes from https://github.com/jakartaee/jakartaee-api/blob/10.0.0/pom.xml
49+
recipeList:
4050
- org.openrewrite.java.migrate.jakarta.UpdateJakartaAnnotations2
51+
- org.openrewrite.java.migrate.jakarta.UpdateJakartaXmlWsEE10
52+
- org.openrewrite.java.dependencies.UpgradeDependencyVersion:
53+
groupId: jakarta.activation
54+
artifactId: jakarta.activation-api
55+
newVersion: 2.1.x
56+
- org.openrewrite.java.dependencies.UpgradeDependencyVersion:
57+
groupId: jakarta.authentication
58+
artifactId: jakarta.authentication-api
59+
newVersion: 3.0.x
60+
- org.openrewrite.java.dependencies.UpgradeDependencyVersion:
61+
groupId: jakarta.authorization
62+
artifactId: jakarta.authorization-api
63+
newVersion: 2.1.x
64+
- org.openrewrite.java.dependencies.UpgradeDependencyVersion:
65+
groupId: jakarta.batch
66+
artifactId: jakarta.batch-api
67+
newVersion: 2.1.x
68+
- org.openrewrite.java.dependencies.UpgradeDependencyVersion:
69+
groupId: jakarta.validation
70+
artifactId: jakarta.validation-api
71+
newVersion: 3.0.x
72+
- org.openrewrite.java.dependencies.UpgradeDependencyVersion:
73+
groupId: jakarta.enterprise
74+
artifactId: jakarta.enterprise.cdi-api
75+
newVersion: 4.0.x
76+
- org.openrewrite.java.dependencies.UpgradeDependencyVersion:
77+
groupId: jakarta.el
78+
artifactId: jakarta.el-api
79+
newVersion: 5.0.x
80+
- org.openrewrite.java.dependencies.UpgradeDependencyVersion:
81+
groupId: jakarta.interceptor
82+
artifactId: jakarta.interceptor-api
83+
newVersion: 2.1.x
84+
- org.openrewrite.java.dependencies.UpgradeDependencyVersion:
85+
groupId: jakarta.persistence
86+
artifactId: jakarta.persistence-api
87+
newVersion: 3.1.x
88+
- org.openrewrite.java.dependencies.UpgradeDependencyVersion:
89+
groupId: jakarta.resource
90+
artifactId: jakarta.resource-api
91+
newVersion: 2.1.x
92+
- org.openrewrite.java.dependencies.UpgradeDependencyVersion:
93+
groupId: jakarta.security.enterprise
94+
artifactId: jakarta.security.enterprise-api
95+
newVersion: 3.0.x
96+
- org.openrewrite.java.dependencies.UpgradeDependencyVersion:
97+
groupId: jakarta.servlet
98+
artifactId: jakarta.servlet-api
99+
newVersion: 6.0.x
100+
- org.openrewrite.java.dependencies.UpgradeDependencyVersion:
101+
groupId: jakarta.websocket
102+
artifactId: jakarta.websocket-api
103+
newVersion: 2.1.x
104+
- org.openrewrite.java.dependencies.UpgradeDependencyVersion:
105+
groupId: jakarta.jms
106+
artifactId: jakarta.jms-api
107+
newVersion: 3.1.x
108+
- org.openrewrite.java.dependencies.UpgradeDependencyVersion:
109+
groupId: jakarta.json
110+
artifactId: jakarta.json-api
111+
newVersion: 2.1.x
112+
- org.openrewrite.java.dependencies.UpgradeDependencyVersion:
113+
groupId: jakarta.ws.rs
114+
artifactId: jakarta.ws.rs-api
115+
newVersion: 3.1.x
41116
---
42117
type: specs.openrewrite.org/v1beta/recipe
43118
name: org.openrewrite.java.migrate.jakarta.ServletCookieBehaviorChangeRFC6265
@@ -301,3 +376,31 @@ recipeList:
301376
groupId: jakarta.annotations
302377
artifactId: jakarta.annotation-api
303378
newVersion: 2.1.x
379+
- org.openrewrite.java.ChangeType:
380+
oldFullyQualifiedTypeName: javax.annotation.Nullable
381+
newFullyQualifiedTypeName: jakarta.annotation.Nullable
382+
- org.openrewrite.java.ChangeType:
383+
oldFullyQualifiedTypeName: javax.annotation.Nonnull
384+
newFullyQualifiedTypeName: jakarta.annotation.Nonnull
385+
---
386+
type: specs.openrewrite.org/v1beta/recipe
387+
name: org.openrewrite.java.migrate.jakarta.UpdateJakartaXmlWsEE10
388+
displayName: Update Jakarta EE XML Web Services Dependencies for EE 10.
389+
description: Update Jakarta EE XML Web Services Dependencies for EE 10.
390+
recipeList:
391+
- org.openrewrite.java.dependencies.UpgradeDependencyVersion:
392+
groupId: jakarta.xml.bind
393+
artifactId: jakarta.xml.bind-api
394+
newVersion: 4.0.x
395+
- org.openrewrite.java.dependencies.UpgradeDependencyVersion:
396+
groupId: jakarta.xml.soap
397+
artifactId: jakarta.xml.soap-api
398+
newVersion: 3.0.x
399+
- org.openrewrite.java.dependencies.UpgradeDependencyVersion:
400+
groupId: jakarta.xml.ws
401+
artifactId: jakarta.xml.ws-api
402+
newVersion: 4.0.x
403+
- org.openrewrite.java.dependencies.UpgradeDependencyVersion:
404+
groupId: com.sun.xml.ws
405+
artifactId: jaxws-rt
406+
newVersion: 4.x

0 commit comments

Comments
 (0)