Conception et développement d un module d Administration du Framework LiferayUnit Liferay [1] est un portail open source de gestion de contenu, le site baser sur ce logiciel est comparable avec igoogle ou bien myyahoo. C est un portail J2EE compatible avec le standard JSR-168. Une de ses particularités est de pouvoir s'exécuter sur la majorité des serveurs d'applications et de bases de données disponibles actuellement. Respectant le standard JSR-168, il est possible d y déployer un grand nombre de portlets. LiferayUnit [2] est un Framework open source développée par Mohamed KARRAY dans le cadre de son Projet de fin d études à l université de Braunschweig (Allemagne). Le code du framework est hébergé dans googlecode. Ce Framework permet de manipuler l interface utilisateur du portail Liferay en JAVA dans le but d automatiser les testes. Ce Framework n est pas encore achevé. La manipulation de la partie administrative du portail Liferay n est pas encore développée. Une description du Framework LiferayUnit est décrite en annexe. Objectifs Etendre le Framework LiferayUnit afin de développer des classes en JAVA qui permettent de manipuler quelques domaines de la partie administrative du Liferay Portal. Dans la partie administrative du Portail on peut configurer des rôles, crées des comptes de nouveaux utilisateurs, assigner des rôles et des permissions à chaque utilisateur ou bien des groupes d utilisateurs. Il est aussi possible d ajouter des pages et configurer le Look and Feel. D autres actions avancées comme la configuration du serveur sont possibles. Basé sur le Framework HtmlUnit, il est facile de programmer des classes qui simulent des actions sur une page HTML (voir annexe). Environnement de développement Langage de programmation : JAVA Outil : eclipse Stagiaires Nombre: 1 à 2 étudiants Compétences obligatoires : JAVA, HTML Compétences souhaitées : Xpath, JavaScript, HtmlUnit Connaissances souhaitées : la langue allemande 1
Travail demandé : 1. Familiariser avec le portail Liferay, le framework HtmlUnit et LiferayUnit. Dans cette tache l étudiant peut identifier lui-même les fonctionnalités de la partie administrative qu il veut développer (2 à 3 semaines). 2. Conception : les fonctionnalités à développer doivent êtres fixées et documenté avec UML (2 à 3 semaines). 3. Validation de la conception et développement (4 mois). 4. Test et rédaction du rapport (1 mois). Lieu de travail : Société : Software Revolution. Sfax centre ville. Site : www.tn-sr.com Contact: Mohamed KARRAY: mohamed.karray@tn-sr.com Référence : [1] http://www.liferay.com/ [2] https://liferayunit.googlecode.com/svn/trunk 2
Annexe LiferayUnit LiferayUnit est basé sur le framework HtmlUnit qui permet de manipuler le contenue HTML en JAVA. Exemple de code JAVA utilisant le framework HtmlUnit : La classe WebClient simule un Browser. Dans cet exemple on a choisi le navigateur Firefox 3.6 pour les simulations. La classe HtmlPage simule une Page en HTML. Après avoir installé le portail Liferay en localhost il sera accessible avec l adresse «http://localhost:8080» la méthode getpage(string url) de la classe WebClient ce connecte a l url donnée en paramètre et retourne un objet de type HtmlPage. Dans cet exemple page est l objet qui simule la page initiale du portail Liferay. Le Liferay Portal dans sa version standard permet de s identifier en utilisant le login des utilisateurs standard : Si on veut accéder rapidement comme administrateur au Portail on clique alors sur «login as bruno» Cette action peut être faite avec le framework HtmlUnit comme cet exemple le montre : A travers l objet page on peut accéder à tous les éléments HTML de la page. Dans cet exemple on veut obtenir le lien «Login as bruno» (ligne 28). La classe HtmlAnchor simule un lien HTML. La méthode click simule un clique et retourne un objet de type Page qui représente la page obtenue après le clique. Ainsi, l objet page simule le profil de Bruno. Pour trouver des éléments HTML dans la page on peut aussi utiliser le XPath comme le montre cet exemple : L objectif est de capturer un bouton HTML de tag input qui se trouve sous un élément span qui a comme classe stylesheet «aui-button» et qui lui-même (span) se trouve sous l élément 3
section avec l id «portelt_84». Ce chemin peut être définie avec ce XPath : «//section[@id= portlet_84 ]//span[@class= aui-button ]//input» Le framework HtmlUnit donne la possibilité à travers la méthode getfirstbyxpath(string xpath) de retrouver des éléments HTML par leurs chemins hiérarchique dans la structure du html. Cette méthode d identifications des éléments HTML est utilisé fréquentèrent par le framework LiferayUnit. LiferayUnit utilise le framework HtmlUnit pour simuler des actions sur le portail. Les méthodes les plus utilisés avec LiferayUnit sont : LiferayUnit permet par exemple d ajouter une portlet au portail et de vérifier si elle s affiche dans l interface web. Ce scénario peut être fait pour tester la fonctionnalité d ajout des portlets. Exemple d utilisation du framework LiferayUnit à travers un JUnit Test: Il existe dans le portail Liferay une Portlet appelée «Announcements». L administrateur peut introduire à travers ce portlet des annonces qui peuvent êtres lus par les utilisateurs du portail. La classe AnnouncementsPortlet du framework LiferayUnit simule les actions qui peuvent êtres faites avec ce portlet. Le scénario ci-dessus permet de tester le Portlet Annoucements. 4
Le framework LiferayUnit simule les actions principales du front-end du portail. La simulation des actions sur le back-end n est pas encore été développée. La partie back-end du portail Liferay est accessible à travers le «Control Panel» sous le menu «Manage» : Dans le Control Panel on peut par exemple configurer les Pages dans le portail : On peut aussi configurer les rôles, crées des comptes de nouveaux utilisateurs et d autres. 5