Package org.nuiton.topia.migration
Class TopiaMigrationEngine
java.lang.Object
org.nuiton.topia.migration.TopiaMigrationEngine
- All Implemented Interfaces:
TopiaService,TopiaMigrationService
Le moteur de migration proposé par topia. Il est basé sur un
AbstractTopiaMigrationCallback
qui donne la version de l'application, les version de mises à jour disponibles.
Le call back offre aussi les commandes sql à passer pour chaque version de mise à jour.
FIXME Finir cette documentation- Since:
- 2.3.4
- Version:
- $Id$
- Author:
- tchemit
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected AbstractTopiaMigrationCallbackCallbackHandler list (initialise en pre-init)protected final TopiaContextListenerdelegate context listener.protected booleanA flag to know if none of the dealed entities tables exists in db.protected booleanDrapeau pour savoir si la base est versionnée ou nonprotected org.nuiton.version.VersionVersion courante de la base (initialise en pre-init)protected booleanUn drapeau pour savoir si le service a bien ete initialise (i.e a bien fini la methode preInit)protected booleanUn drapeau pour effectuer la migration au demarrage (initialise en pre-init)protected TopiaContextImplementortopia root context (initialise en pre-init)protected booleanUn drapeau pour afficher la progression des requetes sql executeesprotected booleanUn drapeau pour afficher les requetes sql executeesprotected TMSVersionPersisterPour enregistrer les version en base (initialise en pre-init)protected final TopiaTransactionVetoabledelgate transaction listenerprotected booleanA flag to check if version was detected in database.Fields inherited from interface org.nuiton.topia.migration.TopiaMigrationService
MIGRATION_CALLBACK, MIGRATION_MIGRATE_ON_INIT, MIGRATION_SHOW_PROGRESSION, MIGRATION_SHOW_SQL, SERVICE_NAME, TOPIA_SERVICE_NAME -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidprotected booleanDetects if there is some schema existing for at least one of the dealed entity of the underlying db context.protected voidvoidprotected List<org.nuiton.version.Version>filterVersions(Set<org.nuiton.version.Version> versions, org.nuiton.version.Version min, org.nuiton.version.Version max, boolean includeMin, boolean includeMax) Filter versions.Class<?>[]protected StringgetSafeParameter(Properties config, String key) protected org.nuiton.version.VersiongetVersion(boolean versionTableExist, String tableName) booleanbooleanpostInit(TopiaContextImplementor context) booleanpreInit(TopiaContextImplementor context) protected voidEnregistre la version donnee en base avec creation de la table si elle n'existe pas.
-
Field Details
-
tmsVersionPersister
Pour enregistrer les version en base (initialise en pre-init) -
dbVersion
protected org.nuiton.version.Version dbVersionVersion courante de la base (initialise en pre-init) -
dbNotVersioned
protected boolean dbNotVersionedDrapeau pour savoir si la base est versionnée ou non -
dbEmpty
protected boolean dbEmptyA flag to know if none of the dealed entities tables exists in db.- Since:
- 2.5.3
-
migrateOnInit
protected boolean migrateOnInitUn drapeau pour effectuer la migration au demarrage (initialise en pre-init) -
callback
CallbackHandler list (initialise en pre-init) -
rootContext
topia root context (initialise en pre-init) -
init
protected boolean initUn drapeau pour savoir si le service a bien ete initialise (i.e a bien fini la methode preInit) -
versionDetected
protected boolean versionDetectedA flag to check if version was detected in database. This flag is set totrueat the end of methoddetectDbVersion(). -
showSql
protected boolean showSqlUn drapeau pour afficher les requetes sql executees -
showProgression
protected boolean showProgressionUn drapeau pour afficher la progression des requetes sql executees -
contextListener
delegate context listener. -
transactionVetoable
delgate transaction listener
-
-
Constructor Details
-
TopiaMigrationEngine
public TopiaMigrationEngine()
-
-
Method Details
-
getPersistenceClasses
- Specified by:
getPersistenceClassesin interfaceTopiaService
-
getServiceName
- Specified by:
getServiceNamein interfaceTopiaService
-
preInit
- Specified by:
preInitin interfaceTopiaService
-
postInit
- Specified by:
postInitin interfaceTopiaService
-
doMigrateSchema
- Throws:
MigrationServiceException
-
migrateSchema
- Specified by:
migrateSchemain interfaceTopiaMigrationService- Throws:
MigrationServiceException
-
saveApplicationVersion
protected void saveApplicationVersion()Enregistre la version donnee en base avec creation de la table si elle n'existe pas. -
detectDbVersion
protected void detectDbVersion() -
detectDbEmpty
protected boolean detectDbEmpty()Detects if there is some schema existing for at least one of the dealed entity of the underlying db context.- Returns:
trueif there is no schema for any of the dealed entities,falseotherwise.- Since:
- 2.5.3
-
getVersion
-
getSafeParameter
-
checkInit
protected void checkInit() -
filterVersions
protected List<org.nuiton.version.Version> filterVersions(Set<org.nuiton.version.Version> versions, org.nuiton.version.Version min, org.nuiton.version.Version max, boolean includeMin, boolean includeMax) Filter versions.- Parameters:
versions- versions to filtermin- min version to acceptmax- max version to acceptincludeMin- flag to include min versionincludeMax- flag to include max version- Returns:
- versions between min and max
-