groovy programadores java - codemotion 2012
DESCRIPTION
Slides de la presentación realizada en el Codemotion Madrid, el 24 de Marzo de 2012TRANSCRIPT
![Page 1: Groovy programadores Java - Codemotion 2012](https://reader033.vdocuments.site/reader033/viewer/2022052311/556a5b42d8b42a7a138b4ef9/html5/thumbnails/1.jpg)
Groovy para programadores Java
Alberto Vilches
http://albertovilches.com Twitter: @albertovilches
![Page 2: Groovy programadores Java - Codemotion 2012](https://reader033.vdocuments.site/reader033/viewer/2022052311/556a5b42d8b42a7a138b4ef9/html5/thumbnails/2.jpg)
Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
Sobre mi
Responsable desarrollo Java/Grails en Fundador del evento Evangelizador Groovy y Grails http://albertovilches.com Twitter: @albertovilches
![Page 3: Groovy programadores Java - Codemotion 2012](https://reader033.vdocuments.site/reader033/viewer/2022052311/556a5b42d8b42a7a138b4ef9/html5/thumbnails/3.jpg)
Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
agenda
Antes de empezar Qué es Groovy Groovy Console Testing con Groovy Compilandor Config Slurper Algunas cosas más
![Page 4: Groovy programadores Java - Codemotion 2012](https://reader033.vdocuments.site/reader033/viewer/2022052311/556a5b42d8b42a7a138b4ef9/html5/thumbnails/4.jpg)
Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
Antes de empezar
GROOVY != GRAILS
![Page 5: Groovy programadores Java - Codemotion 2012](https://reader033.vdocuments.site/reader033/viewer/2022052311/556a5b42d8b42a7a138b4ef9/html5/thumbnails/5.jpg)
Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
¿Qué diferencia hay?
Groovy -> Lenguaje
Grails -> Plataforma desarrollo Web
![Page 6: Groovy programadores Java - Codemotion 2012](https://reader033.vdocuments.site/reader033/viewer/2022052311/556a5b42d8b42a7a138b4ef9/html5/thumbnails/6.jpg)
Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
¿Qué diferencia hay?
Groovy -> Lenguaje Compilador y GDK
groovy-1.8.x.jar
Grails -> Plataforma desarrollo Web
Groovy + Spring + Hibernate + Sitemesh + DBCP + Apache commons + Log4J + Junit + Ant +
![Page 7: Groovy programadores Java - Codemotion 2012](https://reader033.vdocuments.site/reader033/viewer/2022052311/556a5b42d8b42a7a138b4ef9/html5/thumbnails/7.jpg)
Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
Antes de empezar
![Page 8: Groovy programadores Java - Codemotion 2012](https://reader033.vdocuments.site/reader033/viewer/2022052311/556a5b42d8b42a7a138b4ef9/html5/thumbnails/8.jpg)
Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
Antes de empezar
JPA
Java app
![Page 9: Groovy programadores Java - Codemotion 2012](https://reader033.vdocuments.site/reader033/viewer/2022052311/556a5b42d8b42a7a138b4ef9/html5/thumbnails/9.jpg)
Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
Antes de empezar
JPA
Java app
![Page 10: Groovy programadores Java - Codemotion 2012](https://reader033.vdocuments.site/reader033/viewer/2022052311/556a5b42d8b42a7a138b4ef9/html5/thumbnails/10.jpg)
Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
Antes de empezar
¡No necesito Grails para usar Groovy desde mi aplicación
Java!
![Page 11: Groovy programadores Java - Codemotion 2012](https://reader033.vdocuments.site/reader033/viewer/2022052311/556a5b42d8b42a7a138b4ef9/html5/thumbnails/11.jpg)
Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
¿Qué es Groovy?
Groovy es Java. Dinámico Inspirado en Ruby, Python y Smalltalk OOP puro Closures, Gstrings, Builders, DSL
![Page 12: Groovy programadores Java - Codemotion 2012](https://reader033.vdocuments.site/reader033/viewer/2022052311/556a5b42d8b42a7a138b4ef9/html5/thumbnails/12.jpg)
Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
¿Qué es Groovy?
Groovy es Java. Dinámico Inspirado en Ruby, Python y Smalltalk OOP puro Closures, Gstrings, Builders, DSL No compile type-checking Ligeramente más lento que Java
![Page 13: Groovy programadores Java - Codemotion 2012](https://reader033.vdocuments.site/reader033/viewer/2022052311/556a5b42d8b42a7a138b4ef9/html5/thumbnails/13.jpg)
Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
Lenguaje groovy
Punto y coma opcionales Clases y métodos public por defecto
![Page 14: Groovy programadores Java - Codemotion 2012](https://reader033.vdocuments.site/reader033/viewer/2022052311/556a5b42d8b42a7a138b4ef9/html5/thumbnails/14.jpg)
Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
Lenguaje groovy
Punto y coma opcionales Clases y métodos public por defecto Getters y setters automáticos Tipado opcional: def
![Page 15: Groovy programadores Java - Codemotion 2012](https://reader033.vdocuments.site/reader033/viewer/2022052311/556a5b42d8b42a7a138b4ef9/html5/thumbnails/15.jpg)
Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
Lenguaje groovy
Punto y coma opcionales Clases y métodos public por defecto Getters y setters automáticos Tipado opcional: def Interpolación de cadenas: “hola $foo” Sintaxis nativa para colecciones: [] y [:]
list << value Sobrecarga de operadores
if (saludo == “hola”)
![Page 16: Groovy programadores Java - Codemotion 2012](https://reader033.vdocuments.site/reader033/viewer/2022052311/556a5b42d8b42a7a138b4ef9/html5/thumbnails/16.jpg)
Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
Sintaxis nativa Colecciones
![Page 17: Groovy programadores Java - Codemotion 2012](https://reader033.vdocuments.site/reader033/viewer/2022052311/556a5b42d8b42a7a138b4ef9/html5/thumbnails/17.jpg)
Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
gdk
![Page 18: Groovy programadores Java - Codemotion 2012](https://reader033.vdocuments.site/reader033/viewer/2022052311/556a5b42d8b42a7a138b4ef9/html5/thumbnails/18.jpg)
Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
gdk
![Page 19: Groovy programadores Java - Codemotion 2012](https://reader033.vdocuments.site/reader033/viewer/2022052311/556a5b42d8b42a7a138b4ef9/html5/thumbnails/19.jpg)
Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
xml
a
![Page 20: Groovy programadores Java - Codemotion 2012](https://reader033.vdocuments.site/reader033/viewer/2022052311/556a5b42d8b42a7a138b4ef9/html5/thumbnails/20.jpg)
Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
Groovy Console
![Page 21: Groovy programadores Java - Codemotion 2012](https://reader033.vdocuments.site/reader033/viewer/2022052311/556a5b42d8b42a7a138b4ef9/html5/thumbnails/21.jpg)
Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
Groovy console
http://groovyconsole.appspot.com groovyConsole App
![Page 22: Groovy programadores Java - Codemotion 2012](https://reader033.vdocuments.site/reader033/viewer/2022052311/556a5b42d8b42a7a138b4ef9/html5/thumbnails/22.jpg)
Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
Testing
![Page 23: Groovy programadores Java - Codemotion 2012](https://reader033.vdocuments.site/reader033/viewer/2022052311/556a5b42d8b42a7a138b4ef9/html5/thumbnails/23.jpg)
Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
Testing con groovy
Power Asserts GroovyTestCase Mocking
Closure as OnlyOneMethodInterface Map as Interface Expando MOP mockFor / stubFor
![Page 24: Groovy programadores Java - Codemotion 2012](https://reader033.vdocuments.site/reader033/viewer/2022052311/556a5b42d8b42a7a138b4ef9/html5/thumbnails/24.jpg)
Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
GROOVY power asserts
![Page 25: Groovy programadores Java - Codemotion 2012](https://reader033.vdocuments.site/reader033/viewer/2022052311/556a5b42d8b42a7a138b4ef9/html5/thumbnails/25.jpg)
Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
GROOVY power asserts
![Page 26: Groovy programadores Java - Codemotion 2012](https://reader033.vdocuments.site/reader033/viewer/2022052311/556a5b42d8b42a7a138b4ef9/html5/thumbnails/26.jpg)
Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
GROOVY power asserts
![Page 27: Groovy programadores Java - Codemotion 2012](https://reader033.vdocuments.site/reader033/viewer/2022052311/556a5b42d8b42a7a138b4ef9/html5/thumbnails/27.jpg)
Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
Groovy test case
Añade nuevos assert* Y algunos métodos como
shouldFail o notImplementedYet
Nombres de métodos largos
![Page 28: Groovy programadores Java - Codemotion 2012](https://reader033.vdocuments.site/reader033/viewer/2022052311/556a5b42d8b42a7a138b4ef9/html5/thumbnails/28.jpg)
Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
Groovy test case
Añade nuevos assert* Y algunos métodos como
shouldFail o notImplementedYet
Nombres de métodos largos
![Page 29: Groovy programadores Java - Codemotion 2012](https://reader033.vdocuments.site/reader033/viewer/2022052311/556a5b42d8b42a7a138b4ef9/html5/thumbnails/29.jpg)
Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
Mocking con groovy
Closure as OnlyMethodInterface
![Page 30: Groovy programadores Java - Codemotion 2012](https://reader033.vdocuments.site/reader033/viewer/2022052311/556a5b42d8b42a7a138b4ef9/html5/thumbnails/30.jpg)
Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
Mocking con groovy
Map as Interface
![Page 31: Groovy programadores Java - Codemotion 2012](https://reader033.vdocuments.site/reader033/viewer/2022052311/556a5b42d8b42a7a138b4ef9/html5/thumbnails/31.jpg)
Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
Mocking con groovy
MOP: Meta Object Protocol
![Page 32: Groovy programadores Java - Codemotion 2012](https://reader033.vdocuments.site/reader033/viewer/2022052311/556a5b42d8b42a7a138b4ef9/html5/thumbnails/32.jpg)
Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
Mocking con groovy
Expando
![Page 33: Groovy programadores Java - Codemotion 2012](https://reader033.vdocuments.site/reader033/viewer/2022052311/556a5b42d8b42a7a138b4ef9/html5/thumbnails/33.jpg)
Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
Mocking con groovy
a
![Page 34: Groovy programadores Java - Codemotion 2012](https://reader033.vdocuments.site/reader033/viewer/2022052311/556a5b42d8b42a7a138b4ef9/html5/thumbnails/34.jpg)
Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
Mocking con groovy
a
![Page 35: Groovy programadores Java - Codemotion 2012](https://reader033.vdocuments.site/reader033/viewer/2022052311/556a5b42d8b42a7a138b4ef9/html5/thumbnails/35.jpg)
Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
Mocking con groovy
a
![Page 36: Groovy programadores Java - Codemotion 2012](https://reader033.vdocuments.site/reader033/viewer/2022052311/556a5b42d8b42a7a138b4ef9/html5/thumbnails/36.jpg)
Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
testing
¿Qué necesito para usar todo esto?
groovy-1.8.jar en tu CLASSPATH
Tus tests deben ser clases Groovy
Heredar de GroovyTestCase (opcional)
![Page 37: Groovy programadores Java - Codemotion 2012](https://reader033.vdocuments.site/reader033/viewer/2022052311/556a5b42d8b42a7a138b4ef9/html5/thumbnails/37.jpg)
Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
Testing: spock
http://code.google.com/p/spock/
![Page 38: Groovy programadores Java - Codemotion 2012](https://reader033.vdocuments.site/reader033/viewer/2022052311/556a5b42d8b42a7a138b4ef9/html5/thumbnails/38.jpg)
Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
Compilador
![Page 39: Groovy programadores Java - Codemotion 2012](https://reader033.vdocuments.site/reader033/viewer/2022052311/556a5b42d8b42a7a138b4ef9/html5/thumbnails/39.jpg)
Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
compilador
Leer
Compilar
Cargar
![Page 40: Groovy programadores Java - Codemotion 2012](https://reader033.vdocuments.site/reader033/viewer/2022052311/556a5b42d8b42a7a138b4ef9/html5/thumbnails/40.jpg)
Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
compilador
![Page 41: Groovy programadores Java - Codemotion 2012](https://reader033.vdocuments.site/reader033/viewer/2022052311/556a5b42d8b42a7a138b4ef9/html5/thumbnails/41.jpg)
Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
Compilador: leer
![Page 42: Groovy programadores Java - Codemotion 2012](https://reader033.vdocuments.site/reader033/viewer/2022052311/556a5b42d8b42a7a138b4ef9/html5/thumbnails/42.jpg)
Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
Compilador: compilar
![Page 43: Groovy programadores Java - Codemotion 2012](https://reader033.vdocuments.site/reader033/viewer/2022052311/556a5b42d8b42a7a138b4ef9/html5/thumbnails/43.jpg)
Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
Compilador: cargar
![Page 44: Groovy programadores Java - Codemotion 2012](https://reader033.vdocuments.site/reader033/viewer/2022052311/556a5b42d8b42a7a138b4ef9/html5/thumbnails/44.jpg)
Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
Compilador: cargar
![Page 45: Groovy programadores Java - Codemotion 2012](https://reader033.vdocuments.site/reader033/viewer/2022052311/556a5b42d8b42a7a138b4ef9/html5/thumbnails/45.jpg)
Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
Compilador groovy
GroovyShell Script Eval.me()
![Page 46: Groovy programadores Java - Codemotion 2012](https://reader033.vdocuments.site/reader033/viewer/2022052311/556a5b42d8b42a7a138b4ef9/html5/thumbnails/46.jpg)
Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
Compilador: leer
![Page 47: Groovy programadores Java - Codemotion 2012](https://reader033.vdocuments.site/reader033/viewer/2022052311/556a5b42d8b42a7a138b4ef9/html5/thumbnails/47.jpg)
Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
Compilador: leer
![Page 48: Groovy programadores Java - Codemotion 2012](https://reader033.vdocuments.site/reader033/viewer/2022052311/556a5b42d8b42a7a138b4ef9/html5/thumbnails/48.jpg)
Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
Compilador: leer
![Page 49: Groovy programadores Java - Codemotion 2012](https://reader033.vdocuments.site/reader033/viewer/2022052311/556a5b42d8b42a7a138b4ef9/html5/thumbnails/49.jpg)
Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
compilador
¡Leer + compilar + cargar + ejecutar!
![Page 50: Groovy programadores Java - Codemotion 2012](https://reader033.vdocuments.site/reader033/viewer/2022052311/556a5b42d8b42a7a138b4ef9/html5/thumbnails/50.jpg)
Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
compilador
¡Leer + compilar + cargar + ejecutar!
![Page 51: Groovy programadores Java - Codemotion 2012](https://reader033.vdocuments.site/reader033/viewer/2022052311/556a5b42d8b42a7a138b4ef9/html5/thumbnails/51.jpg)
Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
compilador ¡Leer + compilar + cargar + ejecutar!
SALIDA
![Page 52: Groovy programadores Java - Codemotion 2012](https://reader033.vdocuments.site/reader033/viewer/2022052311/556a5b42d8b42a7a138b4ef9/html5/thumbnails/52.jpg)
Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
compilador ¡Leer + compilar + cargar + ejecutar!
baseImponible IRPF IVA codigo
String
ENTRADA
SALIDA
![Page 53: Groovy programadores Java - Codemotion 2012](https://reader033.vdocuments.site/reader033/viewer/2022052311/556a5b42d8b42a7a138b4ef9/html5/thumbnails/53.jpg)
Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
compilador ¡Leer + compilar + cargar + ejecutar!
baseImponible IRPF IVA codigo
String
ENTRADA
SALIDA
![Page 54: Groovy programadores Java - Codemotion 2012](https://reader033.vdocuments.site/reader033/viewer/2022052311/556a5b42d8b42a7a138b4ef9/html5/thumbnails/54.jpg)
Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
compilador ¡Leer + compilar + cargar + ejecutar!
baseImponible IRPF IVA codigo
String
ENTRADA
SALIDA
![Page 55: Groovy programadores Java - Codemotion 2012](https://reader033.vdocuments.site/reader033/viewer/2022052311/556a5b42d8b42a7a138b4ef9/html5/thumbnails/55.jpg)
Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
compilador
Groovy Templates
ENTRADA
SALIDA
![Page 56: Groovy programadores Java - Codemotion 2012](https://reader033.vdocuments.site/reader033/viewer/2022052311/556a5b42d8b42a7a138b4ef9/html5/thumbnails/56.jpg)
Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
Groovy templates
![Page 57: Groovy programadores Java - Codemotion 2012](https://reader033.vdocuments.site/reader033/viewer/2022052311/556a5b42d8b42a7a138b4ef9/html5/thumbnails/57.jpg)
Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
Groovy templates
![Page 58: Groovy programadores Java - Codemotion 2012](https://reader033.vdocuments.site/reader033/viewer/2022052311/556a5b42d8b42a7a138b4ef9/html5/thumbnails/58.jpg)
Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
Groovy templates
![Page 59: Groovy programadores Java - Codemotion 2012](https://reader033.vdocuments.site/reader033/viewer/2022052311/556a5b42d8b42a7a138b4ef9/html5/thumbnails/59.jpg)
Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
Resumen
Scripts Pueden incluir definiciones de clases. Pueden recibir un Binding con variables. Puede retornar un objeto:
String, Collection, Integer, etc. La instancia de una clase que se define en el propio Script. Un objeto class de este misma clase con el que luego trabajar.
Templates Pueden recibir un Map con variables. Siempre devuelve un String.
![Page 60: Groovy programadores Java - Codemotion 2012](https://reader033.vdocuments.site/reader033/viewer/2022052311/556a5b42d8b42a7a138b4ef9/html5/thumbnails/60.jpg)
Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
Config Slurper
![Page 61: Groovy programadores Java - Codemotion 2012](https://reader033.vdocuments.site/reader033/viewer/2022052311/556a5b42d8b42a7a138b4ef9/html5/thumbnails/61.jpg)
Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
Config slurper
Alternativa a los ficheros Properties No texto plano -> ¡código groovy! Valores nativos, no solo Strings Anidado opcional
![Page 62: Groovy programadores Java - Codemotion 2012](https://reader033.vdocuments.site/reader033/viewer/2022052311/556a5b42d8b42a7a138b4ef9/html5/thumbnails/62.jpg)
Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
Config slurper
![Page 63: Groovy programadores Java - Codemotion 2012](https://reader033.vdocuments.site/reader033/viewer/2022052311/556a5b42d8b42a7a138b4ef9/html5/thumbnails/63.jpg)
Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
Config slurper
![Page 64: Groovy programadores Java - Codemotion 2012](https://reader033.vdocuments.site/reader033/viewer/2022052311/556a5b42d8b42a7a138b4ef9/html5/thumbnails/64.jpg)
Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
Config slurper
![Page 65: Groovy programadores Java - Codemotion 2012](https://reader033.vdocuments.site/reader033/viewer/2022052311/556a5b42d8b42a7a138b4ef9/html5/thumbnails/65.jpg)
Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
Config slurper
Agrupación por entornos
![Page 66: Groovy programadores Java - Codemotion 2012](https://reader033.vdocuments.site/reader033/viewer/2022052311/556a5b42d8b42a7a138b4ef9/html5/thumbnails/66.jpg)
Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
Config slurper
Agrupación por entornos server.port = 8090 sobrescribe el valor 80, solo si
el entorno es development
![Page 67: Groovy programadores Java - Codemotion 2012](https://reader033.vdocuments.site/reader033/viewer/2022052311/556a5b42d8b42a7a138b4ef9/html5/thumbnails/67.jpg)
Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
Config slurper
Como leer un fichero de configuración desde Java:
![Page 68: Groovy programadores Java - Codemotion 2012](https://reader033.vdocuments.site/reader033/viewer/2022052311/556a5b42d8b42a7a138b4ef9/html5/thumbnails/68.jpg)
Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
SCRIPTS
![Page 69: Groovy programadores Java - Codemotion 2012](https://reader033.vdocuments.site/reader033/viewer/2022052311/556a5b42d8b42a7a138b4ef9/html5/thumbnails/69.jpg)
Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
Scripts
#!/usr/bin/env groovy
![Page 70: Groovy programadores Java - Codemotion 2012](https://reader033.vdocuments.site/reader033/viewer/2022052311/556a5b42d8b42a7a138b4ef9/html5/thumbnails/70.jpg)
Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
Scripts
#!/usr/bin/env groovy
![Page 71: Groovy programadores Java - Codemotion 2012](https://reader033.vdocuments.site/reader033/viewer/2022052311/556a5b42d8b42a7a138b4ef9/html5/thumbnails/71.jpg)
Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
SCRIPTS + SQL
![Page 72: Groovy programadores Java - Codemotion 2012](https://reader033.vdocuments.site/reader033/viewer/2022052311/556a5b42d8b42a7a138b4ef9/html5/thumbnails/72.jpg)
Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
Scripts + sql
a
![Page 73: Groovy programadores Java - Codemotion 2012](https://reader033.vdocuments.site/reader033/viewer/2022052311/556a5b42d8b42a7a138b4ef9/html5/thumbnails/73.jpg)
Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
Scripts + sql
a
![Page 74: Groovy programadores Java - Codemotion 2012](https://reader033.vdocuments.site/reader033/viewer/2022052311/556a5b42d8b42a7a138b4ef9/html5/thumbnails/74.jpg)
Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
Scripts + sql
a
![Page 75: Groovy programadores Java - Codemotion 2012](https://reader033.vdocuments.site/reader033/viewer/2022052311/556a5b42d8b42a7a138b4ef9/html5/thumbnails/75.jpg)
Alberto Vilches @albertovilches – Grupo de usuarios de Groovy de Madrid
¡GRACIAS!
¿Preguntas?