package hudson.plugins.jira; import hudson.Extension; import hudson.FilePath; import hudson.Launcher; import hudson.model.AbstractProject; import hudson.model.Descriptor; import hudson.model.Job; import hudson.model.Run; import hudson.model.TaskListener; import hudson.tasks.BuildStepDescriptor; import hudson.tasks.Builder; import jenkins.tasks.SimpleBuildStep; import net.sf.json.JSONObject; import org.kohsuke.stapler.DataBoundConstructor; import org.kohsuke.stapler.StaplerRequest; import java.io.IOException; /** * Created by Reda on 18/12/2014. */ public class JiraReleaseVersionUpdaterBuilder extends Builder implements SimpleBuildStep { private String jiraProjectKey; private String jiraRelease; @Extension public static final DescriptorImpl DESCRIPTOR = new DescriptorImpl(); @DataBoundConstructor public JiraReleaseVersionUpdaterBuilder(String jiraProjectKey, String jiraRelease) { this.jiraRelease = jiraRelease; this.jiraProjectKey = jiraProjectKey; } public String getJiraRelease() { return jiraRelease; } public void setJiraRelease(String jiraRelease) { this.jiraRelease = jiraRelease; } public String getJiraProjectKey() { return jiraProjectKey; } public void setJiraProjectKey(String jiraProjectKey) { this.jiraProjectKey = jiraProjectKey; } @Override public void perform(Run<?, ?> run, FilePath workspace, Launcher launcher, TaskListener listener) throws InterruptedException, IOException { VersionReleaser.perform(getSiteForProject(run.getParent()), jiraProjectKey, jiraRelease, run, listener); } JiraSite getSiteForProject(Job<?, ?> project) { return JiraSite.get(project); } @Override public Descriptor<Builder> getDescriptor() { return DESCRIPTOR; } public static final class DescriptorImpl extends BuildStepDescriptor<Builder> { private DescriptorImpl() { super(JiraReleaseVersionUpdaterBuilder.class); } @Override public boolean isApplicable(Class<? extends AbstractProject> jobType) { return true; } @Override public String getDisplayName() { // Placed in the build settings section return Messages.JiraReleaseVersionBuilder_DisplayName(); } @Override public String getHelpFile() { return "/plugin/jira/help.html"; } @Override public JiraReleaseVersionUpdaterBuilder newInstance(StaplerRequest req, JSONObject formData) throws FormException { return req.bindJSON(JiraReleaseVersionUpdaterBuilder.class, formData); } } }