En cette St Olivier,
j’ai croisé Grails (le Grâal) .
Groovy est à Grails ce que Ruby est à Rails !
Mais qu’est-ce que Groovy au fait ?
Groovy est un langage dynamique et agile pour la « Java Virtual Machine ».
J’ai croisé Groovy lors de mes pérégrinations sur le projet Cocoon où plutot que de faire des scripts XSP archaïques (pour produire du XML), j’ai pu croiser Groovy avec sa force sans égale !
Exemple le plus QQ de la planète : le fameux hello world.
En Java je vous passe le nombre de lignes de code pour une simple chaine de caractères à afficher, en groovy cela donne :
fichier hello.groovy :
println "Hello World"
sur la ligne de commandes :
D:\groovy_tests>groovy hello.groovyHello World
Avec Cocoon mon besoin était de générer des flux XML. Encore une fois avec Java je vous passe la somme de ligne de code pour produire un flux.
En Groovy cela donne :
def xml = new MarkupBuilder(writer)xml.'rec:records'('xmlns:rec': 'http://groovy.codehaus.org') { car(name:'HSV Maloo', make:'Holden', year:2006) { country('Australia') record(type:'speed', ' Truck with speed of 271kph') }}
produira le xml suivant :
<rec:records xmlns:rec='http://groovy.codehaus.org'> <car name='HSV Maloo' make='Holden' year='2006'> <country>Australia</country> <record type='speed'> Truck with speed of 271kph</record> </car></rec:records>
N’est-ce pas simplissime ? :D
Pour Grails donc on se créé une appli via « grails create-app havefnubb », on se configure sa datasource par exemple :
dataSource { pooled = true driverClassName = "com.mysql.jdbc.Driver" username = "hfnu" password = "hfnu"}...// environment specific settingsenvironments { development { dataSource { dbCreate = "create-drop" // one of 'create', 'create-drop','update' url = "jdbc:mysql://localhost:3306/hfnu" } }...
On se créé une classe Domain :
grails create-domain-class Forum
On se créé un petit controller Forum type scaffold :
grails create-controller Forum
j’edite mon controller pour lui mettre la ligne
def scaffold = Forum
je demarre mon appli web
grails run-app
et la voici prete à l’emploi sur l’url http://localhost:8080/havefnubb/forum/list
Amusant non ?