File tree Expand file tree Collapse file tree 3 files changed +42
-3
lines changed
main/groovy/javaposse/jobdsl/dsl/views
test/groovy/javaposse/jobdsl/dsl/views Expand file tree Collapse file tree 3 files changed +42
-3
lines changed Original file line number Diff line number Diff line change @@ -34,6 +34,8 @@ Browse the Jenkins issue tracker to see any [open issues](https://issues.jenkins
3434## Release Notes
3535* 1.77 (unreleased)
3636 * Increased the minimum supported Jenkins version to 2.138
37+ * Improved support for views
38+ ([ JENKINS-59117] ( https://issues.jenkins-ci.org/browse/JENKINS-59117 ) )
3739 * Fixed problem with paths on Windows
3840 ([ JENKINS-53840] ( https://issues.jenkins-ci.org/browse/JENKINS-53840 ) )
3941* 1.76 (August 22 2019)
Original file line number Diff line number Diff line change 11package javaposse.jobdsl.dsl.views
22
3- import javaposse.jobdsl.dsl.AbstractContext
3+ import javaposse.jobdsl.dsl.AbstractExtensibleContext
4+ import javaposse.jobdsl.dsl.ContextType
45import javaposse.jobdsl.dsl.DslContext
56import javaposse.jobdsl.dsl.JobManagement
67import javaposse.jobdsl.dsl.Preconditions
78import javaposse.jobdsl.dsl.View
89import javaposse.jobdsl.dsl.ViewFactory
910
10- class NestedViewsContext extends AbstractContext implements ViewFactory {
11+ @ContextType (' hudson.model.View' )
12+ class NestedViewsContext extends AbstractExtensibleContext implements ViewFactory {
1113 List<View > views = []
1214
1315 NestedViewsContext (JobManagement jobManagement ) {
14- super (jobManagement)
16+ super (jobManagement, null )
1517 }
1618
1719 /**
@@ -78,6 +80,16 @@ class NestedViewsContext extends AbstractContext implements ViewFactory {
7880 processView(name, DashboardView , closure)
7981 }
8082
83+ @Override
84+ protected void addExtensionNode (Node node ) {
85+ views << new View (jobManagement, node[' name' ]. text()) {
86+ @Override
87+ Node getNode () {
88+ node
89+ }
90+ }
91+ }
92+
8193 private <T extends View > T processView (String name , Class<T> viewClass , Closure closure ) {
8294 Preconditions . checkNotNullOrEmpty(name, ' name must be specified' )
8395
Original file line number Diff line number Diff line change 1+ package javaposse.jobdsl.dsl.views
2+
3+ import javaposse.jobdsl.dsl.JobManagement
4+ import spock.lang.Specification
5+
6+ class NestedViewsContextSpec extends Specification {
7+ private final JobManagement jobManagement = Mock (JobManagement )
8+ private final NestedViewsContext context = new NestedViewsContext (jobManagement)
9+
10+ def ' extension' () {
11+ given :
12+ Node viewNode = new NodeBuilder (). ' my.custom.CustomView' {
13+ name(' myView' )
14+ }
15+
16+ when :
17+ context. addExtensionNode(viewNode)
18+
19+ then :
20+ context. views != null
21+ context. views. size() == 1
22+ context. views[0 ]. name == ' myView'
23+ context. views[0 ]. node == viewNode
24+ }
25+ }
You can’t perform that action at this time.
0 commit comments