Estoy preparando el anuncio de un nuevo módulo de Tynamo y esto me da un buen pie para hablar del estado de Tynamo en general.
Desde hace un tiempo ya que Tynamo ha dejado de ser solamente un framework orientado a CRUD, de a poco hemos ido incoporando pequeños módulos orientados principalmente a integrar Tapestry5 con otras librerías de terceros o a proveerlo de pequeñas funcionalidades extra. Todo esto con el fin de armar nuestro propio full stack web framework, pero siempre manteniendo la independencia y simplicidad de los módulos por si se quieren usar por separado.
Al día de hoy nuestros módulos son:
- tapestry-conversations
- tapestry-exceptionpage
- tapestry-hibernate-seedentity
- tapestry-jbpm
- tapestry-jpa
- tapestry-jpa-seedentity
- tapestry-model
- tapestry-resteasy
- tapestry-security
- tapestry-watchdog
- tynamo-federatedaccounts
tapestry-model es el módulo principal de Tynamo, ya vamos por la segunda versión y está en producción desde hace un tiempo. De la mano de la Tapestry 5.2 han llegado muchas nuevas features, una de las principales es la validación usando el estandar JSR303, gracias a este estandar la integración de otros proveedores JPA distintos de Hibernate se hace mucho más fácil. Pierce T. Wetter, el autor original de tapestry-jpa se ha unido al equipo de Tynamo y junto con Piero Sartini, quien se ha encargado del módulo tapestry-model-jpa, han logrado que finalmente Tynamo sea completamente independiente de Hibernate.
tapestry-security era el módulo más esperado y en poco tiempo se ha convertido en el más popular. tapestry-security es una integración de Tapestry5 con Shiro. Venimos trabajando en un módulo de seguridad que sea independiente de Spring desde la época de Trails 1.2 cuando Shiro era conocido como JSecurity, hemos acompañado la evolución y los cambios de nombre de Shiro (Jsecurity, Ki , Shiro) y hemos ido madurando el código con ellos. Nuestra primera implementación era un port de tapestry-acegi, basicamente era el mismo código pero en lugar de usar Acegi usábamos Shiro. La solución era muy básica con una sola anotación de seguridad (@Secured) y una estructura de contribuciones a los filtros no muy simple (aunque aún así muy dinámica y flexible) que imitaba las funcionalidades de Acegi sin aportar nada nuevo. Gracias a la contribución de Valentin Erastov (aka: xibyte), rápidamente ampliamos la cantidad y variedad de las anotaciones de seguridad manteniendo esa potente simplicidad que diferencia a Shiro de Acegi. Con lo aprendido en el desarrollo de tapestry-security fuimos a hablar con la gente Shiro. Nos recibieron con los brazos abiertos, Kalle (mi co-lead) se hizo commiter de Shiro y las anotaciones que habíamos creado para tapestry-security pasaron a formar parte del core de Shiro.
Además, Kalle también ha sido nombrado commiter en Tapestry, así que ahora tenemos una pata dentro de Tapestry y otra dentro de Shiro lo que nos deja en una excelente posición para continuar mejorando nuestros módulos.