MISE À JOUR: Tapestry 5.2 est sorti, il n'est donc pas abandonné, comme cela semblait l'être auparavant. Mon expérience est avec Tapestry 4, pas 5, donc votre kilométrage peut varier. Mon opinion sur Tapestry a changé au fil des ans; J'ai modifié ce message pour le refléter.
Je ne peux plus recommander Tapestry comme je le faisais auparavant. Tapestry 5 semble être une amélioration significative, mais mon principal problème avec Tapestry n'est pas avec la plate-forme elle-même; c'est avec les gens derrière.
Historiquement, chaque mise à jour majeure de la version de Tapestry a rompu la compatibilité avec les préjugés extrêmes, bien plus que ce à quoi on pourrait s'attendre. Cela semble être dû à l'incorporation de nouvelles techniques ou technologies de codage qui nécessitent des réécritures importantes.
Howard Lewis Ship (l'auteur principal de Tapestry) est certainement un brillant développeur, mais je ne peux pas dire que je me soucie de sa gestion du projet Tapestry. Le développement de Tapestry 5 a commencé presque immédiatement après l'expédition de Tapestry 4. D'après ce que je peux dire, Ship s'est à peu près dévoué à cela, laissant Tapestry 4 entre les mains d'autres contributeurs, qui, à mon avis, ne sont pas aussi capables que Ship. Après avoir fait le douloureux passage de Tapestry 3 à Tapestry 4, j'ai senti que j'avais été abandonné presque immédiatement.
Bien sûr, avec la sortie de Tapestry 5, Tapestry 4 est devenu un produit hérité. Je ne voudrais pas de problème avec cela si le chemin de mise à niveau n'a pas été si brutal à nouveau . Alors maintenant, notre équipe de développement est dans une position plutôt peu enviable: nous pourrions continuer à utiliser une plate-forme Web essentiellement abandonnée (Tapestry 4), faire la mise à niveau odieuse vers Tapestry 5, ou abandonner complètement Tapestry et réécrire notre application en utilisant une autre plate-forme. Aucune de ces options n'est très intéressante.
Tapestry 5 est censé être écrit de manière à réduire la probabilité de rupture de la mise à jour à partir de ce point. Un bon exemple est dans les classes de page: dans les incarnations précédentes, les classes de page descendant d'une classe de base fournie par Tapestry; les changements d'API incompatibles dans cette classe étaient à l'origine d'un grand nombre de problèmes de compatibilité descendante. Dans Tapestry 5, les pages sont des POJO qui sont améliorés au moment de l'exécution avec la "poussière de fée magique de la Tapisserie" via des annotations. Ainsi, tant que le contrat pour les annotations est maintenu, les modifications apportées à Tapestry n'affecteront pas vos classes de page.
Si tel est le cas, l'écriture d'une nouvelle application à l'aide de Tapestry 5 pourrait bien se révéler. Mais personnellement, je n'ai pas envie de remettre ma main sur le brûleur.