diff --git a/src/main/java/rife/bld/operations/AbstractToolProviderOperation.java b/src/main/java/rife/bld/operations/AbstractToolProviderOperation.java index b435f54..a1f1863 100644 --- a/src/main/java/rife/bld/operations/AbstractToolProviderOperation.java +++ b/src/main/java/rife/bld/operations/AbstractToolProviderOperation.java @@ -6,8 +6,6 @@ package rife.bld.operations; import rife.bld.operations.exceptions.ExitStatusException; -import java.io.PrintWriter; -import java.io.StringWriter; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -33,22 +31,6 @@ public abstract class AbstractToolProviderOperation args) { - args.forEach(this::addArg); + args.forEach((k, v) -> { + toolArgs_.add(k); + if (v != null && !v.isEmpty()) { + toolArgs_.add(v); + } + }); return (T) this; } @@ -88,7 +75,7 @@ public abstract class AbstractToolProviderOperation - * Command line arguments are automatically cleared. + * On success, command line arguments are automatically cleared. * * @throws Exception if an error occurred */ @@ -98,32 +85,16 @@ public abstract class AbstractToolProviderOperation - new IllegalStateException("No " + toolName_ + " tool found.")); - var status = tool.run(out, err, toolArgs_.toArray(new String[0])); - out.flush(); - err.flush(); + var tool = ToolProvider.findFirst(toolName_).orElseThrow(() -> + new IllegalStateException("No " + toolName_ + " tool found.")); - if (status != 0) { - System.out.println(tool.name() + ' ' + String.join(" ", toolArgs_)); - } - - var output = stdout.toString(); - if (!output.isBlank()) { - System.out.println(output); - } - var error = stderr.toString(); - if (!error.isBlank()) { - System.err.println(error); - } - - ExitStatusException.throwOnFailure(status); - } finally { - toolArgs_.clear(); + var status = tool.run(System.out, System.err, toolArgs_.toArray(new String[0])); + if (status != 0) { + System.out.println(tool.name() + ' ' + String.join(" ", toolArgs_)); } + ExitStatusException.throwOnFailure(status); + + toolArgs_.clear(); } /** diff --git a/src/main/java/rife/bld/operations/JlinkOperation.java b/src/main/java/rife/bld/operations/JlinkOperation.java index 1f04801..a266117 100644 --- a/src/main/java/rife/bld/operations/JlinkOperation.java +++ b/src/main/java/rife/bld/operations/JlinkOperation.java @@ -40,7 +40,7 @@ public class JlinkOperation extends AbstractToolProviderOperation addArg("--disable-plugin", plugin)); + disabledPlugins_.forEach(plugin -> addArgs("--disable-plugin", plugin)); addArgs(jlinkOptions_); addArgs(parseOptions()); super.execute();