Récupération des sources
Vous pouvez récupérer les sources sur le dépôt Subversion de Sourcesup, à l'adresse suivante: https://subversion.renater.fr/esup-annuaire2/
Il est recommandé d'utiliser la dernière version (tags) ou le trunk.
Adaptation à l'établissement
Principes
Un établissement souhaitant adapter l'application à son annuaire Ldap (attributs spécifiques, règles de gestion particulières), devra écrire un nouveau module Maven en lieu et place de esup-annuaire2-ldep-services-lille1.
Nous recommandons d'enrichir le projet initial, en utilisant le SVN, de manière à mutualiser nos efforts.
...
- Les paramètres de configuration sont centralisés dans les fichiers defaults.properties et config.properties qui se trouvent dans le module esup-annuaire2-web-jsf-mixed (\src\main\resources\properties). Si le config.properties n'existe pas, créez le, il ne doit contenir que les éléments que vous souhaitez utiliser en lieu et place de ceux de defaults.properties.
Prenez soin de ne jamais commiter config.properties car il peut contenir des éléments propres et sécurisés de votre établissement ! - Pour bien maitriser ces paramètres, reportez vous aux beans Spring où ils sont invoqués... Ces beans se trouvent dans le module esup-annuaire2-web-jsf-mixed (\src\main\resources\properties),et aussi dans les répertoires \src\main\resources\META-INF\ des différents modules.
Personnaliser le déploiement
Pour mettre pleinement en œuvre la procédure ci-dessus dans le cadre d'un établissement, tout en gardant vos paramètres de configuration particuliers, vous pouvez suivre ces différentes étapes:
...
Bloc de code |
---|
<?xml version="1.0" encoding="UTF-8" ?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd"> <!-- /properties/applicationContext.xml The main Spring configuration file. This file should not be modified but by the developers. This file is referenced by /webapp/WEB-INF/web.xml. --> <context:property-placeholder location="classpath:/properties/defaults.properties,classpath:/properties/config.properties" /> <bean id="app_context" class="org.esupportail.commons.context.ApplicationContextHolder" /> <import resource="classpath*:META-INF/esup-annuaire2-domain-services-auth.xml" /> <import resource="classpath*:META-INF/esup-annuaire2-domain-services-domain.xml" /> <import resource="classpath*:META-INF/esup-annuaire2-ldap-services-ldapCommons.xml" /> <!-- Attention, dans un environnement de production, la substitution de variable ne s'applique pas aux imports Il est donc indispensable d'effectuer le remplacement de la variable annuaire2.ldap.schema manuellement --> <import resource="classpath*:META-INF/esup-annuaire2-ldap-services-ldapLille1.xml" /> <import resource="classpath*:META-INF/esup-annuaire2-ldap-services-locationUtilLille1.xml" /> <import resource="classpath*:META-INF/esup-annuaire2-utils-agentUtil.xml" /> <import resource="cache/cache.xml" /> <import resource="exceptionHandling/exceptionHandling.xml" /> <import resource="i18n/i18n.xml" /> <import resource="misc/abstractBeans.xml" /> <import resource="misc/application.xml" /> <import resource="smtp/smtp.xml" /> <import resource="tags/tags.xml" /> <import resource="web/controllers.xml" /> <import resource="ws/cxf.xml" /> </beans> |
Déployer en mode portlet / servlet
Depuis ce répertoire (annuaire2, à la racine de l'image des répertoires ci-dessus) , lancer un script avec les commandes suivantes (ici avec le trunk):
Bloc de code svn co https://subversion.crurenater.fr/esup-annuaire2/trunk/esup-annuaire2 zip -r packages/esup-annuaire2.zip esup-annuaire2/ rm -rf esup-annuaire2/
puis lancer un autre script avec les commandes suivantes:
Bloc de code ant init cd=`pwd` cd annuaire2 mvn clean install cd esup-annuaire2-web-jsf-mixed/ mvn -DProduction=true clean package cd /home/tomcat/portail/BUILD/esup-package ant portlet.deploy -DportletApp=/home/tomcat/portail/BUILD/applis/annuaire2/annuaire2/esup-annuaire2-web-jsf-mixed/target/esup-annuaire2-0.1.0.war cd $cd
Commentaires:
La cible "init" va partir du .zip construit par le script précédent pour y incorporer les fichiers que vous avec personnalisés, elle est constituée ainsi:Bloc de code <target name="init" depends="unzip"> <copy overwrite="true" todir="${appli.base}/"> <fileset dir="custom" includes="**/*" /> </copy> </target> <target name="unzip"> <delete dir="${appli.base}"/> <delete dir="${appli.tmp}"/> <mkdir dir="${appli.tmp}"/> <unzip src="${appli.packages}/${appli.package-name}" dest="${appli.tmp}" /> <move todir="${appli.base}/"> <fileset dir="${appli.tmp}/${appli.name-version}"/> </move> </target>
Les propriétés utilisées sont celles-ci:
Bloc de code appli.name-version=esup-annuaire2 appli.package-name=${appli.name-version}.zip appli.name=annuaire2 appli.root=/home/tomcat/portail/BUILD/applis/${appli.name} appli.base=/home/tomcat/portail/BUILD/applis/${appli.name}/${appli.name} appli.tmp=${appli.root}/temp appli.packages=${appli.root}/packages
La commande Maven "clean install" va créer un répertoire "target", compiler les différents modules de l'application
On se place ensuite dans le module web de l'application.
La commande Maven -DProduction=true clean package réalise la construction du ficher WAR.
La suite, c'est l'assemblage dans un nouveau web.xml du web.xml livré dans le WAR avec le fichier portlet.xml.