ATUALIZAÇÃO: Tapestry 5.2 foi lançado, então não foi abandonado, como parecia estar. Minha experiência é com Tapestry 4, não 5, então sua milhagem pode variar. Minha opinião sobre a Tapeçaria mudou ao longo dos anos; Eu modifiquei esta postagem para refletir isso.
Não posso mais recomendar Tapestry como fazia anteriormente. O Tapestry 5 parece ser uma melhoria significativa, mas meu principal problema com o Tapestry não é a plataforma em si; está com as pessoas por trás disso.
Historicamente, cada atualização de versão principal do Tapestry quebrou a compatibilidade com versões anteriores com extremo prejuízo, muito mais do que se poderia esperar. Isso parece ser devido à incorporação de novas técnicas ou tecnologias de codificação que requerem reescritas significativas.
Howard Lewis Ship (o autor principal de Tapestry) é certamente um desenvolvedor brilhante, mas não posso dizer que me importo com o gerenciamento do projeto Tapestry. O desenvolvimento do Tapestry 5 começou quase imediatamente após o lançamento do Tapestry 4. Pelo que posso dizer, Ship se dedicou muito a isso, deixando o Tapestry 4 nas mãos de outros colaboradores, que eu sinto que não são tão capazes quanto Ship. Depois de ter feito a dolorosa mudança de Tapestry 3 para Tapestry 4, senti que havia sido abandonado quase imediatamente.
Claro, com o lançamento do Tapestry 5, o Tapestry 4 se tornou um produto legado. Eu não teria problemas com isso se o caminho de atualização não fosse tão brutal novamente . Portanto, agora nossa equipe de desenvolvimento está em uma posição nada invejável: poderíamos continuar a usar uma plataforma da web essencialmente abandonada (Tapestry 4), fazer a atualização hedionda para Tapestry 5 ou desistir inteiramente de Tapestry e reescrever nosso aplicativo usando outra plataforma. Nenhuma dessas opções é muito atraente.
O Tapestry 5 é supostamente escrito de forma a reduzir a probabilidade de quebra da atualização a partir deste ponto. Um bom exemplo está nas classes de página: em encarnações anteriores, as classes de página descendiam de uma classe base fornecida pela Tapestry; alterações de API incompatíveis nesta classe foram a causa de um grande número de problemas de compatibilidade com versões anteriores. No Tapestry 5, as páginas são POJOs que são aprimoradas em tempo de execução com o "pó mágico da tapeçaria mágica" por meio de anotações. Portanto, desde que o contrato para as anotações seja mantido, as alterações em Tapestry não afetarão suas classes de página.
Se isso estiver certo, escrever um novo aplicativo usando o Tapestry 5 pode dar certo. Mas, pessoalmente, não estou com vontade de colocar minha mão no queimador de novo.