branch feature/7677 updated (11bed76 -> 15cbafa)
This is an automated email from the git hooks/post-receive script. New change to branch feature/7677 in repository observe. See http://git.codelutin.com/observe.git from 11bed76 migration de l'écran d'export (refs #7677) new 15cbafa migration de l'écran d'export des données observateur (refs #7677) 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 15cbafa073e3255bbd10e5e069817bdb28b8b7c2 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Fri Nov 6 08:26:09 2015 +0100 migration de l'écran d'export des données observateur (refs #7677) Summary of changes: .../java/fr/ird/observe/ui/DecoratorService.java | 7 ++++ .../fr/ird/observe/ui/admin/AdminTabUIHandler.java | 44 ++++++++++++++++------ .../java/fr/ird/observe/ui/admin/AdminUIModel.java | 5 ++- .../observe/ui/admin/export/ExportUIHandler.java | 4 +- .../controller/v1/DataSourceServiceController.java | 6 +++ .../services/service/DataSourceService.java | 7 ++++ .../fr/ird/observe/services/dto/ImportDataDto.java | 38 +++++++++++++++++++ .../services/service/DataSourceServiceTopia.java | 18 +++++++++ 8 files changed, 113 insertions(+), 16 deletions(-) create mode 100644 observe-services-model/src/main/java/fr/ird/observe/services/dto/ImportDataDto.java -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/7677 in repository observe. See http://git.codelutin.com/observe.git commit 15cbafa073e3255bbd10e5e069817bdb28b8b7c2 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Fri Nov 6 08:26:09 2015 +0100 migration de l'écran d'export des données observateur (refs #7677) --- .../java/fr/ird/observe/ui/DecoratorService.java | 7 ++++ .../fr/ird/observe/ui/admin/AdminTabUIHandler.java | 44 ++++++++++++++++------ .../java/fr/ird/observe/ui/admin/AdminUIModel.java | 5 ++- .../observe/ui/admin/export/ExportUIHandler.java | 4 +- .../controller/v1/DataSourceServiceController.java | 6 +++ .../services/service/DataSourceService.java | 7 ++++ .../fr/ird/observe/services/dto/ImportDataDto.java | 38 +++++++++++++++++++ .../services/service/DataSourceServiceTopia.java | 18 +++++++++ 8 files changed, 113 insertions(+), 16 deletions(-) diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/DecoratorService.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/DecoratorService.java index 279a9f0..dec2413 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/DecoratorService.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/DecoratorService.java @@ -158,6 +158,8 @@ public class DecoratorService extends DecoratorProvider { public static final String OBSERVE_COMMON_PREFIX = "observe.common."; + public static final String TRIP_CONTEXT = "Trip"; + /** la locale du referentiel. */ protected ReferentialLocale referentialLocale; @@ -541,6 +543,11 @@ public class DecoratorService extends DecoratorProvider { registerDecorator(TripLonglineDto.class.getSimpleName(), new ReferenceDecorator("${startDate}$td/%1$tm/%1$tY##${endDate}$td/%2$tm/%2$tY##${vessel}$s##${observer}$s")); + // Trip commun decorator + registerDecorator(TRIP_CONTEXT, + new ReferenceDecorator("${startDate}$td/%1$tm/%1$tY##${endDate}$td/%2$tm/%2$tY##${vessel}$s##${observer}$s")); + + String oldCode = l(locale, "observe.common.oldCode3L"); // Species decorator registerDecorator(new SpeciesDecorator( oldCode)); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/AdminTabUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/AdminTabUIHandler.java index 6c7afed..53dc106 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/AdminTabUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/AdminTabUIHandler.java @@ -21,11 +21,15 @@ */ package fr.ird.observe.ui.admin; +import com.google.common.collect.ImmutableSet; import fr.ird.observe.ObserveRunner; import fr.ird.observe.ObserveSwingApplicationContext; import fr.ird.observe.business.SendMessageAble; import fr.ird.observe.db.ObserveSwingDataSource; +import fr.ird.observe.services.dto.ImportDataDto; import fr.ird.observe.services.service.BabModelVersionException; +import fr.ird.observe.services.service.DataSourceDumpProducerService; +import fr.ird.observe.services.service.DataSourceService; import fr.ird.observe.services.service.DatabaseConnexionNotAuthorizedException; import fr.ird.observe.services.service.DatabaseNotFoundException; import fr.ird.observe.ui.DecoratorService; @@ -115,18 +119,34 @@ public class AdminTabUIHandler implements SendMessageAble { protected void replicateData(ObserveSwingDataSource source, ObserveSwingDataSource target, - String... tripIds) { - //FIXME -// ReplicationService service = getReplicationService(); -// if (tripIds == null || tripIds.length == 0) { -// -// // on replique toutes les données -// service.replicateAllData(source, target); -// } else { -// -// // on replique les données specifiees -// service.replicateData(source, target, tripIds); -// } + String... tripIds) throws DatabaseNotFoundException, BabModelVersionException, DatabaseConnexionNotAuthorizedException { + + if (tripIds != null && tripIds.length > 0) { + + openSource(source); + + DataSourceDumpProducerService dataSourceDumpProducerService = source.newService(DataSourceDumpProducerService.class); + + // on replique les données specifiees + ImmutableSet<String> dataIds = ImmutableSet.<String>copyOf(tripIds); + + byte[] dataDump = dataSourceDumpProducerService.getDataDump(dataIds); + + source.close(); + + + openSource(target); + + DataSourceService dataSourceService = target.newService(DataSourceService.class); + + ImportDataDto importData = new ImportDataDto(dataDump, dataIds); + + dataSourceService.importData(importData); + + target.close(); + + } + } protected void replicateReferentiel(ObserveSwingDataSource source, diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/AdminUIModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/AdminUIModel.java index fd2d118..e9f8c58 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/AdminUIModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/AdminUIModel.java @@ -1197,8 +1197,9 @@ public class AdminUIModel extends WizardExtModel<AdminStep> { break; case SYNCHRONIZE: case IMPORT_GPS: - validate &= getStepState(s) == - WizardState.SUCCESSED; + //FIXME + //validate &= getStepState(s) == + // WizardState.SUCCESSED; break; case SAVE_LOCAL: // valide si l'action a ete executee avec success diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/export/ExportUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/export/ExportUIHandler.java index 4d3798f..5ce47f9 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/export/ExportUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/export/ExportUIHandler.java @@ -126,8 +126,8 @@ public class ExportUIHandler extends AdminTabUIHandler { n("observe.synchro.table.exportData.exist.label.tip")); UIHelper.setTableColumnRenderer(table4, 0, UIHelper.newBooleanTableCellRenderer(renderer5)); - UIHelper.setTableColumnRenderer(table4, 1, UIHelper.newDecorateTableCellRenderer(renderer5, ProgramDto.class)); - UIHelper.setTableColumnRenderer(table4, 2, UIHelper.newDecorateTableCellRenderer(renderer5, TripSeineDto.class)); + UIHelper.setTableColumnRenderer(table4, 1, UIHelper.newDecorateTableCellRenderer(renderer5, ReferenceDto.class, ProgramDto.class.getSimpleName())); + UIHelper.setTableColumnRenderer(table4, 2, UIHelper.newDecorateTableCellRenderer(renderer5, ReferenceDto.class, DecoratorService.TRIP_CONTEXT)); UIHelper.setTableColumnRenderer(table4, 3, UIHelper.newBooleanTableCellRenderer(renderer5)); UIHelper.setTableColumnEditor(table4, 0, MyDefaultCellEditor.newBooleanEditor(false)); diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/DataSourceServiceController.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/DataSourceServiceController.java index bd05431..12af1be 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/DataSourceServiceController.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/DataSourceServiceController.java @@ -35,6 +35,7 @@ import fr.ird.observe.services.configuration.ObserveDataSourceInformation; import fr.ird.observe.services.dto.DataSourceCreateConfigurationDto; import fr.ird.observe.services.dto.DataSourceCreateWithNoReferentialImportException; import fr.ird.observe.services.dto.IdDto; +import fr.ird.observe.services.dto.ImportDataDto; import fr.ird.observe.services.dto.IncompatibleDataSourceCreateConfigurationException; import fr.ird.observe.services.dto.ObserveDbUserDto; import fr.ird.observe.services.service.BabModelVersionException; @@ -136,6 +137,11 @@ public class DataSourceServiceController extends ObserveServiceControllerSupport getAuthenticatedService().migrateData(); } + @Override + public void importData(ImportDataDto importData) { + getAuthenticatedService().importData(importData); + } + protected ObserveDataSourceConfiguration getTopiaDataSourceConfiguration(ObserveDataSourceConfiguration dataSourceConfigurationFromRequest) { Preconditions.checkArgument(dataSourceConfigurationFromRequest instanceof ObserveDataSourceConfigurationRest); diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/DataSourceService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/DataSourceService.java index 9bb7a62..e079f67 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/DataSourceService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/DataSourceService.java @@ -29,9 +29,11 @@ import fr.ird.observe.services.configuration.ObserveDataSourceInformation; import fr.ird.observe.services.dto.DataSourceCreateConfigurationDto; import fr.ird.observe.services.dto.DataSourceCreateWithNoReferentialImportException; import fr.ird.observe.services.dto.IdDto; +import fr.ird.observe.services.dto.ImportDataDto; import fr.ird.observe.services.dto.IncompatibleDataSourceCreateConfigurationException; import fr.ird.observe.services.dto.ObserveDbUserDto; import fr.ird.observe.services.spi.NoDataAccess; +import fr.ird.observe.services.spi.PostRequest; import fr.ird.observe.services.spi.ReadDataPermission; import fr.ird.observe.services.spi.ReadReferentialPermission; import fr.ird.observe.services.spi.Write; @@ -80,4 +82,9 @@ public interface DataSourceService extends ObserveService { @NoDataAccess void migrateData(); + @WriteDataPermission + @Write + @PostRequest + void importData(ImportDataDto importData); + } diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/ImportDataDto.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/ImportDataDto.java new file mode 100644 index 0000000..8ef6084 --- /dev/null +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/ImportDataDto.java @@ -0,0 +1,38 @@ +package fr.ird.observe.services.dto; + +import com.google.common.collect.ImmutableSet; + +/** + * @author Sylvain Bavencoff - bavencoff@codelutin.com + */ +public class ImportDataDto implements ObserveDto { + + protected byte[] dumpData; + + protected ImmutableSet<String> importDataIds; + + public ImportDataDto() { + this(null, null); + } + + public ImportDataDto(byte[] dumpData, ImmutableSet<String> importDataIds) { + this.dumpData = dumpData; + this.importDataIds = importDataIds; + } + + public byte[] getDumpData() { + return dumpData; + } + + public ImmutableSet<String> getImportDataIds() { + return importDataIds; + } + + public void setDumpData(byte[] dumpData) { + this.dumpData = dumpData; + } + + public void setImportDataIds(ImmutableSet<String> importDataIds) { + this.importDataIds = importDataIds; + } +} diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/DataSourceServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/service/DataSourceServiceTopia.java index d32d557..d0e9e64 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/service/DataSourceServiceTopia.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/service/DataSourceServiceTopia.java @@ -43,6 +43,7 @@ import fr.ird.observe.services.configuration.ObserveDataSourceInformation; import fr.ird.observe.services.dto.DataSourceCreateConfigurationDto; import fr.ird.observe.services.dto.DataSourceCreateWithNoReferentialImportException; import fr.ird.observe.services.dto.IdDto; +import fr.ird.observe.services.dto.ImportDataDto; import fr.ird.observe.services.dto.IncompatibleDataSourceCreateConfigurationException; import fr.ird.observe.services.dto.ObserveDbUserDto; import org.apache.commons.logging.Log; @@ -380,6 +381,23 @@ public class DataSourceServiceTopia extends ObserveServiceTopia implements DataS } + @Override + public void importData(ImportDataDto importData) { + + // création d'une base temporaire pour y importer le référentiel et les données + ObserveDataSourceConfigurationTopiaH2 temporaryDataSourceConfiguration = createTemporaryDatabaseFromDump("ImportData", importData.getDumpData()); + ObserveTopiaApplicationContext temporaryTopiaApplicationContext = ObserveTopiaApplicationContextFactory.getOrCreateTopiaApplicationContext(temporaryDataSourceConfiguration); + + if (log.isInfoEnabled()) { + log.info("Import data."); + } + + // Réplication des données + ObserveTopiaApplicationContext topiaApplicationContext = serviceContext.getTopiaApplicationContext(); + replicateData(temporaryTopiaApplicationContext, topiaApplicationContext, importData.getImportDataIds()); + + } + protected void executeGzipSqlStatements(ObserveTopiaApplicationContext topiaApplicationContext, String temporaryFilePrefix, byte... content) { File temporaryDirectory = serviceContext.createTemporaryDirectory(temporaryFilePrefix); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
participants (1)
-
codelutin.com scm