This is an automated email from the git hooks/post-receive script. New commit to branch feature/7464 in repository observe. See http://git.codelutin.com/observe.git commit 5eaca28074538c11180bc92a93cddae3fff45e17 Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Aug 21 12:47:41 2015 +0200 mise en forme du service de migration + debut de migration des tag values --- .../observe/ObserveTopiaApplicationContext.java | 11 ++++++ .../migration/AbstractDataSourceMigration.java | 46 +++++++++++----------- .../entities/migration/ObserveMigrationEngine.java | 21 ++++++++++ .../src/main/xmi/observe-common.properties | 5 +++ .../src/main/xmi/observe-seine.properties | 11 ++++++ 5 files changed, 70 insertions(+), 24 deletions(-) diff --git a/observe-entities/src/main/java/fr/ird/observe/ObserveTopiaApplicationContext.java b/observe-entities/src/main/java/fr/ird/observe/ObserveTopiaApplicationContext.java index d7d6bcc..55d0b46 100644 --- a/observe-entities/src/main/java/fr/ird/observe/ObserveTopiaApplicationContext.java +++ b/observe-entities/src/main/java/fr/ird/observe/ObserveTopiaApplicationContext.java @@ -7,6 +7,8 @@ import java.util.Properties; public class ObserveTopiaApplicationContext extends AbstractObserveTopiaApplicationContext { + private boolean autoMigrate; + @Deprecated public ObserveTopiaApplicationContext(Properties properties) { super(properties); @@ -21,4 +23,13 @@ public class ObserveTopiaApplicationContext extends AbstractObserveTopiaApplicat super(topiaConfiguration); } + public boolean isAutoMigrate() { + return autoMigrate; + } + + //FIXME Voir comment remplir ça. + public void setAutoMigrate(boolean autoMigrate) { + this.autoMigrate = autoMigrate; + } + } diff --git a/observe-entities/src/main/java/fr/ird/observe/entities/migration/AbstractDataSourceMigration.java b/observe-entities/src/main/java/fr/ird/observe/entities/migration/AbstractDataSourceMigration.java index 53464f9..1464c00 100644 --- a/observe-entities/src/main/java/fr/ird/observe/entities/migration/AbstractDataSourceMigration.java +++ b/observe-entities/src/main/java/fr/ird/observe/entities/migration/AbstractDataSourceMigration.java @@ -21,13 +21,12 @@ */ package fr.ird.observe.entities.migration; -import com.google.common.base.Preconditions; -import com.google.common.base.Supplier; +import fr.ird.observe.ObserveTopiaApplicationContext; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.nuiton.config.ApplicationConfig; import org.nuiton.topia.migration.TopiaMigrationCallbackByClass; import org.nuiton.util.version.Version; +import org.nuiton.util.version.VersionBuilder; import org.nuiton.util.version.Versions; import javax.swing.JOptionPane; @@ -95,15 +94,17 @@ public abstract class AbstractDataSourceMigration extends TopiaMigrationCallback V_4_0_RC3, V_4_0_RC4, V_4_0_RC6, V_4_0_RC7, V_4_0, V_4_0_1 }; - private static Supplier<ApplicationConfig> applicationConfigSupplier; + protected ObserveTopiaApplicationContext topiaApplicationContext; - public static void setApplicationConfigSupplier(Supplier<ApplicationConfig> applicationConfigSupplier) { - AbstractDataSourceMigration.applicationConfigSupplier = applicationConfigSupplier; - } - - public static Supplier<ApplicationConfig> getApplicationConfigSupplier() { - return applicationConfigSupplier; - } +// private static Supplier<ApplicationConfig> applicationConfigSupplier; +// +// public static void setApplicationConfigSupplier(Supplier<ApplicationConfig> applicationConfigSupplier) { +// AbstractDataSourceMigration.applicationConfigSupplier = applicationConfigSupplier; +// } +// +// public static Supplier<ApplicationConfig> getApplicationConfigSupplier() { +// return applicationConfigSupplier; +// } protected AbstractDataSourceMigration(MigrationCallBackForVersionResolver callBackResolver) { @@ -111,15 +112,6 @@ public abstract class AbstractDataSourceMigration extends TopiaMigrationCallback } - //FIXME - @Override - public Version getApplicationVersion() { - Preconditions.checkNotNull(applicationConfigSupplier); - ApplicationConfig config = applicationConfigSupplier.get(); - return config.getOption(Version.class, DB_VERSION); -// return DataSourceFactory.getDbVersion(); - } - @Override public Version[] getAvailableVersions() { return availableVersions; @@ -129,7 +121,7 @@ public abstract class AbstractDataSourceMigration extends TopiaMigrationCallback @Override public boolean askUser(Version dbVersion, List<Version> versions) { - Version applicationVersion = getApplicationVersion(); + Version applicationVersion = VersionBuilder.create(topiaApplicationContext.getModelVersion()).build(); if (dbVersion.before(V_3_0)) { @@ -143,12 +135,14 @@ public abstract class AbstractDataSourceMigration extends TopiaMigrationCallback } - Preconditions.checkNotNull(applicationConfigSupplier); - ApplicationConfig config = applicationConfigSupplier.get(); + boolean autoMigrate = topiaApplicationContext.isAutoMigrate(); + +// Preconditions.checkNotNull(applicationConfigSupplier); +// ApplicationConfig config = applicationConfigSupplier.get(); // ApplicationConfig config = // ObserveServiceHelper.get().getContextValue( // ApplicationConfig.class); - boolean autoMigrate = config.getOptionAsBoolean(AUTO_MIGRATE); +// boolean autoMigrate = config.getOptionAsBoolean(AUTO_MIGRATE); if (autoMigrate) { // auto-migration @@ -168,4 +162,8 @@ public abstract class AbstractDataSourceMigration extends TopiaMigrationCallback return answer == JOptionPane.YES_OPTION; } + public void setTopiaApplicationContext(ObserveTopiaApplicationContext topiaApplicationContext) { + this.topiaApplicationContext = topiaApplicationContext; + } + } diff --git a/observe-entities/src/main/java/fr/ird/observe/entities/migration/ObserveMigrationEngine.java b/observe-entities/src/main/java/fr/ird/observe/entities/migration/ObserveMigrationEngine.java new file mode 100644 index 0000000..d28c78c --- /dev/null +++ b/observe-entities/src/main/java/fr/ird/observe/entities/migration/ObserveMigrationEngine.java @@ -0,0 +1,21 @@ +package fr.ird.observe.entities.migration; + +import fr.ird.observe.ObserveTopiaApplicationContext; +import org.nuiton.topia.migration.TopiaMigrationEngine; +import org.nuiton.topia.persistence.TopiaApplicationContext; + +import java.util.Map; + +/** + * Created on 21/08/15. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class ObserveMigrationEngine extends TopiaMigrationEngine { + + @Override + public void initTopiaService(TopiaApplicationContext topiaApplicationContext, Map<String, String> serviceConfiguration) { + super.initTopiaService(topiaApplicationContext, serviceConfiguration); + ((AbstractDataSourceMigration) callback).setTopiaApplicationContext((ObserveTopiaApplicationContext) topiaApplicationContext); + } +} diff --git a/observe-entities/src/main/xmi/observe-common.properties b/observe-entities/src/main/xmi/observe-common.properties index 62323b7..39cc2b6 100644 --- a/observe-entities/src/main/xmi/observe-common.properties +++ b/observe-entities/src/main/xmi/observe-common.properties @@ -42,10 +42,15 @@ package.fr.ird.observe.entities.tagvalue.dbSchema=OBSERVE_COMMON ### Champ Commentaire en text ################################################# ############################################################################### +#FIXME fr.ird.observe.entities.CommentableEntity.attribute.comment.tagvalue.type=text fr.ird.observe.entities.referentiel.Vessel.attribute.comment.tagvalue.type=text fr.ird.observe.entities.referentiel.Program.attribute.comment.tagvalue.type=text +#fr.ird.observe.entities.CommentableEntity.attribute.comment.tagValue.hibernateAttributeType.java.lang.String=text +#fr.ird.observe.entities.referentiel.Vessel.attribute.comment.tagValue.hibernateAttributeType.java.lang.String=text +#fr.ird.observe.entities.referentiel.Program.attribute.comment.tagValue.hibernateAttributeType.java.lang.String=text + ############################################################################### ### Champ Numeric (utilisation du type sql numeric) ########################### ############################################################################### diff --git a/observe-entities/src/main/xmi/observe-seine.properties b/observe-entities/src/main/xmi/observe-seine.properties index e04f24e..af310af 100644 --- a/observe-entities/src/main/xmi/observe-seine.properties +++ b/observe-entities/src/main/xmi/observe-seine.properties @@ -86,16 +86,27 @@ fr.ird.observe.entities.seine.TargetLength.attribute.weight.tagvalue.sqlType=num ############################################################################### ### Champ Date (utilisation du type sql date) ################################# ############################################################################### + +#FIXME fr.ird.observe.entities.seine.TripSeine.attribute.startDate.tagvalue.type=date fr.ird.observe.entities.seine.TripSeine.attribute.endDate.tagvalue.type=date fr.ird.observe.entities.seine.Route.attribute.date.tagvalue.type=date +#fr.ird.observe.entities.seine.TripSeine.attribute.startDate.tagValue.hibernateAttributeType.java.util.Date=date +#fr.ird.observe.entities.seine.TripSeine.attribute.endDate.tagValue.hibernateAttributeType.java.util.Date=date +#fr.ird.observe.entities.seine.Route.attribute.date.tagValue.hibernateAttributeType.java.util.Date + ############################################################################### ### Champ Time (utilisation du type sql time ) ################################ ############################################################################### + +#FIXME fr.ird.observe.entities.seine.ActivitySeine.attribute.time.tagvalue.type=time fr.ird.observe.entities.seine.SetSeine.attribute.startTime.tagvalue.type=time +#fr.ird.observe.entities.seine.SetSeine.attribute.startTime.tagValue.hibernateAttributeType.java.util.Date=time +#fr.ird.observe.entities.seine.ActivitySeine.attribute.time.tagValue.hibernateAttributeType.java.util.Date=time + ############################################################################### ### Données lazy ############################################################## ############################################################################### -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.