Archives pour janvier, 2010
Jouons !
5/01/10
Non, rangez les Nintendo, je ne vais pas parler de jeu, mais de Play !. Play ! est donc un framework créé par Guillaume Bort qui s’apparente quelque peu à Grails, mais 100% orienté Java. Je laisse le touilleur donner quelques explications supplémentaires sur cet outil.
Etape #1: Installons Play !
Pour installer Play!, rien de plus simple : il suffit de télécharger le ZIP (ici), puis de le décompresser sur son disque. C’est tout ! Pensons à ajouter le répertoire ainsi décompressé dans notre variable d’environnement Windows PATH, histoire de pouvoir taper la commande play en ligne de commande…
Etape #2 : Démarrons !
Allons à la racine de notre répertoire d’installation de Play!, et tapons la commande suivante :
d:\developpement\play-1.0> play new helloworld
La commande nous demande alors quelle est le nom de notre nouvelle application :
d:\developpement\play-1.0>play new helloworld ~ _ _ ~ _ __ | | __ _ _ _| | ~ | '_ \| |/ _' | || |_| ~ | __/|_|\____|\__ (_) ~ |_| |__/ ~ ~ play! 1.0, http://www.playframework.org ~ ~ The new application will be created in d:\developpement\play-1.0\helloworld ~ What is the application name? HelloWorld ~ ~ OK, the application is created. ~ Start it with : play run heloworld ~ Have fun! ~
Notre première application est prête ! Eh oui ! Voyons les choses plus en détails… Regardons le contenu du répertoire ainsi créé :
app/ conf/ lib/ public/ test/
Ces répertoires ont les rôles les suivants :
- app : contient le code de l’application elle-même, à savoir les classes Java ainsi que les pages HTML.
- conf : les fichiers de configuration, en particulier application.conf qui contient les paramètres de notre application (par exemple le port du serveur, la configuration de la connection à la base de données, etc.), le fichier routes, qui définit les liens entre les URL et les pages web. Enfin, ce répertoire contient le fichier messages utilisé pour l’internationalisation du projet.
- lib : ce répertoire contient les librairies Java optionnelles.
- public : place contenant les ressources publiques, à savoir les images, les fichiers Javascript ou CSS.
- test : le répertoire permet de stocker les fichiers de tests, qu’il s’agisse de tests JUnit ou Selenium.
Et ça marche ? Voyons voir… Lançons la commande suivante :
d:\developpement\play-1.0\helloworld> play run
d:\developpement\play-1.0\helloworld>play run ~ _ _ ~ _ __ | | __ _ _ _| | ~ | '_ \| |/ _' | || |_| ~ | __/|_|\____|\__ (_) ~ |_| |__/ ~ ~ play! 1.0, http://www.playframework.org ~ ~ Ctrl+C to stop ~ Listening for transport dt_socket at address: 8000 20:15:17,611 INFO ~ Starting d:\developpement\play-1.0\helloworld 20:15:20,579 WARN ~ You're running Play! in DEV mode 20:15:22,111 INFO ~ Listening for HTTP on port 9000 (Waiting a first request to start) ...
Rendons-nous sur l’adresse http://localhost:9000 (9000 étant le port par défaut du serveur Play !) pour visualiser la page par défaut :
Mais quelle est la magie ? Le fichier conf/routes définit le routage des requêtes au sein de notre application. En particulier :
# Home page GET / Application.index
Cette ligne indique que lorsqu’un utilisateur se connecte à la racine de notre application (ici http://localhost:9000/), sa requête sera prise en charge la Application.index. Ce contrôleur est visible dans app/controlles/Application.java :
package controllers; import play.mvc.*; public class Application extends Controller { public static void index() { render(); } }
La première chose à constater ici c’est que notre contrôleur étend la classe play.mvc.Controller. Cette classe nous propose – entre autres – la méthode render() qui est ici utilisée dans l’action index. Cette action est par ailleurs définie comme une méthode publique et statique. C’est la façon de définir une action dans Play !. Dans cet exemple, cette dernière ne fait qu’afficher le contenu d’un template se trouvant dans app/views/Application/index.html (c’est le template utilisé par défaut, car nous n’en avons pas défini dans notre classe Java) :
#{extends 'main.html' /} #{set title:'Home' /} #{welcome /}
Ce template est divisé en trois parties. Tout d’abord, on y voit que notre template étend le main.html :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>#{get 'title' /}</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <link rel="stylesheet" type="text/css" media="screen" href="@{'/public/stylesheets/main.css'}" /> <link rel="shortcut icon" type="image/png" href="@{'/public/images/favicon.png'}" /> </head> <body> #{doLayout /} </body> </html>
Dans ce fichier, on y voit le tag #{doLayout /} qui marque l’endroit où sera inseré le contenu du fichier Application/index.html.
Ensuite, on constate la façon dont un paramètre du template (le title) est passé à la page parente, via les #{set …/} et #{get …/}.
Enfin, la partie #{welcome /} génère le message d’accueil que nous avons pu voir précédemment.
Etape #3 :Utilisons Eclipse
Pour faciliter le développement de notre application, nous utilisons Eclipse. Pour ce faire, utilisons la commande suivante :
d:\developpement\play-1.0> play eclipsify helloworld
Play ! se charge alors de créer les fichiers nécessaires à Eclipse :
d:\developpement\play-1.0>play eclipsify helloworld ~ _ _ ~ _ __ | | __ _ _ _| | ~ | '_ \| |/ _' | || |_| ~ | __/|_|\____|\__ (_) ~ |_| |__/ ~ ~ play! 1.0, http://www.playframework.org ~ ~ OK, the application is ready for eclipse ~ Use File/Import/General/Existing project to import d:\developpement\play-1.0\helloworld into eclipse ~ ~ Use eclipsify again when you want to update eclipse configuration files. ~ However, it's often better to delete and re-import the project into your workspace since eclipse keeps dirty caches... ~
Les fichiers nécessaires à l’importation du projet dans Eclipse sont désormais créés. Il s’agit du .project, .classpath et .settings/.
Voilà, nous avons notre première petite application Play ! qui tourne. On a vu deux ou trois concepts intéressants, mais il y a encore plein de jolies choses à découvrir sur ce framework (si vous avez suivi le lien du Touilleur que je vous ai donné en début de post, vous en avez déjà vu quelques unes) ! Nous les aborderons dans un prochain post, très bientôt !
Bonus
Voici la liste des options proposées par la commande play :
C:\developpement\play-1.0\>play help ~ _ _ ~ _ __ | | __ _ _ _| | ~ | '_ \| |/ _' | || |_| ~ | __/|_|\____|\__ (_) ~ |_| |__/ ~ ~ play! 1.0, http://www.playframework.org ~ ~ For all commands, if the application is not specified, the current directory is used ~ Use 'play help cmd' to get more help on a specific command ~ ~ Available commands are: ~ ~~~~~~~~~~~~~~~~~~~~~~~ ~ auto-test Automatically run all application tests ~ classpath Display the computed classpath ~ clean Delete temporary files (including the bytecode cache) ~ eclipsify Create all eclipse configuration files ~ help Display help on a specific command ~ id Define the framework ID ~ modules Display the computed modules list ~ netbeansify Create all netbeans configuration files ~ new Create a new application ~ out Follow logs/system.out file ~ pid Show the pid of a running application ~ precompile Precompile all Java sources and templates to speed up application start ~ run Run the application in the current shell ~ restart Restart the running application ~ secret Generate a new secret key ~ status Display the status of the running application ~ start Start the application in background ~ stop Stop the running application ~ test Run the application in test mode in the current shell ~ war Export the application as a standalone WAR archive ~ ~ Also refer to documentation at http://www.playframework.org/documentation ~Start Slide Show with PicLens Lite

Et une année de plus chez developpez.com
2/01/10
Début avril 2008, il y a presque deux ans maintenant, mon premier article sur Hudson paraissait sur le site de developpez.com. Depuis, j’ai écrit 4 autres articles, 2 compte-rendus de conférences, ainsi qu’une critique de livre :
- L’intégration continue avec Hudson
- JetBrains TeamCity 4.0
- Contrôler la qualité de son code source avec Sonar (écrit en 2008 mais mis à jour en 2009)
- Compte-rendu de la conférence CitConf 2009 (écrit en 2009)
- La conférence Valtech Days 2009 (écrit en 2009)
- Comparatif des outils de builds en Java (écrit en 2009)
- Ce qui nous attend avec Maven 3 (écrit en 2009)
- Critique du livre « Apache Maven » de Nicolas de Loof et Arnaud Héritier (écrit en 2009)
Quelques chiffres maintenant, concernant l’année 2009 :
On voit que la fréquentation quotidienne – hors week-end – est d’à peu près 120 – 150 visiteurs. On distingue cependant quatre pics lors du second semestre de l’année :
- Le 14 août, avec 750 visites, correspond à la mise à jour de l’article sur Sonar.
- Le 6 octobre, avec 340 visites, pour le compte-rendu de la conférence CitConf 2009.
- Le 25 novembre, avec 682 visites, atteint grâce à l’article sur les comparatif des outils de builds Java.
- Le 17 décembre avec 743 visites, pour l’article traitant des nouveautés de Maven 3.
Au total, durant cette année 2009, ce sont 35,940 visites qui ont été faites par 20,935 visiteurs sur mon site de developpez.com ! Cela fait un total de 62,322 pages vues.Pas mal non ?
Malgré cela, c’est mon « vieil » article sur Hudson (paru en avril 2008) qui truste la première place, avec 35,77% des pages vues.
Côté visiteurs, c’est évident la France qui héberge la plupart des visites (27,945 visites sur les 35,940), le Maroc arrivant deuxième (1,363 visites), suivie de près par la Belgique (1,105). La Suisse, la Tunisie complète le quinté.
Au niveau des navigateurs, Firefox obtient la médaille d’or, avec presque 3 visiteurs sur 4 (71,56%), suivi d’Internet Explorer (16,32%), puis Chrome (5,93%). La très forte majorité des visiteurs tournent sur Windows (83,86%), Linux étant leur deuxième choix (11,80%). Il arrive également que quelques adeptes de la Pomme visitent mon site (3,89% pour MacOS, 0,24% pour l’iPhone !)…
Voilà une très belle année 2009 pour moi de ce côté-là. L’année 2010 sera-t-elle aussi productive ? Réponse dans 363 jours !
Start Slide Show with PicLens Lite
Maven
2/01/10
Maven a une actualité assez chargée ces derniers temps, avec la sortie toute proche de la troisième génération de l’outil, mais également avec la publication d’un ouvrage sur Apache Maven, écrit par Nicolas de Loof et Arnaud Héritier.
J’ai écrit courant décembre deux articles sur le site developpez.com concernant ces actualités :
- Les nouveautés d’Apache Maven 3
- Critique du livre « Apache Maven » (résumé, version longue).
Bonne lecture, et n’hésitez pas à réagir à ces articles sur le site de developpez.com ou en commentaires ici !
Start Slide Show with PicLens Lite
Bonne année 2010 !
1/01/10
**** 2010 ****
Je vous souhaite à toutes et à tous une très heureuse année 2010 !
Le premier jour de l’année était très geek (01.01.10, forcément), ma première première action importante de l’année – professionnellement parlant – est de faire une migration de mon ancien blog vers WordPress*. Fini b2evolution, qui était certes très sympathique, mais qui manquait un peu de plugins, et qui avait quelques petits défauts (en particulier l’édition de posts contenant du HTML ou du code). Bref, je migre vers LA plateforme blog tendance, WordPress. Du coup, attendez-vous à quelques modifications dans les jours ou semaines qui arrivent…
Encore une fois, bonne année !
* N’ayant rien trouvé de satisfaisant pour faire la migration d’un blog à l’autre, les commentaires et catégories n’ont pas été migrés (enfin, pour les catégories, ça viendra plus tard je pense)