J’ai récemment eu l’occasion de travailler avec Weblogic Portal 10 (WLP10) dans le cadre d’un projet faisant une utilisation intensive de sa gestion de contenu (CMS). Je vous propose de vous faire partager mon expérience avec ce produit.
Autant l’annoncer tout de suite, WLP est très facile à prendre en main. L’IDE spécifique Workshop a disparu, remplacé par un Workspace Studio constitué d’Eclipse et d’un plug-in BEA offrant des vues intéressantes (PageFlow, Server) et des outils plus qu’utiles pour le développement (création assistée de PageFlow, Control, Portlet, liens avec la CMS et domaines Weblo, édition de propriétés…), le tout sans dérouter le développeur java lambda heureux de retrouver son environnement de travail habituel.
De manière générale, Workspace Studio doit être vu comme une sorte de boîte à outils pour le développement d’applications portail, qu’elles soient orientées CMS, Collaboration ou autre, WLP proposant des portlets génériques, taglibs, API ou autres outils pour n’importe quel type de portail.
Je passerai rapidement sur le développement de portlets avec WLP tant celui-ci est facile et la documentation netui-beehive, le framework utilisé par WLP, riche et complète (cf http://beehive.apache.org).
Je tiens plus à m’attarder ici sur la CMS BEA et les outils offerts par WLP pour l’exploiter au mieux.
Commençons par la CMS proprement dite et sur les possibilités qu’elle offre :
- Création de différents repository,
- Création de types de contenus variés et complexes,
- possibilité de retrouver des contenus par leur identifiant, leur chemin d’accès ou par requête sur la CMS,
- connexion avec des repository tiers,
- utilisation de WebDAV,
- utilisation du moteur de recherche Autonomy pour indexer la CMS…
Comme on peut le voir, l’offre de CMS BEA est très complète et suffit à répondre aux problématiques habituels liées à des besoins normaux de portail (stockage d’articles, de vidéos, de fichiers statiques …).
Les outils mis à notre disposition pour utiliser cette CMS se classent dans plusieurs catégories : Portlet générique, API, taglibs et outils d’import/export de contenu.
Un bon exemple de l’esprit boîte à outils de Workspace Studio concerne justement la gestion de contenu.
Que l’on souhaite créer, modifier, supprimer ou afficher du contenu, BEA met à notre disposition des outils simples et efficaces, et s’ils ne répondent pas à nos besoins, BEA nous permet de créer facilement les nôtres.
Pour créer nos contenus et nos types de contenus, le plus simple est d’utiliser la console d’administration de WLP. Cette dernière, entièrement revue à neuf, est à présent très ergonomique, intuitive et simple d’utilisation, même si son utilisation peut s’avérer fastidieuse si l’on a beaucoup de type de contenus à créer, auquel cas on les créera à l’aide des API mises à notre disposition.
Bien entendu, si nos besoins l’exigent, par exemple créer des contenus de manière automatique, on pourra développer notre propre code réalisant cela, encore grâce aux API.
Pour l’affichage, BEA propose la portlet générique "Content Presenter Portlet". Avec cette portlet, en quelques clics, un utilisateur pourra, directement sur le site, sélectionner et modifier le contenu à afficher et sous quelle forme le présenter.
La présentation des contenus peut se faire via des templates, qui sont de simples fichiers jsp construits à l’aide des taglibs CMS de WLP.
Ces mêmes taglibs permettent de faire appel à ces templates de présentation depuis n’importe quelle autre jsp.
Les taglibs d’affichage sont très utiles même si elles ont quelques limitations, notamment dans leur (in)capacité à gérer les types de contenus complexes, par exemple les champs de type objet embarqué multi-valué (Exemple : je crée un type de contenu image puis un type de contenu article comprenant entre autre un champ de type image pouvant être multiple), situation qu’il vaut mieux traiter à l’aide des API.
D’autres outils bien utiles sont le bulk loader qui permet de rapidement "charger" sa CMS avec du contenu depuis des fichiers statiques, et les outils de propagations d’environnement.
Il est à noter qu’il faut très bien penser son modèle de données avant de créer les types de contenus correspondants dans la CMS. En effet, une fois un type de contenu créé, il faut supprimer tous les contenus de ce type avant de pouvoir en supprimer ou rajouter un champ. Cela n’a l’air de rien, mais cela devient vite très embêtant quand on commence à toucher à des objets embarqués.
Malgré les quelques limitations au niveau de la CMS évoquées plus haut et une gourmandise extraordinaire au niveau des ressources processeur et mémoire vive, WLP10 est un produit agréable et facile à prendre à main, très bien documenté et offrant de nombreux outils et aides au développement. En bref, WLP10 est un bon portail avec une CMS suffisamment complète pour répondre à un grand nombre de problématiques portail.