diff --git a/src/main/java/com/diffplug/gradle/eclipserunner/EclipseApp.java b/src/main/java/com/diffplug/gradle/eclipserunner/EclipseApp.java index 0160d57c9..f328dd912 100644 --- a/src/main/java/com/diffplug/gradle/eclipserunner/EclipseApp.java +++ b/src/main/java/com/diffplug/gradle/eclipserunner/EclipseApp.java @@ -92,6 +92,7 @@ public class EclipseApp { * such as `org.eclipse.ant.core.antRunner` or `org.eclipse.equinox.p2.director` */ public EclipseApp(String application) { + addArg("-launcher.suppressErrors"); addArg("application", application); } diff --git a/src/main/java/com/diffplug/gradle/eclipserunner/EquinoxLauncher.java b/src/main/java/com/diffplug/gradle/eclipserunner/EquinoxLauncher.java index 9c498fe91..325cd2e95 100644 --- a/src/main/java/com/diffplug/gradle/eclipserunner/EquinoxLauncher.java +++ b/src/main/java/com/diffplug/gradle/eclipserunner/EquinoxLauncher.java @@ -15,6 +15,8 @@ */ package com.diffplug.gradle.eclipserunner; +import static java.util.stream.Collectors.toList; + import java.io.File; import java.util.HashMap; import java.util.List; @@ -22,6 +24,7 @@ import java.util.Objects; import java.util.SortedSet; import java.util.function.BiConsumer; +import java.util.stream.Collectors; import org.eclipse.core.runtime.adaptor.EclipseStarter; import org.osgi.framework.BundleContext; @@ -107,7 +110,12 @@ private File getPluginRequireSingle(String name) { /** Sets the application arguments which will be passed to the runtime. */ public EquinoxLauncher setArgs(List args) { - this.args = ImmutableList.copyOf(args); + // Filter --launcher.suppressErrors + List filteredArgs = args.stream() + .filter(Objects::nonNull) + .filter(arg -> !arg.equals("--launcher.suppressErrors")) + .collect(toList()); + this.args = ImmutableList.copyOf(filteredArgs); return this; } diff --git a/src/test/java/com/diffplug/gradle/eclipserunner/EclipseAppTest.java b/src/test/java/com/diffplug/gradle/eclipserunner/EclipseAppTest.java index 9a9d04274..8dd4bfd75 100644 --- a/src/test/java/com/diffplug/gradle/eclipserunner/EclipseAppTest.java +++ b/src/test/java/com/diffplug/gradle/eclipserunner/EclipseAppTest.java @@ -31,8 +31,8 @@ public void test() { app.addArg("prop", "a"); app.addArg("prop", "b"); app.addArg("flag"); - Assert.assertEquals("-application diffplug -prop a,b -flag", Joiner.on(" ").join(app.toArgList())); - Assert.assertEquals("-application diffplug\n-prop a,b\n-flag\n", app.toString()); + Assert.assertEquals("--launcher.suppressErrors -application diffplug -prop a,b -flag", Joiner.on(" ").join(app.toArgList())); + Assert.assertEquals("--launcher.suppressErrors\n-application diffplug\n-prop a,b\n-flag\n", app.toString()); } @Test @@ -41,7 +41,7 @@ public void testDoubleAdd() { app.addArg("flag"); app.addArg("flag"); app.addArg("flag"); - Assert.assertEquals("-application diffplug -flag", Joiner.on(" ").join(app.toArgList())); + Assert.assertEquals("--launcher.suppressErrors -application diffplug -flag", Joiner.on(" ").join(app.toArgList())); } @SuppressWarnings("unchecked") @@ -53,13 +53,14 @@ public void testAnt() { task.attributes().put("prop", "propvalue"); ant.setTask(task); - Assert.assertEquals("-application org.eclipse.ant.core.antRunner -Dkey=value", Joiner.on(" ").join(ant.toArgList())); + Assert.assertEquals("--launcher.suppressErrors -application org.eclipse.ant.core.antRunner -Dkey=value", Joiner.on(" ").join(ant.toArgList())); Assert.assertEquals(StringPrinter.buildStringFromLines( "", " ", ""), ant.buildXml()); Assert.assertEquals(StringPrinter.buildStringFromLines( "### ARGS ###", + "--launcher.suppressErrors", "-application org.eclipse.ant.core.antRunner", "-Dkey=value", "", diff --git a/src/test/java/com/diffplug/gradle/p2/P2ModelTest.java b/src/test/java/com/diffplug/gradle/p2/P2ModelTest.java index c75f56565..66eed12f1 100644 --- a/src/test/java/com/diffplug/gradle/p2/P2ModelTest.java +++ b/src/test/java/com/diffplug/gradle/p2/P2ModelTest.java @@ -39,6 +39,7 @@ public void testDirectorArgs() { File dest = new File("dest"); String actual = testData().directorApp(dest, "profile").completeState(); String expected = StringPrinter.buildStringFromLines( + "--launcher.suppressErrors", "-application org.eclipse.equinox.p2.director", "-clean", "-consolelog", @@ -57,6 +58,7 @@ public void testMirrorAntFile() { String actual = testData().mirrorApp(dest).completeState(); String expected = StringPrinter.buildStringFromLines( "### ARGS ###", + "--launcher.suppressErrors", "-application org.eclipse.ant.core.antRunner", "", "### BUILD.XML ###", @@ -85,6 +87,7 @@ public void testMirrorAntFileWithSlicingOptions() { String actual = p2.mirrorApp(dest).completeState(); String expected = StringPrinter.buildStringFromLines( "### ARGS ###", + "--launcher.suppressErrors", "-application org.eclipse.ant.core.antRunner", "", "### BUILD.XML ###", @@ -112,6 +115,7 @@ public void testMirrorAntFileWithAppend() { String actual = p2.mirrorApp(dest).completeState(); String expected = StringPrinter.buildStringFromLines( "### ARGS ###", + "--launcher.suppressErrors", "-application org.eclipse.ant.core.antRunner", "", "### BUILD.XML ###", @@ -137,6 +141,7 @@ public void testMirrorAntFileWithAppendDefault() { String actual = p2.mirrorApp(dest).completeState(); String expected = StringPrinter.buildStringFromLines( "### ARGS ###", + "--launcher.suppressErrors", "-application org.eclipse.ant.core.antRunner", "", "### BUILD.XML ###",