You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@groovy.apache.org by "Eric Milles (Jira)" <ji...@apache.org> on 2021/10/17 15:39:00 UTC

[jira] [Closed] (GROOVY-8221) Not being able to refer to global variables via scripted methods

     [ https://issues.apache.org/jira/browse/GROOVY-8221?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Eric Milles closed GROOVY-8221.
-------------------------------
    Resolution: Information Provided

> 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
>            Priority: Major
>
> 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
(v8.3.4#803005)