MonDossierWeb est une application qui doit marcher aussi bien en portlet qu’en servlet. Ce qui impose que les tests lors du développement soient faits dans les deux contextes. Or le passage d’un contexte à l’autre nécessite la modification de 4 fichiers : properties/jsf/application.xml (modification du ViewHandler) ; stylesheets/template/template.xhtml ; web.xml et build.properties.
Toutes ces modifications s’avèrent fastidieuses quand on travail par exemple sur l’élaboration du système de téléchargement de fichier (voir post suivant) qui nécessite des tests dans les deux contextes et où on doit donc passer souvent de l’un à l’autre.
Deux taches Ant ont donc été rajoutées au build-devel.xml de notre application : ‘_toServlet’ et ‘_toPortlet’ qui permettent respectivement de passer le projet en portlet ou en servlet. Voici leur fonctionnement (à noter qu’elles s’appuient sur la tache ‘_deleteFileForContext’ également créé pour l’occasion) :
|
<target name=”_deleteFileForContext” description=”Make change for servlet use”> <echo>Deleting in progress, do not interrupt this task!</echo> <delete file=”./properties/jsf/application.xml”/> <delete file=”./webapp/stylesheets/template/template.xhtml”/> <delete file=”./webapp/WEB-INF/web.xml”/> <delete file=”./build.properties”/> </target>
<target name=”_toServlet” depends=”_deleteFileForContext” description=”Make change for servlet use”> <echo>Copying in progress, do not interrupt this task!</echo> <copy file=”./properties/jsf/application-servlet.xml” tofile=”./properties/jsf/application.xml” /> <copy file=”./webapp/stylesheets/template/template-servlet.xhtml” tofile=”./webapp/stylesheets/template/template.xhtml” /> <copy file=”./webapp/WEB-INF/web-servlet-example.xml” tofile=”./webapp/WEB-INF/web.xml” /> <copy file=”./build-servlet-example.properties” tofile=”./build.properties” /> <echo>Refactoring complete! Please refresh your project now</echo> </target>
<target name=”_toPortlet” depends=”_deleteFileForContext” description=”Make change for portlet use”> <echo>Copying in progress, do not interrupt this task!</echo> <copy file=”./properties/jsf/application-portlet.xml” tofile=”./properties/jsf/application.xml” /> <copy file=”./webapp/stylesheets/template/template-portlet.xhtml” tofile=”./webapp/stylesheets/template/template.xhtml” /> <copy file=”./webapp/WEB-INF/web-portlet-example.xml” tofile=”./webapp/WEB-INF/web.xml” /> <copy file=”./build-portlet-example.properties” tofile=”./build.properties” /> <echo>Refactoring complete! Please refresh your project now</echo> </target> |