@@ -3,6 +3,7 @@ package javaposse.jobdsl.plugin.structs
33import javaposse.jobdsl.dsl.Context
44import javaposse.jobdsl.dsl.DslException
55import javaposse.jobdsl.dsl.DslScriptException
6+ import javaposse.jobdsl.dsl.JobManagement
67import org.jenkinsci.plugins.structs.describable.ArrayType
78import org.jenkinsci.plugins.structs.describable.AtomicType
89import org.jenkinsci.plugins.structs.describable.DescribableModel
@@ -22,10 +23,12 @@ import static org.apache.commons.lang.ClassUtils.isAssignable
2223 */
2324class DescribableContext implements Context {
2425 private final DescribableModel describableModel
26+ private final JobManagement jobManagement
2527 private final Map<String , ?> values = [:]
2628
27- DescribableContext (DescribableModel describableModel ) {
29+ DescribableContext (DescribableModel describableModel , JobManagement jobManagement ) {
2830 this . describableModel = describableModel
31+ this . jobManagement = jobManagement
2932 }
3033
3134 /**
@@ -56,6 +59,9 @@ class DescribableContext implements Context {
5659 throw new ParameterMissingException (name, DescribableContext , argsArray, describableModel)
5760 }
5861 if (isValidValue(parameter. type, value)) {
62+ if (parameter. deprecated) {
63+ jobManagement. logDeprecationWarning()
64+ }
5965 values[name] = getValue(parameter. type, value)
6066 return null
6167 }
@@ -91,20 +97,27 @@ class DescribableContext implements Context {
9197 false
9298 }
9399
94- private static Object getValue (ParameterType parameterType , Object value ) {
100+ private Object getValue (ParameterType parameterType , Object value ) {
95101 if (value instanceof Closure ) {
96102 if (parameterType instanceof ArrayType ) {
97- ArrayType arrayType = (ArrayType ) parameterType
98- DescribableListContext delegate = new DescribableListContext (getArrayElementTypes(arrayType))
103+ DescribableListContext delegate = new DescribableListContext (
104+ getArrayElementTypes((ArrayType ) parameterType),
105+ jobManagement
106+ )
99107 executeInContext(value, delegate)
100108 return delegate. values
101109 } else if (parameterType instanceof HomogeneousObjectType ) {
102- DescribableContext delegate = new DescribableContext (((HomogeneousObjectType ) parameterType). schemaType)
110+ DescribableContext delegate = new DescribableContext (
111+ ((HomogeneousObjectType ) parameterType). schemaType,
112+ jobManagement
113+ )
103114 executeInContext((Closure ) value, delegate)
104115 return delegate. createInstance()
105116 } else if (parameterType instanceof HeterogeneousObjectType ) {
106- HeterogeneousObjectType heterogeneousObjectType = (HeterogeneousObjectType ) parameterType
107- DescribableListContext delegate = new DescribableListContext (heterogeneousObjectType. types. values())
117+ DescribableListContext delegate = new DescribableListContext (
118+ ((HeterogeneousObjectType ) parameterType). types. values(),
119+ jobManagement
120+ )
108121 executeInContext(value, delegate)
109122 return delegate. values ? delegate. values[-1 ] : null
110123 }
0 commit comments