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 dcf59b66dae4b6b91492ccbba6a937638f822354 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat Aug 27 20:05:21 2016 +0200 review transaction usage --- .../swing/ui/admin/export/ExportUIHandler.java | 2 +- .../synchronize/data/DataSynchroUIHandler.java | 15 ++-- .../services/service/trip/ExportTripRequest.java | 8 +- .../service/trip/TripManagementServiceTopia.java | 89 +++++++++++----------- 4 files changed, 59 insertions(+), 55 deletions(-) diff --git a/observe-application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/export/ExportUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/export/ExportUIHandler.java index acdc0f4..0234d3a 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/export/ExportUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/export/ExportUIHandler.java @@ -274,7 +274,7 @@ public class ExportUIHandler extends AdminTabUIHandler { for (TripEntry tripEntry : tripEntries) { - ExportTripResult exportTripResult = localTripManagementService.exportTrip(new ExportTripRequest(tripEntry.getProgramId(), tripEntry.getTripId())); + ExportTripResult exportTripResult = localTripManagementService.exportTrip(new ExportTripRequest(false, tripEntry.getProgramId(), tripEntry.getTripId())); logExportResult(n("observe.actions.export.result.export.trip"), exportTripResult, diff --git a/observe-application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/synchronize/data/DataSynchroUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/synchronize/data/DataSynchroUIHandler.java index 7a22336..11fe76a 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/synchronize/data/DataSynchroUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/synchronize/data/DataSynchroUIHandler.java @@ -38,7 +38,7 @@ import fr.ird.observe.application.swing.ui.admin.synchronize.data.task.DeleteFro import fr.ird.observe.application.swing.ui.admin.synchronize.data.task.DeleteFromRightDataSynchronizeTask; import fr.ird.observe.application.swing.ui.storage.tabs.DataSelectionModel; import fr.ird.observe.application.swing.ui.tree.ObserveTreeHelper; -import fr.ird.observe.services.configuration.ObserveDataSourceConfigurationTopiaH2; +import fr.ird.observe.services.configuration.ObserveDataSourceConfigurationTopiaPG; import fr.ird.observe.services.dto.DataReference; import fr.ird.observe.services.dto.referential.ProgramDto; import fr.ird.observe.services.dto.referential.ReferentialReference; @@ -253,10 +253,10 @@ public class DataSynchroUIHandler extends AdminTabUIHandler { private WizardState doExecuteAction0() { ObserveSwingDataSource leftSource = getStepModel().getLeftSource(); - boolean leftSourceIsH2 = leftSource.getConfiguration() instanceof ObserveDataSourceConfigurationTopiaH2; + boolean leftSourceIsPG = leftSource.getConfiguration() instanceof ObserveDataSourceConfigurationTopiaPG; ObserveSwingDataSource rightSource = getStepModel().getRightSource(); - boolean rightSourceIsH2 = rightSource.getConfiguration() instanceof ObserveDataSourceConfigurationTopiaH2; + boolean rightSourceIsPG = rightSource.getConfiguration() instanceof ObserveDataSourceConfigurationTopiaPG; DefaultListModel<DataSynchronizeTaskSupport> tasks = getStepModel().getTasks(); int size = tasks.size(); @@ -284,12 +284,12 @@ public class DataSynchroUIHandler extends AdminTabUIHandler { sendMessage(t("observe.actions.synchro.data.prepare.deleteFromLeftTask", programStr, tripStr)); DeleteTripResult deleteTripResult = leftTripManagementService.deleteTrip(new DeleteTripRequest(programId, tripId)); + logDeleteResult(n("observe.actions.synchro.data.result.delete.left.trip"), deleteTripResult, programDecorator, program, trip); - continue; } @@ -299,6 +299,7 @@ public class DataSynchroUIHandler extends AdminTabUIHandler { sendMessage(t("observe.actions.synchro.data.prepare.deleteFromRightTask", programStr, tripStr)); DeleteTripResult deleteTripResult = rightTripManagementService.deleteTrip(new DeleteTripRequest(programId, tripId)); + logDeleteResult(n("observe.actions.synchro.data.result.delete.right.trip"), deleteTripResult, programDecorator, @@ -312,7 +313,7 @@ public class DataSynchroUIHandler extends AdminTabUIHandler { sendMessage(t("observe.actions.synchro.data.prepare.copyToLeftTask", programStr, tripStr)); - ExportTripResult exportTripResult = rightTripManagementService.exportTrip(new ExportTripRequest(programId, tripId)); + ExportTripResult exportTripResult = rightTripManagementService.exportTrip(new ExportTripRequest(rightSourceIsPG, programId, tripId)); logExportResult(n("observe.actions.synchro.data.result.export.right.trip"), exportTripResult, @@ -328,7 +329,6 @@ public class DataSynchroUIHandler extends AdminTabUIHandler { programDecorator, program, trip); - continue; } @@ -337,8 +337,7 @@ public class DataSynchroUIHandler extends AdminTabUIHandler { sendMessage(t("observe.actions.synchro.data.prepare.copyToRightTask", programStr, tripStr)); - - ExportTripResult exportTripResult = leftTripManagementService.exportTrip(new ExportTripRequest(programId, tripId)); + ExportTripResult exportTripResult = leftTripManagementService.exportTrip(new ExportTripRequest(leftSourceIsPG, programId, tripId)); logExportResult(n("observe.actions.synchro.data.result.export.left.trip"), exportTripResult, diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/trip/ExportTripRequest.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/trip/ExportTripRequest.java index 94c7613..78f063a 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/trip/ExportTripRequest.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/trip/ExportTripRequest.java @@ -30,14 +30,20 @@ package fr.ird.observe.services.service.trip; */ public class ExportTripRequest { + private final boolean forPG; private final String programId; private final String tripId; - public ExportTripRequest(String programId, String tripId) { + public ExportTripRequest(boolean forPG, String programId, String tripId) { + this.forPG = forPG; this.programId = programId; this.tripId = tripId; } + public boolean isForPG() { + return forPG; + } + public String getProgramId() { return programId; } diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/trip/TripManagementServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/service/trip/TripManagementServiceTopia.java index 6bc4d99..e04c6de 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/service/trip/TripManagementServiceTopia.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/service/trip/TripManagementServiceTopia.java @@ -71,9 +71,9 @@ public class TripManagementServiceTopia extends ObserveServiceTopia implements T log.info("Start export of trip: " + tripId); } - //FIXME Get real database type - AddSqlScriptProducerRequest request = AddSqlScriptProducerRequest.forPostgres().dataIdsToAdd(ImmutableSet.of(tripId)); - + AddSqlScriptProducerRequest request; + request = (exportRequest.isForPG() ? AddSqlScriptProducerRequest.forPostgres() : AddSqlScriptProducerRequest.forH2()) + .dataIdsToAdd(ImmutableSet.of(tripId)); AddSqlScriptProducerResult producerResult = sqlScriptProducerService.produceAddSqlScript(request); byte[] tripContent = producerResult.getSqlCode(); ImmutableSet<ObserveBlobsContainer> blobsContainers = producerResult.getBlobsContainers(); @@ -87,28 +87,26 @@ public class TripManagementServiceTopia extends ObserveServiceTopia implements T @Override public DeleteTripResult deleteTrip(DeleteTripRequest request) { - try (ObserveTopiaPersistenceContext persistenceContext = serviceContext.getTopiaApplicationContext().newPersistenceContext()) { - - Set<String> tripSeineIds = new TreeSet<>(persistenceContext.getTripSeineDao().findAllIds()); - Set<String> tripLonglineIds = new TreeSet<>(persistenceContext.getTripLonglineDao().findAllIds()); - - String tripId = request.getTripId(); + ObserveTopiaPersistenceContext persistenceContext = serviceContext.getTopiaPersistenceContext(); - long t0 = System.nanoTime(); + Set<String> tripSeineIds = new TreeSet<>(persistenceContext.getTripSeineDao().findAllIds()); + Set<String> tripLonglineIds = new TreeSet<>(persistenceContext.getTripLonglineDao().findAllIds()); - boolean deleted = deleteTrip(persistenceContext, tripId, tripSeineIds, tripLonglineIds); + String tripId = request.getTripId(); - if (deleted) { + long t0 = System.nanoTime(); - long time = System.nanoTime() - t0; - if (log.isInfoEnabled()) { - log.info("Delete of trip: " + tripId + " done in " + StringUtil.convertTime(time)); - } + boolean deleted = deleteTrip(persistenceContext, tripId, tripSeineIds, tripLonglineIds); - return new DeleteTripResult(request, time); + if (deleted) { + long time = System.nanoTime() - t0; + if (log.isInfoEnabled()) { + log.info("Delete of trip: " + tripId + " done in " + StringUtil.convertTime(time)); } + return new DeleteTripResult(request, time); + } return null; @@ -118,55 +116,55 @@ public class TripManagementServiceTopia extends ObserveServiceTopia implements T @Override public ImportTripResult importTrip(ImportTripRequest request) { - try (ObserveTopiaPersistenceContext persistenceContext = serviceContext.getTopiaApplicationContext().newPersistenceContext()) { - - Set<String> tripSeineIds = new TreeSet<>(persistenceContext.getTripSeineDao().findAllIds()); - Set<String> tripLonglineIds = new TreeSet<>(persistenceContext.getTripLonglineDao().findAllIds()); - - String tripId = request.getTripId(); + ObserveTopiaPersistenceContext persistenceContext = serviceContext.getTopiaPersistenceContext(); - long t0 = System.nanoTime(); + Set<String> tripSeineIds = new TreeSet<>(persistenceContext.getTripSeineDao().findAllIds()); + Set<String> tripLonglineIds = new TreeSet<>(persistenceContext.getTripLonglineDao().findAllIds()); - boolean deleted = deleteTrip(persistenceContext, tripId, tripSeineIds, tripLonglineIds); + String tripId = request.getTripId(); - long t1 = System.nanoTime(); + long t0 = System.nanoTime(); - long deleteTime = 0; - if (deleted) { + boolean deleted = deleteTrip(persistenceContext, tripId, tripSeineIds, tripLonglineIds); - deleteTime = System.nanoTime() - t0; - if (log.isInfoEnabled()) { - log.info("Delete of trip: " + tripId + " done in " + StringUtil.convertTime(deleteTime)); - } + long t1 = System.nanoTime(); - } + long deleteTime = 0; + if (deleted) { + deleteTime = System.nanoTime() - t0; if (log.isInfoEnabled()) { - log.info("Start import of trip: " + request.getTripId()); + log.info("Delete of trip: " + tripId + " done in " + StringUtil.convertTime(deleteTime)); } - ImmutableSet<ObserveBlobsContainer> blobsContainers = request.getBlobsContainers(); + } - if (blobsContainers.isEmpty()) { + if (log.isInfoEnabled()) { + log.info("Start import of trip: " + request.getTripId()); + } - persistenceContext.executeSqlScript(request.getSqlContent()); + ImmutableSet<ObserveBlobsContainer> blobsContainers = request.getBlobsContainers(); - } else { + if (blobsContainers.isEmpty()) { - persistenceContext.getSqlSupport().doSqlWork(new ImportTripScriptTopiaSqlWork(1000, request.getSqlContent(), blobsContainers)); + persistenceContext.executeSqlScript(request.getSqlContent()); - } + } else { - long t2 = System.nanoTime(); + persistenceContext.getSqlSupport().doSqlWork(new ImportTripScriptTopiaSqlWork(1000, request.getSqlContent(), blobsContainers)); - if (log.isInfoEnabled()) { - log.info("Import of trip: " + tripId + " done in " + StringUtil.convertTime(t1, t2)); - } + } + + persistenceContext.commit(); - return new ImportTripResult(request, true, t1 - t0, deleted, deleteTime); + long t2 = System.nanoTime(); + if (log.isInfoEnabled()) { + log.info("Import of trip: " + tripId + " done in " + StringUtil.convertTime(t1, t2)); } + return new ImportTripResult(request, true, t2 - t1, deleted, deleteTime); + } private boolean deleteTrip(ObserveTopiaPersistenceContext persistenceContext, String tripId, Set<String> tripSeineIds, Set<String> tripLonglineIds) { @@ -198,6 +196,7 @@ public class TripManagementServiceTopia extends ObserveServiceTopia implements T tripLonglineIds.remove(tripId); } + persistenceContext.commit(); } return deleted; -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.