JCMS crée des sites dynamiques en utilisant des JSP. On peut, notamment pour améliorer les performances, utiliser les mécanismes de cache intégrés à l'outil.
Cependant certaines situations spécifiques nécessitent de produire un site statique pour qu'il puisse être autonome ou plus performant.
Citons par exemple :
- Fabrication d'un CD autonome qui ne nécessite pas de serveur d’application ;
- Fabrication d'un site à embarquer dans un PDA ;
- Création d'un site publié dans une DMZ, ...
Par référence au premier exemple nous appelons ce processus : « pressage de site ».
1. Description Fonctionnel
Le « pressage » créé un répertoire qui contient les pages html générées et les fichiers statiques associés (css, js, images, upload,...).
Afin de faciliter la lisibilité de la génération et améliorer l'indexation des pages par les moteurs de recherche comme Google, les noms des fichiers html sont construits à partir de la catégorie de l'id de la page + numéro d'ordre de génération.
2. Principe du pressage
L'algorithme de génération a besoin de 4 paramètres en entrée :
- Le nom d'un sous-répertoire du répertoire upload dans lequel doit être pressé le site
- L'URL de la page d'index du site
- L'identifiant d'un utilisateur
- Et son mot de passe.
Ces deux derniers paramètres servent à personnaliser la génération du site selon un profil utilisateur : un VIP aura par exemple un site différent d'un employé.
Le pressage est un processus récursif. Il consiste à examiner les pages les unes après les autres en suivant les liens et à transformer les appels à display.jsp par le nom de la page htlm correspondante, jusqu'à épuisement de tous les liens.
3. Limites
Comme tous les systèmes « d’aspiration de site », l'outil ne gère pas les formulaires et notamment la recherche ou le login (ils ne peuvent être exécutés puisqu'ils nécessitent des composants actifs sur le serveur) ni les portlets à comportement « infini » comme par exemple le calendrier puisque ce dernier est « perpétuel ». Il faut donc veiller à éviter ce genre de portlet !
4. Installation
Dézipper pressage.zip sur votre WebApp JCMS 5.0.2.
Cette archive contient des modifications pour les fichiers suivant :
- display.jsp (afin de prendre en compte soit le mécanisme normal d'affichage soit le pressage)
- custom.prop
- adminCustom.jsp
- ChooserWidget.class (correction de bug de la 5.0.2).
5. Adaptation pour JCMS 4, JCMS 5.0.0 et 5.0.1.
Le comportement de display.jsp change légèrement car le nom du buffer stockant le flux HTML a évolué.
Les dernières lignes du display doivent être remplacées par :
<%@ include file='/custom/static/doStatic.jsp' %> <%@ include file='/doDisplayBuffer.jsp' %>
De plus toutes les jsp dans custom/pressage doivent prendre en compte le fait que les chemins de doInitPage.jsp ... ne sont pas les même en version 4 puisque depuis la 5 les jsp ont été reclassées dans des répertoires spécifiques : jcore, ...
6. Remerciement
Les auteurs expriment leur gratitude à l'équipe de Crédit Agricole Leasing qui leur a proposé de faire évoluer l'outil initialement prévu pour le seul cas des sites simplifiés adaptés aux PDA vers un outil généraliste traitant aussi les sites web.
L'équipe technique de Jalios a apporté quelques suggestions bien venues tant fonctionnelles que techniques.
Cet article a été écrit par Julien Chaise et Jean-Philippe Blanchard du Crédit Agricole S.A.




