This is an automated email from the git hooks/post-receive script. New commit to branch feature/8180 in repository echobase. See https://gitlab.nuiton.org/codelutin/echobase.git commit 4dc5610b9ddfd829a1f30ddf8e452ff83be2e71e Author: Julien Ruchaud <julien.ruchaud@debux.org> Date: Mon Jul 4 11:23:24 2016 +0200 Handle remove ancillary instrumentation import --- .../WorkingDbMigrationCallBackForVersion3_908.java | 33 +++++++++++++ .../migration/workingDb/3.908-0-drop-indexes.sql | 1 + echobase-domain/src/main/xmi/echobase.properties | 2 +- .../service/importdata/ImportDataFileResult.java | 10 ++-- ...mportAncillaryInstrumentationActionSupport.java | 12 ++++- .../actions/ImportDataActionSupport.java | 11 +++++ ...ommonsAncillaryInstrumentationImportAction.java | 2 + .../service/removedata/RemoveDataService.java | 9 ++-- .../strategy/CommonAllRemoveDataStrategy.java | 3 +- ...ncillaryInstrumentationRemoveDataStrategy.java} | 49 ++++++++------------ .../strategy/CommonTransectRemoveDataStrategy.java | 3 +- .../strategy/CommonVoyageRemoveDataStrategy.java | 3 +- ...ncillaryInstrumentationRemoveDataStrategy.java} | 41 ++++++----------- .../strategy/MooringRemoveDataStrategy.java | 4 +- .../removedata/AbstractRemoveDataServiceTest.java | 51 +++++++++++++++++++-- ...llaryInstrumentationRemoveDataServiceTest.java} | 36 ++++++++------- .../removedata/CommonAllRemoveDataServiceTest.java | 1 + .../CommonTransectRemoveDataServiceTest.java | 1 + .../CommonVoyageRemoveDataServiceTest.java | 1 + .../removedata/MooringRemoveDataServiceTest.java | 3 +- .../import-data/echobase-commonData.h2.db.gz | Bin 370212 -> 370145 bytes .../resources/import-data/echobase-nodata.h2.db.gz | Bin 318448 -> 319969 bytes 22 files changed, 180 insertions(+), 96 deletions(-) diff --git a/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/migration/workingDb/WorkingDbMigrationCallBackForVersion3_908.java b/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/migration/workingDb/WorkingDbMigrationCallBackForVersion3_908.java new file mode 100644 index 0000000..28fa0f3 --- /dev/null +++ b/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/migration/workingDb/WorkingDbMigrationCallBackForVersion3_908.java @@ -0,0 +1,33 @@ +package fr.ifremer.echobase.persistence.migration.workingDb; + +import org.nuiton.topia.persistence.TopiaException; +import org.nuiton.topia.persistence.support.TopiaSqlSupport; +import org.nuiton.version.Version; +import org.nuiton.version.Versions; + +import java.util.List; + +/** + * Created on 26/04/16. + * + * @author Julien Ruchaud - ruchaud@codelutin.com + * @since 4.0 + */ +public class WorkingDbMigrationCallBackForVersion3_908 extends WorkingDbMigrationCallBackForVersionSupport { + + @Override + public Version getVersion() { + return Versions.valueOf("3.908"); + } + + @Override + protected void prepareMigrationScript(TopiaSqlSupport sqlSupport, + List<String> queries, + boolean showSql, + boolean showProgression) throws TopiaException { + + // update the model structure + addScript("3.908-0-drop-indexes.sql", queries); + } + +} diff --git a/echobase-domain/src/main/resources/migration/workingDb/3.908-0-drop-indexes.sql b/echobase-domain/src/main/resources/migration/workingDb/3.908-0-drop-indexes.sql new file mode 100644 index 0000000..3a704d6 --- /dev/null +++ b/echobase-domain/src/main/resources/migration/workingDb/3.908-0-drop-indexes.sql @@ -0,0 +1 @@ +DROP INDEX IF EXISTS uk_importfileid; diff --git a/echobase-domain/src/main/xmi/echobase.properties b/echobase-domain/src/main/xmi/echobase.properties index 687f0a6..63ffcbc 100644 --- a/echobase-domain/src/main/xmi/echobase.properties +++ b/echobase-domain/src/main/xmi/echobase.properties @@ -23,7 +23,7 @@ model.tagValue.notGenerateToString=true model.tagValue.generateOperatorForDAOHelper=true -model.tagValue.version=3.907 +model.tagValue.version=3.908 model.tagValue.generatePropertyChangeSupport=false model.tagValue.generateBooleanGetMethods=false model.tagValue.indexForeignKeys=true diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/ImportDataFileResult.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/ImportDataFileResult.java index 2c85476..cd2ddb8 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/ImportDataFileResult.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/ImportDataFileResult.java @@ -117,14 +117,16 @@ public class ImportDataFileResult { public <E extends TopiaEntity> int addId(EchoBaseUserEntityEnum entityEnum) { importedEntityCount++; -// ImportFileIdImpl importFileId = new ImportFileIdImpl(); -// importFileId.setEntityId(entity.getTopiaId()); -// importFileId.setLineNumber(lineNumber); -// importFile.addImportFileId(importFileId); incrementsNumberCreated(entityEnum); return importedEntityCount; } + public <E extends TopiaEntity> int updateId(EchoBaseUserEntityEnum entityEnum) { + importedEntityCount++; + incrementsNumberUpdated(entityEnum); + return importedEntityCount; + } + public <E extends TopiaEntity> void addNotImportedId(EchoBaseUserEntityEnum entityEnum, E entity) { addNotImportedId(entityEnum, entity.getTopiaId()); } diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/ImportAncillaryInstrumentationActionSupport.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/ImportAncillaryInstrumentationActionSupport.java index 789573c..a72d0c2 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/ImportAncillaryInstrumentationActionSupport.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/ImportAncillaryInstrumentationActionSupport.java @@ -31,8 +31,10 @@ import fr.ifremer.echobase.services.service.importdata.ImportDataFileResult; import fr.ifremer.echobase.services.service.importdata.configurations.ImportDataConfigurationSupport; import fr.ifremer.echobase.services.service.importdata.contexts.ImportDataContextSupport; import fr.ifremer.echobase.services.service.importdata.csv.AncillaryInstrumentationImportRow; +import java.util.HashSet; import java.util.LinkedList; import java.util.List; +import java.util.Set; import org.apache.commons.lang3.tuple.Pair; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -49,6 +51,7 @@ public abstract class ImportAncillaryInstrumentationActionSupport<M extends Impo private static final Log log = LogFactory.getLog(ImportAncillaryInstrumentationActionSupport.class); private final LinkedList<Pair<String, String>> ancillaryInstrumentations = new LinkedList<>(); + private final Set<String> providerIds = new HashSet<>(); public ImportAncillaryInstrumentationActionSupport(C importDataContext, InputFile inputFile) { super(importDataContext, inputFile); @@ -86,10 +89,17 @@ public abstract class ImportAncillaryInstrumentationActionSupport<M extends Impo // add it provider.addAncillaryInstrumentation(ancillaryInstrumentation); + + TopiaEntity entity = provider.getEntity(); + String providerId = entity.getTopiaId(); + boolean already = providerIds.add(providerId); + if (!already) { + updateId(result, EchoBaseUserEntityEnum.AcousticInstrument, entity, rowNumber); + } result.incrementsNumberUpdated(EchoBaseUserEntityEnum.AncillaryInstrumentation); if (firstLine) { - ancillaryInstrumentations.add(Pair.of(ancillaryInstrumentation.getTopiaId(), provider.getEntity().getTopiaId())); + ancillaryInstrumentations.add(Pair.of(ancillaryInstrumentation.getTopiaId(), providerId)); firstLine = false; } } diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/ImportDataActionSupport.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/ImportDataActionSupport.java index 3031c0a..f0b5062 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/ImportDataActionSupport.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/ImportDataActionSupport.java @@ -441,6 +441,17 @@ public abstract class ImportDataActionSupport<M extends ImportDataConfigurationS } } + public <EE extends TopiaEntity> void updateId(ImportDataFileResult importResult, EchoBaseUserEntityEnum entityEnum, EE entity, int lineNumber) { + int entityCount = importResult.updateId(entityEnum); + + ImportFileId importFileId = persistenceService.newImportFileId(importResult.getImportFile(), entity, lineNumber, entityCount); + importedFileIdsToPersist.add(importFileId); + + if (importedFileIdsToPersist.size() % EXPORT_FLUSH_MAX == 0) { + flushImportFileIds(importResult); + } + } + protected <EE extends TopiaEntity> Iterable<EE> getImportedEntities(Class<EE> type, ImportDataFileResult result) { return persistenceService.getImportedEntities(result.getImportFile(), type); } diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageCommonsAncillaryInstrumentationImportAction.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageCommonsAncillaryInstrumentationImportAction.java index c556126..10c7d4b 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageCommonsAncillaryInstrumentationImportAction.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageCommonsAncillaryInstrumentationImportAction.java @@ -21,10 +21,12 @@ package fr.ifremer.echobase.services.service.importdata.actions; * #L% */ +import fr.ifremer.echobase.entities.EchoBaseUserEntityEnum; import fr.ifremer.echobase.entities.data.DataAcousticProvider; import fr.ifremer.echobase.entities.data.Voyage; import fr.ifremer.echobase.entities.references.AncillaryInstrumentation; import fr.ifremer.echobase.entities.references.Vessel; +import fr.ifremer.echobase.services.service.importdata.ImportDataFileResult; import fr.ifremer.echobase.services.service.importdata.MismatchProviderException; import fr.ifremer.echobase.services.service.importdata.configurations.VoyageCommonsAncillaryInstrumentationImportConfiguration; import fr.ifremer.echobase.services.service.importdata.contexts.VoyageCommonsAncillaryInstrumentationImportDataContext; diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/RemoveDataService.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/RemoveDataService.java index 9a612da..7cb66df 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/RemoveDataService.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/RemoveDataService.java @@ -64,6 +64,8 @@ import java.util.List; import java.util.Map; import java.util.Set; import fr.ifremer.echobase.entities.data.DataAcousticProvider; +import fr.ifremer.echobase.services.service.removedata.strategy.CommonAncillaryInstrumentationRemoveDataStrategy; +import fr.ifremer.echobase.services.service.removedata.strategy.MooringAncillaryInstrumentationRemoveDataStrategy; /** * Service to remove an import data. @@ -225,8 +227,7 @@ public class RemoveDataService extends EchoBaseServiceSupport { List<ImportLog> result = Lists.newArrayList(); - Set<ImportType> possibleSubImportType = - strategy.getPossibleSubImportType(); + Set<ImportType> possibleSubImportType = strategy.getPossibleSubImportType(); for (ImportLog logEntry : persistenceService.getImportLogs()) { @@ -283,7 +284,7 @@ public class RemoveDataService extends EchoBaseServiceSupport { strategies.put(ImportType.COMMON_VOYAGE, CommonVoyageRemoveDataStrategy.class); strategies.put(ImportType.COMMON_TRANSIT, CommonTransitRemoveDataStrategy.class); strategies.put(ImportType.COMMON_TRANSECT, CommonTransectRemoveDataStrategy.class); - strategies.put(ImportType.COMMON_ANCILLARY_INSTRUMENTATION, DummyRemoveDataStrategy.class); + strategies.put(ImportType.COMMON_ANCILLARY_INSTRUMENTATION, CommonAncillaryInstrumentationRemoveDataStrategy.class); strategies.put(ImportType.OPERATION, OperationRemoveDataStrategy.class); strategies.put(ImportType.CATCHES, CatchesRemoveDataStrategy.class); strategies.put(ImportType.ACOUSTIC, AcousticRemoveDataStrategy.class); @@ -293,7 +294,7 @@ public class RemoveDataService extends EchoBaseServiceSupport { strategies.put(ImportType.RESULT_MAP_OTHER, ResultMapOtherRemoveDataStrategy.class); strategies.put(ImportType.RESULT_REGION, ResultRegionRemoveDataStrategy.class); strategies.put(ImportType.MOORING_COMMONS, MooringRemoveDataStrategy.class); - strategies.put(ImportType.MOORING_ANCILLARY_INSTRUMENTATION, DummyRemoveDataStrategy.class); + strategies.put(ImportType.MOORING_ANCILLARY_INSTRUMENTATION, MooringAncillaryInstrumentationRemoveDataStrategy.class); strategies.put(ImportType.MOORING_ACOUSTIC, MooringAcousticRemoveDataStrategy.class); strategies.put(ImportType.RESULT_MOORING, DummyRemoveDataStrategy.class); strategies.put(ImportType.RESULT_MOORING_ESDU, DummyRemoveDataStrategy.class); diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CommonAllRemoveDataStrategy.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CommonAllRemoveDataStrategy.java index cda8611..81783ef 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CommonAllRemoveDataStrategy.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CommonAllRemoveDataStrategy.java @@ -87,7 +87,8 @@ public class CommonAllRemoveDataStrategy extends AbstractRemoveDataStrategy<Voya @Override public Set<ImportType> getPossibleSubImportType() { - return Sets.newHashSet(ImportType.COMMON_TRANSIT, + return Sets.newHashSet(ImportType.COMMON_ANCILLARY_INSTRUMENTATION, + ImportType.COMMON_TRANSIT, ImportType.COMMON_TRANSECT, ImportType.OPERATION, ImportType.CATCHES, diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/MooringRemoveDataStrategy.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CommonAncillaryInstrumentationRemoveDataStrategy.java similarity index 55% copy from echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/MooringRemoveDataStrategy.java copy to echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CommonAncillaryInstrumentationRemoveDataStrategy.java index ee3f24f..bc3b3b5 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/MooringRemoveDataStrategy.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CommonAncillaryInstrumentationRemoveDataStrategy.java @@ -4,7 +4,7 @@ package fr.ifremer.echobase.services.service.removedata.strategy; * #%L * EchoBase :: Services * %% - * Copyright (C) 2011 - 2012 Ifremer, Codelutin + * Copyright (C) 2011 - 2013 Ifremer, Codelutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by @@ -24,56 +24,46 @@ package fr.ifremer.echobase.services.service.removedata.strategy; import com.google.common.collect.Sets; import fr.ifremer.echobase.entities.ImportLog; import fr.ifremer.echobase.entities.ImportType; -import fr.ifremer.echobase.entities.data.Mooring; -import fr.ifremer.echobase.entities.data.Voyage; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.topia.persistence.TopiaException; import java.util.Set; import fr.ifremer.echobase.entities.data.DataAcousticProvider; +import fr.ifremer.echobase.entities.data.Transect; +import fr.ifremer.echobase.entities.data.Voyage; +import fr.ifremer.echobase.entities.references.AncillaryInstrumentation; /** - * Remove a {@link ImportType#MOORING_COMMONS} import. + * Remove a {@link ImportType#COMMON_ANCILLARY_INSTRUMENTATION} import. * - * Can remove only {@link Mooring}. - * - * /!\ The provider is null in this case /!\ + * Can remove only {@link AncillaryInstrumentation}. * * @author Julien Ruchaud - ruchaud@codelutin.com * @since 4.0 */ -public class MooringRemoveDataStrategy extends AbstractRemoveDataStrategy<Mooring> { +public class CommonAncillaryInstrumentationRemoveDataStrategy extends AbstractRemoveDataStrategy<Voyage> { /** Logger. */ - private static final Log log = LogFactory.getLog(MooringRemoveDataStrategy.class); - + private static final Log log = + LogFactory.getLog(CommonTransectRemoveDataStrategy.class); @Override - public long computeNbSteps(DataAcousticProvider<Mooring> provider, ImportLog importLog) { + public long computeNbSteps(DataAcousticProvider<Voyage> provider, ImportLog importLog) { long result = getImportFileIdsCount(importLog); - return result; - } - @Override - protected void removePostData(DataAcousticProvider<Mooring> provider) throws TopiaException { - // remove orphans cells - removeOrphanCells(); + return result; } @Override - protected void removeImportData(DataAcousticProvider<Mooring> provider, String id) throws TopiaException { - - if (id.startsWith(Mooring.class.getName())) { - - // get entity to delete - Mooring entity = persistenceService.getMooring(id); - - // delete it - persistenceService.deleteMooring(entity); + protected void removeImportData(DataAcousticProvider<Voyage> provider, String id) throws TopiaException { + if (id.startsWith(Transect.class.getName())) { + Transect transect = persistenceService.getTransect(id); + transect.clearAncillaryInstrumentation(); + if (log.isDebugEnabled()) { - log.debug(entity.getTopiaId() + " was removed"); + log.debug(id + " was removed"); } } else { canNotDealWithId(id); @@ -82,9 +72,6 @@ public class MooringRemoveDataStrategy extends AbstractRemoveDataStrategy<Moorin @Override public Set<ImportType> getPossibleSubImportType() { - return Sets.newHashSet(ImportType.MOORING_ACOUSTIC, - ImportType.RESULT_MOORING, - ImportType.RESULT_MOORING_ESDU); + return Sets.newHashSet(); } - } diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CommonTransectRemoveDataStrategy.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CommonTransectRemoveDataStrategy.java index 9e9a0cf..92b8d06 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CommonTransectRemoveDataStrategy.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CommonTransectRemoveDataStrategy.java @@ -108,7 +108,8 @@ public class CommonTransectRemoveDataStrategy extends AbstractRemoveDataStrategy @Override public Set<ImportType> getPossibleSubImportType() { - return Sets.newHashSet(ImportType.OPERATION, + return Sets.newHashSet(ImportType.COMMON_ANCILLARY_INSTRUMENTATION, + ImportType.OPERATION, ImportType.CATCHES, ImportType.ACOUSTIC, ImportType.RESULT_ESDU, diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CommonVoyageRemoveDataStrategy.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CommonVoyageRemoveDataStrategy.java index 5f0624b..c6dfe66 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CommonVoyageRemoveDataStrategy.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CommonVoyageRemoveDataStrategy.java @@ -88,7 +88,8 @@ public class CommonVoyageRemoveDataStrategy extends AbstractRemoveDataStrategy<V @Override public Set<ImportType> getPossibleSubImportType() { - return Sets.newHashSet(ImportType.COMMON_TRANSIT, + return Sets.newHashSet(ImportType.COMMON_ANCILLARY_INSTRUMENTATION, + ImportType.COMMON_TRANSIT, ImportType.COMMON_TRANSECT, ImportType.OPERATION, ImportType.CATCHES, diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/MooringRemoveDataStrategy.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/MooringAncillaryInstrumentationRemoveDataStrategy.java similarity index 64% copy from echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/MooringRemoveDataStrategy.java copy to echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/MooringAncillaryInstrumentationRemoveDataStrategy.java index ee3f24f..bcd5860 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/MooringRemoveDataStrategy.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/MooringAncillaryInstrumentationRemoveDataStrategy.java @@ -4,7 +4,7 @@ package fr.ifremer.echobase.services.service.removedata.strategy; * #%L * EchoBase :: Services * %% - * Copyright (C) 2011 - 2012 Ifremer, Codelutin + * Copyright (C) 2011 - 2013 Ifremer, Codelutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by @@ -24,30 +24,28 @@ package fr.ifremer.echobase.services.service.removedata.strategy; import com.google.common.collect.Sets; import fr.ifremer.echobase.entities.ImportLog; import fr.ifremer.echobase.entities.ImportType; -import fr.ifremer.echobase.entities.data.Mooring; -import fr.ifremer.echobase.entities.data.Voyage; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.topia.persistence.TopiaException; import java.util.Set; import fr.ifremer.echobase.entities.data.DataAcousticProvider; +import fr.ifremer.echobase.entities.data.Mooring; +import fr.ifremer.echobase.entities.references.AncillaryInstrumentation; /** - * Remove a {@link ImportType#MOORING_COMMONS} import. + * Remove a {@link ImportType#MOORING_ANCILLARY_INSTRUMENTATION} import. * - * Can remove only {@link Mooring}. - * - * /!\ The provider is null in this case /!\ + * Can remove only {@link AncillaryInstrumentation}. * * @author Julien Ruchaud - ruchaud@codelutin.com * @since 4.0 */ -public class MooringRemoveDataStrategy extends AbstractRemoveDataStrategy<Mooring> { +public class MooringAncillaryInstrumentationRemoveDataStrategy extends AbstractRemoveDataStrategy<Mooring> { /** Logger. */ - private static final Log log = LogFactory.getLog(MooringRemoveDataStrategy.class); - + private static final Log log = + LogFactory.getLog(CommonTransectRemoveDataStrategy.class); @Override public long computeNbSteps(DataAcousticProvider<Mooring> provider, ImportLog importLog) { @@ -56,24 +54,14 @@ public class MooringRemoveDataStrategy extends AbstractRemoveDataStrategy<Moorin } @Override - protected void removePostData(DataAcousticProvider<Mooring> provider) throws TopiaException { - // remove orphans cells - removeOrphanCells(); - } - - @Override protected void removeImportData(DataAcousticProvider<Mooring> provider, String id) throws TopiaException { if (id.startsWith(Mooring.class.getName())) { - - // get entity to delete - Mooring entity = persistenceService.getMooring(id); - - // delete it - persistenceService.deleteMooring(entity); - + Mooring mooring = provider.getEntity(); + mooring.clearAncillaryInstrumentation(); + if (log.isDebugEnabled()) { - log.debug(entity.getTopiaId() + " was removed"); + log.debug(id + " was removed"); } } else { canNotDealWithId(id); @@ -82,9 +70,6 @@ public class MooringRemoveDataStrategy extends AbstractRemoveDataStrategy<Moorin @Override public Set<ImportType> getPossibleSubImportType() { - return Sets.newHashSet(ImportType.MOORING_ACOUSTIC, - ImportType.RESULT_MOORING, - ImportType.RESULT_MOORING_ESDU); + return Sets.newHashSet(); } - } diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/MooringRemoveDataStrategy.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/MooringRemoveDataStrategy.java index ee3f24f..2dc15bd 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/MooringRemoveDataStrategy.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/MooringRemoveDataStrategy.java @@ -25,7 +25,6 @@ import com.google.common.collect.Sets; import fr.ifremer.echobase.entities.ImportLog; import fr.ifremer.echobase.entities.ImportType; import fr.ifremer.echobase.entities.data.Mooring; -import fr.ifremer.echobase.entities.data.Voyage; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.topia.persistence.TopiaException; @@ -82,7 +81,8 @@ public class MooringRemoveDataStrategy extends AbstractRemoveDataStrategy<Moorin @Override public Set<ImportType> getPossibleSubImportType() { - return Sets.newHashSet(ImportType.MOORING_ACOUSTIC, + return Sets.newHashSet(ImportType.MOORING_ANCILLARY_INSTRUMENTATION, + ImportType.MOORING_ACOUSTIC, ImportType.RESULT_MOORING, ImportType.RESULT_MOORING_ESDU); } diff --git a/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/AbstractRemoveDataServiceTest.java b/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/AbstractRemoveDataServiceTest.java index d093783..b48ecf2 100644 --- a/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/AbstractRemoveDataServiceTest.java +++ b/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/AbstractRemoveDataServiceTest.java @@ -65,6 +65,8 @@ import fr.ifremer.echobase.entities.data.TransitTopiaDao; import fr.ifremer.echobase.entities.data.Voyage; import fr.ifremer.echobase.entities.data.VoyageTopiaDao; import fr.ifremer.echobase.entities.references.AcousticInstrument; +import fr.ifremer.echobase.entities.references.AncillaryInstrumentation; +import fr.ifremer.echobase.entities.references.AncillaryInstrumentationTopiaDao; import fr.ifremer.echobase.entities.references.CellType; import fr.ifremer.echobase.entities.references.DataMetadata; import fr.ifremer.echobase.entities.references.Gear; @@ -85,9 +87,11 @@ import fr.ifremer.echobase.services.ImportDataFixtures; import fr.ifremer.echobase.services.service.UserDbPersistenceService; import fr.ifremer.echobase.services.service.importdata.configurations.ImportDataConfigurationSupport; import fr.ifremer.echobase.services.service.importdata.configurations.MooringAcousticsImportConfiguration; +import fr.ifremer.echobase.services.service.importdata.configurations.MooringCommonsAncillaryInstrumentationImportConfiguration; import fr.ifremer.echobase.services.service.importdata.configurations.MooringCommonsMooringImportConfiguration; import fr.ifremer.echobase.services.service.importdata.configurations.VoyageAcousticsImportConfiguration; import fr.ifremer.echobase.services.service.importdata.configurations.VoyageCatchesImportConfiguration; +import fr.ifremer.echobase.services.service.importdata.configurations.VoyageCommonsAncillaryInstrumentationImportConfiguration; import fr.ifremer.echobase.services.service.importdata.configurations.VoyageCommonsImportConfiguration; import fr.ifremer.echobase.services.service.importdata.configurations.VoyageOperationsImportConfiguration; import fr.ifremer.echobase.services.service.importdata.configurations.VoyageResultsImportConfiguration; @@ -144,6 +148,10 @@ public abstract class AbstractRemoveDataServiceTest extends EchoBaseTestServiceS protected String importMooringId; protected String importMooringAcousticId; + + protected String importVoyageAncillaryInstrumentationId; + + protected String importMooringAncillaryInstrumentationId; protected static final String voyage1Id = "fr.ifremer.echobase.entities.data.Voyage#1#1"; @@ -213,6 +221,8 @@ public abstract class AbstractRemoveDataServiceTest extends EchoBaseTestServiceS protected static final String transect2_2Id = "fr.ifremer.echobase.entities.data.Transect#2#2"; + protected AncillaryInstrumentationTopiaDao ancillaryInstrumentationDAO; + protected VoyageTopiaDao voyageDAO; protected TransectTopiaDao transectDAO; @@ -267,6 +277,8 @@ public abstract class AbstractRemoveDataServiceTest extends EchoBaseTestServiceS persistenceContext = serviceContext.getEchoBaseUserPersistenceContext(); + ancillaryInstrumentationDAO = persistenceContext.getAncillaryInstrumentationDao(); + voyageDAO = persistenceContext.getVoyageDao(); transectDAO = persistenceContext.getTransectDao(); transitDAO = persistenceContext.getTransitDao(); @@ -301,6 +313,7 @@ public abstract class AbstractRemoveDataServiceTest extends EchoBaseTestServiceS createResultRegionImportV1(); createResultMapFishImportV1(); createResultMapOtherImportV1(); + createVoyageAncillaryInstrumentationImport(); // create imports for voyage 2 createCommonVoyageImportV2(); @@ -317,6 +330,7 @@ public abstract class AbstractRemoveDataServiceTest extends EchoBaseTestServiceS // Create imports for mooring createMooringImport(); createMooringAcousticImport(); + createMooringAncillaryInstrumentationImport(); } protected void removeImport(String importId, String... shoudDeleteIds) throws TopiaException { @@ -338,6 +352,8 @@ public abstract class AbstractRemoveDataServiceTest extends EchoBaseTestServiceS importCommonTransect2Id, importMooringId, importMooringAcousticId, + importVoyageAncillaryInstrumentationId, + importMooringAncillaryInstrumentationId, voyage1Id, transit1Id, transect1Id, transect1_2Id, operation1Id, totalSample1Id, subSample1Id, biometrySample1Id, @@ -396,7 +412,7 @@ public abstract class AbstractRemoveDataServiceTest extends EchoBaseTestServiceS TopiaDao<E> dao = persistenceContext.getDao(entityType); return dao.forTopiaIdEquals(id).findUniqueOrNull(); } - + private void createCommonVoyageImportV1() { // create voyage @@ -887,7 +903,6 @@ public abstract class AbstractRemoveDataServiceTest extends EchoBaseTestServiceS } private void createMooringAcousticImport() { - Mooring mooring = getEntity(mooringId); // create data acquisition @@ -929,11 +944,39 @@ public abstract class AbstractRemoveDataServiceTest extends EchoBaseTestServiceS mooringId, dataAcquisition); } + + private void createVoyageAncillaryInstrumentationImport() { + List<AncillaryInstrumentation> instrumentations = ancillaryInstrumentationDAO.findAll(); + Transect transect = getEntity(transect1Id); + transect.addAllAncillaryInstrumentation(instrumentations); + + Voyage voyage = transect.getTransit().getVoyage(); + + importVoyageAncillaryInstrumentationId = createImport( + new VoyageCommonsAncillaryInstrumentationImportConfiguration(getLocale()), + ImportType.COMMON_ANCILLARY_INSTRUMENTATION, + "AncillaryInstrumentationVoyage", + voyage.getTopiaId(), + transect); + } + + private void createMooringAncillaryInstrumentationImport() { + List<AncillaryInstrumentation> instrumentations = ancillaryInstrumentationDAO.findAll(); + Mooring mooring = getEntity(mooringId); + mooring.addAllAncillaryInstrumentation(instrumentations); + + importMooringAncillaryInstrumentationId = createImport( + new MooringCommonsAncillaryInstrumentationImportConfiguration(getLocale()), + ImportType.MOORING_ANCILLARY_INSTRUMENTATION, + "AncillaryInstrumentationMooring", + mooringId, + mooring); + } private <C extends ImportDataConfigurationSupport> String createImport(C importConf, ImportType importType, String importNote, - String voyageId, + String providerId, TopiaEntity... importIds) { importConf.setImportType(importType); importConf.setImportNotes(importNote); @@ -945,7 +988,7 @@ public abstract class AbstractRemoveDataServiceTest extends EchoBaseTestServiceS createFakeUser().getEmail(), newDate(), importNote); - importLog.setEntityId(voyageId); + importLog.setEntityId(providerId); InputFile fakeInputFile = InputFile.newFile("Fake import: " + importConf); try { diff --git a/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/MooringRemoveDataServiceTest.java b/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/AncillaryInstrumentationRemoveDataServiceTest.java similarity index 57% copy from echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/MooringRemoveDataServiceTest.java copy to echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/AncillaryInstrumentationRemoveDataServiceTest.java index 4d46478..48e1e6b 100644 --- a/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/MooringRemoveDataServiceTest.java +++ b/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/AncillaryInstrumentationRemoveDataServiceTest.java @@ -4,7 +4,7 @@ package fr.ifremer.echobase.ui.actions.removedata; * #%L * EchoBase :: Services * %% - * Copyright (C) 2011 - 2013 Ifremer, Codelutin + * Copyright (C) 2011 - 2012 Ifremer, Codelutin * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by @@ -22,33 +22,35 @@ package fr.ifremer.echobase.ui.actions.removedata; */ import fr.ifremer.echobase.services.service.removedata.RemoveDataService; -import fr.ifremer.echobase.services.service.removedata.strategy.MooringRemoveDataStrategy; +import fr.ifremer.echobase.services.service.removedata.strategy.MooringAncillaryInstrumentationRemoveDataStrategy; import org.junit.Test; -import org.nuiton.topia.persistence.TopiaException; /** - * Test{@link RemoveDataService} with {@link MooringRemoveDataStrategy}. + * Test{@link RemoveDataService} with {@link MooringAncillaryInstrumentationRemoveDataStrategy} or + * {@link CommonsAncillaryInstrumentationRemoveDataStrategy}. * * @author Julien Ruchaud - ruchaud@codelutin.com * @since 4.0 */ -public class MooringRemoveDataServiceTest extends AbstractRemoveDataServiceTest { +public class AncillaryInstrumentationRemoveDataServiceTest extends AbstractRemoveDataServiceTest { @Test - public void removeImport() throws TopiaException { + public void removeVoyageImport() throws Exception { removeImport(// import to remove - importMooringId, - - // data that should be removed - mooringId, - dataAcquisition2Id, cellEsdu2Id, cellElementary2Id, - - // importLog that should be removed - importMooringId, - importMooringAcousticId); - } -} + importVoyageAncillaryInstrumentationId, + importVoyageAncillaryInstrumentationId + ); + } + + @Test + public void removeMooringImport() throws Exception { + removeImport(// import to remove + importMooringAncillaryInstrumentationId, + importMooringAncillaryInstrumentationId + ); + } +} diff --git a/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/CommonAllRemoveDataServiceTest.java b/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/CommonAllRemoveDataServiceTest.java index 3252ad9..454796b 100644 --- a/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/CommonAllRemoveDataServiceTest.java +++ b/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/CommonAllRemoveDataServiceTest.java @@ -51,6 +51,7 @@ public class CommonAllRemoveDataServiceTest extends AbstractRemoveDataServiceTes importCommonVoyage1Id, importCommonTransit1Id, importCommonTransect1Id, + importVoyageAncillaryInstrumentationId, importOperation1Id, importCatches1Id, importAcoustic1Id, diff --git a/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/CommonTransectRemoveDataServiceTest.java b/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/CommonTransectRemoveDataServiceTest.java index 9d8b749..944dac6 100644 --- a/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/CommonTransectRemoveDataServiceTest.java +++ b/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/CommonTransectRemoveDataServiceTest.java @@ -48,6 +48,7 @@ public class CommonTransectRemoveDataServiceTest extends AbstractRemoveDataServi cellMapOther1Id, resultMapOther1Id, // importLog that should be removed importCommonTransect1Id, + importVoyageAncillaryInstrumentationId, importOperation1Id, importCatches1Id, importAcoustic1Id, diff --git a/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/CommonVoyageRemoveDataServiceTest.java b/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/CommonVoyageRemoveDataServiceTest.java index 5c7292d..cb092c4 100644 --- a/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/CommonVoyageRemoveDataServiceTest.java +++ b/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/CommonVoyageRemoveDataServiceTest.java @@ -51,6 +51,7 @@ public class CommonVoyageRemoveDataServiceTest extends AbstractRemoveDataService importCommonVoyage1Id, importCommonTransit1Id, importCommonTransect1Id, + importVoyageAncillaryInstrumentationId, importOperation1Id, importCatches1Id, importAcoustic1Id, diff --git a/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/MooringRemoveDataServiceTest.java b/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/MooringRemoveDataServiceTest.java index 4d46478..78dd901 100644 --- a/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/MooringRemoveDataServiceTest.java +++ b/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/MooringRemoveDataServiceTest.java @@ -46,7 +46,8 @@ public class MooringRemoveDataServiceTest extends AbstractRemoveDataServiceTest // importLog that should be removed importMooringId, - importMooringAcousticId); + importMooringAcousticId, + importMooringAncillaryInstrumentationId); } } diff --git a/echobase-services/src/test/resources/import-data/echobase-commonData.h2.db.gz b/echobase-services/src/test/resources/import-data/echobase-commonData.h2.db.gz index 3363b6d..b9e6a96 100644 Binary files a/echobase-services/src/test/resources/import-data/echobase-commonData.h2.db.gz and b/echobase-services/src/test/resources/import-data/echobase-commonData.h2.db.gz differ diff --git a/echobase-services/src/test/resources/import-data/echobase-nodata.h2.db.gz b/echobase-services/src/test/resources/import-data/echobase-nodata.h2.db.gz index f283ae8..0bd02f8 100644 Binary files a/echobase-services/src/test/resources/import-data/echobase-nodata.h2.db.gz and b/echobase-services/src/test/resources/import-data/echobase-nodata.h2.db.gz differ -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.