Allow import of any java class/package within rhino java script.

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@3222 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
David Caruana
2006-06-23 13:56:19 +00:00
parent e8cbd1f984
commit b9c43d59a6

View File

@@ -36,6 +36,7 @@ import org.alfresco.service.cmr.repository.ScriptService;
import org.alfresco.service.cmr.repository.TemplateImageResolver; import org.alfresco.service.cmr.repository.TemplateImageResolver;
import org.alfresco.service.namespace.QName; import org.alfresco.service.namespace.QName;
import org.mozilla.javascript.Context; import org.mozilla.javascript.Context;
import org.mozilla.javascript.ImporterTopLevel;
import org.mozilla.javascript.Scriptable; import org.mozilla.javascript.Scriptable;
import org.mozilla.javascript.ScriptableObject; import org.mozilla.javascript.ScriptableObject;
@@ -197,8 +198,11 @@ public class RhinoScriptService implements ScriptService
{ {
// The easiest way to embed Rhino is just to create a new scope this way whenever // The easiest way to embed Rhino is just to create a new scope this way whenever
// you need one. However, initStandardObjects is an expensive method to call and it // you need one. However, initStandardObjects is an expensive method to call and it
// allocates a fair amount of memory. // allocates a fair amount of memory. ImporterTopLevel provides a scope allowing
// the import of java classes and packages.
Scriptable topLevelScope = new ImporterTopLevel(cx);
Scriptable scope = cx.initStandardObjects(); Scriptable scope = cx.initStandardObjects();
scope.setParentScope(topLevelScope);
// insert supplied object model into root of the default scope // insert supplied object model into root of the default scope
if (model != null) if (model != null)