Dans ce premier article, je vous propose de découvrir GateIn, le nouveau moteur fruit du rapprochement des équipes d’eXo Platform et de JBoss Portal. De l’installation aux premiers pas, l’idée est de vous présenter les nouveautés de GateIn, avec l’écriture d’une Portlet « HelloWorld », son déploiement et enfin une visite des coulisses pour bien comprendre ce que vous apporte GateIn.

Prérequis
Vous devez disposer de la version 6 de Java. La variable JAVA_HOME doit être configurée et elle doit pointer vers votre répertoire d’installation de Java.

Installation
Commencez par télécharger la version Beta 2 de GateIn disponible sur cette page. J’ai sélectionné la version GateIn 3.0.0 Beta2 with Tomcat 6.0.20 (tar.gz).

Une fois l’archive décompressée, placez-vous dans le répertoire GateIn-3.0.0-Beta02/bin et démarrez gatein:

cd GateIn-3.0.0-Beta02/bin
./gatein.sh run

Vous pouvez soit lancer GateIn et conserver la main avec l’option run, soit lancer GateIn en tâche de fond avec l’option start. C’est le fonctionnement de Tomcat en standard.

Petit tour
Une fois le serveur démarré, ce qui ne prend pas plus de 20 secondes sur ma machine, vous pouvez alors ouvrir un navigateur sur la page http://localhost:8080/portal

GateIn startup screen
GateIn startup screen

Premier point que nous verrons plus loin, c’est la réactivité de l’interface. J’ai testé la version JBoss et il m’a semblé que la version Tomcat était légèrement plus rapide. Notez que l’interface est en Français par défaut, car ma version de Mac OS est en Français, ainsi que mes réglages dans Firefox. En haut à droite vous pouvez tester le changement de langue. Par défaut GateIn supporte déjà l’anglais, le français, l’espagnol, l’arabe, le vietnamien, le russe et l’ukrainien. GateIn est développé en partie par les équipes d’eXo Platform qui sont localisées en Ukraine et au Viet-Nâm. Par ailleurs, eXo Platform a ouvert l’an passé un bureau à Tunis, et GateIn est l’un des rares portails à supporter l’écriture de droite à gauche, comme en arabe ou en hébreu par exemple.

Nous allons débuter notre tour en nous authentifiant en tant qu’utilisateur demo avec pour mot de passe gtn. Une fois authentifié, vous noterez l’apparition d’une barre de navigation rapide, comme sur Jahia par exemple.
gatein_navbarre
Cette barre est très pratique car elle donne accès immédiatement à l’ensemble des espaces de GateIn. Le logo GateIn tout d’abord (comme sur la capture ci-dessus) permet de changer de style, de langue et de se déconnecter. L’onglet Site permet de basculer d’un portail à un autre. Il est en effet possible de créer différents espaces, et de régler finement les droits d’accès pour chaque groupe d’utilisateur.
En parlant de groupe justement, l’onglet Groupe me donne accès à un ensemble de pages pour mon entité. Imaginons ici que c’est votre espace Jira, avec vos pages, vos outils, vos forums, votre wiki par exemple.

Le Dashboard
Cliquez maintenant sur le bouton Dashboard en haut à gauche de la page. Le Dashboard est votre espace personnalisé où il est possible de créer rapidement ses écrans de travail. Bien entendu, par défaut le nombre de Gadget étant limité, cela va vous sembler un peu vide. Mais faites-moi confiance, je vais vous montrer comment utiliser des Gadgets additionnels externes plus loin.

1. Cliquez sur le lien « Add Gadget » à gauche, et effectuez un glisser-déposer du Gadget « RSS Reader ». Répétez l’opération pour obtenir cet écran :

gatein_dashboard

2. Cliquez maintenant sur le petit crayon situé sur l’un des 2 Gadgets que j’ai entouré sur cette capture d’écran. Saisissez l’url du flux rss du Touilleur Express (http://www.touilleur-express.fr/feed/rss/), entrez 5 messages et validez le tout. Vous devriez voir les 5 derniers articles publiés sur le blog, si vous êtes connectés bien entendu à Internet.
gatein_rss_gadget

Nous verrons plus loin comment créer ses propres Gadgets, passons maintenant du côté du développeur Java.

Montre en main, vous avez dû mettre 5mn et 20 secondes, et encore c’est parce que je parle beaucoup… Passons derrière, suivez-moi

Votre première Portlet
Nous allons utiliser maven2 pour compiler notre premier projet pour GateIn. Téléchargez le fichier zip contenant le code source de cet article et décompressez le tout dans un nouveau répertoire.

1. Placez-vous dans le répertoire portlet et compilez le projet avec maven2:

mvn package
...

2. Copiez ensuite le fichier war vers le répertoire webapps de votre installation de GateIn

cp target/texpress-portlet.war /Users/nicolas/Downloads/GateIn-3.0.0-Beta02/webapps/

3. Lancez GateIn si vous l’aviez arrêté. Sinon vous devriez voir votre application se déployer sur GateIn, comme n’importe quelle application Java.

4. Connectez-vous sur GateIn (http://localhost:8080/portal) en tant qu’utilisateur root avec le mot de passe gtn.

GateIn beta 2 n’importe pas automatiquement toutes les portlets distribuées avec le Portail. Il faut donc déclarer la première fois qu’une nouvelle Portlet « HelloWorld » est apparue. C’est simple et cela se fait en quelques clics. Pour simplifier, je vais vous donner les instructions de la version en Anglais. Basculez du Français à l’Anglais via le logo « GateIn » en haut à gauche et sélectionnez l’Anglais pour suivre la suite.

1. Après vous être authentifié en tant que root, allez dans le menu « Group » puis « Administration » et sélectionnez « Application Registry ». Cet écran d’administration permet de contrôler les Portlets et les Gadgets déployés sur le portail. Cliquez simplement sur l’icône Auto Import situé à droite de la page:
gatein_autoimport

Une fois cette opération effectuée, vous verrez que votre Portlet « HelloWorld » est maintenant rangée dans la catégorie « Démo ». Le rangement automatique est une astuce de Julien Viet. Elle se base sur la définition des keywords dans le fichier portlet.xml

Le fichier src/main/webapp/WEB-INF/portlet.xml est un fichier standard qui permet au conteneur de Porlet de démarrer et de connaître les caractéristiques de votre Portlet. Notre portlet supporte le mode view et le mode help. Les mots clés permettent de la classer automatiquement dans une catégorie de GateIn.

<?xml version="1.0" encoding="UTF-8"?>
<portlet-app xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd" version="1.0">

	<portlet>
		<description xml:lang="EN">Hello world JSP portlet</description>
		<portlet-name>HelloWorldJSP</portlet-name>
		<portlet-class>org.letouilleur.portlet.HelloWorldPortlet
    </portlet-class>
		<supports>
			<mime-type>text/html</mime-type>
			<portlet-mode>view</portlet-mode>
			<portlet-mode>help</portlet-mode>
		</supports>
		<portlet-info>
			<title>Hello World JSP</title>
			<keywords>demo, simple</keywords>
		</portlet-info>
	</portlet>

</portlet-app>


Notez que cet auto import n’est à effectuez qu’une seul fois pour notre Portlet. Par la suite, nous pourrons écraser notre fichier WAR et travailler sans repasser par ce menu de gestion des Applications. Là je me permets de passer commande aux équipes d’eXo Platform et de JBoss : votre voisin Lifera a un répertoire « deploy » qui ajoute automatiquement la portlet dans le « Control Panel », l’équivalent de l’Application Registry.

Création d’une page

Continuons maintenant et terminons par la création d’une page.

1. Dans le menu Site Editor situé en haut, cliquez sur « Add New Page » ou « Ajouter une nouvelle Page ».

2. Après avoir sélectionné « Add a New Page » un assistant se lance. Cliquez sur Next, vous devriez arriver à cet écran :
gatein_add_new_page

3. Sélectionnez tout d’abord à gauche le répertoire où la nouvelle Page sera ajoutée. Là je trouve qu’au niveau de l’ergonomie… c’est mal fait. Mais bon, je vais vous expliquer comment faire. Cliquez sur la grosse flèche verte à gauche dans l’arbre de navigation de façon à remonter à la racine des noeuds des catégories. Vous verrez alors que la zone « Selected page node » comme sur ma capture d’écran se vide, ce qui signifie que le noeud racine a été sélectionné.

gatein_uplevel

4. Donnez un nom à votre nouvelle catégorie, ici par exemple « touilleurExpress2 » puis un nom en clair. Cliquez sur « Next » pour continuer, nous arrivons à la sélection du Layout. Un des points forts de GateIn c’est qu’il est facile de configurer la mise en page de chaque écran en un seul clic de souris. Je décide de conserver le style « Empty » et je continue en cliquant sur Next.
gatein_layout

5. Il est temps de déposer notre Portlet. La page qui s’affiche maintenant permet de construire un écran en utilisant des Portlets. GateIn vient avec quelques Portlets en standard, que vous pouvez tester. Ouvrez la fenêtre Page Editor en haut à droite en cliquant sur la flèche. Aller dans la section « Demo » de la partie « Applications ». Prenez et déposez votre portlet « HelloWorld » dans la zone centrale de la page.

6. Refermez la boîte « Page Editor » en cliquant sur la flèche, afin d’accéder au bouton « Save ». Votre page est enfin prête !
gatein_portlet_final

Masquer l’aspect Portlet

Pour terminer nous allons voir comment masquer l’aspect Portlet, en désactivant l’affichage des contours de notre fenêtre.

1. En tant qu’utilisateur root toujours, cliquez sur « Site Editor>Edit Page » dans le menu en haut de la page.
2. Placez le curseur de la souris sur la zone « HelloWorldJSP », ce qui fait apparaître un menu contextuel
gatein_edit_portlet
3. Cliquez sur le crayon jaune afin d’éditer les propriétés de la Portlet. Désactivez les 3 options comme sur cette capture d’écran. J’ai aussi fixé une taille en pixels pour la largeur et la hauteur de ma fenêtre. Cliquez sur Save pour refermer cette fenêtre.
gatein_portlet_settings
4. Enfin pour sauver vos modifications et revenir au mode normal, cliquez sur la petite disquette située en haut et à droite de la fenêtre Page Editor
gatein_finnish

Voici le résultat final:
gatein_fin_ex01

Là je passe une deuxième commande à eXo Platform. Liferay lorsque l’on retire les boutons de navigation, transforme les boutons de la portlet en lien HTML: « Maximize, Minimise ». Là pour l’instant dans cette version de GateIn, il n’est plus possible de modifier l’état de la portlet. J’aimerai un lien « Configuration » pour passer à l’écran de configuration de la portlet directement sans passer par le mode édition. Rien de grave bien entendu, il s’agit encore d’une version beta de GateIn.

Conclusion

Dans ce premier article nous avons vu comment installer GateIn, créer sa première page, déployer une portlet et modifier ensuite les pages du site. Je n’ai pas couvert la partie Java de ma Portlet, nous en parlerons dans un prochain article.

Voilà j’espère que cet article vous permettra de commencer à utiliser GateIn.