diff --git a/plexus-compilers/plexus-compiler-eclipse/pom.xml b/plexus-compilers/plexus-compiler-eclipse/pom.xml index ec5f9107..3294cf81 100644 --- a/plexus-compilers/plexus-compiler-eclipse/pom.xml +++ b/plexus-compilers/plexus-compiler-eclipse/pom.xml @@ -21,7 +21,7 @@ org.eclipse.jdt ecj - 3.15.1 + 3.19.0 diff --git a/plexus-compilers/plexus-compiler-eclipse/src/main/java/org/codehaus/plexus/compiler/eclipse/EclipseJavaCompiler.java b/plexus-compilers/plexus-compiler-eclipse/src/main/java/org/codehaus/plexus/compiler/eclipse/EclipseJavaCompiler.java index 3f84de5f..4252ad92 100644 --- a/plexus-compilers/plexus-compiler-eclipse/src/main/java/org/codehaus/plexus/compiler/eclipse/EclipseJavaCompiler.java +++ b/plexus-compilers/plexus-compiler-eclipse/src/main/java/org/codehaus/plexus/compiler/eclipse/EclipseJavaCompiler.java @@ -123,6 +123,11 @@ public CompilerResult performCompile(CompilerConfiguration config ) { args.add("-parameters"); } + + if(config.isFailOnWarning()) + { + args.add("-failOnWarning"); + } // Set Eclipse-specific options // compiler-specific extra options override anything else in the config object... diff --git a/plexus-compilers/plexus-compiler-eclipse/src/test/java/org/codehaus/plexus/compiler/eclipse/EclipseCompilerFailOnWarningsTest.java b/plexus-compilers/plexus-compiler-eclipse/src/test/java/org/codehaus/plexus/compiler/eclipse/EclipseCompilerFailOnWarningsTest.java new file mode 100644 index 00000000..52485e69 --- /dev/null +++ b/plexus-compilers/plexus-compiler-eclipse/src/test/java/org/codehaus/plexus/compiler/eclipse/EclipseCompilerFailOnWarningsTest.java @@ -0,0 +1,41 @@ +package org.codehaus.plexus.compiler.eclipse; + +import org.codehaus.plexus.compiler.AbstractCompilerTest; +import org.codehaus.plexus.compiler.CompilerConfiguration; + +import java.util.Arrays; +import java.util.Collection; + +public class EclipseCompilerFailOnWarningsTest extends AbstractCompilerTest +{ + + protected void configureCompilerConfig( CompilerConfiguration compilerConfig ) + { + compilerConfig.setFailOnWarning(true); + } + + protected String getRoleHint() + { + return "eclipse"; + } + + protected int expectedErrors() + { + return 6; + } + + protected int expectedWarnings() + { + return 1; + } + + protected Collection expectedOutputFiles() + { + return Arrays.asList( new String[] { + "org/codehaus/foo/Deprecation.class", + "org/codehaus/foo/ExternalDeps.class", + "org/codehaus/foo/Person.class", + "org/codehaus/foo/ReservedWord.class" + }); + } +}