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.
For more options, visit https://groups.google.com/d/optout.

Reply via email to