package hudson.plugins.dependencyanalyzer; import hudson.model.AbstractBuild; import hudson.model.Action; import hudson.plugins.dependencyanalyzer.persistence.BuildResultSerializer; import hudson.plugins.dependencyanalyzer.result.BuildResult; import java.io.IOException; import java.util.logging.Logger; public class DependencyAnalyzerPublisherAction implements Action { private final static Logger LOGGER = Logger .getLogger(DependencyAnalyzerPublisherAction.class.getName()); private AbstractBuild<?, ?> build; // This field is marked transient to avoid build descriptor pollution private transient BuildResult analysis; public DependencyAnalyzerPublisherAction() { super(); } public DependencyAnalyzerPublisherAction(AbstractBuild<?, ?> build, BuildResult analysis) { this.build = build; this.analysis = analysis; } public String getDisplayName() { return Messages.dependencyanalyzer_name(); } public String getIconFileName() { return Const.ICON_URL; } public String getUrlName() { return Const.MODULE_URL; } public AbstractBuild<?, ?> getBuild() { return build; } public BuildResult getBuildResult() { if (analysis == null) { // we are consulting a previous build, getting result from file try { analysis = BuildResultSerializer.deserialize(build.getRootDir()); } catch (IOException e) { LOGGER.severe("Error getting result from disk"); } } return analysis; } }