Projets
Pages enfant
  • 3.3.6 Numérotation des versions

Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.

...

Distribuer une mise à jour d'un logiciel est en général chose facile, d'autant plus avec esup-commons car il suffit d'appeler une commande batch.
La mise à jour sur une plateforme de production est en général beaucoup plus délicate à cause de la nécessité de maintenir la cohérence des numéros de version de l'application et de la base de données. Ce point est résolu par le bean versionningService, comme montré plus haut.

Comment ça marche

Les exemples données ici sont consultables dans l'application esup-example

versionningService

example-domain-services-init.xml dans le répertoire META-INF du module example-domain-services :

Bloc de code
languagehtml/xml
<bean
 id="versionningService

...

"
 class="org.esupportail.example.services.application.VersionningServiceImpl"
 parent="abstractDomainAwareBean" />

Ce fichier est dans le répertoire META-INF du module pour pouvoir être utilisé par différents autres modules. Typiquement la couche web et la couche batch.

Stockage de la version

La version de la base de données est stockée dans la base de données elle même. Pour manipuler cette version il y a du code métier, dao et un mapping objet/relationnel*.*

mapping objet/relationnel

Le VersionningService manipule un objet ESUP-Commons qui est Version. Par contre, l'objet qui est stockée en base est un objet VersionManager. Cet objet est aussi un objet ESUP-Commons. Contrairement aux autres objets de votre applications qui ont besoin d'être enregistrés en base et qui peuvent être annotés directement avec des annotations JPA, VersionManager nécessite un fichier de mapping XML.

Remarque

La version hibernate utilisée comme implémentation de JPA ne semble pas bien supporter les fichiers de mapping XML au format standardisé par JPA. Aussi nous utilisons un fichier de mapping XML spécifique à hibernate.

VersionManager.hbm.xml dans le répertoire META-INF de example-dao

Vérification de version

Si l'application n'est pas en phase avec la version de la base de données alors on peut être amener à mettre à jour cette dernière. Cf. 3.3.3 Gestion de la structure de la base de données