branch develop updated (1c9d999 -> eb5d1aa)
This is an automated email from the git hooks/post-receive script. New change to branch develop in repository echobase. See https://gitlab.nuiton.org/codelutin/echobase.git from 1c9d999 [jgitflow-maven-plugin]Updating develop poms back to pre merge state new eb5d1aa Handle duplication on elementary cell (refs #2246) The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit eb5d1aa7b917a8698b7825ec2373a422b0541f89 Author: Julien Ruchaud <julien.ruchaud@debux.org> Date: Thu Jun 30 17:25:35 2016 +0200 Handle duplication on elementary cell (refs #2246) Summary of changes: .../actions/VoyageAcousticsImportAction.java | 61 +++------------------ .../importdata/csv/VoyageAcousticImportRow.java | 19 +++++-- .../strategy/AcousticRemoveDataStrategy.java | 4 +- .../import-data/acoustic/movies_small.csv.gz | Bin 7963 -> 7963 bytes .../resources/i18n/echobase-ui_en_GB.properties | 2 +- .../resources/i18n/echobase-ui_fr_FR.properties | 2 +- .../src/main/webapp/WEB-INF/includes/footer.jsp | 2 +- 7 files changed, 27 insertions(+), 63 deletions(-) -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository echobase. See https://gitlab.nuiton.org/codelutin/echobase.git commit eb5d1aa7b917a8698b7825ec2373a422b0541f89 Author: Julien Ruchaud <julien.ruchaud@debux.org> Date: Thu Jun 30 17:25:35 2016 +0200 Handle duplication on elementary cell (refs #2246) --- .../actions/VoyageAcousticsImportAction.java | 61 +++------------------ .../importdata/csv/VoyageAcousticImportRow.java | 19 +++++-- .../strategy/AcousticRemoveDataStrategy.java | 4 +- .../import-data/acoustic/movies_small.csv.gz | Bin 7963 -> 7963 bytes .../resources/i18n/echobase-ui_en_GB.properties | 2 +- .../resources/i18n/echobase-ui_fr_FR.properties | 2 +- .../src/main/webapp/WEB-INF/includes/footer.jsp | 2 +- 7 files changed, 27 insertions(+), 63 deletions(-) diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageAcousticsImportAction.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageAcousticsImportAction.java index 4642df2..3b0cc0b 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageAcousticsImportAction.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageAcousticsImportAction.java @@ -45,6 +45,7 @@ import fr.ifremer.echobase.entities.references.DataQuality; import fr.ifremer.echobase.entities.references.Vessel; import fr.ifremer.echobase.io.InputFile; import fr.ifremer.echobase.services.csv.EchoBaseCsvUtil; +import fr.ifremer.echobase.services.service.importdata.DuplicatedElementaryCellException; import fr.ifremer.echobase.services.service.importdata.DuplicatedEsduCellException; import fr.ifremer.echobase.services.service.importdata.ElementaryCellWithoutDepthEndException; import fr.ifremer.echobase.services.service.importdata.EsduCellNotFoundException; @@ -53,7 +54,6 @@ import fr.ifremer.echobase.services.service.importdata.ImportDataFileResult; import fr.ifremer.echobase.services.service.importdata.TransectNotFoundException; import fr.ifremer.echobase.services.service.importdata.TransitNotFoundException; import fr.ifremer.echobase.services.service.importdata.configurations.VoyageAcousticsImportConfiguration; -import fr.ifremer.echobase.services.service.importdata.contexts.ImportDataContextSupport; import fr.ifremer.echobase.services.service.importdata.contexts.VoyageAcousticsImportDataContext; import fr.ifremer.echobase.services.service.importdata.csv.VoyageAcousticImportExportModel; import fr.ifremer.echobase.services.service.importdata.csv.VoyageAcousticImportRow; @@ -87,8 +87,6 @@ public class VoyageAcousticsImportAction extends VoyageAcousticsImportDataAction private final DateFormat cellDateFormat; private final DataMetadataProvider dataMetadataProvider; - private String lastEsduId; - public VoyageAcousticsImportAction(VoyageAcousticsImportDataContext importDataContext) { super(importDataContext, importDataContext.getConfiguration().getMoviesFile()); this.cellDateFormat = new SimpleDateFormat(EchoBaseCsvUtil.CELLULE_DATE_FORMAT); @@ -229,35 +227,9 @@ public class VoyageAcousticsImportAction extends VoyageAcousticsImportDataAction int cellType = row.getCellType(); - String esduCellId = cellDateFormat.format(endDate); - - String previousLastEsduId = lastEsduId; - - if (lastEsduId == null || !lastEsduId.equals(esduCellId)) { - - lastEsduId = esduCellId; - // find a new esdu cell id - if (log.isDebugEnabled()) { - log.debug("row: " + rowNumber + " - detects new esduCellId:" + lastEsduId); - } - - } - - boolean isEsduCell = cellType == 4; - - if (isEsduCell) { - - if (!esduCellId.equals(previousLastEsduId)) { - - // This should not happen ? - if (log.isWarnEnabled()) { - log.warn("row: " + rowNumber + " A previous esduCellId was detected (" + previousLastEsduId + "); but the esdu id was never found."); - } - } - if (log.isDebugEnabled()) { - log.debug("row: " + rowNumber + " - found esdu cell:" + lastEsduId); - } - } + int cellNum = row.getCellNum(); + String cellDate = cellDateFormat.format(endDate); + String esduCellId = cellDate + "_" + cellNum; if (row.getCellNasc() == null) { @@ -277,6 +249,7 @@ public class VoyageAcousticsImportAction extends VoyageAcousticsImportDataAction DataQuality dataQuality = row.getDataQuality(); + boolean isEsduCell = cellType == 4; if (isEsduCell) { if (log.isDebugEnabled()) { @@ -315,23 +288,15 @@ public class VoyageAcousticsImportAction extends VoyageAcousticsImportDataAction createEsduCellData(esduCell, row, dataQuality, result, rowNumber); } else { - // this is a elementary cell row - - int cellNum = row.getCellNum(); - boolean surface = cellType == 0; - String elementaryCellId = cellNum + (surface ? "S" : "B"); + String elementaryCellId = cellDate + "_" + cellNum + "_" + (surface ? "S" : "B"); // check name does not exist boolean exists = persistenceService.containsCellByName(elementaryCellId); if (exists) { - //FIXME Revoir ça (See #2246) - if (log.isErrorEnabled()) { - log.error("Duplicated ElementaryCellException: " + rowNumber + " → " + elementaryCellId); - } -// throw new DuplicatedElementaryCellException(getLocale(), rowNumber, elementaryCellId, voyage.getName()); + throw new DuplicatedElementaryCellException(getLocale(), rowNumber, elementaryCellId, voyage.getName()); } if (log.isTraceEnabled()) { log.trace("[row " + rowNumber + "] elementary cell (" + elementaryCellId + ")"); @@ -353,11 +318,8 @@ public class VoyageAcousticsImportAction extends VoyageAcousticsImportDataAction createElementaryCellData(elementaryCell, surface, row, dataQuality, result, rowNumber); } - } - } - } @Override @@ -485,10 +447,7 @@ public class VoyageAcousticsImportAction extends VoyageAcousticsImportDataAction } } - int esduRowCellNum = 0; - for (Cell elementaryCell : elementaryCells) { - VoyageAcousticImportRow elementaryRow = VoyageAcousticImportRow.ofElementaryCell(processingTemplate, dataAcquisition, dataProcessing, elementaryCell, radialNumberDataMetadata); ImmutableMap<DataMetadata, Data> elementaryCellDataByMeta = Maps.uniqueIndex(elementaryCell.getData(), Datas.TO_DATA_METADATA); @@ -561,15 +520,9 @@ public class VoyageAcousticsImportAction extends VoyageAcousticsImportDataAction elementaryRow.setEsduCellDataDepth(esduRow.getEsduCellDataDepth()); addImportedRow(result, elementaryRow); - - esduRowCellNum = elementaryRow.getCellNum() + 1; - } - esduRow.setCellNum(esduRowCellNum); - addImportedRow(result, esduRow); - } private DataAcquisition getDataAcquisition(Transect transect, AcousticInstrument instrument, boolean addDataAcquisition) { diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageAcousticImportRow.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageAcousticImportRow.java index cd526a8..1b78abe 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageAcousticImportRow.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageAcousticImportRow.java @@ -162,6 +162,12 @@ public class VoyageAcousticImportRow { */ protected String label; + // Format: <date> <integer>( [S|B])? + public static Integer getCellNum(String cellName) { + String[] splited = cellName.split("_"); + return Integer.valueOf(splited[1]); + } + public static VoyageAcousticImportRow ofEsduCell(String processingTemplate, DataAcquisition dataAcquisition, DataProcessing dataProcessing, @@ -171,6 +177,10 @@ public class VoyageAcousticImportRow { VoyageAcousticImportRow row = of(processingTemplate, dataAcquisition, dataProcessing, esduCell, radialNumberDataMetadata); // esdu cell + String cellName = esduCell.getName(); + Integer cellNum = getCellNum(cellName); + row.setCellNum(cellNum); + row.setCellType(4); row.setDataQuality(esduCell.getDataQuality()); @@ -185,20 +195,19 @@ public class VoyageAcousticImportRow { VoyageAcousticImportRow row = of(processingTemplate, dataAcquisition, dataProcessing, elementaryCell, radialNumberDataMetadata); // elementary cell - String elementaryCellName = elementaryCell.getName(); + String cellName = elementaryCell.getName(); + Integer cellNum = getCellNum(cellName); + row.setCellNum(cellNum); int cellType; - if (elementaryCellName.endsWith("S")) { - + if (cellName.endsWith("S")) { // surface cellType = 0; } else { - // bottom cellType = 1; } - Integer cellNum = Integer.valueOf(elementaryCellName.substring(0, elementaryCellName.length() - 1)); row.setCellType(cellType); row.setCellNum(cellNum); row.setDataQuality(elementaryCell.getDataQuality()); diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/AcousticRemoveDataStrategy.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/AcousticRemoveDataStrategy.java index cfce8d2..a73c0a6 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/AcousticRemoveDataStrategy.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/AcousticRemoveDataStrategy.java @@ -109,7 +109,9 @@ public class AcousticRemoveDataStrategy extends AbstractRemoveDataStrategy { } // remove it from the dataAcquisition DataProcessing dataProcessing = persistenceService.getDataProcessingContainsCell(cell); - dataProcessing.removeCell(cell); + if (dataProcessing != null) { + dataProcessing.removeCell(cell); + } // remove cell persistenceService.deleteCell(cell); diff --git a/echobase-services/src/test/resources/import-data/acoustic/movies_small.csv.gz b/echobase-services/src/test/resources/import-data/acoustic/movies_small.csv.gz index bd26598..16b0083 100644 Binary files a/echobase-services/src/test/resources/import-data/acoustic/movies_small.csv.gz and b/echobase-services/src/test/resources/import-data/acoustic/movies_small.csv.gz differ diff --git a/echobase-ui/src/main/resources/i18n/echobase-ui_en_GB.properties b/echobase-ui/src/main/resources/i18n/echobase-ui_en_GB.properties index a993625..85968b5 100644 --- a/echobase-ui/src/main/resources/i18n/echobase-ui_en_GB.properties +++ b/echobase-ui/src/main/resources/i18n/echobase-ui_en_GB.properties @@ -62,7 +62,7 @@ echobase.common.authorEmail=Author email echobase.common.biometrySampleFile= echobase.common.cellMapsFishFile=Map cells file (Fishes) echobase.common.cellMapsOtherFile=Map cells file (Other) -echobase.common.cellPositionReference=cellPositionReference +echobase.common.cellPositionReference=Reference position for cell of echo-integration echobase.common.cellRegionAssociationFile= echobase.common.cellRegionResultFile= echobase.common.cellRegionsFile= diff --git a/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties b/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties index 06a8fd6..ee9d915 100644 --- a/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties +++ b/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties @@ -62,7 +62,7 @@ echobase.common.authorEmail=Courriel de l'auteur echobase.common.biometrySampleFile= echobase.common.cellMapsFishFile=Fichier des cellules Cartes (Poisson) echobase.common.cellMapsOtherFile=Fichier des cellules Cartes (Autre) -echobase.common.cellPositionReference=Référentiel géographique des cellules des cartes +echobase.common.cellPositionReference=Référentiel géographique des cellules d'écho-intégration echobase.common.cellRegionAssociationFile= echobase.common.cellRegionResultFile= echobase.common.cellRegionsFile= diff --git a/echobase-ui/src/main/webapp/WEB-INF/includes/footer.jsp b/echobase-ui/src/main/webapp/WEB-INF/includes/footer.jsp index 6df67f2..226d9b4 100644 --- a/echobase-ui/src/main/webapp/WEB-INF/includes/footer.jsp +++ b/echobase-ui/src/main/webapp/WEB-INF/includes/footer.jsp @@ -29,7 +29,7 @@ <li> <span style="font-size: 140%"> EchoBase <s:property value="#application.echobaseApplicationContext.configuration.applicationVersion"/> - © 2011-2012 + © 2011-2016 </span> <a href="http://www.ifremer.fr">Ifremer</a> <a href="http://www.codelutin.com" title="Code Lutin" target="_blank">Code -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
participants (1)
-
codelutin.com scm