Hello, I'm developing a shared library for us across several business units. We want to have 1 repo that all BU's can use, but also want to separate functionality by business unit. Additionally, we want users to consume the latest non-breaking changes of the library. I'm experimenting with a name spacing approach. This is some example code:
// var/businessUnitA.groovy def propertyMissing(String name) { return this.class.classLoader.("businessUnitA.v1.$name", true, false).newInstance() } // src/businessUnitA/v1/Notify.groovy def sendSlackMessage(arg1, arg2, arg3) { // actual logic to send the slack message } // Jenkinsfile businessUnitA.Notify.sendSlackMessage('a', 'b', 'c') This approach allows us to think of the shared library more like a versioned API than a package that might have multiple long-lived major versions. With this background, the problem I'm having is accessing the pipeline global variables like `env` in businessUnitA's `missingProperty` function. When I try to access `env` in `missingProperty`, it leads to infinite loops. I've also tried looking at this.getProperty('binding) but the binding doesn't appear to have those global variables attached. I even tried checking out the class loaders to see if there was an existing instance I could access. Is there any way I could get at those global variables in the `missingProperty` function? Thanks! -- You received this message because you are subscribed to the Google Groups "Jenkins Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-users/ea778156-2a5e-4903-801d-a0c13f9c598f%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.