Alternative/Ergänzung zu Java • Dynamisch typisiert • Ausdrucksstark • Flexible Syntax • “Programs are written by programmers for programmers” • “Make simple things easy, and difficult things possible”
http://groovy.codehaus.org/Download 3. GROOVY_HOME auf entpacktes Verzeichnis setzen 4. GROOVY_HOME/bin zum Pfad hinzufuegen 5. >groovyConsole(.bat) • Noch einfacher: Windows Installer • Noch einfacher: Groovy Web Console http://groovyconsole.appspot.com/
Groovy-Code • Groovy unterstützt Annotations, Generics, Enums, Varargs, usw. • Java-Klasse ist Groovy-Klasse und umgekehrt • Können sich gegenseitig rufen, voneinander ableiten, zirkuläre Abhängigkeiten haben • Groovy erweitert die Java-Standardbibliothek
name String city int age def sing(song = “let it be”) { ... } } def person = new Person(name:”peter”, city: “linz”, age: 33) person.sing() person.sing(“yellow submarine”)
• Volle Kompatibilität zu Java bleibt erhalten! • Zusätzlich neue APIs, die das Leben erleichtern • XML Parsing • Datenbankzugriff • HTML Generierung • und vieles mehr...
[1,2,3] assert list instanceof ArrayList assert list.firstElement() == 1 • Groovy APIs (z.B. Builders) verwendet oft diesen und andere Metaprogrammierungs-Tricks
Anwendungen um Skriptbarkeit • Entwicklung von Web- und Desktop-Anwendungen (Grails, Gaelyk, Griffon, ...) • Als Buildwerkzeug (Gant, Gradle, ...) • Zum Testen von Groovy und Java Code (easyB, GMock, Spock) • Beispiele: SmecoScript und Spock
Geeignet für alle Arten von Entwickler-Tests • Erleichtert Testen von Groovy und Java Code • Einige Highlights: Sprechende Test-Namen Power Asserts Data-driven Tests Eingebautes Mock-Framework Einfach erweiterbar Plugins fuer Guice, Spring, Unitils, Grails, ...