L’intérêt du Hook est d‘ajouter des points d’extension de Liferay permettant ainsi de customiser Liferay sans toucher au code du portail.
C’est le mode privilégié pour les modifications du portail Liferay.
Il a néanmoins 2 problèmes :
– son périmètre qui est limité aux surcharges des JSP Liferay, à quelques propriétés de configuration ou de traduction, et à la gestion d’événements Liferay ou du modèle fourni par le Service Builder.
– la compilation en erreur en développement, c’est de ce point dont nous allons parler.
Si l’on veut customiser une page de Liferay, celle-ci a souvent besoin d’importer d’autres pages (exemple : /html/portal/init.jsp) ou des ressources déclarées dans le portail lui-même (themeDisplay, …).
A part importer une grande partie du code dans notre projet de Hook, il va y avoir des erreurs de compilation qui ne seront pas gênantes pour le déploiement mais pollue fortement l’environnement de développement.
Si on ne peut pas facilement éviter ces erreurs de compilation, on peut au moins les masquer à l’aide d’Eclipse.
Cliquer sur le bouton « Add exclude group
Selectionner « Exclude group » et cliquer le bouton « Add Rule… ».
Selectionner « Folder or File name »
Cliquer sur « Browse folder » et selectionner le répertoire contenant les jsps modifiés par le Hook
Valider et forcer la compilation.
Et voilà les erreurs de compilation n’apparaissent plus.
Une autre possiblité, c’est d’utiliser le plugin liferay pour Eclispe IDE 1.3+, une option du wizard pour le Hook permet de désactiver la validation de la syntaxe des JSP.