Hi,
Good morning.
I thought I will use this mail to share some information about the technologies groovy itself is made up of/depends on. There are many more than I am listing down below, but below are the some of the bigger tools/libraries used inside core groovy.
May be some of this info could be useful to you outside Groovy context - who knows. Please feel free to extend this list, or share alternative technologies, anything else interesting you want to share :-)
I find them all interesting, so here they are in no particular order:
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1) Jansi - It is a java library that used to give groovy shell command line a consistent look and feel and behavior across operating systems. It handles the ANSI escape sequences to control the output on console terminals. -
http://jansi.fusesource.org/
2) Commons CLI - Apache Commons library to process command line options. Groovy makes its usage nicer and easier by providing a CliBuilder on top of it -
http://commons.apache.org/cli/
3) Apache Ivy - Dependency manager framework behind the groovy feature @Grab (Grape) that allows you to mention in a script what libraries it requires and then transitively fetches them from a central repo like maven repo -
http://ant.apache.org/ivy/features.html
4) Retrotranslator - It makes your java 5+ application compatible with JDK 1.4 (and lower) - through bytecode manipulations. Until Groovy 1.6, groovy runs on JDK 1.6/1.5/1.4 even though its own Java code is written in JDK 1.5. For groovy on JDK 1.4 environments, groovy code gets retro-translated using this library. -
http://retrotranslator.sourceforge.net/
5) bnd - It is used to turn groovy-*.jar and groovy-all-*.jar into OSGi compliant bundles -
http://www.aqute.biz/Code/Bnd6) JarJar - It embeds all the basic libraries needed by groovy at runtime into its fat groovy-all version so that this fat version needs no external libraries at runtime and avoid version conflict -
http://code.google.com/p/jarjar/
7) Maven - If you are setting up development environment for groovy, there are a lot of libraries it depends on - for compile time, runtime, etc. Maven is used to manage these dependencies. -
http://maven.apache.org/
8) Ant / Gradle - The build system of groovy is currently in transition from Ant to Gradle - soon, it should be all Gradle based, which itself is written in Groovy -
http://www.gradle.org/
9) ANTLR - Groovy grammar is defined using ANTLR syntax. Groovy source parser is generated by ANTLR -
http://www.antlr.org/
10) ASM - Its the bytecode manipulation library that groovy uses to generate JVM compliant classes. -
http://asm.ow2.org/ ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--
rgds,
Roshan
http://roshandawrani.wordpress.com/