SeamFramework.orgCommunity Documentation

Chapitre 11. L'intégration avec Groovy

11.1. Introduction à Groovy
11.2. L'écriture d'applications Seam en Groovy
11.2.1. Ecriture de composants en Groovy
11.2.2. seam-gen
11.3. Le déploiement
11.3.1. Le déploiement de code Groovy
11.3.2. Le déploiement de fichier .groovy natif au moment du déploiement
11.3.3. seam-gen

Un des aspects de JBoss Seam est dans sa capacité RAD (Rapid Application Development, NdT Développement d'Application Rapide). Sans synonimie avec RAD, l'outil intéréssant dans ce cas est dans les langages dynamiques. Jusqu'à présent, choisir un langage dynamique était un choix qui été requis par une plateforme de développement complètement différente (une plateforme de développement avec un groupe d'APIs et un runtime si génial que vous ne devriez plus vouloir utiliser vos bonnes vieille APIs Java [sic] après, ce qui est une chance car vous ne devriez plus être forcé d'utiliser ces APIs propriétaire maintenant). Les langages dynamiques sont construis au dessus de la Machine Virtuelle Java et Groovy en particulier brise cette approche en silos.

JBoss Seam unifie maintenant le monde des langages dynamiques avec le monde Java EE en intégrant sans couture les deux langages statique et dynamique. JBoss Seam permet au développer d'application d'utiliser le meilleur outil pour la tâche, sans basculer de contexte. Ecrire les composants dynamiques de Seam est exactement comme écrire des composants classiques de Seam. Vous utilisez les même annotations, les même APIs, les mêmes tout.

Groovy est un langage dynamique agile basé sur le langage Java avec des fonctionnalité additionnelles inspirée par Python, Ruby et Smalltalk. La force de Groovy est dans deux points:

A FAIRE: ecrire un rapide apperçu de l'ajout de syntaxe Groovy

Il n'y a pas grand chose à dire à propos de cela. Si un objet Groovy est un objet Java, vous pouvez virtuellement écrire tout composant Seam, ou toute classe pour ce qui est prévu, en Groovy et la déployer. Vous pouvez aussi mélanger les classes Groovy et Java dans la même application.

Comme vous devriez avoir noté maintenant, Seam utilise lourdement les annotations. Soyez sûr d'utiliser Groovy 1.1 ou supérieur pour le support des annotations. Voici un exemple de code en groovy utilisé dans une application Seam.

Le déploiement des classes Groovy est assez proche du déploiement des classes Java (sans surprise, pas besoin d'écrire ni de se conformer avec la spécification composite en 3 lettres pour supportert un serveur d'application multi langage).

Au delà des déploiement standard, JBoss Seam a la capacité ,au moment du développement, de redéployer les classes de composants Seam JavaBeans sans avoir à redémarrer l'application, préservant beaucoup de temps de développement dans le cycle développement/test. Le même support est fourni par les composants de Seam de GroovyBeans quand les fichiers .groovy sont déployés.

JBoss Seam supporte nativement le déploiement de fichier .groovy f (autrement dit sans compilation) dans le mode de redéploiement à chaud incrémental (seulement au développement). Cela rend possible un cycle edition/test très rapide. Pour configurer le déploiement de .groovy, suivez la configuration de la Section 2.8, « Seam et le déploiement incrémental à chaud » et deploiyez votre code Groovy (les fichiers .groovy) dans le dossier WEB-INF/dev. Les composants GroovyBean vont être pris incrémentallement sans avoir besoin de redémarrer l'application (ni heureusement le serveur d'application).

Soyez informé que le déploiement de fichier .groovy natif souffre des limitations identique du redéploiement à chaud classique de Seam:

  • Les composants doivent être des JavaBeans ou des GroovyBeans. Ils ne peuvent pas être des beans EJB3

  • Les entités ne peuvent pas redéployées à chaud

  • Le déploiement à chaud des composants ne sera pas visible pour toute classes deployé à l'extérieur de WEB-INF/dev

  • Le mode debug de Seam doit être activé