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
34
34
## Release Notes
35
35
* 1.77 (unreleased)
36
36
* 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 ) )
37
39
* Fixed problem with paths on Windows
38
40
([ JENKINS-53840] ( https://issues.jenkins-ci.org/browse/JENKINS-53840 ) )
39
41
* 1.76 (August 22 2019)
Original file line number Diff line number Diff line change 1
1
package javaposse.jobdsl.dsl.views
2
2
3
- import javaposse.jobdsl.dsl.AbstractContext
3
+ import javaposse.jobdsl.dsl.AbstractExtensibleContext
4
+ import javaposse.jobdsl.dsl.ContextType
4
5
import javaposse.jobdsl.dsl.DslContext
5
6
import javaposse.jobdsl.dsl.JobManagement
6
7
import javaposse.jobdsl.dsl.Preconditions
7
8
import javaposse.jobdsl.dsl.View
8
9
import javaposse.jobdsl.dsl.ViewFactory
9
10
10
- class NestedViewsContext extends AbstractContext implements ViewFactory {
11
+ @ContextType (' hudson.model.View' )
12
+ class NestedViewsContext extends AbstractExtensibleContext implements ViewFactory {
11
13
List<View > views = []
12
14
13
15
NestedViewsContext (JobManagement jobManagement ) {
14
- super (jobManagement)
16
+ super (jobManagement, null )
15
17
}
16
18
17
19
/**
@@ -78,6 +80,16 @@ class NestedViewsContext extends AbstractContext implements ViewFactory {
78
80
processView(name, DashboardView , closure)
79
81
}
80
82
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
+
81
93
private <T extends View > T processView (String name , Class<T> viewClass , Closure closure ) {
82
94
Preconditions . checkNotNullOrEmpty(name, ' name must be specified' )
83
95
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