Observe-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
March 2022
- 1 participants
- 59 discussions
[Git][ultreiaio/ird-observe][develop] Impossible de créer une base centrale vierge, quelque soit la méthode...
by Tony CHEMIT (@tchemit) 16 Mar '22
by Tony CHEMIT (@tchemit) 16 Mar '22
16 Mar '22
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
a864fb66 by Tony Chemit at 2022-03-16T18:47:49+01:00
Impossible de créer une base centrale vierge, quelque soit la méthode appliquée - See ultreiaio/ird-observe#2214
- - - - -
11 changed files:
- client/core/src/main/java/fr/ird/observe/client/datasource/api/ObserveSwingDataSource.java
- client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/wizard/DataSourceHelper.java
- client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/wizard/StorageBackupUILauncher.java
- client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/wizard/StorageUIModel.java
- client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/wizard/launchers/CreateLauncher.java
- + core/persistence/java/src/main/java/fr/ird/observe/entities/DataSourceCreateHelper.java
- core/persistence/java/src/main/java/fr/ird/observe/entities/ObserveTopiaApplicationContext.java
- core/services/client/src/main/java/fr/ird/observe/services/client/AnonymousServiceClient.java
- core/services/local/src/main/java/fr/ird/observe/services/local/service/AnonymousServiceLocalSupport.java
- server/core/src/main/filtered-resources/META-INF/mapping-api-client.wm
- server/core/src/main/java/fr/ird/observe/server/controller/AnonymousServiceRestApi.java
Changes:
=====================================
client/core/src/main/java/fr/ird/observe/client/datasource/api/ObserveSwingDataSource.java
=====================================
@@ -40,6 +40,7 @@ import fr.ird.observe.dto.db.DatabaseConnexionNotAuthorizedException;
import fr.ird.observe.dto.db.DatabaseNotFoundException;
import fr.ird.observe.dto.db.configuration.DataSourceCreateConfigurationDto;
import fr.ird.observe.dto.db.configuration.DataSourceCreateWithNoReferentialImportException;
+import fr.ird.observe.dto.db.configuration.DataSourceImportConfigurationDto;
import fr.ird.observe.dto.db.configuration.IncompatibleDataSourceCreateConfigurationException;
import fr.ird.observe.dto.db.configuration.ObserveDataSourceConfiguration;
import fr.ird.observe.dto.db.configuration.ObserveDataSourceConfigurationAndConnection;
@@ -241,23 +242,26 @@ public class ObserveSwingDataSource extends AbstractJavaBean implements ObserveS
fireOpened();
}
- public void createFrom(ObserveSwingDataSource localSource)
+ public void create(DataSourceCreateConfigurationDto createDto)
throws IncompatibleDataSourceCreateConfigurationException, DataSourceCreateWithNoReferentialImportException,
DatabaseNotFoundException, DatabaseConnexionNotAuthorizedException, BabModelVersionException {
- DataSourceCreateConfigurationDto createDto = new DataSourceCreateConfigurationDto();
- createDto.setLeaveOpenSource(true);
- createDto.setImportReferentialDataSourceConfiguration(localSource.getConfiguration());
- create(createDto);
+ checkIsNotOpen();
+ fireNewMessage(t("observe.ui.datasource.storage.message.creating", getLabel()));
+ fireOpening();
+ AnonymousService dataSourceService = getAnonymousService();
+ setConnection(dataSourceService.create(getConfiguration(), createDto));
+ fireNewMessage(t("observe.ui.datasource.storage.message.created", getLabel()));
+ fireOpened();
}
- public void create(DataSourceCreateConfigurationDto createDto)
+ public void createAndImport(DataSourceImportConfigurationDto createDto)
throws IncompatibleDataSourceCreateConfigurationException, DataSourceCreateWithNoReferentialImportException,
DatabaseNotFoundException, DatabaseConnexionNotAuthorizedException, BabModelVersionException {
checkIsNotOpen();
fireNewMessage(t("observe.ui.datasource.storage.message.creating", getLabel()));
fireOpening();
AnonymousService dataSourceService = getAnonymousService();
- setConnection(dataSourceService.create(getConfiguration(), createDto));
+ setConnection(dataSourceService.createAndImport(getConfiguration(), createDto));
fireNewMessage(t("observe.ui.datasource.storage.message.created", getLabel()));
fireOpened();
}
=====================================
client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/wizard/DataSourceHelper.java
=====================================
@@ -259,6 +259,31 @@ public class DataSourceHelper {
throw new IllegalStateException("Can't come here");
}
}
+ if (model.getChooseDb().doImportData()) {
+
+ String dbLabel = I18n.n("observe.ui.datasource.storage.label.data.import.db");
+ switch (model.getChooseDb().getDataImportMode()) {
+ case IMPORT_EXTERNAL_DUMP:
+ File dumpFile = ObstunaAdminAction.CREATE.equals(model.getAdminAction()) ? model.getDataSourceModel().getDumpFile() : model.getDumpFile();
+ importReferenceConfig.setImportDatabase(TopiaSqlScript.of(dumpFile.toURI()));
+ break;
+ case IMPORT_REMOTE_STORAGE: {
+ // import referentiel from a remote db
+ ObserveDataSourceConfigurationTopiaPG dataSourceConfig = toPGStorageConfig(model.getDataSourceModel(), dbLabel);
+ dataSourceConfig.setCanMigrate(false);
+ importReferenceConfig.setImportDataConfiguration(dataSourceConfig, model.getSelectDataModel().getSelectedDataIds());
+ }
+ break;
+ case IMPORT_SERVER_STORAGE: {
+ // import referentiel from a server db
+ ObserveDataSourceConfigurationRest dataSourceConfig = toRestStorageConfig(model.getDataSourceModel(), dbLabel);
+ importReferenceConfig.setImportDataConfiguration(dataSourceConfig, model.getSelectDataModel().getSelectedDataIds());
+ break;
+ }
+ default:
+ throw new IllegalStateException("Can't come here");
+ }
+ }
return importReferenceConfig;
}
@@ -311,6 +336,7 @@ public class DataSourceHelper {
return importDataSource;
}
+
static ObserveDataSourceConfigurationTopiaH2 toH2StorageConfig(StorageUIModel model, String label) {
ObserveDataSourceConfigurationTopiaH2 h2Config = model.getLocalConfig().getConfiguration();
return ObserveDataSourceConfigurationTopiaH2.create(
=====================================
client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/wizard/StorageBackupUILauncher.java
=====================================
@@ -33,6 +33,7 @@ import fr.ird.observe.dto.db.BabModelVersionException;
import fr.ird.observe.dto.db.DatabaseConnexionNotAuthorizedException;
import fr.ird.observe.dto.db.DatabaseNotFoundException;
import fr.ird.observe.dto.db.configuration.DataSourceConnectMode;
+import fr.ird.observe.dto.db.configuration.DataSourceCreateConfigurationDto;
import fr.ird.observe.dto.db.configuration.DataSourceCreateMode;
import fr.ird.observe.dto.db.configuration.DataSourceCreateWithNoReferentialImportException;
import fr.ird.observe.dto.db.configuration.DataSourceInitMode;
@@ -137,7 +138,10 @@ public class StorageBackupUILauncher extends StorageUILauncher {
try (ObserveSwingDataSource targetSource = dataSourcesManager.newTemporaryH2DataSource("Backup-" + backupFile.getName())) {
// create temporary source
- targetSource.createFrom(incomingSource);
+ DataSourceCreateConfigurationDto createDto = new DataSourceCreateConfigurationDto();
+ createDto.setLeaveOpenSource(true);
+ createDto.setImportReferentialDataSourceConfiguration(incomingSource.getConfiguration());
+ targetSource.create(createDto);
progressModel.increments();
// insert selected data
=====================================
client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/wizard/StorageUIModel.java
=====================================
@@ -671,7 +671,9 @@ public class StorageUIModel extends WizardModel<StorageStep> implements WithClie
}
break;
case CONFIG_REFERENTIAL:
-
+ if (chooseDb.getReferentielImportMode() == null) {
+ return false;
+ }
switch (chooseDb.getReferentielImportMode()) {
case EMPTY:
@@ -703,7 +705,9 @@ public class StorageUIModel extends WizardModel<StorageStep> implements WithClie
break;
case CONFIG_DATA:
-
+ if (chooseDb.getDataImportMode() == null) {
+ return false;
+ }
switch (chooseDb.getDataImportMode()) {
case EMPTY:
=====================================
client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/wizard/launchers/CreateLauncher.java
=====================================
@@ -22,26 +22,28 @@ package fr.ird.observe.client.datasource.editor.api.wizard.launchers;
* #L%
*/
+import com.google.common.collect.ArrayListMultimap;
+import com.google.common.collect.Multimap;
import fr.ird.observe.client.datasource.api.ObserveSwingDataSource;
import fr.ird.observe.client.datasource.editor.api.wizard.DataSourceHelper;
import fr.ird.observe.client.datasource.editor.api.wizard.ObstunaAdminAction;
import fr.ird.observe.client.datasource.editor.api.wizard.StorageUI;
import fr.ird.observe.client.datasource.editor.api.wizard.StorageUIModel;
-import fr.ird.observe.dto.db.BabModelVersionException;
-import fr.ird.observe.dto.db.DatabaseConnexionNotAuthorizedException;
-import fr.ird.observe.dto.db.DatabaseNotFoundException;
import fr.ird.observe.dto.db.configuration.DataSourceConnectMode;
import fr.ird.observe.dto.db.configuration.DataSourceCreateConfigurationDto;
-import fr.ird.observe.dto.db.configuration.DataSourceCreateWithNoReferentialImportException;
-import fr.ird.observe.dto.db.configuration.IncompatibleDataSourceCreateConfigurationException;
+import fr.ird.observe.dto.db.configuration.DataSourceImportConfigurationDto;
import fr.ird.observe.dto.db.configuration.ObserveDataSourceConfiguration;
import fr.ird.observe.dto.db.configuration.ObserveDataSourceInformation;
-import fr.ird.observe.navigation.tree.selection.SelectionTreeModel;
+import io.ultreia.java4all.util.Version;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.nuiton.jaxx.runtime.JAXXContext;
+import org.nuiton.topia.persistence.script.TopiaSqlScript;
+import org.nuiton.topia.service.sql.request.CreateDatabaseRequest;
import java.awt.Window;
+import java.util.Collection;
+import java.util.Map;
import java.util.Objects;
import java.util.Set;
@@ -54,6 +56,7 @@ import java.util.Set;
public class CreateLauncher extends RemoteUILauncher {
private static final Logger log = LogManager.getLogger(CreateLauncher.class);
DataSourceCreateConfigurationDto createConfigurationDto;
+ DataSourceImportConfigurationDto importConfiguration;
public CreateLauncher(JAXXContext context, Window frame, DataSourceConnectMode connectMode) {
super(ObstunaAdminAction.CREATE, context, frame, connectMode);
@@ -67,26 +70,82 @@ public class CreateLauncher extends RemoteUILauncher {
//FIXME This logic should be done in StorageModel not here, like this!
model.getChooseDb().setCanMigrate(true);
model.getRemoteConfig().setCanCreateDatabase(true);
+ model.getServerConfig().setCanCreateDatabase(true);
super.init(ui);
}
@Override
- protected ObserveSwingDataSource initTask(StorageUIModel model) throws Exception {
+ protected ObserveSwingDataSource initTask(StorageUIModel model) {
ObserveSwingDataSource dataSource = getDataSource(model);
createConfigurationDto = DataSourceHelper.toImportReferentielSourceConfig(model);
+ boolean importReferential = createConfigurationDto.isImportReferential();
+ boolean importData = createConfigurationDto.isImportData();
+ if (!importReferential && !importData) {
+ importConfiguration = null;
+ return dataSource;
+ }
+ Version version = dataSource.getConfiguration().getModelVersion();
+ importConfiguration = new DataSourceImportConfigurationDto();
+ importConfiguration.setMigrate(createConfigurationDto.isMigrate());
+
ObserveDataSourceConfiguration importReferentialConfig = createConfigurationDto.getImportReferentialDataSourceConfiguration();
+ ObserveDataSourceConfiguration importDataConfig = createConfigurationDto.getImportDataDataSourceConfiguration();
+ boolean importStandaloneReferential = importReferential;
+
if (importReferentialConfig != null) {
- log.info(String.format("Use referentiel import data source %s", importReferentialConfig.getLabel()));
- checkImportDbVersion(model, importReferentialConfig);
+ log.info(String.format("Will use referentiel import data source %s", importReferentialConfig.getLabel()));
}
- // data import
- ObserveSwingDataSource importDataConfig = DataSourceHelper.toImportDataSourceConfig(model);
if (importDataConfig != null) {
- log.info(String.format("Use data import data source %s", importDataConfig.getLabel()));
- checkImportDbVersion(model, importDataConfig.getConfiguration());
- SelectionTreeModel dataModel = model.getSelectDataModel();
- Set<String> importDataIds = dataModel.getSelectedDataIds();
- createConfigurationDto.setImportDataConfiguration(importDataConfig.getConfiguration(), importDataIds);
+ log.info(String.format("Will use data import data source %s", importDataConfig.getLabel()));
+ importStandaloneReferential = importReferentialConfig != null && !importReferentialConfig.equals(importDataConfig);
+ }
+
+ boolean referentialImported = false;
+ if (importStandaloneReferential) {
+ try (ObserveSwingDataSource importDataSource = Objects.requireNonNull(ui.getModel().getDataSourcesManager().newDataSource(importReferentialConfig))) {
+ log.info(String.format("Prepare standalone referential dump from %s", importDataSource.getLabel()));
+ ObserveSwingDataSource.doOpenSource(importDataSource);
+ model.checkImportDbVersion(importDataSource);
+ CreateDatabaseRequest request = CreateDatabaseRequest.builder(true, version).addStandaloneTables().build();
+ TopiaSqlScript createSqlScript = importDataSource.getDataSourceService().produceCreateSqlScript(request);
+ importConfiguration.setReferentialDump(createSqlScript);
+ }
+ referentialImported = true;
+ }
+
+ if (importData) {
+ CreateDatabaseRequest.Builder requestBuilder = CreateDatabaseRequest.builder(true, version);
+ if (!referentialImported) {
+ log.info("Add referential to data dump");
+ requestBuilder.addStandaloneTables();
+ }
+ Set<String> importDataIds = createConfigurationDto.getImportDataIds();
+ Multimap<String, String> idsByType = ArrayListMultimap.create();
+ for (String importDataId : importDataIds) {
+ //FIXME
+ String className = importDataId.contains(".ll.") ? "fr.ird.observe.entities.data.ll.common.Trip" : "fr.ird.observe.entities.data.ps.common.Trip";
+ idsByType.put(className, importDataId);
+ }
+ for (Map.Entry<String, Collection<String>> entry : idsByType.asMap().entrySet()) {
+ String type = entry.getKey();
+ Set<String> dataIds = Set.copyOf(entry.getValue());
+ log.info(String.format("Add %d data of type: %s", dataIds.size(), type));
+ requestBuilder.dataIdsToAdd(type, dataIds);
+ }
+ try (ObserveSwingDataSource importDataSource = Objects.requireNonNull(ui.getModel().getDataSourcesManager().newDataSource(importDataConfig))) {
+ log.info(String.format("Prepare data dump from %s", importDataSource.getLabel()));
+ ObserveSwingDataSource.doOpenSource(importDataSource);
+ model.checkImportDbVersion(importDataSource);
+ CreateDatabaseRequest request = requestBuilder.build();
+ TopiaSqlScript dump = importDataSource.getDataSourceService().produceCreateSqlScript(request);
+ if (referentialImported) {
+ // already a referential dump, so just data dump
+ importConfiguration.setDataDump(dump);
+ } else {
+ // referential dump not existing, will use this one
+ importConfiguration.setReferentialDump(dump);
+ }
+ }
}
return dataSource;
}
@@ -95,7 +154,11 @@ public class CreateLauncher extends RemoteUILauncher {
protected void execute(ObserveSwingDataSource dataSource, ObserveDataSourceInformation dataSourceInformation) throws Exception {
log.info("Create db...");
try {
- dataSource.create(createConfigurationDto);
+ if (importConfiguration != null) {
+ dataSource.createAndImport(importConfiguration);
+ } else {
+ dataSource.create(createConfigurationDto);
+ }
log.info(String.format("Open [%s] and create it.", dataSource.getLabel()));
} finally {
if (dataSource.isOpen()) {
@@ -104,12 +167,5 @@ public class CreateLauncher extends RemoteUILauncher {
}
}
- void checkImportDbVersion(StorageUIModel model, ObserveDataSourceConfiguration dataSourceConfig) throws DatabaseConnexionNotAuthorizedException, DatabaseNotFoundException, BabModelVersionException, IncompatibleDataSourceCreateConfigurationException, DataSourceCreateWithNoReferentialImportException {
- try (ObserveSwingDataSource importDataSource = Objects.requireNonNull(model.getDataSourcesManager().newDataSource(dataSourceConfig))) {
- importDataSource.open();
- model.checkImportDbVersion(importDataSource);
- }
- }
-
}
=====================================
core/persistence/java/src/main/java/fr/ird/observe/entities/DataSourceCreateHelper.java
=====================================
@@ -0,0 +1,179 @@
+package fr.ird.observe.entities;
+
+/*-
+ * #%L
+ * ObServe Core :: Persistence :: Java
+ * %%
+ * Copyright (C) 2008 - 2022 IRD, Code Lutin, Ultreia.io
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
+import com.google.common.collect.ArrayListMultimap;
+import com.google.common.collect.Multimap;
+import fr.ird.observe.dto.db.BabModelVersionException;
+import fr.ird.observe.dto.db.DatabaseConnexionNotAuthorizedException;
+import fr.ird.observe.dto.db.DatabaseNotFoundException;
+import fr.ird.observe.dto.db.configuration.DataSourceCreateConfigurationDto;
+import fr.ird.observe.dto.db.configuration.ObserveDataSourceConfiguration;
+import fr.ird.observe.dto.db.configuration.topia.ObserveDataSourceConfigurationTopiaH2;
+import io.ultreia.java4all.util.Version;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.nuiton.topia.persistence.TopiaEntity;
+import org.nuiton.topia.persistence.TopiaIdFactory;
+import org.nuiton.topia.persistence.script.TopiaSqlScript;
+import org.nuiton.topia.service.migration.TopiaMigrationService;
+import org.nuiton.topia.service.sql.request.CreateDatabaseRequest;
+
+import java.io.File;
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.util.Collection;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * Created on 16/03/2022.
+ *
+ * @author Tony Chemit - dev(a)tchemit.fr
+ * @since 6.0.7
+ */
+public class DataSourceCreateHelper {
+
+ private static final Logger log = LogManager.getLogger(DataSourceCreateHelper.class);
+
+ public static void create(ToolkitTopiaApplicationContextSupport<?> applicationContext, ObserveDataSourceConfiguration dataSourceConfiguration, DataSourceCreateConfigurationDto dataSourceCreateConfiguration) throws BabModelVersionException, DatabaseConnexionNotAuthorizedException, DatabaseNotFoundException {
+ log.debug(String.format("Create topia application context: %s", applicationContext));
+ Path temporaryDirectory = dataSourceConfiguration.getTemporaryDirectory();
+ if (dataSourceCreateConfiguration.isImportDatabase()) {
+ log.info("Create new database from a script.");
+ TopiaSqlScript importDatabase = dataSourceCreateConfiguration.getImportDatabase();
+ boolean migrate = dataSourceCreateConfiguration.isMigrate();
+ TopiaMigrationService migrationService = (TopiaMigrationService) applicationContext.getMigrationService();
+ if (dataSourceConfiguration.isLocal()) {
+ applicationContext.executeSqlStatements(importDatabase);
+ if (migrate) {
+ migrationService.createSchemaIfNotExist();
+ migrationService.runSchemaMigration();
+ }
+ } else { // base postgres
+ // do import in temporary h2 database
+ File tmpDir;
+ try {
+ tmpDir = Files.createTempDirectory(temporaryDirectory, "obstuna").toFile();
+ } catch (IOException e) {
+ throw new IllegalStateException("could not create temporary directory ", e);
+ }
+ ObserveDataSourceConfigurationTopiaH2 temporaryConfiguration = applicationContext.createTemporaryConfiguration(tmpDir, dataSourceConfiguration.getModelVersion());
+ ObserveTopiaApplicationContext temporaryTopiaApplicationContext = ObserveTopiaApplicationContextFactory.createTopiaApplicationContext(temporaryConfiguration, false);
+ temporaryTopiaApplicationContext.executeSqlStatements(importDatabase);
+ if (migrate) {
+ temporaryTopiaApplicationContext.getMigrationService().createSchemaIfNotExist();
+ temporaryTopiaApplicationContext.getMigrationService().runSchemaMigration();
+ }
+ CreateDatabaseRequest request = CreateDatabaseRequest.builder(true, dataSourceConfiguration.getModelVersion()).addSchema().addStandaloneTables().addAllData().build();
+ TopiaSqlScript dump = applicationContext.getSqlService().consume(request);
+ applicationContext.executeSqlStatements(dump);
+ migrationService.createSchemaIfNotExist();
+ migrationService.runSchemaMigration();
+ temporaryTopiaApplicationContext.close();
+ File databaseFile = temporaryConfiguration.getDatabaseFile();
+ if (!databaseFile.delete()) {
+ throw new IllegalStateException("could not delete " + databaseFile);
+ }
+ }
+ } else {
+ boolean importReferential = dataSourceCreateConfiguration.isImportReferential();
+ boolean importData = dataSourceCreateConfiguration.isImportData();
+ // si le referentiel n'est pas importé on aliment la table lastUpdateDate
+ if (!importReferential) {
+ applicationContext.insertLastUpdateDate();
+ }
+ boolean importStandaloneReferential = importReferential;
+ if (importReferential && importData) {
+ // Si on est sur la même source de données pour les deux imports, on fait tout sur la même base temporaire
+ ObserveDataSourceConfiguration importReferentialDataSourceConfiguration = dataSourceCreateConfiguration.getImportReferentialDataSourceConfiguration();
+ ObserveDataSourceConfiguration importDataSourceConfiguration = dataSourceCreateConfiguration.getImportDataDataSourceConfiguration();
+ importStandaloneReferential = !importReferentialDataSourceConfiguration.equals(importDataSourceConfiguration);
+ }
+ boolean referentialImported = false;
+ if (importStandaloneReferential) {
+ log.info("Import referential.");
+ ObserveDataSourceConfiguration importDataSourceConfiguration = dataSourceCreateConfiguration.getImportReferentialDataSourceConfiguration();
+ if (importDataSourceConfiguration.getTemporaryDirectory() == null) {
+ importDataSourceConfiguration.setTemporaryDirectory(temporaryDirectory);
+ }
+ Version dbVersion = Version.valueOf(applicationContext.getModelVersion());
+ CreateDatabaseRequest request = CreateDatabaseRequest.builder(!dataSourceConfiguration.isLocal(), dbVersion)
+ .addStandaloneTables().build();
+ TopiaSqlScript referentialDump;
+ ObserveTopiaApplicationContext temporaryTopiaApplicationContext = null;
+ try {
+ temporaryTopiaApplicationContext = ObserveTopiaApplicationContextFactory.createTopiaApplicationContext(importDataSourceConfiguration, false);
+ referentialDump = temporaryTopiaApplicationContext.getSqlService().consume(request);
+ applicationContext.executeSqlStatements(referentialDump);
+ } finally {
+ if (!dataSourceCreateConfiguration.isLeaveOpenSource() && temporaryTopiaApplicationContext != null) {
+ temporaryTopiaApplicationContext.close();
+ }
+ }
+ referentialImported = true;
+ }
+
+ if (importData) {
+ ObserveDataSourceConfiguration importDataSourceConfiguration = dataSourceCreateConfiguration.getImportDataDataSourceConfiguration();
+ if (importDataSourceConfiguration.getTemporaryDirectory() == null) {
+ importDataSourceConfiguration.setTemporaryDirectory(temporaryDirectory);
+ }
+ Version dbVersion = Version.valueOf(applicationContext.getModelVersion());
+ CreateDatabaseRequest.Builder requestBuilder = CreateDatabaseRequest.builder(!dataSourceConfiguration.isLocal(), dbVersion);
+ if (!referentialImported) {
+ log.info("Get referential.");
+ requestBuilder.addStandaloneTables();
+ }
+
+ // Récupération du dump qui contient les données
+ Set<String> importDataIds = dataSourceCreateConfiguration.getImportDataIds();
+ TopiaIdFactory idFactory = applicationContext.getTopiaIdFactory();
+ Multimap<String, String> idsByType = ArrayListMultimap.create();
+ for (String importDataId : importDataIds) {
+ Class<TopiaEntity> className = idFactory.getClassName(importDataId);
+ idsByType.put(className.getName(), importDataId);
+ }
+ log.info(String.format("Get data: %s", importDataIds));
+ for (Map.Entry<String, Collection<String>> entry : idsByType.asMap().entrySet()) {
+ requestBuilder.dataIdsToAdd(entry.getKey(), Set.copyOf(entry.getValue()));
+ }
+ TopiaSqlScript dataDump;
+ ObserveTopiaApplicationContext temporaryTopiaApplicationContext = null;
+ CreateDatabaseRequest request = requestBuilder.build();
+ try {
+ temporaryTopiaApplicationContext = ObserveTopiaApplicationContextFactory.createTopiaApplicationContext(importDataSourceConfiguration, false);
+ dataDump = temporaryTopiaApplicationContext.getSqlService().consume(request);
+ } finally {
+ if (!dataSourceCreateConfiguration.isLeaveOpenSource() && temporaryTopiaApplicationContext != null) {
+ temporaryTopiaApplicationContext.close();
+ }
+ }
+ log.info(String.format("Import data%s", request.isAddStandaloneTables() ? " and referential." : "."));
+ applicationContext.executeSqlStatements(dataDump);
+ }
+ }
+ }
+
+}
=====================================
core/persistence/java/src/main/java/fr/ird/observe/entities/ObserveTopiaApplicationContext.java
=====================================
@@ -22,14 +22,12 @@ package fr.ird.observe.entities;
* #L%
*/
-import com.google.common.collect.ArrayListMultimap;
-import com.google.common.collect.Multimap;
import fr.ird.observe.dto.db.BabModelVersionException;
import fr.ird.observe.dto.db.DatabaseConnexionNotAuthorizedException;
import fr.ird.observe.dto.db.DatabaseNotFoundException;
import fr.ird.observe.dto.db.configuration.DataSourceCreateConfigurationDto;
+import fr.ird.observe.dto.db.configuration.DataSourceImportConfigurationDto;
import fr.ird.observe.dto.db.configuration.ObserveDataSourceConfiguration;
-import fr.ird.observe.dto.db.configuration.topia.ObserveDataSourceConfigurationTopiaH2;
import fr.ird.observe.dto.referential.ReferentialDto;
import fr.ird.observe.entities.data.DataGroupByEntity;
import fr.ird.observe.spi.module.BusinessProject;
@@ -37,16 +35,12 @@ import fr.ird.observe.spi.referential.differential.DifferentialMetaModel;
import fr.ird.observe.spi.referential.synchro.OneSideSqlResultBuilder;
import fr.ird.observe.spi.script.ToolkitEntitySqlScriptModel;
import fr.ird.observe.spi.service.ServiceContext;
-import io.ultreia.java4all.util.Version;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.nuiton.topia.persistence.TagValues;
import org.nuiton.topia.persistence.TopiaConfigurationExtension;
import org.nuiton.topia.persistence.TopiaEntity;
-import org.nuiton.topia.persistence.TopiaIdFactory;
import org.nuiton.topia.persistence.TopiaPersistenceContextConstructorParameterSupport;
-import org.nuiton.topia.persistence.script.TopiaSqlScript;
-import org.nuiton.topia.service.migration.TopiaMigrationService;
import org.nuiton.topia.service.sql.blob.TopiaEntitySqlBlobModel;
import org.nuiton.topia.service.sql.metadata.TopiaMetadataModel;
import org.nuiton.topia.service.sql.metadata.TopiaMetadataModelPaths;
@@ -54,19 +48,11 @@ import org.nuiton.topia.service.sql.model.TopiaEntitySqlModel;
import org.nuiton.topia.service.sql.plan.copy.TopiaEntitySqlCopyPlanModel;
import org.nuiton.topia.service.sql.plan.delete.TopiaEntitySqlDeletePlanModel;
import org.nuiton.topia.service.sql.plan.replicate.TopiaEntitySqlReplicatePlanModel;
-import org.nuiton.topia.service.sql.request.CreateDatabaseRequest;
import org.nuiton.topia.service.sql.usage.TopiaEntitySqlUsageModel;
-import java.io.File;
-import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Path;
import java.time.Duration;
-import java.util.Collection;
import java.util.Date;
-import java.util.Map;
import java.util.Set;
-import java.util.UUID;
import java.util.function.Consumer;
public class ObserveTopiaApplicationContext extends AbstractObserveTopiaApplicationContext {
@@ -187,131 +173,16 @@ public class ObserveTopiaApplicationContext extends AbstractObserveTopiaApplicat
return ObserveTopiaEntitySqlModelResource.get().getScriptModel();
}
+ @Deprecated
public void create(ObserveDataSourceConfiguration dataSourceConfiguration, DataSourceCreateConfigurationDto dataSourceCreateConfiguration) throws BabModelVersionException, DatabaseConnexionNotAuthorizedException, DatabaseNotFoundException {
- log.debug(String.format("Create topia application context: %s", this));
- if (dataSourceCreateConfiguration.isImportDatabase()) {
- log.info("Create new database from a script.");
- TopiaSqlScript importDatabase = dataSourceCreateConfiguration.getImportDatabase();
- boolean migrate = dataSourceCreateConfiguration.isMigrate();
- TopiaMigrationService migrationService = getMigrationService();
- if (dataSourceConfiguration.isLocal()) {
- executeSqlStatements(importDatabase);
- if (migrate) {
- migrationService.createSchemaIfNotExist();
- migrationService.runSchemaMigration();
- }
- } else { // base postgres
- // do import in temporary h2 database
- File tmpDir;
- try {
- Path temporaryDirectory = dataSourceConfiguration.getTemporaryDirectory();
- tmpDir = Files.createTempDirectory(temporaryDirectory, "obstuna").toFile();
- } catch (IOException e) {
- throw new IllegalStateException("could not create temporary directory ", e);
- }
- ObserveDataSourceConfigurationTopiaH2 temporaryConfiguration = createTemporaryConfiguration(tmpDir, dataSourceConfiguration.getModelVersion());
- ObserveTopiaApplicationContext temporaryTopiaApplicationContext = ObserveTopiaApplicationContextFactory.createTopiaApplicationContext(temporaryConfiguration, false);
- temporaryTopiaApplicationContext.executeSqlStatements(importDatabase);
- if (migrate) {
- temporaryTopiaApplicationContext.getMigrationService().createSchemaIfNotExist();
- temporaryTopiaApplicationContext.getMigrationService().runSchemaMigration();
- }
- CreateDatabaseRequest request = CreateDatabaseRequest.builder(true, dataSourceConfiguration.getModelVersion()).addSchema().addStandaloneTables().addAllData().build();
- TopiaSqlScript dump = getSqlService().consume(request);
- executeSqlStatements(dump);
- migrationService.createSchemaIfNotExist();
- migrationService.runSchemaMigration();
- temporaryTopiaApplicationContext.close();
- File databaseFile = temporaryConfiguration.getDatabaseFile();
- if (!databaseFile.delete()) {
- throw new IllegalStateException("could not delete " + databaseFile);
- }
- }
- } else {
- boolean importReferential = dataSourceCreateConfiguration.isImportReferential();
- boolean importData = dataSourceCreateConfiguration.isImportData();
- // si le referentiel n'est pas importé on aliment la table lastUpdateDate
- if (!importReferential) {
- insertLastUpdateDate();
- }
- boolean importStandaloneReferential = importReferential;
- if (importReferential && importData) {
- // Si on est sur la même source de données pour les deux imports, on fait tout sur la même base temporaire
- ObserveDataSourceConfiguration importReferentialDataSourceConfiguration = dataSourceCreateConfiguration.getImportReferentialDataSourceConfiguration();
- ObserveDataSourceConfiguration importDataSourceConfiguration = dataSourceCreateConfiguration.getImportDataDataSourceConfiguration();
- importStandaloneReferential = !importReferentialDataSourceConfiguration.equals(importDataSourceConfiguration);
- }
- boolean referentialImported = false;
- if (importStandaloneReferential) {
- log.info("Import referential.");
- ObserveDataSourceConfiguration importDataSourceConfiguration = dataSourceCreateConfiguration.getImportReferentialDataSourceConfiguration();
- Version dbVersion = Version.valueOf(getModelVersion());
- CreateDatabaseRequest request = CreateDatabaseRequest.builder(!dataSourceConfiguration.isLocal(), dbVersion)
- .addStandaloneTables().build();
- TopiaSqlScript referentialDump;
- ObserveTopiaApplicationContext temporaryTopiaApplicationContext = null;
- try {
- temporaryTopiaApplicationContext = ObserveTopiaApplicationContextFactory.createTopiaApplicationContext(importDataSourceConfiguration, false);
-// ObserveDataSourceConnection importDataSourceConnection = serviceContext().newService(importDataSourceConfiguration, AnonymousService.class).open(importDataSourceConfiguration);
-// DataSourceService dumpProducerService = serviceContext().newService(importDataSourceConnection, DataSourceService.class);
- referentialDump = temporaryTopiaApplicationContext.getSqlService().consume(request);
- executeSqlStatements(referentialDump);
- } finally {
- if (!dataSourceCreateConfiguration.isLeaveOpenSource() && temporaryTopiaApplicationContext != null) {
- temporaryTopiaApplicationContext.close();
- }
- }
- referentialImported = true;
- }
-
- if (importData) {
- ObserveDataSourceConfiguration importDataSourceConfiguration = dataSourceCreateConfiguration.getImportDataDataSourceConfiguration();
- Version dbVersion = Version.valueOf(getModelVersion());
- CreateDatabaseRequest.Builder requestBuilder = CreateDatabaseRequest.builder(!dataSourceConfiguration.isLocal(), dbVersion);
- if (!referentialImported) {
- log.info("Get referential.");
- requestBuilder.addStandaloneTables();
- }
-
- // Récupération du dump qui contient les données
- Set<String> importDataIds = dataSourceCreateConfiguration.getImportDataIds();
- TopiaIdFactory idFactory = getTopiaIdFactory();
- Multimap<String, String> idsByType = ArrayListMultimap.create();
- for (String importDataId : importDataIds) {
- Class<TopiaEntity> className = idFactory.getClassName(importDataId);
- idsByType.put(className.getName(), importDataId);
- }
- log.info(String.format("Get data: %s", importDataIds));
- for (Map.Entry<String, Collection<String>> entry : idsByType.asMap().entrySet()) {
- requestBuilder.dataIdsToAdd(entry.getKey(), Set.copyOf(entry.getValue()));
- }
- TopiaSqlScript dataDump;
- ObserveTopiaApplicationContext temporaryTopiaApplicationContext = null;
- CreateDatabaseRequest request = requestBuilder.build();
- try {
- temporaryTopiaApplicationContext = ObserveTopiaApplicationContextFactory.createTopiaApplicationContext(importDataSourceConfiguration, false);
-// ObserveDataSourceConnection importDataSourceConnection = serviceContext().newService(importDataSourceConfiguration, AnonymousService.class).open(importDataSourceConfiguration);
-// DataSourceService dumpProducerService = serviceContext().newService(importDataSourceConnection, DataSourceService.class);
-// dataDump = dumpProducerService.produceCreateSqlScript(request);
- dataDump = temporaryTopiaApplicationContext.getSqlService().consume(request);
- } finally {
- if (!dataSourceCreateConfiguration.isLeaveOpenSource() && temporaryTopiaApplicationContext != null) {
- temporaryTopiaApplicationContext.close();
-// serviceContext().newService(importDataSourceConfiguration, DataSourceService.class).close();
- }
- }
- log.info(String.format("Import data%s", request.isAddStandaloneTables() ? " and referential." : "."));
- executeSqlStatements(dataDump);
- }
- }
+ DataSourceCreateHelper.create(this, dataSourceConfiguration, dataSourceCreateConfiguration);
}
- private ObserveDataSourceConfigurationTopiaH2 createTemporaryConfiguration(File tmpDirectory, Version version) {
- File dbDirectory = new File(tmpDirectory, "obstuna" + UUID.randomUUID());
- ObserveDataSourceConfigurationTopiaH2 result = ObserveDataSourceConfigurationTopiaH2.create(
- "obtunaTmp", dbDirectory, "obstuna", "sa", "sa".toCharArray(), true, true, version);
- result.setTemporaryDirectory(tmpDirectory.toPath());
- return result;
+ public void createAndImport(DataSourceImportConfigurationDto dataSourceCreateConfiguration) throws BabModelVersionException, DatabaseConnexionNotAuthorizedException, DatabaseNotFoundException {
+ log.debug(String.format("Create topia application context: %s", this));
+ executeSqlStatements(dataSourceCreateConfiguration.getReferentialDump());
+ if (dataSourceCreateConfiguration.isImportData()) {
+ executeSqlStatements(dataSourceCreateConfiguration.getDataDump());
+ }
}
-
}
=====================================
core/services/client/src/main/java/fr/ird/observe/services/client/AnonymousServiceClient.java
=====================================
@@ -27,6 +27,7 @@ import fr.ird.observe.dto.db.DatabaseConnexionNotAuthorizedException;
import fr.ird.observe.dto.db.DatabaseNotFoundException;
import fr.ird.observe.dto.db.configuration.DataSourceCreateConfigurationDto;
import fr.ird.observe.dto.db.configuration.DataSourceCreateWithNoReferentialImportException;
+import fr.ird.observe.dto.db.configuration.DataSourceImportConfigurationDto;
import fr.ird.observe.dto.db.configuration.IncompatibleDataSourceCreateConfigurationException;
import fr.ird.observe.dto.db.configuration.ObserveDataSourceConfiguration;
import fr.ird.observe.dto.db.configuration.ObserveDataSourceConnection;
@@ -44,6 +45,16 @@ public class AnonymousServiceClient extends GeneratedAnonymousServiceClient {
return dataSourceConnection;
}
+ @Override
+ public ObserveDataSourceConnection createAndImport(ObserveDataSourceConfiguration config, DataSourceImportConfigurationDto createConfiguration) throws IncompatibleDataSourceCreateConfigurationException, DataSourceCreateWithNoReferentialImportException, BabModelVersionException, DatabaseConnexionNotAuthorizedException, DatabaseNotFoundException {
+ ObserveServiceInitializer initializer = getServiceContext().getInitializer();
+ initializer.setConfiguration(config);
+ ObserveDataSourceConnection dataSourceConnection = super.createAndImport(config, createConfiguration);
+ initializer.setConnection(dataSourceConnection);
+ initializer.setConfiguration(null);
+ return dataSourceConnection;
+ }
+
@Override
public ObserveDataSourceConnection open(ObserveDataSourceConfiguration config) throws DatabaseNotFoundException, DatabaseConnexionNotAuthorizedException, BabModelVersionException {
ObserveServiceInitializer initializer = getServiceContext().getInitializer();
=====================================
core/services/local/src/main/java/fr/ird/observe/services/local/service/AnonymousServiceLocalSupport.java
=====================================
@@ -30,6 +30,7 @@ import fr.ird.observe.dto.db.DatabaseNotFoundException;
import fr.ird.observe.dto.db.DatabaseVersionIsTooHighException;
import fr.ird.observe.dto.db.configuration.DataSourceCreateConfigurationDto;
import fr.ird.observe.dto.db.configuration.DataSourceCreateWithNoReferentialImportException;
+import fr.ird.observe.dto.db.configuration.DataSourceImportConfigurationDto;
import fr.ird.observe.dto.db.configuration.IncompatibleDataSourceCreateConfigurationException;
import fr.ird.observe.dto.db.configuration.ObserveDataSourceConfiguration;
import fr.ird.observe.dto.db.configuration.ObserveDataSourceConnection;
@@ -124,6 +125,22 @@ public class AnonymousServiceLocalSupport extends ObserveServiceLocal implements
return config.toConnection(topiaApplicationContext.getAuthenticationToken(), dataSourceInformation);
}
+ @Override
+ public ObserveDataSourceConnection createAndImport(ObserveDataSourceConfiguration config, DataSourceImportConfigurationDto createConfiguration) throws IncompatibleDataSourceCreateConfigurationException, DataSourceCreateWithNoReferentialImportException, BabModelVersionException, DatabaseConnexionNotAuthorizedException, DatabaseNotFoundException {
+ createConfiguration.validateConfiguration(getApplicationLocale());
+ setTemporaryDirectory(config);
+ boolean initSchema = true;
+ ObserveTopiaApplicationContext topiaApplicationContext = ObserveTopiaApplicationContextFactory.createTopiaApplicationContext(config, initSchema);
+ try {
+ topiaApplicationContext.createAndImport(createConfiguration);
+ } catch (Exception e) {
+ close(config, topiaApplicationContext);
+ throw e;
+ }
+ ObserveDataSourceInformation dataSourceInformation = getDataSourceInformation(config, topiaApplicationContext.getConfiguration(), false);
+ return config.toConnection(topiaApplicationContext.getAuthenticationToken(), dataSourceInformation);
+ }
+
@Override
public ObserveDataSourceConnection open(ObserveDataSourceConfiguration config) throws DatabaseNotFoundException, DatabaseConnexionNotAuthorizedException, BabModelVersionException {
setTemporaryDirectory(config);
=====================================
server/core/src/main/filtered-resources/META-INF/mapping-api-client.wm
=====================================
@@ -26,6 +26,7 @@ GET /AnonymousService/applySecurity Anon
GET /AnonymousService/checkCanConnect AnonymousServiceRestApi.checkCanConnect
GET /AnonymousService/checkCanConnectOrBeEmpty AnonymousServiceRestApi.checkCanConnectOrBeEmpty
GET /AnonymousService/create AnonymousServiceRestApi.create
+POST /AnonymousService/createAndImport AnonymousServiceRestApi.createAndImport
GET /AnonymousService/generateHomeId AnonymousServiceRestApi.generateHomeId
GET /AnonymousService/getModelVersion AnonymousServiceRestApi.getModelVersion
GET /AnonymousService/getServerVersion AnonymousServiceRestApi.getServerVersion
=====================================
server/core/src/main/java/fr/ird/observe/server/controller/AnonymousServiceRestApi.java
=====================================
@@ -28,6 +28,7 @@ import fr.ird.observe.dto.db.DatabaseConnexionNotAuthorizedException;
import fr.ird.observe.dto.db.DatabaseNotFoundException;
import fr.ird.observe.dto.db.configuration.DataSourceCreateConfigurationDto;
import fr.ird.observe.dto.db.configuration.DataSourceCreateWithNoReferentialImportException;
+import fr.ird.observe.dto.db.configuration.DataSourceImportConfigurationDto;
import fr.ird.observe.dto.db.configuration.IncompatibleDataSourceCreateConfigurationException;
import fr.ird.observe.dto.db.configuration.ObserveDataSourceConfiguration;
import fr.ird.observe.dto.db.configuration.ObserveDataSourceConnection;
@@ -49,6 +50,12 @@ public class AnonymousServiceRestApi extends GeneratedAnonymousServiceRestApi {
private static final Logger log = LogManager.getLogger(AnonymousServiceRestApi.class);
+ @Override
+ public ObserveDataSourceInformation checkCanConnectOrBeEmpty(ObserveDataSourceConfiguration config) throws DatabaseNotFoundException, DatabaseConnexionNotAuthorizedException, BabModelVersionException {
+ ObserveWebUserSession session = getRequestContext().getConfigurationSession(config);
+ return getService().checkCanConnectOrBeEmpty(session.getConfiguration());
+ }
+
@Override
public ObserveDataSourceInformation checkCanConnect(ObserveDataSourceConfiguration config) throws DatabaseConnexionNotAuthorizedException, DatabaseNotFoundException, BabModelVersionException {
ObserveWebUserSession session = getRequestContext().getConfigurationSession(config);
@@ -65,6 +72,14 @@ public class AnonymousServiceRestApi extends GeneratedAnonymousServiceRestApi {
return authenticatedSession.toRestConnection(config);
}
+ @Override
+ public ObserveDataSourceConnection createAndImport(ObserveDataSourceConfiguration config, DataSourceImportConfigurationDto createConfiguration) throws IncompatibleDataSourceCreateConfigurationException, DataSourceCreateWithNoReferentialImportException, BabModelVersionException, DatabaseConnexionNotAuthorizedException, DatabaseNotFoundException {
+ ObserveWebUserSession configurationSession = getRequestContext().getConfigurationSession(config);
+ ObserveDataSourceConnection connection = getService().createAndImport(configurationSession.getConfiguration(), createConfiguration);
+ ObserveWebUserSession authenticatedSession = getSecurityApplicationContext().registerAuthenticatedSession(configurationSession, connection);
+ return authenticatedSession.toRestConnection(config);
+ }
+
@Override
public ObserveDataSourceConnection open(ObserveDataSourceConfiguration config) throws DatabaseNotFoundException, DatabaseConnexionNotAuthorizedException, BabModelVersionException {
ObserveWebUserSession configurationSession = getRequestContext().getConfigurationSession(config);
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/a864fb664be6b4f57a7edf8a1…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/a864fb664be6b4f57a7edf8a1…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop] 11 commits: Complêter la configuration de l'action de validation - Closes #2212
by Tony CHEMIT (@tchemit) 16 Mar '22
by Tony CHEMIT (@tchemit) 16 Mar '22
16 Mar '22
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
c6dfa0b7 by Tony Chemit at 2022-03-16T12:31:39+01:00
Complêter la configuration de l'action de validation - Closes #2212
- - - - -
c0996f53 by Tony Chemit at 2022-03-16T12:31:39+01:00
Amélioration rendu données non valides (avec sur Ctrl+C le copie de l'id :))
- - - - -
91d5e01c by Tony Chemit at 2022-03-16T12:31:39+01:00
Correction sur les actions du comportements lors du retour sur onglet précédent après une action - Closes #2213
- - - - -
2c8862d5 by Tony Chemit at 2022-03-16T12:31:39+01:00
Replace ObserveDto by JsonAware for Json purpose.
- - - - -
9a5c18b4 by Tony Chemit at 2022-03-16T12:31:39+01:00
Replace ObserveDto by JsonAware for Json purpose.
Remove more usage of guava evil maps
- - - - -
dfad986b by Tony Chemit at 2022-03-16T12:31:39+01:00
Improve pairing logs (replace Program by GroupBy)
- - - - -
c7535b2e by Tony Chemit at 2022-03-16T12:31:39+01:00
update pom
- - - - -
67a69fba by Tony Chemit at 2022-03-16T12:31:39+01:00
low test logs
- - - - -
af7c6479 by Tony Chemit at 2022-03-16T12:31:39+01:00
Revue des rapports
- - - - -
bbd2bcce by Tony Chemit at 2022-03-16T12:31:39+01:00
Remove TopiaSqlScriptInjector
- - - - -
18ac6443 by Tony Chemit at 2022-03-16T13:04:41+01:00
Fix NPe in advanced data synchro
- - - - -
30 changed files:
- client/core/src/main/java/fr/ird/observe/client/datasource/api/ObserveSwingDataSource.java
- client/core/src/main/java/fr/ird/observe/client/datasource/api/data/InsertMissingReferentialTask.java
- client/core/src/main/java/fr/ird/observe/client/datasource/usage/UsageForDisplayUIHandler.java
- client/datasource/actions/src/main/i18n/getters/jaxx.getter
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/AdminUIHandler.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/AdminUIModel.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/config/SelectDataUIHandler.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/export/actions/Prepare.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/pairing/actions/Prepare.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/pairing/ll/RootNodeBuilder.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/pairing/ps/RootNodeBuilder.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/report/ReportUI.jcss
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/data/actions/Start.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/referential/legacy/actions/Start.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/referential/ng/actions/Apply.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/referential/ng/actions/Start.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/referential/ng/task/ReferentialSynchronizeTaskListModel.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/referential/ng/tree/ReferentialSelectionTree.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/referential/ng/tree/ReferentialSynchronizeTreeModel.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/referential/ng/tree/ReferentialSynchronizeTreeModelsBuilder.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/referential/ng/tree/node/SynchroNodeSupport.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/validate/ValidateConfigUI.jaxx
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/validate/ValidateConfigUI.jcss
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/validate/ValidateEntityListCellRenderer.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/validate/ValidateModel.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/validate/ValidateUI.jcss
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/validate/ValidateUIHandler.java
- server/core/src/main/java/fr/ird/observe/server/injector/TopiaSqlScriptInjector.java → client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/validate/actions/SelectValidationConfigFlag.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/validate/actions/Start.java
- client/runner/src/main/i18n/translations/client-runner_en_GB.properties
The diff was not included because it is too large.
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/f7648313d7fbc494594876ce…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/f7648313d7fbc494594876ce…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop] 11 commits: improve Focus dispatch when coming from a JPanel
by Tony CHEMIT (@tchemit) 14 Mar '22
by Tony CHEMIT (@tchemit) 14 Mar '22
14 Mar '22
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
54899979 by Tony Chemit at 2022-03-14T08:48:58+01:00
improve Focus dispatch when coming from a JPanel
- - - - -
b010d0cd by Tony Chemit at 2022-03-14T09:20:03+01:00
Amélioration des validateurs sur collection - See ultreiaio/ird-observe#2207
- - - - -
b9a842b8 by Tony Chemit at 2022-03-14T09:44:44+01:00
Renommage i18n dataEntryOperation
- - - - -
c0faeec5 by Tony Chemit at 2022-03-14T10:25:36+01:00
re-add type for containerDto (need them for validators)
- - - - -
3240e97d by Tony Chemit at 2022-03-14T10:25:46+01:00
low log level
- - - - -
7e08fe89 by Tony Chemit at 2022-03-14T10:26:04+01:00
improve validation action messages
- - - - -
560525ef by Tony Chemit at 2022-03-14T10:43:42+01:00
Correction validation ObjectMaterial (des faux positifs étaient détecté sur tous les fils directs de parent.code == null
- - - - -
982d3cd2 by Tony Chemit at 2022-03-14T11:28:19+01:00
Add Todo See #2212
- - - - -
5dc42b2d by Tony Chemit at 2022-03-14T11:29:37+01:00
Amélioration rendu données non valides (avec sur Ctrl+C le copie de l'id :))
- - - - -
bf1521a1 by Tony Chemit at 2022-03-14T13:56:58+01:00
Complêter la configuration de l'action de validation - Closes #2212
- - - - -
f7648313 by Tony Chemit at 2022-03-14T14:32:14+01:00
Correction sur les actions du comportements lors du retour sur onglet précédent après une action - Closes #2213
- - - - -
30 changed files:
- client/core/src/main/java/fr/ird/observe/client/main/focus/FocusDispatcher.java
- client/core/src/main/java/fr/ird/observe/client/util/busy/BusyModel.java
- client/datasource/actions/src/main/i18n/getters/jaxx.getter
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/AdminUIHandler.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/AdminUIModel.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/config/SelectDataUIHandler.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/export/actions/Prepare.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/pairing/actions/Prepare.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/data/actions/Start.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/referential/legacy/actions/Start.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/referential/ng/actions/Start.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/referential/ng/tree/actions/SelectUnselect.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/validate/ValidateConfigUI.jaxx
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/validate/ValidateConfigUI.jcss
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/validate/ValidateEntityListCellRenderer.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/validate/ValidateModel.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/validate/ValidateUI.jcss
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/validate/ValidateUIHandler.java
- + client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/validate/actions/SelectValidationConfigFlag.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/validate/actions/Start.java
- client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/selection/actions/SelectUnselect.java
- client/runner/src/main/i18n/translations/client-runner_en_GB.properties
- client/runner/src/main/i18n/translations/client-runner_es_ES.properties
- client/runner/src/main/i18n/translations/client-runner_fr_FR.properties
- core/api/dto/src/main/java/fr/ird/observe/dto/data/ps/observation/RouteDto.java
- core/api/dto/src/main/java/fr/ird/observe/dto/referential/ps/common/ObjectMaterialDto.java
- core/api/dto/src/main/java/fr/ird/observe/spi/validation/validators/ps/common/TripCheckRouteObsLogValues.java
- core/api/dto/src/main/java/fr/ird/observe/spi/validation/validators/ps/observation/RouteCheckStartLogValue.java
- core/api/services/src/main/i18n/getters/labels.getter
- core/api/validation/src/main/validation/fr/ird/observe/dto/referential/ps/common/ObjectMaterialDto-create-error-validation.xml
The diff was not included because it is too large.
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/1ec22ba2c7b59bc6cad4343c…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/1ec22ba2c7b59bc6cad4343c…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop] 12 commits: topia-snapshot
by Tony CHEMIT (@tchemit) 13 Mar '22
by Tony CHEMIT (@tchemit) 13 Mar '22
13 Mar '22
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
b3290056 by Tony Chemit at 2022-03-13T11:37:47+01:00
topia-snapshot
- - - - -
35b54995 by Tony Chemit at 2022-03-13T11:37:47+01:00
be able to change now in test + be able to copy db with classifier
- - - - -
c6a70aa8 by Tony Chemit at 2022-03-13T11:37:47+01:00
Synchro simple du référentiel, associations espèce/océan - Closes #2208
- - - - -
c6a75995 by Tony Chemit at 2022-03-13T11:38:10+01:00
Les messages de validation sont mal encodés - Closes ultreiaio/ird-observe#2210
- - - - -
2bb24522 by Tony Chemit at 2022-03-13T15:30:05+01:00
Can configure which properties which should be sorted as code - See ultreiaio/decorator#9
- - - - -
c9199c7d by Tony Chemit at 2022-03-13T15:33:03+01:00
Libellé d'affichage des marées - See ultreiaio/ird-observe#2186
- - - - -
7e447e79 by Tony Chemit at 2022-03-13T15:33:48+01:00
clean code
- - - - -
6e29e1f0 by Tony Chemit at 2022-03-13T15:39:06+01:00
sort i18n labels
- - - - -
8736896e by Tony Chemit at 2022-03-13T15:42:26+01:00
clean i18n
- - - - -
f1d278eb by Tony Chemit at 2022-03-13T15:55:49+01:00
Libellé d'affichage des marées - See ultreiaio/ird-observe#2186
- - - - -
cd0b0005 by Tony Chemit at 2022-03-13T15:55:57+01:00
tidy pom
- - - - -
1ec22ba2 by Tony Chemit at 2022-03-13T16:28:28+01:00
update pom
- - - - -
30 changed files:
- client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/data/TripUIHelper.java
- client/datasource/editor/spi/pom.xml
- core/api/dto/src/main/java/fr/ird/observe/dto/data/TripAware.java
- core/api/dto/src/main/java/fr/ird/observe/dto/data/ll/common/TripCommon.java
- core/api/dto/src/main/java/fr/ird/observe/dto/data/ps/common/TripCommon.java
- core/api/dto/src/main/java/fr/ird/observe/spi/decoration/ObserveDtoDecoratorProviderInitializer.java
- core/api/dto/src/main/java/fr/ird/observe/spi/decoration/ObserveDtoDecoratorRenderer.java
- core/api/dto/src/main/java/fr/ird/observe/spi/decoration/ObserveDtoReferenceDecoratorRenderer.java
- core/api/dto/src/main/java/fr/ird/observe/spi/decoration/ObserveI18nDecoratorHelper.java
- core/api/dto/src/main/java/fr/ird/observe/spi/decoration/ObserveI18nLabelsBuilder.java
- core/api/services/src/main/i18n/getters/labels.getter
- core/api/services/src/main/resources/META-INF/i18n/Observe-labels.properties
- + core/persistence/java/src/main/java/fr/ird/observe/entities/data/TripEntityAware.java
- core/persistence/java/src/main/java/fr/ird/observe/entities/data/ll/common/TripImpl.java
- core/persistence/java/src/main/java/fr/ird/observe/entities/data/ps/common/TripImpl.java
- core/persistence/java/src/main/java/fr/ird/observe/spi/decoration/ObserveEntityDecoratorProviderInitializer.java
- core/persistence/java/src/main/java/fr/ird/observe/spi/decoration/ObserveEntityDecoratorRenderer.java
- core/services/i18n/src/main/i18n/translations/services_en_GB.properties
- core/services/i18n/src/main/i18n/translations/services_es_ES.properties
- core/services/i18n/src/main/i18n/translations/services_fr_FR.properties
- core/services/local/src/main/java/fr/ird/observe/services/local/service/ObserveServiceLocal.java
- core/services/local/src/test/java/fr/ird/observe/services/local/LocalTestClassResource.java
- core/services/local/src/test/java/fr/ird/observe/services/local/LocalTestMethodResourceWrite.java
- + core/services/local/src/test/java/fr/ird/observe/services/local/service/referential/UnidirectionalResultIssue2208Test.java
- core/services/local/src/test/java/fr/ird/observe/services/local/service/referential/UnidirectionalResultTest.java
- model/src/main/models/Observe/dto/25-data-ps-common.model
- model/src/main/models/Observe/dto/35-data-ll-common.model
- model/src/main/models/Observe/dto/class/decorator.properties
- model/src/main/models/Observe/dto/class/decoratorWithClassifier.properties
- model/src/main/models/Observe/dto/class/i18nLabels.properties
The diff was not included because it is too large.
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/798492d06b7304a6037cd925…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/798492d06b7304a6037cd925…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop] 9 commits: No more states in topia application context, all resources are in the...
by Tony CHEMIT (@tchemit) 12 Mar '22
by Tony CHEMIT (@tchemit) 12 Mar '22
12 Mar '22
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
89eab94a by Tony Chemit at 2022-03-12T14:52:03+01:00
No more states in topia application context, all resources are in the dedicated resources class. This one is a singleton. So any application scope can be access without any topia application context instance \o/
- - - - -
fb09ba41 by Tony Chemit at 2022-03-12T14:52:28+01:00
Synchro simple du référentiel, associations espèce/océan - See ultreiaio/ird-observe#2208
- - - - -
b53909f5 by Tony Chemit at 2022-03-12T15:45:56+01:00
Make any resource lazy loaded by a SingletonSupplier - See ultreiaio/topia-extension#115
- - - - -
0cffc6c3 by Tony Chemit at 2022-03-12T15:46:46+01:00
Add TagValues class from observe-toolkit - See ultreiaio/topia-extension#116
- - - - -
53b91978 by Tony Chemit at 2022-03-12T16:29:50+01:00
Make any resource lazy loaded by a SingletonSupplier - See ultreiaio/topia-extension#115
- - - - -
5075e882 by Tony Chemit at 2022-03-12T16:30:50+01:00
topia snapshot
- - - - -
d712a51b by Tony Chemit at 2022-03-12T17:50:26+01:00
be able to change now in test + be able to copy db with classifier
- - - - -
0a93385d by Tony Chemit at 2022-03-12T17:50:39+01:00
be able to change now in test + be able to copy db with classifier
- - - - -
798492d0 by Tony Chemit at 2022-03-12T18:08:39+01:00
Synchro simple du référentiel, associations espèce/océan - Closes #2208
- - - - -
13 changed files:
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/AdminActionModel.java
- client/datasource/editor/spi/pom.xml
- client/datasource/editor/spi/src/main/java/fr/ird/observe/client/datasource/editor/spi/content/data/table/GenerateContentTableUITableModel.java
- core/persistence/java/src/main/java/fr/ird/observe/entities/ObserveTopiaApplicationContext.java
- core/services/local/src/main/java/fr/ird/observe/services/local/service/referential/ReferentialServiceLocalSupport.java
- core/services/local/src/main/java/fr/ird/observe/services/local/service/referential/SynchronizeServiceLocalSupport.java
- core/services/local/src/test/java/fr/ird/observe/services/local/LocalTestClassResource.java
- core/services/local/src/test/java/fr/ird/observe/services/local/LocalTestMethodResourceRead.java
- core/services/local/src/test/java/fr/ird/observe/services/local/LocalTestMethodResourceWrite.java
- core/services/local/src/test/java/fr/ird/observe/services/local/service/referential/DifferentialModelTest.java
- + core/services/local/src/test/java/fr/ird/observe/services/local/service/referential/UnidirectionalResultIssue2208Test.java
- core/services/local/src/test/java/fr/ird/observe/services/local/service/referential/UnidirectionalResultTest.java
- pom.xml
Changes:
=====================================
client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/AdminActionModel.java
=====================================
@@ -101,7 +101,7 @@ public abstract class AdminActionModel extends WizardExtStepModel<AdminStep> imp
public DifferentialModelBuilder newDifferentialModelBuilder(ObserveServicesProvider leftSource, ObserveServicesProvider rightSource) {
- return ReferentialService.createDifferentialModelBuilder(getClientConfig().getReferentialLocale().getLocale(), leftSource.getReferentialService(), rightSource.getReferentialService());
+ return ReferentialService.createDifferentialModelBuilder(getClientConfig().getReferentialLocale().getLocale(), leftSource.getReferentialService()::differentialMetaModel,leftSource.getReferentialService(), rightSource.getReferentialService());
}
public SynchronizeEngine newReferentialSynchronizeEngine(ObserveServicesProvider leftSource, ObserveServicesProvider rightSource) {
=====================================
client/datasource/editor/spi/pom.xml
=====================================
@@ -70,6 +70,10 @@
<groupId>io.ultreia.java4all</groupId>
<artifactId>java-bean</artifactId>
</dependency>
+ <dependency>
+ <groupId>io.ultreia.java4all.topia</groupId>
+ <artifactId>persistence</artifactId>
+ </dependency>
<dependency>
<groupId>io.ultreia.java4all</groupId>
<artifactId>java-lang</artifactId>
=====================================
client/datasource/editor/spi/src/main/java/fr/ird/observe/client/datasource/editor/spi/content/data/table/GenerateContentTableUITableModel.java
=====================================
@@ -28,7 +28,8 @@ import fr.ird.observe.client.datasource.editor.api.content.data.table.ContentTab
import fr.ird.observe.client.util.table.JXTableUtil;
import fr.ird.observe.dto.reference.DataDtoReference;
import fr.ird.observe.dto.reference.ReferentialDtoReference;
-import fr.ird.observe.spi.TagValues;
+import fr.ird.observe.spi.ProjectPackagesDefinition;
+import org.nuiton.topia.persistence.TagValues;
import fr.ird.observe.spi.decoration.I18nDecoratorHelper;
import fr.ird.observe.toolkit.templates.ToolkitTagValues;
import io.ultreia.java4all.bean.definition.JavaBeanDefinition;
@@ -119,7 +120,7 @@ public class GenerateContentTableUITableModel extends GenerateContentTableUISupp
@Override
public void run() {
labelsBuilder = I18nDecoratorHelper.get().getDefaultLabelsBuilder();
- dtoTagValues = TagValues.dto( /*FIXME Use extraProperties configuration*/"Observe");
+ dtoTagValues = TagValues.dto( /*FIXME Use extraProperties configuration*/"Observe", ProjectPackagesDefinition::cleanType);
super.run();
}
=====================================
core/persistence/java/src/main/java/fr/ird/observe/entities/ObserveTopiaApplicationContext.java
=====================================
@@ -30,12 +30,17 @@ import fr.ird.observe.dto.db.DatabaseNotFoundException;
import fr.ird.observe.dto.db.configuration.DataSourceCreateConfigurationDto;
import fr.ird.observe.dto.db.configuration.ObserveDataSourceConfiguration;
import fr.ird.observe.dto.db.configuration.topia.ObserveDataSourceConfigurationTopiaH2;
+import fr.ird.observe.dto.referential.ReferentialDto;
import fr.ird.observe.entities.data.DataGroupByEntity;
-import fr.ird.observe.spi.module.ObserveBusinessProject;
+import fr.ird.observe.spi.module.BusinessProject;
import fr.ird.observe.spi.referential.differential.DifferentialMetaModel;
+import fr.ird.observe.spi.referential.synchro.OneSideSqlResultBuilder;
+import fr.ird.observe.spi.script.ToolkitEntitySqlScriptModel;
+import fr.ird.observe.spi.service.ServiceContext;
import io.ultreia.java4all.util.Version;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
+import org.nuiton.topia.persistence.TagValues;
import org.nuiton.topia.persistence.TopiaConfigurationExtension;
import org.nuiton.topia.persistence.TopiaEntity;
import org.nuiton.topia.persistence.TopiaIdFactory;
@@ -58,6 +63,7 @@ import java.nio.file.Files;
import java.nio.file.Path;
import java.time.Duration;
import java.util.Collection;
+import java.util.Date;
import java.util.Map;
import java.util.Set;
import java.util.UUID;
@@ -107,8 +113,18 @@ public class ObserveTopiaApplicationContext extends AbstractObserveTopiaApplicat
}
@Override
- protected final DifferentialMetaModel newDifferentialMetaModel() {
- return new DifferentialMetaModel(referentialForReplicationDto(), ObserveBusinessProject.get().getReferentialBusinessProperties());
+ public final OneSideSqlResultBuilder newOneSideSqlResultBuilder(ServiceContext context, Date defaultLastUpdateDate) {
+ return ObserveTopiaEntitySqlModelResource.get().newOneSideSqlResultBuilder(context, defaultLastUpdateDate);
+ }
+
+ @Override
+ public final TagValues getPersistenceTagValues() {
+ return ObserveTopiaEntitySqlModelResource.get().getPersistenceTagValues();
+ }
+
+ @Override
+ public final TagValues getDtoTagValues() {
+ return ObserveTopiaEntitySqlModelResource.get().getDtoTagValues();
}
@Override
@@ -156,6 +172,21 @@ public class ObserveTopiaApplicationContext extends AbstractObserveTopiaApplicat
return ObserveTopiaEntitySqlModelResource.get().getMetaModelPaths();
}
+ @Override
+ public Set<Class<? extends ReferentialDto>> referentialForReplicationDto() {
+ return ObserveTopiaEntitySqlModelResource.get().referentialForReplicationDto();
+ }
+
+ @Override
+ public DifferentialMetaModel getDifferentialMetaModel(BusinessProject businessProject) {
+ return ObserveTopiaEntitySqlModelResource.get().getDifferentialMetaModel(businessProject);
+ }
+
+ @Override
+ public ToolkitEntitySqlScriptModel getScriptModel() {
+ return ObserveTopiaEntitySqlModelResource.get().getScriptModel();
+ }
+
public void create(ObserveDataSourceConfiguration dataSourceConfiguration, DataSourceCreateConfigurationDto dataSourceCreateConfiguration) throws BabModelVersionException, DatabaseConnexionNotAuthorizedException, DatabaseNotFoundException {
log.debug(String.format("Create topia application context: %s", this));
if (dataSourceCreateConfiguration.isImportDatabase()) {
=====================================
core/services/local/src/main/java/fr/ird/observe/services/local/service/referential/ReferentialServiceLocalSupport.java
=====================================
@@ -30,6 +30,7 @@ import fr.ird.observe.dto.reference.ReferentialDtoReference;
import fr.ird.observe.dto.reference.ReferentialDtoReferenceSet;
import fr.ird.observe.dto.referential.ReferentialDto;
import fr.ird.observe.dto.result.SaveResultDto;
+import fr.ird.observe.entities.ObserveTopiaEntitySqlModelResource;
import fr.ird.observe.services.local.service.ObserveServiceLocal;
import fr.ird.observe.services.service.referential.ReferentialService;
import fr.ird.observe.spi.context.ReferentialDtoEntityContext;
@@ -101,7 +102,7 @@ class ReferentialServiceLocalSupport extends ObserveServiceLocal implements Refe
@Override
public DifferentialMetaModel differentialMetaModel() {
- return getTopiaApplicationContext().getDifferentialMetaModel();
+ return ObserveTopiaEntitySqlModelResource.get().getDifferentialMetaModel(ObserveBusinessProject.get());
}
@Override
=====================================
core/services/local/src/main/java/fr/ird/observe/services/local/service/referential/SynchronizeServiceLocalSupport.java
=====================================
@@ -27,6 +27,7 @@ import fr.ird.observe.dto.ToolkitIdDtoBean;
import fr.ird.observe.dto.ToolkitIdLabel;
import fr.ird.observe.dto.referential.ReferentialDto;
import fr.ird.observe.entities.LastUpdateDateTopiaDao;
+import fr.ird.observe.entities.ObserveTopiaEntitySqlModelResource;
import fr.ird.observe.services.local.service.ObserveServiceLocal;
import fr.ird.observe.services.service.referential.SynchronizeService;
import fr.ird.observe.spi.context.ReferentialDtoEntityContext;
@@ -69,7 +70,7 @@ public class SynchronizeServiceLocalSupport extends ObserveServiceLocal implemen
@Override
public OneSideSqlResult produceSqlResult(OneSideSqlRequest request) {
- return getTopiaApplicationContext()
+ return ObserveTopiaEntitySqlModelResource.get()
.newOneSideSqlResultBuilder(this, now())
.build(request);
}
=====================================
core/services/local/src/test/java/fr/ird/observe/services/local/LocalTestClassResource.java
=====================================
@@ -134,18 +134,28 @@ public class LocalTestClassResource extends TestClassResourceSupport {
ObserveServiceInitializer serviceInitializer = new ObserveServiceInitializer(getServiceInitializerConfig(), dataSourceConfiguration, null) {
@Override
public Date now() {
- return ObserveFixtures.DATE;
+ return generateNow?new Date():ObserveFixtures.DATE;
}
};
serviceInitializer.setConfiguration(dataSourceConfiguration);
return serviceFactory.newService(serviceInitializer, serviceType);
}
+ private boolean generateNow;
+
+ public boolean isGenerateNow() {
+ return generateNow;
+ }
+
+ public void setGenerateNow(boolean generateNow) {
+ this.generateNow = generateNow;
+ }
+
public <S extends ObserveService> S newService(ObserveDataSourceConnection dataSourceConnection, Class<S> serviceType) {
ObserveServiceInitializer serviceInitializer = new ObserveServiceInitializer(getServiceInitializerConfig(), null, dataSourceConnection){
@Override
public Date now() {
- return ObserveFixtures.DATE;
+ return generateNow?new Date():ObserveFixtures.DATE;
}
};
return serviceFactory.newService(serviceInitializer, serviceType);
=====================================
core/services/local/src/test/java/fr/ird/observe/services/local/LocalTestMethodResourceRead.java
=====================================
@@ -34,6 +34,7 @@ import fr.ird.observe.security.Permission;
import fr.ird.observe.services.ObserveServicesProvider;
import fr.ird.observe.services.service.AnonymousService;
import fr.ird.observe.services.service.ObserveService;
+import fr.ird.observe.test.spi.DatabaseClassifier;
import io.ultreia.java4all.util.Version;
import org.junit.runner.Description;
@@ -53,6 +54,14 @@ public class LocalTestMethodResourceRead extends LocalTestClassResource {
private ObserveDataSourceConfigurationTopiaH2 dataSourceConfiguration;
private ObserveDataSourceConnection dataSourceConnection;
+ public LocalTestMethodResourceRead(DatabaseClassifier classifier) {
+ super(classifier);
+ }
+
+ public LocalTestMethodResourceRead() {
+ this(DatabaseClassifier.DEFAULT);
+ }
+
public <S extends ObserveService> S newService(Class<S> serviceType) throws DatabaseConnexionNotAuthorizedException, DatabaseNotFoundException, BabModelVersionException {
ObserveDataSourceConnection dataSourceConnection = getDataSourceConnection();
if (dataSourceConnection == null) {
=====================================
core/services/local/src/test/java/fr/ird/observe/services/local/LocalTestMethodResourceWrite.java
=====================================
@@ -41,6 +41,7 @@ import fr.ird.observe.spi.module.ObserveBusinessProject;
import fr.ird.observe.test.ObserveTestConfiguration;
import fr.ird.observe.test.TestMethodResourceSupportWrite;
import fr.ird.observe.test.spi.CopyDatabaseConfiguration;
+import fr.ird.observe.test.spi.DatabaseClassifier;
import io.ultreia.java4all.util.Version;
import org.junit.runner.Description;
import org.nuiton.topia.persistence.TopiaDao;
@@ -134,9 +135,10 @@ public class LocalTestMethodResourceWrite extends TestMethodResourceSupportWrite
Objects.requireNonNull(getDbVersion(), "Pas de version de base spécifié");
Objects.requireNonNull(getLogin(), "Pas de login spécifié");
Objects.requireNonNull(getPassword(), "Pas de password spécifié");
- CopyDatabaseConfiguration copyDatabaseConfiguration = ObserveTestConfiguration.getCopyDatabaseConfigurationAnnotation(testClassMethod, testClassResource.getClassifier());
+ DatabaseClassifier classifier = testClassResource.getClassifier();
+ CopyDatabaseConfiguration copyDatabaseConfiguration = ObserveTestConfiguration.getCopyDatabaseConfigurationAnnotation(testClassMethod, classifier);
boolean useSharedDatabase = copyDatabaseConfiguration == null;
- File databasePath = useSharedDatabase ? null : getTestDirectory().toPath().resolve("localDb").toFile();
+ File databasePath = useSharedDatabase ? null : getTestDirectory().toPath().resolve("localDb-"+classifier).toFile();
dataSourceConfiguration = testClassResource.createDataSourceConfiguration(getDbVersion(), getDbName(), databasePath, getLogin(), getPassword());
}
=====================================
core/services/local/src/test/java/fr/ird/observe/services/local/service/referential/DifferentialModelTest.java
=====================================
@@ -24,25 +24,26 @@ package fr.ird.observe.services.local.service.referential;
import fr.ird.observe.dto.ProgressionModel;
import fr.ird.observe.dto.referential.ReferentialLocale;
-import fr.ird.observe.services.local.LocalTestClassResource;
-import fr.ird.observe.services.local.LocalTestMethodResourceWrite;
+import fr.ird.observe.entities.ObserveTopiaEntitySqlModelResource;
+import fr.ird.observe.services.local.LocalTestMethodResourceRead;
import fr.ird.observe.services.local.service.ServiceLocalTestSupportWrite;
import fr.ird.observe.services.service.DataSourceServiceFixtures;
import fr.ird.observe.services.service.referential.ReferentialService;
+import fr.ird.observe.spi.module.ObserveBusinessProject;
import fr.ird.observe.spi.referential.differential.DifferentialList;
import fr.ird.observe.spi.referential.differential.DifferentialModel;
import fr.ird.observe.spi.referential.differential.DifferentialType;
import fr.ird.observe.test.DatabaseName;
import fr.ird.observe.test.ObserveTestConfiguration;
-import fr.ird.observe.test.spi.CopyDatabaseConfiguration;
import fr.ird.observe.test.spi.DatabaseClassifier;
+import fr.ird.observe.test.spi.DatabaseLoginConfiguration;
import fr.ird.observe.test.spi.DatabaseNameConfiguration;
+import fr.ird.observe.test.spi.DatabasePasswordConfiguration;
import fr.ird.observe.test.spi.DatabaseVersionConfiguration;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.junit.Assert;
import org.junit.Before;
-import org.junit.ClassRule;
import org.junit.Rule;
import org.junit.Test;
@@ -50,14 +51,16 @@ import org.junit.Test;
* @author Tony Chemit - dev(a)tchemit.fr
* @since 7.4.0
*/
+@DatabaseVersionConfiguration(ObserveTestConfiguration.MODEL_VERSION)
+@DatabaseLoginConfiguration
+@DatabasePasswordConfiguration(ObserveTestConfiguration.H2_PASSWORD)
+@DatabaseNameConfiguration(value = DatabaseName.data, classifier = DatabaseClassifier.CENTRAL)
+@DatabaseVersionConfiguration(value = ObserveTestConfiguration.MODEL_VERSION, classifier = DatabaseClassifier.CENTRAL)
public class DifferentialModelTest extends ServiceLocalTestSupportWrite<ReferentialService> {
- @ClassRule
- public static final LocalTestClassResource TOPIA_TEST_CLASS_RESOURCE_CENTRAL = new LocalTestClassResource(DatabaseClassifier.CENTRAL);
private static final Logger log = LogManager.getLogger(DifferentialModelTest.class);
@Rule
- public final LocalTestMethodResourceWrite localTestMethodResourceCentral = new LocalTestMethodResourceWrite(TOPIA_TEST_CLASS_RESOURCE_CENTRAL);
-
+ public final LocalTestMethodResourceRead localTestMethodResourceCentral = new LocalTestMethodResourceRead(DatabaseClassifier.CENTRAL);
private ReferentialService rightReferentialService;
public DifferentialModelTest() {
@@ -71,15 +74,12 @@ public class DifferentialModelTest extends ServiceLocalTestSupportWrite<Referent
}
@DatabaseNameConfiguration(DatabaseName.empty)
- @CopyDatabaseConfiguration
- @DatabaseNameConfiguration(value = DatabaseName.data, classifier = DatabaseClassifier.CENTRAL)
- @DatabaseVersionConfiguration(value = ObserveTestConfiguration.MODEL_VERSION, classifier = DatabaseClassifier.CENTRAL)
@Test
public void testSynchronizeFromEmptyDatabase() {
ProgressionModel progressionModel = new ProgressionModel();
progressionModel.addPropertyChangeListener(ProgressionModel.PROPERTY_MESSAGE, evt -> log.debug(evt.getNewValue()));
- DifferentialModel result = ReferentialService.createDifferentialModelBuilder(ReferentialLocale.FR.getLocale(), service, rightReferentialService).build(progressionModel);
+ DifferentialModel result = ReferentialService.createDifferentialModelBuilder(ReferentialLocale.FR.getLocale(), () -> ObserveTopiaEntitySqlModelResource.get().getDifferentialMetaModel(ObserveBusinessProject.get()), service, rightReferentialService).build(progressionModel);
Assert.assertNotNull(result);
DifferentialList leftSideDifferentialList = result.getLeft();
@@ -91,19 +91,15 @@ public class DifferentialModelTest extends ServiceLocalTestSupportWrite<Referent
Assert.assertNotNull(rightSideDifferentialList.getStates());
Assert.assertEquals(DataSourceServiceFixtures.REFERENTIAL_COUNT, rightSideDifferentialList.getStates().size());
Assert.assertTrue(rightSideDifferentialList.getStates().stream().allMatch(s -> DifferentialType.ADDED.equals(s.getDifferentialType())));
-
}
@DatabaseNameConfiguration(DatabaseName.data)
- @CopyDatabaseConfiguration
- @DatabaseNameConfiguration(value = DatabaseName.data, classifier = DatabaseClassifier.CENTRAL)
- @DatabaseVersionConfiguration(value = ObserveTestConfiguration.MODEL_VERSION, classifier = DatabaseClassifier.CENTRAL)
@Test
public void testSynchronizeWithNoChange() {
ProgressionModel progressionModel = new ProgressionModel();
progressionModel.addPropertyChangeListener(ProgressionModel.PROPERTY_MESSAGE, evt -> log.debug(evt.getNewValue()));
- DifferentialModel result = ReferentialService.createDifferentialModelBuilder(ReferentialLocale.FR.getLocale(), service, rightReferentialService).build(progressionModel);
+ DifferentialModel result = ReferentialService.createDifferentialModelBuilder(ReferentialLocale.FR.getLocale(), () -> ObserveTopiaEntitySqlModelResource.get().getDifferentialMetaModel(ObserveBusinessProject.get()), service, rightReferentialService).build(progressionModel);
Assert.assertNotNull(result);
DifferentialList leftSideDifferentialList = result.getLeft();
=====================================
core/services/local/src/test/java/fr/ird/observe/services/local/service/referential/UnidirectionalResultIssue2208Test.java
=====================================
@@ -0,0 +1,151 @@
+package fr.ird.observe.services.local.service.referential;
+
+/*-
+ * #%L
+ * ObServe Core :: Services :: Local
+ * %%
+ * Copyright (C) 2008 - 2022 IRD, Code Lutin, Ultreia.io
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
+import fr.ird.observe.dto.ProgressionModel;
+import fr.ird.observe.dto.referential.ReferentialDto;
+import fr.ird.observe.dto.referential.ReferentialLocale;
+import fr.ird.observe.dto.referential.common.OceanReference;
+import fr.ird.observe.dto.referential.common.SpeciesDto;
+import fr.ird.observe.services.local.LocalTestClassResource;
+import fr.ird.observe.services.local.LocalTestMethodResourceWrite;
+import fr.ird.observe.services.local.service.ServiceLocalTestSupportWrite;
+import fr.ird.observe.services.service.referential.ReferentialService;
+import fr.ird.observe.services.service.referential.ReferentialServiceFixtures;
+import fr.ird.observe.services.service.referential.SynchronizeService;
+import fr.ird.observe.spi.referential.SynchronizeEngine;
+import fr.ird.observe.spi.referential.UnidirectionalSynchronizeContext;
+import fr.ird.observe.spi.referential.UnidirectionalSynchronizeEngine;
+import fr.ird.observe.spi.referential.differential.DifferentialModelBuilder;
+import fr.ird.observe.spi.referential.synchro.UnidirectionalResult;
+import fr.ird.observe.test.DatabaseName;
+import fr.ird.observe.test.ObserveTestConfiguration;
+import fr.ird.observe.test.ToolkitFixtures;
+import fr.ird.observe.test.spi.CopyDatabaseConfiguration;
+import fr.ird.observe.test.spi.DatabaseClassifier;
+import fr.ird.observe.test.spi.DatabaseLoginConfiguration;
+import fr.ird.observe.test.spi.DatabaseNameConfiguration;
+import fr.ird.observe.test.spi.DatabasePasswordConfiguration;
+import fr.ird.observe.test.spi.DatabaseVersionConfiguration;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.ClassRule;
+import org.junit.Rule;
+import org.junit.Test;
+
+import java.util.Set;
+
+/**
+ * Created on 04/07/16.
+ *
+ * @author Tony Chemit - dev(a)tchemit.fr
+ */
+@DatabaseVersionConfiguration(ObserveTestConfiguration.MODEL_VERSION)
+@DatabaseLoginConfiguration
+@DatabasePasswordConfiguration(ObserveTestConfiguration.H2_PASSWORD)
+(a)DatabaseNameConfiguration(DatabaseName.referential)
+@DatabaseNameConfiguration(value = DatabaseName.referential, classifier = DatabaseClassifier.CENTRAL)
+@DatabaseVersionConfiguration(value = ObserveTestConfiguration.MODEL_VERSION, classifier = DatabaseClassifier.CENTRAL)
+public class UnidirectionalResultIssue2208Test extends ServiceLocalTestSupportWrite<SynchronizeService> {
+
+ @ClassRule
+ public static final LocalTestClassResource TOPIA_TEST_CLASS_RESOURCE_CENTRAL = new LocalTestClassResource(DatabaseClassifier.CENTRAL);
+ @Rule
+ public final LocalTestMethodResourceWrite localTestMethodResourceCentral = new LocalTestMethodResourceWrite(TOPIA_TEST_CLASS_RESOURCE_CENTRAL);
+
+ private DifferentialModelBuilder diffsEngine;
+ private SynchronizeEngine synchronizeEngine;
+ private ReferentialServiceFixtures fixtures;
+ private ReferentialService centralReferentialService;
+ private ReferentialService localReferentialService;
+
+ public UnidirectionalResultIssue2208Test() {
+ super(SynchronizeService.class);
+ }
+
+ @Before
+ public void setUp() throws Exception {
+ super.setUp();
+ localReferentialService = localTestMethodResource.newService(ReferentialService.class);
+ centralReferentialService = localTestMethodResourceCentral.newService(ReferentialService.class);
+ diffsEngine = ReferentialService.createDifferentialModelBuilder(ReferentialLocale.FR.getLocale(), localReferentialService::differentialMetaModel, localReferentialService, centralReferentialService);
+ SynchronizeService centralService = localTestMethodResourceCentral.newService(SynchronizeService.class);
+ synchronizeEngine = new SynchronizeEngine(localTestMethodResource.getTestDirectory().toPath(), service, centralService);
+ fixtures = new ReferentialServiceFixtures();
+ }
+
+ @CopyDatabaseConfiguration
+ @CopyDatabaseConfiguration(classifier = DatabaseClassifier.CENTRAL)
+ @Test
+ public void testSynchronizeIssue2208() {
+
+ // add ocean to a species in central database
+ // synchronize
+ // check in local database that the ocean is there for the given species
+
+ String speciesVariableName = fixtures.getVariableName(SpeciesDto.class).replace(".common.", ".common.common.");
+ String speciesId = ToolkitFixtures.getVariable(speciesVariableName);
+
+ SpeciesDto localSpecies = localReferentialService.loadDto(SpeciesDto.class, speciesId);
+ Assert.assertEquals(1, localSpecies.getOceanSize());
+
+ SpeciesDto centralSpecies = centralReferentialService.loadDto(SpeciesDto.class, speciesId);
+ Assert.assertEquals(1, centralSpecies.getOceanSize());
+
+ OceanReference ocean = new OceanReference();
+ //FIXME Make it fixture
+ ocean.setId("fr.ird.referential.common.Ocean#1239832686152#0.7039171539191688");
+ centralSpecies.addOcean(ocean);
+ TOPIA_TEST_CLASS_RESOURCE_CENTRAL.setGenerateNow(true);
+ try {
+ centralReferentialService.save(centralSpecies);
+ } finally {
+ TOPIA_TEST_CLASS_RESOURCE_CENTRAL.setGenerateNow(false);
+ }
+ centralSpecies = centralReferentialService.loadDto(SpeciesDto.class, speciesId);
+ Assert.assertEquals(2, centralSpecies.getOceanSize());
+
+ // do synchro
+
+ ProgressionModel progressionModel = new ProgressionModel();
+ UnidirectionalSynchronizeEngine referentialSynchronizeEngine = new UnidirectionalSynchronizeEngine(diffsEngine, synchronizeEngine);
+ UnidirectionalSynchronizeContext unidirectionalSynchronizeContext = referentialSynchronizeEngine.prepareContext(progressionModel);
+ UnidirectionalResult result = referentialSynchronizeEngine.prepareResult(unidirectionalSynchronizeContext, null);
+ unidirectionalSynchronizeContext.finish(service);
+
+ Assert.assertNotNull(result);
+
+ Set<Class<? extends ReferentialDto>> referentialNames = result.getReferentialNames();
+ Assert.assertNotNull(referentialNames);
+ Assert.assertEquals(1, referentialNames.size());
+ Assert.assertTrue(referentialNames.contains(SpeciesDto.class));
+
+ localSpecies = localReferentialService.loadDto(SpeciesDto.class, speciesId);
+ Assert.assertEquals(2, localSpecies.getOceanSize());
+ Assert.assertEquals(centralSpecies.getTopiaVersion(), localSpecies.getTopiaVersion());
+ Assert.assertEquals(centralSpecies.getLastUpdateDate(), localSpecies.getLastUpdateDate());
+ Assert.assertEquals(centralSpecies, localSpecies);
+
+ }
+
+}
=====================================
core/services/local/src/test/java/fr/ird/observe/services/local/service/referential/UnidirectionalResultTest.java
=====================================
@@ -28,8 +28,7 @@ import fr.ird.observe.dto.referential.ReferentialLocale;
import fr.ird.observe.entities.LastUpdateDate;
import fr.ird.observe.entities.referential.common.LengthLengthParameter;
import fr.ird.observe.entities.referential.ll.common.WeightDeterminationMethod;
-import fr.ird.observe.services.local.LocalTestClassResource;
-import fr.ird.observe.services.local.LocalTestMethodResourceWrite;
+import fr.ird.observe.services.local.LocalTestMethodResourceRead;
import fr.ird.observe.services.local.service.ServiceLocalTestSupportWrite;
import fr.ird.observe.services.service.referential.ReferentialService;
import fr.ird.observe.services.service.referential.SynchronizeService;
@@ -43,7 +42,9 @@ import fr.ird.observe.test.DatabaseName;
import fr.ird.observe.test.ObserveTestConfiguration;
import fr.ird.observe.test.spi.CopyDatabaseConfiguration;
import fr.ird.observe.test.spi.DatabaseClassifier;
+import fr.ird.observe.test.spi.DatabaseLoginConfiguration;
import fr.ird.observe.test.spi.DatabaseNameConfiguration;
+import fr.ird.observe.test.spi.DatabasePasswordConfiguration;
import fr.ird.observe.test.spi.DatabaseVersionConfiguration;
import io.ultreia.java4all.lang.Objects2;
import org.apache.logging.log4j.LogManager;
@@ -52,7 +53,6 @@ import org.junit.Assert;
import org.junit.Before;
import org.junit.ClassRule;
import org.junit.Ignore;
-import org.junit.Rule;
import org.junit.Test;
import org.nuiton.topia.service.sql.model.TopiaEntitySqlDescriptor;
import org.nuiton.topia.service.sql.model.TopiaEntitySqlDescriptors;
@@ -67,16 +67,18 @@ import java.util.Set;
*
* @author Tony Chemit - dev(a)tchemit.fr
*/
+@DatabaseVersionConfiguration(ObserveTestConfiguration.MODEL_VERSION)
+@DatabaseLoginConfiguration
+@DatabasePasswordConfiguration(ObserveTestConfiguration.H2_PASSWORD)
+(a)DatabaseNameConfiguration(DatabaseName.data)
+@DatabaseNameConfiguration(value = DatabaseName.data, classifier = DatabaseClassifier.CENTRAL)
+@DatabaseVersionConfiguration(value = ObserveTestConfiguration.MODEL_VERSION, classifier = DatabaseClassifier.CENTRAL)
public class UnidirectionalResultTest extends ServiceLocalTestSupportWrite<SynchronizeService> {
@ClassRule
- public static final LocalTestClassResource TOPIA_TEST_CLASS_RESOURCE_CENTRAL = new LocalTestClassResource(DatabaseClassifier.CENTRAL);
+ public static final LocalTestMethodResourceRead localTestMethodResourceCentral = new LocalTestMethodResourceRead(DatabaseClassifier.CENTRAL);
private static final Logger log = LogManager.getLogger(UnidirectionalResultTest.class);
- @Rule
- public final LocalTestMethodResourceWrite localTestMethodResourceCentral = new LocalTestMethodResourceWrite(TOPIA_TEST_CLASS_RESOURCE_CENTRAL);
-
private DifferentialModelBuilder diffsEngine;
private SynchronizeEngine synchronizeEngine;
- private SynchronizeService localSynchronizeService;
public UnidirectionalResultTest() {
super(SynchronizeService.class);
@@ -85,16 +87,14 @@ public class UnidirectionalResultTest extends ServiceLocalTestSupportWrite<Synch
@Before
public void setUp() throws Exception {
super.setUp();
- localSynchronizeService = localTestMethodResource.newService(SynchronizeService.class);
- diffsEngine = ReferentialService.createDifferentialModelBuilder(ReferentialLocale.FR.getLocale(), localTestMethodResource.newService(ReferentialService.class), localTestMethodResourceCentral.newService(ReferentialService.class));
- synchronizeEngine = new SynchronizeEngine(localTestMethodResource.getTestDirectory().toPath(), localSynchronizeService, localTestMethodResourceCentral.newService(SynchronizeService.class));
+ ReferentialService service = localTestMethodResource.newService(ReferentialService.class);
+ diffsEngine = ReferentialService.createDifferentialModelBuilder(ReferentialLocale.FR.getLocale(), service::differentialMetaModel, service, localTestMethodResourceCentral.newService(ReferentialService.class));
+ synchronizeEngine = new SynchronizeEngine(localTestMethodResource.getTestDirectory().toPath(), this.service, localTestMethodResourceCentral.newService(SynchronizeService.class));
}
@DatabaseNameConfiguration(DatabaseName.empty)
@CopyDatabaseConfiguration
- @DatabaseNameConfiguration(value = DatabaseName.data, classifier = DatabaseClassifier.CENTRAL)
- @DatabaseVersionConfiguration(value = ObserveTestConfiguration.MODEL_VERSION, classifier = DatabaseClassifier.CENTRAL)
@Test
@Ignore // We inject some species with data... Can't continue to migrate data from empty!!!
public void testSynchronizeFromEmptyDatabase() {
@@ -104,7 +104,7 @@ public class UnidirectionalResultTest extends ServiceLocalTestSupportWrite<Synch
UnidirectionalSynchronizeEngine referentialSynchronizeEngine = new UnidirectionalSynchronizeEngine(diffsEngine, synchronizeEngine);
UnidirectionalSynchronizeContext unidirectionalSynchronizeContext = referentialSynchronizeEngine.prepareContext(progressionModel);
UnidirectionalResult result = referentialSynchronizeEngine.prepareResult(unidirectionalSynchronizeContext, null);
- unidirectionalSynchronizeContext.finish(localSynchronizeService);
+ unidirectionalSynchronizeContext.finish(service);
Assert.assertNotNull(result);
Set<Class<? extends ReferentialDto>> referentialNames = result.getReferentialNames();
@@ -132,8 +132,6 @@ public class UnidirectionalResultTest extends ServiceLocalTestSupportWrite<Synch
@DatabaseNameConfiguration(DatabaseName.data)
@CopyDatabaseConfiguration
- @DatabaseNameConfiguration(value = DatabaseName.data, classifier = DatabaseClassifier.CENTRAL)
- @DatabaseVersionConfiguration(value = ObserveTestConfiguration.MODEL_VERSION, classifier = DatabaseClassifier.CENTRAL)
@Test
public void testSynchronizeWithNoChange() {
ProgressionModel progressionModel = new ProgressionModel();
@@ -142,7 +140,7 @@ public class UnidirectionalResultTest extends ServiceLocalTestSupportWrite<Synch
UnidirectionalSynchronizeEngine referentialSynchronizeEngine = new UnidirectionalSynchronizeEngine(diffsEngine, synchronizeEngine);
UnidirectionalSynchronizeContext unidirectionalSynchronizeContext = referentialSynchronizeEngine.prepareContext(progressionModel);
UnidirectionalResult result = referentialSynchronizeEngine.prepareResult(unidirectionalSynchronizeContext, null);
- unidirectionalSynchronizeContext.finish(localSynchronizeService);
+ unidirectionalSynchronizeContext.finish(service);
Assert.assertNotNull(result);
Set<Class<? extends ReferentialDto>> referentialNames = result.getReferentialNames();
@@ -162,7 +160,6 @@ public class UnidirectionalResultTest extends ServiceLocalTestSupportWrite<Synch
Assert.assertTrue(result.getReferentialReverted(dtoType).isEmpty());
Assert.assertTrue(result.getReferentialAdded(dtoType).isEmpty());
}
-
}
// // Il faut reecrire ce test en clonant une base, y fiasant des modif puis test
=====================================
pom.xml
=====================================
@@ -121,6 +121,7 @@
</site>
</distributionManagement>
<properties>
+ <lib.version.java4all.topia>1.70-SNAPSHOT</lib.version.java4all.topia>
<organizationId>ultreiaio</organizationId>
<projectId>ird-observe</projectId>
<stageId>frirdobserve</stageId>
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/6c46bff44a9b8590ff9dcae5…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/6c46bff44a9b8590ff9dcae5…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop-7.x] Boutons de cadrage sur la carte 7.6.11 - Closes #2152
by Tony CHEMIT (@tchemit) 12 Mar '22
by Tony CHEMIT (@tchemit) 12 Mar '22
12 Mar '22
Tony CHEMIT pushed to branch develop-7.x at ultreiaio / ird-observe
Commits:
886d303e by Tony Chemit at 2022-03-12T11:40:53+01:00
Boutons de cadrage sur la carte 7.6.11 - Closes #2152
- - - - -
3 changed files:
- client-core/src/main/java/fr/ird/observe/client/ui/content/ContentUIInitializer.java
- client-core/src/main/java/fr/ird/observe/client/ui/content/data/longline/TripLonglineUI.jcss
- client-core/src/main/java/fr/ird/observe/client/ui/content/data/seine/TripSeineUI.jcss
Changes:
=====================================
client-core/src/main/java/fr/ird/observe/client/ui/content/ContentUIInitializer.java
=====================================
@@ -40,6 +40,7 @@ import fr.ird.observe.client.ui.util.BooleanEditor;
import fr.ird.observe.client.ui.util.UIHelper;
import fr.ird.observe.client.ui.util.time.UnlimitedTimeEditor;
import fr.ird.observe.client.ui.util.tripMap.ObserveMapPane;
+import fr.ird.observe.client.ui.util.tripMap.TripMapUI;
import fr.ird.observe.client.validation.ObserveSwingValidator;
import fr.ird.observe.dto.I18nEnumHelper;
import fr.ird.observe.dto.IdDto;
@@ -633,16 +634,15 @@ public class ContentUIInitializer<E extends IdDto, UI extends ContentUI<E, UI>>
protected void init(JComponent editor, Set<String> notBlockingComponents) {
final Boolean propertyName = (Boolean) editor.getClientProperty(CLIENT_PROPERTY_NOT_BLOCKING);
if (propertyName != null) {
-
if (editor instanceof FilterableDoubleList) {
-
notBlockingComponents.add("universeListPane");
notBlockingComponents.add("selectedListPane");
-
+ } else if (editor instanceof TripMapUI) {
+ notBlockingComponents.add("zoomIt");
+ notBlockingComponents.add("zoomOut");
+ notBlockingComponents.add("zoomPlus");
} else {
-
notBlockingComponents.add(editor.getName());
-
}
}
}
=====================================
client-core/src/main/java/fr/ird/observe/client/ui/content/data/longline/TripLonglineUI.jcss
=====================================
@@ -102,6 +102,10 @@
enabled:{!model.isCreatingMode()}
}
+#tripMap {
+ _notBlocking: true;
+}
+
#reopen {
_toolTipText:{t("observe.common.TripDto.action.reopen.tip")};
}
=====================================
client-core/src/main/java/fr/ird/observe/client/ui/content/data/seine/TripSeineUI.jcss
=====================================
@@ -147,6 +147,10 @@ NumberEditor {
enabled:{!model.isCreatingMode()}
}
+#tripMap {
+ _notBlocking: true;
+}
+
#reopen {
_toolTipText:{t("observe.common.TripDto.action.reopen.tip")};
}
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/886d303e90ebe10ab2fa65827…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/886d303e90ebe10ab2fa65827…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop-7.x] Mise à jour de dépendences - See #2209
by Tony CHEMIT (@tchemit) 12 Mar '22
by Tony CHEMIT (@tchemit) 12 Mar '22
12 Mar '22
Tony CHEMIT pushed to branch develop-7.x at ultreiaio / ird-observe
Commits:
857e48b7 by Tony Chemit at 2022-03-12T11:24:04+01:00
Mise à jour de dépendences - See #2209
* nuiton.topia → 3.8.1
* nuiton.version → 1.0
* log4j2 → 2.17.2
* slf4j → 1.7.31
* javassist → 3.28.0-GA
* mockito → 4.4.0
* google.guava → 31.1-jre
* google.gson → 2.9.0
* google.auto-service → 1.0.1
* postgresql → 42.3.3
* freemarker → 2.3.31
* jboss-logging → 3.4.3.Final
* hibernate → 5.6.5.Final
* hikariCP → 4.0.3
* bytebuddy → 1.12.8
* junit → 4.13.2
* checker-qual → 3.21.3
* httpmime → 4.5.13
* httpcore → 4.4.15
* httpclient → 4.5.13
* commons-lang3 → 3.12.0
* commons-validator → 1.7
* commons-io → 2.11.0
- - - - -
1 changed file:
- pom.xml
Changes:
=====================================
pom.xml
=====================================
@@ -170,17 +170,24 @@
<lib.version.java4all.topia>1.1.17</lib.version.java4all.topia>
<lib.version.nuiton.utils>3.0</lib.version.nuiton.utils>
<lib.version.java4all.jaxx>3.0-alpha-75</lib.version.java4all.jaxx>
-
- <lib.version.log4j2>2.17.1</lib.version.log4j2>
-<!-- <lib.version.hibernate>5.6.3.Final</lib.version.hibernate>-->
+ <lib.version.hibernate>5.6.5.Final</lib.version.hibernate>
+ <lib.version.hikariCP>4.0.3</lib.version.hikariCP>
<!-- <lib.version.hikariCP>5.0.0</lib.version.hikariCP>-->
-<!-- <lib.version.bytebuddy>1.12.2</lib.version.bytebuddy>-->
- <lib.version.postgresql>42.3.1</lib.version.postgresql>
+ <lib.version.bytebuddy>1.12.8</lib.version.bytebuddy>
+ <lib.version.nuiton.topia>3.8.1</lib.version.nuiton.topia>
+ <lib.version.nuiton.version>1.0</lib.version.nuiton.version>
+ <lib.version.log4j2>2.17.2</lib.version.log4j2>
+ <lib.version.slf4j>1.7.31</lib.version.slf4j>
+ <lib.version.javassist>3.28.0-GA</lib.version.javassist>
+ <lib.version.mockito>4.4.0</lib.version.mockito>
+ <lib.version.google.guava>31.1-jre</lib.version.google.guava>
+ <lib.version.google.gson>2.9.0</lib.version.google.gson>
+ <lib.version.google.auto-service>1.0.1</lib.version.google.auto-service>
+ <lib.version.postgresql>42.3.3</lib.version.postgresql>
<lib.version.commons-io>2.11.0</lib.version.commons-io>
<lib.version.commons-lang3>3.12.0</lib.version.commons-lang3>
- <lib.version.checker-qual>3.20.0</lib.version.checker-qual>
+ <lib.version.checker-qual>3.21.3</lib.version.checker-qual>
<lib.version.sisu.plexus>0.3.5</lib.version.sisu.plexus>
-
<!-- license header configuration -->
<license.licenseName>gpl_v3</license.licenseName>
<license.organizationName>IRD, Code Lutin, Ultreia.io</license.organizationName>
@@ -221,6 +228,52 @@
<dependencyManagement>
<dependencies>
+ <dependency>
+ <groupId>commons-validator</groupId>
+ <artifactId>commons-validator</artifactId>
+ <version>1.7</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-io</groupId>
+ <artifactId>commons-io</artifactId>
+ <version>2.11.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-lang3</artifactId>
+ <version>3.12.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.httpcomponents</groupId>
+ <artifactId>httpclient</artifactId>
+ <version>4.5.13</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.httpcomponents</groupId>
+ <artifactId>httpcore</artifactId>
+ <version>4.4.15</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.httpcomponents</groupId>
+ <artifactId>httpmime</artifactId>
+ <version>4.5.13</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.logging</groupId>
+ <artifactId>jboss-logging</artifactId>
+ <version>3.4.3.Final</version>
+ </dependency>
+ <dependency>
+ <groupId>org.freemarker</groupId>
+ <artifactId>freemarker</artifactId>
+ <version>2.3.31</version>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.13.2</version>
+ <scope>test</scope>
+ </dependency>
<dependency>
<groupId>org.eclipse.sisu</groupId>
<artifactId>org.eclipse.sisu.inject</artifactId>
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/857e48b79f3766ca593370fbd…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/857e48b79f3766ca593370fbd…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop-7.x] Petit défaut de mise en page sur 7.6.11 - Closes #2200
by Tony CHEMIT (@tchemit) 12 Mar '22
by Tony CHEMIT (@tchemit) 12 Mar '22
12 Mar '22
Tony CHEMIT pushed to branch develop-7.x at ultreiaio / ird-observe
Commits:
186510ca by Tony Chemit at 2022-03-12T10:12:45+01:00
Petit défaut de mise en page sur 7.6.11 - Closes #2200
- - - - -
5 changed files:
- client-core/src/main/i18n/getters/jaxx.getter
- client-core/src/main/java/fr/ird/observe/client/ui/content/data/longline/SetLonglineUI.jaxx
- observe-i18n/src/main/i18n/translations/observe_en_GB.properties
- observe-i18n/src/main/i18n/translations/observe_es_ES.properties
- observe-i18n/src/main/i18n/translations/observe_fr_FR.properties
Changes:
=====================================
client-core/src/main/i18n/getters/jaxx.getter
=====================================
@@ -505,6 +505,7 @@ observe.common.SetLonglineDto.settingStartTimeStamp
observe.common.SetLonglineDto.settingTab
observe.common.SetLonglineDto.settingVesselSpeed
observe.common.SetLonglineDto.shooterSpeed
+observe.common.SetLonglineDto.shooterUsed
observe.common.SetLonglineDto.snapWeight
observe.common.SetLonglineDto.swivelWeight
observe.common.SetLonglineDto.timeBetweenHooks
=====================================
client-core/src/main/java/fr/ird/observe/client/ui/content/data/longline/SetLonglineUI.jaxx
=====================================
@@ -194,7 +194,7 @@
<!-- shooter speed -->
<row>
<cell anchor="east">
- <JCheckBox id='shooterUsed'/>
+ <JCheckBox id='shooterUsed' styleClass="i18n"/>
</cell>
<cell>
<JLabel id='shooterSpeedLabel'/>
=====================================
observe-i18n/src/main/i18n/translations/observe_en_GB.properties
=====================================
@@ -1273,6 +1273,7 @@ observe.common.SetLonglineDto.settingStartTimeStamp=Start timestamp
observe.common.SetLonglineDto.settingTab=Setting
observe.common.SetLonglineDto.settingVesselSpeed=Vessel speed (kts)
observe.common.SetLonglineDto.shooterSpeed=Shooter speed (kts)
+observe.common.SetLonglineDto.shooterUsed=Shooter used?
observe.common.SetLonglineDto.snapWeight=Snap weight (kg)
observe.common.SetLonglineDto.swivelWeight=swivel weight (kg)
observe.common.SetLonglineDto.timeBetweenHooks=time between hooks
=====================================
observe-i18n/src/main/i18n/translations/observe_es_ES.properties
=====================================
@@ -1273,6 +1273,7 @@ observe.common.SetLonglineDto.settingStartTimeStamp=FechaHora de inicio de calad
observe.common.SetLonglineDto.settingTab=Calada
observe.common.SetLonglineDto.settingVesselSpeed=Velocidad del barco (nd)
observe.common.SetLonglineDto.shooterSpeed=Velocidad virador (nd)
+observe.common.SetLonglineDto.shooterUsed=Shooter used?
observe.common.SetLonglineDto.snapWeight=Peso mosquetón (kg)
observe.common.SetLonglineDto.swivelWeight=Peso destorcedor (kg)
observe.common.SetLonglineDto.timeBetweenHooks=Tiempo entre anzuelos (s)
=====================================
observe-i18n/src/main/i18n/translations/observe_fr_FR.properties
=====================================
@@ -1273,6 +1273,7 @@ observe.common.SetLonglineDto.settingStartTimeStamp=Horodatage début
observe.common.SetLonglineDto.settingTab=Filage
observe.common.SetLonglineDto.settingVesselSpeed=Vitesse bateau (nd)
observe.common.SetLonglineDto.shooterSpeed=Vitesse shooter (nd)
+observe.common.SetLonglineDto.shooterUsed=Utilisation shooter ?
observe.common.SetLonglineDto.snapWeight=Poids snap (kg)
observe.common.SetLonglineDto.swivelWeight=Poids de l'émerillon (kg)
observe.common.SetLonglineDto.timeBetweenHooks=Temps entre hameçons (s)
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/186510cae63449cad5fb14063…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/186510cae63449cad5fb14063…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop-7.x] Référentiel / Systèmes Observés / 'Voir toutes les utilisations de ce...
by Tony CHEMIT (@tchemit) 12 Mar '22
by Tony CHEMIT (@tchemit) 12 Mar '22
12 Mar '22
Tony CHEMIT pushed to branch develop-7.x at ultreiaio / ird-observe
Commits:
75d64c9f by Tony Chemit at 2022-03-12T09:56:41+01:00
Référentiel / Systèmes Observés / 'Voir toutes les utilisations de ce référentiel' ne fonctionne plus - Closes #2177
- - - - -
2 changed files:
- common-dto/src/main/java/fr/ird/observe/dto/IdHelper.java
- services-local/src/main/java/fr/ird/observe/services/local/service/referential/ReferentialServiceLocal.java
Changes:
=====================================
common-dto/src/main/java/fr/ird/observe/dto/IdHelper.java
=====================================
@@ -77,6 +77,10 @@ public class IdHelper {
return DTO_REFERENTIAL_LONGLINE_PACKAGE.startsWith(packageName);
}
+ public static boolean isEntityData(Class<?> type) {
+ return type.getPackage().getName().startsWith(ENTITY_DATA_PACKAGE);
+ }
+
public static boolean isData(Class type) {
return isDataFromPackageName(type.getPackage().getName());
}
=====================================
services-local/src/main/java/fr/ird/observe/services/local/service/referential/ReferentialServiceLocal.java
=====================================
@@ -95,7 +95,6 @@ import java.util.Objects;
import java.util.Optional;
import java.util.Set;
import java.util.function.Predicate;
-import java.util.stream.Collector;
import java.util.stream.Collectors;
/**
@@ -268,7 +267,7 @@ public class ReferentialServiceLocal extends ObserveServiceLocal implements Refe
ObserveReferentialEntity entity = loadEntity(spi.toDtoType(), bean.getId());
Map<Class<? extends TopiaEntity>, List<? extends TopiaEntity>> compositions = serviceContext.getTopiaApplicationContext().findReverseCompositions(getTopiaPersistenceContext(), entity, e -> true);
- Map<Class<? extends TopiaEntity>, List<? extends TopiaEntity>> associations = serviceContext.getTopiaApplicationContext().findReverseAssociations(getTopiaPersistenceContext(), entity, IdHelper::isData);
+ Map<Class<? extends TopiaEntity>, List<? extends TopiaEntity>> associations = serviceContext.getTopiaApplicationContext().findReverseAssociations(getTopiaPersistenceContext(), entity, IdHelper::isEntityData);
ImmutableSetDtoMap.Builder<DtoReference> result = ImmutableSetDtoMap.builder();
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/75d64c9fbc75ca6d978a2a1df…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/75d64c9fbc75ca6d978a2a1df…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop] 4 commits: Amélioration des validateurs sur collection - See ultreiaio/ird-observe#2207
by Tony CHEMIT (@tchemit) 12 Mar '22
by Tony CHEMIT (@tchemit) 12 Mar '22
12 Mar '22
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
45f42f56 by Tony Chemit at 2022-03-11T23:03:40+01:00
Amélioration des validateurs sur collection - See ultreiaio/ird-observe#2207
- - - - -
329e1169 by Tony Chemit at 2022-03-12T01:19:38+01:00
Nettoyage des validateurs utilisés et remplacement de urlValidator par checkUrl (qui est skipable)
- - - - -
19123fc5 by Tony Chemit at 2022-03-12T01:19:38+01:00
Libellé d'affichage des marées - See ultreiaio/ird-observe#2186
- - - - -
6c46bff4 by Tony Chemit at 2022-03-12T01:22:10+01:00
update pom
- - - - -
30 changed files:
- core/api/dto/src/main/i18n/getters/java.getter
- core/api/dto/src/main/java/fr/ird/observe/dto/data/ll/common/TripCommon.java
- core/api/dto/src/main/java/fr/ird/observe/dto/data/ps/common/TripCommon.java
- core/api/dto/src/main/java/fr/ird/observe/dto/data/ps/logbook/ActivityStubDto.java
- core/api/dto/src/main/java/fr/ird/observe/dto/data/ps/observation/ActivityStubDto.java
- − core/api/dto/src/main/java/fr/ird/observe/spi/validation/validators/OpenableDtoFieldValidator.java
- + core/api/dto/src/main/java/fr/ird/observe/spi/validation/validators/ll/common/TripCheckEndDate.java
- + core/api/dto/src/main/java/fr/ird/observe/spi/validation/validators/ll/common/TripCheckStartDate.java
- core/api/dto/src/main/java/fr/ird/observe/spi/validation/validators/SampleLonglineLogbookSpeciesDtoValidator.java → core/api/dto/src/main/java/fr/ird/observe/spi/validation/validators/ll/logbook/SampleCheckPartSpecies.java
- core/api/dto/src/main/java/fr/ird/observe/spi/validation/validators/SetLonglineLogbookUniqueHomeIdDtoValidator.java → core/api/dto/src/main/java/fr/ird/observe/spi/validation/validators/ll/logbook/SetCheckUniqueHomeId.java
- core/api/dto/src/main/java/fr/ird/observe/spi/validation/validators/SetLonglineLogbookUniqueNumberDtoValidator.java → core/api/dto/src/main/java/fr/ird/observe/spi/validation/validators/ll/logbook/SetCheckUniqueNumber.java
- core/api/dto/src/main/java/fr/ird/observe/spi/validation/validators/SetLonglineObsUniqueHomeIdDtoValidator.java → core/api/dto/src/main/java/fr/ird/observe/spi/validation/validators/ll/observation/SetCheckUniqueHomeId.java
- core/api/dto/src/main/java/fr/ird/observe/spi/validation/validators/SetLonglineObsUniqueNumberDtoValidator.java → core/api/dto/src/main/java/fr/ird/observe/spi/validation/validators/ll/observation/SetCheckUniqueNumber.java
- + core/api/dto/src/main/java/fr/ird/observe/spi/validation/validators/ps/common/TripCheckEndDate.java
- + core/api/dto/src/main/java/fr/ird/observe/spi/validation/validators/ps/common/TripCheckRouteObsDate.java
- + core/api/dto/src/main/java/fr/ird/observe/spi/validation/validators/ps/common/TripCheckRouteObsLogValues.java
- + core/api/dto/src/main/java/fr/ird/observe/spi/validation/validators/ps/common/TripCheckStartDate.java
- core/api/dto/src/main/java/fr/ird/observe/spi/validation/validators/ps/logbook/ActivityTimeFieldDtoValidator.java → core/api/dto/src/main/java/fr/ird/observe/spi/validation/validators/ps/logbook/ActivityCheckTime.java
- + core/api/dto/src/main/java/fr/ird/observe/spi/validation/validators/ps/logbook/RouteCheckActivityQuadrant.java
- core/api/dto/src/main/java/fr/ird/observe/spi/validation/validators/ps/logbook/RouteActivityTimeFieldDtoValidator.java → core/api/dto/src/main/java/fr/ird/observe/spi/validation/validators/ps/logbook/RouteCheckActivityTime.java
- core/api/dto/src/main/java/fr/ird/observe/spi/validation/validators/ActivitySeineObservedSystemValidator.java → core/api/dto/src/main/java/fr/ird/observe/spi/validation/validators/ps/observation/ActivityCheckObservedSystem.java
- core/api/dto/src/main/java/fr/ird/observe/spi/validation/validators/ActivitySimpleSpeedDtoValidator.java → core/api/dto/src/main/java/fr/ird/observe/spi/validation/validators/ps/observation/ActivityCheckSpeed.java
- core/api/dto/src/main/java/fr/ird/observe/spi/validation/validators/NonTargetCatchObservedSystemValidator.java → core/api/dto/src/main/java/fr/ird/observe/spi/validation/validators/ps/observation/CatchCheckObservedSystem.java
- core/api/dto/src/main/java/fr/ird/observe/spi/validation/validators/ActivityEndOfSearchingExistsDtoValidator.java → core/api/dto/src/main/java/fr/ird/observe/spi/validation/validators/ps/observation/CheckActivityEndOfSearchingExists.java
- + core/api/dto/src/main/java/fr/ird/observe/spi/validation/validators/ps/observation/RouteCheckActivityQuadrant.java
- core/api/dto/src/main/java/fr/ird/observe/spi/validation/validators/ActivitySpeedDtoValidator.java → core/api/dto/src/main/java/fr/ird/observe/spi/validation/validators/ps/observation/RouteCheckActivitySpeed.java
- + core/api/dto/src/main/java/fr/ird/observe/spi/validation/validators/ps/observation/RouteCheckActivityTime.java
- + core/api/dto/src/main/java/fr/ird/observe/spi/validation/validators/ps/observation/RouteCheckStartLogValue.java
- core/api/dto/src/test/resources/fixtures/api.properties
- core/api/validation/pom.xml
The diff was not included because it is too large.
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/8da5c70503a46269b4673e64…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/8da5c70503a46269b4673e64…
You're receiving this email because of your account on gitlab.com.
1
0