Fixed invalid Dokka -pluginConfiguration argument. Closes #2
This commit is contained in:
parent
3a5f4f04bd
commit
deb66a2d20
3 changed files with 24 additions and 15 deletions
|
@ -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;
|
||||
|
|
|
@ -50,7 +50,7 @@ public class DokkaOperation extends AbstractProcessOperation<DokkaOperation> {
|
|||
private final Collection<String> globalPackageOptions_ = new ArrayList<>();
|
||||
private final Collection<String> globalSrcLinks_ = new ArrayList<>();
|
||||
private final Collection<String> includes_ = new ArrayList<>();
|
||||
private final Map<String, String> pluginConfiguration_ = new ConcurrentHashMap<>();
|
||||
private final Map<String, String> pluginsConfiguration_ = new ConcurrentHashMap<>();
|
||||
private final Collection<String> pluginsClasspath_ = new ArrayList<>();
|
||||
private boolean delayTemplateSubstitution_;
|
||||
private boolean failOnWarning_;
|
||||
|
@ -64,6 +64,15 @@ public class DokkaOperation extends AbstractProcessOperation<DokkaOperation> {
|
|||
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.
|
||||
* <p>
|
||||
|
@ -194,11 +203,11 @@ public class DokkaOperation extends AbstractProcessOperation<DokkaOperation> {
|
|||
}
|
||||
|
||||
// -pluginConfiguration
|
||||
if (!pluginConfiguration_.isEmpty()) {
|
||||
args.add("-pluginConfiguration");
|
||||
if (!pluginsConfiguration_.isEmpty()) {
|
||||
args.add("-pluginsConfiguration");
|
||||
var confs = new ArrayList<String>();
|
||||
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<DokkaOperation> {
|
|||
* @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<String, String> pluginConfiguration) {
|
||||
pluginConfiguration_.putAll(pluginConfiguration);
|
||||
public DokkaOperation pluginConfigurations(Map<String, String> pluginConfiguratione) {
|
||||
pluginsConfiguration_.putAll(pluginConfiguratione);
|
||||
return this;
|
||||
}
|
||||
|
||||
|
|
|
@ -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());
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue