private GroovyShell createShell() { CompilerConfiguration compilerSettings = new CompilerConfiguration(); compilerSettings.setScriptBaseClass(DelegatingScript.class.getName()); return new GroovyShell(getClass().getClassLoader(), new Binding(), compilerSettings); } }
/** * Parses the bean definition groovy script by first exporting the given {@link Binding}. */ public void parse(InputStream script, Binding binding) { if (script==null) throw new IllegalArgumentException("No script is provided"); setBinding(binding); CompilerConfiguration cc = new CompilerConfiguration(); cc.setScriptBaseClass(ClosureScript.class.getName()); GroovyShell shell = new GroovyShell(classLoader,binding,cc); ClosureScript s = (ClosureScript)shell.parse(new InputStreamReader(script)); s.setDelegate(this); s.run(); }
public void testClassLoader() { Binding context = new Binding(); CompilerConfiguration config = new CompilerConfiguration(); config.setScriptBaseClass(DerivedScript.class.getName()); GroovyShell shell = new GroovyShell(context, config); String script = "evaluate '''\n"+ "class XXXX{}\n"+ "assert evaluate('XXXX') == XXXX\n"+ "'''"; shell.evaluate(script); }
/** * Test for GROOVY-6615 * @throws Exception */ public void testScriptWithCustomBodyMethod() throws Exception { Binding context = new Binding(); CompilerConfiguration config = new CompilerConfiguration(); config.setScriptBaseClass(BaseScriptCustomBodyMethod.class.getName()); GroovyShell shell = new GroovyShell(context, config); Object result = shell.evaluate("'I like ' + cheese"); assertEquals("I like Cheddar", result); }
configuration.setScriptBaseClass(scriptBaseClass);
if (text!=null) setScriptBaseClass(text);
main.conf.setScriptBaseClass(scriptBaseClass);
private void configureCompiler() { if (scriptBaseClass!=null) { configuration.setScriptBaseClass(scriptBaseClass); } if (indy) { configuration.getOptimizationOptions().put("indy", Boolean.TRUE); configuration.getOptimizationOptions().put("int", Boolean.FALSE); } if (configscript!=null) { Binding binding = new Binding(); binding.setVariable("configuration", configuration); CompilerConfiguration configuratorConfig = new CompilerConfiguration(); ImportCustomizer customizer = new ImportCustomizer(); customizer.addStaticStars("org.codehaus.groovy.control.customizers.builder.CompilerCustomizationBuilder"); configuratorConfig.addCompilationCustomizers(customizer); GroovyShell shell = new GroovyShell(binding, configuratorConfig); File confSrc = new File(configscript); try { shell.evaluate(confSrc); } catch (IOException e) { throw new BuildException("Unable to configure compiler using configuration file: "+confSrc, e); } } }
public void testScriptWithDerivedBaseClass() throws Exception { Binding context = new Binding(); CompilerConfiguration config = new CompilerConfiguration(); config.setScriptBaseClass(DerivedScript.class.getName()); GroovyShell shell = new GroovyShell(context, config); Object result = shell.evaluate("x = 'abc'; doSomething(cheese)"); assertEquals("I like Cheddar", result); assertEquals("abc", context.getVariable("x")); }
@Override public void setup() { CompilerConfiguration config = new CompilerConfiguration(); config.setScriptBaseClass("org.codehaus.groovy.transform.stc.GroovyTypeCheckingExtensionSupport.TypeCheckingDSL"); ImportCustomizer ic = new ImportCustomizer(); ic.addStarImports("org.codehaus.groovy.ast.expr");
setParameters(getSystemPropertySafe("groovy.parameters") != null); setTolerance(10); setScriptBaseClass(null); setRecompileGroovySource(false); setMinimumRecompilationInterval(100);
GroovyClassFactory(ClassLoader baseLoader, Class<T> baseClass, Class<? extends Script> baseScriptClass) { CompilerConfiguration config = new CompilerConfiguration(); config.setRecompileGroovySource(true); config.setScriptBaseClass(baseScriptClass.getName()); // this.baseLoader = baseLoader; this.baseClass = baseClass; this.config = config; }
setParameters(configuration.getParameters()); setTolerance(configuration.getTolerance()); setScriptBaseClass(configuration.getScriptBaseClass()); setRecompileGroovySource(configuration.getRecompileGroovySource()); setMinimumRecompilationInterval(configuration.getMinimumRecompilationInterval());
@Override protected void setUp() throws Exception { CompilerConfiguration config = new CompilerConfiguration(); config.setScriptBaseClass(GroovyScriptCommand.class.getName()); // loader = new GroovyClassLoader(Thread.currentThread().getContextClassLoader(), config); shell = new GroovyShell(loader); }
/** * Compile an item selector from a Groovy expression. Two useful objects are available to this expression: * * allItems * : A set of all item IDs in the system. * * user * : The current user, as a {@link TestUser}. * * The expression is compiled as a script with a base class of {@link ItemSelectScript}; * see that for more details. * * @param expr A Groovy expression. Can be `null`, in which case {@link #nullSelector()} is returned. */ public static ItemSelector compileSelector(String expr) { if (expr == null) { return nullSelector(); } CompilerConfiguration config = new CompilerConfiguration(); config.setScriptBaseClass(ItemSelectScript.class.getName()); GroovyShell shell = new GroovyShell(config); Script script = shell.parse(expr); return new GroovyItemSelector((ItemSelectScript) script, expr); }
public void testExplicitReturnFromCRaSHScript() throws Exception { CompilerConfiguration config = new CompilerConfiguration(); config.setScriptBaseClass(GroovyScriptCommand.class.getName()); GroovyShell shell = new GroovyShell(config); Script script = shell.parse("return 'something'"); Field f = script.getClass().getDeclaredField("org_crsh_has_explicit_return"); assertTrue(Modifier.isPublic(f.getModifiers())); assertTrue(Modifier.isStatic(f.getModifiers())); }
/** * Construct a new configuration loader. * @param loader The class loader to use. */ public ConfigurationLoader(ClassLoader loader) { classLoader = loader != null ? loader : ClassLoaders.inferDefault(ConfigurationLoader.class); binding = new Binding(); CompilerConfiguration config = new CompilerConfiguration(); config.setScriptBaseClass(LenskitConfigScript.class.getName()); ImportCustomizer imports = new ImportCustomizer(); imports.addStarImports("org.lenskit.api"); imports.addStarImports("org.lenskit.basic"); config.addCompilationCustomizers(imports); shell = new GroovyShell(loader, binding, config); directory = ClassDirectory.forClassLoader(classLoader); }
private void assertHasNoTag(Class<? extends Script> scriptBaseClass, String scriptText) { CompilerConfiguration config = new CompilerConfiguration(); config.setScriptBaseClass(scriptBaseClass != null ? scriptBaseClass.getName() : null); GroovyShell shell = new GroovyShell(config); Script script = shell.parse(scriptText); try { script.getClass().getDeclaredField("org_crsh_has_explicit_return"); fail(); } catch (NoSuchFieldException e) { // Ok } } }
init.setTolerance(720); init.setMinimumRecompilationInterval(234); init.setScriptBaseClass("blarg.foo.WhatSit"); init.setSourceEncoding("LEAD-123"); init.setTargetBytecode(CompilerConfiguration.POST_JDK5);
init.setTolerance(55); init.setMinimumRecompilationInterval(975); init.setScriptBaseClass(""); init.setSourceEncoding("Gutenberg"); init.setTargetBytecode(CompilerConfiguration.PRE_JDK5);