Author: tchemit Date: 2009-02-03 10:37:54 +0000 (Tue, 03 Feb 2009) New Revision: 1558 Modified: branches/migration-200901/simexplorer-is/src/site/fr/rst/devel/migration2009.rst Log: finalisation documentation migration Modified: branches/migration-200901/simexplorer-is/src/site/fr/rst/devel/migration2009.rst =================================================================== --- branches/migration-200901/simexplorer-is/src/site/fr/rst/devel/migration2009.rst 2009-01-26 13:22:16 UTC (rev 1557) +++ branches/migration-200901/simexplorer-is/src/site/fr/rst/devel/migration2009.rst 2009-02-03 10:37:54 UTC (rev 1558) @@ -2,8 +2,14 @@ SimExplorer SI ============== +:Author: Tony Chemit <chemit at codelutin.com> + +:Date: 3 février 2009 + +.. contents:: + Abstract -~~~~~~~~ +******** Ce document détaille la migration de l'application et la préparation de la version 1.0. @@ -14,76 +20,78 @@ :: - simexplorer-is/simexplorer-is-storage/src/java/fr/cemagref/simexplorer/is/storage/database/lucene/LuceneDatabase.java - simexplorer-is/simexplorer-is-storage/src/java/fr/cemagref/simexplorer/is/exceptions/SimExplorerException.java - simexplorer-is/simexplorer-is-storage/src/test/fr/cemagref/simexplorer/is/storage/VersionGenerator.java - simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/AuthenticationServiceImpl.java - simexplorer-is/simexplorer-is-web/src/main/webapp/WEB-INF/app_fr.properties - simexplorer-is/simexplorer-is-web/src/main/webapp/WEB-INF/app.properties - simexplorer-is/simexplorer-is-entities/src/java/fr/cemagref/simexplorer/is/entities/data/RuntimeType.java - simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/GoFirstPageAction.java - simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/DetailToTreeAction.java - simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/util/ShowTabAbstractAction.java - simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/util/DownloadAbstractAction.java - simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/util/ShowListTabAbstractAction.java - simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ExpandAllAction.java - simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ShowDetailTabAction.java - simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/CollapseAllAction.java - simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ResetSearchAction.java - simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/GoPreviousPageAction.java - simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/AdvancedSearchAction.java - simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/GoLastPageAction.java - simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/UnconnectAction.java - simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/history/HistoryAbstractAction.java - simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/history/HistoryAddAction.java - simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/history/HistoryDeleteExportAction.java - simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/history/HistoryUnconnectAction.java - simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/tab/DetailTabModel.java - simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/tab/ListTabModel.java - simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/tab/SimExplorerAbstractTabModel.java - simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/tab/SynchronizeTabModel.java - simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/HistoryModel.java - simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/DataEntityModel.java - simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/SimExplorerContext.java - simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/SimExplorer.java - simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/EntityTreeNodeHelper.java - simexplorer-is/src/site/fr/rst/rules.rst - simexplorer-is/src/site/fr/rst/index.rst - simexplorer-is/src/site/fr/rst/todo.rst - simexplorer-is/src/site/fr/rst/devel/enviro.rst - simexplorer-is/src/site/fr/rst/devel/old/glassfish.txt - simexplorer-is/src/site/fr/rst/devel/old/maven.rst - simexplorer-is/src/site/fr/rst/devel/index.rst - simexplorer-is/src/site/fr/rst/devel/implementation.rst - simexplorer-is/src/site/fr/rst/install.rst + simexplorer-is-storage/src/java/fr/cemagref/simexplorer/is/storage/database/lucene/LuceneDatabase.java + simexplorer-is-storage/src/java/fr/cemagref/simexplorer/is/exceptions/SimExplorerException.java + simexplorer-is-storage/src/test/fr/cemagref/simexplorer/is/storage/VersionGenerator.java + simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/AuthenticationServiceImpl.java + simexplorer-is-web/src/main/webapp/WEB-INF/app_fr.properties + simexplorer-is-web/src/main/webapp/WEB-INF/app.properties + simexplorer-is-entities/src/java/fr/cemagref/simexplorer/is/entities/data/RuntimeType.java + simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/GoFirstPageAction.java + simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/DetailToTreeAction.java + simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/util/ShowTabAbstractAction.java + simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/util/DownloadAbstractAction.java + simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/util/ShowListTabAbstractAction.java + simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ExpandAllAction.java + simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ShowDetailTabAction.java + simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/CollapseAllAction.java + simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ResetSearchAction.java + simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/GoPreviousPageAction.java + simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/AdvancedSearchAction.java + simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/GoLastPageAction.java + simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/UnconnectAction.java + simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/history/HistoryAbstractAction.java + simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/history/HistoryAddAction.java + simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/history/HistoryDeleteExportAction.java + simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/history/HistoryUnconnectAction.java + simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/tab/DetailTabModel.java + simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/tab/ListTabModel.java + simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/tab/SimExplorerAbstractTabModel.java + simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/tab/SynchronizeTabModel.java + simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/HistoryModel.java + simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/model/DataEntityModel.java + simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/SimExplorerContext.java + simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/SimExplorer.java + simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/ui/EntityTreeNodeHelper.java + src/site/fr/rst/rules.rst + src/site/fr/rst/index.rst + src/site/fr/rst/todo.rst + src/site/fr/rst/devel/enviro.rst + src/site/fr/rst/devel/old/glassfish.txt + src/site/fr/rst/devel/old/maven.rst + src/site/fr/rst/devel/index.rst + src/site/fr/rst/devel/implementation.rst + src/site/fr/rst/install.rst Utilisation layout maven 2 -------------------------- Le layout (i.e l'organisation physique des répertoires) ne respectait pas les -convention préconisées par Maven 2, car à l'heure où ce projet a été développé +conventions préconisées par Maven 2, car à l'heure où ce projet a été développé nous n'avions pas encore de super-pom (lutinproject) qui respectait ces conventions. Aujourd'hui, c'est le cas et nous nous baserons le sur le super-pom *org.codelutin:lutinproject:3.3* -Nous préconisons aussi l'utilisation de ces conventions car la plupart des plugin +Nous préconisons aussi l'utilisation de ces conventions car la plupart des plugins maven (dont les notres) les respectent et cela facilite grandement l'écriture des poms de se baser sur ces conventions. -Pour plus de renseignement, voir http://maven.apache.org/guides/introduction/introduction-to-the-standard-dir... +Pour plus de renseignement, voir la page `standard-directory-layout`_ + + Refactoring des poms -------------------- -Amélioration des poms du projet modules se basant sur les préconisations -écrites par Sonatype http://books.sonatype.com/maven-book/reference/public-book.html +Amélioration des poms du projet multi-modules se basant sur les préconisations +écrites par Sonatype : `sonatype-book`_ -En effet, un certain d'anit-pattern maven ont été introduits dans nos poms -(par exemple l'utilisation de la variable current.version qui nous rend dépendant du super-pom du projet -alors que cela ne doit pas être le cas. +En effet, un certain nombre d'anti-pattern maven ont été introduits dans nos poms +(par exemple l'utilisation de la variable current.version qui nous rend dépendant +du super-pom du projet alors que cela ne doit pas être le cas). Harmonisation des poms ~~~~~~~~~~~~~~~~~~~~~~ @@ -92,11 +100,11 @@ qui permettent de savoir plus facilement où l'on se trouve dans le pom. On s'est basé sur le document suivant qui décrit bien les différentes sections -d'un pom : http://www.javaworld.com/javaworld/jw-05-2006/jw-0529-maven.html +d'un pom : `definition-poms`_ -En gros, il ya quantre grandes sections : +En gros, il ya quatre grandes sections : -- *POM Relationships* : les relation du module +- *POM Relationships* : les relation du module (son parent, dépendences,...) - *Project Information* : les informations propres au module - *Build Settings* : le build du module - *Build Environment* : l'environnement du build du module @@ -105,8 +113,8 @@ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Dans le pom parent, les plugins étaient déclarés dans plugins, ce qui n'est pas -correct, car cette section est réservée à l'exécution de plugins et non pas à leur configuration, -il faut utiliser la section pluginManagement à cet effet. +correct, car cette section est réservée à l'exécution de plugins et non pas à +leur configuration, il faut utiliser la section pluginManagement à cet effet. Refactoring des dépendances ~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -127,22 +135,22 @@ Cela permettra de ne plus avoir à avoir comme dépendance dans d'autres projet le super-pom car ça c'est pas du tout normal :) -Utilisation de luinproject 3.3 -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Utilisation de lutinproject 3.3 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Ce nouveau super-pom est meilleur que les précédents :) il permet par exemple une -gestion des scm améliorée, et surtout ré-utilise le profile release-profile pour lancer +gestion des scm améliorée, et surtout ré-utilise le profil release-profile pour lancer l'exécution de plugin normalement nécessaire pendant une phase de release (javadoc, source, enforcer,...). -Ce profile reste cependant déclancheable à tout moment via la variable +Ce profil reste cependant déclancheable à tout moment via la variable *performRelease*, ce qui peut-être interressant lorsque l'on déploye par exemple une snapshot car il est toujours bon de deployer en même temps au moins les sources (les IDE aiment bien ça!) -Donc un simple mvn deploy -DperformRelease et le tour est joué. +Donc un simple *mvn deploy -DperformRelease* et le tour est joué. -Ajout des fichiers REAMDE.txt et changelong.txt sur tous les mdoules. +Ajout des fichiers *REAMDE.txt* et *changelog.txt* sur tous les mdoules. Utilisation des nouveaux groupId de nos librairies et plugins @@ -159,32 +167,36 @@ Certaines librairies et plugins actuellement utilisés sur le logiciel sont en snapshot, i.e sont suceptibles d'évoluer et ne sont pas stables, on les -remplace par des version releasées qui elles sont jages de stabilité et sont +remplace par des versions releasées qui elles sont gages de stabilité et sont plus facilement traçables (des tags svn sont posés pour chaque nouvelle release). Migration vers JAXX 1.0 ~~~~~~~~~~~~~~~~~~~~~~~ -Un gros travail a été effectué sur la libraire JAXX http://buix.labs.libre-entreprise.org/jaxx, désormais +Un gros travail a été effectué sur la libraire `JAXX`_, désormais l'exécution de l'application est bien détachée du code du compilateur JAXX, cela -a nécessité de repenser l'organisation des modules du projet JAXX et cela nécessite une moigration. +a nécessité de repenser l'organisation des modules du projet JAXX et cela nécessite une migration. Suppression du module simexplorer-si-swing-generated ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Le plugin Jaxx et Commandline sont désormais capables de générer du code -lorsque cela est nécessaire, il n'est donc plus nécessaire de conserver -un module de génération et tout est générer dans le module swing. +uniquement lorsque cela est nécessaire, il n'est donc plus nécessaire de +conserver un module de génération et tout est généré dans le module swing. Exclure les dépendences transitives pour le client Swing ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Certaines librairies possèdent des dépendences transitives non utilisés par -le client lourd, donc inutile de les embarquer dans les dépendances de -l'application, cela diminue le nombre de jar et c'est un plus. +Certaines librairies possèdent des dépendences transitives non utilisées +par le client lourd, donc inutile de les embarquer dans les dépendances de +l'application, cela diminue le nombre de jar et allège le process de +build et aussi d'exécution (par exemple pour le chargement i18n). +.. _standard-directory-layout: http://maven.apache.org/guides/introduction/introduction-to-the-standard-dir... +.. _sonatype-book: http://books.sonatype.com/maven-book/reference/public-book.html +.. _definition-poms: http://www.javaworld.com/javaworld/jw-05-2006/jw-0529-maven.html +.. _JAXX: http://buix.labs.libre-entreprise.org/jaxx -
participants (1)
-
tchemit@users.labs.libre-entreprise.org