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;
}
}
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);
}
}
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);
}
}
}
}
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;
}
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));
}
Aggregations