diff --git a/rewrite-gradle/src/main/java/org/openrewrite/gradle/GradleParser.java b/rewrite-gradle/src/main/java/org/openrewrite/gradle/GradleParser.java index de93ddacefe..0daf7197fec 100644 --- a/rewrite-gradle/src/main/java/org/openrewrite/gradle/GradleParser.java +++ b/rewrite-gradle/src/main/java/org/openrewrite/gradle/GradleParser.java @@ -24,7 +24,9 @@ import org.openrewrite.groovy.GroovyIsoVisitor; import org.openrewrite.groovy.GroovyParser; import org.openrewrite.groovy.tree.G; +import org.openrewrite.internal.ListUtils; import org.openrewrite.internal.lang.Nullable; +import org.openrewrite.java.tree.Comment; import java.nio.file.Path; import java.util.Collections; @@ -64,7 +66,9 @@ public List<G.CompilationUnit> parseInputs(Iterable<Input> sources, @Nullable Pa @Override public G.CompilationUnit visitCompilationUnit(G.CompilationUnit cu, ExecutionContext executionContext) { G.CompilationUnit g = super.visitCompilationUnit(cu, ctx); - return g.withStatements(g.getStatements().subList(DefaultImportsCustomizer.DEFAULT_IMPORTS.length, g.getStatements().size())); + List<Comment> comments = g.getStatements().get(0).getComments(); + return g.withStatements(ListUtils.mapFirst(g.getStatements().subList(DefaultImportsCustomizer.DEFAULT_IMPORTS.length, g.getStatements().size()), + s -> s.withComments(comments))); } }; diff --git a/rewrite-gradle/src/test/java/org/openrewrite/gradle/GradleParserTest.java b/rewrite-gradle/src/test/java/org/openrewrite/gradle/GradleParserTest.java index d679eb94d8f..8035e05738f 100644 --- a/rewrite-gradle/src/test/java/org/openrewrite/gradle/GradleParserTest.java +++ b/rewrite-gradle/src/test/java/org/openrewrite/gradle/GradleParserTest.java @@ -52,7 +52,7 @@ void allowImports() { buildGradle( """ import org.gradle.api.Project - + dependencies { implementation "org.openrewrite:rewrite-java:latest.release" } @@ -79,7 +79,7 @@ void allowMethodDeclaration() { dependencies { implementation "org.openrewrite:rewrite-java:latest.release" } - + def greet() { return "Hello, world!" } @@ -97,4 +97,22 @@ def greet() { ) ); } + + @Test + void dontClobberLeadingComments() { + rewriteRun( + buildGradle( + """ + /* + * LICENSE + */ + import org.gradle.api.Project + + dependencies { + testImplementation "junit:junit:4.13" + } + """ + ) + ); + } }