
Para ver esta caracteristica en funcionamiento utilizaré el ejemplo Hola Mundo con Tapestry 5 de una entrada anterior. Los cambios a realizar son pocos y nada complicados. Básicamente consisten en tener generada en un directorio la estructura de la aplicación WAR. Partiendo de la estructura de codigo fuente que ya teniamos en el ejemplo nos faltaría generar en el directorio WEB-INF/lib las librerías de la aplicación y en el directorio WEB-INF/classes las clases compiladas. Para el caso de las librerías basta con crear una nueva tarea en Ant que nos copie las librerías del directorio «lib» a «src/main/web/WEB-INF/lib», esto se hace en la nueva tarea «copiar-libs» de Ant del archivo build.xml. Hay algunas librerías que no son necesarias y no las copiamos por eso los excludes de la tarea copiar-libs (son las librerias servlet-*.jar y selenium-*.jar).
Para el caso de las clases compiladas le indicaremos al IDE que usemos que nos las genere en «src/main/web/WEB-INF/classes» en vez del directorio bin en el caso de eclipse. Para ello y en eclipse iremos a las propiedades del proyecto en introduciremos en el campo de texto «Default output folder» «HelloWorldTapestry5/src/main/web/WEB-INF/classes».
Con estas dos cosas ya tenemos la estructura de una aplicación WAR en el sistema de archivos ahora nos queda desplegar la aplicación en el servidor de aplicaciones. Para el caso de Tomcat basta con copiar un archivo xml al directorio de Tomcat «conf/Catalina/localhost» (este archivo xml está en la carpeta misc del código fuente de la aplicación). El nombre del archivo será el nombre de contexto de la aplicación asi que en este caso y habiendo realizado estas tres cosas accederemos a la aplicación con la URL «http://localhost:8080/helloworld-tapestry5» y podremos probar que haciendo un cambio a la página Index (en el archivo Index.tml) y simplemente actualizando la página en el navegador los cambios se aplican de inmediato.
Como digo una caracteristica muy util, que ahorra mucho tiempo y que contribuyen a hacer de Tapestry para mí uno de los mejores frameworks Java con el que he tenido la oportunidad de desarrollar.
Referencia:
Documentación sobre Apache Tapestry
Codigo fuente Hola Mundo Apache Tapestry 5 (con live reloading)