
hudson.maven.AbstractMavenProject Maven / Gradle / Ivy
package hudson.maven;
import hudson.model.AbstractBuild;
import hudson.model.AbstractProject;
import hudson.model.Action;
import hudson.model.ItemGroup;
import hudson.triggers.Trigger;
import hudson.tasks.Maven.ProjectWithMaven;
import java.util.HashSet;
import java.util.Set;
/**
* Common part between {@link MavenModule} and {@link MavenModuleSet}.
*
* @author Kohsuke Kawaguchi
*/
public abstract class AbstractMavenProject,R extends AbstractBuild
> extends AbstractProject
implements ProjectWithMaven {
protected AbstractMavenProject(ItemGroup parent, String name) {
super(parent, name);
}
protected void updateTransientActions() {
synchronized(transientActions) {
super.updateTransientActions();
// if we just pick up the project actions from the last build,
// and if the last build failed very early, then the reports that
// kick in later (like test results) won't be displayed.
// so pick up last successful build, too.
Set added = new HashSet();
addTransientActionsFromBuild(getLastBuild(),added);
addTransientActionsFromBuild(getLastSuccessfulBuild(),added);
for (Trigger trigger : triggers) {
Action a = trigger.getProjectAction();
if(a!=null)
transientActions.add(a);
}
}
}
protected abstract void addTransientActionsFromBuild(R lastBuild, Set added);
}