From 380095c8a7b699e789ef2f97ba556b2c8b36b898 Mon Sep 17 00:00:00 2001 From: Daniel Chao Date: Fri, 14 Jun 2024 07:36:28 -0700 Subject: [PATCH] Change Gradle property to "rename" (#528) This changes the property to match the name of the CLI flag. --- .../partials/gradle-codegen-properties.adoc | 16 ++++++++-------- .../src/main/java/org/pkl/gradle/PklPlugin.java | 2 +- .../java/org/pkl/gradle/spec/CodeGenSpec.java | 2 +- .../java/org/pkl/gradle/task/CodeGenTask.java | 2 +- .../org/pkl/gradle/task/JavaCodeGenTask.java | 2 +- .../org/pkl/gradle/task/KotlinCodeGenTask.java | 2 +- .../org/pkl/gradle/JavaCodeGeneratorsTest.kt | 2 +- .../org/pkl/gradle/KotlinCodeGeneratorsTest.kt | 2 +- 8 files changed, 15 insertions(+), 15 deletions(-) diff --git a/docs/modules/pkl-gradle/partials/gradle-codegen-properties.adoc b/docs/modules/pkl-gradle/partials/gradle-codegen-properties.adoc index 05c4fed8..1619c319 100644 --- a/docs/modules/pkl-gradle/partials/gradle-codegen-properties.adoc +++ b/docs/modules/pkl-gradle/partials/gradle-codegen-properties.adoc @@ -36,11 +36,11 @@ Example: `generateSpringBootConfig = true` + Whether to generate config classes for use with Spring Boot. ==== -.packageMapping: MapProperty +.renames: MapProperty [%collapsible] ==== Default: `[:]` + -Example: `packageMapping = ["foo.": "com.example.foo.", "bar.Config": "com.example.bar.Config"]` + +Example: `renames = ["foo.": "com.example.foo.", "bar.Config": "com.example.bar.Config"]` + Allows to change default class and package names (derived from Pkl module names) in the generated code. When you need the generated class or package names to be different from the default names derived from the Pkl module names, you can define a rename mapping, where the key is the original Pkl module name prefix, and the value is its replacement. @@ -49,9 +49,9 @@ When you do, the generated code's `package` declarations, class names, as well a The prefixes are replaced literally, which means that dots at the end are important. If you want to rename packages only, in most cases, you must ensure that you have an ending dot on both sides of a mapping (except for an empty mapping, if you use it), otherwise you may get unexpected results: -.... +---- // Assuming the following mapping configuration: -packageMapping = [ +renames = [ "com.foo.": "x", // Dot on the left only "org.bar": "y.", // Dot on the right only "net.baz": "z" // No dots @@ -62,13 +62,13 @@ packageMapping = [ "org.bar.baz" -> "y..baz" // Double dot, invalid name "net.baz.qux" -> "z.qux" // Looks okay, but... "net.bazqux" -> "zqux" // ...may cut the name in the middle. -.... +---- When computing the appropriate target name, the longest matching prefix is used: -.... +---- // Assuming the following mapping configuration: -packageMapping = [ +renames = [ "com.foo.Main": "w.Main", "com.foo.": "x.", "com.": "y.", @@ -80,7 +80,7 @@ com.foo.Main -> w.Main com.foo.bar -> x.bar com.baz.qux -> y.baz.qux org.foo.bar -> z.org.foo.bar -.... +---- Keys in this mapping can be arbitrary strings, including an empty string. Values must be valid dot-separated fully qualifed class name prefixes, possibly terminated by a dot. diff --git a/pkl-gradle/src/main/java/org/pkl/gradle/PklPlugin.java b/pkl-gradle/src/main/java/org/pkl/gradle/PklPlugin.java index 91e58728..66d7e546 100644 --- a/pkl-gradle/src/main/java/org/pkl/gradle/PklPlugin.java +++ b/pkl-gradle/src/main/java/org/pkl/gradle/PklPlugin.java @@ -412,7 +412,7 @@ public class PklPlugin implements Plugin { task.getOutputDir().set(spec.getOutputDir()); task.getGenerateSpringBootConfig().set(spec.getGenerateSpringBootConfig()); task.getImplementSerializable().set(spec.getImplementSerializable()); - task.getPackageMapping().set(spec.getPackageMapping()); + task.getRenames().set(spec.getRenames()); } private void configureBaseTask(T task, S spec) { diff --git a/pkl-gradle/src/main/java/org/pkl/gradle/spec/CodeGenSpec.java b/pkl-gradle/src/main/java/org/pkl/gradle/spec/CodeGenSpec.java index bd180cb1..35dcb493 100644 --- a/pkl-gradle/src/main/java/org/pkl/gradle/spec/CodeGenSpec.java +++ b/pkl-gradle/src/main/java/org/pkl/gradle/spec/CodeGenSpec.java @@ -32,5 +32,5 @@ public interface CodeGenSpec extends ModulesSpec { Property getImplementSerializable(); - MapProperty getPackageMapping(); + MapProperty getRenames(); } diff --git a/pkl-gradle/src/main/java/org/pkl/gradle/task/CodeGenTask.java b/pkl-gradle/src/main/java/org/pkl/gradle/task/CodeGenTask.java index 92ca47ec..8ab683dc 100644 --- a/pkl-gradle/src/main/java/org/pkl/gradle/task/CodeGenTask.java +++ b/pkl-gradle/src/main/java/org/pkl/gradle/task/CodeGenTask.java @@ -35,5 +35,5 @@ public abstract class CodeGenTask extends ModulesTask { public abstract Property getImplementSerializable(); @Input - public abstract MapProperty getPackageMapping(); + public abstract MapProperty getRenames(); } diff --git a/pkl-gradle/src/main/java/org/pkl/gradle/task/JavaCodeGenTask.java b/pkl-gradle/src/main/java/org/pkl/gradle/task/JavaCodeGenTask.java index 5cffaad4..fb8d9548 100644 --- a/pkl-gradle/src/main/java/org/pkl/gradle/task/JavaCodeGenTask.java +++ b/pkl-gradle/src/main/java/org/pkl/gradle/task/JavaCodeGenTask.java @@ -53,7 +53,7 @@ public abstract class JavaCodeGenTask extends CodeGenTask { getParamsAnnotation().getOrNull(), getNonNullAnnotation().getOrNull(), getImplementSerializable().get(), - getPackageMapping().get())) + getRenames().get())) .run(); } } diff --git a/pkl-gradle/src/main/java/org/pkl/gradle/task/KotlinCodeGenTask.java b/pkl-gradle/src/main/java/org/pkl/gradle/task/KotlinCodeGenTask.java index ecbad809..85399fe7 100644 --- a/pkl-gradle/src/main/java/org/pkl/gradle/task/KotlinCodeGenTask.java +++ b/pkl-gradle/src/main/java/org/pkl/gradle/task/KotlinCodeGenTask.java @@ -38,7 +38,7 @@ public abstract class KotlinCodeGenTask extends CodeGenTask { getGenerateKdoc().get(), getGenerateSpringBootConfig().get(), getImplementSerializable().get(), - getPackageMapping().get())) + getRenames().get())) .run(); } } diff --git a/pkl-gradle/src/test/kotlin/org/pkl/gradle/JavaCodeGeneratorsTest.kt b/pkl-gradle/src/test/kotlin/org/pkl/gradle/JavaCodeGeneratorsTest.kt index 65769889..277d6c24 100644 --- a/pkl-gradle/src/test/kotlin/org/pkl/gradle/JavaCodeGeneratorsTest.kt +++ b/pkl-gradle/src/test/kotlin/org/pkl/gradle/JavaCodeGeneratorsTest.kt @@ -113,7 +113,7 @@ class JavaCodeGeneratorsTest : AbstractTest() { paramsAnnotation = "javax.inject.Named" nonNullAnnotation = "javax.annotation.Nonnull" settingsModule = "pkl:settings" - packageMapping = [ + renames = [ 'org': 'foo.bar' ] } diff --git a/pkl-gradle/src/test/kotlin/org/pkl/gradle/KotlinCodeGeneratorsTest.kt b/pkl-gradle/src/test/kotlin/org/pkl/gradle/KotlinCodeGeneratorsTest.kt index f487531c..8ede4c6e 100644 --- a/pkl-gradle/src/test/kotlin/org/pkl/gradle/KotlinCodeGeneratorsTest.kt +++ b/pkl-gradle/src/test/kotlin/org/pkl/gradle/KotlinCodeGeneratorsTest.kt @@ -125,7 +125,7 @@ class KotlinCodeGeneratorsTest : AbstractTest() { sourceModules = ["mod.pkl"] outputDir = file("build/generated") settingsModule = "pkl:settings" - packageMapping = [ + renames = [ 'org.': 'foo.bar.' ] }