branch develop updated (c38a9d9 -> 6097c21)
This is an automated email from the git hooks/post-receive script. New change to branch develop in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git from c38a9d9 Open temporary data source while backup new 6097c21 Ne pas fermer la source lors d'une création de base dans un cas particulier... The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit 6097c21d01aa0d93e579a50014bbc9bd5b092f62 Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Sep 5 13:32:37 2016 +0200 Ne pas fermer la source lors d'une création de base dans un cas particulier... Summary of changes: .../swing/ui/storage/StorageBackupUILauncher.java | 10 ++++++++-- .../dto/DataSourceCreateConfigurationDto.java | 10 ++++++++++ .../topia/service/DataSourceServiceTopia.java | 23 +++++++++++++++++----- 3 files changed, 36 insertions(+), 7 deletions(-) -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit 6097c21d01aa0d93e579a50014bbc9bd5b092f62 Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Sep 5 13:32:37 2016 +0200 Ne pas fermer la source lors d'une création de base dans un cas particulier... --- .../swing/ui/storage/StorageBackupUILauncher.java | 10 ++++++++-- .../dto/DataSourceCreateConfigurationDto.java | 10 ++++++++++ .../topia/service/DataSourceServiceTopia.java | 23 +++++++++++++++++----- 3 files changed, 36 insertions(+), 7 deletions(-) diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageBackupUILauncher.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageBackupUILauncher.java index f6e9109..3187d77 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageBackupUILauncher.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageBackupUILauncher.java @@ -27,6 +27,9 @@ import fr.ird.observe.application.swing.configuration.constants.DbMode; import fr.ird.observe.application.swing.db.ObserveSwingDataSource; import fr.ird.observe.application.swing.ui.storage.tabs.DataSelectionModel; import fr.ird.observe.services.dto.DataReference; +import fr.ird.observe.services.dto.DataSourceCreateConfigurationDto; +import fr.ird.observe.services.dto.DataSourceCreateWithNoReferentialImportException; +import fr.ird.observe.services.dto.IncompatibleDataSourceCreateConfigurationException; import fr.ird.observe.services.dto.referential.ProgramDto; import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.service.BabModelVersionException; @@ -133,8 +136,11 @@ public class StorageBackupUILauncher extends StorageUILauncher { sourceToBackup = ObserveSwingApplicationContext.get().getDataSourcesManager().newTemporaryH2Datasource("Backup-" + backupFile.getName()); + DataSourceCreateConfigurationDto createDto = new DataSourceCreateConfigurationDto(); + createDto.setLeaveOpenSource(true); + createDto.setImportReferentialDataSourceConfiguration(localSource.getConfiguration()); - sourceToBackup.open(); + sourceToBackup.create(createDto); TripManagementService tmpManagementService = sourceToBackup.newTripManagementService(); @@ -160,7 +166,7 @@ public class StorageBackupUILauncher extends StorageUILauncher { sourceToBackup.newDataSourceService().backup(backupFile); - } catch (DatabaseNotFoundException | DatabaseConnexionNotAuthorizedException | BabModelVersionException e) { + } catch (DatabaseNotFoundException | DatabaseConnexionNotAuthorizedException | BabModelVersionException | IncompatibleDataSourceCreateConfigurationException | DataSourceCreateWithNoReferentialImportException e) { throw new ObserveSwingTechnicalException(e); } finally { diff --git a/services-model/src/main/java/fr/ird/observe/services/dto/DataSourceCreateConfigurationDto.java b/services-model/src/main/java/fr/ird/observe/services/dto/DataSourceCreateConfigurationDto.java index 9933604..bcf0789 100644 --- a/services-model/src/main/java/fr/ird/observe/services/dto/DataSourceCreateConfigurationDto.java +++ b/services-model/src/main/java/fr/ird/observe/services/dto/DataSourceCreateConfigurationDto.java @@ -61,6 +61,8 @@ public class DataSourceCreateConfigurationDto extends AbstractObserveDto { */ protected boolean canCreateEmptyDatabase; + private boolean leaveOpenSource; + public boolean isCanCreateEmptyDatabase() { return canCreateEmptyDatabase; } @@ -81,6 +83,14 @@ public class DataSourceCreateConfigurationDto extends AbstractObserveDto { return optionalImportDataDataSourceConfiguration != null; } + public boolean isLeaveOpenSource() { + return leaveOpenSource; + } + + public void setLeaveOpenSource(boolean leaveOpenSource) { + this.leaveOpenSource = leaveOpenSource; + } + public byte[] getImportDatabase() { return optionalImportDatabase; } diff --git a/services-topia/src/main/java/fr/ird/observe/services/topia/service/DataSourceServiceTopia.java b/services-topia/src/main/java/fr/ird/observe/services/topia/service/DataSourceServiceTopia.java index d4d334d..cd5bdb2 100644 --- a/services-topia/src/main/java/fr/ird/observe/services/topia/service/DataSourceServiceTopia.java +++ b/services-topia/src/main/java/fr/ird/observe/services/topia/service/DataSourceServiceTopia.java @@ -294,15 +294,21 @@ public class DataSourceServiceTopia extends ObserveServiceTopia implements DataS byte[] referentialDump; - try (DataSourceService dataSourceService = serviceContext.newService(importDataSourceConfiguration, DataSourceService.class)) { + DataSourceService dataSourceService = serviceContext.newService(importDataSourceConfiguration, DataSourceService.class); + try { ObserveDataSourceConnection importDataSourceConnection = dataSourceService.open(importDataSourceConfiguration); SqlScriptProducerService dumpProducerService = serviceContext.newService(importDataSourceConnection, SqlScriptProducerService.class); referentialDump = dumpProducerService.produceAddSqlScript(request).getSqlCode(); - } + topiaApplicationContext.executeSqlStatements(referentialDump); + } finally { + + if (!dataSourceCreateConfiguration.isLeaveOpenSource()) { + dataSourceService.close(); + } - topiaApplicationContext.executeSqlStatements(referentialDump); + } referantialImported = true; @@ -340,14 +346,21 @@ public class DataSourceServiceTopia extends ObserveServiceTopia implements DataS byte[] dataDump; - try (DataSourceService dataSourceService = serviceContext.newService(importDataSourceConfiguration, DataSourceService.class)) { - ObserveDataSourceConnection importDataSourceConnection = dataSourceService.open(importDataSourceConfiguration); + DataSourceService dataSourceService = serviceContext.newService(importDataSourceConfiguration, DataSourceService.class); + try { + + ObserveDataSourceConnection importDataSourceConnection = dataSourceService.open(importDataSourceConfiguration); SqlScriptProducerService dumpProducerService = serviceContext.newService(importDataSourceConnection, SqlScriptProducerService.class); dataDump = dumpProducerService.produceAddSqlScript(request).getSqlCode(); + } finally { + if (!dataSourceCreateConfiguration.isLeaveOpenSource()) { + dataSourceService.close(); + } } + if (log.isInfoEnabled()) { log.info("Import data" + (request.isAddReferential() ? " and referential." : ".")); } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
participants (1)
-
codelutin.com scm