IIUC, for the moment only GStrings are whitelisted: see https://github.com/jenkinsci/workflow-plugin/blob/master/cps/src/main/java/org/jenkinsci/plugins/workflow/cps/CpsWhitelist.java#L54
I guess we'll need feedback of Jesse or Kohsuke as to where they want to go about that: filing JIRAs for classes to be whitelisted? another way? IMO this is still a WIP, as you can for example read in the changelog some weeks ago - Flow scripts may now be run in a Groovy sandbox to allow regular users to define them without administrator approval. More work is likely needed to supply a reasonable method call whitelist out of the box. <https://github.com/jenkinsci/workflow-plugin/blob/master/CHANGES.md#01-beta-5> Cheers 2015-02-07 8:45 GMT+01:00 Baptiste Mathus <bmat...@batmat.net>: > Hi, > As the inline documentation (see the question marks on the right), this is > because your code runs in sandboxed mode/you're not an admin: > if *Use Groovy Sandbox* is checked, or you are not an administrator, not > all APIs will be available. > > (Though I somehow agree that at first sight StringBuilder could be > whitelisted). > > About sharing libraries, I guess this doc could help: > https://github.com/jenkinsci/workflow-plugin/blob/master/cps-global-lib/README.md > > HTH > > 2015-02-06 21:01 GMT+01:00 Benjamin Muschko <benjamin.musc...@gmail.com>: > >> Hi, >> >> I was wondering what the technical limitations are for a workflow Groovy >> script, more specifically: >> >> 1) Is is possible to use classes like StringBuilder? >> >> Example: >> >> stage 'tryout' >> node { >> useStringBuilder() >> } >> >> def useStringBuilder() { >> echo "Before usage" >> StringBuilder test = new StringBuilder() >> echo "After usage" >> } >> >> If I use this method my in my flow.groovy script, the job never seems to >> print out "After usage". Instead I get the message: >> "org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException: >> Scripts not permitted to use new java.lang.StringBuilder". Are "restricted" >> classes documented somewhere? Why is there a restriction? >> >> 2) Can you define your own classes within the Groovy script? >> >> stage 'tryout' >> node { >> new HelloWorld().printMessage() >> } >> >> class HelloWorld { >> def printMessage() { >> echo "Hello World" >> } >> } >> >> If I create an instance of a custom class, I get the following message: >> "org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException: >> Scripts not permitted to use method groovy.lang.GroovyObject invokeMethod >> java.lang.String java.lang.Object". >> >> 3) Is there a way to reuse methods or classes across multiple jobs? How >> do you envision reusable code? >> >> In all of these cases, I'd like to consume an existing, checked-in Groovy >> script via "Groovy CPS DSL from SCM". >> >> Thanks, >> >> Ben >> >> -- >> 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/2410ce55-ad9d-4d2b-b63c-6ebd633b85b5%40googlegroups.com >> <https://groups.google.com/d/msgid/jenkinsci-users/2410ce55-ad9d-4d2b-b63c-6ebd633b85b5%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> For more options, visit https://groups.google.com/d/optout. >> > > > > -- > Baptiste <Batmat> MATHUS - http://batmat.net > Sauvez un arbre, > Mangez un castor ! > > -- > Baptiste <Batmat> MATHUS - http://batmat.net > Sauvez un arbre, > Mangez un castor ! > nbsp;! > -- 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/CANWgJS4-OEjM1YujB6FS%2B2hMZc6nw%3DTDsvPotvZk_aT62w_JzA%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.