Prérequis
Avoir un compte github
Dans la suite du document le compte utilisé est raymondBourges. Il convient d'adapter l'exemple avec votre propre compte.
- Avoir enregistré sa clé SSH (Cf. aide GitHub sur le sujet)
Avoir un IDE java avec des plugins pour GIT et Maven
Dans la suite du document eclipse et les plugins EGit et m2e sont utilisés.
Forker le projet sur github
Aller sur la page du projet
Faire le fork
Interlude github :
Vous disposez maintenant de votre copie du projet :
Travailler avec le projet
Télécharger le projet sur votre poste de travail
Github vous permet de copier l'URL à utiliser :
Cloner le projet sur votre poste de travail :
Ici on utilise git en ligne de commande mais d'autres solutions sont possible (plugin EGit eclipse par exemple)
cd /tmp git clone git@github.com:raymondBourges/esup-opi.git
Importer le projet dans eclipse
File > Import... :
Interlude eclipse :
Personnaliser votre configuration
Pour plus d'information sur le contenu du fichier de configuration cf. 3. Configuration de eCandidat
En tant que développeur vous avez besoin de configurer l'application notamment pour préciser les paramètres liés à la base de données, l'authentification CAS, les URL des description WSDL des Web Services.
La localisation du fichier de configuration est fonction de la variable d'environnement config.location (Cf. esup-opi-web-jsf-servlet/src/main/resources/properties/applicationContext.xml). Cette variable d'environnement sera à positionner lors des appels maven.
En ligne de commande. Ex :
export configFile=/path/to/configs/esup-opi/config.properties
mvn -Dconfig.location=$configFile jetty:run
Dans eclipse. Ex :
Ne versionnez pas votre fichier de configuration spécifique au risque de commiter des informations sensibles sur le gestionnaire de versions.
Utiliser un répertoire hors de l'espace de travail git pour stocker ce fichier de configuration pour éviter tout risque de mise sous gestionnaire de versions.
Opérations complémentaires
Pour la base de données
Pour la base de données une source JNDI est utilisée. La source JNDI est définie au niveau du serveur d'applications. Dans le cadre du développement, maven est utilisé et c'est le plugin jetty qui fait office de serveur d'applications. Il faut donc définir la source JNDI dans un fichier de configuration du serveur d’applications jetty.
Un fichier d'exemple (utilisé par défaut) est fourni : esup-opi-web-jsf-servlet/src/main/jetty/jetty-env.xml
Si vous souhaitez utiliser une base existante ou spécifique alors il faut créer votre propre fichier de configuration avec les paramètres de connexion à cette base.
la localisation du fichier de configuration est fonction de la variable d'environnement jetty.envXml. Cette variable d'environnement sera à positionner lors des appels maven.
Ne pas modifier le fichier fourni par défaut au risque de commiter des informations sensibles sur le gestionnaire de versions.
Pour les mêmes raisons, ne versionner pas votre fichier de configuration spécifique.
Utiliser un répertoire hors de l'espace de travail git pour stocker ce fichier de configuration pour éviter tout risque de mise sous gestionnaire de versions.
Pour le Web Services
ESUP-OPI utilise des Web Services. Il utilise un plugin maven pour générer automatiquement du code à partir des fichiers WSDL décrivant ces Web Services. Il faut donc configurer eclipse pour utiliser le code généré :
Demander à eclipse de rafraîchir les projets maven (Alt + F5) :
Tester le projet
Pas besoin d'installer un serveur d'applications, maven s'occupe de tout.
On configure un run dans eclipse :
Puis :
Lancer votre navigateur pour accéder à http://localhost:8080/
Faire une contribution
Coder
Correction d'un bug, ajout de fonctionnalités, etc. A vous de jouer !
Exemple idiot :
Commiter
Puis :
Pousser
Votre commit est maintenant visible sur GitHub :
Proposer
Proposer votre contribution à ESUP sous la forme d'un Pull Request :
Puis :
Enfin :
Les développeurs du projet n'auront qu'un clic à faire pour intégrer la contribution.