/** * */ package hudson.plugins.dependencyanalyzer; import hudson.Launcher; import hudson.maven.MavenModuleSetBuild; import hudson.model.AbstractBuild; import hudson.model.BuildListener; import hudson.model.Result; import hudson.plugins.dependencyanalyzer.persistence.BuildResultSerializer; import hudson.plugins.dependencyanalyzer.result.BuildResult; import hudson.tasks.BuildStepMonitor; import hudson.tasks.Recorder; import java.io.IOException; import java.util.logging.Logger; import org.kohsuke.stapler.DataBoundConstructor; /** * @author Vincent Sellier * */ public class DependencyAnalyzerPublisher extends Recorder { public static final Logger LOGGER = Logger .getLogger(DependencyAnalyzerPublisher.class.getName()); @DataBoundConstructor public DependencyAnalyzerPublisher() { } public BuildStepMonitor getRequiredMonitorService() { return BuildStepMonitor.STEP; } @Override public boolean perform(AbstractBuild build, Launcher launcher, BuildListener listener) throws InterruptedException, IOException { Result result = build.getResult(); if (!(Result.SUCCESS.equals(result) || Result.UNSTABLE.equals(result))) { LOGGER.info("Build is not successful, no dependency analysis."); return false; } // Construct the build result BuildResult analysis = DependencyAnalyzerResultBuilder .buildResult((MavenModuleSetBuild) build); // persist this analysis for this build BuildResultSerializer.serialize(build.getRootDir(), analysis); build.getActions().add( new DependencyAnalyzerPublisherAction(build, analysis)); return true; } }