This is an automated email from the git hooks/post-receive script. New commit to branch feature/8124-VerifAdmin in repository tutti. See https://gitlab.nuiton.org/codelutin/tutti.git commit 163d742a61568eac00d067a7435b13e80440f9e5 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Thu Mar 24 12:24:24 2016 +0100 correction de création de base PG vide (see #8124). --- .../ird/observe/ui/storage/ObstunaAdminAction.java | 1 + .../fr/ird/observe/ui/storage/StorageUIModel.java | 39 +++++++++------------- .../observe/ObserveTopiaApplicationContext.java | 29 ++++++++++++++++ .../services/service/DataSourceServiceTopia.java | 2 ++ 4 files changed, 47 insertions(+), 24 deletions(-) diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/ObstunaAdminAction.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/ObstunaAdminAction.java index 704f54f..53d5340 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/ObstunaAdminAction.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/ObstunaAdminAction.java @@ -165,6 +165,7 @@ public enum ObstunaAdminAction { createConfigurationDto.setImportDataConfiguration(importDataConfig.getConfiguration(), importDataIds); } + users = model.getSecurityModel().getUsers(); super.initTask(model); } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/StorageUIModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/StorageUIModel.java index 804e14e..6c7eb31 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/StorageUIModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/StorageUIModel.java @@ -951,17 +951,17 @@ public class StorageUIModel extends WizardModel<StorageStep> { validate = ConnexionStatus.SUCCESS.equals(getConnexionStatus()); //FIXME Il faut savoir si l'utilisateur est le //FIXME propriétaire de la base - if (validate) { - if (getAdminAction() != null) { - - // il faut des droits rw sur la base distante - validate = dataSourceInformation != null && - dataSourceInformation.canReadReferential() && - dataSourceInformation.canWriteReferential() && - dataSourceInformation.canWriteData() && - dataSourceInformation.canReadData(); - } - } +// if (validate) { +// if (getAdminAction() != null) { +// +// // il faut des droits rw sur la base distante +// validate = dataSourceInformation != null && +// dataSourceInformation.canReadReferential() && +// dataSourceInformation.canWriteReferential() && +// dataSourceInformation.canWriteData() && +// dataSourceInformation.canReadData(); +// } +// } } break; case CONFIG_REFERENTIEL: @@ -1868,7 +1868,10 @@ public class StorageUIModel extends WizardModel<StorageStep> { public DataSourceCreateConfigurationDto toImportReferentielSourceConfig() { - DataSourceCreateConfigurationDto importReferenceConfig; + DataSourceCreateConfigurationDto importReferenceConfig = new DataSourceCreateConfigurationDto();; + + // on peut créer une base vide + importReferenceConfig.setCanCreateEmptyDatabase(true); if (isImportReferentiel()) { @@ -1878,8 +1881,6 @@ public class StorageUIModel extends WizardModel<StorageStep> { case IMPORT_EXTERNAL_DUMP: - importReferenceConfig = new DataSourceCreateConfigurationDto(); - try (FileInputStream inputStream = new FileInputStream(dumpFile)) { byte[] bytes = IOUtils.toByteArray(inputStream); @@ -1900,11 +1901,8 @@ public class StorageUIModel extends WizardModel<StorageStep> { pgConfig.setCanMigrate(false); - importReferenceConfig = new DataSourceCreateConfigurationDto(); - importReferenceConfig.setImportReferentialDataSourceConfiguration(pgConfig); - break; case IMPORT_SERVER_STORAGE: @@ -1912,11 +1910,8 @@ public class StorageUIModel extends WizardModel<StorageStep> { // import referentiel from a server db ObserveDataSourceConfigurationRest restConfig = getCentralSourceModel().toRestStorageConfig(dbLabel); - importReferenceConfig = new DataSourceCreateConfigurationDto(); - importReferenceConfig.setImportReferentialDataSourceConfiguration(restConfig); - break; default: @@ -1924,10 +1919,6 @@ public class StorageUIModel extends WizardModel<StorageStep> { } - } else { - - importReferenceConfig = null; - } return importReferenceConfig; 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 9735743..c424661 100644 --- a/observe-entities/src/main/java/fr/ird/observe/ObserveTopiaApplicationContext.java +++ b/observe-entities/src/main/java/fr/ird/observe/ObserveTopiaApplicationContext.java @@ -23,6 +23,7 @@ package fr.ird.observe; */ import com.google.common.collect.ImmutableSet; +import com.google.common.collect.Lists; import fr.ird.observe.entities.Entities; import fr.ird.observe.entities.migration.ObserveMigrationEngine; import org.apache.commons.logging.Log; @@ -43,6 +44,7 @@ import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.util.LinkedHashSet; +import java.util.List; import java.util.Objects; import java.util.Set; import java.util.UUID; @@ -65,6 +67,9 @@ public class ObserveTopiaApplicationContext extends AbstractObserveTopiaApplicat + "CREATE SCHEMA OBSERVE_LONGLINE;\n" + "CREATE SCHEMA OBSERVE_SEINE;\n"; + private static final String INSERT_LAST_UPDATE_PATTERN = "INSERT INTO OBSERVE_COMMON.LASTUPDATEDATE (TOPIAID, TOPIAVERSION, TOPIACREATEDATE, TYPE, LASTUPDATEDATE) VALUES ('fr.ird.observe.entities.LastUpdateDate#1236861982132#0.%02d', 0, CURRENT_TIMESTAMP, '%s', CURRENT_TIMESTAMP);\n"; + + /** * Mise à {@code true} quand au moins une connection a été effectuée. */ @@ -118,10 +123,34 @@ public class ObserveTopiaApplicationContext extends AbstractObserveTopiaApplicat topiaFiresSupport.firePreCreateSchema(this); try (ObserveTopiaPersistenceContext topiaPersistenceContext = newPersistenceContext()) { topiaPersistenceContext.getSqlSupport().executeSql(CREATE_SCHEMA_SCRIPT); + topiaPersistenceContext.commit(); } Configuration hibernateConfiguration = getHibernateProvider().getHibernateConfiguration(); new SchemaExport(hibernateConfiguration).execute(showSchema, true, false, true); + + // alimentation de la table lastUpdate + try (ObserveTopiaPersistenceContext topiaPersistenceContext = newPersistenceContext()) { + StringBuilder sql = new StringBuilder(); + + int entitiesIndex = 0; + + List<ObserveEntityEnum> entities = Lists.newLinkedList(Entities.REFERENCE_ENTITIES_LIST); + entities.addAll(Entities.DATA_ENTITIES_LIST); + + for (ObserveEntityEnum entity : entities) { + entitiesIndex++; + sql.append(String.format( + INSERT_LAST_UPDATE_PATTERN, + entitiesIndex, + entity.getContract().getCanonicalName() + )); + } + + topiaPersistenceContext.getSqlSupport().executeSql(sql.toString()); + topiaPersistenceContext.commit(); + } + topiaFiresSupport.firePostCreateSchema(this); } catch (HibernateException eee) { throw new TopiaException(String.format("Could not create schema for reason: %s", eee.getMessage()), eee); diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/DataSourceServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/service/DataSourceServiceTopia.java index c236a52..919eb5f 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/service/DataSourceServiceTopia.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/service/DataSourceServiceTopia.java @@ -365,6 +365,8 @@ public class DataSourceServiceTopia extends ObserveServiceTopia implements DataS users.addAll(observeJdbcHelper.getUsers()); + topiaApplicationContext.close(); + } return users; -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.