Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
package com.canonical.devpackspring.rewrite.visitors;

import java.nio.file.Paths;
import java.util.Arrays;
import java.util.List;

import com.canonical.devpackspring.rewrite.StatementUtil;
Expand All @@ -37,6 +36,8 @@ public class GroovyAddPluginVisitor extends GroovyIsoVisitor<ExecutionContext> {

private final String pluginTemplateGroovy = "plugins {\n\tid '%s' version '%s'\n}\n";

private final String builtInTemplateGroovy = "plugins {\n\tid '%s'\n}\n";

private final AddPluginVisitor visitor;

private final SourceFile templateSource;
Expand All @@ -46,10 +47,10 @@ public GroovyAddPluginVisitor(String pluginName, String pluginVersion) {
.groovyParser(GroovyParser.builder().logCompilationWarningsAndErrors(true));
Parser parser = builder.build();
InMemoryExecutionContext context = new InMemoryExecutionContext();
var pluginDefinition = (pluginVersion != null) ? String.format(pluginTemplateGroovy, pluginName, pluginVersion)
: String.format(builtInTemplateGroovy, pluginName);
templateSource = parser
.parseInputs(
Arrays.asList(Parser.Input.fromString(Paths.get("/tmp/build.gradle"),
String.format(pluginTemplateGroovy, pluginName, pluginVersion))),
.parseInputs(List.of(Parser.Input.fromString(Paths.get("/tmp/build.gradle"), pluginDefinition)),
Paths.get("/tmp"), context)
.findFirst()
.orElseThrow(() -> new IllegalArgumentException("Could not parse as Gradle"));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
package com.canonical.devpackspring.rewrite.visitors;

import java.nio.file.Paths;
import java.util.Arrays;
import java.util.List;

import com.canonical.devpackspring.rewrite.StatementUtil;
Expand All @@ -37,6 +36,8 @@ public class KotlinAddPluginVisitor extends KotlinIsoVisitor<ExecutionContext> {

private final String pluginTemplateKotlin = "plugins {\n\tid(\"%s\") version \"%s\"\n}\n";

private final String builtInTemplateKotlin = "plugins {\n\tid(\"%s\")\n}\n";

private final AddPluginVisitor visitor;

private final SourceFile templateSource;
Expand All @@ -48,10 +49,10 @@ public KotlinAddPluginVisitor(String pluginName, String pluginVersion) {
InMemoryExecutionContext context = new InMemoryExecutionContext();

// Use dummy file name to force the use of kotlin parser
var pluginDefinition = (pluginVersion != null) ? String.format(pluginTemplateKotlin, pluginName, pluginVersion)
: String.format(builtInTemplateKotlin, pluginName);
templateSource = parser
.parseInputs(
Arrays.asList(Parser.Input.fromString(Paths.get("/tmp/build.gradle.kts"),
String.format(pluginTemplateKotlin, pluginName, pluginVersion))),
.parseInputs(List.of(Parser.Input.fromString(Paths.get("/tmp/build.gradle.kts"), pluginDefinition)),
Paths.get("/tmp"), context)
.findFirst()
.orElseThrow(() -> new IllegalArgumentException("Could not parse as Gradle Kotlin"));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,35 @@

public class AddGradlePluginRecipeTests implements RewriteTest {

@Test
void testGroovyAddBuiltInPlugin() {
rewriteRun(spec -> spec.recipe(new AddGradlePluginRecipe("java", null, false)), Assertions.buildGradle("""
group = 'com.example'
version = '1.0'
""", """
plugins {
id 'java'
}
group = 'com.example'
version = '1.0'"""));

}

@Test
void testKotlinAddBuiltInPlugin() {
rewriteRun(spec -> spec.recipe(new AddGradlePluginRecipe("java", null, true)), Assertions.buildGradleKts("""
group = "com.example"
version = "1.0"
""", """
plugins {
id("java")
}
group = "com.example"
version = "1.0"
"""));

}

@Test
void testGroovyAddPluginNoPluginBlock() {
rewriteRun(spec -> spec.recipe(new AddGradlePluginRecipe("org.springframework.boot", "3.4.3", false)),
Expand Down