Le célèbre et vénérable framework MVC Struts 1 arrive à la fin de son cycle de vie. Ce projet qui avait été initié en 2000 par Craig McClanahan permettait d'augmenter significativement la productivité de développement d'une application Web. Au moment où la technologie des Servlets était en pleine essor, chacun avait tendance à réinventer la roue dans chaque projet. Struts 1 proposait un vrai environnement qui permettait aux développeurs de se concentrer sur le code métier. Le framework avait été rapidement adopté par de nombreuses entreprises et était devenu un classique lors des développements. Il a survécu longuement, même après l'adoption de JSF comme standard dans Java EE. D'ailleurs, bon nombre de ses successeurs se sont directement inspirés de lui.
Une des caractéristiques de Struts 1 était le fort couplage qui existait entre le framework et les classes qui implémentaient la logique métier (les classes héritant d'Action et d'ActionForm). D'où un nombre assez important de POJOs utilisé pour transporter, réceptionner les données de formulaire et les valider presque identiques avec les POJOs métiers. Une bonne partie du travail consistait à recopier les valeurs entres ces Beans. Les projets qui ont supplanté la première version du framework sont ceux qui grâce à la réflexion ont proposé des solutions qui n'avaient aucune adhérence avec le framework. Cela a alors permis d'écrire correctement des tests unitaires pour la couche transport et de pouvoir utiliser directement les POJOs métiers dans les JSP.
C'est donc à travers un communiqué sur son blog que la fondation Apache vient d'annoncer la fin des développements sur le projet. En fait, ce billet ne fait qu'officialiser ce qui se passe en coulisse depuis un moment. Les équipes de Struts 1 ont été réparties sur le projet Struts 2 qui possède pas moins de 23 versions à son planning. En effet, la dernière version de Struts 1 (1.3.10) date de Décembre 2008... Cette nouvelle et dernière étape dans la vie du projet signifie que plus aucun patch de sécurité ou d'évolution ne sera livré. Cependant, la documentation et les liens vers le site officiel resteront bien entendu disponibles. Cela implique que si vous utilisez encore Struts 1, vous devrez soit effectuer ces mises à jour correctives seul, soit migrer vers une solution alternative. Struts 1 va donc continuer à fonctionner avec les projets actuellement en production mais est donc plus difficilement envisageable pour débuter un nouveau projet.
Le successeur Struts 2 qui propose un vrai découplage entre le framework et les classes spécifiques est conseillé par les équipes de Struts. Mais les autres projets comme Spring MVC, Grails ou Stripes sont également des solutions valables à étudier.
Struts 1 est donc officiellement à la retraite mais est encore loin de disparaître grâce à son existant; cela lui promet une retraite longue et paisible.