Qu’est-ce que Struts Shale ?
Struts Shale (Schiste comme la pierre en français) est le successeur de Struts. Cependant comme l’a annoncé le groupe Apache, il n’y aura pas de Struts 2.0. Shale est un nouveau
framework MVC basé sur Javas Server Faces 1.1 qui se concentre sur la partie Contrôleur. La partie Vue reste déleguée à une implémentation de JSF telle qu’Apache MyFaces ou JSF-RI de SUN.
Struts 1.0 est mort ?
Struts devient Struts Classic avec sa propre home-page et va continuer à être développé et maintenu. Struts n’est certainement pas mort pour l’instant.
Voici une partie de l’annonce officielle:
The Apache Struts team is pleased to announce the adoption of its latest subproject, Struts Shale, a JSF-based framework. Right now, there are no concrete plans for a 2.x release of Struts Classic. The people working on the 1.x series want to evolve the code base without breaking backward compatibility. If we do our job right, then a 2.x release may never be needed. It's an entirely new codebase. Struts Shale is an MVC framework for web applications, like Struts Classic, but it's a fresh start. Struts Shale is the best choice for developers eager to leverage the latest technologies, like Java Server Faces.
Qu’apporte Shale ?
Shale propose quelques ajouts à JSF pour faciliter le développement d’application Web.
- Un ViewController pemet d’associer un simple Bean Java à la vue orientée composant proposée par JSF. Il s’agit en fait d’une class qui propose des callbacks standards pour qu’un Bean
soit notifié selon les différentes phases de JSF. - Le DialogManager permet l’ajout d’un mode « conversationnel » similaire à JBoss Seam. Un fichier de configuration XML définit l’enchainement
des ecrans selon les états retournés par les Beans. Cela permet une solution plus robuste que l’utilisation du fichier navigation.xml de JSF qui est trop orienté composants. Ce mode de dialogue
permet ensuite d’implémenter une machine à état et de définir donc un diagramme d’état pour l’application. La mise-en-place s’effectue via un fichier de configuration XML. - L’ApplicationManager est un front controller qui permet l’ajout de la notion d’application à JSF qui sans cela, reste très orienté « page ». Typiquement, l’application manager sera un module activé
à chaque requête avant et après l’execution du code de l’application pour fournir des services métiers standards comme l’authentification et l’authorisation. Il permet aussi de filtrer des ressources
à partir de l’adresse du client et donc d’éxécuter ou non une partie de l’application. - Le module Validation est un ajout à JSF qui vous permet de coder la validation de ce que l’utilisateur entre dans un formulaire, que ce soit du côté serveur ou du côté client.
En pratique, de nouveaux tags TLD permettent d’ajouter un système de validation dans les pages JSP. Très pratique et simple à utiliser. - Le module Remoting qui n’est pas encore documenté doit permettre de faciliter la mise en place et le dialogue entre une page contenant du javascript pour faire de l’AJAX et une partie
serveur avec un Bean géré par JSF. - L’integration du moteur d’injection Spring permettra de créer facilement des Beans gérés par JSF et injecté par Spring dans toute l’application. Pas simple à mettre en oeuvre car
Spring utilise son propre ClassLoader, c’est certainement un ajout majeur qui vise à faciliter l’integration et la configuration dynamique d’une application. - Clay est un module qui intéressera ceux qui travaillent avec des Web Designers. Il vous permet de coder simplement en HTML l’ensemble de vos pages et d’ajouter ensuite quelques balises
HTML spéciales pour que le moteur transforme ces pages en vue JSF lors de l’execution. Cela permet donc de faire le design des pages en dehors de la partie JSF. - TestFramework est une extension à JUnit qui à l’aide d’objets simples, permet de tester le code Shale.
- Tiger Extensions est un module optionnel qui permet de faciliter l’écriture du code dans le cas où vous désirez passer à Java 5. Au passage, Struts Shale fonctionne avec Java 1.4 et Java 5.0
Une version alpha de Shale devrait sortir d’ici quelques jours d’après la mailing list des développeurs. Le projet n’est donc pas encore assez mature pour être utilisé en production, mais
rien ne vous empêche de jetez un oeil. Et donc Shale n’est pas Struts 2.0
Site internet de Struts-Shale: http://struts.apache.org/struts-shale
Doc PDF sur l’architecture et les concepts de Shale http://struts.apache.org/struts-shale/struts-shale.pdf