Skip to content

Commit 19ba363

Browse files
Change the Jetty dependency coordinates going from EE9 to EE10 (#914)
* jakartaEE10 adds jetty upgrade logic. * Add a test illustrating the issue * Make test more descriptive * Change the recipe to handle chained EE9 migration --------- Co-authored-by: Tim te Beek <[email protected]>
1 parent d802221 commit 19ba363

File tree

2 files changed

+126
-0
lines changed

2 files changed

+126
-0
lines changed

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

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ tags:
2424
recipeList:
2525
- org.openrewrite.java.migrate.jakarta.JavaxMigrationToJakarta
2626
- org.openrewrite.java.migrate.jakarta.MigrationToJakarta10Apis
27+
- org.openrewrite.java.migrate.jakarta.JettyUpgradeEE10
2728
- org.openrewrite.java.migrate.jakarta.Faces3xMigrationToFaces4x
2829
- org.openrewrite.java.migrate.jakarta.RemovedIsParmetersProvidedMethod
2930
- org.openrewrite.java.migrate.jakarta.RemovedSOAPElementFactory
@@ -523,3 +524,66 @@ recipeList:
523524
artifactId: yasson
524525
newVersion: 3.0.x
525526
---
527+
type: specs.openrewrite.org/v1beta/recipe
528+
name: org.openrewrite.java.migrate.jakarta.JettyUpgradeEE10
529+
displayName: Update Jetty EE9 to Jetty EE10
530+
description: Update Jetty dependencies from EE9 to EE10, changing the groupId and artifactIds as needed.
531+
recipeList:
532+
- org.openrewrite.java.dependencies.ChangeDependency:
533+
oldGroupId: org.eclipse.jetty.ee9.websocket
534+
oldArtifactId: jetty-ee9-websocket-jetty-server
535+
newGroupId: org.eclipse.jetty.ee10.websocket
536+
newArtifactId: jetty-ee10-websocket-jetty-server
537+
newVersion: 12.0.x
538+
- org.openrewrite.java.dependencies.ChangeDependency:
539+
oldGroupId: org.eclipse.jetty.ee9.websocket
540+
oldArtifactId: jetty-ee9-websocket-jetty-client
541+
newGroupId: org.eclipse.jetty.ee10.websocket
542+
newArtifactId: jetty-ee10-websocket-jetty-client
543+
newVersion: 12.0.x
544+
- org.openrewrite.java.dependencies.ChangeDependency:
545+
oldGroupId: org.eclipse.jetty.ee9
546+
oldArtifactId: jetty-ee9-apache-jsp
547+
newGroupId: org.eclipse.jetty.ee10
548+
newArtifactId: jetty-ee10-apache-jsp
549+
newVersion: 12.0.x
550+
- org.openrewrite.java.dependencies.ChangeDependency:
551+
oldGroupId: org.eclipse.jetty.ee9
552+
oldArtifactId: jetty-ee9-servlets
553+
newGroupId: org.eclipse.jetty.ee10
554+
newArtifactId: jetty-ee10-servlets
555+
newVersion: 12.0.x
556+
- org.openrewrite.java.dependencies.ChangeDependency:
557+
oldGroupId: org.eclipse.jetty.ee9
558+
oldArtifactId: jetty-ee9-servlet
559+
newGroupId: org.eclipse.jetty.ee10
560+
newArtifactId: jetty-ee10-servlet
561+
newVersion: 12.0.x
562+
- org.openrewrite.java.dependencies.ChangeDependency:
563+
oldGroupId: org.eclipse.jetty.ee9
564+
oldArtifactId: jetty-ee9-webapp
565+
newGroupId: org.eclipse.jetty.ee10
566+
newArtifactId: jetty-ee10-webapp
567+
newVersion: 12.0.x
568+
- org.openrewrite.java.dependencies.ChangeDependency:
569+
oldGroupId: org.eclipse.jetty.ee9
570+
oldArtifactId: jetty-ee9-security
571+
newGroupId: org.eclipse.jetty.ee10
572+
newArtifactId: jetty-ee10-security
573+
newVersion: 12.0.x
574+
- org.openrewrite.java.dependencies.ChangeDependency:
575+
oldGroupId: org.eclipse.jetty.ee9
576+
oldArtifactId: jetty-ee9-proxy
577+
newGroupId: org.eclipse.jetty.ee10
578+
newArtifactId: jetty-ee10-proxy
579+
newVersion: 12.0.x
580+
- org.openrewrite.java.dependencies.ChangeDependency:
581+
oldGroupId: org.eclipse.jetty.ee9
582+
oldArtifactId: jetty-ee9-annotations
583+
newGroupId: org.eclipse.jetty.ee10
584+
newArtifactId: jetty-ee10-annotations
585+
newVersion: 12.0.x
586+
- org.openrewrite.java.ChangeType:
587+
oldFullyQualifiedTypeName: org.eclipse.jetty.util.resource.ResourceCollection
588+
newFullyQualifiedTypeName: org.eclipse.jetty.util.resource.Resource
589+
---
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
/*
2+
* Copyright 2024 the original author or authors.
3+
* <p>
4+
* Licensed under the Moderne Source Available License (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
* <p>
8+
* https://docs.moderne.io/licensing/moderne-source-available-license
9+
* <p>
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
package org.openrewrite.java.migrate.jakarta;
17+
18+
import org.junit.jupiter.api.Test;
19+
import org.openrewrite.DocumentExample;
20+
import org.openrewrite.test.RecipeSpec;
21+
import org.openrewrite.test.RewriteTest;
22+
23+
import static org.assertj.core.api.Assertions.assertThat;
24+
import static org.openrewrite.maven.Assertions.pomXml;
25+
26+
class JakartaEE10Test implements RewriteTest {
27+
28+
@Override
29+
public void defaults(RecipeSpec spec) {
30+
spec.recipeFromResources("org.openrewrite.java.migrate.jakarta.JakartaEE10");
31+
}
32+
33+
@DocumentExample
34+
@Test
35+
void chainedJettyUpgradeEE10() {
36+
rewriteRun(
37+
pomXml(
38+
"""
39+
<project>
40+
<modelVersion>4.0.0</modelVersion>
41+
<groupId>com.example</groupId>
42+
<artifactId>demo</artifactId>
43+
<version>0.0.1-SNAPSHOT</version>
44+
<dependencies>
45+
<dependency>
46+
<groupId>org.eclipse.jetty.websocket</groupId>
47+
<artifactId>websocket-server</artifactId>
48+
<version>9.4.58.v20250814</version>
49+
</dependency>
50+
</dependencies>
51+
</project>
52+
""",
53+
spec -> spec.after(pom ->
54+
assertThat(pom)
55+
.as("websocket dependencies").doesNotContain("org.eclipse.jetty.websocket", "websocket-server")
56+
.as("EE9 dependencies").doesNotContain("org.eclipse.jetty.ee9.websocket", "jetty-ee9-websocket-jetty-server")
57+
.as("EE10 dependencies").contains("org.eclipse.jetty.ee10.websocket", "jetty-ee10-websocket-jetty-server")
58+
.actual())
59+
)
60+
);
61+
}
62+
}

0 commit comments

Comments
 (0)