diff --git a/maven-plugin/src/main/java/hudson/maven/AbstractMavenBuild.java b/maven-plugin/src/main/java/hudson/maven/AbstractMavenBuild.java index 9f856abdde64198198cb867d1eca43de5ea629a6..f2c01f7b3f002e9286392d333cbca695fc1fa763 100644 --- a/maven-plugin/src/main/java/hudson/maven/AbstractMavenBuild.java +++ b/maven-plugin/src/main/java/hudson/maven/AbstractMavenBuild.java @@ -32,6 +32,7 @@ import hudson.model.Hudson; import hudson.model.Result; import hudson.model.Run; import hudson.model.Cause.UpstreamCause; +import hudson.tasks.BuildTrigger; import java.io.File; import java.io.IOException; @@ -41,7 +42,7 @@ import java.util.Set; public abstract class AbstractMavenBuild

,B extends AbstractMavenBuild> extends AbstractBuild { /** - * Extra versbose debug switch. + * Extra verbose debug switch. */ public static boolean debug = false; @@ -59,11 +60,16 @@ public abstract class AbstractMavenBuild

,B e /** * Schedules all the downstream builds. + * Returns immediately if build result doesn't meet the required level + * (as specified by {@link BuildTrigger}, or {@link Result#SUCCESS} if none). * * @param listener * Where the progress reports go. */ protected final void scheduleDownstreamBuilds(BuildListener listener) { + BuildTrigger bt = getParent().getPublishersList().get(BuildTrigger.class); + if (getResult().isWorseThan(bt!=null ? bt.getThreshold() : Result.SUCCESS)) return; + // trigger dependency builds for( AbstractProject down : getParent().getDownstreamProjects()) { if(debug) diff --git a/maven-plugin/src/main/java/hudson/maven/MavenBuild.java b/maven-plugin/src/main/java/hudson/maven/MavenBuild.java index f25c0f0ed26ff31a8585a220fdf41d204147c6fe..c67ad8062f8a827a8dc082989e7fe580c4791112 100644 --- a/maven-plugin/src/main/java/hudson/maven/MavenBuild.java +++ b/maven-plugin/src/main/java/hudson/maven/MavenBuild.java @@ -226,6 +226,7 @@ public class MavenBuild extends AbstractMavenBuild { /** * Backdoor for {@link MavenModuleSetBuild} to assign workspaces for modules. */ + @Override protected void setWorkspace(FilePath path) { super.setWorkspace(path); } @@ -255,6 +256,7 @@ public class MavenBuild extends AbstractMavenBuild { super(buildProxy); } + @Override public void executeAsync(final BuildCallable program) throws IOException { futures.add(Channel.current().callAsync(new AsyncInvoker(core,program))); } @@ -547,9 +549,9 @@ public class MavenBuild extends AbstractMavenBuild { reporter.end(MavenBuild.this,launcher,listener); } + @Override public void cleanUp(BuildListener listener) throws Exception { - if(getResult().isBetterOrEqualTo(Result.SUCCESS)) - scheduleDownstreamBuilds(listener); + scheduleDownstreamBuilds(listener); } } diff --git a/maven-plugin/src/main/java/hudson/maven/MavenModuleSetBuild.java b/maven-plugin/src/main/java/hudson/maven/MavenModuleSetBuild.java index 02c9e0785dbd036f18b0b7b3ab4e2af1470b17ed..825d7bd0e437cc78f6c6bc8d3354ed32ccc3fcaa 100644 --- a/maven-plugin/src/main/java/hudson/maven/MavenModuleSetBuild.java +++ b/maven-plugin/src/main/java/hudson/maven/MavenModuleSetBuild.java @@ -234,6 +234,7 @@ public class MavenModuleSetBuild extends AbstractMavenBuild0) { @@ -608,9 +609,7 @@ public class MavenModuleSetBuild extends AbstractMavenBuild program) throws IOException { futures.add(Channel.current().callAsync(new AsyncInvoker(core,program))); } @@ -683,6 +683,7 @@ public class MavenModuleSetBuild extends AbstractMavenBuild