Skip to content

Commit 8387b95

Browse files
authored
Enable Lombok annotation processor during Java 17 upgrades (#999)
Move EnableLombokAnnotationProcessor from UpgradeToJava25 to UpgradeToJava17, where the maven-compiler-plugin bump to 3.x actually breaks implicit annotation processor discovery (JEP 477). Java 21 and 25 inherit this via chaining. Fixes Lombok compilation failures (cannot find symbol for getter/setter) after upgrade. Closes moderneinc/customer-requests#1949
1 parent 1244e54 commit 8387b95

3 files changed

Lines changed: 14 additions & 25 deletions

File tree

src/main/resources/META-INF/rewrite/java-version-17.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ recipeList:
7474
artifactId: mapstruct*
7575
newVersion: 1.6.x
7676
- org.openrewrite.java.migrate.AddLombokMapstructBinding
77+
- org.openrewrite.java.migrate.EnableLombokAnnotationProcessor
7778

7879
---
7980
type: specs.openrewrite.org/v1beta/recipe

src/main/resources/META-INF/rewrite/java-version-25.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@ recipeList:
4242
- org.openrewrite.java.migrate.RemoveSecurityManager
4343
- org.openrewrite.java.migrate.SystemGetSecurityManagerToNull
4444
- org.openrewrite.java.migrate.MigrateZipErrorToZipException
45-
- org.openrewrite.java.migrate.EnableLombokAnnotationProcessor
4645
- org.openrewrite.java.migrate.MigrateGraalVMResourceConfig
4746

4847
---

src/test/java/org/openrewrite/java/migrate/UpgradeToJava17Test.java

Lines changed: 13 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -428,43 +428,32 @@ private static void agentmain(String agentArgs, String inst) {
428428
@Test
429429
void lombokBumpedGoingTo17() {
430430
rewriteRun(
431-
//language=xml
432-
pomXml(
433-
"""
434-
<project>
435-
<modelVersion>4.0.0</modelVersion>
436-
<groupId>com.mycompany.app</groupId>
437-
<artifactId>my-app</artifactId>
438-
<version>1</version>
439-
<dependencies>
440-
<dependency>
441-
<groupId>org.projectlombok</groupId>
442-
<artifactId>lombok</artifactId>
443-
<version>1.16.22</version>
444-
</dependency>
445-
</dependencies>
446-
</project>
447-
""",
448-
spec -> spec.after(actual ->
431+
spec -> spec.cycles(2).expectedCyclesThatMakeChanges(2),
432+
mavenProject("project",
433+
//language=xml
434+
pomXml(
449435
"""
450436
<project>
451437
<modelVersion>4.0.0</modelVersion>
452438
<groupId>com.mycompany.app</groupId>
453439
<artifactId>my-app</artifactId>
454440
<version>1</version>
455-
<properties>
456-
<maven.compiler.release>17</maven.compiler.release>
457-
</properties>
458441
<dependencies>
459442
<dependency>
460443
<groupId>org.projectlombok</groupId>
461444
<artifactId>lombok</artifactId>
462-
<version>%s</version>
445+
<version>1.16.22</version>
463446
</dependency>
464447
</dependencies>
465448
</project>
466-
""".formatted(Pattern.compile("<version>(1\\.18.*)</version>")
467-
.matcher(actual).results().findFirst().orElseThrow().group(1))
449+
""",
450+
spec -> spec.after(actual ->
451+
assertThat(actual)
452+
.contains("<maven.compiler.release>17</maven.compiler.release>")
453+
.containsPattern("<annotationProcessorPaths>(.|\\n)*<path>(.|\\n)*<groupId>org.projectlombok")
454+
.containsPattern("<annotationProcessorPaths>(.|\\n)*<path>(.|\\n)*<artifactId>lombok")
455+
.actual()
456+
)
468457
)
469458
)
470459
);

0 commit comments

Comments
 (0)