On Saturday, February 7, 2015 at 2:46:12 AM UTC-5, Baptiste Mathus wrote:
>
> 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.
>

Based on the question mark description of the Script path element when 
"Groovy CPS DSL from SCM" is selected, the selected Groovy script is always 
run inside a sandbox. The description says:

Relative location within the checkout of your Workflow script. Note that it 
will always be run inside a Groovy sandbox.
 
Why is there a limitation for this option?


>
> (Though I somehow agree that at first sight StringBuilder could be 
> whitelisted).
>

OK.
 

>
> About sharing libraries, I guess this doc could help: 
> https://github.com/jenkinsci/workflow-plugin/blob/master/cps-global-lib/README.md
>

Thanks for link. It's not clear to me how I can reuse the logic across 
multiple jobs. The description says "This plugin adds that functionality by 
creating a "shared library script" Git repository inside Jenkins. Every 
workflow script in your Jenkins see these shared library scripts in their 
classpath." but where do I configure that?
 

>
> HTH
>
> 2015-02-06 21:01 GMT+01:00 Benjamin Muschko <benjamin...@gmail.com 
> <javascript:>>:
>
>> 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-use...@googlegroups.com <javascript:>.
>> 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 !
>  

-- 
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/d9669a48-8eac-4765-8f94-9bdd226d35ff%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to