Skip to content

Commit df32b9d

Browse files
committed
really fixed Dynamic DSL problem
[JENKINS-57817]
1 parent fbb78ac commit df32b9d

File tree

3 files changed

+15
-3
lines changed

3 files changed

+15
-3
lines changed

job-dsl-plugin/src/main/groovy/javaposse/jobdsl/plugin/structs/DescribableHelper.groovy

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,9 @@ class DescribableHelper {
4747
Class type = getTypeForLookup(it)
4848
type == null ? null : SymbolLookup.get().find(type, name)
4949
}
50+
result = result.findAll { d ->
51+
!result.any { other -> d != other && d.type.isAssignableFrom(other.type) }
52+
}
5053
result ?: models.findAll { uncapitalize(it.type) == name }
5154
}
5255

job-dsl-plugin/src/test/groovy/javaposse/jobdsl/plugin/fixtures/SubTrigger.groovy

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
11
package javaposse.jobdsl.plugin.fixtures
22

33
import hudson.Extension
4-
import hudson.model.Job
5-
import hudson.triggers.Trigger
64
import org.jenkinsci.Symbol
75
import org.kohsuke.stapler.DataBoundConstructor
86

9-
class SubTrigger extends Trigger<Job> {
7+
class SubTrigger extends FooTrigger {
108
@DataBoundConstructor
119
SubTrigger() {
1210
}

job-dsl-plugin/src/test/groovy/javaposse/jobdsl/plugin/structs/DescribableHelperSpec.groovy

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,17 @@ class DescribableHelperSpec extends Specification {
9595
describableModels != null
9696
describableModels.size() == 1
9797
describableModels.first().type == SubTrigger
98+
99+
when:
100+
describableModels = DescribableHelper.findDescribableModels(
101+
[DescribableModel.of(FooTrigger), DescribableModel.of(SubTrigger)],
102+
'sub'
103+
)
104+
105+
then:
106+
describableModels != null
107+
describableModels.size() == 1
108+
describableModels.first().type == SubTrigger
98109
}
99110

100111
def 'find descriptors for context without type'() {

0 commit comments

Comments
 (0)