Note d'installation pour l'intégration de Esup 3.2.4 et de Grouper via le GroupStore dans le trunk du projet UPortal.
Pour le moment cela s'apparente plus à un hack :)
Etape 1 : Récupération des librairies
J'ai globalement suivi les instructions de Chris Hyzer pour pouvoir juste compiler le projet
Récupération du trunk uPortal : svn co https://source.jasig.org/uPortal/trunk
modification de grouper.client.properties
modification de compositeGroupServices.xml
mvn install
Je mets à disposition un zip avec tous les fichiers compiler avec une JDK 1.6
Etape 2 : copie des sources vers Esup 3.2.4
Le code du groupStore de gouper
mkdir -p <customDir>/uPortal/uportal-impl/src/main/java/org/jasig/portal/groups/grouper cp <uportalSrc>/uportal-war/src/main/java/org/jasig/portal/groups/grouper/*.java <customDir>/uPortal/uportal-impl/src/main/java/org/jasig/portal/groups/grouper
Les dépendances pour le client grouper
Pour la compilation
cp <esupSrc>/uPortal_rel-3.2.4/uportal-impl/pom.xml <customDir>/uPortal/uportal-impl/
Edition du fichier pom.xml pour ajouter
vim <customDir>/uPortal/uportal-impl/pom.xml
ajouter les lignes suivantes
<dependency> <groupId>edu.internet2.middleware.grouper</groupId> <artifactId>grouperClient</artifactId> </dependency>
juste après la dépendance dom4j par exemple.
pour le repository du client grouper.
cp <esupSrc>/uPortal_rel-3.2.4/pom.xml <customDir>/uPortalajouter la ligne suivante
ajouter la ligne suivante
<grouperClient.version>1.6.3</grouperClient.version>
juste avant <hibernate.version> dans le groupe des dépendances de version.
ajouter les lignes suivantes
<dependency>
<groupId>edu.internet2.middleware.grouper</groupId>
<artifactId>grouperClient</artifactId> <version>$
</version>
</dependency>
Le seul fichier à modifier est grouper.client.properties qui contient l'url et le compte d'accès au web service de Grouper.
Ensuite copie des fichiers :
- grouperClients-1.6.3.jar -> webapps/uPortal/WEB-INF/lib
- le répertoire grouper -> webapps/uPortal/WEB-INF/classes/org/jasig/portal/groups
- grouper.client.properties -> webapps/uPortal/WEB-INF/classes
- compositeGroupServices.xml -> webapps/uPortal/WEB-INF/classes/properties/groups
Comme le fichier grouper.client.properties et les librairies n'existent pas dans les sources, ils ne sont pas écrasés à chaque déploiement. Pour ne pas perdre le fichier compositeGroupServices.xml à chauqe déploiement, il suffit de la mettre dans <répertoire d'installation>/custom/uPortal/uportal-impl/src/main/resources/properties/groups
Etape 3 : Patch du gestionnaire de groupes d'uPortal
L'utilisation de : comme séparateur dans le nommage des groupes dans Grouper pose un problème au gestionnaire groupes d' uPortal. Ce problème a déjà été reporté dans le Jira de uPortal (merci à Julien Gribonvald pour l'information) et Bill Brown a déjà proposé un patch https://issues.jasig.org/secure/attachment/11917/rel-3-2-patches.patch.
Pour ce faire, j'ai tout simplement modifié le fichier source de uPortal avec les différences décrites dans le fichier patch.
Une fois les modifications faîtes, retour dans le réperrtoire d'installation de esup et le classique : ant init deploy
Etape 3 : transfert des librairies vers votre Esup 3.2.4
Pour que Grouper soit pris en compte par le portail, il faut encore y transférer les librairies pour Grouper. Dans cette première approche très brouillone, je copie directement les librairies dans la webapp uPortal en partant des fichiers obtenus à l'étape 1 ou le zip.
Le seul fichier à modifier est grouper.client.properties qui contient l'url et le compte d'accès au web service de Grouper.
Ensuite copie des fichiers :
- grouperClients-1.6.3.jar -> webapps/uPortal/WEB-INF/lib
- le répertoire grouper -> webapps/uPortal/WEB-INF/classes/org/jasig/portal/groups
- grouper.client.properties -> webapps/uPortal/WEB-INF/classes
- compositeGroupServices.xml -> webapps/uPortal/WEB-INF/classes/properties/groups
Comme le fichier grouper.client.properties et les librairies n'existent pas dans les sources, ils ne sont pas écrasés à chaque déploiement. Pour ne pas perdre le fichier compositeGroupServices.xml à chauqe déploiement, il suffit de la mettre dans <répertoire d'installation>/custom/uPortal/uportal-impl/src/main/resources/properties/groups
Bien entendu, il faut redémarrer le portail.