This is an automated email from the git hooks/post-receive script. New commit to branch feature/4304_synchro_marees in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit dfc2999fd18f2adde1bf2ddfc51ca19427e12f6d Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Aug 8 15:58:20 2016 +0200 Introduce delete request in SqlScriptProducerService --- .../java/fr/ird/observe/ui/admin/AdminUIModel.java | 1 + .../observe/ui/admin/save/SaveLocalUIHandler.java | 6 +- .../ird/observe/ui/storage/StorageUIHandler.java | 10 +-- .../fr/ird/observe/ui/storage/StorageUIModel.java | 6 +- .../v1/SqlScriptProducerServiceController.java | 11 ++- .../injector/SqlScriptProducerRequestInjector.java | 12 ++-- ...quest.java => AddSqlScriptProducerRequest.java} | 20 +++--- ...st.java => DeleteSqlScriptProducerRequest.java} | 50 ++++--------- .../services/service/SqlScriptProducerService.java | 4 +- .../services/service/DataSourceServiceTopia.java | 22 +++--- .../service/SqlScriptProducerServiceTopia.java | 84 +++++++++++++++++++++- .../actions/export/ReplicateTripServiceTopia.java | 6 +- .../services/service/MigrateTestsDatabases.java | 24 +++---- .../service/SqlScriptProducerServiceTopiaTest.java | 18 ++--- 14 files changed, 169 insertions(+), 105 deletions(-) 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 9776e7c..e6133bd 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 @@ -822,6 +822,7 @@ public class AdminUIModel extends WizardExtModel<AdminStep> { localSourceInformation = localSource.checkCanConnect(); } catch (Exception e) { + //FIXME ! il faut faire quelque chose dans ce cas précis, au moins avertir l'utilisateur if (log.isErrorEnabled()) { log.error("unable to find local source information", e); } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/save/SaveLocalUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/save/SaveLocalUIHandler.java index 8d3bd23..8762b78 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/save/SaveLocalUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/save/SaveLocalUIHandler.java @@ -22,7 +22,7 @@ package fr.ird.observe.ui.admin.save; import fr.ird.observe.db.ObserveSwingDataSource; -import fr.ird.observe.services.service.SqlScriptProducerRequest; +import fr.ird.observe.services.service.AddSqlScriptProducerRequest; import fr.ird.observe.services.service.SqlScriptProducerService; import fr.ird.observe.services.service.actions.synchro.UnidirectionalReferentialSynchronizeContext; import fr.ird.observe.services.service.actions.synchro.UnidirectionalReferentialSynchronizeEngine; @@ -155,8 +155,8 @@ public class SaveLocalUIHandler extends AdminTabUIHandler { File backupFile = stepModel.getBackupFile(); SqlScriptProducerService dumpService = source.newSqlScriptProducerService(); - SqlScriptProducerRequest request = SqlScriptProducerRequest.forH2().addAllData(); - byte[] dump = dumpService.produceSqlScript(request); + AddSqlScriptProducerRequest request = AddSqlScriptProducerRequest.forH2().addAllData(); + byte[] dump = dumpService.produceAddSqlScript(request); try (FileOutputStream outputStream = new FileOutputStream(backupFile)) { IOUtils.write(dump, outputStream); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/StorageUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/StorageUIHandler.java index 34a5147..c353459 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/StorageUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/StorageUIHandler.java @@ -44,7 +44,7 @@ import fr.ird.observe.services.configuration.ObserveDataSourceInformation; import fr.ird.observe.services.dto.DataReference; import fr.ird.observe.services.dto.DataSourceCreateConfigurationDto; import fr.ird.observe.services.dto.ObserveDbUserDto; -import fr.ird.observe.services.service.SqlScriptProducerRequest; +import fr.ird.observe.services.service.AddSqlScriptProducerRequest; import fr.ird.observe.services.service.SqlScriptProducerService; import fr.ird.observe.ui.ObserveMainUI; import fr.ird.observe.ui.UIHelper; @@ -602,8 +602,8 @@ public class StorageUIHandler { log.debug(dst); } - SqlScriptProducerRequest request = SqlScriptProducerRequest.forH2().addSchema().addReferential().addAllData(); - byte[] dataDump = dumpProducerService.produceSqlScript(request); + AddSqlScriptProducerRequest request = AddSqlScriptProducerRequest.forH2().addSchema().addReferential().addAllData(); + byte[] dataDump = dumpProducerService.produceAddSqlScript(request); try (FileOutputStream outputStream = new FileOutputStream(dst)) { @@ -655,8 +655,8 @@ public class StorageUIHandler { ImmutableSet<String> tripIds = ImmutableSet.copyOf(Iterables.transform(trips, DataReference.getIdFunction())); - SqlScriptProducerRequest request = SqlScriptProducerRequest.forH2().addSchema().addReferential().addDataIds(tripIds); - byte[] dump = dumpService.produceSqlScript(request); + AddSqlScriptProducerRequest request = AddSqlScriptProducerRequest.forH2().addSchema().addReferential().dataIdsToAdd(tripIds); + byte[] dump = dumpService.produceAddSqlScript(request); try (FileOutputStream fileOutputStream = new FileOutputStream(dst)) { diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/StorageUIModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/StorageUIModel.java index 89f63fe..67defd8 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/StorageUIModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/StorageUIModel.java @@ -44,11 +44,11 @@ import fr.ird.observe.services.security.UnknownObserveWebUserException; import fr.ird.observe.services.security.UnknownObserveWebUserForDatabaseException; import fr.ird.observe.services.security.UserLoginNotFoundException; import fr.ird.observe.services.security.UserPasswordNotFoundException; +import fr.ird.observe.services.service.AddSqlScriptProducerRequest; import fr.ird.observe.services.service.BabModelVersionException; import fr.ird.observe.services.service.DatabaseConnexionNotAuthorizedException; import fr.ird.observe.services.service.DatabaseNotFoundException; import fr.ird.observe.services.service.PingService; -import fr.ird.observe.services.service.SqlScriptProducerRequest; import fr.ird.observe.services.service.SqlScriptProducerService; import fr.ird.observe.ui.storage.tabs.DataSelectionModel; import fr.ird.observe.ui.storage.tabs.SecurityModel; @@ -1597,8 +1597,8 @@ public class StorageUIModel extends WizardModel<StorageStep> { SqlScriptProducerService dumpService = source.newSqlScriptProducerService(); - SqlScriptProducerRequest request = SqlScriptProducerRequest.forH2().addSchema().addReferential(); - byte[] dump = dumpService.produceSqlScript(request); + AddSqlScriptProducerRequest request = AddSqlScriptProducerRequest.forH2().addSchema().addReferential(); + byte[] dump = dumpService.produceAddSqlScript(request); result.setImportDatabase(dump); } diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/SqlScriptProducerServiceController.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/SqlScriptProducerServiceController.java index 82cafc9..82b13ec 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/SqlScriptProducerServiceController.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/SqlScriptProducerServiceController.java @@ -22,7 +22,8 @@ package fr.ird.observe.application.web.controller.v1; * #L% */ -import fr.ird.observe.services.service.SqlScriptProducerRequest; +import fr.ird.observe.services.service.DeleteSqlScriptProducerRequest; +import fr.ird.observe.services.service.AddSqlScriptProducerRequest; import fr.ird.observe.services.service.SqlScriptProducerService; /** @@ -35,8 +36,12 @@ public class SqlScriptProducerServiceController extends ObserveAuthenticatedServ } @Override - public byte[] produceSqlScript(SqlScriptProducerRequest request) { - return service.produceSqlScript(request); + public byte[] produceAddSqlScript(AddSqlScriptProducerRequest request) { + return service.produceAddSqlScript(request); } + @Override + public byte[] produceDeleteSqlScript(DeleteSqlScriptProducerRequest request) { + return service.produceDeleteSqlScript(request); + } } diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/injector/SqlScriptProducerRequestInjector.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/injector/SqlScriptProducerRequestInjector.java index 29771b6..33fb257 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/injector/SqlScriptProducerRequestInjector.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/injector/SqlScriptProducerRequestInjector.java @@ -24,7 +24,7 @@ package fr.ird.observe.application.web.injector; import com.google.common.base.Preconditions; import com.google.gson.Gson; -import fr.ird.observe.services.service.SqlScriptProducerRequest; +import fr.ird.observe.services.service.AddSqlScriptProducerRequest; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.debux.webmotion.server.call.Call; @@ -50,9 +50,9 @@ public class SqlScriptProducerRequestInjector implements ExecutorParametersInjec @Override public Object getValue(Mapping mapping, Call call, String name, Class<?> type, Type generic) { - SqlScriptProducerRequest sqlScriptProducerRequest = null; + AddSqlScriptProducerRequest addSqlScriptProducerRequest = null; - if (type.equals(SqlScriptProducerRequest.class)) { + if (type.equals(AddSqlScriptProducerRequest.class)) { Call.ParameterTree parameterTree = call.getParameterTree().getObject().get(name); @@ -60,15 +60,15 @@ public class SqlScriptProducerRequestInjector implements ExecutorParametersInjec String gsonContent = ((String[]) parameterTree.getValue())[0]; - sqlScriptProducerRequest = gson.fromJson(gsonContent, SqlScriptProducerRequest.class); + addSqlScriptProducerRequest = gson.fromJson(gsonContent, AddSqlScriptProducerRequest.class); if (log.isInfoEnabled()) { - log.info("Inject sqlScriptProducerRequest: " + sqlScriptProducerRequest); + log.info("Inject addSqlScriptProducerRequest: " + addSqlScriptProducerRequest); } } - return sqlScriptProducerRequest; + return addSqlScriptProducerRequest; } diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/SqlScriptProducerRequest.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/AddSqlScriptProducerRequest.java similarity index 80% copy from observe-services-api/src/main/java/fr/ird/observe/services/service/SqlScriptProducerRequest.java copy to observe-services-api/src/main/java/fr/ird/observe/services/service/AddSqlScriptProducerRequest.java index 48040ef..61c89ad 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/SqlScriptProducerRequest.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/AddSqlScriptProducerRequest.java @@ -32,7 +32,7 @@ import java.util.stream.Collectors; * * @author Tony Chemit - chemit@codelutin.com */ -public class SqlScriptProducerRequest { +public class AddSqlScriptProducerRequest { protected final boolean postgres; protected boolean addSchema; @@ -40,30 +40,30 @@ public class SqlScriptProducerRequest { protected boolean addData; protected ImmutableSet<String> dataIds; - public static SqlScriptProducerRequest forH2() { - return new SqlScriptProducerRequest(false); + public static AddSqlScriptProducerRequest forH2() { + return new AddSqlScriptProducerRequest(false); } - public static SqlScriptProducerRequest forPostgres() { - return new SqlScriptProducerRequest(true); + public static AddSqlScriptProducerRequest forPostgres() { + return new AddSqlScriptProducerRequest(true); } - public SqlScriptProducerRequest addSchema() { + public AddSqlScriptProducerRequest addSchema() { addSchema = true; return this; } - public SqlScriptProducerRequest addReferential() { + public AddSqlScriptProducerRequest addReferential() { addReferential = true; return this; } - public SqlScriptProducerRequest addAllData() { + public AddSqlScriptProducerRequest addAllData() { addData = true; return this; } - public SqlScriptProducerRequest addDataIds(ImmutableSet<String> dataIds) { + public AddSqlScriptProducerRequest dataIdsToAdd(ImmutableSet<String> dataIds) { addData = true; this.dataIds = dataIds; return this; @@ -77,7 +77,7 @@ public class SqlScriptProducerRequest { return addReferential; } - protected SqlScriptProducerRequest(boolean postgres) { + protected AddSqlScriptProducerRequest(boolean postgres) { this.postgres = postgres; } diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/SqlScriptProducerRequest.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/DeleteSqlScriptProducerRequest.java similarity index 60% rename from observe-services-api/src/main/java/fr/ird/observe/services/service/SqlScriptProducerRequest.java rename to observe-services-api/src/main/java/fr/ird/observe/services/service/DeleteSqlScriptProducerRequest.java index 48040ef..bbcc54a 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/SqlScriptProducerRequest.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/DeleteSqlScriptProducerRequest.java @@ -32,57 +32,37 @@ import java.util.stream.Collectors; * * @author Tony Chemit - chemit@codelutin.com */ -public class SqlScriptProducerRequest { +public class DeleteSqlScriptProducerRequest { protected final boolean postgres; - protected boolean addSchema; - protected boolean addReferential; - protected boolean addData; + protected boolean deleteData; protected ImmutableSet<String> dataIds; - public static SqlScriptProducerRequest forH2() { - return new SqlScriptProducerRequest(false); + public static DeleteSqlScriptProducerRequest forH2() { + return new DeleteSqlScriptProducerRequest(false); } - public static SqlScriptProducerRequest forPostgres() { - return new SqlScriptProducerRequest(true); + public static DeleteSqlScriptProducerRequest forPostgres() { + return new DeleteSqlScriptProducerRequest(true); } - public SqlScriptProducerRequest addSchema() { - addSchema = true; + public DeleteSqlScriptProducerRequest deleteAllData() { + deleteData = true; return this; } - public SqlScriptProducerRequest addReferential() { - addReferential = true; - return this; - } - - public SqlScriptProducerRequest addAllData() { - addData = true; - return this; - } - - public SqlScriptProducerRequest addDataIds(ImmutableSet<String> dataIds) { - addData = true; + public DeleteSqlScriptProducerRequest dataIdsToDelete(ImmutableSet<String> dataIds) { + deleteData = true; this.dataIds = dataIds; return this; } - public boolean isAddSchema() { - return addSchema; - } - - public boolean isAddReferential() { - return addReferential; - } - - protected SqlScriptProducerRequest(boolean postgres) { + protected DeleteSqlScriptProducerRequest(boolean postgres) { this.postgres = postgres; } - public boolean isAddData() { - return addData; + public boolean isDeleteData() { + return deleteData; } public ImmutableSet<String> getDataIds() { @@ -101,9 +81,7 @@ public class SqlScriptProducerRequest { public String toString() { return MoreObjects.toStringHelper(this) .add("postgres", postgres) - .add("addSchema", addSchema) - .add("addReferential", addReferential) - .add("addData", addData) + .add("deleteData", deleteData) .add("dataIds", dataIds == null ? "" : "[" + dataIds.stream().collect(Collectors.joining(", ")) + "]") .toString(); } diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/SqlScriptProducerService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/SqlScriptProducerService.java index fd0fae8..50ce8b9 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/SqlScriptProducerService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/SqlScriptProducerService.java @@ -31,5 +31,7 @@ import fr.ird.observe.services.ObserveService; */ public interface SqlScriptProducerService extends ObserveService { - byte[] produceSqlScript(SqlScriptProducerRequest request); + byte[] produceAddSqlScript(AddSqlScriptProducerRequest request); + + byte[] produceDeleteSqlScript(DeleteSqlScriptProducerRequest request); } 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 95fc070..00095d2 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 @@ -204,8 +204,8 @@ public class DataSourceServiceTopia extends ObserveServiceTopia implements DataS temporaryTopiaApplicationContext.getMigrationService().runSchemaMigration(); SqlScriptProducerService dumpProducerService = serviceContext.newService(temporaryConfiguration, SqlScriptProducerService.class); - SqlScriptProducerRequest request = SqlScriptProducerRequest.forPostgres().addSchema().addReferential().addAllData(); - byte[] dump = dumpProducerService.produceSqlScript(request); + AddSqlScriptProducerRequest request = AddSqlScriptProducerRequest.forPostgres().addSchema().addReferential().addAllData(); + byte[] dump = dumpProducerService.produceAddSqlScript(request); topiaApplicationContext.executeSqlStatements(dump); topiaApplicationContext.getMigrationService().createSchemaIfNotExist(); topiaApplicationContext.getMigrationService().runSchemaMigration(); @@ -253,11 +253,11 @@ public class DataSourceServiceTopia extends ObserveServiceTopia implements DataS ObserveDataSourceConfiguration importDataSourceConfiguration = dataSourceCreateConfiguration.getImportReferentialDataSourceConfiguration(); - SqlScriptProducerRequest request; + AddSqlScriptProducerRequest request; if (((ObserveDataSourceConfigurationTopiaSupport) dataSourceConfiguration).isH2Database()) { - request = SqlScriptProducerRequest.forH2(); + request = AddSqlScriptProducerRequest.forH2(); } else { - request = SqlScriptProducerRequest.forPostgres(); + request = AddSqlScriptProducerRequest.forPostgres(); } request.addReferential(); @@ -270,7 +270,7 @@ public class DataSourceServiceTopia extends ObserveServiceTopia implements DataS ObserveDataSourceConnection importDataSourceConnection = dataSourceService.open(importDataSourceConfiguration); SqlScriptProducerService dumpProducerService = serviceContext.newService(importDataSourceConnection, SqlScriptProducerService.class); - referentialDump = dumpProducerService.produceSqlScript(request); + referentialDump = dumpProducerService.produceAddSqlScript(request); } finally { dataSourceService.close(); @@ -288,11 +288,11 @@ public class DataSourceServiceTopia extends ObserveServiceTopia implements DataS ObserveDataSourceConfiguration importDataSourceConfiguration = dataSourceCreateConfiguration.getImportDataDataSourceConfiguration(); - SqlScriptProducerRequest request; + AddSqlScriptProducerRequest request; if (((ObserveDataSourceConfigurationTopiaSupport) dataSourceConfiguration).isH2Database()) { - request = SqlScriptProducerRequest.forH2(); + request = AddSqlScriptProducerRequest.forH2(); } else { - request = SqlScriptProducerRequest.forPostgres(); + request = AddSqlScriptProducerRequest.forPostgres(); } if (!referantialImported) { @@ -310,7 +310,7 @@ public class DataSourceServiceTopia extends ObserveServiceTopia implements DataS log.info("Get data: " + importDataIds); } - request.addDataIds(importDataIds); + request.dataIdsToAdd(importDataIds); DataSourceService dataSourceService = serviceContext.newService(importDataSourceConfiguration, DataSourceService.class); @@ -320,7 +320,7 @@ public class DataSourceServiceTopia extends ObserveServiceTopia implements DataS ObserveDataSourceConnection importDataSourceConnection = dataSourceService.open(importDataSourceConfiguration); SqlScriptProducerService dumpProducerService = serviceContext.newService(importDataSourceConnection, SqlScriptProducerService.class); - dataDump = dumpProducerService.produceSqlScript(request); + dataDump = dumpProducerService.produceAddSqlScript(request); } finally { dataSourceService.close(); diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/SqlScriptProducerServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/service/SqlScriptProducerServiceTopia.java index e2c4cc9..bb8a17d 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/service/SqlScriptProducerServiceTopia.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/service/SqlScriptProducerServiceTopia.java @@ -51,9 +51,9 @@ public class SqlScriptProducerServiceTopia extends ObserveServiceTopia implement private static final Log log = LogFactory.getLog(SqlScriptProducerServiceTopia.class); @Override - public byte[] produceSqlScript(SqlScriptProducerRequest request) { + public byte[] produceAddSqlScript(AddSqlScriptProducerRequest request) { if (log.isTraceEnabled()) { - log.trace("produceSqlScript(" + request + ")"); + log.trace("produceAddSqlScript(" + request + ")"); } try (ByteArrayOutputStream out = new ByteArrayOutputStream()) { @@ -75,7 +75,31 @@ public class SqlScriptProducerServiceTopia extends ObserveServiceTopia implement } - protected SqlRequests sqlRequests(SqlScriptProducerRequest request, SqlRequests.Builder builder) { + @Override + public byte[] produceDeleteSqlScript(DeleteSqlScriptProducerRequest request) { + if (log.isTraceEnabled()) { + log.trace("produceDeleteSqlScript(" + request + ")"); + } + try (ByteArrayOutputStream out = new ByteArrayOutputStream()) { + + try (Writer writer = new OutputStreamWriter(new GZIPOutputStream(out))) { + + TopiaSqlBatchService sqlBatchService = serviceContext.getTopiaApplicationContext().getSqlBatchService(); + SqlRequests.Builder builder = sqlBatchService.requestBuilder().to(writer); + + SqlRequests sqlRequests = sqlRequests(request, builder); + sqlBatchService.execute(sqlRequests); + + } + + return out.toByteArray(); + + } catch (IOException e) { + throw new RuntimeException("Could not produce delete sql script", e); + } + } + + protected SqlRequests sqlRequests(AddSqlScriptProducerRequest request, SqlRequests.Builder builder) { if (request.isAddSchema()) { @@ -152,4 +176,58 @@ public class SqlScriptProducerServiceTopia extends ObserveServiceTopia implement return builder.build(); } + protected SqlRequests sqlRequests(DeleteSqlScriptProducerRequest request, SqlRequests.Builder builder) { + + ObserveTopiaApplicationContext topiaApplicationContext = serviceContext.getTopiaApplicationContext(); + + if (request.isDeleteData()) { + + ImmutableSet<String> tripIds = request.getDataIds(); + if (tripIds == null) { + + builder.deleteTablesBuilder() + .setTables(topiaApplicationContext.getTripSeineTables()) + .replicateTablesBuilder() + .setTables(topiaApplicationContext.getTripLonglineTables()) + .flush(); + + } else { + + { + + Set<String> tripIds1 = Sets.newHashSet(Iterables.filter(tripIds, Entities.IS_SEINE_ID::test)); + + if (!tripIds1.isEmpty()) { + + builder.deleteTablesBuilder() + .setTables(topiaApplicationContext.getTripSeineTables()) + .setSelectArgument(TopiaSqlTableSelectArgument.of(tripIds1)) + .flush(); + + } + + } + + { + + Set<String> tripIds1 = Sets.newHashSet(Iterables.filter(tripIds, Entities.IS_LONGLINE_ID::test)); + + if (!tripIds1.isEmpty()) { + + builder.deleteTablesBuilder() + .setTables(topiaApplicationContext.getTripLonglineTables()) + .setSelectArgument(TopiaSqlTableSelectArgument.of(tripIds1)) + .flush(); + + } + + } + + } + + } + + return builder.build(); + } + } diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/actions/export/ReplicateTripServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/service/actions/export/ReplicateTripServiceTopia.java index b606b28..fbaf1bf 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/service/actions/export/ReplicateTripServiceTopia.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/service/actions/export/ReplicateTripServiceTopia.java @@ -26,7 +26,7 @@ import com.google.common.collect.ImmutableSet; import fr.ird.observe.ObserveTopiaApplicationContext; import fr.ird.observe.services.ObserveServiceTopia; import fr.ird.observe.services.dto.IdDtos; -import fr.ird.observe.services.service.SqlScriptProducerRequest; +import fr.ird.observe.services.service.AddSqlScriptProducerRequest; import fr.ird.observe.services.service.SqlScriptProducerService; import fr.ird.observe.services.service.longline.TripLonglineService; import fr.ird.observe.services.service.seine.TripSeineService; @@ -49,9 +49,9 @@ public class ReplicateTripServiceTopia extends ObserveServiceTopia implements Re String tripId = replicateTripExportRequest.getTripId(); - SqlScriptProducerRequest request = SqlScriptProducerRequest.forPostgres().addDataIds(ImmutableSet.of(tripId)); + AddSqlScriptProducerRequest request = AddSqlScriptProducerRequest.forPostgres().dataIdsToAdd(ImmutableSet.of(tripId)); - byte[] tripContent = sqlScriptProducerService.produceSqlScript(request); + byte[] tripContent = sqlScriptProducerService.produceAddSqlScript(request); resultBuilder.addTripToReplicate(replicateTripExportRequest, tripContent); diff --git a/observe-services-topia/src/test/java/fr/ird/observe/services/service/MigrateTestsDatabases.java b/observe-services-topia/src/test/java/fr/ird/observe/services/service/MigrateTestsDatabases.java index 3567ade..a9e0b6c 100644 --- a/observe-services-topia/src/test/java/fr/ird/observe/services/service/MigrateTestsDatabases.java +++ b/observe-services-topia/src/test/java/fr/ird/observe/services/service/MigrateTestsDatabases.java @@ -63,44 +63,44 @@ public class MigrateTestsDatabases extends AbstractServiceTopiaTest { @DatabaseNameConfiguration(DatabaseName.referentiel) @Test public void migrateReferentielDb() throws IOException, IncompatibleDataSourceCreateConfigurationException, DataSourceCreateWithNoReferentialImportException, BabModelVersionException, DatabaseConnexionNotAuthorizedException, DatabaseNotFoundException { - SqlScriptProducerRequest request = SqlScriptProducerRequest.forH2().addSchema().addReferential().addAllData(); - migrate(service.produceSqlScript(request)); + AddSqlScriptProducerRequest request = AddSqlScriptProducerRequest.forH2().addSchema().addReferential().addAllData(); + migrate(service.produceAddSqlScript(request)); } @DatabaseNameConfiguration(DatabaseName.dataForTestSeine) @Test public void migrateDataForTestSeineDb() throws IOException, IncompatibleDataSourceCreateConfigurationException, DataSourceCreateWithNoReferentialImportException, BabModelVersionException, DatabaseConnexionNotAuthorizedException, DatabaseNotFoundException { - SqlScriptProducerRequest request = SqlScriptProducerRequest.forH2().addSchema().addReferential().addAllData(); - migrate(service.produceSqlScript(request)); + AddSqlScriptProducerRequest request = AddSqlScriptProducerRequest.forH2().addSchema().addReferential().addAllData(); + migrate(service.produceAddSqlScript(request)); } @DatabaseNameConfiguration(DatabaseName.dataForTestLongline) @Test public void migrateDataForTestLonglineDb() throws IOException, IncompatibleDataSourceCreateConfigurationException, DataSourceCreateWithNoReferentialImportException, BabModelVersionException, DatabaseConnexionNotAuthorizedException, DatabaseNotFoundException { - SqlScriptProducerRequest request = SqlScriptProducerRequest.forH2().addSchema().addReferential().addAllData(); - migrate(service.produceSqlScript(request)); + AddSqlScriptProducerRequest request = AddSqlScriptProducerRequest.forH2().addSchema().addReferential().addAllData(); + migrate(service.produceAddSqlScript(request)); } @DatabaseNameConfiguration(DatabaseName.empty_h2) @Test public void migrateEmptyH2Db() throws IOException, IncompatibleDataSourceCreateConfigurationException, DataSourceCreateWithNoReferentialImportException, BabModelVersionException, DatabaseConnexionNotAuthorizedException, DatabaseNotFoundException { - SqlScriptProducerRequest request = SqlScriptProducerRequest.forH2().addSchema(); - migrate(service.produceSqlScript(request)); + AddSqlScriptProducerRequest request = AddSqlScriptProducerRequest.forH2().addSchema(); + migrate(service.produceAddSqlScript(request)); } @DatabaseVersionConfiguration("4.903") @DatabaseNameConfiguration(DatabaseName.dataForTestUnidirectionalReferentialSynchro) @Test public void migrateDataForTestUnidirectionalReferentialSynchroDb() throws IOException, IncompatibleDataSourceCreateConfigurationException, DataSourceCreateWithNoReferentialImportException, BabModelVersionException, DatabaseConnexionNotAuthorizedException, DatabaseNotFoundException { - SqlScriptProducerRequest request = SqlScriptProducerRequest.forH2().addSchema().addReferential().addAllData(); - migrate(service.produceSqlScript(request)); + AddSqlScriptProducerRequest request = AddSqlScriptProducerRequest.forH2().addSchema().addReferential().addAllData(); + migrate(service.produceAddSqlScript(request)); } @DatabaseNameConfiguration(DatabaseName.empty_h2) @Test public void migrateEmptyPgDb() throws IOException, IncompatibleDataSourceCreateConfigurationException, DataSourceCreateWithNoReferentialImportException, BabModelVersionException, DatabaseConnexionNotAuthorizedException, DatabaseNotFoundException { - SqlScriptProducerRequest request = SqlScriptProducerRequest.forPostgres().addSchema(); - migrate(DatabaseName.empty_pg.name(), service.produceSqlScript(request)); + AddSqlScriptProducerRequest request = AddSqlScriptProducerRequest.forPostgres().addSchema(); + migrate(DatabaseName.empty_pg.name(), service.produceAddSqlScript(request)); } protected void migrate(byte[] dump) throws IOException, IncompatibleDataSourceCreateConfigurationException, DataSourceCreateWithNoReferentialImportException, DatabaseNotFoundException, BabModelVersionException, DatabaseConnexionNotAuthorizedException { diff --git a/observe-services-topia/src/test/java/fr/ird/observe/services/service/SqlScriptProducerServiceTopiaTest.java b/observe-services-topia/src/test/java/fr/ird/observe/services/service/SqlScriptProducerServiceTopiaTest.java index 194a9f6..364c9bc 100644 --- a/observe-services-topia/src/test/java/fr/ird/observe/services/service/SqlScriptProducerServiceTopiaTest.java +++ b/observe-services-topia/src/test/java/fr/ird/observe/services/service/SqlScriptProducerServiceTopiaTest.java @@ -55,8 +55,8 @@ public class SqlScriptProducerServiceTopiaTest extends AbstractServiceTopiaTest @Test public void testProduceSchema() throws Exception { - produce(SqlScriptProducerRequest.forH2().addSchema()); - produce(SqlScriptProducerRequest.forPostgres().addSchema()); + produce(AddSqlScriptProducerRequest.forH2().addSchema()); + produce(AddSqlScriptProducerRequest.forPostgres().addSchema()); } @@ -64,7 +64,7 @@ public class SqlScriptProducerServiceTopiaTest extends AbstractServiceTopiaTest @Test public void testProduceReferential() throws Exception { - produce(SqlScriptProducerRequest.forPostgres().addSchema().addReferential()); + produce(AddSqlScriptProducerRequest.forPostgres().addSchema().addReferential()); } @@ -72,8 +72,8 @@ public class SqlScriptProducerServiceTopiaTest extends AbstractServiceTopiaTest @Test public void testProduceTripSeine() throws Exception { -// produce(SqlScriptProducerRequest.forPostgres().addSchema().addReferential().addAllData()); - produce(SqlScriptProducerRequest.forPostgres().addSchema().addReferential().addDataIds(ObserveFixtures.TRIP_SEINE_IDS)); +// produce(AddSqlScriptProducerRequest.forPostgres().addSchema().addReferential().addAllData()); + produce(AddSqlScriptProducerRequest.forPostgres().addSchema().addReferential().dataIdsToAdd(ObserveFixtures.TRIP_SEINE_IDS)); } @@ -81,18 +81,18 @@ public class SqlScriptProducerServiceTopiaTest extends AbstractServiceTopiaTest @Test public void testProduceTripLongline() throws Exception { - produce(SqlScriptProducerRequest.forH2().addSchema().addReferential().addAllData()); -// produce(SqlScriptProducerRequest.forH2().addSchema().addReferential().addDataIds(ObserveFixtures.TRIP_LONGLINE_IDS)); + produce(AddSqlScriptProducerRequest.forH2().addSchema().addReferential().addAllData()); +// produce(AddSqlScriptProducerRequest.forH2().addSchema().addReferential().dataIdsToAdd(ObserveFixtures.TRIP_LONGLINE_IDS)); } - protected void produce(SqlScriptProducerRequest request) throws IOException { + protected void produce(AddSqlScriptProducerRequest request) throws IOException { long time = TimeLog.getTime(); File outputFile = applicationContextResource.createTemporaryFile("-out.sql.gz"); - byte[] gzContent = service.produceSqlScript(request); + byte[] gzContent = service.produceAddSqlScript(request); try (FileOutputStream fileOutputStream = new FileOutputStream(outputFile)) { IOUtils.write(gzContent, fileOutputStream); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.