aboutsummaryrefslogtreecommitdiff
path: root/vars/utils.groovy
diff options
context:
space:
mode:
authorMatt Rendina <mrendina@stsci.edu>2017-11-27 21:50:13 -0500
committerMatt Rendina <mrendina@stsci.edu>2017-11-27 21:50:13 -0500
commit8e054991f04a35c29069b8d975c86321a9ac89e7 (patch)
tree94c665c55496bb25d8b350c2786e9158abce00d4 /vars/utils.groovy
parent6446b7a3d0b7f99cb5a525c0ea471a85935b2798 (diff)
downloadjscu_refactor-8e054991f04a35c29069b8d975c86321a9ac89e7.tar.gz
Test large class def
Diffstat (limited to 'vars/utils.groovy')
-rw-r--r--vars/utils.groovy32
1 files changed, 32 insertions, 0 deletions
diff --git a/vars/utils.groovy b/vars/utils.groovy
index 6a5129e..2d4a3cb 100644
--- a/vars/utils.groovy
+++ b/vars/utils.groovy
@@ -32,6 +32,38 @@ class TClass implements Serializable {
def var = "varvalue"
}
+//@AutoClone // annotation is not CPS-compatible?
+class BuildConfig implements Serializable {
+ def nodetype = ""
+ def build_mode = ""
+ def build_args = []
+ def env_vars = []
+ def configure_cmds = []
+ def build_cmds = []
+ def run_tests = true
+ //Boolean boolValue
+
+ // Constructors
+ BuildConfig() {
+ nodetype = ""
+ }
+ BuildConfig(nodetype) {
+ this.nodetype = nodetype
+ }
+ // createNewInstance method requires Jenkins script approval for the
+ // following signatures:
+ // method groovy.lang.MetaBeanProperty getSetter
+ // method groovy.lang.MetaObjectProtocol getProperties
+ // method groovy.lang.MetaProperty getProperty java.lang.Object
+ // method groovy.lang.MetaProperty setProperty java.lang.Object java.lang.Object
+ def BuildConfig copy(){
+ BuildConfig.metaClass.getProperties().findAll(){it.getSetter()!=null}.inject(new BuildConfig()){buildconfig,metaProp->
+ metaProp.setProperty(buildconfig,metaProp.getProperty(this))
+ buildconfig
+ }
+ }
+}
+
def concurrent2(configs) {
def tasks = [:]
println("Size of configs = ${configs.size()}")