diff --git a/scripts/checkcliargs.sh b/scripts/checkcliargs.sh index aa2c55e..f426f6b 100755 --- a/scripts/checkcliargs.sh +++ b/scripts/checkcliargs.sh @@ -5,19 +5,12 @@ new=/tmp/checkcliargs-new old=/tmp/checkcliargs-old java -cp "lib/compile/*" $main -h >$new -java -cp "examples/lib/bld/*" $main -h >$old +java -cp "/examples/lib/bld*" $main -h >$old diff $old $new java -cp "lib/compile/*" $main -sourceSet -h >$new -java -cp "examples/lib/bld/*" $main -sourceSet -h >$old - -diff $old $new - -main=org.jetbrains.kotlin.cli.jvm.K2JVMCompiler - -java -cp "lib/compile/*" $main -h 2>$new -java -cp "examples/lib/bld/*" $main -h 2>$old +java -cp "/examples/lib/bld*" $main -sourceSet -h >$old diff $old $new diff --git a/scripts/cliargs.sh b/scripts/cliargs.sh index 9bceae4..0fd649a 100755 --- a/scripts/cliargs.sh +++ b/scripts/cliargs.sh @@ -1,9 +1,5 @@ #!/bin/bash -java -cp "lib/compile/*" org.jetbrains.kotlin.cli.jvm.K2JVMCompiler -h 2> >(grep "^ ") |\ -sed -e "s/^ //" -e "s/ .*//" -e "s/<.*//" -e '/-help/d' -e '/-version/d' -e '/^$/d'|\ -sort > "src/test/resources/kotlinc-args.txt" - main=org.jetbrains.dokka.MainKt java -cp "lib/compile/*" $main -h |\ diff --git a/src/bld/java/rife/bld/extension/CompileKotlinOperationBuild.java b/src/bld/java/rife/bld/extension/CompileKotlinOperationBuild.java index 7d2e9b2..de179ad 100644 --- a/src/bld/java/rife/bld/extension/CompileKotlinOperationBuild.java +++ b/src/bld/java/rife/bld/extension/CompileKotlinOperationBuild.java @@ -36,7 +36,7 @@ public class CompileKotlinOperationBuild extends Project { version = version(0, 9, 8); javaRelease = 17; - + downloadSources = true; autoDownloadPurge = true; repositories = List.of(MAVEN_LOCAL, MAVEN_CENTRAL, RIFE2_RELEASES); @@ -98,15 +98,6 @@ public class CompileKotlinOperationBuild extends Project { new CompileKotlinOperationBuild().start(args); } - @BuildCommand(summary = "Runs PMD analysis") - public void pmd() { - new PmdOperation() - .fromProject(this) - .failOnViolation(true) - .ruleSets("config/pmd.xml") - .execute(); - } - @Override public void test() throws Exception { new ExecOperation() @@ -115,4 +106,13 @@ public class CompileKotlinOperationBuild extends Project { .execute(); super.test(); } + + @BuildCommand(summary = "Runs PMD analysis") + public void pmd() { + new PmdOperation() + .fromProject(this) + .failOnViolation(true) + .ruleSets("config/pmd.xml") + .execute(); + } } diff --git a/src/main/java/rife/bld/extension/CompileKotlinOperation.java b/src/main/java/rife/bld/extension/CompileKotlinOperation.java index 6576aac..1465991 100644 --- a/src/main/java/rife/bld/extension/CompileKotlinOperation.java +++ b/src/main/java/rife/bld/extension/CompileKotlinOperation.java @@ -154,7 +154,7 @@ public class CompileKotlinOperation extends AbstractOperation advancedOptions_ = new ArrayList<>(); private final List argFile_ = new ArrayList<>(); private final List classpath_ = new ArrayList<>(); - private final List jvmOptions_ = new ArrayList<>(); private final List optIn_ = new ArrayList<>(); private final List options_ = new ArrayList<>(); private final List plugin_ = new ArrayList<>(); private final List scriptTemplates_ = new ArrayList<>(); private String apiVersion_; - private String expression_; private boolean includeRuntime_; private boolean javaParameters_; private String jdkHome_; @@ -58,28 +54,6 @@ public class CompileKotlinOptions { private boolean verbose_; private boolean wError_; - /** - * Specify advanced compiler options. - * - * @param options one or more advanced options - * @return this operation instance - */ - public CompileKotlinOptions advancedOptions(String... options) { - Collections.addAll(advancedOptions_, options); - return this; - } - - /** - * Specify advanced compiler options. - * - * @param options list of compiler options - * @return this operation instance - */ - public CompileKotlinOptions advancedOptions(Collection options) { - advancedOptions_.addAll(options); - return this; - } - /** * Allow using declarations only from the specified version of Kotlin bundled libraries. * @@ -121,7 +95,7 @@ public class CompileKotlinOptions { * @return this operation instance */ public CompileKotlinOptions argFile(String... files) { - Collections.addAll(argFile_, files); + argFile_.addAll(List.of(files)); return this; } @@ -145,7 +119,7 @@ public class CompileKotlinOptions { public List args() { var args = new ArrayList(); - // api-version + // api-isNotBlankversion if (isNotBlank(apiVersion_)) { args.add("-api-version"); args.add(apiVersion_); @@ -162,12 +136,6 @@ public class CompileKotlinOptions { args.add(String.join(File.pathSeparator, classpath_)); } - // expression - if (isNotBlank(expression_)) { - args.add("-expression"); - args.add(expression_); - } - // java-parameters if (javaParameters_) { args.add("-java-parameters"); @@ -195,11 +163,6 @@ public class CompileKotlinOptions { args.add("-Xjdk-release=" + jdkRelease_); } - // JVM options - if (!jvmOptions_.isEmpty()) { - jvmOptions_.forEach(s -> args.add("-J" + s)); - } - // kotlin-home if (isNotBlank(kotlinHome_)) { args.add("-kotlin-home"); @@ -235,7 +198,7 @@ public class CompileKotlinOptions { // no-warn if (noWarn_) { - args.add("-nowarn"); + args.add("-no-warn"); } // opt-in @@ -282,11 +245,6 @@ public class CompileKotlinOptions { args.add("-Werror"); } - // advanced option (X) - if (!advancedOptions_.isEmpty()) { - advancedOptions_.forEach(it -> args.add("-X" + it)); - } - return args; } @@ -299,7 +257,7 @@ public class CompileKotlinOptions { * @return this operation instance */ public CompileKotlinOptions classpath(String... paths) { - Collections.addAll(classpath_, paths); + classpath_.addAll(List.of(paths)); return this; } @@ -316,17 +274,6 @@ public class CompileKotlinOptions { return this; } - /** - * Evaluate the given string as a Kotlin script. - * - * @param expression the expression - * @return this operation instance - */ - public CompileKotlinOptions expression(String expression) { - expression_ = expression; - return this; - } - /** * Indicates whether the {@link #jdkRelease(String) jdkRelease} was set. * @@ -398,28 +345,6 @@ public class CompileKotlinOptions { return this; } - /** - * Pass an option directly to JVM - * - * @param jvmOptions one or more JVM option - * @return this operation instance - */ - public CompileKotlinOptions jvmOptions(String... jvmOptions) { - Collections.addAll(jvmOptions_, jvmOptions); - return this; - } - - /** - * Pass an option directly to JVM - * - * @param jvmOptions the list JVM options - * @return this operation instance - */ - public CompileKotlinOptions jvmOptions(Collection jvmOptions) { - jvmOptions_.addAll(jvmOptions); - return this; - } - /** * Specify the target version of the generated JVM bytecode. *

@@ -530,7 +455,7 @@ public class CompileKotlinOptions { * @return this operation instance */ public CompileKotlinOptions optIn(String... annotations) { - Collections.addAll(optIn_, annotations); + optIn_.addAll(List.of(annotations)); return this; } @@ -552,7 +477,7 @@ public class CompileKotlinOptions { * @return this operation instance */ public CompileKotlinOptions options(String... options) { - Collections.addAll(options_, options); + options_.addAll(List.of(options)); return this; } @@ -626,7 +551,7 @@ public class CompileKotlinOptions { * @return this operation instance */ public CompileKotlinOptions scriptTemplates(String... classNames) { - Collections.addAll(scriptTemplates_, classNames); + scriptTemplates_.addAll(List.of(classNames)); return this; } diff --git a/src/main/java/rife/bld/extension/dokka/DokkaOperation.java b/src/main/java/rife/bld/extension/dokka/DokkaOperation.java index 56d2661..7229c63 100644 --- a/src/main/java/rife/bld/extension/dokka/DokkaOperation.java +++ b/src/main/java/rife/bld/extension/dokka/DokkaOperation.java @@ -309,7 +309,7 @@ public class DokkaOperation extends AbstractProcessOperation { * @return this operation instance */ public DokkaOperation globalPackageOptions(String... options) { - Collections.addAll(globalPackageOptions_, options); + globalPackageOptions_.addAll(Arrays.asList(options)); return this; } @@ -342,7 +342,7 @@ public class DokkaOperation extends AbstractProcessOperation { * @return this operation instance */ public DokkaOperation globalSrcLink(String... links) { - Collections.addAll(globalSrcLinks_, links); + globalSrcLinks_.addAll(Arrays.asList(links)); return this; } @@ -368,7 +368,7 @@ public class DokkaOperation extends AbstractProcessOperation { * @return this operation instance */ public DokkaOperation includes(String... files) { - Collections.addAll(includes_, files); + includes_.addAll(Arrays.asList(files)); return this; } @@ -555,7 +555,7 @@ public class DokkaOperation extends AbstractProcessOperation { * @return this operation instance */ public DokkaOperation pluginsClasspath(String... jars) { - Collections.addAll(pluginsClasspath_, jars); + pluginsClasspath_.addAll(Arrays.asList(jars)); return this; } diff --git a/src/main/java/rife/bld/extension/dokka/SourceSet.java b/src/main/java/rife/bld/extension/dokka/SourceSet.java index e9457b5..28aedd8 100644 --- a/src/main/java/rife/bld/extension/dokka/SourceSet.java +++ b/src/main/java/rife/bld/extension/dokka/SourceSet.java @@ -241,7 +241,7 @@ public class SourceSet { * @return this operation instance */ public SourceSet classpath(String... files) { - Collections.addAll(classpath_, files); + classpath_.addAll(Arrays.asList(files)); return this; } @@ -371,7 +371,7 @@ public class SourceSet { * @return this operation instance */ public SourceSet includes(String... files) { - Collections.addAll(includes_, files); + includes_.addAll(Arrays.asList(files)); return this; } @@ -535,7 +535,7 @@ public class SourceSet { * @return this operation instance */ public SourceSet perPackageOptions(String... perPackageOptions) { - Collections.addAll(perPackageOptions_, perPackageOptions); + perPackageOptions_.addAll(List.of(perPackageOptions)); return this; } @@ -581,7 +581,7 @@ public class SourceSet { * @return this operation instance */ public SourceSet samples(String... samples) { - Collections.addAll(samples_, samples); + samples_.addAll(List.of(samples)); return this; } @@ -635,7 +635,7 @@ public class SourceSet { * @return this operation instance */ public SourceSet src(String... src) { - Collections.addAll(src_, src); + src_.addAll(List.of(src)); return this; } diff --git a/src/test/java/rife/bld/extension/CompileKotlinOptionsTest.java b/src/test/java/rife/bld/extension/CompileKotlinOptionsTest.java index 5c075fb..c6d8419 100644 --- a/src/test/java/rife/bld/extension/CompileKotlinOptionsTest.java +++ b/src/test/java/rife/bld/extension/CompileKotlinOptionsTest.java @@ -19,9 +19,6 @@ package rife.bld.extension; import org.junit.jupiter.api.Test; import java.io.File; -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Paths; import java.util.ArrayList; import java.util.List; import java.util.stream.IntStream; @@ -33,10 +30,8 @@ class CompileKotlinOptionsTest { @Test void argsCollectionTest() { var args = new CompileKotlinOptions() - .advancedOptions(List.of("Xoption1", "Xoption2")) .argFile(List.of("arg1.txt", "arg2.txt")) .classpath(List.of("path1", "path2")) - .jvmOptions(List.of("option1", "option2")) .noStdLib(false) .optIn(List.of("opt1", "opt2")) .options(List.of("-foo", "-bar")) @@ -45,27 +40,19 @@ class CompileKotlinOptionsTest { var matches = List.of( "@arg1.txt", "@arg2.txt", "-classpath", "path1:path2", - "-Joption1", "-Joption2", "-opt-in", "opt1", "-opt-in", "opt2", - "-foo", "-bar", - "-script-templates", - "temp1,temp2", - "-XXoption1", "-XXoption2"); + "-foo", + "-bar", + "-script-templates", "temp1,temp2"); + + assertThat(args).hasSize(matches.size()); + + IntStream.range(0, args.size()).forEach(i -> assertThat(args.get(i)).isEqualTo(matches.get(i))); + - for (var arg : args) { - var found = false; - for (var match : matches) { - if (match.equals(arg)) { - found = true; - break; - } - } - assertThat(found).as(arg).isTrue(); - } } - @Test void argsTest() { var options = new CompileKotlinOptions() @@ -106,7 +93,7 @@ class CompileKotlinOptionsTest { "-module-name", "module", "-no-jdk", "-no-reflect", - "-nowarn", + "-no-warn", "-opt-in", "opt1", "-opt-in", "opt2", "-foo", @@ -127,47 +114,4 @@ class CompileKotlinOptionsTest { IntStream.range(0, a.size()).forEach(i -> assertThat(a.get(i)).isEqualTo(matches.get(i))); } } - - @Test - void checkAllParamsTest() throws IOException { - var args = Files.readAllLines(Paths.get("src", "test", "resources", "kotlinc-args.txt")); - - assertThat(args).isNotEmpty(); - - var params = new CompileKotlinOptions() - .advancedOptions("Xoption") - .argFile("file") - .classpath("classpath") - .expression("expression") - .jvmOptions("option") - .includeRuntime(true) - .javaParameters(true) - .jdkHome("jdkhome") - .jvmTarget(12) - .kotlinHome("kotlin") - .moduleName("moduleName") - .noJdk(true) - .noReflect(true) - .noStdLib(true) - .noWarn(true) - .optIn("annotation") - .options("option") - .path("path") - .plugin("id", "option", "value") - .progressive(true) - .scriptTemplates("template") - .verbose(true) - .wError(true); - - for (var p : args) { - var found = false; - for (var a : params.args()) { - if (a.startsWith(p)) { - found = true; - break; - } - } - assertThat(found).as(p + " not found.").isTrue(); - } - } } diff --git a/src/test/java/rife/bld/extension/dokka/DokkaOperationTest.java b/src/test/java/rife/bld/extension/dokka/DokkaOperationTest.java index 0e089ee..f0a2207 100644 --- a/src/test/java/rife/bld/extension/dokka/DokkaOperationTest.java +++ b/src/test/java/rife/bld/extension/dokka/DokkaOperationTest.java @@ -34,13 +34,13 @@ class DokkaOperationTest { @Test @SuppressWarnings({"ExtractMethodRecommender", "PMD.AvoidDuplicateLiterals"}) void executeConstructProcessCommandListTest() throws IOException { - var args = Files.readAllLines(Paths.get("src", "test", "resources", "dokka-args.txt")); + var params = Files.readAllLines(Paths.get("src", "test", "resources", "dokka-args.txt")); - assertThat(args).isNotEmpty(); + assertThat(params).isNotEmpty(); var examples = new File("examples"); var jsonConf = new File("config.json"); - var params = new DokkaOperation() + var args = new DokkaOperation() .delayTemplateSubstitution(true) .failOnWarning(true) .fromProject(new BaseProjectBlueprint(examples, "com.example", "Example")) @@ -72,9 +72,9 @@ class DokkaOperationTest { .suppressInheritedMembers(true) .executeConstructProcessCommandList(); - for (var p : args) { + for (var p : params) { var found = false; - for (var a : params) { + for (var a : args) { if (a.startsWith(p)) { found = true; break; @@ -109,14 +109,14 @@ class DokkaOperationTest { "-suppressInheritedMembers", jsonConf.getAbsolutePath()); - assertThat(params).hasSize(matches.size()); + assertThat(args).hasSize(matches.size()); - IntStream.range(0, params.size()).forEach(i -> { - if (params.get(i).contains(".jar;")) { - var jars = params.get(i).split(";"); + IntStream.range(0, args.size()).forEach(i -> { + if (args.get(i).contains(".jar;")) { + var jars = args.get(i).split(";"); Arrays.stream(jars).forEach(jar -> assertThat(matches.get(i)).as(matches.get(i)).contains(jar)); } else { - assertThat(params.get(i)).as(params.get(i)).isEqualTo(matches.get(i)); + assertThat(args.get(i)).as(args.get(i)).isEqualTo(matches.get(i)); } }); } diff --git a/src/test/resources/kotlinc-args.txt b/src/test/resources/kotlinc-args.txt deleted file mode 100644 index 1f49a77..0000000 --- a/src/test/resources/kotlinc-args.txt +++ /dev/null @@ -1,23 +0,0 @@ -@ --classpath --d --expression --include-runtime --J --java-parameters --jdk-home --jvm-target --kotlin-home --module-name --no-jdk --no-reflect --no-stdlib --nowarn --opt-in --P --progressive --script --script-templates --verbose --Werror --X