User Tools

Site Tools


wiki:epims4_0:developer:configdev

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
wiki:epims4_0:developer:configdev [2008/02/22 08:56]
bruley
wiki:epims4_0:developer:configdev [2008/11/12 11:16] (current)
Line 1: Line 1:
 ====== Configuration ePims pour le développement ====== ====== Configuration ePims pour le développement ======
 +
 +
 +===== Remarque =====
 +
 +FIXME: Attention les targets "SANS IDE" ne sont pas commité sous SVN !!!
  
 ===== Introduction ===== ===== Introduction =====
Line 28: Line 33:
  
 ===== Environnement de développement ===== ===== Environnement de développement =====
 +
 +
 +
 +
 +
  
  
Line 35: Line 45:
  
 === Plugins === === Plugins ===
-Pour la partie développement,​ nous utilisons **Eclipse Europa** (version 3.3). Les différents modules que l'on trouvent sous SVN sont donc formattés ​pour cet environnement.+Pour la partie développement,​ nous utilisons **Eclipse Europa** (version 3.3). Les différents modules que l'on trouvent sous SVN sont donc formatés ​pour cet environnement.
 Plusieurs plugins doivent être ajoutés afin de gérer correctement les modules ePims. Quand cela est possible, l'​installation se fait via les sites d'​update : Plusieurs plugins doivent être ajoutés afin de gérer correctement les modules ePims. Quand cela est possible, l'​installation se fait via les sites d'​update :
   * Choisir dans le menu Help, Software Updates > Find and install. ​   * Choisir dans le menu Help, Software Updates > Find and install. ​
Line 42: Line 52:
   * Sélectionner le plugin désiré !!!   * Sélectionner le plugin désiré !!!
  
-Pour les modules web, il est nécessaire d'insatller ​le plugin '**Web and JEE Development**'​ accessible sur le site d'​update ​ "​Europa Discovery Site" (défini par défaut). Cliquer sur "​Select Required"​ afin de résoudre les dépendances entre les plugins. +Pour les modules web, il est nécessaire d'installer ​le plugin '**Web and JEE Development**'​ accessible sur le site d'​update ​ "​Europa Discovery Site" (défini par défaut). Cliquer sur "​Select Required"​ afin de résoudre les dépendances entre les plugins. ​ 
-Les autres plugins à installer sont :  +Il est également possible d'​utiliser directement une distribution d'​Eclipse pour les développement JEE (eclipse-jee-europa-winter-win32.zip). Les versions de plugins installés avec cette distribution d'​Eclipse sont identifié par ''​Ec_JEE''​ 
-  * **Subclipse** Plugin. ​Nous utilisons la version ​1.2.4. Le site d'​update http://​subclipse.tigris.org/​update_1.2.x peut être utilisé  + 
-  * **Spring IDE**version 2.0.3, site d'​update : http://​springide.org/​updatesite. Attention, ne pas sélectionner "​Dependencies"​ de Spring IDE qui n'est valable que sous Eclipse 3.2. Choisir les modules désirés dans Integrations et Extensions.... +Les autres plugins à installer sont : 
-  * **Geronimo Eclipse** plugin, version 2.0.0. Attention, cette version n'est pas accessible via le site d'​update et doit donc être downloadé puis installé.  +  * **Subclipse** Plugin. ​ 
-  * **Hibernate Tools**, version 3.2.0.GA +    * Version ​1.2.4. Le site d'​update http://​subclipse.tigris.org/​update_1.2.x peut être utilisé 
 +    * Version 1.4.5. Le site d'​update est http://​subclipse.tigris.org/​update_1.4.x (''​Ec_JEE''​). Les features (avec toutes leurs sous-features) '​JavaHL Adapter'​ et '​Subclipse'​ ont été sélectionnées. (A tester avec d'​autres pour utilisation avec Mylyn) 
 +  * **Spring IDE** 
 +    * version 2.0.3, site d'​update : http://​springide.org/​updatesite. Attention, ne pas sélectionner "​Dependencies"​ de Spring IDE qui n'est valable que sous Eclipse 3.2. Choisir les modules désirés dans Integrations et Extensions...
 +    * version 2.2.0 (actuellement proposée. ''​Ec_JEE''​) Sélectionne uniquement la feature'​ Core'
 +  * **Geronimo Eclipse** plugin, ​ 
 +    * version 2.0.0. Attention, cette version n'est pas accessible via le site d'​update et doit donc être downloadé puis installé ​(pour l'​installation dezippez l'​archive [[http://​archive.eu.apache.org/​dist/​geronimo/​eclipse/​2.0.0/​]] puis copiez les contenus des dossiers //plugins// et //​features//​ dans leur équivalent du répertoire d'​installation d'​eclipse) 
 +    * version 2.1.3 (à partir de cette version, les serveurs Geronimo 2.0.x et 2.1.x sont supportés par le même plugin. ''​Ec_JEE''​). Voir la page d'aide [[http://​cwiki.apache.org/​GMOxDOC21/​how-to-install-geronimo-eclipse-plugin.html|de Geronimo]]. Soit utiliser le site d'​update http://​apache.org/​dist/​geronimo/​eclipse/​updates/​ et sélectionner Geronimo 2.0 Server Adapter; ​ soit dans la fenêtre ''​Windows > Preferences > Server > Installed Runtimes'',​ cliquer sur Download additional server adpter et choisir Geronimo 2.0 Server Adapter. __**ATTENTION**__:​ **tests en cours : le serveur Geronimo n'est pas proposé ensuite !! Rester sur la version 2.0.0.... pour le moment :o)** 
 +  * **Hibernate Tools**, version 3.2.x.GA. Utilisation du site d'​update http://​download.jboss.org/​jbosstools/​updates/​stable et sélectionne uniquement Hibernate Tool (? ... les autres ?? ''​Ec_JEE''​)
  
 === Configuration === === Configuration ===
  
-  * Dans la perspective SVN, entrer l'URL du repository ​''​https://​www.grenoble.prabi.fr/​svn/​MSISofts/​ePims''​+  * Dans la perspective SVN, entrer l'URL du repository ​(URL indiqué sur le site de gestion de projet. Pour plus d'information voir la page d'accueil [[:]] )
   * Windows > Preferences > Java - Installed JREs : ajouter le **JDK** de java 1.5    * Windows > Preferences > Java - Installed JREs : ajouter le **JDK** de java 1.5 
   * Ant est utilisé pour diverses taches de configuration. Cet outil est également utilisé pour executer des taches spécifiques à la gestion des dépendances entre librairies, par l'​intermédiaire d'ivy. Pour que Ant fonctinne correctement sous Eclipse, il faut ajouter le jar de ivy dans le runtime de Ant : ''​Windows > Preferences > Ant - Runtime''​ : Ajouter le jar de ivy (version 1.4.1) dans le classpath "Ant Home Entry" et ajouter également ''​tools.jar''​ dans le classpath "​Global Entries"​ (''​tools.jar''​ se trouve dans votre install du JDK).    * Ant est utilisé pour diverses taches de configuration. Cet outil est également utilisé pour executer des taches spécifiques à la gestion des dépendances entre librairies, par l'​intermédiaire d'ivy. Pour que Ant fonctinne correctement sous Eclipse, il faut ajouter le jar de ivy dans le runtime de Ant : ''​Windows > Preferences > Ant - Runtime''​ : Ajouter le jar de ivy (version 1.4.1) dans le classpath "Ant Home Entry" et ajouter également ''​tools.jar''​ dans le classpath "​Global Entries"​ (''​tools.jar''​ se trouve dans votre install du JDK). 
-  * Dans ''​Windows > Preferences > Server > Installed Runtimes'',​ ajouter un Server Runtime pour Geronimo ​1.puis configurer le chemin du répertoire d'​installation de Geronimo.+  * Dans ''​Windows > Preferences > Server > Installed Runtimes'',​ ajouter un Server Runtime pour Geronimo ​2.0  ​puis configurer le chemin du répertoire d'​installation de Geronimo.  
 +  * Il faut également ajouter le serveur dans la fenêtre serveur (perspective Java EE / view Servers : New > Server et choisir Apache Geronimo 1.1 avec le runtime précédement installé).
  
-==== Modules ==== 
  
-Quelque soit le module, lorsqu'​un checkout depuis SVN est réaliséil est nécessaire d'​éxécuter la tache Ant "​resolve"​ afin que les librairies tierces soient récupérées au niveau du projet.+==== IVY : Librairies tierces ==== 
 +Les tâches ANT utilisant ivy utilise ​un fichier de propriétés qui doit se trouver sous votre //user home// (C:​\Documents and Settings\<​login>​ sous windows anglais par exemple...). Ce fichierivyconf.properties, contient la définition de deux propriétés :
  
-FIXMEActuellement nous utilisons un repository ​interne pour ivy. Il faudrait rendre accessible une image de ce repository afin de s'assurer que la même configuration est utilisée sur tous les sites de développement !+''​ 
 +ivy.local.repository.path=C:/Divers/repository 
 +\\ 
 +ivy.distrib.dir=C:/​Divers/​dist 
 +''
  
 +Quelque soit le module, lorsqu'​un checkout depuis SVN est réalisé, il est nécessaire d'​exécuter la tache Ant "​resolve"​ afin que les librairies tierces soient récupérées au niveau du projet.
  
-Pour éviter d'​avoir à re-modifier les fichiers de propriété lorsque l'on passe du mode developpement ​au mode production (ou au mode test), des fichiers de configuration différents sont rangés dans des répertoires en fonction du mode. + 
 +FIXME: Actuellement nous utilisons un repository interne pour ivy. Il faudrait rendre accessible une image de ce repository afin de s'​assurer que la même configuration est utilisée sur tous les sites de développement ! Si vous rencontrez des problèmes contactez-nous ! voir page d'​accueil [[:]] 
 + 
 + 
 +==== Configuration des Modules ==== 
 + 
 +== Configuration développement/​production == 
 +Pour éviter d'​avoir à re-modifier les fichiers de propriété lorsque l'on passe du mode développement ​au mode production (ou au mode test), des fichiers de configuration différents sont rangés dans des répertoires en fonction du mode. 
 Par exemple Par exemple
-  * ./resources.main contient tous les fichiers de configuration nécessaire à la production. Ce sont ces fichiers qui sont décrit dans la documentation [[..:​admin:​]].  +  * ./resources/main contient tous les fichiers de configuration nécessaire à la production. Ce sont ces fichiers qui sont décrit dans la documentation [[..:​admin:​]].  
-  * ./​resources/​dev contient la version « développement » de certains des fichiers de configuration et permet, par exemple, de faire en sorte que PIMS_ROOT pointe sur un répertoire de developpement, et springDataSource.xml soit configuré pour utiliser une base de données de tests. ​+  * ./​resources/​dev contient la version « développement » de certains des fichiers de configuration et permet, par exemple, de faire en sorte que PIMS_ROOT pointe sur un répertoire de développement, et que springDataSource.xml soit configuré pour utiliser une base de données de tests. ​
  
 Des tâches ANT, configure.dev,​ etc. permettent de configurer le projet avec les fichiers en fonction du mode désiré. Des tâches ANT, configure.dev,​ etc. permettent de configurer le projet avec les fichiers en fonction du mode désiré.
  
-FIXME: Le nom exacte des cibles ANT et/ou des répertoires propres aux configurations ne sont par toujours identiques d'un projet à l'​autre !!! A corriger. En attendant, une description est données pour chaque module.+FIXME: Le nom exacte des cibles ANT et/ou des répertoires propres aux configurations ne sont pas toujours identiques d'un projet à l'​autre !!! A corriger. En attendant, une description est données pour chaque module.
  
 === eP-Back === === eP-Back ===
Line 83: Line 114:
 === eP-Core === === eP-Core ===
  
-eP-Core est le module ​d'accès à la base de données, pour cela il utilise les frameworks/​outils Hibernate et Spring.+eP-Core est le module ​contenant les parties métier et accès à la base de données ​d'​ePims, pour cela il utilise les frameworks/​outils Hibernate et Spring.
  
-FIXME: Voir ce qu'il y a de spécifique à faire à ce niveau là !+FIXME: Voir ce qu'il y a de spécifique à faire à ce niveau là ! (utile à Eclipse et lors de modification du modele) ​
  
 Le fichier spécifique au mode de développement est sous ./​resources/​dev et est identique à celui nécessitant une configuration pour l'​installation,​ voir [[../​admin:​configurationepims#​eP-Core]]. ​ Le fichier spécifique au mode de développement est sous ./​resources/​dev et est identique à celui nécessitant une configuration pour l'​installation,​ voir [[../​admin:​configurationepims#​eP-Core]]. ​
-Une fois ce fichier modifié, il faut lancer la cible ANT "​dist.dev"​ pour mettre à jour la configuration d'​eP-Core pour le développement. Puis la cible "​create.onejar"​ pour créer une distribution à déployer sur le serveur d'​application de développement. 
  
-FIXME: ​Reprendre ​les cibles ​ANT afin de regrouper ​(ou  non) : publish ​publish.libs create.onejar ​/ dist ...+__Targets Ant dans Eclipse et sans IDE :__ 
 + 
 +  - la cible ANT **"​dist.dev"​**,​ une fois le fichier de configuration modifié, est lancée pour mettre à jour la configuration d'​eP-Core pour le développement.  
 +  - la cible "​create.onejar"​ permet de créer une distribution à déployer sur le serveur d'​application de développement ("​onejar"​ car cette cible créé un jar contenant eP-Core et toute ses dépendances). 
 + 
 +La première cible génère la structure suivante : 
 +  * bin/dist/ 
 +    * eP-Core-<​version>/​ 
 +      * lib/ contient toutes les librairies nécessaire à eP-Core 
 +      * eP-Core.VERSION:​ fichier texte contenant la version et date de création 
 +      * eP-Core-<​version>​.jar : jar contenant les classes d'​eP-Core  
 +    * eP-Core-<​version>​.zip : zip contenant le répertoire eP-Core-<​version>​ 
 + 
 +La seconde ajoute dans bon/dist : 
 +   * oneJar/ 
 +     * eP-Core-<​version>​.jar : jar contenant les classes d'​eP-Core et toutes les librairies nécessaire à eP-Core 
 +     * ePCore.properties : fichier de propriété à modifier (cf ci-dessus) 
 +     * updateJar.bat/​sh : script de mise à jour de ePCore.properties dans le jar 
 + 
 + 
 +=== eP-Web === 
 + 
 +eP-Web est l'​application web d'​ePims.  
 + 
 +Il est nécessaire de configurer (La configuration est identique à celle définie dans [[..:​admin:​configurationepims#​ep-web_ep-webservices]]) 
 +  * le fichier de propriétés //​eP-Web.properties//​ (qui se trouve sous ./​resources/​main ​FIXME A dupliquer dans le repertoire dev?)  
 +  * le fichier ./​WebRoot/​WEB-INF/​geronimo-web.xml  
 +  * le fichier */​WebRoot/​jnlp/​epplate.jnlp ​mettre le nom/port du serveur web pour la propriété  
 + 
 +  <​application-desc ​ ...> 
 +     <​argument>​...</​argument>​ 
 +  </​application-desc > 
 + 
 + 
 +__Dans le contexte Eclipse :__ 
 + 
 +Il faut définir une User Library qui pointe sur eP-Core. Pour cela, menu Windows > Preferences,​ sélectionner Java / Build Path / User Libraries et New. La nouvelle librairie a pour nom ''​eP-Core-3.4.0'' ​ et pointe soit sur le jar issu de la target oneJar d'​eP-Core soit le jar d'​eP-Core issu de dist et toutes ​les librairies nécessaire à eP-Core. Si un autre nom est utilisé, il faut modifier le build path du projet eP-Web (properties / Java Buils Path, choisir l'​onglet Libraries et cliquer sur add Library)... 
 + 
 +Il faut ensuite exécuter la cible ANT **configure** pour répercuter les modifications faites dans les différents fichiers ​de config. 
 + 
 +__Dans un contexte sans IDE :__ 
 + 
 +En attendant une mailleur structuration et organisation des différents projets, pour générer le .war à intégrer dans le EAR d'​ePims,​ il faut : 
 + 
 +  * Il faut copier le fichier eP-Core.jar issu de la target oneJar d'​eP-Core dans ./​WebRoot/​WEB-INF/​lib 
 +  * Il faut copier le jar contenant l'api de Servlet / JSP (A DEFINIR PRECISEMENT) dans ./​WebRoot/​WEB-INF/​lib 
 +  * exécuter la cible Ant **dist.full** 
 + 
 + 
 +=== eP-WebServices === 
 + 
 +eP-WebServices est le module de publication de certains services d'​eP-Core (utilisés par eP-Plate par exemple)
 + 
 +De même que pour eP-Web, il est nécessaire de configurer le fichier ./​WebRoot/​WEB-INF/​geronimo-web.xml en utilisant les définitions données dans [[..:admin:​configurationepims#​ep-web_ep-webservices]].  
 + 
 +__Dans le contexte Eclipse :__ 
 + 
 +Il faut définir une User Library qui pointe sur eP-Core. Pour cela, menu Windows > Preferences,​ sélectionner Java Build Path / User Libraries et NewLa nouvelle librairie a pour nom ''​eP-Core-3.4.0'' ​ et pointe soit sur le jar issu de la target oneJar d'​eP-Core soit le jar d'​eP-Core issu de dist et toutes les librairies nécessaire à eP-Core. Si un autre nom est utilisé, il faut modifier le build path du projet eP-Web (properties ​Java Buils Path, choisir l'​onglet Libraries et cliquer sur add Library)... 
 + 
 +Il faut ensuite exécuter la cible ANT **configure.dist** pour répercuter les modifications faites dans les différents fichiers de config. 
 + 
 +__Dans un contexte sans IDE :__ 
 + 
 +En attendant une mailleur structuration et organisation des différents projets, pour générer le .war à intégrer dans le EAR d'​ePims,​ il faut : 
 + 
 +  * Il faut copier le fichier eP-Core.jar issu de la target oneJar d'​eP-Core dans ./WebRoot/​WEB-INF/​lib 
 +  * exécuter la cible Ant **dist.full** 
 + 
 +=== ePims === 
 +ePims est l'​application EAR contenant eP-Web et eP-WebServiceIl est nécessaire de correctement configurer ePims au niveau de la data source... voir la configuration des modules d'​ePims dans la  documentation [[..:​admin:​]] 
 + 
 + 
 +__Dans le contexte Eclipse :__ 
 +Si une erreur apparait au niveau du serveur associé à l'​application (Targeted Runtimes), il faut aller dans les propriétés de l'​application,​ page '​targeted runtimes',​ déselectionner '​Apache Geronimo 1.1' et soit le resélectionner soit le recréer ...  
 + 
 +Il n'y a pas de cible Ant pour ce projet lorsque l'on déploie à partir de Eclipse
  
 +__Dans un contexte sans IDE :__
 +En attendant une mailleur structuration et organisation des différents projets, pour générer le .ear il faut 
 +  * copier eP-Web.war à la racine du projet
 +  * copier eP-WebServices.war à la racine du projet
 +  * exécuter la cible Ant **dist** Le EAR généré peut alors être déployé sur le serveur Geronimo
  
 +=== eP-Plate ===
 +FIXME
wiki/epims4_0/developer/configdev.1203667000.txt.gz · Last modified: 2008/09/24 15:35 (external edit)