groovy-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "David Ekholm (JIRA)" <j...@apache.org>
Subject [jira] [Created] (GROOVY-8221) Not being able to refer to global variables via scripted methods
Date Wed, 07 Jun 2017 18:05:18 GMT
David Ekholm created GROOVY-8221:
------------------------------------

             Summary: Not being able to refer to global variables via scripted methods
                 Key: GROOVY-8221
                 URL: https://issues.apache.org/jira/browse/GROOVY-8221
             Project: Groovy
          Issue Type: Bug
          Components: GroovyScriptEngine
    Affects Versions: 2.4.11
         Environment: Probably not relevant, but problem at least confirmed on Mac OS X
            Reporter: David Ekholm


We wish to switch from BeanShell to Groovy as script language (JSR-223) in our desktop software
jAlbum. jAlbum injects a set of global variables into the scriptlets via the Bindings object
of the JSR-223 API. These variables are directly accessible in simple scripts, but contrary
to scripting in BeanShell, these variables are not available to methods declared within scripted
classes.

Here's what works (assuming that "foo" is passed to the GroovyScriptEngine via the Bindings
object):

println(foo) // foo being made available to the magically created Script class' run method

Here's what won't work (foo again being passed to the GroovyScriptEngine via the Bindings
object):

class Test {
  void bar() {
    println(foo); // Reference to missing variable
  }
}

Test t = new Test()
t.bar() // Fails due to missing variable




--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Mime
View raw message