From b8c0427b3d1a5dc688f496ba64b755d5c12c4581 Mon Sep 17 00:00:00 2001 From: Rawi01 Date: Mon, 16 Sep 2024 20:42:09 +0200 Subject: [PATCH 1/3] [#3722] Support new JDK23 CommentStyle --- .github/workflows/ant.yml | 4 ++-- .../lombok/delombok/DocCommentIntegrator.java | 2 +- src/utils/lombok/javac/Javac.java | 18 ++++++++++++++++-- test/pretty/resource/after/Javadoc.java | 17 +++++++++++++++++ test/pretty/resource/before/Javadoc.java | 19 +++++++++++++++++++ 5 files changed, 55 insertions(+), 5 deletions(-) create mode 100644 test/pretty/resource/after/Javadoc.java create mode 100644 test/pretty/resource/before/Javadoc.java diff --git a/.github/workflows/ant.yml b/.github/workflows/ant.yml index 4a53d427..8d743478 100644 --- a/.github/workflows/ant.yml +++ b/.github/workflows/ant.yml @@ -41,10 +41,10 @@ jobs: runs-on: ubuntu-latest needs: build env: - EA_JDK: 22 + EA_JDK: 23 strategy: matrix: - jdk: [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22] + jdk: [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23] goal: [javacCurrent] include: - jdk: 11 diff --git a/src/delombok/lombok/delombok/DocCommentIntegrator.java b/src/delombok/lombok/delombok/DocCommentIntegrator.java index f74ea249..3464964e 100644 --- a/src/delombok/lombok/delombok/DocCommentIntegrator.java +++ b/src/delombok/lombok/delombok/DocCommentIntegrator.java @@ -137,7 +137,7 @@ public class DocCommentIntegrator { } @Override public CommentStyle getStyle() { - return CommentStyle.JAVADOC; + return (CommentStyle) Javac.getCommentStyle(); } @Override public boolean isDeprecated() { diff --git a/src/utils/lombok/javac/Javac.java b/src/utils/lombok/javac/Javac.java index 1c9bed09..f7834687 100644 --- a/src/utils/lombok/javac/Javac.java +++ b/src/utils/lombok/javac/Javac.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2009-2019 The Project Lombok Authors. + * Copyright (C) 2009-2024 The Project Lombok Authors. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -43,6 +43,7 @@ import com.sun.tools.javac.code.Symtab; import com.sun.tools.javac.code.Type; import com.sun.tools.javac.main.JavaCompiler; import com.sun.tools.javac.parser.Tokens.Comment; +import com.sun.tools.javac.parser.Tokens.Comment.CommentStyle; import com.sun.tools.javac.tree.DocCommentTable; import com.sun.tools.javac.tree.JCTree; import com.sun.tools.javac.tree.JCTree.JCAnnotation; @@ -330,6 +331,10 @@ public class Javac { } } + public static Object getCommentStyle() { + return JavadocOps_8.COMMENT_STYLE; + } + private static class JavadocOps_8 { static String getJavadoc(Object dc, JCTree node) { DocCommentTable dct = (DocCommentTable) dc; @@ -350,6 +355,15 @@ public class Javac { dct.putComment(node, newCmt); } + private static final CommentStyle COMMENT_STYLE = getCommentStyle(); + private static CommentStyle getCommentStyle() { + try { + return CommentStyle.valueOf("JAVADOC"); + } catch (IllegalArgumentException e) { + return CommentStyle.valueOf("JAVADOC_BLOCK"); + } + } + private static Comment createJavadocComment(final String text, final JCTree field) { return new Comment() { @Override public String getText() { @@ -361,7 +375,7 @@ public class Javac { } @Override public CommentStyle getStyle() { - return CommentStyle.JAVADOC; + return COMMENT_STYLE; } @Override public boolean isDeprecated() { diff --git a/test/pretty/resource/after/Javadoc.java b/test/pretty/resource/after/Javadoc.java new file mode 100644 index 00000000..038d0dc4 --- /dev/null +++ b/test/pretty/resource/after/Javadoc.java @@ -0,0 +1,17 @@ +/** + * Block comment + */ +class BlockComment { + /** + * Method + */ + private void test() { + } +} +/// Markdown +/// Comment +class MarkdownComment { + /// Method + private void test() { + } +} \ No newline at end of file diff --git a/test/pretty/resource/before/Javadoc.java b/test/pretty/resource/before/Javadoc.java new file mode 100644 index 00000000..b0fce824 --- /dev/null +++ b/test/pretty/resource/before/Javadoc.java @@ -0,0 +1,19 @@ +/** + * Block comment + */ +class BlockComment { + + /** + * Method + */ + private void test() {} +} + +/// Markdown +/// Comment +class MarkdownComment { + + /// Method + private void test() {} + +} \ No newline at end of file From ec87cfb26072468d797bb4db39bff220c5240eac Mon Sep 17 00:00:00 2001 From: Rawi01 Date: Wed, 9 Oct 2024 00:11:08 +0200 Subject: [PATCH 2/3] Update docker integration tests --- .github/workflows/ant.yml | 4 +--- docker/ant/files/{jdk-22 => jdk-23}/classpath/build.xml | 0 docker/ant/files/{jdk-22 => jdk-23}/modules/build.xml | 0 docker/gradle/Dockerfile | 6 +++--- docker/maven/files/{jdk-22 => jdk-23}/classpath/pom.xml | 0 docker/maven/files/{jdk-22 => jdk-23}/modules/pom.xml | 0 docker/provision/gradle/gradle-6.8.3.sh | 4 ---- docker/provision/gradle/gradle-7.6.1.sh | 4 ---- docker/provision/gradle/gradle-8.3.sh | 4 ---- docker/provision/gradle/{gradle-8.5.sh => gradle.sh} | 4 ++-- docker/provision/jdk/java-22.sh | 4 ---- docker/provision/jdk/java-23.sh | 4 ++++ 12 files changed, 10 insertions(+), 24 deletions(-) rename docker/ant/files/{jdk-22 => jdk-23}/classpath/build.xml (100%) rename docker/ant/files/{jdk-22 => jdk-23}/modules/build.xml (100%) rename docker/maven/files/{jdk-22 => jdk-23}/classpath/pom.xml (100%) rename docker/maven/files/{jdk-22 => jdk-23}/modules/pom.xml (100%) delete mode 100755 docker/provision/gradle/gradle-6.8.3.sh delete mode 100755 docker/provision/gradle/gradle-7.6.1.sh delete mode 100755 docker/provision/gradle/gradle-8.3.sh rename docker/provision/gradle/{gradle-8.5.sh => gradle.sh} (64%) delete mode 100755 docker/provision/jdk/java-22.sh create mode 100755 docker/provision/jdk/java-23.sh diff --git a/.github/workflows/ant.yml b/.github/workflows/ant.yml index 8d743478..4d973d44 100644 --- a/.github/workflows/ant.yml +++ b/.github/workflows/ant.yml @@ -166,14 +166,12 @@ jobs: needs: build strategy: matrix: - jdk: [8, 11, 17, 21, 22] + jdk: [8, 11, 17, 21, 23] tool: - {name: "maven", cmd: "mvn compile"} - {name: "gradle", cmd: "gradle assemble"} - {name: "ant", cmd: "ant dist"} - {name: "bazel", cmd: "bazel build //:ProjectRunner"} - exclude: - - {tool: {name: "gradle", cmd: "gradle assemble"}, jdk: 22} fail-fast: false env: IMAGE_NAME: lombok-${{ matrix.tool.name }}-jdk${{ matrix.jdk }} diff --git a/docker/ant/files/jdk-22/classpath/build.xml b/docker/ant/files/jdk-23/classpath/build.xml similarity index 100% rename from docker/ant/files/jdk-22/classpath/build.xml rename to docker/ant/files/jdk-23/classpath/build.xml diff --git a/docker/ant/files/jdk-22/modules/build.xml b/docker/ant/files/jdk-23/modules/build.xml similarity index 100% rename from docker/ant/files/jdk-22/modules/build.xml rename to docker/ant/files/jdk-23/modules/build.xml diff --git a/docker/gradle/Dockerfile b/docker/gradle/Dockerfile index b83f7f0e..de625661 100644 --- a/docker/gradle/Dockerfile +++ b/docker/gradle/Dockerfile @@ -7,9 +7,9 @@ RUN provision/jdk/java-${jdk}.sh ARG lombokjar=lombok.jar ADD https://projectlombok.org/downloads/${lombokjar} /lombok.jar -ARG gradle=8.5 -ADD provision/gradle/gradle-${gradle}.sh provision/gradle/gradle-${gradle}.sh -RUN provision/gradle/gradle-${gradle}.sh +ARG gradle=8.10.2 +ADD provision/gradle/gradle.sh provision/gradle/gradle.sh +RUN provision/gradle/gradle.sh ${gradle} FROM ubuntu:22.04 diff --git a/docker/maven/files/jdk-22/classpath/pom.xml b/docker/maven/files/jdk-23/classpath/pom.xml similarity index 100% rename from docker/maven/files/jdk-22/classpath/pom.xml rename to docker/maven/files/jdk-23/classpath/pom.xml diff --git a/docker/maven/files/jdk-22/modules/pom.xml b/docker/maven/files/jdk-23/modules/pom.xml similarity index 100% rename from docker/maven/files/jdk-22/modules/pom.xml rename to docker/maven/files/jdk-23/modules/pom.xml diff --git a/docker/provision/gradle/gradle-6.8.3.sh b/docker/provision/gradle/gradle-6.8.3.sh deleted file mode 100755 index 62ab0f62..00000000 --- a/docker/provision/gradle/gradle-6.8.3.sh +++ /dev/null @@ -1,4 +0,0 @@ -apt-get update && apt-get install -y wget unzip -wget https://services.gradle.org/distributions/gradle-6.8.3-bin.zip -O gradle.zip -mkdir /opt/gradle && unzip -d /opt/gradle gradle.zip -mv /opt/gradle/gradle-6.8.3 /opt/gradle/gradle diff --git a/docker/provision/gradle/gradle-7.6.1.sh b/docker/provision/gradle/gradle-7.6.1.sh deleted file mode 100755 index d56d318a..00000000 --- a/docker/provision/gradle/gradle-7.6.1.sh +++ /dev/null @@ -1,4 +0,0 @@ -apt-get update && apt-get install -y wget unzip -wget https://services.gradle.org/distributions/gradle-7.6.1-bin.zip -O gradle.zip -mkdir /opt/gradle && unzip -d /opt/gradle gradle.zip -mv /opt/gradle/gradle-7.6.1 /opt/gradle/gradle diff --git a/docker/provision/gradle/gradle-8.3.sh b/docker/provision/gradle/gradle-8.3.sh deleted file mode 100755 index 507087d4..00000000 --- a/docker/provision/gradle/gradle-8.3.sh +++ /dev/null @@ -1,4 +0,0 @@ -apt-get update && apt-get install -y wget unzip -wget https://services.gradle.org/distributions/gradle-8.3-bin.zip -O gradle.zip -mkdir /opt/gradle && unzip -d /opt/gradle gradle.zip -mv /opt/gradle/gradle-8.3 /opt/gradle/gradle diff --git a/docker/provision/gradle/gradle-8.5.sh b/docker/provision/gradle/gradle.sh similarity index 64% rename from docker/provision/gradle/gradle-8.5.sh rename to docker/provision/gradle/gradle.sh index 2f13a210..60ce2734 100755 --- a/docker/provision/gradle/gradle-8.5.sh +++ b/docker/provision/gradle/gradle.sh @@ -1,4 +1,4 @@ apt-get update && apt-get install -y wget unzip -wget https://github.com/gradle/gradle-distributions/releases/download/v8.5.0/gradle-8.5-bin.zip -O gradle.zip +wget https://github.com/gradle/gradle-distributions/releases/download/v$1/gradle-$1-bin.zip -O gradle.zip mkdir /opt/gradle && unzip -d /opt/gradle gradle.zip -mv /opt/gradle/gradle-8.5 /opt/gradle/gradle +mv /opt/gradle/gradle-$1 /opt/gradle/gradle diff --git a/docker/provision/jdk/java-22.sh b/docker/provision/jdk/java-22.sh deleted file mode 100755 index 69135bfd..00000000 --- a/docker/provision/jdk/java-22.sh +++ /dev/null @@ -1,4 +0,0 @@ -apt-get update && apt-get install -y wget -wget https://download.java.net/java/GA/jdk22/830ec9fcccef480bb3e73fb7ecafe059/36/GPL/openjdk-22_linux-x64_bin.tar.gz -O jdk.tar.gz -tar -xzf jdk.tar.gz -C /opt/ -mv /opt/jdk-22 /opt/jdk diff --git a/docker/provision/jdk/java-23.sh b/docker/provision/jdk/java-23.sh new file mode 100755 index 00000000..5c489e28 --- /dev/null +++ b/docker/provision/jdk/java-23.sh @@ -0,0 +1,4 @@ +apt-get update && apt-get install -y wget +wget https://download.java.net/java/GA/jdk23/3c5b90190c68498b986a97f276efd28a/37/GPL/openjdk-23_linux-x64_bin.tar.gz -O jdk.tar.gz +tar -xzf jdk.tar.gz -C /opt/ +mv /opt/jdk-23 /opt/jdk From 28a7a8823a6aeca687782b9d46c5bff67b935ffa Mon Sep 17 00:00:00 2001 From: Rawi01 Date: Wed, 9 Oct 2024 00:37:10 +0200 Subject: [PATCH 3/3] -proc:full added --- docker/ant/files/jdk-23/classpath/build.xml | 1 + docker/ant/files/jdk-23/modules/build.xml | 1 + docker/maven/files/jdk-23/classpath/pom.xml | 3 ++- docker/maven/files/jdk-23/modules/pom.xml | 2 +- 4 files changed, 5 insertions(+), 2 deletions(-) diff --git a/docker/ant/files/jdk-23/classpath/build.xml b/docker/ant/files/jdk-23/classpath/build.xml index 07e58856..2bb486a8 100644 --- a/docker/ant/files/jdk-23/classpath/build.xml +++ b/docker/ant/files/jdk-23/classpath/build.xml @@ -20,6 +20,7 @@ + diff --git a/docker/ant/files/jdk-23/modules/build.xml b/docker/ant/files/jdk-23/modules/build.xml index e1f93550..13f661ac 100644 --- a/docker/ant/files/jdk-23/modules/build.xml +++ b/docker/ant/files/jdk-23/modules/build.xml @@ -20,6 +20,7 @@ + diff --git a/docker/maven/files/jdk-23/classpath/pom.xml b/docker/maven/files/jdk-23/classpath/pom.xml index 316a3b8f..52df5b57 100644 --- a/docker/maven/files/jdk-23/classpath/pom.xml +++ b/docker/maven/files/jdk-23/classpath/pom.xml @@ -7,7 +7,7 @@ UTF-8 - 22 + 23 @@ -22,6 +22,7 @@ true true true + full -Werror -Xlint:all diff --git a/docker/maven/files/jdk-23/modules/pom.xml b/docker/maven/files/jdk-23/modules/pom.xml index 95c3a86e..8c673a42 100644 --- a/docker/maven/files/jdk-23/modules/pom.xml +++ b/docker/maven/files/jdk-23/modules/pom.xml @@ -7,7 +7,7 @@ UTF-8 - 22 + 23