From deb66a2d20c3e87799325a38bd3bada1cef36a34 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Thu, 23 May 2024 01:49:15 -0700 Subject: [PATCH] Fixed invalid Dokka -pluginConfiguration argument. Closes #2 --- .../CompileKotlinOperationBuild.java | 2 +- .../bld/extension/dokka/DokkaOperation.java | 31 ++++++++++++------- .../extension/dokka/DokkaOperationTest.java | 6 ++-- 3 files changed, 24 insertions(+), 15 deletions(-) diff --git a/src/bld/java/rife/bld/extension/CompileKotlinOperationBuild.java b/src/bld/java/rife/bld/extension/CompileKotlinOperationBuild.java index 5f3eef4..4e7b947 100644 --- a/src/bld/java/rife/bld/extension/CompileKotlinOperationBuild.java +++ b/src/bld/java/rife/bld/extension/CompileKotlinOperationBuild.java @@ -33,7 +33,7 @@ public class CompileKotlinOperationBuild extends Project { public CompileKotlinOperationBuild() { pkg = "rife.bld.extension"; name = "bld-kotlin"; - version = version(0, 9, 7); + version = version(0, 9, 8, "SNAPSHOT"); javaRelease = 17; downloadSources = true; diff --git a/src/main/java/rife/bld/extension/dokka/DokkaOperation.java b/src/main/java/rife/bld/extension/dokka/DokkaOperation.java index 6d51006..5d68a3f 100644 --- a/src/main/java/rife/bld/extension/dokka/DokkaOperation.java +++ b/src/main/java/rife/bld/extension/dokka/DokkaOperation.java @@ -50,7 +50,7 @@ public class DokkaOperation extends AbstractProcessOperation { private final Collection globalPackageOptions_ = new ArrayList<>(); private final Collection globalSrcLinks_ = new ArrayList<>(); private final Collection includes_ = new ArrayList<>(); - private final Map pluginConfiguration_ = new ConcurrentHashMap<>(); + private final Map pluginsConfiguration_ = new ConcurrentHashMap<>(); private final Collection pluginsClasspath_ = new ArrayList<>(); private boolean delayTemplateSubstitution_; private boolean failOnWarning_; @@ -64,6 +64,15 @@ public class DokkaOperation extends AbstractProcessOperation { private SourceSet sourceSet_; private boolean suppressInheritedMembers_; + // Encodes to JSON adding braces as needed + private static String encodeJson(final String json) { + var sb = new StringBuilder(json); + if (!json.startsWith("{") || !json.endsWith("}")) { + sb.insert(0, "{").append("}"); + } + return StringUtils.encodeJson(sb.toString()); + } + /** * Sets the delay substitution of some elements. *

@@ -194,11 +203,11 @@ public class DokkaOperation extends AbstractProcessOperation { } // -pluginConfiguration - if (!pluginConfiguration_.isEmpty()) { - args.add("-pluginConfiguration"); + if (!pluginsConfiguration_.isEmpty()) { + args.add("-pluginsConfiguration"); var confs = new ArrayList(); - pluginConfiguration_.forEach((k, v) -> - confs.add(String.format("{%s}={%s}", StringUtils.encodeJson(k), StringUtils.encodeJson(v)))); + pluginsConfiguration_.forEach((k, v) -> + confs.add(String.format("%s=%s", encodeJson(k), encodeJson(v)))); args.add(String.join("^^", confs)); } @@ -501,20 +510,20 @@ public class DokkaOperation extends AbstractProcessOperation { * @param jsonConfiguration The plugin JSON configuration * @return this operation instance */ - public DokkaOperation pluginConfiguration(String name, String jsonConfiguration) { - pluginConfiguration_.put(name, jsonConfiguration); + public DokkaOperation pluginConfigurations(String name, String jsonConfiguration) { + pluginsConfiguration_.put(name, jsonConfiguration); return this; } /** * Sets the configuration for Dokka plugins. * - * @param pluginConfiguration the map of configurations + * @param pluginConfiguratione the map of configurations * @return this operation instance - * @see #pluginConfiguration(String, String) + * @see #pluginConfigurations(String, String) */ - public DokkaOperation pluginConfiguration(Map pluginConfiguration) { - pluginConfiguration_.putAll(pluginConfiguration); + public DokkaOperation pluginConfigurations(Map pluginConfiguratione) { + pluginsConfiguration_.putAll(pluginConfiguratione); return this; } diff --git a/src/test/java/rife/bld/extension/dokka/DokkaOperationTest.java b/src/test/java/rife/bld/extension/dokka/DokkaOperationTest.java index 864d6fa..110c909 100644 --- a/src/test/java/rife/bld/extension/dokka/DokkaOperationTest.java +++ b/src/test/java/rife/bld/extension/dokka/DokkaOperationTest.java @@ -41,8 +41,8 @@ class DokkaOperationTest { .globalSrcLink("link1", "link2") .globalSrcLink(List.of("link3", "link4")) .includes("file1", "file2") - .pluginConfiguration("name", "\"json\"") - .pluginConfiguration(Map.of("\"name2\"", "json2")) + .pluginConfigurations("name", "{\"json\"}") + .pluginConfigurations(Map.of("{\"name2\"}", "json2", "name3}", "{json3")) .pluginsClasspath("path1", "path2") .pluginsClasspath(List.of("path3", "path4")) .delayTemplateSubstitution(true) @@ -79,7 +79,7 @@ class DokkaOperationTest { "-moduleVersion", "1.0", "-noSuppressObviousFunctions", "-offlineMode", - "-pluginConfiguration", "{name}={\\\"json\\\"}^^{\\\"name2\\\"}={json2}", + "-pluginsConfiguration", "{\\\"name2\\\"}={json2}^^{name}={\\\"json\\\"}^^{name3}}={{json3}", "-suppressInheritedMembers"); assertThat(args).hasSize(matches.size());