Introduction
- Présentation de Groovy
- Groovy vs Java
- SDK Groovy
- Compilation Groovy
- Installer Groovy
Classe & POGOs
- Groovy Beans
- POJO vs POGO
- Passer de Java à Groovy
Bases du langages
- Types
- Opérateurs
- Redéfinition des opérateurs
- Chaines de caractères
- String
- GString
- Multiline String/Gstring
- Slashy Strings
- Collections
- Closures
- Définition
- Passer une closure en paramètre d’une méthode
- Assigner une closure à une variable
- Ajouter des paramètres à une closure
- La variable “it”
- Utiliser une méthode d’instance comme une closure
- Manipuler sur les collections/maps avec une closure
- Les propriétés d’une closure
- this, delegate, owner dans une closure
Travailler avec Groovy
- Coercition de type avec Groovy
- == en Groovy
- Naviguer dans des objets sans craindre “null”
- Opérateur Elvis
- Manipuler des expressions régulières
- Opérateur de propagation
- Opérateur “as”
- Les APIs utiles de Groovy
- Intégrer Groovy dans du code Java
Métaprogrammation avec Groovy
- Dynamique vs Statique
- Le MOP (Meta Object Protocol) de Groovy
- EMC (ExpandoMetaClass)
- EMC & Hooks
- Pattern Intercept-Cache-Invoke
Annotations Groovy
- @Singleton, @Delegate, @Immutable, @PackageScope, @InheritConstructors, …
- @Canonical, @TupleConstructor, @EqualsAndHashCode, @ToString
- @TimedInterrupt, @ThreadInterrupt
- @CompileStatic, @TypeChecked
Tests avec Groovy
- GroovyTestCase
- Groovy et JUnit 4
- Tester du code Java en Groovy
- Coercition de Map
- Coercition de Closure
- MockFor, StubFor