Skip to content

Commit e546117

Browse files
authored
Merge pull request #289 from jglick/dependency-injection
Fix deprecations, avoid `@Inject`
2 parents c4fe137 + 94ff14d commit e546117

File tree

2 files changed

+47
-31
lines changed

2 files changed

+47
-31
lines changed

src/main/java/org/jenkinsci/plugins/workflow/multibranch/JobPropertyStep.java

Lines changed: 22 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,7 @@
4444
import java.util.Set;
4545
import java.util.logging.Level;
4646
import java.util.logging.Logger;
47-
import jakarta.inject.Inject;
4847

49-
import hudson.model.TaskListener;
5048
import jenkins.branch.BuildRetentionBranchProperty;
5149
import jenkins.branch.RateLimitBranchProperty;
5250
import jenkins.model.Jenkins;
@@ -56,11 +54,11 @@
5654
import org.jenkinsci.plugins.workflow.graphanalysis.DepthFirstScanner;
5755
import org.jenkinsci.plugins.workflow.graphanalysis.NodeStepTypePredicate;
5856
import org.jenkinsci.plugins.workflow.job.WorkflowJob;
59-
import org.jenkinsci.plugins.workflow.steps.AbstractStepDescriptorImpl;
60-
import org.jenkinsci.plugins.workflow.steps.AbstractStepImpl;
61-
import org.jenkinsci.plugins.workflow.steps.AbstractSynchronousStepExecution;
6257
import org.jenkinsci.plugins.workflow.steps.Step;
63-
import org.jenkinsci.plugins.workflow.steps.StepContextParameter;
58+
import org.jenkinsci.plugins.workflow.steps.StepContext;
59+
import org.jenkinsci.plugins.workflow.steps.StepDescriptor;
60+
import org.jenkinsci.plugins.workflow.steps.StepExecution;
61+
import org.jenkinsci.plugins.workflow.steps.SynchronousStepExecution;
6462
import org.kohsuke.accmod.Restricted;
6563
import org.kohsuke.accmod.restrictions.DoNotUse;
6664
import org.kohsuke.stapler.DataBoundConstructor;
@@ -70,7 +68,7 @@
7068
* Resets the properties of the current job.
7169
*/
7270
@SuppressWarnings({"unchecked", "rawtypes"}) // TODO JENKINS-26535: cannot bind List<JobProperty<?>>
73-
public class JobPropertyStep extends AbstractStepImpl {
71+
public class JobPropertyStep extends Step {
7472

7573
private final List<JobProperty> properties;
7674

@@ -88,14 +86,22 @@ public Map<JobPropertyDescriptor,JobProperty> getPropertiesMap() {
8886
return Descriptor.toMap((List) properties);
8987
}
9088

91-
public static class Execution extends AbstractSynchronousStepExecution<Void> {
89+
@Override public StepExecution start(StepContext context) throws Exception {
90+
return new Execution(this, context);
91+
}
92+
93+
public static class Execution extends SynchronousStepExecution<Void> {
9294

93-
@Inject transient JobPropertyStep step;
94-
@StepContextParameter transient Run<?,?> build;
95-
@StepContextParameter transient TaskListener l;
95+
private transient final JobPropertyStep step;
96+
97+
Execution(JobPropertyStep step, StepContext context) {
98+
super(context);
99+
this.step = step;
100+
}
96101

97102
@SuppressWarnings("unchecked") // untypable
98103
@Override protected Void run() throws Exception {
104+
Run<?,?> build = getContext().get(Run.class);
99105
Job<?,?> job = build.getParent();
100106

101107
JobPropertyTrackerAction previousAction = job.getAction(JobPropertyTrackerAction.class);
@@ -162,11 +168,7 @@ public static class Execution extends AbstractSynchronousStepExecution<Void> {
162168

163169
}
164170

165-
@Extension public static class DescriptorImpl extends AbstractStepDescriptorImpl {
166-
167-
public DescriptorImpl() {
168-
super(Execution.class);
169-
}
171+
@Extension public static class DescriptorImpl extends StepDescriptor {
170172

171173
@Override public String getFunctionName() {
172174
return "properties";
@@ -177,6 +179,10 @@ public DescriptorImpl() {
177179
return "Set job properties";
178180
}
179181

182+
@Override public Set<? extends Class<?>> getRequiredContext() {
183+
return Set.of(Run.class);
184+
}
185+
180186
@Override public Step newInstance(@NonNull StaplerRequest req, @NonNull JSONObject formData) throws FormException {
181187
if (req == null) { // should not happen
182188
return super.newInstance(null, formData);

src/main/java/org/jenkinsci/plugins/workflow/multibranch/ReadTrustedStep.java

Lines changed: 25 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141

4242
import java.io.File;
4343
import java.io.IOException;
44-
import jakarta.inject.Inject;
44+
import java.util.Set;
4545
import jenkins.branch.Branch;
4646
import jenkins.model.Jenkins;
4747
import jenkins.scm.api.SCMFileSystem;
@@ -54,10 +54,11 @@
5454
import org.jenkinsci.plugins.workflow.cps.steps.LoadStepExecution;
5555
import org.jenkinsci.plugins.workflow.flow.FlowDefinition;
5656
import org.jenkinsci.plugins.workflow.job.WorkflowJob;
57-
import org.jenkinsci.plugins.workflow.steps.AbstractStepDescriptorImpl;
58-
import org.jenkinsci.plugins.workflow.steps.AbstractStepImpl;
59-
import org.jenkinsci.plugins.workflow.steps.AbstractSynchronousNonBlockingStepExecution;
60-
import org.jenkinsci.plugins.workflow.steps.StepContextParameter;
57+
import org.jenkinsci.plugins.workflow.steps.Step;
58+
import org.jenkinsci.plugins.workflow.steps.StepContext;
59+
import org.jenkinsci.plugins.workflow.steps.StepDescriptor;
60+
import org.jenkinsci.plugins.workflow.steps.StepExecution;
61+
import org.jenkinsci.plugins.workflow.steps.SynchronousNonBlockingStepExecution;
6162
import org.jenkinsci.plugins.workflow.steps.scm.GenericSCMStep;
6263
import org.jenkinsci.plugins.workflow.steps.scm.SCMStep;
6364
import org.kohsuke.stapler.DataBoundConstructor;
@@ -69,7 +70,7 @@
6970
* May be used in combination with {@code evaluate} to delegate to more Pipeline Groovy, as a substitute for {@link SCMBinder},
7071
* at least until {@link LoadStepExecution} has been split into an abstract part that a {@code loadTrusted} step could extend.
7172
*/
72-
public class ReadTrustedStep extends AbstractStepImpl {
73+
public class ReadTrustedStep extends Step {
7374

7475
// Intentionally using the same key as CpsScmFlowDefinition.
7576
private static final HMACConfidentialKey CHECKOUT_DIR_KEY = new HMACConfidentialKey(CpsScmFlowDefinition.class, "filePathWithSuffix", 32);
@@ -85,13 +86,22 @@ public String getPath() {
8586
return path;
8687
}
8788

88-
public static class Execution extends AbstractSynchronousNonBlockingStepExecution<String> {
89+
@Override public StepExecution start(StepContext context) throws Exception {
90+
return new Execution(this, context);
91+
}
92+
93+
public static class Execution extends SynchronousNonBlockingStepExecution<String> {
8994

90-
@Inject private transient ReadTrustedStep step;
91-
@StepContextParameter private transient Run<?,?> build;
92-
@StepContextParameter private transient TaskListener listener;
95+
private transient final ReadTrustedStep step;
96+
97+
Execution(ReadTrustedStep step, StepContext context) {
98+
super(context);
99+
this.step = step;
100+
}
93101

94102
@Override protected String run() throws Exception {
103+
Run<?,?> build = getContext().get(Run.class);
104+
TaskListener listener = getContext().get(TaskListener.class);
95105
Job<?, ?> job = build.getParent();
96106
// Portions adapted from SCMBinder, SCMVar, and CpsScmFlowDefinition:
97107
SCM standaloneSCM = null;
@@ -253,11 +263,7 @@ private static boolean isDescendant(FilePath child, FilePath parent) throws IOEx
253263

254264
}
255265

256-
@Extension public static class DescriptorImpl extends AbstractStepDescriptorImpl {
257-
258-
public DescriptorImpl() {
259-
super(Execution.class);
260-
}
266+
@Extension public static class DescriptorImpl extends StepDescriptor {
261267

262268
@Override public String getFunctionName() {
263269
return "readTrusted";
@@ -268,6 +274,10 @@ public DescriptorImpl() {
268274
return "Read trusted file from SCM";
269275
}
270276

277+
@Override public Set<? extends Class<?>> getRequiredContext() {
278+
return Set.of(Run.class, TaskListener.class);
279+
}
280+
271281
}
272282

273283
}

0 commit comments

Comments
 (0)