Author: tchemit Date: 2013-08-01 02:12:52 +0200 (Thu, 01 Aug 2013) New Revision: 825 Url: http://forge.codelutin.com/projects/echobase/repository/revisions/825 Log: fixes #3028: Permettre l'import s?\195?\169par?\195?\169 des voyages, transits, transects Added: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/CommonTransitImportService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/CommonVoyageImportService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/removedata/strategy/CommonTransitRemoveDataStrategy.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/removedata/strategy/CommonVoyageRemoveDataStrategy.java trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/CommonTransitImportServiceIT.java trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/CommonVoyageImportServiceIT.java trunk/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/CommonTransitRemoveDataServiceTest.java trunk/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/CommonVoyageRemoveDataServiceTest.java Removed: trunk/echobase-domain/src/test/java/fr/ifremer/echobase/entities/ Modified: trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/ImportType.java trunk/echobase-domain/src/main/resources/i18n/echobase-domain_en_GB.properties trunk/echobase-domain/src/main/resources/i18n/echobase-domain_fr_FR.properties trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/CommonAllImportService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/CommonImportService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/CommonTransectImportService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/removedata/RemoveDataService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/removedata/strategy/CommonAllRemoveDataStrategy.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/removedata/strategy/LegacyVoyageRemoveDataStrategy.java trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/EchoBaseServiceFixtures.java trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/EchoBaseTestServiceSupport.java trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/CommonAllImportServiceIT.java trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/CommonTransectImportServiceIT.java trunk/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/AbstractRemoveDataServiceTest.java trunk/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/CommonAllRemoveDataServiceTest.java trunk/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/CommonTransectRemoveDataServiceTest.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/ConfigureCommonImport.java trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/configureCommonImport.jsp Modified: trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/ImportType.java =================================================================== --- trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/ImportType.java 2013-07-25 17:08:39 UTC (rev 824) +++ trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/ImportType.java 2013-08-01 00:12:52 UTC (rev 825) @@ -43,15 +43,23 @@ COMMON_ALL(n_("echobase.common.importType.commonDataAll"), n_("echobase.common.importType.commonDataAll.short")), - /** Import all common data from Transect to Operation. */ + /** Import Voyage. */ + COMMON_VOYAGE(n_("echobase.common.importType.commonDataVoyage"), + n_("echobase.common.importType.commonDataVoyage.short")), + + /** Import Transit. */ + COMMON_TRANSIT(n_("echobase.common.importType.commonDataTransit"), + n_("echobase.common.importType.commonDataTransit.short")), + + /** Import Transect. */ COMMON_TRANSECT(n_("echobase.common.importType.commonDataTransect"), n_("echobase.common.importType.commonDataTransect.short")), - /** Import operations common data. */ + /** Import Operations. */ OPERATION(n_("echobase.common.importType.operation"), n_("echobase.common.importType.operation.short")), - /** Import catches data (unsorted, total, but no individual ones). */ + /** Import Catches (unsorted, total, but no individual ones). */ CATCHES(n_("echobase.common.importType.catches"), n_("echobase.common.importType.catches.short")), @@ -82,6 +90,8 @@ */ protected static final ImportType[] COMMON_IMPORT_TYPES = new ImportType[]{ ImportType.COMMON_ALL, + ImportType.COMMON_VOYAGE, + ImportType.COMMON_TRANSIT, ImportType.COMMON_TRANSECT}; /** Modified: trunk/echobase-domain/src/main/resources/i18n/echobase-domain_en_GB.properties =================================================================== --- trunk/echobase-domain/src/main/resources/i18n/echobase-domain_en_GB.properties 2013-07-25 17:08:39 UTC (rev 824) +++ trunk/echobase-domain/src/main/resources/i18n/echobase-domain_en_GB.properties 2013-08-01 00:12:52 UTC (rev 825) @@ -8,6 +8,10 @@ echobase.common.importType.commonDataAll.short=V/T/T echobase.common.importType.commonDataTransect=Transects import echobase.common.importType.commonDataTransect.short=Transect +echobase.common.importType.commonDataTransit= +echobase.common.importType.commonDataTransit.short= +echobase.common.importType.commonDataVoyage= +echobase.common.importType.commonDataVoyage.short= echobase.common.importType.operation=Operations data import echobase.common.importType.operation.short=Operation echobase.common.importType.resultsEsdu=Import the “ESDU” cells results Modified: trunk/echobase-domain/src/main/resources/i18n/echobase-domain_fr_FR.properties =================================================================== --- trunk/echobase-domain/src/main/resources/i18n/echobase-domain_fr_FR.properties 2013-07-25 17:08:39 UTC (rev 824) +++ trunk/echobase-domain/src/main/resources/i18n/echobase-domain_fr_FR.properties 2013-08-01 00:12:52 UTC (rev 825) @@ -8,6 +8,10 @@ echobase.common.importType.commonDataAll.short=V/T/T echobase.common.importType.commonDataTransect=Import Transects echobase.common.importType.commonDataTransect.short=Transects +echobase.common.importType.commonDataTransit=Import Transits +echobase.common.importType.commonDataTransit.short=Transits +echobase.common.importType.commonDataVoyage=Import Voyage +echobase.common.importType.commonDataVoyage.short=Voyage echobase.common.importType.operation=Import des opérations echobase.common.importType.operation.short=Opérations echobase.common.importType.resultsEsdu=Import des résultats des cellules de type "ESDU" Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/CommonAllImportService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/CommonAllImportService.java 2013-07-25 17:08:39 UTC (rev 824) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/CommonAllImportService.java 2013-08-01 00:12:52 UTC (rev 825) @@ -23,34 +23,12 @@ */ package fr.ifremer.echobase.services.importdata; -import com.google.common.collect.Maps; import fr.ifremer.echobase.EchoBaseFunctions; -import fr.ifremer.echobase.entities.EchoBaseEntityEnum; import fr.ifremer.echobase.entities.EchoBaseUser; -import fr.ifremer.echobase.entities.data.Transit; -import fr.ifremer.echobase.entities.data.TransitDAO; -import fr.ifremer.echobase.entities.data.Voyage; -import fr.ifremer.echobase.entities.data.VoyageDAO; -import fr.ifremer.echobase.entities.references.AreaOfOperation; -import fr.ifremer.echobase.entities.references.Mission; import fr.ifremer.echobase.entities.references.Vessel; -import fr.ifremer.echobase.io.InputFile; -import fr.ifremer.echobase.services.importdata.csv.TransitImportModel; -import fr.ifremer.echobase.services.importdata.csv.TransitImportRow; -import fr.ifremer.echobase.services.importdata.csv.VoyageImportModel; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.nuiton.csv.Import; -import org.nuiton.csv.ImportModel; -import org.nuiton.csv.ImportRuntimeException; -import java.io.Reader; -import java.util.Arrays; -import java.util.Locale; import java.util.Map; -import static org.nuiton.i18n.I18n.l_; - /** * Service to launch a "common all data" import. * @@ -59,10 +37,6 @@ */ public class CommonAllImportService extends AbstractImportDataService<CommonImportConfiguration> { - /** Logger. */ - private static final Log log = - LogFactory.getLog(CommonAllImportService.class); - @Override protected void startImport(CommonImportConfiguration configuration, EchoBaseUser user) throws ImportException { @@ -73,141 +47,14 @@ EchoBaseCsvFileImportResult importResult; - importResult = importVoyageFile(configuration); + importResult = getService(CommonVoyageImportService.class).importFile(configuration); configuration.addResult(importResult); - importResult = importTransitFile(configuration); + importResult = getService(CommonTransitImportService.class).importFile(configuration, false); configuration.addResult(importResult); - CommonImportService service = getService(CommonImportService.class); - - importResult = service.importTransectFile(vesselMap, configuration, false); + importResult = getService(CommonTransectImportService.class).importFile(vesselMap, configuration, false); configuration.addResult(importResult); } - protected EchoBaseCsvFileImportResult importVoyageFile( - CommonImportConfiguration configuration) throws ImportException { - - InputFile inputFile = configuration.getVoyageFile(); - - if (log.isInfoEnabled()) { - log.info("Starts import of voyages from file " + - inputFile.getFileName()); - } - - Mission mission = getEntityById(Mission.class, - configuration.getMissionId()); - AreaOfOperation areaOfOperation = - getEntityById(AreaOfOperation.class, - configuration.getAreaOfOperationId()); - - EchoBaseCsvFileImportResult result = newImportResult(inputFile); - - String voyageDescription = configuration.getVoyageDescription(); - String datum = configuration.getDatum(); - - VoyageDAO dao = getDAO(Voyage.class, VoyageDAO.class); - - ImportModel<Voyage> csvModel = new VoyageImportModel(getCsvSeparator()); - - Voyage newVoyage = null; - Locale locale = getLocale(); - Reader reader = getInputFileReader(inputFile); - try { - Import<Voyage> importer = Import.newImport(csvModel, reader); - - configuration.incrementsProgress(); - for (Voyage voyage : importer) { - - configuration.incrementsProgress(); - - voyage.setMission(mission); - voyage.setAreaOfOperation(areaOfOperation); - voyage.setDescription(voyageDescription); - voyage.setDatum(datum); - - Voyage createdVoyage = create(dao, voyage); - if (newVoyage == null) { - newVoyage = createdVoyage; - } else { - // this means a voyage file with more than one row not possible... - - throw new ImportException( - l_(locale, "echobase.importError.can.only.import.one.voyage.atime")); - } - - // collect id of the import - result.addId(EchoBaseEntityEnum.Voyage, voyage); - } - - if (newVoyage == null) { - throw new ImportException( - l_(locale, "echobase.importError.no.voyage.imported")); - } - - // push back to id of the voyage in configuration for next imports - configuration.setVoyageId(newVoyage.getTopiaId()); - - return result; - } catch (ImportRuntimeException e) { - throw new ImportException(locale, inputFile, e); - } finally { - closeReader(reader, inputFile); - } - } - - protected EchoBaseCsvFileImportResult importTransitFile( - CommonImportConfiguration configuration) throws ImportException { - - InputFile inputFile = configuration.getTransitFile(); - - if (log.isInfoEnabled()) { - log.info("Starts import of transits from file " + - inputFile.getFileName()); - } - EchoBaseCsvFileImportResult importResult = newImportResult(inputFile); - - // get voyage - Voyage voyage = getEntityById(Voyage.class, - configuration.getVoyageId()); - - // restrict voyage to use to this voyage - Map<String, Voyage> voyageMap = Maps.uniqueIndex( - Arrays.asList(voyage), EchoBaseFunctions.VOYAGE_NAME); - - String relatedActivity = configuration.getTransitRelatedActivity(); - - TransitImportModel csvModel = - new TransitImportModel(getCsvSeparator(), voyageMap); - - TransitDAO dao = getDAO(Transit.class, TransitDAO.class); - - Reader reader = getInputFileReader(inputFile); - try { - Import<TransitImportRow> importer = - Import.newImport(csvModel, reader); - - configuration.incrementsProgress(); - for (TransitImportRow row : importer) { - - configuration.incrementsProgress(); - Transit transit = row.getTransit(); - - transit.setRelatedActivity(relatedActivity); - - Transit createdTransit = create(dao, transit); - - voyage.addTransit(createdTransit); - - importResult.incrementsNumberCreated(EchoBaseEntityEnum.Transit); - } - return importResult; - } catch (ImportRuntimeException e) { - throw new ImportException(getLocale(), inputFile, e); - } finally { - closeReader(reader, inputFile); - } - } - - } Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/CommonImportService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/CommonImportService.java 2013-07-25 17:08:39 UTC (rev 824) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/CommonImportService.java 2013-08-01 00:12:52 UTC (rev 825) @@ -24,35 +24,13 @@ package fr.ifremer.echobase.services.importdata; import com.google.common.base.Preconditions; -import com.google.common.collect.Maps; -import fr.ifremer.echobase.EchoBaseFunctions; import fr.ifremer.echobase.EchoBaseTechnicalException; -import fr.ifremer.echobase.entities.EchoBaseEntityEnum; import fr.ifremer.echobase.entities.EchoBaseUser; import fr.ifremer.echobase.entities.ImportType; -import fr.ifremer.echobase.entities.data.Transect; -import fr.ifremer.echobase.entities.data.TransectDAO; -import fr.ifremer.echobase.entities.data.Transit; -import fr.ifremer.echobase.entities.data.Voyage; import fr.ifremer.echobase.entities.references.Mission; import fr.ifremer.echobase.entities.references.MissionDAO; -import fr.ifremer.echobase.entities.references.Vessel; -import fr.ifremer.echobase.io.InputFile; -import fr.ifremer.echobase.services.importdata.csv.TransectImportModel; -import fr.ifremer.echobase.services.importdata.csv.TransectImportRow; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; import org.nuiton.topia.TopiaException; -import org.nuiton.csv.Import; -import org.nuiton.csv.ImportRuntimeException; -import java.io.Reader; -import java.util.Arrays; -import java.util.Date; -import java.util.Map; - -import static org.nuiton.i18n.I18n.l_; - /** * Service to launch a "common data" import. * @@ -61,9 +39,6 @@ */ public class CommonImportService extends AbstractImportDataService<CommonImportConfiguration> { - /** Logger. */ - private static final Log log = LogFactory.getLog(CommonImportService.class); - @Override public void startImport(CommonImportConfiguration configuration, EchoBaseUser user) throws ImportException { @@ -78,8 +53,15 @@ service = getService(CommonAllImportService.class); break; - case COMMON_TRANSECT: + case COMMON_VOYAGE: + service = getService(CommonVoyageImportService.class); + break; + case COMMON_TRANSIT: + service = getService(CommonTransitImportService.class); + break; + + case COMMON_TRANSECT: service = getService(CommonTransectImportService.class); break; @@ -111,93 +93,4 @@ throw new EchoBaseTechnicalException(eee); } } - - protected EchoBaseCsvFileImportResult importTransectFile( - Map<String, Vessel> vesselMap, - CommonImportConfiguration configuration, - boolean collectIds) throws ImportException { - - InputFile inputFile = configuration.getTransectFile(); - - if (log.isInfoEnabled()) { - log.info("Starts import of transects from file " + - inputFile.getFileName()); - } - - EchoBaseCsvFileImportResult importResult = newImportResult(inputFile); - - // get voyage - Voyage voyage = getEntityById(Voyage.class, - configuration.getVoyageId()); - - // restrict voyage to use to this voyage - Map<String, Voyage> voyageMap = Maps.uniqueIndex( - Arrays.asList(voyage), EchoBaseFunctions.VOYAGE_NAME); - - String datum = configuration.getDatum(); - String license = configuration.getTransectLicence(); - String geospatialVerticalPositive = - configuration.getTransectGeospatialVerticalPositive(); - String binUnitsPingAxis = configuration.getTransectBinUnitsPingAxis(); - - TransectImportModel csvModel = - new TransectImportModel(getCsvSeparator(), - voyageMap, - vesselMap); - - TransectDAO dao = getDAO(Transect.class, TransectDAO.class); - - Reader reader = getInputFileReader(inputFile); - try { - Import<TransectImportRow> importer = - Import.newImport(csvModel, reader); - - configuration.incrementsProgress(); - for (TransectImportRow row : importer) { - - configuration.incrementsProgress(); - Transect transect = row.getTransect(); - - Date timeCoverageStart = transect.getTimeCoverageStart(); - Date timeCoverageEnd = transect.getTimeCoverageEnd(); - - Transit transit = voyage.getTransit(timeCoverageStart, - timeCoverageEnd); - if (transit == null) { - throw new ImportException( - l_(getLocale(), "echobase.importError.no.transit.between.date", - voyage.getName(), timeCoverageStart, timeCoverageEnd)); - } - - transect.setDatum(datum); - transect.setLicence(license); - transect.setGeospatialVerticalPositive( - geospatialVerticalPositive); - transect.setBinUnitsPingAxis(binUnitsPingAxis); - - Transect createdTransect = create(dao, transect); - - transit.addTransect(createdTransect); - - if (collectIds) { - - // collect id of the import - importResult.addId(EchoBaseEntityEnum.Transect, - createdTransect); - } else { - - importResult.incrementsNumberCreated(EchoBaseEntityEnum.Transect); - } - } - - return importResult; - - } catch (ImportRuntimeException e) { - throw new ImportException(getLocale(), inputFile, e); - } finally { - closeReader(reader, inputFile); - } - } - - } Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/CommonTransectImportService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/CommonTransectImportService.java 2013-07-25 17:08:39 UTC (rev 824) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/CommonTransectImportService.java 2013-08-01 00:12:52 UTC (rev 825) @@ -23,12 +23,30 @@ */ package fr.ifremer.echobase.services.importdata; +import com.google.common.collect.Maps; import fr.ifremer.echobase.EchoBaseFunctions; +import fr.ifremer.echobase.entities.EchoBaseEntityEnum; import fr.ifremer.echobase.entities.EchoBaseUser; +import fr.ifremer.echobase.entities.data.Transect; +import fr.ifremer.echobase.entities.data.TransectDAO; +import fr.ifremer.echobase.entities.data.Transit; +import fr.ifremer.echobase.entities.data.Voyage; import fr.ifremer.echobase.entities.references.Vessel; +import fr.ifremer.echobase.io.InputFile; +import fr.ifremer.echobase.services.importdata.csv.TransectImportModel; +import fr.ifremer.echobase.services.importdata.csv.TransectImportRow; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.nuiton.csv.Import; +import org.nuiton.csv.ImportRuntimeException; +import java.io.Reader; +import java.util.Arrays; +import java.util.Date; import java.util.Map; +import static org.nuiton.i18n.I18n.l_; + /** * Service to launch a "common transect data" import. * @@ -37,6 +55,9 @@ */ public class CommonTransectImportService extends AbstractImportDataService<CommonImportConfiguration> { + /** Logger. */ + private static final Log log = + LogFactory.getLog(CommonTransectImportService.class); @Override protected void startImport( @@ -49,9 +70,94 @@ EchoBaseCsvFileImportResult importResult; - CommonImportService service = getService(CommonImportService.class); - - importResult = service.importTransectFile(vesselMap, configuration, true); + importResult = importFile(vesselMap, configuration, true); configuration.addResult(importResult); } + + protected EchoBaseCsvFileImportResult importFile( + Map<String, Vessel> vesselMap, + CommonImportConfiguration configuration, + boolean collectIds) throws ImportException { + + InputFile inputFile = configuration.getTransectFile(); + + if (log.isInfoEnabled()) { + log.info("Starts import of transects from file " + + inputFile.getFileName()); + } + + EchoBaseCsvFileImportResult importResult = newImportResult(inputFile); + + // get voyage + Voyage voyage = getEntityById(Voyage.class, + configuration.getVoyageId()); + + // restrict voyage to use to this voyage + Map<String, Voyage> voyageMap = Maps.uniqueIndex( + Arrays.asList(voyage), EchoBaseFunctions.VOYAGE_NAME); + + String datum = configuration.getDatum(); + String license = configuration.getTransectLicence(); + String geospatialVerticalPositive = + configuration.getTransectGeospatialVerticalPositive(); + String binUnitsPingAxis = configuration.getTransectBinUnitsPingAxis(); + + TransectImportModel csvModel = + new TransectImportModel(getCsvSeparator(), + voyageMap, + vesselMap); + + TransectDAO dao = getDAO(Transect.class, TransectDAO.class); + + Reader reader = getInputFileReader(inputFile); + try { + Import<TransectImportRow> importer = + Import.newImport(csvModel, reader); + + configuration.incrementsProgress(); + for (TransectImportRow row : importer) { + + configuration.incrementsProgress(); + Transect transect = row.getTransect(); + + Date timeCoverageStart = transect.getTimeCoverageStart(); + Date timeCoverageEnd = transect.getTimeCoverageEnd(); + + Transit transit = voyage.getTransit(timeCoverageStart, + timeCoverageEnd); + if (transit == null) { + throw new ImportException( + l_(getLocale(), "echobase.importError.no.transit.between.date", + voyage.getName(), timeCoverageStart, timeCoverageEnd)); + } + + transect.setDatum(datum); + transect.setLicence(license); + transect.setGeospatialVerticalPositive( + geospatialVerticalPositive); + transect.setBinUnitsPingAxis(binUnitsPingAxis); + + Transect createdTransect = create(dao, transect); + + transit.addTransect(createdTransect); + + if (collectIds) { + + // collect id of the import + importResult.addId(EchoBaseEntityEnum.Transect, + createdTransect); + } else { + + importResult.incrementsNumberCreated(EchoBaseEntityEnum.Transect); + } + } + + return importResult; + + } catch (ImportRuntimeException e) { + throw new ImportException(getLocale(), inputFile, e); + } finally { + closeReader(reader, inputFile); + } + } } Added: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/CommonTransitImportService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/CommonTransitImportService.java (rev 0) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/CommonTransitImportService.java 2013-08-01 00:12:52 UTC (rev 825) @@ -0,0 +1,128 @@ +package fr.ifremer.echobase.services.importdata; + +/* + * #%L + * EchoBase :: Services + * $Id$ + * $HeadURL$ + * %% + * 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 + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ + +import com.google.common.collect.Maps; +import fr.ifremer.echobase.EchoBaseFunctions; +import fr.ifremer.echobase.entities.EchoBaseEntityEnum; +import fr.ifremer.echobase.entities.EchoBaseUser; +import fr.ifremer.echobase.entities.data.Transit; +import fr.ifremer.echobase.entities.data.TransitDAO; +import fr.ifremer.echobase.entities.data.Voyage; +import fr.ifremer.echobase.io.InputFile; +import fr.ifremer.echobase.services.importdata.csv.TransitImportModel; +import fr.ifremer.echobase.services.importdata.csv.TransitImportRow; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.nuiton.csv.Import; +import org.nuiton.csv.ImportRuntimeException; + +import java.io.Reader; +import java.util.Arrays; +import java.util.Map; + +/** + * Service to launch a "common transit data" import. + * + * @author tchemit <chemit@codelutin.com> + * @since 2.2 + */ +public class CommonTransitImportService extends AbstractImportDataService<CommonImportConfiguration> { + + /** Logger. */ + private static final Log log = + LogFactory.getLog(CommonTransitImportService.class); + + @Override + protected void startImport( + CommonImportConfiguration configuration, + EchoBaseUser user) throws ImportException { + + EchoBaseCsvFileImportResult importResult = + importFile(configuration, true); + configuration.addResult(importResult); + } + + protected EchoBaseCsvFileImportResult importFile( + CommonImportConfiguration configuration, + boolean collectIds) throws ImportException { + + InputFile inputFile = configuration.getTransitFile(); + + if (log.isInfoEnabled()) { + log.info("Starts import of transits from file " + + inputFile.getFileName()); + } + EchoBaseCsvFileImportResult importResult = newImportResult(inputFile); + + // get voyage + Voyage voyage = getEntityById(Voyage.class, + configuration.getVoyageId()); + + // restrict voyage to use to this voyage + Map<String, Voyage> voyageMap = Maps.uniqueIndex( + Arrays.asList(voyage), EchoBaseFunctions.VOYAGE_NAME); + + String relatedActivity = configuration.getTransitRelatedActivity(); + + TransitImportModel csvModel = + new TransitImportModel(getCsvSeparator(), voyageMap); + + TransitDAO dao = getDAO(Transit.class, TransitDAO.class); + + Reader reader = getInputFileReader(inputFile); + try { + Import<TransitImportRow> importer = + Import.newImport(csvModel, reader); + + configuration.incrementsProgress(); + for (TransitImportRow row : importer) { + + configuration.incrementsProgress(); + Transit transit = row.getTransit(); + + transit.setRelatedActivity(relatedActivity); + + Transit createdTransit = create(dao, transit); + + voyage.addTransit(createdTransit); + + if (collectIds) { + + // collect id of the import + importResult.addId(EchoBaseEntityEnum.Transit, + createdTransit); + } else { + + importResult.incrementsNumberCreated(EchoBaseEntityEnum.Transit); + } + } + return importResult; + } catch (ImportRuntimeException e) { + throw new ImportException(getLocale(), inputFile, e); + } finally { + closeReader(reader, inputFile); + } + } +} \ No newline at end of file Property changes on: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/CommonTransitImportService.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/CommonVoyageImportService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/CommonVoyageImportService.java (rev 0) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/CommonVoyageImportService.java 2013-08-01 00:12:52 UTC (rev 825) @@ -0,0 +1,138 @@ +package fr.ifremer.echobase.services.importdata; + +/* + * #%L + * EchoBase :: Services + * $Id$ + * $HeadURL$ + * %% + * 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 + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ + +import fr.ifremer.echobase.entities.EchoBaseEntityEnum; +import fr.ifremer.echobase.entities.EchoBaseUser; +import fr.ifremer.echobase.entities.data.Voyage; +import fr.ifremer.echobase.entities.data.VoyageDAO; +import fr.ifremer.echobase.entities.references.AreaOfOperation; +import fr.ifremer.echobase.entities.references.Mission; +import fr.ifremer.echobase.io.InputFile; +import fr.ifremer.echobase.services.importdata.csv.VoyageImportModel; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.nuiton.csv.Import; +import org.nuiton.csv.ImportModel; +import org.nuiton.csv.ImportRuntimeException; + +import java.io.Reader; +import java.util.Locale; + +import static org.nuiton.i18n.I18n.l_; + +/** + * Service to launch a "common voyage data" import. + * + * @author tchemit <chemit@codelutin.com> + * @since 2.2 + */ +public class CommonVoyageImportService extends AbstractImportDataService<CommonImportConfiguration> { + + /** Logger. */ + private static final Log log = + LogFactory.getLog(CommonVoyageImportService.class); + + @Override + protected void startImport( + CommonImportConfiguration configuration, + EchoBaseUser user) throws ImportException { + + EchoBaseCsvFileImportResult importResult; + + importResult = importFile(configuration); + configuration.addResult(importResult); + } + + protected EchoBaseCsvFileImportResult importFile( + CommonImportConfiguration configuration) throws ImportException { + + InputFile inputFile = configuration.getVoyageFile(); + + if (log.isInfoEnabled()) { + log.info("Starts import of voyages from file " + + inputFile.getFileName()); + } + + Mission mission = getEntityById(Mission.class, + configuration.getMissionId()); + AreaOfOperation areaOfOperation = + getEntityById(AreaOfOperation.class, + configuration.getAreaOfOperationId()); + + EchoBaseCsvFileImportResult result = newImportResult(inputFile); + + String voyageDescription = configuration.getVoyageDescription(); + String datum = configuration.getDatum(); + + VoyageDAO dao = getDAO(Voyage.class, VoyageDAO.class); + + ImportModel<Voyage> csvModel = new VoyageImportModel(getCsvSeparator()); + + Voyage newVoyage = null; + Locale locale = getLocale(); + Reader reader = getInputFileReader(inputFile); + try { + Import<Voyage> importer = Import.newImport(csvModel, reader); + + configuration.incrementsProgress(); + for (Voyage voyage : importer) { + + configuration.incrementsProgress(); + + voyage.setMission(mission); + voyage.setAreaOfOperation(areaOfOperation); + voyage.setDescription(voyageDescription); + voyage.setDatum(datum); + + Voyage createdVoyage = create(dao, voyage); + if (newVoyage == null) { + newVoyage = createdVoyage; + } else { + // this means a voyage file with more than one row not possible... + + throw new ImportException( + l_(locale, "echobase.importError.can.only.import.one.voyage.atime")); + } + + // collect id of the import + result.addId(EchoBaseEntityEnum.Voyage, voyage); + } + + if (newVoyage == null) { + throw new ImportException( + l_(locale, "echobase.importError.no.voyage.imported")); + } + + // push back to id of the voyage in configuration for next imports + configuration.setVoyageId(newVoyage.getTopiaId()); + + return result; + } catch (ImportRuntimeException e) { + throw new ImportException(locale, inputFile, e); + } finally { + closeReader(reader, inputFile); + } + } +} \ No newline at end of file Property changes on: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/CommonVoyageImportService.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/removedata/RemoveDataService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/removedata/RemoveDataService.java 2013-07-25 17:08:39 UTC (rev 824) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/removedata/RemoveDataService.java 2013-08-01 00:12:52 UTC (rev 825) @@ -39,6 +39,8 @@ import fr.ifremer.echobase.services.removedata.strategy.CatchesRemoveDataStrategy; import fr.ifremer.echobase.services.removedata.strategy.CommonAllRemoveDataStrategy; import fr.ifremer.echobase.services.removedata.strategy.CommonTransectRemoveDataStrategy; +import fr.ifremer.echobase.services.removedata.strategy.CommonTransitRemoveDataStrategy; +import fr.ifremer.echobase.services.removedata.strategy.CommonVoyageRemoveDataStrategy; import fr.ifremer.echobase.services.removedata.strategy.LegacyVoyageRemoveDataStrategy; import fr.ifremer.echobase.services.removedata.strategy.OperationRemoveDataStrategy; import fr.ifremer.echobase.services.removedata.strategy.ResultEsduRemoveDataStrategy; @@ -47,6 +49,7 @@ import fr.ifremer.echobase.services.removedata.strategy.ResultVoyageRemoveDataStrategy; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.nuiton.decorator.Decorator; import org.nuiton.topia.TopiaException; import org.nuiton.topia.TopiaNotFoundException; import org.nuiton.topia.framework.TopiaContextImplementor; @@ -54,7 +57,6 @@ import org.nuiton.topia.persistence.TopiaEntity; import org.nuiton.topia.persistence.TopiaIdFactory; import org.nuiton.util.TimeLog; -import org.nuiton.decorator.Decorator; import java.util.Comparator; import java.util.List; @@ -227,7 +229,7 @@ if (log.isInfoEnabled()) { log.info("Will remove obsolete importLog " + - importLog.getTopiaId()); + logEntry.getImportType() + ": " + logEntry.getTopiaId()); } delete(dao, logEntry); @@ -246,6 +248,8 @@ strategies = Maps.newEnumMap(ImportType.class); strategies.put(ImportType.VOYAGE, LegacyVoyageRemoveDataStrategy.class); strategies.put(ImportType.COMMON_ALL, CommonAllRemoveDataStrategy.class); + strategies.put(ImportType.COMMON_VOYAGE, CommonVoyageRemoveDataStrategy.class); + strategies.put(ImportType.COMMON_TRANSIT, CommonTransitRemoveDataStrategy.class); strategies.put(ImportType.COMMON_TRANSECT, CommonTransectRemoveDataStrategy.class); strategies.put(ImportType.OPERATION, OperationRemoveDataStrategy.class); strategies.put(ImportType.CATCHES, CatchesRemoveDataStrategy.class); Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/removedata/strategy/CommonAllRemoveDataStrategy.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/removedata/strategy/CommonAllRemoveDataStrategy.java 2013-07-25 17:08:39 UTC (rev 824) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/removedata/strategy/CommonAllRemoveDataStrategy.java 2013-08-01 00:12:52 UTC (rev 825) @@ -88,7 +88,8 @@ @Override public Set<ImportType> getPossibleSubImportType() { - Set<ImportType> result = Sets.newHashSet(ImportType.COMMON_TRANSECT, + Set<ImportType> result = Sets.newHashSet(ImportType.COMMON_TRANSIT, + ImportType.COMMON_TRANSECT, ImportType.OPERATION, ImportType.CATCHES, ImportType.ACOUSTIC, Added: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/removedata/strategy/CommonTransitRemoveDataStrategy.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/removedata/strategy/CommonTransitRemoveDataStrategy.java (rev 0) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/removedata/strategy/CommonTransitRemoveDataStrategy.java 2013-08-01 00:12:52 UTC (rev 825) @@ -0,0 +1,136 @@ +package fr.ifremer.echobase.services.removedata.strategy; + +/* + * #%L + * EchoBase :: Services + * $Id$ + * $HeadURL$ + * %% + * 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 + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ + +import com.google.common.collect.Sets; +import fr.ifremer.echobase.entities.ImportLog; +import fr.ifremer.echobase.entities.ImportType; +import fr.ifremer.echobase.entities.data.Transect; +import fr.ifremer.echobase.entities.data.TransectDAO; +import fr.ifremer.echobase.entities.data.Transit; +import fr.ifremer.echobase.entities.data.TransitDAO; +import fr.ifremer.echobase.entities.data.Voyage; +import fr.ifremer.echobase.services.EchoBaseServiceContext; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.nuiton.topia.TopiaException; + +import java.util.Set; + +/** + * Remove a {@link ImportType#COMMON_TRANSIT} import. + * <p/> + * Can remove only {@link Transit}. + * + * @author tchemit <chemit@codelutin.com> + * @since 2.2 + */ +public class CommonTransitRemoveDataStrategy extends AbstractRemoveDataStrategy { + + /** Logger. */ + private static final Log log = + LogFactory.getLog(CommonTransectRemoveDataStrategy.class); + + protected TransectDAO transectDAO; + + protected TransitDAO transitDAO; + + @Override + public void setServiceContext(EchoBaseServiceContext serviceContext) { + super.setServiceContext(serviceContext); + + transectDAO = getDAO(Transect.class, TransectDAO.class); + transitDAO = getDAO(Transit.class, TransitDAO.class); + } + + @Override + public long computeNbSteps(Voyage voyage, ImportLog importLog) { + + long result = importLog.sizeImportId(); + + // add all cell results + result += countVoyageCellResults(voyage); + + // add all postCell + result += voyage.sizePostCell(); + + // add all orphan cells + result += countVoyageOrphanCells(voyage); + return result; + } + + @Override + protected void removePreDataInVoyage(Voyage voyage) throws TopiaException { + + // remove all cell results + removeVoyageCellResults(voyage); + + // remove postCell from voyage + removeVoyagePostCell(voyage); + } + + @Override + protected void removePostDataInVoyage(Voyage voyage) throws TopiaException { + + // remove orphans cells + removeVoyageOrphanCells(); + } + + @Override + protected void removeImportData(Voyage voyage, String id) throws TopiaException { + + if (id.startsWith(Transit.class.getName())) { + + // remove transit + Transit transit = transitDAO.findByTopiaId(id); + + // remove it from voyage + Voyage entity = voyageDao.findByTopiaId(voyage.getTopiaId()); + + entity.removeTransit(transit); + + // delete it + delete(transitDAO, transit); + + if (log.isDebugEnabled()) { + log.debug(transit.getTopiaId() + " was removed"); + } + + } else { + canNotDealWithId(id); + } + } + + @Override + public Set<ImportType> getPossibleSubImportType() { + Set<ImportType> result = Sets.newHashSet(ImportType.COMMON_TRANSECT, + ImportType.OPERATION, + ImportType.CATCHES, + ImportType.ACOUSTIC, + ImportType.RESULT_ESDU, + ImportType.RESULT_MAP, + ImportType.RESULT_REGION); + return result; + } +} \ No newline at end of file Property changes on: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/removedata/strategy/CommonTransitRemoveDataStrategy.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/removedata/strategy/CommonVoyageRemoveDataStrategy.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/removedata/strategy/CommonVoyageRemoveDataStrategy.java (rev 0) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/removedata/strategy/CommonVoyageRemoveDataStrategy.java 2013-08-01 00:12:52 UTC (rev 825) @@ -0,0 +1,103 @@ +package fr.ifremer.echobase.services.removedata.strategy; + +/* + * #%L + * EchoBase :: Services + * $Id$ + * $HeadURL$ + * %% + * 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 + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ + +import com.google.common.collect.Sets; +import fr.ifremer.echobase.entities.ImportLog; +import fr.ifremer.echobase.entities.ImportType; +import fr.ifremer.echobase.entities.data.Transit; +import fr.ifremer.echobase.entities.data.Voyage; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.nuiton.topia.TopiaException; + +import java.util.Set; + +/** + * Remove a {@link ImportType#COMMON_VOYAGE} import. + * <p/> + * Can remove only {@link Transit}. + * + * @author tchemit <chemit@codelutin.com> + * @since 2.2 + */ +public class CommonVoyageRemoveDataStrategy extends AbstractRemoveDataStrategy { + + /** Logger. */ + private static final Log log = + LogFactory.getLog(CommonTransectRemoveDataStrategy.class); + + @Override + protected void removePostDataInVoyage(Voyage voyage) throws TopiaException { + + // remove orphans cells + removeVoyageOrphanCells(); + } + + @Override + public long computeNbSteps(Voyage voyage, ImportLog importLog) { + + long result = importLog.sizeImportId(); + + // add all categories to be removed after + result += countCategoryUsingEchotype(voyage); + + // add all orphan cells + result += countVoyageOrphanCells(voyage); + return result; + } + + @Override + protected void removeImportData(Voyage voyage, String id) throws TopiaException { + + if (id.startsWith(Voyage.class.getName())) { + + // get entity to delete + Voyage entity = voyageDao.findByTopiaId(id); + + // delete it + removeVoyage(entity); + + if (log.isDebugEnabled()) { + log.debug(entity.getTopiaId() + " was removed"); + } + } else { + canNotDealWithId(id); + } + } + + @Override + public Set<ImportType> getPossibleSubImportType() { + Set<ImportType> result = Sets.newHashSet(ImportType.COMMON_TRANSIT, + ImportType.COMMON_TRANSECT, + ImportType.OPERATION, + ImportType.CATCHES, + ImportType.ACOUSTIC, + ImportType.RESULT_VOYAGE, + ImportType.RESULT_ESDU, + ImportType.RESULT_MAP, + ImportType.RESULT_REGION); + return result; + } +} \ No newline at end of file Property changes on: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/removedata/strategy/CommonVoyageRemoveDataStrategy.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/removedata/strategy/LegacyVoyageRemoveDataStrategy.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/removedata/strategy/LegacyVoyageRemoveDataStrategy.java 2013-07-25 17:08:39 UTC (rev 824) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/removedata/strategy/LegacyVoyageRemoveDataStrategy.java 2013-08-01 00:12:52 UTC (rev 825) @@ -88,7 +88,8 @@ @Override public Set<ImportType> getPossibleSubImportType() { - Set<ImportType> result = Sets.newHashSet(ImportType.COMMON_TRANSECT, + Set<ImportType> result = Sets.newHashSet(ImportType.COMMON_TRANSIT, + ImportType.COMMON_TRANSECT, ImportType.OPERATION, ImportType.CATCHES, ImportType.ACOUSTIC, Modified: trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/EchoBaseServiceFixtures.java =================================================================== --- trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/EchoBaseServiceFixtures.java 2013-07-25 17:08:39 UTC (rev 824) +++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/EchoBaseServiceFixtures.java 2013-08-01 00:12:52 UTC (rev 825) @@ -71,6 +71,10 @@ return "/echobase-importDb-referentiel.zip"; } + public String DATUM() { + return "datum"; + } + public int NB_VOYAGE() { return 1; } @@ -155,4 +159,23 @@ return 8; } + public String TRANSECT_BIN_UNITS_PING_AXIS() { + return "transectBinUnitsPingAxis"; + } + + public String TRANSIT_RELATED_ACTIVITY() { + return "transitRelatedActivity"; + } + + public String VOYAGE_DESCRIPTION() { + return "voyageDescription"; + } + + public String TRANSECT_GEOSPATIAL_VERTICLA_POSITIVE() { + return "transectGeospatialVerticalPositive"; + } + + public String TRANSECT_LICENSE() { + return "transectLicence"; + } } Modified: trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/EchoBaseTestServiceSupport.java =================================================================== --- trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/EchoBaseTestServiceSupport.java 2013-07-25 17:08:39 UTC (rev 824) +++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/EchoBaseTestServiceSupport.java 2013-08-01 00:12:52 UTC (rev 825) @@ -28,6 +28,7 @@ import fr.ifremer.echobase.entities.EchoBaseUser; import fr.ifremer.echobase.entities.EchoBaseUserImpl; import fr.ifremer.echobase.entities.data.DataProcessing; +import fr.ifremer.echobase.entities.data.Transit; import fr.ifremer.echobase.entities.data.Voyage; import fr.ifremer.echobase.io.InputFile; import fr.ifremer.echobase.services.exportdb.ExportDbConfiguration; @@ -228,6 +229,15 @@ return voyage.getTopiaId(); } + protected String getTransitId(String voyageId) { + Preconditions.checkNotNull(voyageId); + Voyage voyage = getEntityById(Voyage.class, voyageId); + Preconditions.checkArgument(!voyage.isTransitEmpty()); + List<Transit> transits = voyage.getTransit(); + Transit transit = transits.get(0); + return transit.getTopiaId(); + } + protected String getDataProcessingId() { DataProcessing dataProcessing = getEntities(DataProcessing.class).get(0); Preconditions.checkNotNull(dataProcessing); Modified: trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/CommonAllImportServiceIT.java =================================================================== --- trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/CommonAllImportServiceIT.java 2013-07-25 17:08:39 UTC (rev 824) +++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/CommonAllImportServiceIT.java 2013-08-01 00:12:52 UTC (rev 825) @@ -63,13 +63,13 @@ new CommonImportConfiguration(getLocale()); conf.setAreaOfOperationId(fixtures.AREA_OF_OPERATION_ID()); - conf.setDatum("datum"); + conf.setDatum(fixtures.DATUM()); conf.setMissionId(fixtures.MISSION_ID()); - conf.setTransectBinUnitsPingAxis("transectBinUnitsPingAxis"); - conf.setTransectGeospatialVerticalPositive("transectGeospatialVerticalPositive"); - conf.setTransectLicence("transectLicence"); - conf.setTransitRelatedActivity("transitRelatedActivity"); - conf.setVoyageDescription("voyageDescription"); + conf.setTransectBinUnitsPingAxis(fixtures.TRANSECT_BIN_UNITS_PING_AXIS()); + conf.setTransectGeospatialVerticalPositive(fixtures.TRANSECT_GEOSPATIAL_VERTICLA_POSITIVE()); + conf.setTransectLicence(fixtures.TRANSECT_LICENSE()); + conf.setTransitRelatedActivity(fixtures.TRANSIT_RELATED_ACTIVITY()); + conf.setVoyageDescription(fixtures.VOYAGE_DESCRIPTION()); prepareInputFile(conf.getVoyageFile(), getImportPath("voyage.csv.gz")); prepareInputFile(conf.getTransitFile(), getImportPath("transit.csv.gz")); Modified: trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/CommonTransectImportServiceIT.java =================================================================== --- trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/CommonTransectImportServiceIT.java 2013-07-25 17:08:39 UTC (rev 824) +++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/CommonTransectImportServiceIT.java 2013-08-01 00:12:52 UTC (rev 825) @@ -51,19 +51,18 @@ @Test public void doImport() throws Exception { - // import with mode transect + // import common data with mode transect assertImportCommonData(); CommonImportConfiguration conf = new CommonImportConfiguration(getLocale()); - conf.setAreaOfOperationId(fixtures.AREA_OF_OPERATION_ID()); - conf.setDatum("datum"); + conf.setDatum(fixtures.DATUM()); conf.setVoyageId(getVoyageId()); - conf.setTransectBinUnitsPingAxis("transectBinUnitsPingAxis"); - conf.setTransectGeospatialVerticalPositive("transectGeospatialVerticalPositive"); - conf.setTransectLicence("transectLicence"); + conf.setTransectBinUnitsPingAxis(fixtures.TRANSECT_BIN_UNITS_PING_AXIS()); + conf.setTransectGeospatialVerticalPositive(fixtures.TRANSECT_GEOSPATIAL_VERTICLA_POSITIVE()); + conf.setTransectLicence(fixtures.TRANSECT_LICENSE()); prepareInputFile(conf.getTransectFile(), getImportPath("transect.csv.gz")); Added: trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/CommonTransitImportServiceIT.java =================================================================== --- trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/CommonTransitImportServiceIT.java (rev 0) +++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/CommonTransitImportServiceIT.java 2013-08-01 00:12:52 UTC (rev 825) @@ -0,0 +1,89 @@ +package fr.ifremer.echobase.services.importdata; + +/* + * #%L + * EchoBase :: Services + * $Id$ + * $HeadURL$ + * %% + * 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 + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ + +import fr.ifremer.echobase.entities.ImportType; +import fr.ifremer.echobase.entities.data.Transect; +import fr.ifremer.echobase.entities.data.Transit; +import fr.ifremer.echobase.entities.data.Voyage; +import fr.ifremer.echobase.services.FakeEchoBaseServiceContext; +import org.junit.Test; + +import java.util.List; + +/** + * Tests {@link CommonImportService} with {@link ImportType#COMMON_TRANSIT} mode. + * + * @author tchemit <chemit@codelutin.com> + * @since 2.2 + */ +public class CommonTransitImportServiceIT extends AbstractImportDataServiceIT { + + @Override + protected FakeEchoBaseServiceContext initContext() { + return new FakeEchoBaseServiceContext( + fixtures.IMPORT_DATA_ECHOBASE_COMMON_DATA()); + } + + protected String[] getImportPath(String filename) { + return new String[]{"/import-data", "common", filename}; + } + + @Test + public void doImport() throws Exception { + + // import common data with mode transit + + assertImportCommonData(); + + // let's delete every transits + for (Voyage voyage : getEntities(Voyage.class)) { + voyage.clearTransit(); + } + + // import common data with mode transit + + CommonImportConfiguration conf = + new CommonImportConfiguration(getLocale()); + + conf.setVoyageId(getVoyageId()); + conf.setTransitRelatedActivity(fixtures.TRANSIT_RELATED_ACTIVITY()); + + prepareInputFile(conf.getTransitFile(), getImportPath("transit.csv.gz")); + + conf.setImportType(ImportType.COMMON_TRANSIT); + + List<EchoBaseCsvFileImportResult> result; + result = doImport(conf, CommonTransitImportService.class, 1); + + assertNbIDs(result, 0, fixtures.NB_TRANSIT()); + assertCsvImportResult(result, 0, Transit.class, fixtures.NB_TRANSIT()); + + + assertNbEntities(Voyage.class, fixtures.NB_VOYAGE()); + assertNbEntities(Transit.class, fixtures.NB_TRANSIT()); + assertNbEntities(Transect.class, 0); + } + +} \ No newline at end of file Property changes on: trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/CommonTransitImportServiceIT.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/CommonVoyageImportServiceIT.java =================================================================== --- trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/CommonVoyageImportServiceIT.java (rev 0) +++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/CommonVoyageImportServiceIT.java 2013-08-01 00:12:52 UTC (rev 825) @@ -0,0 +1,85 @@ +package fr.ifremer.echobase.services.importdata; + +/* + * #%L + * EchoBase :: Services + * $Id$ + * $HeadURL$ + * %% + * 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 + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ + +import fr.ifremer.echobase.entities.ImportType; +import fr.ifremer.echobase.entities.data.Transect; +import fr.ifremer.echobase.entities.data.Transit; +import fr.ifremer.echobase.entities.data.Voyage; +import fr.ifremer.echobase.services.FakeEchoBaseServiceContext; +import org.junit.Test; + +import java.util.List; + +/** + * Tests {@link CommonImportService} with {@link ImportType#COMMON_VOYAGE} mode. + * + * @author tchemit <chemit@codelutin.com> + * @since 2.2 + */ +public class CommonVoyageImportServiceIT extends AbstractImportDataServiceIT { + + @Override + protected FakeEchoBaseServiceContext initContext() { + return new FakeEchoBaseServiceContext( + fixtures.IMPORT_DATA_ECHOBASE_NO_DATA()); + } + + protected String[] getImportPath(String filename) { + return new String[]{"/import-data", "common", filename}; + } + + @Test + public void doImport() throws Exception { + + // no data in db + + assertNoEntities(Voyage.class, Transit.class, Transect.class); + + // import with mode voyage + + CommonImportConfiguration conf = + new CommonImportConfiguration(getLocale()); + + conf.setAreaOfOperationId(fixtures.AREA_OF_OPERATION_ID()); + conf.setDatum(fixtures.DATUM()); + conf.setMissionId(fixtures.MISSION_ID()); + conf.setVoyageDescription(fixtures.VOYAGE_DESCRIPTION()); + + prepareInputFile(conf.getVoyageFile(), getImportPath("voyage.csv.gz")); + + conf.setImportType(ImportType.COMMON_VOYAGE); + + List<EchoBaseCsvFileImportResult> result; + result = doImport(conf, CommonVoyageImportService.class, 1); + + assertNbIDs(result, 0, fixtures.NB_VOYAGE()); + assertCsvImportResult(result, 0, Voyage.class, fixtures.NB_VOYAGE()); + + assertNbEntities(Voyage.class, fixtures.NB_VOYAGE()); + assertNbEntities(Transit.class, 0); + assertNbEntities(Transect.class, 0); + } + +} \ No newline at end of file Property changes on: trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/CommonVoyageImportServiceIT.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: trunk/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/AbstractRemoveDataServiceTest.java =================================================================== --- trunk/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/AbstractRemoveDataServiceTest.java 2013-07-25 17:08:39 UTC (rev 824) +++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/AbstractRemoveDataServiceTest.java 2013-08-01 00:12:52 UTC (rev 825) @@ -94,6 +94,8 @@ import fr.ifremer.echobase.services.removedata.RemoveDataConfiguration; import fr.ifremer.echobase.services.removedata.RemoveDataService; import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.junit.Assert; import org.junit.Before; import org.nuiton.topia.TopiaException; @@ -112,8 +114,14 @@ */ public abstract class AbstractRemoveDataServiceTest extends EchoBaseTestServiceSupport { - protected String importCommonAll1Id; + /** Logger. */ + private static final Log log = + LogFactory.getLog(AbstractRemoveDataServiceTest.class); + protected String importCommonVoyage1Id; + + protected String importCommonTransit1Id; + protected String importCommonTransect1Id; protected String importOperation1Id; @@ -174,10 +182,12 @@ protected static final String lengthWeightKey1Id = "fr.ifremer.echobase.entities.data.LengthWeightKey#1#1"; - protected String importCommonAll2Id; + protected String importCommonVoyage2Id; protected String importCommonTransect2Id; + protected String importCommonTransit2Id; + protected static final String voyage2Id = "fr.ifremer.echobase.entities.data.Voyage#2#1"; protected static final String transit2Id = "fr.ifremer.echobase.entities.data.Transit#2#1"; @@ -251,7 +261,8 @@ resultDAO = getDAO(Result.class, ResultDAO.class); //create imports for voyage 1 - createCommonAllImportV1(); + createCommonVoyageImportV1(); + createCommonTransitImportV1(); createCommonTransectImportV1(); createOperationImportV1(); createCatchesImportV1(); @@ -262,7 +273,8 @@ createResultMapImportV1(); // create imports for voyage 2 - createCommonAllImportV2(); + createCommonVoyageImportV2(); + createCommonTransitImportV2(); createCommonTransectImportV2(); // createOperationImportV2(); // createCatchesImportV2(); @@ -276,7 +288,8 @@ protected void removeImport(String importId, String... shoudDeleteIds) throws TopiaException { List<String> existingId = Lists.newArrayList( - importCommonAll1Id, + importCommonVoyage1Id, + importCommonTransit1Id, importCommonTransect1Id, importOperation1Id, importCatches1Id, @@ -285,16 +298,17 @@ importResultEsdu1Id, importResultRegion1Id, importResultMap1Id, - importCommonAll2Id, + importCommonVoyage2Id, + importCommonTransit2Id, importCommonTransect2Id, - voyage1Id, transect1Id, transect1_2Id, operation1Id, + voyage1Id, transit1Id, transect1Id, transect1_2Id, operation1Id, totalSample1Id, subSample1Id, biometrySample1Id, cellEsdu1Id, cellElementary1Id, resultEsdu1Id, cellRegion1Id, resultRegion1Id, cellMap1Id, resultMap1Id, echotype1Id, lengthAgeKey1Id, lengthWeightKey1Id, - voyage2Id, transect2Id, transect2_2Id + voyage2Id, transit2Id, transect2Id, transect2_2Id ); List<String> deletedId = Lists.newArrayList(); @@ -346,7 +360,7 @@ return entity; } - private void createCommonAllImportV1() { + private void createCommonVoyageImportV1() { // create voyage Voyage voyage = create(voyageDao, @@ -361,39 +375,18 @@ Voyage.PROPERTY_DATUM, "voyage1Datum" ); - // create transit - Transit transit = create(transitDAO, - TopiaEntity.PROPERTY_TOPIA_ID, transit1Id, - Transit.PROPERTY_START_TIME, newDate(), - Transit.PROPERTY_END_TIME, newDate(), - Transit.PROPERTY_START_LOCALITY, "transit1tartLocality", - Transit.PROPERTY_END_LOCALITY, "transit1EndLocality", - Transit.PROPERTY_DESCRIPTION, "transit1Description", - Transit.PROPERTY_RELATED_ACTIVITY, "transit1RelatedActivity" - ); - voyage.addTransit(transit); - - // create transect - Transect transect = create(transectDAO, - TopiaEntity.PROPERTY_TOPIA_ID, transect1Id, - Transect.PROPERTY_TITLE, "transect1Title", - Transect.PROPERTY_VESSEL, getFirstEntity(Vessel.class), - Transect.PROPERTY_STRATUM, "transect1Stratum" - ); - transit.addTransect(transect); - commitTransaction("ImportError!"); - importCommonAll1Id = createImport( + importCommonVoyage1Id = createImport( CommonAllImportService.class, new CommonImportConfiguration(getLocale()), - ImportType.COMMON_ALL, - "Common/Voyage/Transit/Transect1", + ImportType.COMMON_VOYAGE, + "Common/Voyage1", voyage1Id, voyage); } - private void createCommonAllImportV2() { + private void createCommonVoyageImportV2() { // create voyage Voyage voyage = create(voyageDao, @@ -408,8 +401,52 @@ Voyage.PROPERTY_DATUM, "voyage2Datum" ); + commitTransaction("ImportError!"); + + importCommonVoyage2Id = createImport( + CommonAllImportService.class, + new CommonImportConfiguration(getLocale()), + ImportType.COMMON_VOYAGE, + "Common/Voyage2", + voyage2Id, + voyage); + } + + private void createCommonTransitImportV1() { + + // get voyage + Voyage voyage = getEntity(voyage1Id); + // create transit Transit transit = create(transitDAO, + TopiaEntity.PROPERTY_TOPIA_ID, transit1Id, + Transit.PROPERTY_START_TIME, newDate(), + Transit.PROPERTY_END_TIME, newDate(), + Transit.PROPERTY_START_LOCALITY, "transit1tartLocality", + Transit.PROPERTY_END_LOCALITY, "transit1EndLocality", + Transit.PROPERTY_DESCRIPTION, "transit1Description", + Transit.PROPERTY_RELATED_ACTIVITY, "transit1RelatedActivity" + ); + voyage.addTransit(transit); + + commitTransaction("ImportError!"); + + importCommonTransit1Id = createImport( + CommonAllImportService.class, + new CommonImportConfiguration(getLocale()), + ImportType.COMMON_TRANSIT, + "Common/Transit1", + voyage1Id, + transit); + } + + private void createCommonTransitImportV2() { + + // get voyage + Voyage voyage = getEntity(voyage2Id); + + // create transit + Transit transit = create(transitDAO, TopiaEntity.PROPERTY_TOPIA_ID, transit2Id, Transit.PROPERTY_START_TIME, newDate(), Transit.PROPERTY_END_TIME, newDate(), @@ -420,39 +457,42 @@ ); voyage.addTransit(transit); - // create transect - Transect transect = create(transectDAO, - TopiaEntity.PROPERTY_TOPIA_ID, transect2Id, - Transect.PROPERTY_TITLE, "transect2Title", - Transect.PROPERTY_VESSEL, getFirstEntity(Vessel.class), - Transect.PROPERTY_STRATUM, "transect2Stratum" - ); - transit.addTransect(transect); - commitTransaction("ImportError!"); - importCommonAll2Id = createImport( + importCommonTransit2Id = createImport( CommonAllImportService.class, new CommonImportConfiguration(getLocale()), - ImportType.COMMON_ALL, - "Common/Voyage/Transit/Transect2", + ImportType.COMMON_TRANSIT, + "Common/Transit2", voyage2Id, - voyage); + transit); } + private void createCommonTransectImportV1() throws TopiaException { Voyage voyage = getEntity(voyage1Id); + Transit transit = voyage.getTransitByTopiaId(transit1Id); + // create transect Transect transect = create(transectDAO, - TopiaEntity.PROPERTY_TOPIA_ID, transect1_2Id, - Transect.PROPERTY_TITLE, "transect12Title", + TopiaEntity.PROPERTY_TOPIA_ID, transect1Id, + Transect.PROPERTY_TITLE, "transect1Title", Transect.PROPERTY_VESSEL, getFirstEntity(Vessel.class), - Transect.PROPERTY_STRATUM, "transect12Stratum" + Transect.PROPERTY_STRATUM, "transect1Stratum" ); - voyage.getTransit().get(0).addTransect(transect); + transit.addTransect(transect); + // create transect2 + Transect transect2 = create(transectDAO, + TopiaEntity.PROPERTY_TOPIA_ID, transect1_2Id, + Transect.PROPERTY_TITLE, "transect12Title", + Transect.PROPERTY_VESSEL, getFirstEntity(Vessel.class), + Transect.PROPERTY_STRATUM, "transect12Stratum" + ); + transit.addTransect(transect2); + commitTransaction("ImportError!"); importCommonTransect1Id = createImport( @@ -461,22 +501,33 @@ ImportType.COMMON_TRANSECT, "Common/Transect1", voyage1Id, - transect); + transect, transect2); } private void createCommonTransectImportV2() throws TopiaException { Voyage voyage = getEntity(voyage2Id); + Transit transit = voyage.getTransitByTopiaId(transit2Id); + // create transect Transect transect = create(transectDAO, - TopiaEntity.PROPERTY_TOPIA_ID, transect2_2Id, - Transect.PROPERTY_TITLE, "transect22Title", + TopiaEntity.PROPERTY_TOPIA_ID, transect2Id, + Transect.PROPERTY_TITLE, "transect2Title", Transect.PROPERTY_VESSEL, getFirstEntity(Vessel.class), - Transect.PROPERTY_STRATUM, "transect22Stratum" + Transect.PROPERTY_STRATUM, "transect22tratum" ); - voyage.getTransit().get(0).addTransect(transect); + transit.addTransect(transect); + // create transect2 + Transect transect2 = create(transectDAO, + TopiaEntity.PROPERTY_TOPIA_ID, transect2_2Id, + Transect.PROPERTY_TITLE, "transect22Title", + Transect.PROPERTY_VESSEL, getFirstEntity(Vessel.class), + Transect.PROPERTY_STRATUM, "transect22Stratum" + ); + transit.addTransect(transect2); + commitTransaction("ImportError!"); importCommonTransect2Id = createImport( @@ -485,7 +536,7 @@ ImportType.COMMON_TRANSECT, "Common/Transect2", voyage2Id, - transect); + transect, transect2); } private void createOperationImportV1() throws TopiaException { @@ -801,6 +852,10 @@ commitTransaction("ImportLogError!"); String importId = importLog.getTopiaId(); + + if (log.isInfoEnabled()) { + log.info("Created importdata " + importType + ": " + importId); + } return importId; } } Modified: trunk/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/CommonAllRemoveDataServiceTest.java =================================================================== --- trunk/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/CommonAllRemoveDataServiceTest.java 2013-07-25 17:08:39 UTC (rev 824) +++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/CommonAllRemoveDataServiceTest.java 2013-08-01 00:12:52 UTC (rev 825) @@ -40,16 +40,17 @@ public void removeImport1() throws TopiaException { removeImport(// import to remove - importCommonAll1Id, + importCommonVoyage1Id, // data that should be removed - voyage1Id, transect1Id, operation1Id, transect1_2Id, + voyage1Id, transit1Id , transect1Id, operation1Id, transect1_2Id, totalSample1Id, subSample1Id, biometrySample1Id, cellEsdu1Id, cellElementary1Id, resultEsdu1Id, cellRegion1Id, resultRegion1Id, cellMap1Id, resultMap1Id, echotype1Id, lengthAgeKey1Id, lengthWeightKey1Id, // importLog that should be removed - importCommonAll1Id, + importCommonVoyage1Id, + importCommonTransit1Id, importCommonTransect1Id, importOperation1Id, importCatches1Id, @@ -64,11 +65,12 @@ public void removeImport2() throws TopiaException { removeImport(// import to remove - importCommonAll2Id, + importCommonVoyage2Id, // data that should be removed - voyage2Id, transect2Id, transect2_2Id, + voyage2Id, transit2Id , transect2Id, transect2_2Id, // importLog that should be removed - importCommonAll2Id, + importCommonVoyage2Id, + importCommonTransit2Id, importCommonTransect2Id); } } Modified: trunk/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/CommonTransectRemoveDataServiceTest.java =================================================================== --- trunk/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/CommonTransectRemoveDataServiceTest.java 2013-07-25 17:08:39 UTC (rev 824) +++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/CommonTransectRemoveDataServiceTest.java 2013-08-01 00:12:52 UTC (rev 825) @@ -42,11 +42,16 @@ removeImport(// import to remove importCommonTransect1Id, // data that should be removed - transect1_2Id, resultEsdu1Id, + transect1Id, operation1Id, transect1_2Id, + totalSample1Id, subSample1Id, biometrySample1Id, + cellEsdu1Id, cellElementary1Id, resultEsdu1Id, cellRegion1Id, resultRegion1Id, cellMap1Id, resultMap1Id, // importLog that should be removed importCommonTransect1Id, + importOperation1Id, + importCatches1Id, + importAcoustic1Id, importResultEsdu1Id, importResultMap1Id, importResultRegion1Id); @@ -58,7 +63,7 @@ removeImport(// import to remove importCommonTransect2Id, // data that should be removed - transect2_2Id, + transect2Id, transect2_2Id, // importLog that should be removed importCommonTransect2Id); } Added: trunk/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/CommonTransitRemoveDataServiceTest.java =================================================================== --- trunk/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/CommonTransitRemoveDataServiceTest.java (rev 0) +++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/CommonTransitRemoveDataServiceTest.java 2013-08-01 00:12:52 UTC (rev 825) @@ -0,0 +1,77 @@ +package fr.ifremer.echobase.ui.actions.removedata; + +/* + * #%L + * EchoBase :: Services + * $Id$ + * $HeadURL$ + * %% + * 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 + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ + +import fr.ifremer.echobase.services.removedata.RemoveDataService; +import fr.ifremer.echobase.services.removedata.strategy.CommonTransitRemoveDataStrategy; +import org.junit.Test; +import org.nuiton.topia.TopiaException; + +/** + * Test{@link RemoveDataService} with {@link CommonTransitRemoveDataStrategy}. + * + * @author tchemit <chemit@codelutin.com> + * @since 2.2 + */ +public class CommonTransitRemoveDataServiceTest + + extends AbstractRemoveDataServiceTest { + + @Test + public void removeImport1() throws TopiaException { + + removeImport(// import to remove + importCommonTransit1Id, + // data that should be removed + transit1Id , transect1Id, operation1Id, transect1_2Id, + totalSample1Id, subSample1Id, biometrySample1Id, + cellEsdu1Id, cellElementary1Id, resultEsdu1Id, + cellRegion1Id, resultRegion1Id, + cellMap1Id, resultMap1Id, + // importLog that should be removed + importCommonTransit1Id, + importCommonTransect1Id, + importOperation1Id, + importCatches1Id, + importAcoustic1Id, + importResultEsdu1Id, + importResultRegion1Id, + importResultMap1Id); + } + + @Test + public void removeImport2() throws TopiaException { + + removeImport(// import to remove + importCommonTransit2Id, + // data that should be removed + transit2Id , transect2Id, transect2_2Id, + // importLog that should be removed + importCommonTransit2Id, + importCommonTransect2Id); + } +} + + + Property changes on: trunk/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/CommonTransitRemoveDataServiceTest.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: trunk/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/CommonVoyageRemoveDataServiceTest.java =================================================================== --- trunk/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/CommonVoyageRemoveDataServiceTest.java (rev 0) +++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/CommonVoyageRemoveDataServiceTest.java 2013-08-01 00:12:52 UTC (rev 825) @@ -0,0 +1,79 @@ +package fr.ifremer.echobase.ui.actions.removedata; + +/* + * #%L + * EchoBase :: Services + * $Id$ + * $HeadURL$ + * %% + * 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 + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ + +import fr.ifremer.echobase.services.removedata.RemoveDataService; +import fr.ifremer.echobase.services.removedata.strategy.CommonVoyageRemoveDataStrategy; +import org.junit.Test; +import org.nuiton.topia.TopiaException; + +/** + * Test{@link RemoveDataService} with {@link CommonVoyageRemoveDataStrategy}. + * + * @author tchemit <chemit@codelutin.com> + * @since 2.2 + */ +public class CommonVoyageRemoveDataServiceTest extends AbstractRemoveDataServiceTest { + + @Test + public void removeImport1() throws TopiaException { + + removeImport(// import to remove + importCommonVoyage1Id, + // data that should be removed + voyage1Id, transit1Id, transect1Id, operation1Id, transect1_2Id, + totalSample1Id, subSample1Id, biometrySample1Id, + cellEsdu1Id, cellElementary1Id, resultEsdu1Id, + cellRegion1Id, resultRegion1Id, + cellMap1Id, resultMap1Id, + echotype1Id, lengthAgeKey1Id, lengthWeightKey1Id, + // importLog that should be removed + importCommonVoyage1Id, + importCommonTransit1Id, + importCommonTransect1Id, + importOperation1Id, + importCatches1Id, + importAcoustic1Id, + importResultVoyage1Id, + importResultEsdu1Id, + importResultRegion1Id, + importResultMap1Id); + } + + @Test + public void removeImport2() throws TopiaException { + + removeImport(// import to remove + importCommonVoyage2Id, + // data that should be removed + voyage2Id, transit2Id, transect2Id, transect2_2Id, + // importLog that should be removed + importCommonVoyage2Id, + importCommonTransit2Id, + importCommonTransect2Id); + } +} + + + Property changes on: trunk/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/CommonVoyageRemoveDataServiceTest.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/ConfigureCommonImport.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/ConfigureCommonImport.java 2013-07-25 17:08:39 UTC (rev 824) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/ConfigureCommonImport.java 2013-08-01 00:12:52 UTC (rev 825) @@ -84,6 +84,18 @@ } @InputConfig(methodName = "input") + public String modeVoyage() throws Exception { + + return execute(); + } + + @InputConfig(methodName = "input") + public String modeTransit() throws Exception { + + return execute(); + } + + @InputConfig(methodName = "input") public String modeTransect() throws Exception { return execute(); Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/configureCommonImport.jsp =================================================================== --- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/configureCommonImport.jsp 2013-07-25 17:08:39 UTC (rev 824) +++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/configureCommonImport.jsp 2013-08-01 00:12:52 UTC (rev 825) @@ -116,6 +116,92 @@ </s:form> +<%--Import mode = COMMON_VOYAGE --%> + +<s:form id="COMMON_VOYAGE" namespace="/importData" method="POST" + enctype="multipart/form-data" cssClass="hidden importMode"> + + <fieldset> + <legend> + <s:text name="echobase.legend.importData.configure"/> + </legend> + + <div class="cleanBoth help"> + <s:a href="%{getDocumentation('importData.html', null)}" target="doc"> + <s:text name="echobase.action.show.import.documentation"/> + </s:a> + </div> + <br/> + + <s:select key="model.missionId" required="true" + label='%{getText("echobase.common.mission")}' + list="missions" headerKey="" headerValue=""/> + <br/> + + <s:hidden key="model.importType" value="COMMON_VOYAGE" label=''/> + + <s:select key="model.areaOfOperationId" required="true" + label='%{getText("echobase.common.areaOfOperation")}' + list="areaOfOperations" headerKey="" headerValue=""/> + + <s:textfield key="model.voyageDescription" size="80" required="true" + label='%{getText("echobase.common.voyageDescription")}'/> + + <s:textfield key="model.datum" size="80" required="true" + label='%{getText("echobase.common.datum")}'/> + + <s:file key="voyageFile" required="true" + label='%{getText("echobase.common.voyageFile")}'/> + + <s:textarea key="model.importNotes" cols="80" rows="5" + label='%{getText("echobase.common.importNotes")}'/> + + </fieldset> + + <br/> + <s:submit action="configureCommon-modeVoyage" key='echobase.action.import'/> + +</s:form> + +<%--Import mode = COMMON_TRANSIT --%> + +<s:form id="COMMON_TRANSIT" namespace="/importData" method="POST" + enctype="multipart/form-data" cssClass="hidden importMode"> + + <fieldset> + <legend> + <s:text name="echobase.legend.importData.configure"/> + </legend> + + <div class="cleanBoth help"> + <s:a href="%{getDocumentation('importData.html', null)}" target="doc"> + <s:text name="echobase.action.show.import.documentation"/> + </s:a> + </div> + <br/> + + <s:hidden key="model.importType" value="COMMON_TRANSIT" label=''/> + + <s:select key="model.voyageId" required="true" + label='%{getText("echobase.common.voyage")}' + list="voyages" headerKey="" headerValue=""/> + + <s:textfield key="model.transitRelatedActivity" size="80" required="true" + label='%{getText("echobase.common.transitRelatedActivity")}'/> + + <s:file key="transitFile" required="true" + label='%{getText("echobase.common.transitFile")}'/> + + <s:textarea key="model.importNotes" cols="80" rows="5" + label='%{getText("echobase.common.importNotes")}'/> + + </fieldset> + + <br/> + <s:submit action="configureCommon-modeTransit" key='echobase.action.import'/> + +</s:form> + <%--Import mode = COMMON_TRANSECT --%> <s:form id='COMMON_TRANSECT' namespace="/importData" method="POST"