Como en Tapestry y Spring?

Hola, llevo ya tiempito leyendo este blog y me ha parecido el mejor blog sobre java en español, soy relativamente nuevo en el tema, programo con icefaces utilizando JPA, uso glassfish v2.1 como servidor de aplicaciones, netbeans como ide de desarrollo y sobre ubuntu Linux, soy muy empirico, todo lo que se lo he aprendido leyendo en internet, existen cosas que no conozco totalmente y me gustaria llegar al punto en el cual yo entienda 100% lo que programo, para de este modo poder realizar mis aplicaciones con el mejor rendimiento posible.

Estoy en busqueda de nuevas tecnologias y de mayor conocimiento, con el fin de -como comente- realizar aplicaciones con un rendimiento optimo.

He leido acerca de tapestry y spring, y estoy interesado pero no he podido iniciar, no me he logrado entender con la documentacion y no encuentro un ide para iniciar de manera sencilla. Me gustaria que me aconsejaran en todo aspecto con respecto a este tema, como: que ide uso?, que plugins le instalo?, que servidor de aplicaciones es mejor?, donde encuentro documentacion de esta integracion Spring-Tapestry (si espanol mejor, pero ingles es bien)?, donde encuentro como adicionar soporte ajax a Tapestry?, etc.

Veo que en este blog existe gran cantidad de personas idoneas para ayudarme en mi evolucion profesional.

Muy agradecido con cualquiere informacion que me puedas brindar.

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de ezamudio

Eclipse

Sin meternos a pleitos filosóficos o incluso religiosos en cuanto a IDEs... yo te recomiendo Eclipse. Tanto Spring como Tapestry los puedes usar con cualquier IDE, sin embargo Spring ofrece un plugin para Spring llamado SpringIDE y además ahora tienen algo llamado Spring Source Tool Suite, basada en Eclipse.
Tapestry 5 por su parte no tiene mucho soporte aun para ningun IDE en específico, pero existe un plugin llamado Loom que aunque hace poco, es útil.

La mejor manera de crear y administrar un proyecto de Tapestry es utilizando Maven. La versión más reciente de Tapestry es la 5.1 y ésta es su página oficial.

Los desarrolladores de Tapestry recomiendan usar IntelliJ IDEA pero ese IDE no es gratuito, si te lo paga tu empresa pues qué mejor, si no pues tal vez te convenga seguir con Eclipse un rato...

Aquí hay un tutorial (la verdad no muy actualizado) para empezar con Tapestry.

En cuanto a la integración con Spring, existe un módulo de Tapestry para ello. Es cosa que lo agregues al proyecto y te agrega las demás dependencias (Spring con algunos submódulos). Te recomiendo activar el modo de compatibilidad con Tapestry 5.0 porque yo tuve problemas queriendo inyectar componentes como DAOs de Hibernate porque son proxies que implementan una interfaz en tiempo de ejecución y Tapestry no lo detectó y por tanto no encontraba nada, pero con compatibilidad 5.0 ya le pude poner el nombre del bean y lo inyectó sin problemas.

En la página de Tapestry hay guías de introducción al uso de los submódulos como el soporte a AJAX y cosas así. Adicionalmente, existen estas páginas con información del proyecto:

Espero que esta información te sea útil. He querido escribir en mi blog una introducción a Tapestry 5 desde hace tiempo pero el tiempo no me lo ha permitido, y no quiero que sea una traducción del tutorial sino algo un poco más enfocado a las diferencias con otros frameworks basados en el principio de JSP.

La curva de aprendizaje puede ser algo difícil al principio, no te desanimes, una vez que le agarres la onda y veas la facilidad, el poder y la velocidad de desarrollo que te dan Tapestry y Spring, no querrás volver a hacer un JSP en tu vida.

Imagen de ezamudio

Por separado

Otro consejo es que primero los veas por separado; una vez que entiendas bien lo que puede hacer Spring, entenderás mejor cómo se puede integrar con Tapestry. La cosa es que a fin de cuentas no se estorban. La única funcionalidad duplicada que existe en ambos frameworks es la inyección de dependencias, y a mi manera de ver la mejor solución para eso es que definas tus componentes en Spring y los inyectes en tus páginas de Tapestry con el soporte de Tapestry para Spring (o sea, los inyectas como si fueran componentes manejados por Hive, pero realmente vendrás en un application context de Spring).