|
||||||||||
|
||||||||||
GroovyUsing Groovy
Language GuideGroovy FeaturesModulesExamplesUseful LinksIDE SupportSupportCommunityDevelopersTools we use
Feeds
|
Groovy has been designed to be very lightweight and easy to embed into any Java application system. You can use BSF to embed any scripting language into your Java code; however Groovy offers a lighter weight and closer integration. There are two main approaches Evaluate scripts or expressions using the shellYou can evaluate any expression or script in Groovy using the GroovyShell. The GroovyShell allows you to pass in and out variables via the Binding object. // call groovy expressions from Java code Binding binding = new Binding(); binding.setVariable("foo", new Integer(2)); GroovyShell shell = new GroovyShell(binding); Object value = shell.evaluate("println 'Hello World!'; x = 123; return foo * 10"); assert value.equals(new Integer(20)); assert binding.getVariable("x").equals(new Integer(123)) Dynamically loading and running Groovy code inside JavaYou can use the GroovyClassLoader to load classes dynamically into a Java program and execute them (or use them) directly. The following Java code shows an example… ClassLoader parent = getClass().getClassLoader(); GroovyClassLoader loader = new GroovyClassLoader(parent); Class groovyClass = loader.parseClass(new File("src/test/groovy/script/HelloWorld.groovy")); // lets call some method on an instance GroovyObject groovyObject = (GroovyObject) groovyClass.newInstance(); Object[] args = {}; groovyObject.invokeMethod("run", args); If you have an interface you wish to use which you implement in the Groovy script you can use it as follows
GroovyClassLoader gcl = new GroovyClassLoader(); Class clazz = gcl.parseClass(myStringwithGroovyClassSource "SomeName.groovy"); Object aScript = clazz.newInstance(); MyInterface myObject = (MyInterface) aScript; myObject.interfaceMethod(); ... This works fine if the Groovy class implements the inferface MyInterface. myObject can from then on be used as every other Java object implementing MyInterface. Runtime dependenciesAs well as Java 1.4 and the Groovy jar we also depend at runtime on the ASM library constituted of two jars (asm-1.4.1.jar and asm-util-1.4.1.jar). That's it. So just add these 3 jars to your classpath and away you go, you can happily embed Groovy into your application. Next |
|||||||||
|