Search in sources :

Example 21 with Script

use of groovy.lang.Script in project openremote by openremote.

the class RulesetDeployment method registerRulesGroovy.

public boolean registerRulesGroovy(Ruleset ruleset, Assets assetsFacade, Users usersFacade) {
    try {
        // TODO Implement sandbox
        // new DenyAll().register();
        Script script = groovyShell.parse(ruleset.getRules());
        Binding binding = new Binding();
        RulesBuilder rulesBuilder = new RulesBuilder();
        binding.setVariable("LOG", RulesEngine.RULES_LOG);
        binding.setVariable("rules", rulesBuilder);
        binding.setVariable("assets", assetsFacade);
        binding.setVariable("users", usersFacade);
        script.setBinding(binding);
        script.run();
        for (Rule rule : rulesBuilder.build()) {
            RulesEngine.LOG.info("Registering rule: " + rule.getName());
            rules.register(rule);
        }
        RulesEngine.LOG.info("Evaluated ruleset deployment: " + ruleset);
        return true;
    } catch (Exception e) {
        RulesEngine.LOG.log(Level.SEVERE, "Error evaluating ruleset: " + ruleset, e);
        setError(e);
        return false;
    }
}
Also used : Binding(groovy.lang.Binding) Script(groovy.lang.Script) Rule(org.jeasy.rules.api.Rule)

Example 22 with Script

use of groovy.lang.Script in project groovy-core by groovy.

the class Groovy method parseAndRunScript.

private void parseAndRunScript(GroovyShell shell, String txt, Object mavenPom, String scriptName, File scriptFile, AntBuilder builder) {
    try {
        final Script script;
        if (scriptFile != null) {
            script = shell.parse(scriptFile);
        } else {
            script = shell.parse(txt, scriptName);
        }
        final Project project = getProject();
        script.setProperty("ant", builder);
        script.setProperty("project", project);
        script.setProperty("properties", new AntProjectPropertiesDelegate(project));
        script.setProperty("target", getOwningTarget());
        script.setProperty("task", this);
        script.setProperty("args", cmdline.getCommandline());
        if (mavenPom != null) {
            script.setProperty("pom", mavenPom);
        }
        script.run();
    } catch (final MissingMethodException mme) {
        // not a script, try running through run method but properties will not be available
        if (scriptFile != null) {
            try {
                shell.run(scriptFile, cmdline.getCommandline());
            } catch (IOException e) {
                processError(e);
            }
        } else {
            shell.run(txt, scriptName, cmdline.getCommandline());
        }
    } catch (final CompilationFailedException e) {
        processError(e);
    } catch (IOException e) {
        processError(e);
    }
}
Also used : Script(groovy.lang.Script) Project(org.apache.tools.ant.Project) MissingMethodException(groovy.lang.MissingMethodException) CompilationFailedException(org.codehaus.groovy.control.CompilationFailedException) IOException(java.io.IOException)

Example 23 with Script

use of groovy.lang.Script in project cucumber-jvm by cucumber.

the class GroovyBackend method loadGlue.

@Override
public void loadGlue(Glue glue, List<String> gluePaths) {
    this.glue = glue;
    final Binding context = shell.getContext();
    for (String gluePath : gluePaths) {
        // Load sources
        for (Resource resource : resourceLoader.resources(gluePath, ".groovy")) {
            Script script = parse(resource);
            runIfScript(context, script);
        }
        // Load compiled scripts
        for (Class<? extends Script> glueClass : classFinder.getDescendants(Script.class, packageName(gluePath))) {
            try {
                Script script = glueClass.getConstructor(Binding.class).newInstance(context);
                runIfScript(context, script);
            } catch (Exception e) {
                throw new CucumberException(e);
            }
        }
    }
}
Also used : Binding(groovy.lang.Binding) Script(groovy.lang.Script) Resource(cucumber.runtime.io.Resource) CucumberException(cucumber.runtime.CucumberException) InvokerInvocationException(org.codehaus.groovy.runtime.InvokerInvocationException) CucumberException(cucumber.runtime.CucumberException) IOException(java.io.IOException)

Example 24 with Script

use of groovy.lang.Script in project grails-core by grails.

the class RuntimeSpringConfigUtilities method reloadSpringResourcesConfig.

public static BeanBuilder reloadSpringResourcesConfig(RuntimeSpringConfiguration config, GrailsApplication application, Class<?> groovySpringResourcesClass) throws InstantiationException, IllegalAccessException {
    springGroovyResourcesBeanBuilder = new BeanBuilder(null, config, Thread.currentThread().getContextClassLoader());
    springGroovyResourcesBeanBuilder.setBinding(new Binding(CollectionUtils.newMap("application", application, "grailsApplication", // GRAILS-7550
    application)));
    Script script = (Script) groovySpringResourcesClass.newInstance();
    script.run();
    Object beans = script.getProperty("beans");
    springGroovyResourcesBeanBuilder.beans((Closure<?>) beans);
    return springGroovyResourcesBeanBuilder;
}
Also used : BeanBuilder(grails.spring.BeanBuilder) Binding(groovy.lang.Binding) Script(groovy.lang.Script)

Example 25 with Script

use of groovy.lang.Script in project groovy-core by groovy.

the class InvokerHelperTest method testCreateScriptWithScriptClass.

public void testCreateScriptWithScriptClass() {
    GroovyClassLoader classLoader = new GroovyClassLoader();
    String controlProperty = "text";
    String controlValue = "I am a script";
    String code = controlProperty + " = '" + controlValue + "'";
    GroovyCodeSource codeSource = new GroovyCodeSource(code, "testscript", "/groovy/shell");
    Class scriptClass = classLoader.parseClass(codeSource, false);
    Script script = InvokerHelper.createScript(scriptClass, new Binding(bindingVariables));
    assertEquals(bindingVariables, script.getBinding().getVariables());
    script.run();
    assertEquals(controlValue, script.getProperty(controlProperty));
}
Also used : GroovyClassLoader(groovy.lang.GroovyClassLoader) Binding(groovy.lang.Binding) Script(groovy.lang.Script) GroovyCodeSource(groovy.lang.GroovyCodeSource)

Aggregations

Script (groovy.lang.Script)42 Binding (groovy.lang.Binding)21 IOException (java.io.IOException)12 GroovyShell (groovy.lang.GroovyShell)10 CompilationFailedException (org.codehaus.groovy.control.CompilationFailedException)9 MissingMethodException (groovy.lang.MissingMethodException)6 GroovyRuntimeException (groovy.lang.GroovyRuntimeException)5 PrintWriter (java.io.PrintWriter)5 Closure (groovy.lang.Closure)4 GroovyClassLoader (groovy.lang.GroovyClassLoader)4 MetaClass (groovy.lang.MetaClass)4 MissingPropertyException (groovy.lang.MissingPropertyException)4 File (java.io.File)4 UrlMapping (grails.web.mapping.UrlMapping)3 DelegatingMetaClass (groovy.lang.DelegatingMetaClass)3 Tuple (groovy.lang.Tuple)3 Method (java.lang.reflect.Method)3 List (java.util.List)3 CompiledScript (javax.script.CompiledScript)3 ScriptException (javax.script.ScriptException)3