Skip to content

Commit 6ea785f

Browse files
author
Frode Aannevik
committed
Add support for Jenkins 2 (incomplete)
Replace use of AbstractProject with Job to fix ClassCastException thrown when using the plugin in a pipeline job The fix is "not" complete, it remains to find a replacement to the call AbstractProject.isDisabled used to decide if the build should be skipped Previously called in BitbucketBuildTrigger.run() fixes nishio-dens#94
1 parent 754a250 commit 6ea785f

File tree

2 files changed

+25
-13
lines changed

2 files changed

+25
-13
lines changed

src/main/java/bitbucketpullrequestbuilder/bitbucketpullrequestbuilder/BitbucketBuildTrigger.java

+20-9
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import hudson.triggers.Trigger;
1313
import hudson.triggers.TriggerDescriptor;
1414
import hudson.util.ListBoxModel;
15+
import jenkins.model.ParameterizedJobMixIn;
1516
import net.sf.json.JSONObject;
1617
import org.kohsuke.stapler.DataBoundConstructor;
1718
import org.kohsuke.stapler.StaplerRequest;
@@ -27,7 +28,7 @@
2728
/**
2829
* Created by nishio
2930
*/
30-
public class BitbucketBuildTrigger extends Trigger<AbstractProject<?, ?>> {
31+
public class BitbucketBuildTrigger extends Trigger<Job<?, ?>> {
3132
private static final Logger logger = Logger.getLogger(BitbucketBuildTrigger.class.getName());
3233
private final String projectPath;
3334
private final String cron;
@@ -140,7 +141,7 @@ public boolean getApproveIfSuccess() {
140141
}
141142

142143
@Override
143-
public void start(AbstractProject<?, ?> project, boolean newInstance) {
144+
public void start(Job<?, ?> project, boolean newInstance) {
144145
try {
145146
this.bitbucketPullRequestsBuilder = BitbucketPullRequestsBuilder.getBuilder();
146147
this.bitbucketPullRequestsBuilder.setProject(project);
@@ -162,9 +163,22 @@ public BitbucketPullRequestsBuilder getBuilder() {
162163
return this.bitbucketPullRequestsBuilder;
163164
}
164165

166+
private ParameterizedJobMixIn retrieveScheduleJob(final Job<?, ?> job) {
167+
// TODO 1.621+ use standard method
168+
return new ParameterizedJobMixIn() {
169+
@Override
170+
protected Job asJob() {
171+
return job;
172+
}
173+
};
174+
}
175+
165176
public QueueTaskFuture<?> startJob(BitbucketCause cause) {
166177
Map<String, ParameterValue> values = this.getDefaultParameters();
167-
return this.job.scheduleBuild2(0, cause, new ParametersAction(new ArrayList(values.values())), new RevisionParameterAction(cause.getSourceCommitHash()));
178+
return retrieveScheduleJob(this.job).scheduleBuild2(0,
179+
new CauseAction(cause),
180+
new ParametersAction(new ArrayList(values.values())),
181+
new RevisionParameterAction(cause.getSourceCommitHash()));
168182
}
169183

170184
private Map<String, ParameterValue> getDefaultParameters() {
@@ -181,11 +195,8 @@ private Map<String, ParameterValue> getDefaultParameters() {
181195

182196
@Override
183197
public void run() {
184-
if(this.getBuilder().getProject().isDisabled()) {
185-
logger.info("Build Skip.");
186-
} else {
187-
this.bitbucketPullRequestsBuilder.run();
188-
}
198+
logger.log(Level.INFO, "TODO: check if project is disabled before calling bitbucketPullRequestsBuilder.run()");
199+
this.bitbucketPullRequestsBuilder.run();
189200
this.getDescriptor().save();
190201
}
191202

@@ -201,7 +212,7 @@ public BitbucketBuildTriggerDescriptor() {
201212

202213
@Override
203214
public boolean isApplicable(Item item) {
204-
return true;
215+
return item instanceof Job && item instanceof ParameterizedJobMixIn.ParameterizedJob;
205216
}
206217

207218
@Override

src/main/java/bitbucketpullrequestbuilder/bitbucketpullrequestbuilder/BitbucketPullRequestsBuilder.java

+5-4
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package bitbucketpullrequestbuilder.bitbucketpullrequestbuilder;
22

33
import bitbucketpullrequestbuilder.bitbucketpullrequestbuilder.bitbucket.Pullrequest;
4-
import hudson.model.AbstractProject;
54

65
import java.io.UnsupportedEncodingException;
76
import java.security.MessageDigest;
@@ -11,14 +10,15 @@
1110
import java.util.logging.Level;
1211
import java.util.logging.Logger;
1312

13+
import hudson.model.Job;
1414
import org.apache.commons.codec.binary.Hex;
1515

1616
/**
1717
* Created by nishio
1818
*/
1919
public class BitbucketPullRequestsBuilder {
2020
private static final Logger logger = Logger.getLogger(BitbucketBuildTrigger.class.getName());
21-
private AbstractProject<?, ?> project;
21+
private Job<?, ?> project;
2222
private BitbucketBuildTrigger trigger;
2323
private BitbucketRepository repository;
2424
private BitbucketBuilds builds;
@@ -47,15 +47,15 @@ public BitbucketPullRequestsBuilder setupBuilder() {
4747
return this;
4848
}
4949

50-
public void setProject(AbstractProject<?, ?> project) {
50+
public void setProject(Job<?, ?> project) {
5151
this.project = project;
5252
}
5353

5454
public void setTrigger(BitbucketBuildTrigger trigger) {
5555
this.trigger = trigger;
5656
}
5757

58-
public AbstractProject<?, ?> getProject() {
58+
public Job<?, ?> getProject() {
5959
return this.project;
6060
}
6161

@@ -75,6 +75,7 @@ public String getProjectId() {
7575
exc.printStackTrace();
7676
}
7777
return this.project.getFullName();
78+
7879
}
7980

8081
public BitbucketBuildTrigger getTrigger() {

0 commit comments

Comments
 (0)