===== Socle Esup 3.2 ===== Installation d'un socle esup-portail 3.2.4 sous centos 5 ===== System ===== cette installation de socle se fait sur un serveur virtuel openvz - centos 5.6 [root@esup32dev ~]# cat /etc/redhat-release CentOS release 5.6 (Final) [root@esup32dev ~]# free total used free shared buffers cached Mem: 1807872 53432 1754440 0 0 0 -/+ buffers/cache: 53432 1754440 Swap: 0 0 0 [root@esup32dev ~]# df -H Filesystem Size Used Avail Use% Mounted on /dev/simfs 5.9G 577M 5.3G 10% / # arch i686 ===== pre-requis mysql ===== disposer d'un serveur mysql et le rendre insensible a la case sur le nom des table mysql (6mn) [root@bd3 ~]# grep case /etc/my.cnf lower_case_table_names=1 Creation de la BD pour uportal mysql> CREATE DATABASE `uportal32dev`; mysql> GRANT ALL PRIVILEGES ON `uportal32dev` .* TO 'uportal'@'%.it-sudparis.eu' WITH GRANT OPTION ; Query OK, 0 rows affected (0.10 sec) mysql> GRANT ALL PRIVILEGES ON `uportal32dev` .* TO 'uportal'@'localhost' WITH GRANT OPTION ; Query OK, 0 rows affected (0.14 sec) Verification [root@bd3 /]# mysql -u uportal -p -e "SHOW DATABASES" Enter password: +--------------------+ | Database | +--------------------+ | information_schema | | uportal32dev | +--------------------+ ===== Pre-requis Java ===== options JVM cf desciptions de script sur la video1 (~20mn ) Les centos/redhat proposent par defaut un environement Java a base de openjdk et gcj . Apparement pas entierement compatible avec esup-uPortal nous allons alors installer un repository suplementaire afin de disposer d'un environement java Sun, mais aussi pour disposer d'un tomcat v6. [root@esup32dev yum.repos.d]# wget http://www.jpackage.org/jpackage50.repo ==== probleme de dependances ==== si probleme de dependance du genre: Missing Dependency: /usr/bin/rebuild-security-providers is needed by package java-1.4.2-gcj-compat-1.4.2.0-40jpp.115.i386 (core-0) cf http://www.centos.org/modules/newbb/viewtopic.php?topic_id=14911 http://www.redhat.com/archives/rhl-devel-list/2006-March/msg00723.html Apparently Redhat released a version of jpackage-utils that includes the dependency, and the problem comes in when the Redhat version of jpackage-utils is replaced by the JPackage version of jpackage-utils. I switched off the jpackage17-generic repository temporarily, and forced an erase of jpackage-utils, then told yum to install jpackage-utils. CE que j'ai fais sur ecm3: disable (enable=0) sur le repo jpackage-generic [root@ecm3 yum.repos.d]# vim jpackage50.repo [jpackage-generic] name=JPackage (free), generic mirrorlist=http://www.jpackage.org/mirrorlist.php?dist=generic&type=free&release=5.0 failovermethod=priority gpgcheck=1 gpgkey=http://www.jpackage.org/jpackage.asc enabled=0 retrait sauvage (--nodeps) de jpackage-utils [root@ecm3 yum.repos.d]# rpm -e jpackage-utils --nodeps installation (depuis centos repo !) [root@ecm3 yum.repos.d]# yum install jpackage-utils cela passe alors avec celui ci $ rpm -q jpackage-utils jpackage-utils-1.7.3-1jpp.2.el5 ou bien mieux http://plone.lucidsolutions.co.nz/linux/centos/jpackage-jpackage-utils-compatibility-for-centos-5.x [root@esup32dev /etc/tomcat6/rpmbuild/SPECS] $ vim jpackage-utils-compat-el5.spec [root@esup32dev /etc/tomcat6/rpmbuild/SPECS] $ rpmbuild -ba jpackage-utils-compat-el5.spec Wrote: /usr/src/redhat/RPMS/noarch/jpackage-utils-compat-el5-0.0.1-1.noarch.rpm Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.96362 + umask 022 + cd /usr/src/redhat/BUILD + rm -rf /var/tmp/jpackage-utils-compat-el5-0.0.1-1-Sv9541 + exit 0 [root@esup32dev /etc/tomcat6/rpmbuild/SPECS] $ rpm -Uvh /usr/src/redhat/RPMS/noarch/jpackage-utils-compat-el5-0.0.1-1.noarch.rpm Preparing... ########################################### [100%] 1:jpackage-utils-compat-e########################################### [100%] alors on dispose enfin d'un package jpackage-utils qui "provides / annonce" la presence du fameux fichier %files %defattr(-,root,root,-) %{_bindir}/rebuild-security-providers maintenant on a ces deux packages, le deuxiemme completant simplement le premier pour annoncer à la base rpm la presence sur disk de /usr/bin/rebuild-security-providers [root@esup32dev /etc/tomcat6/rpmbuild/SPECS] $ rpm -qa | grep jpackage jpackage-utils-1.7.3-1jpp.2.el5 jpackage-utils-compat-el5-0.0.1-1 ===== Tomcat ===== l'installation de tomcat6 entraine l'installation du JRE (ici java-1.6.0-sun.x86_64) sous forme de dependance : $ yum install tomcat6 Transaction Summary ============================================================================================================================= Install 48 Package(s) Update 1 Package(s) Remove 0 Package(s) Total download size: 51 M Installed: tomcat6.noarch 0:6.0.26-1.jpp5 Dependency Installed: at.x86_64 0:3.1.8-82.fc6 avahi.x86_64 0:0.6.16-6.el5 avahi-compat-libdns_sd.x86_64 0:0.6.16-6.el5 bc.x86_64 0:1.06-21 bitstream-vera-fonts.noarch 0:1.10-7 cairo.x86_64 0:1.2.4-5.el5 cups.x86_64 1:1.3.7-11.el5_4.6 dbus-glib.x86_64 0:0.73-8.el5 dbus-python.x86_64 0:0.70-9.el5_4 ecj.noarch 1:3.3.1.1-3.jpp5 fontconfig.x86_64 0:2.4.1-7.el5 freetype.x86_64 0:2.2.1-21.el5_3 gettext.x86_64 0:0.14.6-4.el5 jakarta-commons-collections-tomcat5.noarch 0:3.1-9.jpp5 jakarta-commons-daemon.noarch 1:1.0.1-7.jpp5 jakarta-commons-dbcp-tomcat5.noarch 0:1.2.2-2.jpp5 jakarta-commons-logging.noarch 0:1.1-8.jpp5 jakarta-commons-pool-tomcat5.noarch 0:1.3-11.jpp5 java-1.6.0-sun.x86_64 0:1.6.0.6-1jpp jpackage-utils.noarch 0:5.0.0-2.jpp5 libICE.x86_64 0:1.0.1-2.1 libSM.x86_64 0:1.0.1-3.1 libX11.x86_64 0:1.0.3-11.el5 libXau.x86_64 0:1.0.1-3.1 libXdmcp.x86_64 0:1.0.1-2.1 libXext.x86_64 0:1.0.1-2.1 libXft.x86_64 0:2.1.10-1.1 libXi.x86_64 0:1.0.1-4.el5_4 libXp.x86_64 0:1.0.0-8.1.el5 libXrender.x86_64 0:0.9.1-3.1 libXt.x86_64 0:1.0.2-3.1.fc6 libXtst.x86_64 0:1.0.1-3.1 libXxf86vm.x86_64 0:1.0.1-3.1 libdaemon.x86_64 0:0.10-5.el5 libdrm.x86_64 0:2.0.2-1.1 libxml2-python.x86_64 0:2.6.26-2.1.2.8 mesa-libGL.x86_64 0:6.5.1-7.7.el5 pango.x86_64 0:1.14.9-8.el5.centos paps.x86_64 0:0.6.6-18.el5 patch.x86_64 0:2.5.4-29.2.3.el5 pax.x86_64 0:3.4-1.2.2 redhat-lsb.x86_64 0:3.1-12.3.EL.el5.centos tomcat6-el-1.0-api.noarch 0:6.0.26-1.jpp5 tomcat6-jsp-2.1-api.noarch 0:6.0.26-1.jpp5 tomcat6-lib.noarch 0:6.0.26-1.jpp5 tomcat6-servlet-2.5-api.noarch 0:6.0.26-1.jpp5 xorg-x11-filesystem.noarch 0:7.1-2.fc6 Dependency Updated: cups-libs.x86_64 1:1.3.7-11.el5_4.6 Si on souhaite disposer de l'interface d'aministration de tomcat $ yum install tomcat6-webapps tomcat6-admin-webapps Installed: tomcat6-webapps.noarch 0:6.0.26-1.jpp5 tomcat6-admin-webapps.noarch 0:6.0.26-1.jpp5 Dependency Installed: jakarta-taglibs-standard.noarch 0:1.1.2-7.jpp5 tomcat5-jsp-2.0-api.noarch 0:5.5.27-7.jpp5 tomcat5-servlet-2.4-api.noarch 0:5.5.27-7.jpp5 xalan-j2.noarch 0:2.7.0-10.jpp5 xerces-j2.noarch 0:2.7.1-12.jpp5 xml-commons.noarch 0:1.3.04-5.jpp5 xml-commons-jaxp-1.3-apis.noarch 0:1.3.04-5.jpp5 xml-commons-resolver12.noarch 0:1.3.04-5.jpp5 === repertoire lib 5->6 === en tomcat5 il y avait des librairies dans common et shared, depuis le 6 il y a seulement un repertoire lib. pour la compatibilité avec les anciens canaux esup , il faut recreer cette arborescence de lib. tomcat5 [root@esupdev4 /usr/share/tomcat5] $ ls -al total 12 drwxr-xr-x 3 root root 4096 oct 15 2009 . drwxr-xr-x 50 root root 4096 jun 19 2009 .. drwxr-xr-x 2 root root 4096 oct 15 2009 bin lrwxrwxrwx 1 root root 23 oct 15 2009 common -> /var/lib/tomcat5/common lrwxrwxrwx 1 root root 12 oct 15 2009 conf -> /etc/tomcat5 lrwxrwxrwx 1 root root 16 oct 15 2009 logs -> /var/log/tomcat5 lrwxrwxrwx 1 root root 23 oct 15 2009 server -> /var/lib/tomcat5/server lrwxrwxrwx 1 root root 23 oct 15 2009 shared -> /var/lib/tomcat5/shared lrwxrwxrwx 1 root root 23 oct 15 2009 temp -> /var/cache/tomcat5/temp lrwxrwxrwx 1 root root 24 oct 15 2009 webapps -> /var/lib/tomcat5/webapps lrwxrwxrwx 1 root root 23 oct 15 2009 work -> /var/cache/tomcat5/work tomcat6 [root@esup3dev /usr/share/tomcat6] $ ls -l total 4 drwxr-xr-x 2 root root 4096 Apr 24 17:01 bin lrwxrwxrwx 1 root root 12 Apr 24 17:01 conf -> /etc/tomcat6 lrwxrwxrwx 1 root root 23 Apr 24 17:01 lib -> /usr/share/java/tomcat6 lrwxrwxrwx 1 root root 16 Apr 24 17:01 logs -> /var/log/tomcat6 lrwxrwxrwx 1 root root 23 Apr 24 17:01 temp -> /var/cache/tomcat6/temp lrwxrwxrwx 1 root root 24 Apr 24 17:01 webapps -> /var/lib/tomcat6/webapps lrwxrwxrwx 1 root root 23 Apr 24 17:01 work -> /var/cache/tomcat6/work adaptation [root@esup3dev /usr/share/tomcat6] $ mkdir -p /var/lib/tomcat6/common/classes ; mkdir -p /var/lib/tomcat6/common/endorsed ; mkdir -p /var/lib/tomcat6/common/lib ; mkdir -p /var/lib/tomcat6/shared/classes ; mkdir -p /var/lib/tomcat6/shared/lib [root@esup3dev /usr/share/tomcat6] $ ln -s /var/lib/tomcat6/common common ; ln -s /var/lib/tomcat6/shared shared [root@esup3dev /usr/share/tomcat6] $ ls -l common shared lrwxrwxrwx 1 root root 23 Apr 24 17:50 common -> /var/lib/tomcat6/common lrwxrwxrwx 1 root root 23 Apr 24 17:50 shared -> /var/lib/tomcat6/shared modification de catalina.properties $ diff /etc/tomcat6/catalina.properties.orig /etc/tomcat6/catalina.properties 47c47 < common.loader=${catalina.base}/lib,${catalina.base}/lib/*.jar,${catalina.home}/lib,${catalina.home}/lib/*.jar --- > common.loader=${catalina.base}/lib,${catalina.base}/lib/*.jar,${catalina.home}/lib,${catalina.home}/lib/*.jar,${catalina.home}/common/classes,${catalina.home}/common/endorsed/*.jar,${catalina.home}/common/lib/*.jar ==== Java JDK ==== depuis les package *non-free* de jpackage, nous avons recompilé sur un repository maison un package binaire de java-sun [root@esupdev2 /]# yum install java-1.6.0-sun-devel ============================================================================================================================================================ Package Arch Version Repository Size ============================================================================================================================================================ Installing: java-1.6.0-sun-devel i586 1.6.0.21-1jpp el5-i386-perso 23 M Installing for dependencies: freetype i386 2.2.1-28.el5_5.1 Ce5-i386-updates 312 k java-1.6.0-sun i586 1.6.0.21-1jpp el5-i386-perso 43 M jpackage-utils noarch 1.7.3-1jpp.2.el5 core-0 61 k libX11 i386 1.0.3-11.el5 core-0 796 k libXau i386 1.0.1-3.1 core-0 18 k libXdmcp i386 1.0.1-2.1 core-0 19 k libXext i386 1.0.1-2.1 core-0 35 k libXfont i386 1.2.2-1.0.3.el5_1 core-0 241 k libXi i386 1.0.1-4.el5_4 core-0 25 k libXtst i386 1.0.1-3.1 core-0 15 k libfontenc i386 1.0.2-2.2.el5 core-0 19 k xorg-x11-filesystem noarch 7.1-2.fc6 core-0 5.4 k xorg-x11-font-utils i386 1:7.1-2 core-0 75 k Transaction Summary ============================================================================================================================================================ Install 14 Package(s) Upgrade 0 Package(s) Total download size: 68 M Is this ok [y/N]: y au final entre le jdk et le jre java-sun nous avons [root@esupdev2 /]# ls -l /usr/lib/jvm/ total 4 lrwxrwxrwx 1 root root 26 Mar 23 18:16 java -> /etc/alternatives/java_sdk lrwxrwxrwx 1 root root 32 Mar 23 18:16 java-1.6.0 -> /etc/alternatives/java_sdk_1.6.0 lrwxrwxrwx 1 root root 23 Mar 23 18:16 java-1.6.0-sun -> java-1.6.0-sun-1.6.0.21 drwxr-xr-x 6 root root 4096 Mar 23 18:16 java-1.6.0-sun-1.6.0.21 lrwxrwxrwx 1 root root 30 Mar 23 18:16 java-sun -> /etc/alternatives/java_sdk_sun lrwxrwxrwx 1 root root 21 Mar 23 18:16 jre -> /etc/alternatives/jre lrwxrwxrwx 1 root root 27 Mar 23 18:16 jre-1.6.0 -> /etc/alternatives/jre_1.6.0 lrwxrwxrwx 1 root root 27 Mar 23 18:16 jre-1.6.0-sun -> java-1.6.0-sun-1.6.0.21/jre lrwxrwxrwx 1 root root 25 Mar 23 18:16 jre-sun -> /etc/alternatives/jre_sun Soit, en suivant les liens, le java_home est : root@esupdev2 /]# ls -l /usr/lib/jvm/java-1.6.0-sun-1.6.0.21/ total 16 drwxr-xr-x 2 root root 4096 Mar 23 18:16 bin drwxr-xr-x 3 root root 4096 Mar 23 18:16 include drwxr-xr-x 5 root root 4096 Mar 23 18:16 jre drwxr-xr-x 3 root root 4096 Mar 23 18:16 lib [root@esupdev2 /]# /usr/sbin/alternatives --config java There is 1 program that provides 'java'. Selection Command ----------------------------------------------- *+ 1 /usr/lib/jvm/jre-1.6.0-sun/bin/java Enter to keep the current selection[+], or type selection number: 1 ==== Ant ==== il y a un problem entre centos et jpackage sur une depandance pour ant $ yum install ant --> Processing Dependency: /usr/bin/rebuild-security-providers for package: java-1.4.2-gcj-compat https://bugzilla.redhat.com/show_bug.cgi?id=260161 --> Missing Dependency: /usr/bin/rebuild-security-providers is needed by package java-1.4.2-gcj-compat-1.4.2.0-40jpp.115.x86_64 (ce5-x86_64-Everything) retrait de jpckage-utils (from jpackage 5.0) Removing: jpackage-utils noarch 5.0.0-2.jpp5 installed 172 k [root@esup3dev ~] $ rpm -e jpackage-utils --nodeps reinstallation depuis le repo centos en version 1.7 incluant le fameux rebuild-security-providers [root@esup3dev ~] $ yum install jpackage-utils Installing: jpackage-utils noarch 1.7.3-1jpp.2.el5 ce5-x86_64-Everything 61 k [root@esup3dev ~] $ rpm -qli jpackage-utils | grep rebuild-security /usr/bin/rebuild-security-providers ainsi le yum install ant fonctionne correctement maintenant avec toutefois un desable temporaire de jpackage-generic $ yum --disablerepo=jpackage-generic install ant ant-apache-regexp ant-contrib =========================================================================================================================== Package Arch Version Repository Size =========================================================================================================================== Installing: ant x86_64 1.6.5-2jpp.2 ce5-x86_64-Everything 2.3 M ant-apache-regexp x86_64 1.6.5-2jpp.2 ce5-x86_64-Everything 28 k ant-contrib noarch 1.0-0.10.b2.el5 el5-x86_64-epel 221 k Installing for dependencies: alsa-lib x86_64 1.0.17-1.el5 core-0 414 k antlr x86_64 2.7.6-4jpp.2 core-0 1.1 M atk x86_64 1.12.2-1.fc6 core-0 224 k gjdoc x86_64 0.7.7-12.el5 core-0 886 k gtk2 x86_64 2.10.4-20.el5 core-0 6.5 M hicolor-icon-theme noarch 0.9-2.1 core-0 25 k java-1.4.2-gcj-compat x86_64 1.4.2.0-40jpp.115 core-0 29 k junit x86_64 3.8.2-3jpp.1 core-0 337 k libXcursor x86_64 1.1.7-1.1 core-0 32 k libXfixes x86_64 4.0.1-2.1 core-0 15 k libXinerama x86_64 1.0.1-2.1 core-0 9.8 k libXrandr x86_64 1.1.1-3.1 core-0 15 k libart_lgpl x86_64 2.3.17-4 core-0 75 k libgcj x86_64 4.1.2-46.el5_4.2 Ce5-x86_64-updates 18 M regexp x86_64 1.4-2jpp.2 core-0 102 k zip x86_64 2.31-2.el5 core-0 136 k Transaction Summary =========================================================================================================================== Install 19 Package(s) Update 0 Package(s) Remove 0 Package(s) Total download size: 30 M Is this ok [y/N]: y ==== Ant nodeps ==== si au premier lancement de ant sur le package esup il plante sur : [esup@esup32dev ~/esup-install] $ ant usage Buildfile: build.xml BUILD FAILED /home/esup/esup-uPortal-3.2.4-esup-1.0.0-RC3/build.xml:14: Could not create task or type of type: replaceregexp. ... il manque alors le package ant-nodeps [root@esup32dev /etc/tomcat6] $ yum --disablerepo=jpackage-generic install ant-nodeps ================================================================================================================================= Package Arch Version Repository Size ================================================================================================================================= Installing: ant-nodeps i386 1.6.5-2jpp.2 core-0 794 k Transaction Summary ================================================================================================================================= Install 1 Package(s) Upgrade 0 Package(s) Total download size: 794 k Is this ok [y/N]: y ==== ant update ==== apres mis en place de du package maison jpackage-utils-compat-el5-0.0.1-1.noarch.rpm on peux lancer proprement un update de ant pour passer d'une 1.6 (centos) a 1.7 (jpackage) [root@esup32dev /etc/tomcat6/rpmbuild/SPECS] $ yum update ant ================================================================================================================================= Package Arch Version Repository Size ================================================================================================================================= Installing: xml-commons-jaxp-1.3-apis noarch 1.3.04-5.jpp5 jpackage-generic 224 k replacing xml-commons-apis.i386 1.3.02-0.b2.7jpp.10 Updating: ant noarch 1.7.1-7.jpp5 jpackage-generic 1.3 M Updating for dependencies: ant-apache-regexp noarch 1.7.1-7.jpp5 jpackage-generic 19 k ant-nodeps noarch 1.7.1-7.jpp5 jpackage-generic 400 k jpackage-utils noarch 5.0.0-2.jpp5 jpackage-generic 72 k xml-commons noarch 1.3.04-5.jpp5 jpackage-generic 9.0 k Transaction Summary ================================================================================================================================= Install 1 Package(s) Upgrade 5 Package(s) Total download size: 2.0 M Is this ok [y/N]: y ===== user esup ===== tous les travaux de parametrage, compilation se feront avec un utilisateur dedié non privilégié: esup $ useradd esup $ su - esup [esup@esup3dev ~] $ pwd /home/esup anticiper les droits d'acces au deploy d'esup $ mkdir /usr/share/tomcat6/webapps/uPortal $ chown esup /usr/share/tomcat6/webapps/uPortal $ mkdir /usr/share/tomcat6/webapps/ResourceServingWebapp $ chown esup /usr/share/tomcat6/webapps/ResourceServingWebapp ===== Package Esup ===== ==== archive ==== recuperer l'archive uPortal-esup-DLM depuis https://sourcesup.cru.fr/frs/download.php/3562/esup-uPortal-3.2.4-esup-1.0.0-RC3.tar.gz travailler en tant qu'utilisateur esup. [esup@esup32dev ~] $ wget https://sourcesup.cru.fr/frs/download.php/3562/esup-uPortal-3.2.4-esup-1.0.0-RC3.tar.gz $ tar xvfz esup-uPortal-3.2.4-esup-1.0.0-RC3.tar.gz [esup@esup32dev ~] $ ln -s esup-uPortal-3.2.4-esup-1.0.0-RC3 esup-install [esup@esup32dev ~] $ ll total 2136 lrwxrwxrwx 1 esup esup 33 May 20 17:39 esup-install -> esup-uPortal-3.2.4-esup-1.0.0-RC3 drwxr-xr-x 6 esup esup 4096 Feb 14 09:09 esup-uPortal-3.2.4-esup-1.0.0-RC3 -rw-rw-r-- 1 esup esup 2178865 May 20 17:24 esup-uPortal-3.2.4-esup-1.0.0-RC3.tar.gz ==== Taches ant ==== Voici les taches ant disponiblent dans le build.xml: [esup@esup32dev ~/esup-install] $ ant usage Buildfile: build.xml Trying to override old definition of task java Trying to override old definition of task javac Trying to override old definition of task for _version.display: [echo] Esup version : esup-3.2.4-1.0--RC30 [echo] - Use uPortal [3.2.4] usage: [echo] *** How to use this package by step *** [echo] *** 1) Rename build.sample.properties to build.properties [echo] *** 2) adapt build.properties (java_home, etc...) [echo] *** 3) Rename config.sample.properties to config.properties [echo] *** 4) Adapt config.properties [echo] *** 5) Adapt ant.[cmd|sh] (JAVA_HOME) [echo] *** 6) ant getcomponents : get remote components like uPortal sources [echo] *** 7) ant unzip : unzip remote components [echo] *** 8) ant init : init the package installation [echo] *** 9) ant db.test : test the database connection (becareful if you use production packageupdate your server.xml in tomcat before) [echo] *** 10) ant db.init : init the database (erase all data) [echo] *** 11) ant deploy : deploy portal in tomcat [echo] *** 12) start-esup.[cmd|sh] : start embedded tomcat server [echo] *** [echo] *** look in logs folder (portal.log) BUILD SUCCESSFUL Total time: 0 seconds [esup@esup32dev ~/esup-install] $ ant -p Buildfile: build.xml Trying to override old definition of task java Trying to override old definition of task javac Trying to override old definition of task for Main targets: clean Clean uPortal compile db.delete Delete to database db.export Export database part db.import Import to database db.init Drops all tables, then runs all the targets necessary prepare the portal database db.test Displays information about the database defined in rdbm.properties deploy Deploy deploy-ear deploy-ear getcomponents get remote components hsql.start Start Hsql Server hsql.stop Stop Hsql Server init Initialization package.clean Make a clean of package package.make Make a package portlet.deploy Deploy a portlet application properties.debug Display properties undeploy Clean deploy file unzip unzip remote components usage How to se this package user.add Add on uPortal user user.del Delete one uPortal user users.del Delete users from flat file users.ldap.add Add users from LDAP to database Default target: usage ==== Annecdote memoire openvz ==== les taches ant peuvent comsomer beaucoup de ressources, ici sur notre serveur virtuel (container) openvz, l'allocation de 768M de ram n'est pas suffisante. [esup@esup3dev ~/src/esup-3.1.2-esup-0.5-RC3] $ ant getcomponents Buildfile: build.xml _version.display: [echo] Esup version : esup-3.1.2-0.5-RC3 [echo] - Use uPortal [3.1.2] _prepare: [mkdir] Created dir: /home/esup/src/esup-3.1.2-esup-0.5-RC3/packages [mkdir] Created dir: /home/esup/src/esup-3.1.2-esup-0.5-RC3/temp [mkdir] Created dir: /home/esup/src/esup-3.1.2-esup-0.5-RC3/logs _script.init: [echo] Init env.sh [copy] Copying 1 file to /home/esup/src/esup-3.1.2-esup-0.5-RC3 BUILD FAILED /home/esup/src/esup-3.1.2-esup-0.5-RC3/resources/ant-files/package.xml:55: The following error occurred while executing this line: /home/esup/src/esup-3.1.2-esup-0.5-RC3/resources/ant-files/script.xml:95: Execute failed: java.io.IOException: Cannot run program "chmod": java.io.IOException: error=12, Cannot allocate memory en effet [root@epidaure ~]# vzctl exec 21230 cat /proc/user_beancounters Version: 2.5 uid resource held maxheld barrier limit failcnt 21230: kmemsize 4953414 6300969 14372700 14790164 0 lockedpages 0 0 256 256 0 privvmpages 77174 205337 196608 196608 1 cf le failcnt = 1 pour privvmpages ! on passe a 1G [root@epidaure ~]# vzctl set 21230 --privvmpages $((256 * 1024)) --save UB limits were set successfully Configure meminfo: 262144 Saved parameters for CT 21230 ==== Ant getcomponents ==== recuperation online de uPortal 3.2.4 [esup@esup32dev ~/esup-install] $ ant getcomponents Buildfile: build.xml Trying to override old definition of task java Trying to override old definition of task javac Trying to override old definition of task for _version.display: [echo] Esup version : esup-3.2.4-1.0--RC30 [echo] - Use uPortal [3.2.4] _prepare: [mkdir] Created dir: /home/esup/esup-uPortal-3.2.4-esup-1.0.0-RC3/packages [mkdir] Created dir: /home/esup/esup-uPortal-3.2.4-esup-1.0.0-RC3/temp [mkdir] Created dir: /home/esup/esup-uPortal-3.2.4-esup-1.0.0-RC3/logs Trying to override old definition of task java Trying to override old definition of task javac Trying to override old definition of task for Trying to override old definition of task for _script.init: [echo] Init env.sh [copy] Copying 1 file to /home/esup/esup-uPortal-3.2.4-esup-1.0.0-RC3 [echo] Init start-esup.sh [copy] Copying 1 file to /home/esup/esup-uPortal-3.2.4-esup-1.0.0-RC3 [echo] Init stop-esup.sh [copy] Copying 1 file to /home/esup/esup-uPortal-3.2.4-esup-1.0.0-RC3 getcomponents: Trying to override old definition of task java Trying to override old definition of task javac Trying to override old definition of task for Trying to override old definition of task for _uportal.getRemote: [echo] Download uPortal ... [get] Getting: http://www.ja-sig.org/downloads/uportal/uPortal-3.2.4/uPortal-3.2.4.tar.gz [get] To: /home/esup/esup-uPortal-3.2.4-esup-1.0.0-RC3/packages/uPortal-3.2.4.tar.gz BUILD SUCCESSFUL Total time: 5 seconds [esup@esup32dev ~/esup-install] $ locate uPortal-3.2.4.tar.gz /home/esup/esup-uPortal-3.2.4-esup-1.0.0-RC3/packages/uPortal-3.2.4.tar.gz ==== ant unzip ==== desarchivage de uPortal [esup@esup32dev ~/esup-install] $ ant unzip Buildfile: build.xml Trying to override old definition of task java Trying to override old definition of task javac Trying to override old definition of task for unzip: Trying to override old definition of task java Trying to override old definition of task javac Trying to override old definition of task for Trying to override old definition of task for _uportal.unzip: [untar] Expanding: /home/esup/esup-uPortal-3.2.4-esup-1.0.0-RC3/packages/uPortal-3.2.4.tar.gz into /home/esup/esup-uPortal-3.2.4-esup-1.0.0-RC3/temp [move] Moving 2764 files to /home/esup/esup-uPortal-3.2.4-esup-1.0.0-RC3/Portail/uPortal_rel-3.2.4 BUILD SUCCESSFUL Total time: 1 second ===== build.properties ===== adaptation du build.properties a partir du sample [esup@esup32dev ~/esup-install] $ diff build.sample.properties build.properties 2c2 < java_home=/usr/java/jdk1.6.0_16 --- > java_home=/usr/lib/jvm/java-1.6.0-sun 8c8 < ant_home=${basedir.conv}/resources/${ant.package.final} --- > ant_home=/usr/share/ant/ 11c11 < esup.deploy=${esup.base}/webapps --- > esup.deploy=/usr/share/tomcat6/webapps 15c15,18 < server.home=${esup.base}/apache-tomcat-${tomcat.ver} --- > ##### Replace server.home with the location of Tomcat 6 on your machine ##### > # path to tomcat binaries > #server.home=${esup.base}/apache-tomcat-${tomcat.ver} > server.home=/usr/share/tomcat6 30c33 < mvn_home=${esup.base}/${mvn.package.final} --- > mvn_home=/usr/local/maven2/ 34c37,38 < mvn_repo=${esup.base}/maven-repo --- > #mvn_repo=${esup.base}/maven-repo > mvn_repo=/usr/local/maven2 ==== config.properties ==== [esup@esup32dev ~/esup-install] $ diff config.sample.properties config.properties 14c14 < esup.public.host=localhost --- > esup.public.host=esup32dev.it-sudparis.eu 17c17 < esup.public.uri= --- > esup.public.uri=/uPortal 27,30c27,30 < esup.ldap.url=ldap://ldap1.univ.fr:389 ldap://ldap2.univ.fr:389 < esup.ldap.baseDN=dc=univ,dc=fr < esup.ldap.bindDN= < esup.ldap.bindPasswd= --- > esup.ldap.url=ldap://ldapesup1.it-sudparis.eu:389 ldap://ldapesup2.it-sudparis.eu:389 > esup.ldap.baseDN=dc=int-evry,dc=fr > esup.ldap.bindDN=cn=mcibind,ou=system,dc=int-evry,dc=fr > esup.ldap.bindPasswd=secret 38,39c38,39 < esup.cas.host=auth.univ.fr < esup.cas.port.https= --- > esup.cas.host=cas.it-sudparis.eu > esup.cas.port.https=:443 41c41 < esup.cas.uri= --- > esup.cas.uri=/cas 52,53c52,53 < esup.db.username=sa < esup.db.password= --- > esup.db.username=uportal > esup.db.password=secret 55c55 < esup.db.type=hsql --- > esup.db.type=mysql 57c57 < esup.db.url=jdbc:hsqldb:hsql://localhost:8887 --- > esup.db.url=jdbc:mysql://bd.it-sudparis.eu/uportal32dev 59c59 < esup.db.className=org.hsqldb.jdbcDriver --- > #esup.db.className=org.hsqldb.jdbcDriver 61c61 < #esup.db.className=com.mysql.jdbc.Driver --- > esup.db.className=com.mysql.jdbc.Driver 66,67c66,67 < esup.xsl.help.url=http://www.esup-portail.org/display/ESUPMU/Documentations+%28esup-3%29 < esup.xsl.help.login=http://www.esup-portail.org/display/ESUPMU/Documentations+%28esup-3%29 --- > esup.xsl.help.url=http://infopedia.it-sudparis.eu/wikiuser/doku.php?id=documentation:gaspar:openportal > esup.xsl.help.login=http://infopedia.it-sudparis.eu/wikiuser/doku.php?id=documentation:gaspar:esup 97c97 < esup.log.dir=${esup.root}/logs --- > esup.log.dir=/var/log/tomcat6 110c110 < esup.host.logicalName=esup1 --- > esup.host.logicalName=esup32dev ==== ant init ==== role de ant init: ant init prend les update esup les copie dans uportal + customise uportal, en effet tout ce qui est dans custom/uPortal va etre copié dans les sources natives jasig video2 esup 3.2 2mn :!: historique 3.1.2 ... il se peut que la tache init est un probleme avec la boucle for BUILD FAILED /home/esup/src/esup-3.1.2-esup-0.5-RC3/resources/ant-files/uportal-init.xml:4: The following error occurred while executing this line: /home/esup/src/esup-3.1.2-esup-0.5-RC3/resources/ant-files/uportal-init.xml:294: Could not create task or type of type: for. j'avais sur la machine une version de ant-contrib (cf http://standartux.fr/index.php?post/2010/03/08/ant-Could-not-create-task-or-type-of-type%3A-for) qui posait probleme, un update avec la version ant-contrib de jpackage ressoud le problem. ant-contrib-1.0-0.10.b2.el5 vs ant-contrib-1.0-1.b3.1.jpp5 $ yum install ant-contrib =========================================================================================================================== Package Arch Version Repository Size =========================================================================================================================== Updating: ant-contrib noarch 1.0-1.b3.1.jpp5 jpackage-generic 209 k Installing for dependencies: bcel noarch 5.1-16.jpp5 jpackage-generic 459 k ivy noarch 1.3.1-3.jpp5 jpackage-generic 336 k jakarta-commons-cli noarch 1.1-1.jpp5 jpackage-generic 36 k jakarta-commons-codec noarch 1.3-9.jpp5 jpackage-generic 179 k jakarta-commons-httpclient noarch 1:3.0.1-3.jpp5 jpackage-generic 200 k jakarta-oro noarch 2.0.8-4.jpp5 jpackage-generic-updates 72 k Transaction Summary =========================================================================================================================== Install 6 Package(s) Update 1 Package(s) Remove 0 Package(s) Total download size: 1.5 M Is this ok [y/N]: y Apres ceci, la tache s'execute bien fin historique 3.1.2 ... :!: [esup@esup32dev ~/esup-install] $ ant init Buildfile: build.xml Trying to override old definition of task java Trying to override old definition of task javac Trying to override old definition of task for _version.display: [echo] Esup version : esup-3.2.4-1.0--RC30 [echo] - Use uPortal [3.2.4] _prepare: Trying to override old definition of task java Trying to override old definition of task javac Trying to override old definition of task for Trying to override old definition of task for _script.init: init: Trying to override old definition of task java Trying to override old definition of task javac Trying to override old definition of task for Trying to override old definition of task for _uportal.init: [echo] Copy of updates/custom /home/esup/esup-uPortal-3.2.4-esup-1.0.0-RC3/update [copy] Copying 111 files to /home/esup/esup-uPortal-3.2.4-esup-1.0.0-RC3/Portail/uPortal_rel-3.2.4 [copy] Copying 169 files to /home/esup/esup-uPortal-3.2.4-esup-1.0.0-RC3/Portail/uPortal_rel-3.2.4 BUILD SUCCESSFUL Total time: 0 seconds ==== ant deploy ==== ant deploy compile les class (1 milliers !) et les deploient dans webapps/esup-portail, la premiere fois => bcp de downloads de .jar => long (~6mn ) mais cette tache necessite maven $ ant deploy ... [artifact:dependencies] Downloading: org/easymock/easymock/2.4/easymock-2.4.jar from central [artifact:dependencies] Downloading: org/springframework/spring-test/2.5.6/spring-test-2.5.6.jar from central [echo] Artifact '/home/esup/src/esup-3.1.2-esup-0.5-RC3/Portail/uPortal_rel-3.1.2/uportal-impl/target/uportal-impl-3.1.2.jar' is not available or out-of-date, calling 'mvn install' mvn: BUILD FAILED /home/esup/src/esup-3.1.2-esup-0.5-RC3/Portail/uPortal_rel-3.1.2/build.xml:1052: Execute failed: java.io.IOException: Cannot run program "/home/esup/src/esup-3.1.2-esup-0.5-RC3/Portail/apache-maven-2.2.1/bin/mvn" (in directory "/home/esup/src/esup-3.1.2-esup-0.5-RC3/Portail/uPortal_rel-3.1.2/uportal-impl"): java.io.IOException: error=2, No such file or directory Total time: 6 minutes 0 seconds ==== Maven2 ==== ================================================================================================================================= Package Arch Version Repository Size ================================================================================================================================= Installing: maven2 noarch 2.0.7-9.jpp5 jpackage-generic 711 k Installing for dependencies: asm noarch 1.5.3-7.jpp5 jpackage-generic 217 k aspectj noarch 1.5.3-2jpp jpackage-generic 8.1 M axis noarch 1.4-4.jpp5 jpackage-generic 9.9 M bcel noarch 5.1-16.jpp5 jpackage-generic 459 k bea-stax i386 1.2.0-0.4.rc1.el5 el5-i386-epel 380 k bea-stax-api i386 1.2.0-0.4.rc1.el5 el5-i386-epel 55 k bsf noarch 2.3.0-13.jpp5 jpackage-generic 1.2 M bsh noarch 1.3.0-13.jpp5 jpackage-generic 448 k cglib noarch 2.1.3-4.jpp5 jpackage-generic 540 k classworlds noarch 1.1-2.jpp5 jpackage-generic 39 k cssparser noarch 0.9.5-1.jpp5 jpackage-generic 246 k dom4j noarch 1.6.1-10.jpp5 jpackage-generic 300 k easymock2 noarch 2.3-1.jpp5 jpackage-generic 78 k excalibur noarch 1:1.0-0.r508111.13.jpp5 jpackage-generic 26 k excalibur-avalon-framework noarch 1:4.3.1-0.r508111.13.jpp5 jpackage-generic 79 k excalibur-avalon-logkit noarch 1:2.2.1-0.r508111.13.jpp5 jpackage-generic 79 k ganymed-ssh2 noarch 210-5.jpp5 jpackage-generic 241 k geronimo-j2ee-1.4-apis noarch 1.2-13.jpp5 jpackage-generic 948 k geronimo-specs-poms noarch 1.2-13.jpp5 jpackage-generic 21 k geronimo-stax-1.0-api noarch 1.2-13.jpp5 jpackage-generic 31 k glassfish-jaxb noarch 2.1.4-7.jpp5 jpackage-generic 3.5 M hamcrest noarch 1.1-8.jpp5 jpackage-generic 361 k icu4j noarch 3.8.1-5.jpp5 jpackage-generic 4.0 M isorelax noarch 0.1-0.20041111.6.jpp5 jpackage-generic 71 k itext noarch 1.4-3.jpp5 jpackage-generic 1.2 M jakarta-commons-beanutils noarch 1.7.0-10.jpp5 jpackage-generic 342 k jakarta-commons-cli noarch 1.1-1.jpp5 jpackage-generic 36 k jakarta-commons-cli10 noarch 1.0-9.jpp5 jpackage-generic 33 k jakarta-commons-codec noarch 1.3-9.jpp5 jpackage-generic 179 k jakarta-commons-collections i386 3.2-2jpp.3 core-0 1.0 M jakarta-commons-digester noarch 1.8-1jpp jpackage-generic 152 k jakarta-commons-discovery noarch 1:0.4-6.jpp5 jpackage-generic 70 k jakarta-commons-httpclient noarch 1:3.0.1-3.jpp5 jpackage-generic 200 k jakarta-commons-lang noarch 2.1-7.jpp5 jpackage-generic 941 k jakarta-commons-net noarch 1.4.1-4.jpp5 jpackage-generic 166 k jakarta-commons-transaction noarch 1.1-9.jpp5 jpackage-generic 81 k jakarta-oro noarch 2.0.8-4.jpp5 jpackage-generic-updates 72 k jakarta-slide-webdavclient noarch 2.1-8.jpp5 jpackage-generic 215 k jaxen noarch 1.1-3.jpp5 jpackage-generic 671 k jdom noarch 1.0-5.jpp5 jpackage-generic 166 k jline noarch 0.9.94-1.jpp5 jpackage-generic 89 k jmock noarch 1.2.0-2.jpp5 jpackage-generic 280 k jsch noarch 0.1.40-1.jpp5 jpackage-generic 192 k jtidy noarch 1:8.0-0.813.1.jpp5 jpackage-generic 234 k junit4 noarch 4.5-4.jpp5 jpackage-generic 193 k jzlib noarch 1.0.7-4.jpp5 jpackage-generic 37 k log4j noarch 1.2.14-15.jpp5 jpackage-generic 352 k maven-doxia noarch 1.0-0.a10.4.jpp5 jpackage-generic 486 k maven-shared noarch 8-0.p8.5.jpp5 jpackage-generic 6.3 k maven-shared-monitor noarch 1.0-0.p8.5.jpp5 jpackage-generic 9.3 k maven-surefire noarch 2.3.1-3.jpp5 jpackage-generic 52 k maven-surefire-booter noarch 2.3.1-3.jpp5 jpackage-generic 28 k maven-wagon noarch 1.0-0.b2.3jpp jpackage-generic 144 k maven2-common-poms noarch 1.0-6.jpp5 jpackage-generic 47 k msv noarch 1.2-0.20050722.6.jpp5 jpackage-generic 585 k msv-xsdlib noarch 1.2-0.20050722.6.jpp5 jpackage-generic 135 k mx4j i386 1:3.0.1-6jpp.4 core-0 2.5 M ognl noarch 2.6.9-3.jpp5 jpackage-generic 176 k plexus-ant-factory noarch 1.0-0.a1.4.jpp5 jpackage-generic 12 k plexus-archiver noarch 1.0-0.a8.1jpp jpackage-generic 139 k plexus-bsh-factory noarch 1.0-0.a7s.4.jpp5 jpackage-generic 11 k plexus-classworlds noarch 1.2-0.a9.2.jpp5 jpackage-generic 41 k plexus-cli noarch 1.2-2.jpp5 jpackage-generic 11 k plexus-compiler noarch 1.5.3-3.jpp5 jpackage-generic 64 k plexus-container-default noarch 1.0-0.a9s1.1jpp jpackage-generic 162 k plexus-containers noarch 1.0-0.a32.3.jpp5 jpackage-generic 5.8 k plexus-containers-component-api noarch 1.0-0.a32.3.jpp5 jpackage-generic 29 k plexus-containers-container-default noarch 1.0-0.a32.3.jpp5 jpackage-generic 200 k plexus-i18n noarch 1.0-0.b6.5.jpp5 jpackage-generic 13 k plexus-interactivity noarch 1.0-0.a5.6.jpp5 jpackage-generic 15 k plexus-io noarch 1.0-0.a1.1jpp jpackage-generic 13 k plexus-utils noarch 1.4.8-2.jpp5 jpackage-generic 194 k plexus-velocity noarch 1.1.7-1jpp jpackage-generic 11 k qdox noarch 1.6.1-5.jpp5 jpackage-generic 89 k relaxngDatatype noarch 1.0-3.jpp5 jpackage-generic 8.7 k sac noarch 1.3-4.jpp5 jpackage-generic 15 k saxon noarch 6.5.5-1.jpp5 jpackage-generic 415 k saxpath noarch 1.0-3.jpp5 jpackage-generic 34 k servletapi4 noarch 4.0.4-6.jpp5 jpackage-generic 76 k velocity noarch 1.5-4.jpp5 jpackage-generic 363 k werken-xpath noarch 0.9.4-0.beta.13.jpp5 jpackage-generic 74 k ws-jaxme noarch 0.5.1-10.jpp5 jpackage-generic 1.2 M wsdl4j noarch 1.6.2-6.jpp5 jpackage-generic 177 k xml-commons-jaxp-1.2-apis noarch 1.3.04-5.jpp5 jpackage-generic 112 k xml-im-exporter noarch 1.1-4.jpp5 jpackage-generic 42 k xom noarch 1.2.1-1.jpp5 jpackage-generic 267 k xpp2 noarch 2.1.10-6.jpp5 jpackage-generic 239 k xpp3 noarch 1.1.3.8-1.jpp5 jpackage-generic 289 k Transaction Summary ================================================================================================================================= Install 89 Package(s) Upgrade 0 Package(s) Total download size: 47 M historique 3.1 (2010)... si cela plante sur [ERROR] BUILD ERROR [exec] [INFO] ------------------------------------------------------------------------ [exec] [INFO] Internal error in the plugin manager executing goal 'org.apache.maven.plugins:maven-war-plugin:2.1-alpha-2:war': Unable to find the mojo 'org.apache.maven.plugins:maven-war-plugin:2.1-alpha-2:war' in the plugin 'org.apache.maven.plugins:maven-war-plugin' il faut installer le plugin war de maven En 3.2 2011 ================================================================================================================================= Package Arch Version Repository Size ================================================================================================================================= Installing: maven2-plugin-war noarch 2.0.7-9.jpp5 jpackage-generic 53 k Installing for dependencies: giflib i386 4.1.3-7.3.3.el5 Ce5-i386-updates 39 k java-1.6.0-openjdk i386 1:1.6.0.0-1.21.b17.el5 Ce5-i386-updates 37 M jettison noarch 1.2-1.el5 el5-i386-epel 59 k joda-time noarch 1.5.2-7.tzdata2008d.el5 el5-i386-epel 450 k maven-shared-archiver noarch 2.3-0.p8.5.jpp5 jpackage-generic 14 k tzdata-java i386 2011g-1.el5 Ce5-i386-updates 180 k wstx noarch 3.1.1-3.jpp5 jpackage-generic 928 k xstream noarch 1.3.1-1.jpp5 jpackage-generic 391 k Transaction Summary ================================================================================================================================= Install 9 Package(s) Upgrade 0 Package(s) Total download size: 39 M ==== Maven 2.0.9 ===== au momment du premier ant deploy on constate que me maven2 de la centos/jpp ne suffit pas: [artifact:mvn] [ERROR] BUILD ERROR [artifact:mvn] [INFO] ------------------------------------------------------------------------ [artifact:mvn] [INFO] Error resolving version for 'org.apache.maven.plugins:maven-compiler-plugin': Plugin requires Maven v 2.0.9 alors cf http://www.esup-portail.org/display/CASKERB/Installation+Java,+Maven+et+Tomcat on remove maven2 rpm et on met un tar.gz en 2.0.9 =========================================================================================================================== Package Arch Version Repository Size =========================================================================================================================== Removing: maven2 noarch 2.0.7-9.jpp5 installed 1.0 M Removing for dependencies: maven-shared noarch 8-0.p8.5.jpp5 installed 16 k maven-shared-archiver noarch 2.3-0.p8.5.jpp5 installed 12 k maven-shared-monitor noarch 1.0-0.p8.5.jpp5 installed 7.7 k maven2-plugin-war noarch 2.0.7-9.jpp5 installed 53 k Transaction Summary =========================================================================================================================== Remove 5 Package(s) Reinstall 0 Package(s) Downgrade 0 Package(s) Is this ok [y/N]: y donc exeptionnelement dans la philosophie de cet installation (rpm based !) on va utiliser un tar.gz pour disposer de maven >= 2.0.9 ! $ wget ftp://ftp.inria.fr/pub/Apache/maven/binaries/apache-maven-2.2.1-bin.tar.gz [root@esup32dev /usr/local] $ tar xvfz apache-maven-2.2.1-bin.tar.gz apache-maven-2.2.1/boot/classworlds-1.1.jar apache-maven-2.2.1/LICENSE.txt apache-maven-2.2.1/NOTICE.txt apache-maven-2.2.1/README.txt apache-maven-2.2.1/bin/m2.conf apache-maven-2.2.1/bin/mvn.bat apache-maven-2.2.1/bin/mvnDebug.bat apache-maven-2.2.1/bin/mvn apache-maven-2.2.1/bin/mvnDebug apache-maven-2.2.1/conf/ apache-maven-2.2.1/conf/settings.xml apache-maven-2.2.1/lib/maven-2.2.1-uber.jar [root@esup32dev /usr/local] $ ln -s apache-maven-2.2.1 maven2 alors le ant deploy aboutit [esup@esup32dev ~/esup-install] $ ant deploy [artifact:mvn] [INFO] Installing /home/esup/esup-uPortal-3.2.4-esup-1.0.0-RC3/Portail/uPortal_rel-3.2.4/uportal-war/target/uPortal-sources.jar to /home/esup/.m2/repository/org/jasig/portal/uportal-war/3.2.4/uportal-war-3.2.4-sources.jar [artifact:mvn] [INFO] ------------------------------------------------------------------------ [artifact:mvn] [INFO] BUILD SUCCESSFUL [artifact:mvn] [INFO] ------------------------------------------------------------------------ [artifact:mvn] [INFO] Total time: 2 minutes 11 seconds [artifact:mvn] [INFO] Finished at: Sat May 21 09:02:06 CEST 2011 [artifact:mvn] [INFO] Final Memory: 58M/140M [artifact:mvn] [INFO] ------------------------------------------------------------------------ fastWarDeploy: [echo] extractWars=true [echo] removeExisting=false [mkdir] Created dir: /tmp/jasig/uPortal [unwar] Expanding: /home/esup/esup-uPortal-3.2.4-esup-1.0.0-RC3/Portail/uPortal_rel-3.2.4/uportal-war/target/uPortal.war into /tmp/jasig/uPortal [echo] Moving /tmp/jasig/uPortal to /usr/share/tomcat6/webapps [move] Moving 3107 files to /usr/share/tomcat6/webapps BUILD SUCCESSFUL Total time: 4 minutes 10 seconds on trouve alors deployer [esup@esup32dev ~/esup-install] $ ls -l /usr/share/tomcat6/webapps/uPortal/ total 328 -rw-rw-r-- 1 esup esup 1598 Oct 16 2010 error.jsp -rw-rw-r-- 1 esup esup 300318 Oct 16 2010 favicon.ico -rw-rw-r-- 1 esup esup 928 Oct 16 2010 index.jsp drwxrwxr-x 4 esup esup 4096 May 21 09:02 media drwxrwxr-x 3 esup esup 4096 May 21 10:40 META-INF drwxrwxr-x 2 esup esup 4096 May 21 10:40 monitor drwxrwxr-x 2 esup esup 4096 May 21 10:40 private drwxrwxr-x 10 esup esup 4096 May 21 10:40 WEB-INF droit d'acces aux webapps de tomcat $ chgrp -R esup /usr/share/tomcat6/shared/ ; chmod -R 775 /usr/share/tomcat6/shared/ autrement: /home/esup/src/esup-3.1.2-esup-0.5-RC3/Portail/uPortal_rel-3.1.2/build.xml:298: java.io.FileNotFoundException: /usr/share/tomcat6/shared/lib/commons-logging-api-1.1.jar (Permission denied) ==== deploy-ear librarie ==== deploy des librairies necessaire au portail [esup@esup32dev ~/esup-install] $ ant deploy-ear [artifact:mvn] [INFO] [ear:ear {execution: default-ear}] [artifact:mvn] [INFO] Copying artifact[war:org.jasig.portal:uportal-war:3.2.4] to[uPortal.war] [artifact:mvn] [INFO] Copying artifact[war:org.jasig.portal.portlets-overlay:BookmarksPortlet:3.2.4] to[BookmarksPortlet.war] [artifact:mvn] [INFO] Copying artifact[war:org.jasig.portal.portlets-overlay:cas-proxy-test-portlet:3.2.4] to[cas-proxy-test-portlet.war] [artifact:mvn] [INFO] Copying artifact[war:org.jasig.portal.portlets-overlay:FunctionalTestsPortlet:3.2.4] to[FunctionalTestsPortlet.war] [artifact:mvn] [INFO] Copying artifact[war:org.jasig.portal.portlets-overlay:jasig-widget-portlets:3.2.4] to[jasig-widget-portlets.war] [artifact:mvn] [INFO] Copying artifact[war:org.jasig.portal.portlets-overlay:pluto-testsuite:3.2.4] to[pluto-testsuite.war] [artifact:mvn] [INFO] Copying artifact[war:org.jasig.resourceserver:resource-server-webapp:1.0.12] to[ResourceServingWebapp.war] [artifact:mvn] [INFO] Copying artifact[war:org.jasig.portal.portlets-overlay:RssPortlet:3.2.4] to[RssPortlet.war] [artifact:mvn] [INFO] Copying artifact[war:org.jasig.portal.portlets-overlay:WeatherPortlet:3.2.4] to[WeatherPortlet.war] [artifact:mvn] [INFO] Copying artifact[war:org.jasig.portal.portlets-overlay:WebProxyPortlet:3.2.4] to[WebProxyPortlet.war] [artifact:mvn] [INFO] Copying artifact[jar:javax.portlet:portlet-api:1.0] to[portlet-api-1.0.jar] [artifact:mvn] [INFO] Copying artifact[jar:org.apache.pluto:pluto-container:1.1.7] to[pluto-container-1.1.7.jar] [artifact:mvn] [INFO] Copying artifact[jar:org.apache.pluto:pluto-descriptor-api:1.1.7] to[pluto-descriptor-api-1.1.7.jar] [artifact:mvn] [INFO] Copying artifact[jar:org.apache.pluto:pluto-descriptor-impl:1.1.7] to[pluto-descriptor-impl-1.1.7.jar] [artifact:mvn] [INFO] Copying artifact[jar:org.codehaus.castor:castor:1.1.1] to[castor-1.1.1.jar] [artifact:mvn] [INFO] Copying artifact[jar:commons-logging:commons-logging-api:1.1] to[commons-logging-api-1.1.jar] [artifact:mvn] [INFO] Copying artifact[jar:org.apache.pluto:pluto-taglib:1.1.7] to[pluto-taglib-1.1.7.jar] [artifact:mvn] [INFO] Copying artifact[jar:org.jasig.service:person-directory-api:1.5.0-RC6] to[person-directory-api-1.5.0-RC6.jar] BUILD SUCCESSFUL Total time: 37 seconds Possible probleme de permission d'ecriture dans /usr/share/tomcat6/shared /home/esup/esup-uPortal-3.2.4-esup-1.0.0-RC3/Portail/uPortal_rel-3.2.4/build.xml:392: java.io.FileNotFoundException: /usr/share/tomcat6/shared/lib/pluto-taglib-1.1.7.jar (Permission denied) alors on met esup dans le groupe tomcat et $ chmod 775 /usr/share/tomcat6/shared $ chmod 775 /usr/share/tomcat6/shared/lib/ maintenantt apres le ant deploy on retrouve plusieurs librairies à ce niveau [root@esup32dev /etc/tomcat6] $ ls -l /usr/share/tomcat6/shared/lib/ total 2028 -rw-rw-r-- 1 esup esup 1736099 May 22 12:01 castor-1.1.1.jar -rw-rw-r-- 1 esup esup 44598 May 22 12:01 commons-logging-api-1.1.jar -rw-rw-r-- 1 esup esup 3463 May 22 12:01 person-directory-api-1.5.0-RC6.jar -rw-rw-r-- 1 esup esup 142812 May 22 12:01 pluto-container-1.1.7.jar -rw-rw-r-- 1 esup esup 39406 May 22 12:01 pluto-descriptor-api-1.1.7.jar -rw-rw-r-- 1 esup esup 46472 May 22 12:01 pluto-descriptor-impl-1.1.7.jar -rw-rw-r-- 1 esup esup 25969 May 22 12:01 pluto-taglib-1.1.7.jar -rw-rw-r-- 1 esup esup 17090 May 22 12:01 portlet-api-1.0.jar ==== DB init ==== initialisation ed la base de donnée. En esup3 cette etape est plus simplifiée, le mecanisme "d'import" changement completement le mode de fonctionnement par rapport a esup v2.x qui fonctionnait avec un fichier xml ... . il n'y a plus les users de demo, canaux acessoires etc .. video esup 3.2 ~70 - 74 mn , 77mn export bd 3.1 -> 3.2 :!: attention au group "PAGS root" de base qui n'est souvent pas repris dans une implementation locale personalisée de PAGSGroupStoreConfig.xml, cela plante les groupes initiaux de base du db.init :!: cf https://listes.esup-portail.org/sympa/arc/esup-utilisateurs/2011-06/msg00034.html La BD avant mysql> use uportal32dev; Database changed mysql> show tables; Empty set (0.00 sec) === DB test === [esup@esup32dev ~/esup-install] $ ant db.test [echo] Invoking DbTest [java] Connected To: jdbc:mysql://bd.it-sudparis.eu/uportal32dev [java] WARNING: uPortal tables do no exist, not all meta-data tests were executed. [java] [java] Database name: 'MySQL' [java] Database version: '5.0.77' [java] Driver name: 'MySQL-AB JDBC Driver' [java] Driver version: 'mysql-connector-java-5.1.6 ( Revision: ${svn.Revision} )' [java] Driver class: 'MySQL-AB JDBC Driver' [java] Connection URL: 'jdbc:mysql://bd.it-sudparis.eu/uportal32dev' [java] User: 'uportal@157.159.10.94' BUILD SUCCESSFUL Total time: 10 seconds === DB init === [esup@esup32dev ~/esup-install] $ ant db.init [java] INFO drop table if exists UP_VERSIONS [java] INFO drop table if exists UP_USER .... [java] INFO create table UP_VERSIONS (FNAME varchar(255) not null, MAJOR integer, MINOR integer, MICRO integer, DESCRIPTION varchar(255), primary key (FNAME), unique (FNAME, MAJOR, MINOR, MICRO)) type=InnoDB [java] INFO create table UP_USER (USER_ID integer not null, USER_NAME varchar(35), USER_DFLT_USR_ID integer, USER_DFLT_LAY_ID integer, NEXT_STRUCT_ID integer, LST_CHAN_UPDT_DT datetime, primary key (USER_ID)) type=InnoDB ... [java] Import Structure: structure/DLM_mobile_columns-2.structure [java] Import Theme: theme/DLM_Universality_Mobile_2.theme [java] Import Theme: theme/DLM_mUniversality_android.theme [java] Import Template User: user/defaultTemplateUser.template-user [java] Import User: user/admin-lo.user [java] Import User: user/admin.user [java] Import User: user/all-lo.user [java] Import User: user/fragmentTemplate.user [java] Import User: user/guest-lo.user [java] Import User: user/guest.user [java] Import User: user/headerfooter-lo.user [java] Import User: user/system.user [java] Import Group_Membership: group_membership/Administrateurs_Portail.group_membership [java] Import Group_Membership: group_membership/Anonymes.group_membership [java] Import Group_Membership: group_membership/Applications.group_membership [java] Import Group_Membership: group_membership/Canaux_eSup.group_membership .. [java] Import Channel Type: channel-type/Bookmarks_Portlet.channel-type [java] Import Channel Type: channel-type/Custom.channel-type [java] Import Channel Type: channel-type/Image.channel-type [java] Import Channel Type: channel-type/Inline_Frame.channel-type ... [java] Import Channel: channel-esup/ent-info.channel [java] Import Channel: channel-esup/esup-portail-nouvelles.channel [java] Import Channel: channel-esup/esup-portail-rss.channel [java] Import Channel: channel-esup/esup-portail.org.channel [java] Fixing FNAME=esup-portail.org [java] Import Channel: channel-esup/groups-id.channel [java] Import Channel: channel-esup/https-test.channel [java] Import Channel: channel-esup/param-test.channel [java] Import Channel: channel-esup/ws-test.channel [java] Import Channel: channel/AttributeSwapper.channel [java] Import Channel: channel/IdentitySwapper.channel ... [java] Import Layout: layout/defaultTemplateUser.layout [java] Import Layout: layout/fragmentTemplate.layout [java] Import of /home/esup/esup-uPortal-3.2.4-esup-1.0.0-RC3/Portail/uPortal_rel-3.2.4/uportal-impl/src/main/resources/properties/db/mini Complete in 135457 milliseconds. BUILD SUCCESSFUL Total time: 3 minutes 28 seconds Au final, on a une base de donnée remplie de plusieurs tables: mysql> show tables; +------------------------------+ | Tables_in_uportal32dev | +------------------------------+ | up_chan_type | | up_channel | | up_channel_mdata | | up_channel_param | | up_dlm_evaluator | | up_dlm_evaluator_paren | | up_entity_cache_invalidation | | up_entity_lock | | up_entity_prop | | up_entity_type | | up_group | | up_group_membership | | up_layout_param | | up_layout_struct | | up_layout_struct_locale | | up_layout_struct_mdata | | up_mime_type | | up_permission | | up_person_dir | | up_portlet_def | | up_portlet_ent | | up_portlet_pref | | up_portlet_pref_values | | up_portlet_prefs | | up_sequence | | up_ss_map | | up_ss_struct | | up_ss_struct_par | | up_ss_theme | | up_ss_theme_parm | | up_ss_user_atts | | up_ss_user_parm | | up_user | | up_user_layout | | up_user_layout_mdata | | up_user_locale | | up_user_mdata | | up_user_param | | up_user_profile | | up_user_profile_locale | | up_user_profile_mdata | | up_user_ua_map | | up_versions | | upc_perm_mgr | +------------------------------+ 44 rows in set (0.10 sec) Les groupes initiaux: mysql> select * from up_group; +----------+------------+----------------+---------------------------+------------------------------------------+ | GROUP_ID | CREATOR_ID | ENTITY_TYPE_ID | GROUP_NAME | DESCRIPTION | +----------+------------+----------------+---------------------------+------------------------------------------+ | 0 | system | 2 | Tout le monde | Toutes les personnes | | 1 | system | 7 | Toutes les categories | Toutes les categories | | 11 | system | 2 | Anonymes | Utilisateur Anonyme | | 12 | system | 7 | Applications | Applications | | 13 | system | 7 | Canaux eSup | Canaux eSup | | 14 | system | 7 | Canaux uPortal | Canaux uPortal | | 15 | system | 7 | Demonstration | Canaux de d�monstration | | 16 | system | 7 | Information | Canaux d'information | | 17 | system | 2 | Portal System | Portal System Accounts | | 18 | system | 2 | Proprietaires de fragment | These are fragment layout owner accounts | | 2 | system | 2 | Administrateurs Portail | Administrateurs Portail | +----------+------------+----------------+---------------------------+------------------------------------------+ 11 rows in set (0.03 sec) mysql> select * from up_group_membership; +----------+----------------+------------------+-----------------+ | GROUP_ID | MEMBER_SERVICE | MEMBER_KEY | MEMBER_IS_GROUP | +----------+----------------+------------------+-----------------+ | 0 | local | 11 | T | | 0 | local | 18 | T | | 0 | local | 2 | T | | 1 | local | 12 | T | | 1 | local | 13 | T | | 1 | local | 14 | T | | 1 | local | 15 | T | | 1 | local | 16 | T | | 1 | local | 42 | F | | 11 | local | guest | F | | 11 | local | guest-lo | F | | 13 | local | 1 | F | | 13 | local | 2 | F | | 13 | local | 3 | F | | 13 | local | 4 | F | | 13 | local | 5 | F | | 13 | local | 6 | F | | 13 | local | 7 | F | | 13 | local | 8 | F | | 13 | local | 9 | F | | 14 | local | 10 | F | | 14 | local | 11 | F | | 14 | local | 12 | F | | 14 | local | 13 | F | | 14 | local | 15 | F | | 14 | local | 17 | F | | 14 | local | 18 | F | | 14 | local | 19 | F | | 14 | local | 23 | F | | 14 | local | 24 | F | | 14 | local | 25 | F | | 14 | local | 26 | F | | 14 | local | 27 | F | | 14 | local | 28 | F | | 14 | local | 29 | F | | 14 | local | 30 | F | | 14 | local | 31 | F | | 14 | local | 32 | F | | 14 | local | 33 | F | | 14 | local | 34 | F | | 14 | local | 35 | F | | 14 | local | 36 | F | | 14 | local | 37 | F | | 14 | local | 38 | F | | 14 | local | 39 | F | | 14 | local | 40 | F | | 14 | local | 41 | F | | 14 | local | 43 | F | | 14 | local | 44 | F | | 14 | local | 45 | F | | 14 | local | 46 | F | | 14 | local | 48 | F | | 16 | local | 14 | F | | 16 | local | 16 | F | | 16 | local | 20 | F | | 16 | local | 21 | F | | 16 | local | 22 | F | | 16 | local | 47 | F | | 17 | local | 18 | T | | 17 | local | 2 | T | | 18 | local | admin-lo | F | | 18 | local | all-lo | F | | 18 | local | fragmentTemplate | F | | 18 | local | guest-lo | F | | 2 | local | admin | F | | 2 | local | admin-lo | F | +----------+----------------+------------------+-----------------+ 66 rows in set (0.04 sec) ===== Lien apache ===== ==== proxy AJP ==== On met apache en frontal avec le proxy-ajp https://listes.esup-portail.org/sympa/arc/esup-utilisateurs/2010-04/msg00003.html [root@esup32dev /] $ tail -8 /etc/httpd/conf.d/proxy_ajp.conf ProxyPass /uportal ajp://localhost:8009/uportal retry=1 ProxyPass /ResourceServingWebapp ajp://localhost:8009/ResourceServingWebapp retry=1 ProxyPass /BookmarksPortlet ajp://localhost:8009/BookmarksPortlet retry=1 ProxyPass /cas-proxy-test-portlet ajp://localhost:8009/cas-proxy-test-portlet retry=1 ProxyPass /RssPortlet ajp://localhost:8009/RssPortlet retry=1 ProxyPass /WeatherPortlet ajp://localhost:8009/WeatherPortlet retry=1 ProxyPass /WebProxyPortlet ajp://localhost:8009/WebProxyPortlet retry=1 ProxyPass /manager ajp://localhost:8009/manager retry=1 ResourceServingWebapp, ressources indispensables au portail, jqueries ... video esup 3.2 79mn WebProxyPortlet egalement necessaire sinon cela plante ===== contexts tomcat ===== definition du context uPortal et /ResourceServingWebapp pour tomcat, cf http://www.esup-portail.org/display/ESUPMU/Tomcat+en+production video esup 3.2 82mn context ajoutés dans le server.xml de tomcat, sous section de // crossContext a true pour les portlet le portail sera accessible dans ces conditions (ProxyPass /uportal) sur l'URL http://esup32dev.it-sudparis.eu/uPortal/render.userLayoutRootNode.uP ===== SSL ===== il faut une confiance entre le serveur CAS et le serveur du portail esup. c'est en certifiant le frontend apache que cette confiance (communication https entre CAS et uPortal/tomcat/apache) est réalisée. autrement on reçoit suite a une auth CAS ce genre d'erreure javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path validation failed: java.security.cert.CertPathValidatorException: Path does not chain with any of the trust anchors => cf ordre CA-chain ci-dessous !! ==== package ssl apache ==== sur le serveur uPortal on met en place un frontend apache pour recptionner les requetes https (443) du serveur CAS [root@esup3dev ~] $ yum install mod_ssl ==== certificat TCS ==== signature d'un request de certificat par TCS, puis paramtrage apache mod_ssl SSLCertificateFile /etc/pki/tls/certs/cert-1073-esup3dev.it-sudparis.eu.pem SSLCertificateKeyFile /etc/pki/tls/private/esup3dev-1073.key SSLCertificateChainFile /etc/pki/tls/certs/chain-1073-esup3dev.it-sudparis.eu.pem === Ordre de la CA-chain === https://listes.esup-portail.org/sympa/arc/esup-utilisateurs/2010-06/msg00049.html Mathieu LARCHET a écrit : > Oui une dernière idée. > On a eu des soucis car la chaîne de certification présentée par Apache était dans le désordre (fichier addtrust_chain.pem) et provoquait ce genre d'erreur. > > Voici l'ordre tel qu'il doit être (à vérifier côté Apache CAS et Apache ENT) : > > subject= /C=NL/O=TERENA/CN=TERENA SSL CA > subject= /C=US/ST=UT/L=Salt Lake City/O=The USERTRUST Network/OU=http://www.usertrust.com/CN=UTN-USERFirst-Hardware > subject= /C=SE/O=AddTrust AB/OU=AddTrust External TTP Network/CN=AddTrust External CA Root Jehan Procaccia a ecrit : le site "officiel" une chaine AddTrust/Tenrena: $ wget http://www.cru.fr/_media/services/tcs/cachain.pem je renomme pour faire apparaitre l'ordre dans le nom de fichier $ cp cachain.pem cachain-TERENA_UTN-USERFirst-Hardware_AddTrust.pem effectivement celui livré à la signature (il y a ~3semaines) par la PKI TCS est en ordre inverse chain-1073-esup3dev.it-sudparis.eu.pem = Addtrust, puis UTN-USERFirst-Hardware et enfin TERENA :-( ! je corrige mes 2 frontaux apache (esup et CAS) avec : SSLCertificateChainFile /etc/pki/tls/certs/cachain-TERENA_UTN-USERFirst-Hardware_AddTrust.pem Cela marche . ==== test de validation ssl ==== [root@arvouin certs]# wget http://www.cru.fr/_media/services/tcs/add_trust_external_ca_root.pem [root@arvouin ~]# openssl s_client -connect esup3dev.it-sudparis.eu:443 -CAfile /etc/pki/tls/certs/add_trust_external_ca_root.pem -verify 3 verify depth is 3 CONNECTED(00000003) depth=3 /C=SE/O=AddTrust AB/OU=AddTrust External TTP Network/CN=AddTrust External CA Root verify return:1 depth=2 /C=US/ST=UT/L=Salt Lake City/O=The USERTRUST Network/OU=http://www.usertrust.com/CN=UTN-USERFirst-Hardware verify return:1 depth=1 /C=NL/O=TERENA/CN=TERENA SSL CA verify return:1 depth=0 /C=FR/L=Evry/O=T\xC3\xA9l\xC3\xA9com & Management SudParis/OU=DISI/CN=esup3dev.it-sudparis.eu verify return:1 --- Certificate chain 0 s:/C=FR/L=Evry/O=T\xC3\xA9l\xC3\xA9com & Management SudParis/OU=DISI/CN=esup3dev.it-sudparis.eu i:/C=NL/O=TERENA/CN=TERENA SSL CA 1 s:/C=NL/O=TERENA/CN=TERENA SSL CA i:/C=US/ST=UT/L=Salt Lake City/O=The USERTRUST Network/OU=http://www.usertrust.com/CN=UTN-USERFirst-Hardware 2 s:/C=US/ST=UT/L=Salt Lake City/O=The USERTRUST Network/OU=http://www.usertrust.com/CN=UTN-USERFirst-Hardware i:/C=SE/O=AddTrust AB/OU=AddTrust External TTP Network/CN=AddTrust External CA Root 3 s:/C=SE/O=AddTrust AB/OU=AddTrust External TTP Network/CN=AddTrust External CA Root i:/C=SE/O=AddTrust AB/OU=AddTrust External TTP Network/CN=AddTrust External CA Root ==== Tomcat serveur en https ==== :!: Methode ancienne , normalement pas necessaire :!: pour que le serveur tomcat soit reconnu par CAS en https, donc le serveur tomcat doit etre signé en tant que client CAS. === Racines de certification === ici nous cumulons plusieurs PKI, une ancienne PKI Institut Telecom v1 (pkiit1), une pkiit2 et maintenant la chaine de certification Addtrust (TCS / Renater). Ayant des serveurs (cas et autres) sur les 3 pki on prend de la marge en itegrant dans le keystore pour tomcat toute ces pki . [root@esup3dev /etc/pki/tls/certs] $ ( cat itrootca.crt.1 ; cat itca.crt.1 ; cat tmspca.crt.1 ) > ca-chain-itrootca1-itca1-tmspca1.crt $ ( cat itrootca2.crt ; cat itca2.crt ; cat tmspca2.crt ) > ca-chain-itrootca2-itca2-tmspca2.crt $ ( cat cachain-tcs-addtrust.pem ; cat ca-chain-itrootca2-itca2-tmspca2.crt ; cat ca-chain-itrootca1-itca1-tmspca1.crt ) > ca-chain-tcs-addtrust-pkiit2-pkiit1-bundle.crt generation du keystore [root@esup3dev /etc/pki/tls/certs] $ openssl pkcs12 -export -in cert-1073-esup3dev.it-sudparis.eu.pem -inkey ../private/esup3dev-1073.key -out esup3dev_ca-chain-tcs-addtrust-pkiit2-pkiit1-bundle.p12 -name tomcat -CAfile ca-chain-tcs-addtrust-pkiit2-pkiit1-bundle.crt -caname root -chain Enter Export Password: Verifying - Enter Export Password: verification [root@esup3dev /etc/pki/tls/certs] $ keytool -keystore esup3dev_ca-chain-tcs-addtrust-pkiit2-pkiit1-bundle.p12 -list -storetype pkcs12 -v Keystore type: PKCS12 Keystore provider: SunJSSE Your keystore contains 1 entry Alias name: tomcat Creation date: Jun 9, 2010 Entry type: PrivateKeyEntry Certificate chain length: 4 Certificate[1]: Owner: CN=esup3dev.it-sudparis.eu, OU=DISI, O=Télécom & Management SudParis, L=Evry, C=FR Issuer: CN=TERENA SSL CA, O=TERENA, C=NL ... Certificate[4]: Owner: CN=AddTrust External CA Root, OU=AddTrust External TTP Network, O=AddTrust AB, C=SE Issuer: CN=AddTrust External CA Root, OU=AddTrust External TTP Network, O=AddTrust AB, C=SE Serial number: 1 ==== driver Mysql ==== il faut rendre accessible a tomcat le driver mysql autrement au demarrage du serveur on a ce type d'erreur: ERROR [main] May/22 12:04:10,211 context.ContextLoader.[] - Context initialization failed org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'PortalDB.metadata' defined in file [/var/lib/tomcat6/webapps/uPortal/WEB-INF/classes/properties/contexts/datasourceContext.xml]: Invocation of init method failed; nested exception is org.springframework.dao.DataAccessResourceFailureException: Error during database initialization. ; nested exception is org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot load JDBC driver class 'com.mysql.jdbc.Driver' copie du jar mysql [root@esup32dev /etc/tomcat6] $ cp /home/esup/esup-uPortal-3.2.4-esup-1.0.0-RC3/update/Tomcat/lib/mysql-connector-java-5.1.6.jar /var/lib/tomcat6/shared/lib/ [root@esup32dev /etc/tomcat6] $ ls -l /var/lib/tomcat6/shared/lib/ total 2720 -rw-rw-r-- 1 esup esup 1736099 May 22 12:01 castor-1.1.1.jar -rw-rw-r-- 1 esup esup 44598 May 22 12:01 commons-logging-api-1.1.jar -rw-r--r-- 1 root root 703265 May 22 12:05 mysql-connector-java-5.1.6.jar -rw-rw-r-- 1 esup esup 3463 May 22 12:01 person-directory-api-1.5.0-RC6.jar -rw-rw-r-- 1 esup esup 142812 May 22 12:01 pluto-container-1.1.7.jar -rw-rw-r-- 1 esup esup 39406 May 22 12:01 pluto-descriptor-api-1.1.7.jar -rw-rw-r-- 1 esup esup 46472 May 22 12:01 pluto-descriptor-impl-1.1.7.jar -rw-rw-r-- 1 esup esup 25969 May 22 12:01 pluto-taglib-1.1.7.jar -rw-rw-r-- 1 esup esup 17090 May 22 12:01 portlet-api-1.0.jar finalement dans /usr/share/tomcat6/lib/ semble mieux que /usr/share/tomcat6/shared/lib/ [root@esup32dev /] $ ls -l /usr/share/tomcat6/lib/mysql-connector-java-5.1.6.jar -rw-r--r-- 1 root root 703265 May 22 12:10 /usr/share/tomcat6/lib/mysql-connector-java-5.1.6.jar ==== custom admin ==== il faut imperativement changer le mot de passe admin, pour cela on va en profiter pour commencer a structurer la personalisation du portail en construsant un arborescence de custom . video2 esup3.2 5mn [esup@esup32dev ~] $ mkdir -p esup-install/custom/uPortal/uportal-impl/src/main/resources/properties/db/itsp/admin generation d'une chaine md5 sur http://www.md5.net/ par exempl, adaptation du fichier de définition du compte admin [esup@esup32dev ~/esup-install] $ cat /home/esup/esup-install/custom/uPortal/uportal-impl/src/main/resources/properties/db/itsp/admin/admin.user defaultTemplateUser (MD5)5ebe2294ecd0e0f08eab7690d2a6ee69 Admin Utilisateur admin@int-evry.fr import [esup@esup32dev ~/esup-install] $ ant db.import -Ddir=/home/esup/esup-install/custom/uPortal/uportal-impl/src/main/resources/properties/db/itsp/admin/ Buildfile: build.xml [java] FILE_PATTERN=.* [java] Import User: admin.user [java] Import of /home/esup/esup-install/custom/uPortal/uportal-impl/src/main/resources/properties/db/itsp/admin/ Complete in 13579 milliseconds. BUILD SUCCESSFUL Total time: 31 seconds ==== URL a proteger ===== === EsupMonitor === http://esup32dev.it-sudparis.eu/uPortal/EsupMonitor?xml et toutes les autres (/services, /private , /manager ) a proteger par des Locations dans le proxy_ajp.conf [root@esup32dev /] $ cat /etc/httpd/conf.d/proxy_ajp.conf Order deny,allow Allow from all Order deny,allow Deny from all Allow from 157.159. Order deny,allow Deny from all Allow from 157.159.21. 157.159.50. Order deny,allow Deny from all Allow from 157.159. #AuthName "Administration ENT" #AuthType CAS #require user ... Order deny,allow Deny from all Allow from 157.159. Order deny,allow Allow from all ===== Ldap users ===== ==== groups sur attributs utilisateur ==== Rechercher les attributs utilisateur dans ldap, les attributs qu'on souhaite mapper pour chaque utilisateur dans ldap. video2 3.2 14mn [esup@esup32dev ~/esup-install] $ echo "esup.ldap.persondirs.use=true" >> ~/esup-install/custom.properties [esup@esup32dev ~/esup-install] $ mkdir -p custom/uPortal/uportal-impl/src/main/resources/properties/contexts cela active la partie ldap du fichier personDirectoryContext.xml on copie ce fichier pour éventuellement le customiser: [esup@esup32dev ~/esup-install] $ cp /home/esup/esup-uPortal-3.2.4-esup-1.0.0-RC3/update/uPortal/uportal-impl/src/main/resources/properties/contexts/personDirectoryContext.xml custom/uPortal/uportal-impl/src/main/resources/properties/contexts/personDirectoryContext.xml par exemple à ligne 265 * eduPersonAffiliation eduPersonOrgUnitDN eduPersonPrimaryOrgUnitDN supannaffectation les groupes PAGS sont constitués sur des attributs utilisateurs et non sur des groupes ldap. Apres ce custom de personDirectoryContext.xml, on relance un ant init ant deploy Ensuite on peux vérifier la récupération d'attribut ldap pour un utilisateur en se connectant admin au portail puis Accueil -> Administration -> Echange d'attributs, on recherche un utilisateur "test" par exemple Informations détaillées sur l'utilisateur : test Attribut Valeur(s) cn compte de test s2ia Nom usuel (displayName) tuti TEST eduPersonAffiliation NONE employee eduPersonPrimaryAffiliation employee ... on a bien récupéré des attributs ldap qualifiant cet utilisateur tels que definit dans personDirectoryContext.xml ==== Group Ldap ==== === group locaux === video3 0mn (5mn40s arrivée d'une trottinette ;-) ) groups dans la BD esup . A usage de petit groupe, par exemple les personnes autorisées a publier dans l'intranet . Pour les autres groupes plus "macro" on utilisera plutot persondDir + groupPags => groups basés sur des attrribut utilisateur . (rappel, plus besoin de "groupLoader", maintenant usage de db.import !) ce qui est deployé a l'initialisation d'esup (jasig) [esup@esup32dev ~/esup-install] $ ls Portail/uPortal_rel-3.2.4/uportal-impl/src/main/resources/properties/db/mini/ channel channel-type fragment-layout layout permission_set structure user channel-esup entity-type group_membership permission profile theme [esup@esup32dev ~/esup-install] $ ls Portail/uPortal_rel-3.2.4/uportal-impl/src/main/resources/properties/db/mini/group_membership/ Administrateurs_Portail.group_membership Canaux_uPortal.group_membership Proprietaires_de_fragment.group_membership Anonymes.group_membership Demonstration.group_membership Toutes_les_categories.group_membership Applications.group_membership Information.group_membership Tout_le_monde.group_membership Canaux_eSup.group_membership Portal System.group_membership Groupes "conteneurs" issuent du tuto afin de rattacher le parent Mes_groupes_locaux au macro group Tout_le_monde [esup@esup32dev ~/esup-install] $ cp ~/src-tuto-julien/*group_membership custom/uPortal/uportal-impl/src/main/resources/properties/db/itsp/group_membership/ [esup@esup32dev ~/esup-install] $ ls -l custom/uPortal/uportal-impl/src/main/resources/properties/db/itsp/group_membership/ total 16 -rw-r--r-- 1 esup esup 371 May 25 09:18 Mes_groupes_locaux.group_membership -rw-r--r-- 1 esup esup 485 May 25 09:18 Tout_le_monde.group_membership -rw-r--r-- 1 esup esup 323 May 25 09:18 Utilisateurs_apogee.group_membership -rw-r--r-- 1 esup esup 323 May 25 09:18 Utilisateurs_harpege.group_membership [esup@esup32dev ~/esup-install] $ cat ../src-tuto-julien/Tout_le_monde.group_membership Tout le monde org.jasig.portal.security.IPerson system Toutes les personnes Anonymes Proprietaires de fragment Administrateurs Portail Mes groupes locaux defaultTemplateUser === import DB === avec db.import , chaque éléments de la BD uPortal est une "entité", on peut appercevoir une liste d'entité (layout, channel, user ...) import des groupes definis ci-dessus [esup@esup32dev ~/esup-install] $ ant db.import -Ddir=/home/esup/esup-install/custom/uPortal/uportal-impl/src/main/resources/properties/db/itsp/group_membership/ Buildfile: build.xml [java] Base Import Directory=/home/esup/esup-install/custom/uPortal/uportal-impl/src/main/resources/properties/db/itsp/group_membership/ [java] FILE_PATTERN=.* [java] Import Group_Membership: Mes_groupes_locaux.group_membership [java] INFO Looking up bean 'counterStore' in ApplicationContext due to context not yet being initialized [java] Import Group_Membership: Tout_le_monde.group_membership [java] Import Group_Membership: Utilisateurs_apogee.group_membership [java] Import Group_Membership: Utilisateurs_harpege.group_membership [java] Import Group_Membership: Mes_groupes_locaux.group_membership [java] INFO Parsing group service configuration. [java] INFO RDBMEntityGroupStore.initialize(): Node separator set to . [java] INFO Looking up bean 'cacheFactory' in ApplicationContext due to context not yet being initialized [java] INFO Looking up bean 'PortalDb' in ApplicationContext due to context not yet being initialized [java] INFO Looking up bean 'entityCachingService' in ApplicationContext due to context not yet being initialized [java] Import Group_Membership: Tout_le_monde.group_membership [java] Import Group_Membership: Utilisateurs_apogee.group_membership [java] Import Group_Membership: Utilisateurs_harpege.group_membership [java] Import of /home/esup/esup-install/custom/uPortal/uportal-impl/src/main/resources/properties/db/itsp/group_membership/ Complete in 20308 milliseconds. BUILD SUCCESSFUL Total time: 37 seconds === DB export === Définition dans la tache crn-export du build.xml de uPortal: [esup@esup32dev ~/esup-install] $ vim Portail/uPortal_rel-3.2.4/build.xml You must specify a "type" parameter (-Dtype={something}) from the following: all, layout, all-layouts, channel, all-channels, all-permissions, all-memberships, group, all-groups, user, all-users. on voit donc qu'on peux exporter plein de chose avec le -Dtype . exemple d'export des groups [esup@esup32dev ~/esup-install] $ mkdir -p custom/db-export $ ant db.export -Ddir=/home/esup/esup-install/custom/db-export/ -Dtype=all-groups Buildfile: build.xml ... [java] Begin uPortal Export 'all-groups': 1306308954625 [java] Export Group: GROUP_NAME=Tout le monde [java] Export Group: GROUP_NAME=Toutes les categories [java] Export Group: GROUP_NAME=Anonymes [java] Export Group: GROUP_NAME=Applications [java] Export Group: GROUP_NAME=Canaux eSup [java] Export Group: GROUP_NAME=Canaux uPortal [java] Export Group: GROUP_NAME=Demonstration [java] Export Group: GROUP_NAME=Information [java] Export Group: GROUP_NAME=Portal System [java] Export Group: GROUP_NAME=Proprietaires de fragment [java] Export Group: GROUP_NAME=Administrateurs Portail [java] uPortal Export 'all-groups' Complete in 6028 milliseconds. BUILD SUCCESSFUL Total time: 52 seconds [esup@esup32dev ~/esup-install] $ ls custom/db-export/group/ Administrateurs_Portail-2.group Applications-12.group Canaux_uPortal-14.group Information-16.group Proprietaires_de_fragment-18.group Tout_le_monde-0.group Anonymes-11.group Canaux_eSup-13.group Demonstration-15.group Portal_System-17.group Toutes_les_categories-1.group :!: Attention, export par défaut en version 2.6 ! c'est évoqué dans video3 ~vers 13mn. [esup@esup32dev ~/esup-install] $ vim Portail/uPortal_rel-3.2.4/uportal-impl/src/main/resources/properties/export.properties mais tout n'est pas là ... De plus certain canaux peuvent enregistrer les ID des groups et pas leur nom, donc lors d'une migration d'une version esup a une autre cela peu poser probleme si les groupes ne sont pas ré-importer dans le meme ordre que lors de la version precedente , (video3 16mn) cf [esup@esup32dev ~/esup-install] $ vim Portail/uPortal_rel-3.2.4/uportal-impl/target/classes/org/jasig/portal/io/generate-group-id.crn === groupes initiaux === dans le portail en tant qu'admin, administration -> gestion des groupes , on retrouve la liste initiale des groupes esup Groupe Root Groups Réduire le groupe Toutes les categories Groupe Applications Etendre le groupe Canaux eSup Etendre le groupe Canaux uPortal Groupe Demonstration Etendre le groupe Information Réduire le groupe Tout le monde Etendre le groupe Administrateurs Portail Etendre le groupe Anonymes Etendre le groupe PAGS Root Etendre le groupe Proprietaires de fragment === gestion du cache === video3 7mn30s pour voir apparaître (rapidement) nos nouveaux groupes, on profite du gestionnaire de cache d'esup, qui va nous permettre de mettre a jour immédiatement l'information en vidant le cache concernant les groups ici. Statistiques du cache org.jasig.portal.groups.IEntityGroup Propriétés du cache Valeur Nb d'objets 16 Accès au cache réussis 17609 Accès au cache ratés 58 Nb d'objets en mémoire 16 Accès en m00e9moire 17609 Nb d'objets sur disque 0 Accès au disque 0 Nb de suppressions du cache 0 Méthode statistique Best Effort on retrouve alors les groups locaux qu'on viens d'importer Groupe Root Groups Réduire le groupe Toutes les categories Groupe Applications Etendre le groupe Canaux eSup Etendre le groupe Canaux uPortal Groupe Demonstration Etendre le groupe Information Réduire le groupe Tout le monde Groupe Administrateurs Portail Groupe Anonymes Réduire le groupe Mes groupes locaux Etendre le groupe Utilisateurs apogée Etendre le groupe Utilisateurs harpege Groupe Proprietaires de fragment ==== Group PAGS ==== video3 17mn30s reference http://www.esup-portail.org/display/ESUPMU/Groupes+%28esup-3%29 https://wiki.jasig.org/display/UPM32/Person+Attribute+Group+Store+%28PAGS%29 :!: attention au group "PAGS root" de base qui n'est souvent pas repris dans une implementation locale personalisée de PAGSGroupStoreConfig.xml, cela plante les groupes initiaux de base du db.init :!: cf https://listes.esup-portail.org/sympa/arc/esup-utilisateurs/2011-06/msg00034.html Les groups PAGS se basent sur des attributs utilisateur uPortal => il faut avoir fait le mapping d'attributs dans le "persondir" au prealable . L'appartenance a un groupe est calculée à la connexion au portail, on recupere ses attributs utilisateur puis on verifie dans le fichier PAGS les groupes auquels il appartient => performance, mais pas de possibilité de lister les membres d'un groupe PAGS Activer la fonctionnalité groupePAGS: s'etait necessaire en 3.1 [esup@esup3dev ~/src/esup-3.1.2-esup-0.5-RC3] $ echo "esup.ldap.groups.use=true" >> custom.properties maintenant en 3.2 c'est activé par defaut. configurer les group PAGS, lesquels, sur quels attributs: [esup@esup32dev ~/esup-install] $ mkdir -p custom/uPortal/uportal-impl/src/main/resources/properties/groups [esup@esup32dev ~/esup-install] $ cp Portail/uPortal_rel-3.2.4/uportal-impl/src/main/resources/properties/groups/PAGSGroupStoreConfig.xml custom/uPortal/uportal-impl/src/main/resources/properties/groups Attention au nom des clés de group, dans une definition de type TousPers le clée sera Pags.TousPers ! === personnaliser PAGSGroupStoreConfig.xml === exemple: http://sourcesup.cru.fr/scm/viewvc.php/trunk/esup-smsu/properties/groups/PAGSGroupStoreConfig.xml?root=esup-smsu&view=markup et type de filtrage d'attribut: http://www.esup-portail.org/display/ESUPMU/Groupes+(esup-3) exemple ajout de serv_disi et etab_tmsp: serv_disi Service DISI (LDAP) Tous les personnels de la DISI Evry supannAffectation org.jasig.portal.groups.pags.testers.StringEqualsIgnoreCaseTester DISI etab_tmsp Etablissement TMSP (LDAP) Tous les personnels de TMSP eduPersonOrgUnitDN org.jasig.portal.groups.pags.testers.ValueExistsTester TMSP Deployer ce PAGSGroupStoreConfig.xml via un ant init puis ant deploy, apres un redemarrage du portail on doit retrouver ces definitions de groupes. En tant qu'admin, dans le group Manager -> *search group of person contains LDAP* on voit alors apparaitre nos definitions de groupe. ==== Attachement des PAGS ==== L'etape suivante est de ratacher ces groupes PAGS a des groupes locaux afin qu'ils apparaissent "proprement" dans le group Manager mais aussi qu'il y ait un hierarchie de groupe, donc heritage "deepMemberOf" ... Ici on recopie nos definitions de groups depuis la version 3.1 [root@esup3prod /home/esup/esup-3.1.2-esup-0.5-RC5] $ scp ./custom/uPortal/uportal-impl/src/main/resources/properties/db/itsp/group_membership/*.group_membership root@bosra:/vz/private/10094/home/esup/esup-install//custom/uPortal/uportal-impl/src/main/resources/properties/db/itsp/group_membership/ Divers.group_membership Etablissements.group_membership Information.group_membership ITSP_groupes_LDAP.group_membership OutilsCom.group_membership Proprietaires_de_fragment.group_membership Services.group_membership Toutes_les_categories.group_membership Tout_le_monde.group_membership [esup@esup32dev ~/esup-install] $ ll ./custom/uPortal/uportal-impl/src/main/resources/properties/db/itsp/group_membership/ total 48 -rw-r--r-- 1 root root 295 May 25 22:49 Divers.group_membership -rw-r--r-- 1 root root 395 May 25 22:49 Etablissements.group_membership -rw-r--r-- 1 root root 305 May 25 22:49 Information.group_membership -rw-r--r-- 1 root root 517 May 25 22:49 ITSP_groupes_LDAP.group_membership -rw-r--r-- 1 esup esup 371 May 25 09:18 Mes_groupes_locaux.group_membership -rw-r--r-- 1 root root 329 May 25 22:49 OutilsCom.group_membership -rw-r--r-- 1 root root 625 May 25 22:49 Proprietaires_de_fragment.group_membership -rw-r--r-- 1 root root 354 May 25 22:49 Services.group_membership -rw-r--r-- 1 root root 496 May 25 22:49 Toutes_les_categories.group_membership -rw-r--r-- 1 esup esup 484 May 25 22:49 Tout_le_monde.group_membership -rw-r--r-- 1 esup esup 323 May 25 09:18 Utilisateurs_apogee.group_membership -rw-r--r-- 1 esup esup 323 May 25 09:18 Utilisateurs_harpege.group_membership Ce sont nos groupes LDAP et leur dependances hierarchiques . ensuite on lance le db.import en s'assurant que l'on a pas fait d'erreur de syntaxe dans les noms de groupe => correspondance exacte entre le PAGSGroupStoreConfig.xml et les diffrents groupes attachés dans les fichier *.group_membership ! , autrement on reçoit des erreurs a l'import . Exemple si dans PAGSGroupStoreConfig.xml on a definit ce nom de groupe //Stagiaires Apprentis Doctorants// alors dans ITSP_groupes_LDAP.group_membership on appel le meme nom : //Stagiaires Apprentis Doctorants// [esup@esup32dev ~/esup-install] $ ant db.import -Ddir=/home/esup/esup-install/custom/uPortal/uportal-impl/src/main/resources/properties/db/itsp/group_membership/ Buildfile: build.xml Trying to override old definition of task java Trying to override old definition of task javac Trying to override old definition of task for db.import: prodPrompt: crn-import: install-parent-pom: [artifact:install] [INFO] Installing /home/esup/esup-uPortal-3.2.4-esup-1.0.0-RC3/Portail/uPortal_rel-3.2.4/pom.xml to /home/esup/.m2/repository/org/jasig/portal/uportal-parent/3.2.4/uportal-parent-3.2.4.pom [touch] Creating /tmp/jasig/uportal-parent.pom-451434488-marker [echo] Artifact '/home/esup/esup-uPortal-3.2.4-esup-1.0.0-RC3/Portail/uPortal_rel-3.2.4/uportal-impl/target/uportal-impl-3.2.4.jar' is up-to-date [artifact:install] [INFO] Installing /home/esup/esup-uPortal-3.2.4-esup-1.0.0-RC3/Portail/uPortal_rel-3.2.4/uportal-impl/target/uportal-impl-3.2.4.jar to /home/esup/.m2/repository/org/jasig/portal/uportal-impl/3.2.4/uportal-impl-3.2.4.jar [java] [java] INFO Creating new lazily initialized GenericApplicationContext for the portal [java] INFO Created new MemoryContext with environment '{java.naming.factory.url.pkgs=tyrex.naming, java.naming.provider.url=, java.naming.factory.initial=org.jasig.portal.jndi.DisposableMemoryContextFactory}' [java] INFO Initialized portal JNDI context [java] INFO Failed to load bean 'PortalDb.JNDI' from ApplicationContext expecting type: interface javax.sql.DataSource. Will try to load the next bean in the list instead. Error message from the attempt to load this bean ('PortalDb.JNDI'): Error creating bean with name 'PortalDb.JNDI' defined in class path resource [properties/contexts/datasourceContext.xml]: Invocation of init method failed; nested exception is javax.naming.NotContextException: comp is not a subcontext (enable debug for stack trace) [java] INFO Loaded bean for name PortalDb.direct [java] INFO Setting CacheProvider 'org.jasig.portal.utils.cache.hibernate.EhCacheProvider@260d8d' on ThreadLocal [java] INFO Created new lazily initialized GenericApplicationContext for the portal in 17766ms [java] Base Import Directory=/home/esup/esup-install/custom/uPortal/uportal-impl/src/main/resources/properties/db/itsp/group_membership/ [java] FILE_PATTERN=.* [java] Import Group_Membership: Divers.group_membership [java] INFO Looking up bean 'counterStore' in ApplicationContext due to context not yet being initialized [java] Import Group_Membership: Etablissements.group_membership [java] Import Group_Membership: ITSP_groupes_LDAP.group_membership [java] Import Group_Membership: Information.group_membership [java] Import Group_Membership: Mes_groupes_locaux.group_membership [java] Import Group_Membership: OutilsCom.group_membership [java] Import Group_Membership: Proprietaires_de_fragment.group_membership [java] Import Group_Membership: Services.group_membership [java] Import Group_Membership: Tout_le_monde.group_membership [java] Import Group_Membership: Toutes_les_categories.group_membership [java] Import Group_Membership: Utilisateurs_apogee.group_membership [java] Import Group_Membership: Utilisateurs_harpege.group_membership [java] Import Group_Membership: Divers.group_membership [java] Import Group_Membership: Etablissements.group_membership [java] INFO Parsing group service configuration. [java] INFO RDBMEntityGroupStore.initialize(): Node separator set to . [java] INFO Looking up bean 'cacheFactory' in ApplicationContext due to context not yet being initialized [java] INFO Looking up bean 'PortalDb' in ApplicationContext due to context not yet being initialized [java] INFO Looking up bean 'entityCachingService' in ApplicationContext due to context not yet being initialized [java] Import Group_Membership: ITSP_groupes_LDAP.group_membership [java] Import Group_Membership: Information.group_membership [java] Import Group_Membership: Mes_groupes_locaux.group_membership [java] Import Group_Membership: OutilsCom.group_membership [java] Import Group_Membership: Proprietaires_de_fragment.group_membership [java] Import Group_Membership: Services.group_membership [java] Import Group_Membership: Tout_le_monde.group_membership [java] Import Group_Membership: Toutes_les_categories.group_membership [java] Import Group_Membership: Utilisateurs_apogee.group_membership [java] Import Group_Membership: Utilisateurs_harpege.group_membership [java] Import of /home/esup/esup-install/custom/uPortal/uportal-impl/src/main/resources/properties/db/itsp/group_membership/ Complete in 38629 milliseconds. BUILD SUCCESSFUL Total time: 1 minute 0 seconds On a ainsi rattaché dans la BD uPortal les "enfants" du groupe local "Etablissements" qui comprendra (clés de groups) "pags.etab_tsp", "pags.tab_tem" ... dont les filtres ldap sont definis dans PAGSgroupStoreConfig.xml . CE fichier étant chargé au démarrage du portail, il faut le redémarrer pour toutes modifications une fois redemarré ,en tant qu'admin on peut controler la présence et la hiérarchie des groupes Groupe Root Groups Réduire le groupe Toutes les categories Groupe Applications Etendre le groupe Canaux eSup Etendre le groupe Canaux uPortal Etendre le groupe Divers Etendre le groupe Information Etendre le groupe Outils de communication Réduire le groupe Tout le monde Etendre le groupe Administrateurs Portail Etendre le groupe Anonymes Réduire le groupe ITSP groupes LDAP Réduire le groupe Etablissements Groupe Etablissement TEM Groupe Etablissement TMSP Groupe Etablissement TSP Réduire le groupe Services Groupe CRMP Groupe Departement INF Groupe DISI Groupe Stagiaires Apprentis Doctorants Groupe Tous les enseignants Groupe Tous les etudiants Groupe Tout le personnel Etendre le groupe Proprietaires de fragment cf Vidéo3 27mn question sur le rattachement de groupes locaux vs gestion integrale depuis groupPags avec des members ... compositeGroupServices.xml definit le mecanisme de branchement des types de groupes. on constate qu'il y a a coté du PAGSGroupstore un LDAPGroupStoreConfig.xml qui fait des filtre ldap mais avec des performances tres mediocres !. smartldap autre gestionnaire qui se base sur le portail, pas les attributs ldap !. ===== Canaux ===== doc/reference: http://www.esup-portail.org/display/ESUPMU/Publication+de+canaux+%28esup-3%29 Pb de listing de channels (finalement lié au une mauvaise gestion de groupes, cf chapitres precedents sur les PAGS) https://listes.esup-portail.org/sympa/arc/esup-utilisateurs/2011-06/msg00028.html Inline Frame revue par une portlet qui les "emules" maintenant (video3 38mn) Alternate Apparence, possibilité d'affiché un css pour ce canal en fonction du skin choisit ! vide3 40mn), masquet pour les mobiles etc ... Sidebar (de droite) possibilkité de la retirer dans custom.properties (video3 45mn) ==== Initialement ==== Apres un db.init on a sur un portail fraichement installé ces canaux de base {{:docpublic:systemes:esup:esup3-2-4_admin-porlet-initial.png|}} ==== Exemple canal-hello ==== On positione les sources dans un arborescence dediée au canaux [esup@esup32dev ~/esup-install] $ mkdir -p src/canaux $ cd src/canaux/ [esup@esup32dev ~/esup-install/src/canaux] $ mv /home/esup/esup-canal-hello-1.00.zip . [esup@esup32dev ~/esup-install/src/canaux] $ unzip esup-canal-hello-1.00.zip Archive: /home/esup/esup-canal-hello-1.00.zip creating: CHelloWorld-1.00/ creating: CHelloWorld-1.00/build/ creating: CHelloWorld-1.00/build/WEB-INF/ recuperation du build.properties et adaptation des chemins a notre installation de package systemes a base de RPM (tomcat.home, [esup@esup32dev ~/esup-install/src/canaux/CHelloWorld-1.00] $ diff build.properties.orig build.properties 11c11 < tomcat.home = D:/uPortal_rel-2-4-3-quick-start/Tomcat_5-0-28 --- > tomcat.home = /usr/share/tomcat6 14c14 < uportal.home = D:/uPortal_rel-2-4-3-quick-start/uPortal_rel-2-4-3 --- > uportal.home = /home/esup/esup-install/Portail/uPortal_rel-3.2.4 17c17 < deploy.home = D:/uPortal_rel-2-4-3-quick-start/Tomcat_5-0-28/webapps/uPortal --- > deploy.home = /usr/share/tomcat6/webapps/uPortal Pour la partie tomcat , dans les build.xml des canaux il y a une reference au common/lib de tomcat, d'où l'astuce de créer un lien de common/lib vers lib de tomcat , autrement le canal plante lors du deploiement (ne trouve pas servlet.jar, xmlapi ...) ==== deploy ==== [esup@esup32dev ~/esup-install/src/canaux/CHelloWorld-1.00] $ ant deploy Buildfile: build.xml prepare: [mkdir] Created dir: /home/esup/esup-uPortal-3.2.4-esup-1.0.0-RC3/src/canaux/CHelloWorld-1.00/docs/api [mkdir] Created dir: /home/esup/esup-uPortal-3.2.4-esup-1.0.0-RC3/src/canaux/CHelloWorld-1.00/tests [mkdir] Created dir: /home/esup/esup-uPortal-3.2.4-esup-1.0.0-RC3/src/canaux/CHelloWorld-1.00/properties [mkdir] Created dir: /home/esup/esup-uPortal-3.2.4-esup-1.0.0-RC3/src/canaux/CHelloWorld-1.00/lib [mkdir] Created dir: /home/esup/esup-uPortal-3.2.4-esup-1.0.0-RC3/src/canaux/CHelloWorld-1.00/webpages/media/org/esupportail/portal/channels/CHelloWorld [mkdir] Created dir: /home/esup/esup-uPortal-3.2.4-esup-1.0.0-RC3/src/canaux/CHelloWorld-1.00/db prepareINSTALL: prepareUPGRADE: prepareREADME: prepareLICENCE: prepareCHANGELOG: compile: deploy: [copy] Copying 5 files to /usr/share/tomcat6/webapps/uPortal BUILD SUCCESSFUL Total time: 2 seconds ==== publication ==== Répertoire custom pour heberger les fichier xml de publication systeme des canaux (equivalent de pubchan en 2.5) [esup@esup32dev ~/esup-install] $ mkdir custom/uPortal/uportal-impl/src/main/resources/properties/db/itsp/channel Copie du fichier de publication [esup@esup32dev ~/esup-install] $ cp src/canaux/CHelloWorld-1.00/CHello.channel custom/uPortal/uportal-impl/src/main/resources/properties/db/itsp/channel/ publication [esup@esup32dev ~/esup-install] $ ant db.import -Ddir=/home/esup/esup-install/custom/uPortal/uportal-impl/src/main/resources/properties/db/itsp/channel -Dpattern="CHello.channel" Buildfile: build.xml Trying to override old definition of task java Trying to override old definition of task javac Trying to override old definition of task for db.import: prodPrompt: crn-import: install-parent-pom: [artifact:install] [INFO] Installing /home/esup/esup-uPortal-3.2.4-esup-1.0.0-RC3/Portail/uPortal_rel-3.2.4/pom.xml to /home/esup/.m2/repository/org/jasig/portal/uportal-parent/3.2.4/uportal-parent-3.2.4.pom [touch] Creating /tmp/jasig/uportal-parent.pom-881175900-marker [echo] Artifact '/home/esup/esup-uPortal-3.2.4-esup-1.0.0-RC3/Portail/uPortal_rel-3.2.4/uportal-impl/target/uportal-impl-3.2.4.jar' is up-to-date [artifact:install] [INFO] Installing /home/esup/esup-uPortal-3.2.4-esup-1.0.0-RC3/Portail/uPortal_rel-3.2.4/uportal-impl/target/uportal-impl-3.2.4.jar to /home/esup/.m2/repository/org/jasig/portal/uportal-impl/3.2.4/uportal-impl-3.2.4.jar [java] [java] INFO Creating new lazily initialized GenericApplicationContext for the portal [java] INFO Created new MemoryContext with environment '{java.naming.factory.url.pkgs=tyrex.naming, java.naming.provider.url=, java.naming.factory.initial=org.jasig.portal.jndi.DisposableMemoryContextFactory}' [java] INFO Initialized portal JNDI context [java] INFO Failed to load bean 'PortalDb.JNDI' from ApplicationContext expecting type: interface javax.sql.DataSource. Will try to load the next bean in the list instead. Error message from the attempt to load this bean ('PortalDb.JNDI'): Error creating bean with name 'PortalDb.JNDI' defined in class path resource [properties/contexts/datasourceContext.xml]: Invocation of init method failed; nested exception is javax.naming.NotContextException: comp is not a subcontext (enable debug for stack trace) [java] INFO Loaded bean for name PortalDb.direct [java] INFO Setting CacheProvider 'org.jasig.portal.utils.cache.hibernate.EhCacheProvider@657c7b' on ThreadLocal [java] INFO Created new lazily initialized GenericApplicationContext for the portal in 19165ms [java] Base Import Directory=/home/esup/esup-install/custom/uPortal/uportal-impl/src/main/resources/properties/db/itsp/channel [java] FILE_PATTERN=CHello.channel [java] Import Channel: CHello.channel [java] INFO Looking up bean 'channelRegistryStore' in ApplicationContext due to context not yet being initialized [java] INFO Creating singleton instance for bean 'scopedTarget.sessionAttributesOverridesMap' [java] INFO Adding destruction callback singleton for bean 'scopedTarget.sessionAttributesOverridesMap' [java] INFO Looking up bean 'jpaInterceptor' in ApplicationContext due to context not yet being initialized [java] INFO Parsing group service configuration. [java] INFO RDBMEntityGroupStore.initialize(): Node separator set to . [java] INFO Looking up bean 'cacheFactory' in ApplicationContext due to context not yet being initialized [java] INFO Looking up bean 'PortalDb' in ApplicationContext due to context not yet being initialized [java] INFO Looking up bean 'entityCachingService' in ApplicationContext due to context not yet being initialized [java] INFO Looking up bean 'portletDefinitionRegistry' in ApplicationContext due to context not yet being initialized [java] INFO Looking up bean 'channelPublishingService' in ApplicationContext due to context not yet being initialized [java] Import of /home/esup/esup-install/custom/uPortal/uportal-impl/src/main/resources/properties/db/itsp/channel Complete in 28284 milliseconds. BUILD SUCCESSFUL Total time: 1 minute 0 seconds ==== publication de tous les canaux ==== avec l'expression reguliere -Dpattern=".*\.channel" on import tous le fichiers de definition de canal [esup@esup3dev ~/src/esup-install] $ ant db.import -Ddir=/home/esup/src/esup-install/custom/uPortal/uportal-impl/src/main/resources/properties/db/itsp/channel -Dpattern=".*\.channel" .... [java] Base Import Directory=/home/esup/src/esup-install/custom/uPortal/uportal-impl/src/main/resources/properties/db/itsp/channel [java] FILE_PATTERN=.*\.channel [java] Import Channel: Administration.channel [java] INFO Looking up bean 'channelRegistryStore' in ApplicationContext due to context not yet being initialized [java] INFO Join test failed: org.jasig.portal.rdbm.DatabaseMetaDataImpl$OracleDb on statement: 'SELECT COUNT(UP_USER.USER_ID) FROM UP_USER, UP_USER_LAYOUT WHERE UP_USER.USER_ID = UP_USER_LAYOUT.USER_ID(+) AND UP_USER.USER_ID=0': [java] StatementCallback; bad SQL grammar [SELECT COUNT(UP_USER.USER_ID) FROM UP_USER, UP_USER_LAYOUT WHERE UP_USER.USER_ID = UP_USER_LAYOUT.USER_ID(+) AND UP_USER.USER_ID=0]; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') AND UP_USER.USER_ID=0' at line 1 [java] INFO Using join test: org.jasig.portal.rdbm.DatabaseMetaDataImpl$PostgreSQLDb [java] INFO MySQL (5.0.77) / MySQL-AB JDBC Driver (mysql-connector-java-5.1.6 ( Revision: ${svn.Revision} )) database/driver [java] Connected To: jdbc:mysql://bd3.it-sudparis.eu/uportal3dev [java] Supports: [java] Outer Joins: true [java] {ts metasyntax: true [java] TO_DATE(): false [java] INFO Creating singleton instance for bean 'scopedTarget.sessionAttributesOverridesMap' [java] INFO Adding destruction callback singleton for bean 'scopedTarget.sessionAttributesOverridesMap' [java] INFO Using existing singleton instance for bean 'scopedTarget.sessionAttributesOverridesMap' [java] INFO Using existing singleton instance for bean 'scopedTarget.sessionAttributesOverridesMap' [java] INFO Using existing singleton instance for bean 'scopedTarget.sessionAttributesOverridesMap' [java] INFO Looking up bean 'PortalDb' in ApplicationContext due to context not yet being initialized [java] INFO Looking up bean 'jpaInterceptor' in ApplicationContext due to context not yet being initialized [java] INFO Parsing group service configuration. [java] INFO RDBMEntityGroupStore.initialize(): Node separator set to . [java] INFO Looking up bean 'cacheFactory' in ApplicationContext due to context not yet being initialized [java] INFO Looking up bean 'entityCachingService' in ApplicationContext due to context not yet being initialized [java] Import Channel: AssosAnciens.channel [java] Import Channel: AssosEtudiants.channel [java] Import Channel: CAnnuaire.channel [java] WARN Unable to load class 'org.esupportail.portal.channels.CAnnuaire.CAnnuaire' for channel id=44, fname='null' [java] WARN Unable to load class 'org.esupportail.portal.channels.CAnnuaire.CAnnuaire' for channel id=44, fname='CAnnuaire' [java] Import Channel: CHello.channel [java] WARN Unable to load class 'org.esupportail.portal.channels.CHelloWorld.CHelloWorld' for channel id=36, fname='null' [java] WARN Unable to load class 'org.esupportail.portal.channels.CHelloWorld.CHelloWorld' for channel id=36, fname='canal-hello' [java] Import Channel: CImap.channel [java] WARN Unable to load class 'org.esupportail.portal.channels.CImap.CImap' for channel id=45, fname='null' [java] WARN Unable to load class 'org.esupportail.portal.channels.CImap.CImap' for channel id=45, fname='Cimap' [java] Import Channel: CStockage.channel [java] WARN Unable to load class 'org.esupportail.portal.channels.CStockage.CStockage' for channel id=46, fname='null' [java] WARN Unable to load class 'org.esupportail.portal.channels.CStockage.CStockage' for channel id=46, fname='CStockage' [java] Import Channel: CanalU.channel [java] Import Channel: Catalogues.channel [java] Import Channel: EvryPratique.channel [java] Import Channel: Gaspar.channel [java] Import Channel: Handicap.channel [java] Import Channel: Infopedia.channel [java] Import Channel: MaisonEleves.channel [java] Import Channel: MotPasse.channel [java] Import Channel: Nuxeo.channel [java] Import Channel: OpenPortal.channel [java] Import Channel: Presentation.channel [java] Import Channel: ReglementScola.channel [java] Import Channel: Signets.channel [java] WARN Unable to load class 'org.esupportail.portal.channels.CSignet2.CSignet2' for channel id=59, fname='null' [java] WARN Unable to load class 'org.esupportail.portal.channels.CSignet2.CSignet2' for channel id=59, fname='CSignet2' [java] Import Channel: Sympa.channel [java] WARN Unable to load class 'org.esupportail.portal.channels.CSympaMultiServeur.CSympaMultiServeur' for channel id=60, fname='null' [java] WARN Unable to load class 'org.esupportail.portal.channels.CSympaMultiServeur.CSympaMultiServeur' for channel id=60, fname='Sympa' [java] Import Channel: Webmail.channel [java] Import Channel: Wifi.channel [java] INFO Property [org.jasig.portal.MediaManager.HTMLPublicId] was requested but not found. [java] INFO Property [org.jasig.portal.MediaManager.HTMLSystemId] was requested but not found. [java] INFO Property [org.jasig.portal.MediaManager.XHTMLPublicId] was requested but not found. [java] INFO Property [org.jasig.portal.MediaManager.XHTMLSystemId] was requested but not found. [java] INFO Property [org.jasig.portal.MediaManager.WMLPublicId] was requested but not found. [java] INFO Property [org.jasig.portal.MediaManager.WMLSystemId] was requested but not found. [java] Import Channel: inlineMeteo.channel [java] Import of /home/esup/src/esup-install/custom/uPortal/uportal-impl/src/main/resources/properties/db/itsp/channel Complete: 4456 BUILD SUCCESSFUL Total time: 8 seconds ==== Canal Stockage ==== reference: http://www.esup-portail.org/display/PROJCANSTOCK/Canal+stockage [esup@esup3dev ~/src/canaux] $ wget https://sourcesup.cru.fr/frs/download.php/2900/esup-canal-stockage-4.7-RC-2.zip [esup@esup3dev ~/src/canaux] $ unzip esup-canal-stockage-4.7-RC-2.zip === Dependance MAG === http://www.esup-portail.org/pages/viewpage.action?pageId=5865511 [esup@esup3dev ~/src/canaux] $ wget http://www.esup-portail.org/download/attachments/5865511/esup-utils-mag-2.5.zip [esup@esup3dev ~/src/canaux] $ unzip esup-utils-mag-2.5.zip [esup@esup3dev ~/src/canaux/esup-utils-mag-2.5] $ diff -ur build.properties.orig build.properties --- build.properties.orig 2010-08-25 16:38:19.000000000 +0200 +++ build.properties 2010-08-25 16:39:33.000000000 +0200 @@ -8,14 +8,13 @@ #R�pertoire d'installation de Tomcat -tomcat.home = /home/uportal/PROD/Tomcat +tomcat.home = /usr/share/tomcat6 -#R�pertoire d'installation d'uPortal -uportal.home = /home/uportal/BUILD/uPortal-sources - -#R�pertoire de d�ploiement -deploy.home = /home/uportal/PROD/webapps/uPortal +#Repertoire d'installation d'uPortal +uportal.home = /home/esup/src/esup-install/Portail/uPortal_rel-3.1.2 +#Repertoire de deploiement +deploy.home = /usr/share/tomcat6/webapps/uPortal [esup@esup3dev ~/src/canaux/esup-utils-mag-2.5] $ ant all BUILD FAILED /home/esup/src/canaux/esup-utils-mag-2.5/build.xml:155: /home/esup/src/esup-install/Portail/uPortal_rel-3.1.2/lib not found. alors [esup@esup3dev ~/src/canaux/esup-utils-mag-2.5] $ mkdir /home/esup/src/esup-install/Portail/uPortal_rel-3.1.2/lib puis erreur compile: [javac] Compiling 25 source files to /home/esup/src/canaux/esup-utils-mag-2.5/build/WEB-INF/classes [javac] /home/esup/src/canaux/esup-utils-mag-2.5/source/org/esupportail/portal/utils/channels/ConfigChannel.java:7: package javax.servlet.jsp does not exist alors $ diff -ur build.xml.orig build.xml --- build.xml.orig 2010-08-25 17:15:38.000000000 +0200 +++ build.xml 2010-08-25 17:17:05.000000000 +0200 @@ -62,6 +62,9 @@ + + + [esup@esup3dev ~/src/canaux/esup-utils-mag-2.5] $ ant all Buildfile: build.xml clean: [delete] Deleting directory /home/esup/src/canaux/esup-utils-mag-2.5/build undeploy: prepare: [mkdir] Created dir: /home/esup/src/canaux/esup-utils-mag-2.5/build [mkdir] Created dir: /home/esup/src/canaux/esup-utils-mag-2.5/build/WEB-INF/classes prepareINSTALL: prepareUPGRADE: prepareREADME: prepareLICENCE: prepareCHANGELOG: compile: [javac] Compiling 25 source files to /home/esup/src/canaux/esup-utils-mag-2.5/build/WEB-INF/classes [javac] /home/esup/src/canaux/esup-utils-mag-2.5/source/org/esupportail/portal/utils/channels/ConfigChannel.java:59: warning: [deprecation] DEBUG in org.apache.log4j.Priority has been deprecated [javac] logLevel = Priority.DEBUG; [javac] ^ [javac] /home/esup/src/canaux/esup-utils-mag-2.5/source/org/esupportail/portal/utils/channels/SubChannel.java:201: warning: [deprecation] getBaseWorkerURL(java.lang.String,boolean) in org.jasig.portal.ChannelRuntimeData has been deprecated [javac] xslParameters.put("baseDownloadURL",runtimeData.getBaseWorkerURL(UPFileSpec.FILE_DOWNLOAD_WORKER, true).replaceAll("%2F", "/")); [javac] ^ [javac] /home/esup/src/canaux/esup-utils-mag-2.5/source/org/esupportail/portal/utils/channels/SubChannelAjax.java:116: warning: [deprecation] getBaseActionURL(boolean) in org.jasig.portal.ChannelRuntimeData has been deprecated [javac] getXSLParameter().put("baseActionURL",runtimeData.getBaseActionURL(true)); [javac] ^ [javac] /home/esup/src/canaux/esup-utils-mag-2.5/source/org/esupportail/portal/utils/channels/SubChannelAjax.java:211: warning: [deprecation] getBaseActionURL(boolean) in org.jasig.portal.ChannelRuntimeData has been deprecated [javac] String redirect = runtimeData.getBaseActionURL(true) + "?"; [javac] ^ [javac] Note: Some input files use unchecked or unsafe operations. [javac] Note: Recompile with -Xlint:unchecked for details. [javac] 4 warnings [copy] Copying 2 files to /home/esup/src/canaux/esup-utils-mag-2.5/build/WEB-INF/classes/properties/channels/org_esup/esup-utils-mag [copy] Copying 5 files to /home/esup/src/canaux/esup-utils-mag-2.5/build/WEB-INF/classes [copy] Copying 10 files to /home/esup/src/canaux/esup-utils-mag-2.5/build/media deploy: [copy] Copying 42 files to /usr/share/tomcat6/webapps/uPortal all: BUILD SUCCESSFUL Total time: 1 second Retour au deployement de CStockage maintenant que MAG est disponible: [esup@esup3dev ~/src/canaux/CStockage-4.7-RC-2] $ ant all Buildfile: build.xml clean: [delete] Deleting directory /home/esup/src/canaux/CStockage-4.7-RC-2/build undeploy: prepareBuild: [mkdir] Created dir: /home/esup/src/canaux/CStockage-4.7-RC-2/build [mkdir] Created dir: /home/esup/src/canaux/CStockage-4.7-RC-2/build/WEB-INF/classes compile: [javac] Compiling 123 source files to /home/esup/src/canaux/CStockage-4.7-RC-2/build/WEB-INF/classes [javac] /home/esup/src/canaux/CStockage-4.7-RC-2/source/org/esupportail/portal/channels/CStockage/CStockage.java:1036: warning: [deprecation] getBaseWorkerURL(java.lang.String,boolean) in org.jasig.portal.ChannelRuntimeData has been deprecated [javac] String downloadUrl = runtimeData.getBaseWorkerURL(UPFileSpec.FILE_DOWNLOAD_WORKER,true).replaceAll("%2F","/"); [javac] ^ [javac] /home/esup/src/canaux/CStockage-4.7-RC-2/source/org/esupportail/portal/channels/CStockage/provider/access/WebdavAccessImpl.java:336: warning: [deprecation] getReasonCode() in org.apache.commons.httpclient.HttpException has been deprecated [javac] int reasonCode = ex.getReasonCode(); [javac] ^ [javac] /home/esup/src/canaux/CStockage-4.7-RC-2/source/org/esupportail/portal/channels/CStockage/provider/access/WebdavAccessImpl.java:2580: warning: [deprecation] setReasonCode(int) in org.apache.commons.httpclient.HttpException has been deprecated [javac] ex.setReasonCode(status); [javac] ^ [javac] Note: Some input files use unchecked or unsafe operations. [javac] Note: Recompile with -Xlint:unchecked for details. [javac] 3 warnings [copy] Copying 8 files to /home/esup/src/canaux/CStockage-4.7-RC-2/build/WEB-INF/classes/properties/channels/org_esup/CStockage [copy] Copying 47 files to /home/esup/src/canaux/CStockage-4.7-RC-2/build/WEB-INF/classes/org/esupportail/portal/channels/CStockage [copy] Copying 109 files to /home/esup/src/canaux/CStockage-4.7-RC-2/build/media/org/esupportail/portal/channels/CStockage deploy: [copy] Copying 288 files to /usr/share/tomcat6/webapps/uPortal all: BUILD SUCCESSFUL Total time: 2 seconds fichier de publication du canal [esup@esup3dev ~/src/esup-install] $ cat custom/uPortal/uportal-impl/src/main/resources/properties/db/itsp/channel/CStockage.channel Mes fichiers Mes fichiers CStockage Canal de stockage - Acces fichiers Custom org.esupportail.portal.channels.CStockage.CStockage 5000 N N N N en_US Applications Tout le monde publication [esup@esup3dev ~/src/esup-install] $ ant db.import -Ddir=/home/esup/src/esup-install/custom/uPortal/uportal-impl/src/main/resources/properties/db/itsp/channel -Dpattern="CStockage.channel" ... [java] Base Import Directory=/home/esup/src/esup-install/custom/uPortal/uportal-impl/src/main/resources/properties/db/itsp/channel [java] FILE_PATTERN=CStockage.channel [java] Import Channel: CStockage.channel ===== fragments ===== video3 51mn 30s ils permettent d'affecter automatiquement un ensemble de contenu a une population. il faut preparer des contenus ciblés, onglet, colonne , canaux pour qu'une population ait ce pre-remplissage à la connexion . Deux composantes: * definition du fragment (nom, destination => vers qui ...) properties/dlm.xml, * puis réalisation du contenu du fragment ==== definition ==== ownerID pour trouver le contenu de ce fragment, on crée un utilisateur pour lequel on crée un environement onglets/canaux/colones et on definit le fragment X comme etant l'environement de l'utilisateur X-lo (LayOut) . bonne pratique creer un fragment par onglet afin de pouvoir intercaler de nouveaux onglets en cours d'année, idem pour les precedences (10-20-30 ...), se garder du mou ... audiance => deepMemberOf de "tout le monde" (heritage), mais memberOf "eteblissement X" = attachement direct a ce group (feuille). ==== users-lo ==== l'option d'import/création d'un utilisateur pour gérer les fragments façon 2.6 n'est plus recommandée: *ant useradd + mot de passe* en Esup3 la simple déclaration du user-lo dans le fichier dlm.xml créé automatiquement l'utilisateur . comme il n'a pas de mot de passe, on peut se connecter en tant qu'admin puis graphiquement -> fragment Administrator -> guest -> on est connecté en tant que guest-lo et ainsi on peux manipuler graphiquement son environnement (memorisé en BD) puis fait un BD.export du layout . Principes d'usage, la partie anonyme du portail sur le compte guest-lo, puis personnel-lo et etudiants-lo. === définition des utilisateurs === le contenu du fragment est associé a un utilisateur "modele" video3 58mn [esup@esup32dev ~/esup-install/custom/uPortal/uportal-impl/src/main/resources/properties/db/itsp] $ mkdir utilisateurs/ [esup@esup32dev ~/esup-install/custom/uPortal/uportal-impl/src/main/resources/properties/db/itsp] $ ll utilisateurs/ total 12 -rw-r--r-- 1 esup esup 154 Jul 1 22:48 enseignant-lo.user -rw-r--r-- 1 esup esup 152 Jul 1 22:48 etudiant-lo.user -rw-r--r-- 1 esup esup 153 Jul 1 22:48 personnel-lo.user -rw-r--r-- 1 root root 147 Jul 1 23:04 sad-lo.user -rw-r--r-- 1 root root 148 Jul 1 23:04 disi-lo.user [esup@esup32dev ~/esup-install/custom/uPortal/uportal-impl/src/main/resources/properties/db/itsp/utilisateurs] $ cat etudiant-lo.user defaultTemplateUser === import des utilisateurs === [esup@esup32dev ~/esup-install] $ ant db.import -Ddir=/home/esup/esup-install/custom/uPortal/uportal-impl/src/main/resources/properties/db/itsp/utilisateurs/ Buildfile: build.xml ... [java] Base Import Directory=/home/esup/esup-install/custom/uPortal/uportal-impl/src/main/resources/properties/db/itsp/utilisateurs/ [java] FILE_PATTERN=.* [java] Import User: disi-lo.user [java] INFO Looking up bean 'counterStore' in ApplicationContext due to context not yet being initialized [java] Import User: enseignant-lo.user [java] Import User: etudiant-lo.user [java] Import User: personnel-lo.user [java] Import User: sad-lo.user [java] Import of /home/esup/esup-install/custom/uPortal/uportal-impl/src/main/resources/properties/db/itsp/utilisateurs/ Complete in 23444 milliseconds. BUILD SUCCESSFUL Total time: 42 seconds il est de bon usage d'ajouter ces utilisateurs au groupe "proprietaire de fragment" pour faciliter la gestion graphique de ces comptes [esup@esup32dev ~/esup-install/custom/uPortal/uportal-impl/src/main/resources/properties/db/itsp/group_membership] $ cat Proprietaires_de_fragment.group_membership Proprietaires de fragment org.jasig.portal.security.IPerson system These are fragment layout owner accounts admin-lo all-lo fragmentTemplate guest-lo personnel-lo enseignant-lo etudiant-lo sad-lo disi-lo db import [esup@esup32dev ~/esup-install] $ ant db.import -Ddir=/home/esup/esup-install/custom/uPortal/uportal-impl/src/main/resources/properties/db/itsp/group_membership/ -Dpattern="Proprietaires_de_fragment.*\.group_membership" Buildfile: build.xml ... [java] Base Import Directory=/home/esup/esup-install/custom/uPortal/uportal-impl/src/main/resources/properties/db/itsp/group_membership/ [java] FILE_PATTERN=Proprietaires_de_fragment.*\.group_membership [java] Import Group_Membership: Proprietaires_de_fragment.group_membership [java] Import Group_Membership: Proprietaires_de_fragment.group_membership [java] Import of /home/esup/esup-install/custom/uPortal/uportal-impl/src/main/resources/properties/db/itsp/group_membership/ Complete in 5228 milliseconds. BUILD SUCCESSFUL Total time: 32 seconds === delete d'utilisateur === a des fin de test des fragments / profiles, il peut-etre utile d'effacer un utilisateur de la BD uPortal afin de verifier le layout (profil dlm) qu'il reçoit initialement. Litse de tache ant et description: http://www.esup-portail.org/pages/viewpage.action?pageId=84213994 ici c'est "ant user.del -Dusername=test" qui va etre utiliser [esup@esup3dev ~/src/esup-install] $ ant user.del -Dusername=test [echo] Invoking DeleteUser ... [java] DeleteUser.main(): Got portal UID for test: 271 .... [java] DeleteUser.main(): Removed 271 from portal db. BUILD SUCCESSFUL pour constater pleinement le changement, il est preferable de refaire un ant init, ant deploy et tomcat restart apres ce delete. [esup@esup32dev ~/esup-install/custom/uPortal/uportal-impl/src/main/resources/properties/db/itsp] $ mkdir fragments $ ll fragments/ total 28 -rw-r--r-- 1 esup esup 2926 Jul 1 22:50 admin-lo.fragment-layout -rw-r--r-- 1 esup esup 1801 Jul 1 22:50 all-lo.fragment-layout -rw-r--r-- 1 esup esup 1650 Jul 1 22:50 enseignant-lo.fragment-layout -rw-r--r-- 1 esup esup 1944 Jul 1 22:50 etudiant-lo.fragment-layout -rw-r--r-- 1 esup esup 2997 Jul 1 22:50 guest-lo.fragment-layout -rw-r--r-- 1 esup esup 5161 Jul 1 22:50 personnel-lo.fragment-layout ==== Fragments Import XML ==== on prepare nos fragments par type de population (associées aux utilisateurs modeles) [esup@esup3dev ~/src/esup-install/custom/uPortal/uportal-impl/src/main/resources/properties/db/itsp/fragments] $ ls admin-lo.fragment-layout enseignant-lo.fragment-layout guest-lo.fragment-layout all-lo.fragment-layout etudiant-lo.fragment-layout personnel-lo.fragment-layout ==== Fragments par GUI ==== on peux aussi les administrer via l'interface web du portail, via le Canal "Fragment Administration" ==== import des xml ==== import des modele xml de la formation esup, fragment layouts au format 3.2 [esup@esup32dev ~/esup-install/custom/uPortal/uportal-impl/src/main/resources/properties/db/itsp/fragments] $ ll total 12 -rw-r--r-- 1 root root 2665 Jul 2 16:12 enseignant-lo.fragment-layout -rw-r--r-- 1 root root 3873 Jul 2 16:12 etudiant-lo.fragment-layout -rw-r--r-- 1 root root 2742 Jul 2 16:12 personnel-lo.fragment-layout [esup@esup32dev ~/esup-install/custom/uPortal/uportal-impl/src/main/resources/properties/db/itsp/fragments] $ cat enseignant-lo.fragment-layout db import des fragments [esup@esup32dev ~/esup-install] $ ant db.import -Ddir=/home/esup/esup-install/custom/uPortal/uportal-impl/src/main/resources/properties/db/itsp/fragments/ Buildfile: build.xml ... [java] Base Import Directory=/home/esup/esup-install/custom/uPortal/uportal-impl/src/main/resources/properties/db/itsp/fragments/ [java] FILE_PATTERN=.* [java] Import DLM Fragment Layout: enseignant-lo.fragment-layout ... [java] INFO RDBMEntityGroupStore.initialize(): Node separator set to . [java] INFO Looking up bean 'cacheFactory' in ApplicationContext due to context not yet being initialized [java] Import DLM Fragment Layout: etudiant-lo.fragment-layout [java] Import DLM Fragment Layout: personnel-lo.fragment-layout [java] Import of /home/esup/esup-install/custom/uPortal/uportal-impl/src/main/resources/properties/db/itsp/fragments/ Complete in 19997 milliseconds. BUILD SUCCESSFUL Total time: 49 seconds Questions fragment video3 1H10mn ===== DLM ===== on reprend le dlm.xml dans notre arborescence de custom [esup@esup32dev ~/esup-install] $ cp /home/esup/esup-uPortal-3.2.4-esup-1.0.0-RC3/update/uPortal/uportal-impl/src/main/resources/properties/dlm.xml custom/uPortal/uportal-impl/src/main/resources/properties/ Admin c'est un PersonEvaluatorFactory . :!: si une personne est personel et etudiant, il recupere les 2 fragment si un fragment pour ces 2 population .:!: video3 55mn alternative a 3 frag etudiantr, 3 frag personnels, 6 fragments individuels avec pour le fragment commun un acces aux deux populations, plus souple pour le deplacement également . On peu avoir le meme fragment pour les 2 populations et gerer des droits d'acces a un canal en particulier pour telle population . esup@esup32dev ~/esup-install] $ ll /home/esup/esup-uPortal-3.2.4-esup-1.0.0-RC3/update/uPortal/uportal-impl/src/main/resources/properties/dlm.xml-rw-r--r-- 1 esup esup 2705 Feb 14 09:09 /home/esup/esup-uPortal-3.2.4-esup-1.0.0-RC3/update/uPortal/uportal-impl/src/main/resources/properties/dlm.xml [esup@esup32dev ~/esup-install] $ ll /home/esup/esup-uPortal-3.2.4-esup-1.0.0-RC3/custom/uPortal/uportal-impl/src/main/resources/properties/dlm.xml -rw-r--r-- 1 esup esup 4078 Jun 19 22:32 /home/esup/esup-uPortal-3.2.4-esup-1.0.0-RC3/custom/uPortal/uportal-impl/src/main/resources/properties/dlm.xml [esup@esup32dev ~/esup-install] $ diff /home/esup/esup-uPortal-3.2.4-esup-1.0.0-RC3/update/uPortal/uportal-impl/src/main/resources/properties/dlm.xml /home/esup/esup-uPortal-3.2.4-esup-1.0.0-RC3/custom/uPortal/uportal-impl/src/main/resources/properties/dlm.xml 47,48c47,80 < < --- > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > Ant init et ant deploy pour deplacer ce nouveau dlm.xml aux bons endrois ant init deplace notre dlm.xml custom dans l'espace de compilation du portail [esup@esup32dev ~/esup-install] $ ant init [esup@esup32dev ~/esup-install] $ ll /home/esup/esup-uPortal-3.2.4-esup-1.0.0-RC3/Portail/uPortal_rel-3.2.4/uportal-impl/src/main/resources/properties/dlm.xml -rw-rw-r-- 1 esup esup 4078 Jun 19 22:34 /home/esup/esup-uPortal-3.2.4-esup-1.0.0-RC3/Portail/uPortal_rel-3.2.4/uportal-impl/src/main/resources/properties/dlm.xml ant deploy le deplace dans le webapps de l'arborescence du serveur d'application [esup@esup32dev ~/esup-install] $ ll /var/lib/tomcat6/webapps/uPortal/WEB-INF/classes/properties/dlm.xml -rw-rw-r-- 1 esup esup 4078 Jun 19 22:37 /var/lib/tomcat6/webapps/uPortal/WEB-INF/classes/properties/dlm.xml ===== Skin ===== ==== skinList ==== video3 1H13mn30s principe de separation entre le html et la css, distinction fond / forme. cinematique: recup de l'environement user dans la BD , le portail en fait du XML qui passe au travers de XSLT, pour finalement aboutir a du Xhtml et enfin application de CSS sur ce html => cela permet de faire a partir du meme xml de le passer au travers de 2 xsl differents xsl universality et xsl m-universality pour avoir 2 rendu differents . en phase developpement on commente le cache des css pour diposer immediatement de nos modif, cf themes/web.xml comment de pageCachingFilter et CacheExpiresFilter , video3 1H16 on peux avoir plusieurs css et l'utilisateur passe de l'une a l'autre. Quand on desactive la css on a un portail "serialisé" voire "accessible" ... ;-) 2 Fichiers skinList.xml de base avec 4 skin uportal-war/src/main/webapp/media/skins/universality/skinList.xml uportal-war/src/main/webapp/media/skins/muniversality/skinList.xml pour nos skin on reprend le fichier dans custom [esup@esup32dev ~/esup-install/custom] $ mkdir -p uPortal/uportal-war/src/main/webapp/media/skins/universality/ $ mkdir -p uPortal/uportal-war/src/main/webapp/media/skins/muniversality/ [esup@esup32dev ~/esup-install] $ cp Portail/uPortal_rel-3.2.4/uportal-war/src/main/webapp/media/skins/universality/skinList.xml custom/uPortal/uportal-war/src/main/webapp/media/skins/universality/ [esup@esup32dev ~/esup-install] $ cp Portail/uPortal_rel-3.2.4/uportal-war/src/main/webapp/media/skins/muniversality/skinList.xml custom/uPortal/uportal-war/src/main/webapp/media/skins/muniversality/ et on l'edite pour ajouter les notres (formation et itsp) [esup@esup32dev ~/esup-install] $ vim custom/uPortal/uportal-war/src/main/webapp/media/skins/universality/skinList.xml [esup@esup32dev ~/esup-install] $ diff Portail/uPortal_rel-3.2.4/uportal-war/src/main/webapp/media/skins/universality/skinList.xml custom/uPortal/uportal-war/src/main/webapp/media/skins/universality/skinList.xml 55a56,71 > > > formation > Theme de formation > > Theme de formation. > > > > > itsp > Campus ITSP > > Skin de Telecom SudParis et Telecom Ecole de Management. > > ==== Skin maison ==== En 3.2 il y a des changement, video3 1H19 skin.xml pour le definition du skin dedans on y retrouve le chargement des css de base (fluid => carcan pour faire de la css, normaliser les class et nom de fichiers ...) import des css uportal3, les javascripts + surchage des css Creation d'une skin itsp a partir de celui de "formation", preparation de l'arborescence custom et definition des css etc ... (ici reprise de la formation esup3.2) [esup@esup32dev ~/esup-install] $ mkdir custom/uPortal/uportal-war/src/main/webapp/media/skins/universality/formation $ scp -r formation/* root@esup32dev.it-sudparis.eu:/home/esup/esup-install/custom/uPortal/uportal-war/src/main/webapp/media/skins/universality/formation formation.css 100% 5903 5.8KB/s 00:00 portal_logo.png 100% 16KB 16.2KB/s 00:00 portal_logo_slim.png 100% 16KB 16.2KB/s 00:00 skin.xml 100% 2581 2.5KB/s 00:00 thumb.gif 100% 3904 3.8KB/s 00:00 recopie du skin 3.2 "formation" en itsp [esup@esup32dev ~/esup-install/custom/uPortal/uportal-war/src/main/webapp/media/skins/universality] $ cp -a formation itsp le point d'entrée est formation.css qui fait des import des autres. ensuite pour mettre en ligne on init et deploy ==== skin par defaut ==== le changement du theme par defaut se via le fichier qui gere le profile DLM XML DLM_XHTML.theme a recopier dans notre custom . [esup@esup32dev ~/esup-install/custom/uPortal/uportal-impl/src/main/resources/properties/db/itsp] $ mkdir theme [esup@esup32dev ~/esup-install/custom/uPortal/uportal-impl/src/main/resources/properties/db/itsp] $ cp /home/esup/esup-uPortal-3.2.4-esup-1.0.0-RC3/Portail/uPortal_rel-3.2.4/uportal-impl/src/main/resources/properties/db/mini/theme/DLM_XHTML.theme ./theme/ modification [esup@esup32dev ~/esup-install/custom/uPortal/uportal-impl/src/main/resources/properties/db/itsp] $ diff theme/DLM_XHTML.theme /home/esup/esup-uPortal-3.2.4-esup-1.0.0-RC3/Portail/uPortal_rel-3.2.4/uportal-impl/src/main/resources/properties/db/mini/theme/DLM_XHTML.theme 23,24c23,24 < itsp < Campus itsp --- > formation > Design skin name 28c28 < --- > importation de cette nouvelle xsl [esup@esup32dev ~/esup-install] $ ant db.import -Ddir=/home/esup/esup-install/custom/uPortal/uportal-impl/src/main/resources/properties/db/itsp/theme/ Buildfile: build.xml [java] Base Import Directory=/home/esup/esup-install/custom/uPortal/uportal-impl/src/main/resources/properties/db/itsp/theme/ [java] FILE_PATTERN=.* [java] Import Theme: DLM_XHTML.theme [java] Import of /home/esup/esup-install/custom/uPortal/uportal-impl/src/main/resources/properties/db/itsp/theme/ Complete in 2142 milliseconds. BUILD SUCCESSFUL Total time: 32 seconds Tout utilisateur ayant deja personnelement changer son skin, le gardera , donc si on le fait trop tard il faut modifier dans le BD le choix du skin pour chaque users ! ==== Theme par population ==== il est possible d'affecter une theme (skin) par type de population video4 0mn === map attribut === il faut mapper un attribut sur le uPortalTemplateUserName custom/uPortal/uportal-impl/src/main/resources/properties/contexts/personDirectoryContext.xml il herite alors de l'environement utilisateur template, puis herite du profile où on change la partie skin. Cela n'a d'effet que si l'utilisateur de c'est jamais connecté, il faudra detruite l'utilisateur pour que cela s'applique . [esup@esup32dev ~/esup-install] $ mkdir custom/uPortal/uportal-impl/src/main/resources/properties/db/itsp/template_account [esup@esup32dev ~/esup-install/custom/uPortal/uportal-impl/src/main/resources/properties/db/itsp/template_account] $ ll total 36 -rw-r--r-- 1 esup esup 409 Jul 3 23:31 tem-default.profile -rw-r--r-- 1 esup root 481 Jul 3 23:33 tem.layout -rw-r--r-- 1 esup root 86 Jul 3 23:34 tem.template-user -rw-r--r-- 1 esup root 416 Jul 3 23:37 tmsp-default.profile -rw-r--r-- 1 esup root 481 Jul 3 23:36 tmsp.layout -rw-r--r-- 1 esup root 86 Jul 3 23:36 tmsp.template-user -rw-r--r-- 1 esup root 415 Jul 3 23:37 tsp-default.profile -rw-r--r-- 1 esup root 481 Jul 3 23:37 tsp.layout -rw-r--r-- 1 esup root 86 Jul 3 23:38 tsp.template-user $ cat tmsp.template-user $ cat tmsp-default.profile HTML browser profile default A sample profile for common web browsers skin formation $ cat tmsp.layout import [esup@esup32dev ~/esup-install] $ ant db.import -Ddir=/home/esup/esup-install/custom/uPortal/uportal-impl/src/main/resources/properties/db/itsp/template_account/ Buildfile: build.xml [java] Base Import Directory=/home/esup/esup-install/custom/uPortal/uportal-impl/src/main/resources/properties/db/itsp/template_account/ [java] FILE_PATTERN=.* [java] Import Template User: tem.template-user [java] Import Template User: tmsp.template-user [java] Import Template User: tsp.template-user [java] Import Profile: tem-default.profile [java] Import Profile: tmsp-default.profile [java] Import Profile: tsp-default.profile [java] Import Layout: tem.layout [java] INFO Looking up bean 'PortalDb' in ApplicationContext due to context not yet being initialized [java] INFO Looking up bean 'PortalDB.metadata' in ApplicationContext due to context not yet being initialized ... [java] INFO RDBMEntityGroupStore.initialize(): Node separator set to . [java] INFO Looking up bean 'cacheFactory' in ApplicationContext due to context not yet being initialized [java] Import Layout: tmsp.layout [java] Import Layout: tsp.layout [java] Import of /home/esup/esup-install/custom/uPortal/uportal-impl/src/main/resources/properties/db/itsp/template_account/ Complete in 19203 milliseconds. BUILD SUCCESSFUL Total time: 51 seconds ===== Langues, traduction XSL ===== video4 15mn12s Maintenant les traductions se font dans un fichier XML à part : uportal-war/src/main/resources/layout/theme/universality/messages.xml ===== XSL et composants du portails ===== video4 18mn la XSL principal est decomposé en 6 fichiers par "fonctionnalité" => structure page, navigation, blocs login, search etc ... structure des colonnes, des contenus et preferences uportal-war/src/main/resources/layout/theme/universality/universality.xsl Pour travailler a chaud sur les xls directement dans le repertoire webapps (comme pour CSS et javascritps) Lors du travail sur les xsl il vous est possible de désactiver le cache (dans le custom.properties : esup.xsl.cache=false) il faut que l'URL change pour que la XSL change (changer d'onglet ) Eviter d'en modifier trop car a chaque changement de version c'est bcp de travail. Nancy a modifié essentiellement le fait d'afficher un seul canal quand on clique sur un onglet plutot que tous . exemple de retrait du lien "Plan du site" [esup@esup32dev ~/esup-install] $ mkdir -p custom/uPortal/uportal-war/src/main/resources/layout/theme/universality/ [esup@esup32dev ~/esup-install] $ cp update/uPortal/uportal-war/src/main/resources/layout/theme/universality/components.xsl custom/uPortal/uportal-war/src/main/resources/layout/theme/universality/ $ vim components.xsl [esup@esup32dev ~/esup-install/custom/uPortal/uportal-war/src/main/resources/layout/theme/universality] $ diff components.xsl /home/esup/esup-uPortal-3.2.4-esup-1.0.0-RC3/update/uPortal/uportal-war/src/main/resources/layout/theme/universality/components.xsl 187d186 < ===== Canaux, Canal Annuaire ===== video 4 21mn40s 24mn30 Portlet Path est recherché dans le portlet.xml la servlet "pluto invoquer" doit demarrer dès le démarrage du tomcat (web.xml : 1) pour que le context soit deja pret et que le portail puisse la lister => du coup le portail met plus de tps a demarrer car demarrage du portail + les contexts des portlets + servlets des points d'entrée qui les demarrent . ==== Canal Annuaire ==== http://www.esup-portail.org/display/PROJCANANN/Recherche+dans+un+annuaire+%27pages+blanches%27 http://www.esup-portail.org/display/PROJCANANN/Installation+canal+Annuaire [esup@esup32dev ~/esup-install/src/canaux] $ wget https://sourcesup.cru.fr/frs/download.php/2983/esup-canal-annuaire-3.2.1.zip [esup@esup32dev ~/esup-install/src/canaux/CAnnuaire-3.2.1] $ diff build.exemple.properties build.properties 11c11 < tomcat.home = E:/esupdev/esupdev-x.x/uPortal_rel-x-x-x-quick-start/Tomcat_x-x-x --- > tomcat.home = /usr/share/tomcat6 14c14 < uportal.home = E:/esupdev/esupdev-x.x/uPortal_rel-x-x-x-quick-start/uPortal_rel-x-x-x --- > uportal.home = /home/esup/esup-install/Portail/uPortal_rel-3.2.4 17c17 < deploy.home = E:/esupdev/esupdev-x.x/uPortal_rel-x-x-x-quick-start/webapps/uPortal --- > deploy.home = /usr/share/tomcat6/webapps/uPortal si pb au ant deploy sur le repartoire $tomcat_home/common/lib => le creer avec droits d'acces a l'utilisateur esup. ==== Publication ==== http://www.esup-portail.org/display/ESUPMU/Publication+de+canaux+%28esup-3%29 en mode "cli" avec un fichier de definition .channel suivit d'un db.import [esup@esup32dev ~/esup-install] $ ant db.import -Ddir=/home/esup/esup-install/custom/uPortal/uportal-impl/src/main/resources/properties/db/itsp/channel -Dpattern="esup-annuaire.*\.channel" Buildfile: build.xml ... [java] Base Import Directory=/home/esup/esup-install/custom/uPortal/uportal-impl/src/main/resources/properties/db/itsp/channel [java] FILE_PATTERN=esup-annuaire.*\.channel [java] Import Channel: esup-annuaire.channel ... [java] Import of /home/esup/esup-install/custom/uPortal/uportal-impl/src/main/resources/properties/db/itsp/channel Complete in 9835 milliseconds. BUILD SUCCESSFUL Total time: 18 seconds On peux aussi commencer sur ce premier canal par le publier via l'interface web esup. Connexion Admin au portail => clique sur Gestionnaire de Cannaux (uPortal/render.userLayoutRootNode.uP?uP_fname=portlet-admin) -> referencer une nouvelle portlet -> type obsolete Custom -> suivre les menus (Suivant), categorie, groupes ... on fini par la gestion du cycle de vie => publié ! helas cela plante ... ERROR [org.jasig.portal.ChannelManager#55] Sep/22 15:34:56,115 portlet.DispatcherPortlet.[] - Could not complete request org.springframework.webflow.execution.ActionExecutionException: Exception thrown executing [AnnotatedAction@57f36c targetAction = [EvaluateAction@2e68de expression = portletAdministrationHelper.savePortletRegistration(channel, person), resultExposer = [null]], attributes = map[[empty]]] in state 'reviewPortlet' of flow 'edit-portlet' -- action execution attributes were 'map[[empty]]' at org.springframework.webflow.execution.ActionExecutor.execute(ActionExecutor.java:60) ... Caused by: org.springframework.binding.expression.EvaluationException: An OgnlException occurred getting the value for expression 'portletAdministrationHelper.savePortletRegistration(channel, person)' on context [class org.springframework.webflow.engine.impl.RequestControlContextImpl] ... Caused by: ognl.MethodFailedException: Method "savePortletRegistration" failed for object org.jasig.portal.portlets.portletadmin.PortletAdministrationHelper@99a52c [org.springframework.dao.InvalidDataAccessApiUsageException: clazz can not be null; nested exception is java.lang.IllegalArgumentException: clazz can not be null] ... Caused by: org.springframework.dao.InvalidDataAccessApiUsageException: clazz can not be null; nested exception is java.lang.IllegalArgumentException: clazz can not be null ... Caused by: java.lang.IllegalArgumentException: clazz can not be null [esup@esup32dev ~/esup-install/src/canaux/CAnnuaire-3.2.1] $ ls -ald /usr/share/tomcat6/common/lib/ drwxrwxr-x 2 root esup 4096 Sep 22 11:42 /usr/share/tomcat6/common/lib/ Exporter le contenu de la base de données: [esup@esup32dev ~/esup-install] $ mkdir db-exports [esup@esup32dev ~/esup-install] $ ant db.export -Dtype=all -Ddir=/home/esup/esup-install/db-exports [esup@esup32dev ~/esup-install] $ ls -l db-exports/ total 44 drwxrwxr-x 2 esup esup 4096 Sep 22 15:31 channel drwxrwxr-x 2 esup esup 4096 Sep 22 15:31 channel-type drwxrwxr-x 2 esup esup 4096 Sep 22 15:32 entity-type drwxrwxr-x 2 esup esup 4096 Sep 22 15:31 fragment-layout drwxrwxr-x 2 esup esup 4096 Sep 22 15:32 group_membership drwxrwxr-x 2 esup esup 4096 Sep 22 15:31 layout drwxrwxr-x 2 esup esup 4096 Sep 22 15:31 permission_set drwxrwxr-x 2 esup esup 4096 Sep 22 15:31 profile drwxrwxr-x 2 esup esup 4096 Sep 22 15:32 structure drwxrwxr-x 2 esup esup 4096 Sep 22 15:31 theme drwxrwxr-x 2 esup esup 4096 Sep 22 15:31 user ===== stats ===== video4 39mn30s Par defaut le portail agrège un fichier de stats definis dns le config.propoerties # STATS Options esup.stats.file=${esup.log.dir}/stats.log ===== Mobiles ===== video4 43mn Par defaut le portail dispose de deux themes mobiles, iphone et android detectés sur le user-agent. pour les canaux portlet ... c'est a eux de le gerer. Mais la navigation générale du portail est gérée . UNR IDF => esup-mobile . ===== JavaScripts ===== video 4 46mn30s javascript jquery ... exemple redimensionner dynamiquement une iframe et afficher aussi un bouton pour sortir l'Iframe du portail (nouvelle fenetre 52mn) Penser a desagreger les CSS afin de rendre les codes source CSS de la page lisibles ===== Tutoriel esup3 en video ==== Vidéo tutoriel eSup V3 http://mediatheque.parisdescartes.fr/rubrique.php3?id_rubrique=706&tri=titre http://www.esup-portail.org/pages/viewpage.action?pageId=88244244 ==== sujets video1 ==== > 9mn tomcat5 -> tomcat6 /lib (vs common - shared) > 34mn context /cas et serialisation de sessions au demarrage/arret > 39mn installation du portail >41,30 java_home build.properties >42 tomcat.update mettre les jar dont esup a besoin dans tomcat, lors du deployement il les met là où il faut . true une fois, puis a false , sauf si necessité d'une MAJ >47 real.host quand load balancing /guest acces a un canal en mode non authentifié >48 context uportal et contexServingWebapps >54 sidebar de gauche uportalv3 desactivé >60 ant get-components (chercher le uportal du jasig) >61 ant unzip decompacte les zip des package exterieurs esup * ant init prend les update esup les copie dans uportal et customisation dans uportal * ant deploy compile les class (1 milliers !) et les deploient dans webapps/esup-portail * ant db_init cree les tables ==== video2 ==== * 20mn le compte admin: handler file webapps/cas/WEB-INF/usersFile login::md5password * 27mn ldap persondir * 38mn ldap groups, smartGroupstore * 46mn group locaux * 52mn db.import * * ==== video3 ==== * 0,30mn rappel group PAGS * 10mn rattachement des groupe PAGS ldap au groupe locaux en db.import * 15mn discussion sur les types de groups (pags, ldap, smart ...) * 26mn publication d'un canal * 38mn les fragments * 48mn users-lo; utilisateurs modeles de layout * 51mn DLM ==== video4 ==== * 0mn contenu des fragments * 14mn fragment cache: fragment_cache_refresh 5mn par defaut * 25mn allow disallow move colonne, canal etc ... * 26mn un fragment commun webmail mais avec cannal iframe masqué par type de population, droits des canaux * 28,5mn Skin * 35mn skin par defaut , 35,5 principe de generation xsl structure -> xsl theme * 41,20 choix du theme par population; uPortalTemplateUserName