Repository: groovy
Updated Branches:
  refs/heads/GROOVY_2_4_X 8725d926c -> 5785204c2


Allow ScriptEngine to return same factory that created it


Project: http://git-wip-us.apache.org/repos/asf/groovy/repo
Commit: http://git-wip-us.apache.org/repos/asf/groovy/commit/5785204c
Tree: http://git-wip-us.apache.org/repos/asf/groovy/tree/5785204c
Diff: http://git-wip-us.apache.org/repos/asf/groovy/diff/5785204c

Branch: refs/heads/GROOVY_2_4_X
Commit: 5785204c2e878d9c56a9e7c6a8e76ee22b2d5654
Parents: bbfe7ad
Author: John Wagenleitner <jwagenleit...@apache.org>
Authored: Tue Jun 28 16:36:57 2016 -0700
Committer: John Wagenleitner <jwagenleit...@apache.org>
Committed: Tue Jun 28 17:07:42 2016 -0700

----------------------------------------------------------------------
 .../org/codehaus/groovy/jsr223/GroovyScriptEngineFactory.java  | 2 +-
 .../org/codehaus/groovy/jsr223/GroovyScriptEngineImpl.java     | 5 +++++
 .../test/groovy/org/codehaus/groovy/jsr223/JSR223Test.groovy   | 6 ++++++
 3 files changed, 12 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/groovy/blob/5785204c/subprojects/groovy-jsr223/src/main/java/org/codehaus/groovy/jsr223/GroovyScriptEngineFactory.java
----------------------------------------------------------------------
diff --git 
a/subprojects/groovy-jsr223/src/main/java/org/codehaus/groovy/jsr223/GroovyScriptEngineFactory.java
 
b/subprojects/groovy-jsr223/src/main/java/org/codehaus/groovy/jsr223/GroovyScriptEngineFactory.java
index 4aa0ce5..b804b06 100644
--- 
a/subprojects/groovy-jsr223/src/main/java/org/codehaus/groovy/jsr223/GroovyScriptEngineFactory.java
+++ 
b/subprojects/groovy-jsr223/src/main/java/org/codehaus/groovy/jsr223/GroovyScriptEngineFactory.java
@@ -132,7 +132,7 @@ public class GroovyScriptEngineFactory implements 
ScriptEngineFactory {
     }
 
     public ScriptEngine getScriptEngine() {
-        return new GroovyScriptEngineImpl();
+        return new GroovyScriptEngineImpl(this);
     }
 
     public String getMethodCallSyntax(String obj, String method,

http://git-wip-us.apache.org/repos/asf/groovy/blob/5785204c/subprojects/groovy-jsr223/src/main/java/org/codehaus/groovy/jsr223/GroovyScriptEngineImpl.java
----------------------------------------------------------------------
diff --git 
a/subprojects/groovy-jsr223/src/main/java/org/codehaus/groovy/jsr223/GroovyScriptEngineImpl.java
 
b/subprojects/groovy-jsr223/src/main/java/org/codehaus/groovy/jsr223/GroovyScriptEngineImpl.java
index 338d121..06d6c89 100644
--- 
a/subprojects/groovy-jsr223/src/main/java/org/codehaus/groovy/jsr223/GroovyScriptEngineImpl.java
+++ 
b/subprojects/groovy-jsr223/src/main/java/org/codehaus/groovy/jsr223/GroovyScriptEngineImpl.java
@@ -124,6 +124,11 @@ public class GroovyScriptEngineImpl extends 
AbstractScriptEngine implements Comp
         this.loader = classLoader;
     }
 
+    GroovyScriptEngineImpl(GroovyScriptEngineFactory factory) {
+        this();
+        this.factory = factory;
+    }
+
     public Object eval(Reader reader, ScriptContext ctx)
             throws ScriptException {
         return eval(readFully(reader), ctx);

http://git-wip-us.apache.org/repos/asf/groovy/blob/5785204c/subprojects/groovy-jsr223/src/test/groovy/org/codehaus/groovy/jsr223/JSR223Test.groovy
----------------------------------------------------------------------
diff --git 
a/subprojects/groovy-jsr223/src/test/groovy/org/codehaus/groovy/jsr223/JSR223Test.groovy
 
b/subprojects/groovy-jsr223/src/test/groovy/org/codehaus/groovy/jsr223/JSR223Test.groovy
index d6792be..d680130 100644
--- 
a/subprojects/groovy-jsr223/src/test/groovy/org/codehaus/groovy/jsr223/JSR223Test.groovy
+++ 
b/subprojects/groovy-jsr223/src/test/groovy/org/codehaus/groovy/jsr223/JSR223Test.groovy
@@ -214,4 +214,10 @@ class JSR223Test extends GroovyTestCase {
         assert engine.eval(code).answer == 'bar'
     }
 
+    void testScriptFactorySameAsEngineFactory() {
+        ScriptEngineFactory factory = new GroovyScriptEngineFactory()
+        ScriptEngine engine = factory.getScriptEngine()
+        assert engine.getFactory() == factory
+    }
+
 }

Reply via email to