Echobase-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
September 2012
- 3 participants
- 127 discussions
12 Sep '12
Author: tchemit
Date: 2012-09-12 17:57:54 +0200 (Wed, 12 Sep 2012)
New Revision: 654
Url: http://forge.codelutin.com/repositories/revision/echobase/654
Log:
use ProgressModel instead of ProgressionModel
refs #1437: Suppression des imports (add voyageId in ImportLog, should be nearly ok now...)
Added:
trunk/echobase-domain/src/main/java/fr/ifremer/echobase/services/ProgressModel.java
Removed:
trunk/echobase-domain/src/main/java/fr/ifremer/echobase/services/ProgressionModel.java
Modified:
trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/migration/workingDb/MigrationCallbackV1_2.java
trunk/echobase-domain/src/main/java/fr/ifremer/echobase/services/AbstractEchobaseActionConfiguration.java
trunk/echobase-domain/src/main/xmi/echobase.properties
trunk/echobase-domain/src/main/xmi/echobase.zargo
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/embeddedapplication/EmbeddedApplicationService.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/exportdb/ExportDbConfiguration.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/exportdb/strategy/AbstractExportDbStrategy.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/AbstractImportConfiguration.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/AbstractImportDataService.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/AcousticImportConfiguration.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/AcousticImportService.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/CatchesImportConfiguration.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/CatchesImportService.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/CommonAllImportService.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/CommonImportConfiguration.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/OperationImportConfiguration.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/OperationImportService.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/ResultsEsduCellImportService.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/ResultsImportConfiguration.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/ResultsMapCellImportService.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/ResultsRegionCellImportService.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/ResultsVoyageImportService.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdb/ImportDbConfiguration.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/AbstractRemoveDataStrategy.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/removedata/strategy/AcousticRemoveDataStrategy.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/removedata/strategy/CatchesRemoveDataStrategy.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/CommonTransectRemoveDataStrategy.java
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/OperationRemoveDataStrategy.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/removedata/strategy/ResultEsduRemoveDataStrategy.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/removedata/strategy/ResultMapRemoveDataStrategy.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/removedata/strategy/ResultRegionRemoveDataStrategy.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/removedata/strategy/ResultVoyageRemoveDataStrategy.java
trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/EchoBaseTestServiceSupport.java
trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/EmbeddedApplicationServiceIT.java
trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/ImportDbServiceTest.java
trunk/src/site/rst/removeimports.rst
Modified: trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/migration/workingDb/MigrationCallbackV1_2.java
===================================================================
--- trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/migration/workingDb/MigrationCallbackV1_2.java 2012-09-12 12:45:13 UTC (rev 653)
+++ trunk/echobase-domain/src/main/java/fr/ifremer/echobase/persistence/migration/workingDb/MigrationCallbackV1_2.java 2012-09-12 15:57:54 UTC (rev 654)
@@ -53,8 +53,6 @@
boolean showSql,
boolean showProgression) throws TopiaException {
-
-
// create new table import log (http://forge.codelutin.com/issues/1437)
createImportLogTable(tx, queries);
}
@@ -69,9 +67,10 @@
"topiaid character varying(255) NOT NULL,\n" +
"topiaversion bigint NOT NULL,\n" +
"topiacreatedate date,\n" +
- "importdate date,\n" +
- "importtext character varying(1024),\n" +
- "importuser character varying(255)\n" +
+ "importdate date NOT NULL,\n" +
+ "importtext character varying(1024) NOT NULL,\n" +
+ "importuser character varying(255) NOT NULL,\n" +
+ "voyageid character varying(255) NOT NULL\n" +
");");
queries.add("ALTER TABLE importlog ADD CONSTRAINT PRIMARY_KEY_99A PRIMARY KEY(topiaid);");
@@ -87,10 +86,11 @@
queries.add("CREATE TABLE importlog (\n" +
"topiaid VARCHAR(255) NOT NULL,\n" +
"topiaversion BIGINT NOT NULL,\n" +
- "topiacreatedate DATE,\n" +
- "importdate DATE,\n" +
- "importtext VARCHAR(1024),\n" +
- "importuser VARCHAR(255)\n" +
+ "topiacreatedate DATE NOT NULL ,\n" +
+ "importdate DATE NOT NULL ,\n" +
+ "importtext VARCHAR(1024) NOT NULL,\n" +
+ "importuser VARCHAR(255) NOT NULL,\n" +
+ "voyageid VARCHAR(255) NOT NULL\n" +
");");
queries.add("ALTER TABLE importlog ADD CONSTRAINT PRIMARY_KEY_99A PRIMARY KEY(topiaid);");
Modified: trunk/echobase-domain/src/main/java/fr/ifremer/echobase/services/AbstractEchobaseActionConfiguration.java
===================================================================
--- trunk/echobase-domain/src/main/java/fr/ifremer/echobase/services/AbstractEchobaseActionConfiguration.java 2012-09-12 12:45:13 UTC (rev 653)
+++ trunk/echobase-domain/src/main/java/fr/ifremer/echobase/services/AbstractEchobaseActionConfiguration.java 2012-09-12 15:57:54 UTC (rev 654)
@@ -33,67 +33,67 @@
* @author tchemit <chemit(a)codelutin.com>
* @since 0.2
*/
-public abstract class AbstractEchobaseActionConfiguration implements Serializable, ProgressionModel {
+public abstract class AbstractEchobaseActionConfiguration implements Serializable, ProgressModel {
private static final long serialVersionUID = 1L;
- private final ProgressionModel progressionModel;
+ private final ProgressModel progressModel;
private Exception error;
private String resultMessage;
protected AbstractEchobaseActionConfiguration() {
- progressionModel = new DefaultProgressionModel();
+ progressModel = new DefaultProgressModel();
}
- protected AbstractEchobaseActionConfiguration(ProgressionModel progressionModel) {
- this.progressionModel = progressionModel;
+ protected AbstractEchobaseActionConfiguration(ProgressModel progressModel) {
+ this.progressModel = progressModel;
}
@Override
public final long getNbSteps() {
- return progressionModel.getNbSteps();
+ return progressModel.getNbSteps();
}
@Override
- public final float getProgression() {
- return progressionModel.getProgression();
+ public final float getProgress() {
+ return progressModel.getProgress();
}
@Override
- public final void setProgression(float progression) {
- progressionModel.setProgression(progression);
+ public final void setProgress(float progress) {
+ progressModel.setProgress(progress);
}
@Override
- public final void incrementsProgression() {
- progressionModel.incrementsProgression();
+ public final void incrementsProgress() {
+ progressModel.incrementsProgress();
}
@Override
public final void setNbSteps(long nbSteps) {
- progressionModel.setNbSteps(nbSteps);
+ progressModel.setNbSteps(nbSteps);
}
@Override
public final long getStartTime() {
- return progressionModel.getStartTime();
+ return progressModel.getStartTime();
}
@Override
public final void setStartTime(long startTime) {
- progressionModel.setStartTime(startTime);
+ progressModel.setStartTime(startTime);
}
@Override
public final long getEndTime() {
- return progressionModel.getEndTime();
+ return progressModel.getEndTime();
}
@Override
public final void setEndTime(long endTime) {
- progressionModel.setEndTime(endTime);
+ progressModel.setEndTime(endTime);
}
public Exception getError() {
@@ -118,7 +118,7 @@
@Override
public String getActionTime() {
- return progressionModel.getActionTime();
+ return progressModel.getActionTime();
}
public void beginAction() {
@@ -138,7 +138,7 @@
* @author tchemit <chemit(a)codelutin.com>
* @since 0.3
*/
- public static class DefaultProgressionModel implements ProgressionModel {
+ public static class DefaultProgressModel implements ProgressModel {
private static final long serialVersionUID = 1L;
@@ -158,13 +158,13 @@
}
@Override
- public float getProgression() {
+ public float getProgress() {
return progression;
}
@Override
- public void setProgression(float progression) {
- this.progression = progression;
+ public void setProgress(float progress) {
+ this.progression = progress;
}
@Override
@@ -188,15 +188,15 @@
}
@Override
- public final void incrementsProgression() {
- setProgression(progression + stepIncrement);
+ public final void incrementsProgress() {
+ setProgress(progression + stepIncrement);
}
@Override
public final void setNbSteps(long nbSteps) {
this.nbSteps = nbSteps;
- stepIncrement = 100f / nbSteps;
+ this.stepIncrement = 100f / nbSteps;
}
@Override
Copied: trunk/echobase-domain/src/main/java/fr/ifremer/echobase/services/ProgressModel.java (from rev 650, trunk/echobase-domain/src/main/java/fr/ifremer/echobase/services/ProgressionModel.java)
===================================================================
--- trunk/echobase-domain/src/main/java/fr/ifremer/echobase/services/ProgressModel.java (rev 0)
+++ trunk/echobase-domain/src/main/java/fr/ifremer/echobase/services/ProgressModel.java 2012-09-12 15:57:54 UTC (rev 654)
@@ -0,0 +1,46 @@
+/*
+ * #%L
+ * EchoBase :: Domain
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2011 - 2012 Ifremer, Codelutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * 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%
+ */
+package fr.ifremer.echobase.services;
+
+import org.nuiton.topia.persistence.csv.CsvProgressModel;
+
+import java.io.Serializable;
+
+/**
+ * Contract for a progression model while long service actions.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.3
+ */
+public interface ProgressModel extends CsvProgressModel, Serializable {
+
+ long getStartTime();
+
+ void setStartTime(long startTime);
+
+ long getEndTime();
+
+ void setEndTime(long endTime);
+
+ String getActionTime();
+}
Property changes on: trunk/echobase-domain/src/main/java/fr/ifremer/echobase/services/ProgressModel.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Deleted: trunk/echobase-domain/src/main/java/fr/ifremer/echobase/services/ProgressionModel.java
===================================================================
--- trunk/echobase-domain/src/main/java/fr/ifremer/echobase/services/ProgressionModel.java 2012-09-12 12:45:13 UTC (rev 653)
+++ trunk/echobase-domain/src/main/java/fr/ifremer/echobase/services/ProgressionModel.java 2012-09-12 15:57:54 UTC (rev 654)
@@ -1,46 +0,0 @@
-/*
- * #%L
- * EchoBase :: Domain
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2011 - 2012 Ifremer, Codelutin
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * 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%
- */
-package fr.ifremer.echobase.services;
-
-import org.nuiton.topia.persistence.csv.CsvProgressionModel;
-
-import java.io.Serializable;
-
-/**
- * Contract for a progression model while long service actions.
- *
- * @author tchemit <chemit(a)codelutin.com>
- * @since 0.3
- */
-public interface ProgressionModel extends CsvProgressionModel, Serializable {
-
- long getStartTime();
-
- void setStartTime(long startTime);
-
- long getEndTime();
-
- void setEndTime(long endTime);
-
- String getActionTime();
-}
Modified: trunk/echobase-domain/src/main/xmi/echobase.properties
===================================================================
--- trunk/echobase-domain/src/main/xmi/echobase.properties 2012-09-12 12:45:13 UTC (rev 653)
+++ trunk/echobase-domain/src/main/xmi/echobase.properties 2012-09-12 15:57:54 UTC (rev 654)
@@ -53,8 +53,19 @@
###############################################################################
fr.ifremer.echobase.entities.EntityModificationLog.attribute.modificationText.tagvalue.type=text
+fr.ifremer.echobase.entities.ImportLog.attribute.importText.tagvalue.type=text
###############################################################################
+### Not null for transverse ###################################################
+###############################################################################
+
+fr.ifremer.echobase.entities.ImportLog.attribute.importDate.tagValue.notNull=true
+fr.ifremer.echobase.entities.ImportLog.attribute.importUser.tagValue.notNull=true
+fr.ifremer.echobase.entities.ImportLog.attribute.importText.tagValue.notNull=true
+fr.ifremer.echobase.entities.ImportLog.attribute.importType.tagValue.notNull=true
+fr.ifremer.echobase.entities.ImportLog.attribute.voyageId.tagValue.notNull=true
+
+###############################################################################
### Natural id for references ################################################
###############################################################################
Modified: trunk/echobase-domain/src/main/xmi/echobase.zargo
===================================================================
(Binary files differ)
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/embeddedapplication/EmbeddedApplicationService.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/embeddedapplication/EmbeddedApplicationService.java 2012-09-12 12:45:13 UTC (rev 653)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/embeddedapplication/EmbeddedApplicationService.java 2012-09-12 15:57:54 UTC (rev 654)
@@ -103,7 +103,7 @@
// create static archive structure
createStaticArchiveStructure(model, dir);
- model.incrementsProgression();
+ model.incrementsProgress();
// create new service context
EchoBaseServiceContext newServiceContext =
@@ -166,7 +166,7 @@
EchoBaseUser admin = userService.getUserByEmail(
UserService.DEFAULT_ADMIN_EMAIL);
- model.incrementsProgression();
+ model.incrementsProgress();
// get all export queries from application
List<ExportQuery> queries = getEntities(ExportQuery.class);
@@ -187,7 +187,7 @@
exportQueryService.createOrUpdate(query, admin);
}
- model.incrementsProgression();
+ model.incrementsProgress();
// get all working db configuration from application
@@ -198,7 +198,7 @@
getInternalTransaction().replicateEntities(
newServiceContext.getInternalTransaction(), confs);
- model.incrementsProgression();
+ model.incrementsProgress();
return admin;
@@ -222,7 +222,7 @@
// inject a new transaction in service context
newServiceContext.setTransaction(rootContext.beginTransaction());
- model.incrementsProgression();
+ model.incrementsProgress();
// prepare import configuration
ImportDbConfiguration importConfiguration =
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/exportdb/ExportDbConfiguration.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/exportdb/ExportDbConfiguration.java 2012-09-12 12:45:13 UTC (rev 653)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/exportdb/ExportDbConfiguration.java 2012-09-12 15:57:54 UTC (rev 654)
@@ -24,7 +24,7 @@
package fr.ifremer.echobase.services.exportdb;
import fr.ifremer.echobase.services.AbstractEchobaseActionConfiguration;
-import fr.ifremer.echobase.services.ProgressionModel;
+import fr.ifremer.echobase.services.ProgressModel;
import org.apache.commons.io.FileUtils;
import java.io.File;
@@ -56,8 +56,8 @@
public ExportDbConfiguration() {
}
- public ExportDbConfiguration(ProgressionModel progressionModel) {
- super(progressionModel);
+ public ExportDbConfiguration(ProgressModel progressModel) {
+ super(progressModel);
}
public String getFileName() {
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/exportdb/strategy/AbstractExportDbStrategy.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/exportdb/strategy/AbstractExportDbStrategy.java 2012-09-12 12:45:13 UTC (rev 653)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/exportdb/strategy/AbstractExportDbStrategy.java 2012-09-12 15:57:54 UTC (rev 654)
@@ -106,7 +106,7 @@
ExportService exportService) {
for (TableMeta<EchoBaseEntityEnum> meta : tablesToExport) {
- model.incrementsProgression();
+ model.incrementsProgress();
File entryFile = new File(dir, meta.getFilename());
exportService.exportData(meta, entryFile);
@@ -119,7 +119,7 @@
ExportService exportService) {
for (AssociationMeta<EchoBaseEntityEnum> associationMeta : associationsToExport) {
- model.incrementsProgression();
+ model.incrementsProgress();
File entryFile = new File(dir, associationMeta.getFilename());
exportService.exportData(associationMeta, entryFile);
@@ -144,7 +144,7 @@
try {
for (String voyageId : model.getVoyageIds()) {
- model.incrementsProgression();
+ model.incrementsProgress();
Voyage voyage = getEntityById(Voyage.class, voyageId);
visitor.export(voyage);
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/AbstractImportConfiguration.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/AbstractImportConfiguration.java 2012-09-12 12:45:13 UTC (rev 653)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/AbstractImportConfiguration.java 2012-09-12 15:57:54 UTC (rev 654)
@@ -44,6 +44,9 @@
private static final long serialVersionUID = 1L;
+ /** Selected voyage id where to import datas. */
+ protected String voyageId;
+
/** Directory where to store temporary files. */
protected File workingDirectory;
@@ -63,6 +66,14 @@
protected final List<EchoBaseCsvFileImportResult> importResults =
Lists.newArrayList();
+ public final String getVoyageId() {
+ return voyageId;
+ }
+
+ public final void setVoyageId(String voyageId) {
+ this.voyageId = voyageId;
+ }
+
public File getWorkingDirectory() {
return workingDirectory;
}
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/AbstractImportDataService.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/AbstractImportDataService.java 2012-09-12 12:45:13 UTC (rev 653)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/AbstractImportDataService.java 2012-09-12 15:57:54 UTC (rev 654)
@@ -57,7 +57,6 @@
import org.nuiton.topia.TopiaException;
import org.nuiton.topia.persistence.TopiaDAO;
import org.nuiton.topia.persistence.TopiaEntity;
-import org.nuiton.util.StringUtil;
import org.nuiton.util.TimeLog;
import org.nuiton.util.csv.ImportRuntimeException;
@@ -105,18 +104,22 @@
log.info("Nb lines to import " + nbSteps);
}
- TIME_LOG.log(s0, "computeNbSteps");
+ s0 = TIME_LOG.log(s0, "computeNbSteps");
try {
startImport(configuration, user);
+ s0 = TIME_LOG.log(s0, "importDone");
+
// add result in log book and compute resume to show in result
- String result = computeResultAndLogBookEntry(configuration,
- user,
- TimeLog.getTime() - s0);
+ String result = computeResultAndLogBookEntry(configuration, user);
// do commit
- commitTransaction("Could not execute import " + getImportLabel(configuration));
+ commitTransaction("Could not execute import " +
+ getImportLabel(configuration));
+
+ TIME_LOG.log(s0, "importCommited");
+
return result;
} catch (EchoBaseTechnicalException e) {
throw new ImportException(e.getMessage(), e);
@@ -128,13 +131,13 @@
}
protected String computeResultAndLogBookEntry(M configuration,
- EchoBaseUser user,
- long time) {
+ EchoBaseUser user) {
Date importDate = newDate();
String importUser = user.getEmail();
ImportLog importLog = create(getDAO(ImportLog.class),
+ ImportLog.PROPERTY_VOYAGE_ID, configuration.getVoyageId(),
ImportLog.PROPERTY_IMPORT_TYPE, configuration.getImportType(),
ImportLog.PROPERTY_IMPORT_USER, importUser,
ImportLog.PROPERTY_IMPORT_DATE, importDate,
@@ -149,9 +152,6 @@
if (StringUtils.isNotEmpty(configuration.getImportNotes())) {
buffer.append("\nNotes :").append(configuration.getImportNotes());
}
- buffer.append('\n');
- buffer.append("Import réalisé en ");
- buffer.append(StringUtil.convertTime(time));
for (EchoBaseCsvFileImportResult importResult : configuration.getImportResults()) {
@@ -278,7 +278,7 @@
protected final void doFlushTransaction(int rowNumber,
InputFile inputFile,
M configuration) {
- configuration.incrementsProgression();
+ configuration.incrementsProgress();
if (rowNumber % 1000 == 0) {
// flush each 1000 imported rows
String message = getImportMessage(configuration, inputFile);
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/AcousticImportConfiguration.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/AcousticImportConfiguration.java 2012-09-12 12:45:13 UTC (rev 653)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/AcousticImportConfiguration.java 2012-09-12 15:57:54 UTC (rev 654)
@@ -40,9 +40,6 @@
private static final long serialVersionUID = 1L;
- /** Selected voyage id where to import datas. */
- protected String voyageId;
-
/** Selected vessel id to find out transect where to import datas. */
protected String vesselId;
@@ -103,14 +100,6 @@
importType = ImportType.ACOUSTIC;
}
- public String getVoyageId() {
- return voyageId;
- }
-
- public void setVoyageId(String voyageId) {
- this.voyageId = voyageId;
- }
-
public String getVesselId() {
return vesselId;
}
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/AcousticImportService.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/AcousticImportService.java 2012-09-12 12:45:13 UTC (rev 653)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/AcousticImportService.java 2012-09-12 15:57:54 UTC (rev 654)
@@ -186,7 +186,7 @@
Cell elementaryCell;
int rowNumber = 0;
- configuration.incrementsProgression();
+ configuration.incrementsProgress();
for (AcousticImportRow row : importer) {
doFlushTransaction(++rowNumber, inputFile, configuration);
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/CatchesImportConfiguration.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/CatchesImportConfiguration.java 2012-09-12 12:45:13 UTC (rev 653)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/CatchesImportConfiguration.java 2012-09-12 15:57:54 UTC (rev 654)
@@ -40,9 +40,6 @@
private static final long serialVersionUID = 1L;
- /** Selected voyage id where to import datas. */
- protected String voyageId;
-
/** Sample file to import. */
protected final InputFile totalSampleFile;
@@ -62,14 +59,6 @@
importType = ImportType.CATCHES;
}
- public String getVoyageId() {
- return voyageId;
- }
-
- public void setVoyageId(String voyageId) {
- this.voyageId = voyageId;
- }
-
public InputFile getTotalSampleFile() {
return totalSampleFile;
}
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/CatchesImportService.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/CatchesImportService.java 2012-09-12 12:45:13 UTC (rev 653)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/CatchesImportService.java 2012-09-12 15:57:54 UTC (rev 654)
@@ -186,7 +186,7 @@
Import.newImport(csvModel, reader);
int rowNumber = 0;
- configuration.incrementsProgression();
+ configuration.incrementsProgress();
for (TotalSampleImportRow row : importer) {
doFlushTransaction(++rowNumber, inputFile, configuration);
@@ -348,7 +348,7 @@
Import<SubSampleImportRow> importer =
Import.newImport(csvModel, reader);
- configuration.incrementsProgression();
+ configuration.incrementsProgress();
int rowNumber = 0;
for (SubSampleImportRow row : importer) {
@@ -464,7 +464,7 @@
Import<BiometrySampleImportRow> importer = Import.newImport(
csvModel, reader);
- configuration.incrementsProgression();
+ configuration.incrementsProgress();
int rowNumber = 0;
for (BiometrySampleImportRow row : importer) {
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 2012-09-12 12:45:13 UTC (rev 653)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/CommonAllImportService.java 2012-09-12 15:57:54 UTC (rev 654)
@@ -116,10 +116,10 @@
try {
Import<Voyage> importer = Import.newImport(csvModel, reader);
- configuration.incrementsProgression();
+ configuration.incrementsProgress();
for (Voyage voyage : importer) {
- configuration.incrementsProgression();
+ configuration.incrementsProgress();
voyage.setMission(mission);
voyage.setAreaOfOperation(areaOfOperation);
@@ -187,10 +187,10 @@
Import<TransitImportRow> importer =
Import.newImport(csvModel, reader);
- configuration.incrementsProgression();
+ configuration.incrementsProgress();
for (TransitImportRow row : importer) {
- configuration.incrementsProgression();
+ configuration.incrementsProgress();
Transit transit = row.getTransit();
transit.setRelatedActivity(relatedActivity);
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/CommonImportConfiguration.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/CommonImportConfiguration.java 2012-09-12 12:45:13 UTC (rev 653)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/CommonImportConfiguration.java 2012-09-12 15:57:54 UTC (rev 654)
@@ -43,9 +43,6 @@
/** Selected mission id to use in voyage. */
protected String missionId;
- /** Selected voyage id to use (in mode 2). */
- protected String voyageId;
-
/** Selected area of operation to use for voyage. */
protected String areaOfOperationId;
@@ -105,14 +102,6 @@
this.areaOfOperationId = areaOfOperationId;
}
- public String getVoyageId() {
- return voyageId;
- }
-
- public void setVoyageId(String voyageId) {
- this.voyageId = voyageId;
- }
-
public String getVoyageDescription() {
return voyageDescription;
}
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 2012-09-12 12:45:13 UTC (rev 653)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/CommonImportService.java 2012-09-12 15:57:54 UTC (rev 654)
@@ -152,10 +152,10 @@
Import<TransectImportRow> importer =
Import.newImport(csvModel, reader);
- configuration.incrementsProgression();
+ configuration.incrementsProgress();
for (TransectImportRow row : importer) {
- configuration.incrementsProgression();
+ configuration.incrementsProgress();
Transect transect = row.getTransect();
Date timeCoverageStart = transect.getTimeCoverageStart();
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/OperationImportConfiguration.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/OperationImportConfiguration.java 2012-09-12 12:45:13 UTC (rev 653)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/OperationImportConfiguration.java 2012-09-12 15:57:54 UTC (rev 654)
@@ -40,9 +40,6 @@
private static final long serialVersionUID = 1L;
- /** Selected voyage id where to import datas. */
- protected String voyageId;
-
/** operation file to import. */
protected final InputFile operationFile;
@@ -62,14 +59,6 @@
importType = ImportType.OPERATION;
}
- public String getVoyageId() {
- return voyageId;
- }
-
- public void setVoyageId(String voyageId) {
- this.voyageId = voyageId;
- }
-
public InputFile getOperationFile() {
return operationFile;
}
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/OperationImportService.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/OperationImportService.java 2012-09-12 12:45:13 UTC (rev 653)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/OperationImportService.java 2012-09-12 15:57:54 UTC (rev 654)
@@ -146,7 +146,7 @@
Import<OperationImportRow> importer =
Import.newImport(csvModel, reader);
- configuration.incrementsProgression();
+ configuration.incrementsProgress();
int rowNumber = 0;
for (OperationImportRow row : importer) {
@@ -213,7 +213,7 @@
Import.newImport(csvModel, reader);
int rowNumber = 0;
- configuration.incrementsProgression();
+ configuration.incrementsProgress();
for (OperationMetadataValueImportRow row : importer) {
doFlushTransaction(++rowNumber, inputFile, configuration);
@@ -270,7 +270,7 @@
Import.newImport(csvModel, reader);
int rowNumber = 0;
- configuration.incrementsProgression();
+ configuration.incrementsProgress();
for (GearMetadataValueImportRow row : importer) {
doFlushTransaction(++rowNumber, inputFile, configuration);
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/ResultsEsduCellImportService.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/ResultsEsduCellImportService.java 2012-09-12 12:45:13 UTC (rev 653)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/ResultsEsduCellImportService.java 2012-09-12 15:57:54 UTC (rev 654)
@@ -230,7 +230,7 @@
Import<EsduResultByEchotypeImportRow> importer =
Import.newImport(csvModel, reader);
- configuration.incrementsProgression();
+ configuration.incrementsProgress();
int rowNumber = 0;
for (EsduResultByEchotypeImportRow row : importer) {
@@ -309,7 +309,7 @@
Import<EsduResultByEchotypeAndSpeciesCategoryImportRow> importer =
Import.newImport(csvModel, reader);
- configuration.incrementsProgression();
+ configuration.incrementsProgress();
int rowNumber = 0;
for (EsduResultByEchotypeAndSpeciesCategoryImportRow row : importer) {
@@ -390,7 +390,7 @@
Import<EsduResultBySpeciesAndSizeCategoryImportRow> importer =
Import.newImport(csvModel, reader);
- configuration.incrementsProgression();
+ configuration.incrementsProgress();
int rowNumber = 0;
for (EsduResultBySpeciesAndSizeCategoryImportRow row : importer) {
@@ -491,7 +491,7 @@
Import<EsduResultBySpeciesAndAgeCategoryImportRow> importer =
Import.newImport(csvModel, reader);
- configuration.incrementsProgression();
+ configuration.incrementsProgress();
int rowNumber = 0;
for (EsduResultBySpeciesAndAgeCategoryImportRow row : importer) {
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/ResultsImportConfiguration.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/ResultsImportConfiguration.java 2012-09-12 12:45:13 UTC (rev 653)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/ResultsImportConfiguration.java 2012-09-12 15:57:54 UTC (rev 654)
@@ -40,9 +40,6 @@
private static final long serialVersionUID = 1L;
- /** Selected voyage id where to import datas. */
- protected String voyageId;
-
/** Selected dataProcessing id where to search esdu or elementary cells. */
protected String dataProcessingId;
@@ -110,14 +107,6 @@
l_(locale, "echobase.common.esduBySpeciesAndAgeCategoryFile"));
}
- public String getVoyageId() {
- return voyageId;
- }
-
- public void setVoyageId(String voyageId) {
- this.voyageId = voyageId;
- }
-
public String getVesselId() {
return vesselId;
}
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/ResultsMapCellImportService.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/ResultsMapCellImportService.java 2012-09-12 12:45:13 UTC (rev 653)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/ResultsMapCellImportService.java 2012-09-12 15:57:54 UTC (rev 654)
@@ -180,7 +180,7 @@
Import<MapCellImportRow> importer =
Import.newImport(csvModel, reader);
- configuration.incrementsProgression();
+ configuration.incrementsProgress();
int rowNumber = 0;
for (MapCellImportRow row : importer) {
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/ResultsRegionCellImportService.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/ResultsRegionCellImportService.java 2012-09-12 12:45:13 UTC (rev 653)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/ResultsRegionCellImportService.java 2012-09-12 15:57:54 UTC (rev 654)
@@ -156,7 +156,7 @@
Cell cell = null;
- configuration.incrementsProgression();
+ configuration.incrementsProgress();
int rowNumber = 0;
for (RegionCellImportRow row : importer) {
@@ -232,7 +232,7 @@
Import<RegionCellAssociationImportRow> importer =
Import.newImport(csvModel, reader);
- configuration.incrementsProgression();
+ configuration.incrementsProgress();
int rowNumber = 0;
for (RegionCellAssociationImportRow row : importer) {
@@ -319,7 +319,7 @@
Import<RegionCellResultImportRow> importer =
Import.newImport(csvModel, reader);
- configuration.incrementsProgression();
+ configuration.incrementsProgress();
int rowNumber = 0;
for (RegionCellResultImportRow row : importer) {
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/ResultsVoyageImportService.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/ResultsVoyageImportService.java 2012-09-12 12:45:13 UTC (rev 653)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/ResultsVoyageImportService.java 2012-09-12 15:57:54 UTC (rev 654)
@@ -171,7 +171,7 @@
Import<LengthWeightKeyImportRow> importer =
Import.newImport(csvModel, reader);
- configuration.incrementsProgression();
+ configuration.incrementsProgress();
int rowNumber = 0;
for (LengthWeightKeyImportRow row : importer) {
@@ -239,7 +239,7 @@
Import<LengthAgeKeyImportRow> importer =
Import.newImport(csvModel, reader);
- configuration.incrementsProgression();
+ configuration.incrementsProgress();
int rowNumber = 0;
for (LengthAgeKeyImportRow row : importer) {
@@ -296,7 +296,7 @@
Import<EchotypeImportRow> importer =
Import.newImport(csvModel, reader);
- configuration.incrementsProgression();
+ configuration.incrementsProgress();
int rowNumber = 0;
for (EchotypeImportRow row : importer) {
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdb/ImportDbConfiguration.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdb/ImportDbConfiguration.java 2012-09-12 12:45:13 UTC (rev 653)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdb/ImportDbConfiguration.java 2012-09-12 15:57:54 UTC (rev 654)
@@ -25,7 +25,7 @@
import fr.ifremer.echobase.io.InputFile;
import fr.ifremer.echobase.services.AbstractEchobaseActionConfiguration;
-import fr.ifremer.echobase.services.ProgressionModel;
+import fr.ifremer.echobase.services.ProgressModel;
import org.apache.commons.io.FileUtils;
import java.io.File;
@@ -54,9 +54,9 @@
protected boolean commitAfterEachFile;
- public ImportDbConfiguration(ProgressionModel progressionModel,
+ public ImportDbConfiguration(ProgressModel progressModel,
Locale locale) {
- super(progressionModel);
+ super(progressModel);
input = InputFile.newFile(l_(locale, "echobase.common.importDbFile"));
}
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 2012-09-12 12:45:13 UTC (rev 653)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/removedata/RemoveDataService.java 2012-09-12 15:57:54 UTC (rev 654)
@@ -109,14 +109,18 @@
long s0 = TimeLog.getTime();
AbstractRemoveDataStrategy strategy = getService(strategyType);
- strategy.doRemove(model, importLog);
+ try {
+ strategy.doRemove(model, importLog);
+ } catch (TopiaException e) {
+ throw new EchoBaseTechnicalException("Could not remove data", e);
+ }
s0 = TIME_LOG.log(s0, "removeData");
List<ImportLog> removedImportLog = removeObsoleteImportLogs(strategy,
importLog);
- model.incrementsProgression();
+ model.incrementsProgress();
s0 = TIME_LOG.log(s0, "removeObsoleteImportLogs");
// add result in log book and compute resume to show in result
@@ -125,12 +129,12 @@
user,
TimeLog.getTime() - s0);
- model.incrementsProgression();
+ model.incrementsProgress();
// do commit
commitTransaction("Could not remove import " +
strategy.getImportLabel());
- model.incrementsProgression();
+ model.incrementsProgress();
return result;
}
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/removedata/strategy/AbstractRemoveDataStrategy.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/removedata/strategy/AbstractRemoveDataStrategy.java 2012-09-12 12:45:13 UTC (rev 653)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/removedata/strategy/AbstractRemoveDataStrategy.java 2012-09-12 15:57:54 UTC (rev 654)
@@ -23,24 +23,29 @@
* #L%
*/
-import com.google.common.collect.Lists;
import com.google.common.collect.Sets;
import fr.ifremer.echobase.EchoBaseTechnicalException;
import fr.ifremer.echobase.entities.ImportLog;
import fr.ifremer.echobase.entities.ImportType;
import fr.ifremer.echobase.entities.data.Category;
import fr.ifremer.echobase.entities.data.CategoryDAO;
+import fr.ifremer.echobase.entities.data.Cell;
+import fr.ifremer.echobase.entities.data.CellDAO;
import fr.ifremer.echobase.entities.data.Echotype;
+import fr.ifremer.echobase.entities.data.EchotypeDAO;
import fr.ifremer.echobase.entities.data.LengthAgeKey;
+import fr.ifremer.echobase.entities.data.LengthAgeKeyDAO;
import fr.ifremer.echobase.entities.data.LengthWeightKey;
+import fr.ifremer.echobase.entities.data.LengthWeightKeyDAO;
import fr.ifremer.echobase.entities.data.Voyage;
+import fr.ifremer.echobase.entities.data.VoyageDAO;
+import fr.ifremer.echobase.services.EchoBaseServiceContext;
import fr.ifremer.echobase.services.EchoBaseServiceSupport;
import fr.ifremer.echobase.services.removedata.RemoveDataConfiguration;
import org.nuiton.topia.TopiaException;
import org.nuiton.topia.persistence.TopiaDAO;
import org.nuiton.topia.persistence.TopiaEntity;
-import java.util.Collection;
import java.util.List;
import java.util.Set;
@@ -58,12 +63,41 @@
return importLabel;
}
- protected abstract void removeData(String id) throws TopiaException;
+ protected VoyageDAO voyageDao;
+ protected CellDAO cellDAO;
+
+ protected CategoryDAO categoryDAO;
+
+ protected EchotypeDAO echotypeDAO;
+
+ protected LengthAgeKeyDAO lengthAgeKeyDAO;
+
+ protected LengthWeightKeyDAO lengthWeightKeyDAO;
+
+ @Override
+ public void setServiceContext(EchoBaseServiceContext serviceContext) {
+ super.setServiceContext(serviceContext);
+
+ cellDAO = getDAO(Cell.class, CellDAO.class);
+ echotypeDAO = getDAO(Echotype.class, EchotypeDAO.class);
+ voyageDao = getDAO(Voyage.class, VoyageDAO.class);
+ lengthAgeKeyDAO = getDAO(LengthAgeKey.class, LengthAgeKeyDAO.class);
+ lengthWeightKeyDAO = getDAO(LengthWeightKey.class, LengthWeightKeyDAO.class);
+ categoryDAO = getDAO(Category.class, CategoryDAO.class);
+ }
+
+ protected abstract void removeImportData(Voyage voyage,
+ String id) throws TopiaException;
+
public abstract Set<ImportType> getPossibleSubImportType();
- public void doRemove(RemoveDataConfiguration model, ImportLog importLog) {
+ public void doRemove(RemoveDataConfiguration model, ImportLog importLog) throws TopiaException {
+ Voyage voyage = voyageDao.findByTopiaId(importLog.getTopiaId());
+
+ removeDataInVoyage(voyage);
+
int currentIndex = 0;
for (String importId : importLog.getImportId()) {
@@ -72,33 +106,23 @@
if (currentIndex % 1000 == 0) {
flushTransaction("Could not flush transaction");
}
- model.incrementsProgression();
+ model.incrementsProgress();
try {
- removeData(importId);
+ removeImportData(voyage, importId);
} catch (TopiaException e) {
throw new EchoBaseTechnicalException(e);
}
}
}
- protected <E extends TopiaEntity> E findById(TopiaDAO<E> dao, String id) {
+ protected abstract void removeDataInVoyage(Voyage voyage) throws TopiaException;
- try {
- E result = dao.findByTopiaId(id);
- return result;
- } catch (TopiaException e) {
- throw new EchoBaseTechnicalException("Could not find entity with id " + id, e);
- }
- }
+ protected <E extends TopiaEntity> E removeEntity(TopiaDAO<E> dao,
+ String id) throws TopiaException {
- protected <E extends TopiaEntity> E removeEntity(String id) {
-
- // get dao
- TopiaDAO<E> dao = getDAOFromId(id);
-
// get entity to delete
- E entity = findById(dao, id);
+ E entity = dao.findByTopiaId(id);
// delete it
delete(dao, entity);
@@ -112,11 +136,11 @@
" from service " + this);
}
- protected void removeLengthWeightKey(LengthWeightKey lengthWeightKey,
- Voyage entity) throws TopiaException {
- TopiaDAO<LengthWeightKey> dao = getDAO(LengthWeightKey.class);
- dao.delete(lengthWeightKey);
+ protected void removeLengthWeightKey(Voyage entity,
+ LengthWeightKey lengthWeightKey) throws TopiaException {
+ lengthWeightKeyDAO.delete(lengthWeightKey);
+
if (entity != null) {
// remove it from the voyage
@@ -124,10 +148,9 @@
}
}
- protected void removeLengthAgeKey(LengthAgeKey lengthAgeKey,
- Voyage entity) throws TopiaException {
- TopiaDAO<LengthAgeKey> dao = getDAO(LengthAgeKey.class);
- dao.delete(lengthAgeKey);
+ protected void removeLengthAgeKey(Voyage entity,
+ LengthAgeKey lengthAgeKey) throws TopiaException {
+ lengthAgeKeyDAO.delete(lengthAgeKey);
if (entity != null) {
@@ -136,17 +159,15 @@
}
}
- protected void removeEchotype(Echotype echotype,
- Voyage entity) throws TopiaException {
+ protected void removeEchotype(Voyage entity,
+ Echotype echotype) throws TopiaException {
// delete all category
- CategoryDAO categoryDAO = getDAO(Category.class, CategoryDAO.class);
List<Category> allByEchotype = categoryDAO.findAllByEchotype(echotype);
categoryDAO.deleteAll(allByEchotype);
// delete echotype
- TopiaDAO<Echotype> dao = getDAO(Echotype.class);
- dao.delete(echotype);
+ echotypeDAO.delete(echotype);
if (entity != null) {
@@ -155,36 +176,46 @@
}
}
- protected void removeVoyage(TopiaDAO<Voyage> dao, Voyage entity) throws TopiaException {
+ protected void removePostCell(Voyage entity,
+ Cell cell) throws TopiaException {
- Collection<LengthWeightKey> lengthWeightKeys = Lists.newArrayList(entity.getLengthWeightKey());
- Collection<LengthAgeKey> lengthAgeKeys = Lists.newArrayList(entity.getLengthAgeKey());
+ // delete postcell
+ cellDAO.delete(cell);
+
+ if (entity != null) {
+
+ // remove it from the voyage
+ entity.removePostCell(cell);
+ }
+ }
+
+ protected void removeVoyage(Voyage entity) throws TopiaException {
+
Set<Echotype> echotypes = Sets.newHashSet(entity.getEchotype());
// clean this data
- entity.clearLengthWeightKey();
- entity.clearLengthAgeKey();
entity.clearEchotype();
// delete voyage
- delete(dao, entity);
+ delete(voyageDao, entity);
flushTransaction("Could not flush voyage deletion");
- // delete all lengthWeightKeys
- for (LengthWeightKey lengthWeightKey : lengthWeightKeys) {
- removeLengthWeightKey(lengthWeightKey, null);
+ // delete all echotypes
+ for (Echotype echotype : echotypes) {
+ removeEchotype(null, echotype);
}
+ }
- // delete all lengthAgeKeys
- for (LengthAgeKey lengthAgeKey : lengthAgeKeys) {
- removeLengthAgeKey(lengthAgeKey, null);
+ protected void removeVoyagePostCell(Voyage entity) throws TopiaException {
+
+ for (Cell postCell : entity.getPostCell()) {
+ removePostCell(null, postCell);
}
- // delete all echotypes
- for (Echotype echotype : echotypes) {
- removeEchotype(echotype, null);
- }
+ // clean this data
+ entity.clearPostCell();
+
+ flushTransaction("Could not flush transaction after removing postCells");
}
-
}
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/removedata/strategy/AcousticRemoveDataStrategy.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/removedata/strategy/AcousticRemoveDataStrategy.java 2012-09-12 12:45:13 UTC (rev 653)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/removedata/strategy/AcousticRemoveDataStrategy.java 2012-09-12 15:57:54 UTC (rev 654)
@@ -27,8 +27,12 @@
import fr.ifremer.echobase.entities.ImportType;
import fr.ifremer.echobase.entities.data.Cell;
import fr.ifremer.echobase.entities.data.DataAcquisition;
+import fr.ifremer.echobase.entities.data.DataAcquisitionDAO;
+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;
@@ -46,40 +50,47 @@
private static final Log log =
LogFactory.getLog(AcousticRemoveDataStrategy.class);
+ protected DataAcquisitionDAO dataAcquisitionDAO;
+
@Override
- protected void removeData(String id) {
+ public void setServiceContext(EchoBaseServiceContext serviceContext) {
+ super.setServiceContext(serviceContext);
+ dataAcquisitionDAO = getDAO(DataAcquisition.class, DataAcquisitionDAO.class);
+ }
+
+ @Override
+ protected void removeDataInVoyage(Voyage voyage) throws TopiaException {
+
+ // remove post cell from top voyage
+ removeVoyagePostCell(voyage);
+ }
+
+ @Override
+ protected void removeImportData(Voyage voyage, String id) throws TopiaException {
+
if (id.startsWith(DataAcquisition.class.getName())) {
// remove dataAcquisition
- removeDataAcquisition(id);
+ DataAcquisition entity = removeEntity(dataAcquisitionDAO, id);
+ if (log.isInfoEnabled()) {
+ log.info("DataAcquisition " + entity.getTopiaId() + " was removed");
+ }
} else if (id.startsWith(Cell.class.getName())) {
// remove cell
- removeCell(id);
+ Cell entity = removeEntity(cellDAO, id);
+ if (log.isInfoEnabled()) {
+ log.info("Cell " + entity.getTopiaId() + " was removed");
+ }
} else {
canNotDealWithId(id);
}
}
- protected void removeDataAcquisition(String id) {
- DataAcquisition entity = removeEntity(id);
- if (log.isInfoEnabled()) {
- log.info("DataAcquisition " + entity.getTopiaId() + " was removed");
- }
- }
-
- protected void removeCell(String id) {
- Cell entity = removeEntity(id);
- if (log.isInfoEnabled()) {
- log.info("Cell " + entity.getTopiaId() + " was removed");
- }
- }
-
@Override
public Set<ImportType> getPossibleSubImportType() {
- Set<ImportType> result = Sets.newHashSet(ImportType.RESULT_VOYAGE,
- ImportType.RESULT_ESDU,
+ Set<ImportType> result = Sets.newHashSet(ImportType.RESULT_ESDU,
ImportType.RESULT_MAP,
ImportType.RESULT_REGION);
return result;
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/removedata/strategy/CatchesRemoveDataStrategy.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/removedata/strategy/CatchesRemoveDataStrategy.java 2012-09-12 12:45:13 UTC (rev 653)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/removedata/strategy/CatchesRemoveDataStrategy.java 2012-09-12 15:57:54 UTC (rev 654)
@@ -25,8 +25,12 @@
import fr.ifremer.echobase.entities.ImportType;
import fr.ifremer.echobase.entities.data.Sample;
+import fr.ifremer.echobase.entities.data.SampleDAO;
+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.Collections;
import java.util.Set;
@@ -45,25 +49,34 @@
private static final Log log =
LogFactory.getLog(CatchesRemoveDataStrategy.class);
+ protected SampleDAO sampleDAO;
+
@Override
- protected void removeData(String id) {
+ public void setServiceContext(EchoBaseServiceContext serviceContext) {
+ super.setServiceContext(serviceContext);
+ sampleDAO = getDAO(Sample.class, SampleDAO.class);
+ }
+ @Override
+ protected void removeDataInVoyage(Voyage voyage) throws TopiaException {
+ // nothing to do on voyage level
+ }
+
+ @Override
+ protected void removeImportData(Voyage voyage, String id) throws TopiaException {
+
if (id.startsWith(Sample.class.getName())) {
// remove sample
- removeSample(id);
+ Sample entity = removeEntity(sampleDAO, id);
+ if (log.isInfoEnabled()) {
+ log.info("Sample " + entity.getTopiaId() + " was removed");
+ }
} else {
canNotDealWithId(id);
}
}
- protected void removeSample(String id) {
- Sample entity = removeEntity(id);
- if (log.isInfoEnabled()) {
- log.info("Sample " + entity.getTopiaId() + " was removed");
- }
- }
-
@Override
public Set<ImportType> getPossibleSubImportType() {
Set<ImportType> result = Collections.emptySet();
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 2012-09-12 12:45:13 UTC (rev 653)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/removedata/strategy/CommonAllRemoveDataStrategy.java 2012-09-12 15:57:54 UTC (rev 654)
@@ -29,7 +29,6 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.nuiton.topia.TopiaException;
-import org.nuiton.topia.persistence.TopiaDAO;
import java.util.Set;
@@ -48,34 +47,30 @@
LogFactory.getLog(CommonAllRemoveDataStrategy.class);
@Override
- protected void removeData(String id) throws TopiaException {
+ protected void removeDataInVoyage(Voyage voyage) throws TopiaException {
+ // nothing to do on voyage level (done by voyage id)...
+ }
+ @Override
+ protected void removeImportData(Voyage voyage, String id) throws TopiaException {
+
if (id.startsWith(Voyage.class.getName())) {
// remove voyage
- removeVoyage(id);
+ // get entity to delete
+ Voyage entity = voyageDao.findByTopiaId(id);
+
+ // delete it
+ removeVoyage(entity);
+
+ if (log.isInfoEnabled()) {
+ log.info("Voyage " + entity.getTopiaId() + " was removed");
+ }
} else {
canNotDealWithId(id);
}
}
- protected void removeVoyage(String id) throws TopiaException {
-
- // get dao
- TopiaDAO<Voyage> dao = getDAOFromId(id);
-
- // get entity to delete
- Voyage entity = findById(dao, id);
-
- // delete it
- removeVoyage(dao, entity);
-
- if (log.isInfoEnabled()) {
- log.info("Voyage " + entity.getTopiaId() + " was removed");
- }
- }
-
-
@Override
public Set<ImportType> getPossibleSubImportType() {
Set<ImportType> result = Sets.newHashSet(ImportType.COMMON_TRANSECT,
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/removedata/strategy/CommonTransectRemoveDataStrategy.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/removedata/strategy/CommonTransectRemoveDataStrategy.java 2012-09-12 12:45:13 UTC (rev 653)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/removedata/strategy/CommonTransectRemoveDataStrategy.java 2012-09-12 15:57:54 UTC (rev 654)
@@ -26,8 +26,12 @@
import com.google.common.collect.Sets;
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.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;
@@ -45,9 +49,25 @@
private static final Log log =
LogFactory.getLog(CommonTransectRemoveDataStrategy.class);
+ protected TransectDAO transectDAO;
+
@Override
- protected void removeData(String id) {
+ public void setServiceContext(EchoBaseServiceContext serviceContext) {
+ super.setServiceContext(serviceContext);
+ transectDAO = getDAO(Transect.class, TransectDAO.class);
+ }
+
+ @Override
+ protected void removeDataInVoyage(Voyage voyage) throws TopiaException {
+
+ // remove postCell from voyage
+ removeVoyagePostCell(voyage);
+ }
+
+ @Override
+ protected void removeImportData(Voyage voyage, String id) throws TopiaException {
+
if (id.startsWith(Transect.class.getName())) {
// remove transect
@@ -57,8 +77,8 @@
}
}
- protected void removeTransect(String id) {
- Transect entity = removeEntity(id);
+ protected void removeTransect(String id) throws TopiaException {
+ Transect entity = removeEntity(transectDAO, id);
if (log.isInfoEnabled()) {
log.info("Transect " + entity.getTopiaId() + " was removed");
}
@@ -69,7 +89,6 @@
Set<ImportType> result = Sets.newHashSet(ImportType.OPERATION,
ImportType.CATCHES,
ImportType.ACOUSTIC,
- ImportType.RESULT_VOYAGE,
ImportType.RESULT_ESDU,
ImportType.RESULT_MAP,
ImportType.RESULT_REGION);
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 2012-09-12 12:45:13 UTC (rev 653)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/removedata/strategy/LegacyVoyageRemoveDataStrategy.java 2012-09-12 15:57:54 UTC (rev 654)
@@ -29,7 +29,6 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.nuiton.topia.TopiaException;
-import org.nuiton.topia.persistence.TopiaDAO;
import java.util.Set;
@@ -48,34 +47,29 @@
LogFactory.getLog(LegacyVoyageRemoveDataStrategy.class);
@Override
- protected void removeData(String id) throws TopiaException {
-
- if (id.startsWith(Voyage.class.getName())) {
-
- // remove voyage
- removeVoyage(id);
- } else {
- canNotDealWithId(id);
- }
+ protected void removeDataInVoyage(Voyage voyage) throws TopiaException {
+ // nothing to do on voyage level
}
- protected void removeVoyage(String id) throws TopiaException {
+ @Override
+ protected void removeImportData(Voyage voyage, String id) throws TopiaException {
- // get dao
- TopiaDAO<Voyage> dao = getDAOFromId(id);
+ if (id.startsWith(Voyage.class.getName())) {
- // get entity to delete
- Voyage entity = findById(dao, id);
+ // get entity to delete
+ Voyage entity = voyageDao.findByTopiaId(id);
- // delete it
- removeVoyage(dao, entity);
+ // delete it
+ removeVoyage(entity);
- if (log.isInfoEnabled()) {
- log.info("Voyage " + entity.getTopiaId() + " was removed");
+ if (log.isInfoEnabled()) {
+ log.info("Voyage " + entity.getTopiaId() + " was removed");
+ }
+ } else {
+ canNotDealWithId(id);
}
}
-
@Override
public Set<ImportType> getPossibleSubImportType() {
Set<ImportType> result = Sets.newHashSet(ImportType.COMMON_TRANSECT,
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/removedata/strategy/OperationRemoveDataStrategy.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/removedata/strategy/OperationRemoveDataStrategy.java 2012-09-12 12:45:13 UTC (rev 653)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/removedata/strategy/OperationRemoveDataStrategy.java 2012-09-12 15:57:54 UTC (rev 654)
@@ -26,8 +26,12 @@
import com.google.common.collect.Sets;
import fr.ifremer.echobase.entities.ImportType;
import fr.ifremer.echobase.entities.data.Operation;
+import fr.ifremer.echobase.entities.data.OperationDAO;
+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;
@@ -45,25 +49,36 @@
private static final Log log =
LogFactory.getLog(OperationRemoveDataStrategy.class);
+ protected OperationDAO operationDAO;
+
@Override
- protected void removeData(String id) {
+ public void setServiceContext(EchoBaseServiceContext serviceContext) {
+ super.setServiceContext(serviceContext);
+ operationDAO = getDAO(Operation.class, OperationDAO.class);
+
+ }
+
+ @Override
+ protected void removeDataInVoyage(Voyage voyage) throws TopiaException {
+ // nothing to do on voyage level
+ }
+
+ @Override
+ protected void removeImportData(Voyage voyage, String id) throws TopiaException {
+
if (id.startsWith(Operation.class.getName())) {
// remove operation
- removeOperation(id);
+ Operation entity = removeEntity(operationDAO, id);
+ if (log.isInfoEnabled()) {
+ log.info("Operation " + entity.getTopiaId() + " was removed");
+ }
} else {
canNotDealWithId(id);
}
}
- protected void removeOperation(String id) {
- Operation entity = removeEntity(id);
- if (log.isInfoEnabled()) {
- log.info("Operation " + entity.getTopiaId() + " was removed");
- }
- }
-
@Override
public Set<ImportType> getPossibleSubImportType() {
Set<ImportType> result = Sets.newHashSet(ImportType.CATCHES);
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/removedata/strategy/ResultEsduRemoveDataStrategy.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/removedata/strategy/ResultEsduRemoveDataStrategy.java 2012-09-12 12:45:13 UTC (rev 653)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/removedata/strategy/ResultEsduRemoveDataStrategy.java 2012-09-12 15:57:54 UTC (rev 654)
@@ -25,8 +25,12 @@
import fr.ifremer.echobase.entities.ImportType;
import fr.ifremer.echobase.entities.data.Result;
+import fr.ifremer.echobase.entities.data.ResultDAO;
+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.Collections;
import java.util.Set;
@@ -45,25 +49,35 @@
private static final Log log =
LogFactory.getLog(ResultEsduRemoveDataStrategy.class);
+ protected ResultDAO resultDAO;
+
@Override
- protected void removeData(String id) {
+ public void setServiceContext(EchoBaseServiceContext serviceContext) {
+ super.setServiceContext(serviceContext);
+ resultDAO = getDAO(Result.class, ResultDAO.class);
+ }
+
+ @Override
+ protected void removeDataInVoyage(Voyage voyage) throws TopiaException {
+ // nothing to do on voyage level
+ }
+
+ @Override
+ protected void removeImportData(Voyage voyage, String id) throws TopiaException {
+
if (id.startsWith(Result.class.getName())) {
// remove result
- removeResult(id);
+ Result entity = removeEntity(resultDAO, id);
+ if (log.isDebugEnabled()) {
+ log.debug("Result " + entity.getTopiaId() + " was removed");
+ }
} else {
canNotDealWithId(id);
}
}
- protected void removeResult(String id) {
- Result entity = removeEntity(id);
- if (log.isDebugEnabled()) {
- log.debug("Result " + entity.getTopiaId() + " was removed");
- }
- }
-
@Override
public Set<ImportType> getPossibleSubImportType() {
Set<ImportType> result = Collections.emptySet();
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/removedata/strategy/ResultMapRemoveDataStrategy.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/removedata/strategy/ResultMapRemoveDataStrategy.java 2012-09-12 12:45:13 UTC (rev 653)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/removedata/strategy/ResultMapRemoveDataStrategy.java 2012-09-12 15:57:54 UTC (rev 654)
@@ -25,8 +25,10 @@
import fr.ifremer.echobase.entities.ImportType;
import fr.ifremer.echobase.entities.data.Cell;
+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.Collections;
import java.util.Set;
@@ -46,24 +48,25 @@
LogFactory.getLog(ResultMapRemoveDataStrategy.class);
@Override
- protected void removeData(String id) {
+ protected void removeDataInVoyage(Voyage voyage) throws TopiaException {
+ // nothing to do on voyage level
+ }
+ @Override
+ protected void removeImportData(Voyage voyage, String id) throws TopiaException {
+
if (id.startsWith(Cell.class.getName())) {
// remove cell
- removeCell(id);
+ Cell entity = removeEntity(cellDAO, id);
+ if (log.isInfoEnabled()) {
+ log.info("Cell " + entity.getTopiaId() + " was removed");
+ }
} else {
canNotDealWithId(id);
}
}
- protected void removeCell(String id) {
- Cell entity = removeEntity(id);
- if (log.isInfoEnabled()) {
- log.info("Cell " + entity.getTopiaId() + " was removed");
- }
- }
-
@Override
public Set<ImportType> getPossibleSubImportType() {
Set<ImportType> result = Collections.emptySet();
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/removedata/strategy/ResultRegionRemoveDataStrategy.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/removedata/strategy/ResultRegionRemoveDataStrategy.java 2012-09-12 12:45:13 UTC (rev 653)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/removedata/strategy/ResultRegionRemoveDataStrategy.java 2012-09-12 15:57:54 UTC (rev 654)
@@ -25,8 +25,12 @@
import fr.ifremer.echobase.entities.ImportType;
import fr.ifremer.echobase.entities.data.Cell;
+import fr.ifremer.echobase.entities.data.CellDAO;
+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.Collections;
import java.util.Set;
@@ -46,24 +50,25 @@
LogFactory.getLog(ResultRegionRemoveDataStrategy.class);
@Override
- protected void removeData(String id) {
+ protected void removeDataInVoyage(Voyage voyage) throws TopiaException {
+ // nothing to do on voyage level
+ }
+ @Override
+ protected void removeImportData(Voyage voyage, String id) throws TopiaException {
+
if (id.startsWith(Cell.class.getName())) {
- // remove echotype
- removeCell(id);
+ // remove post cell
+ Cell entity = removeEntity(cellDAO, id);
+ if (log.isInfoEnabled()) {
+ log.info("Cell " + entity.getTopiaId() + " was removed");
+ }
} else {
canNotDealWithId(id);
}
}
- protected void removeCell(String id) {
- Cell entity = removeEntity(id);
- if (log.isInfoEnabled()) {
- log.info("Cell " + entity.getTopiaId() + " was removed");
- }
- }
-
@Override
public Set<ImportType> getPossibleSubImportType() {
Set<ImportType> result = Collections.emptySet();
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/removedata/strategy/ResultVoyageRemoveDataStrategy.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/removedata/strategy/ResultVoyageRemoveDataStrategy.java 2012-09-12 12:45:13 UTC (rev 653)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/removedata/strategy/ResultVoyageRemoveDataStrategy.java 2012-09-12 15:57:54 UTC (rev 654)
@@ -30,14 +30,14 @@
import fr.ifremer.echobase.entities.data.LengthAgeKey;
import fr.ifremer.echobase.entities.data.LengthWeightKey;
import fr.ifremer.echobase.entities.data.Result;
+import fr.ifremer.echobase.entities.data.ResultDAO;
import fr.ifremer.echobase.entities.data.Voyage;
-import fr.ifremer.echobase.entities.data.VoyageDAO;
+import fr.ifremer.echobase.services.EchoBaseServiceContext;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.nuiton.topia.TopiaException;
import org.nuiton.topia.framework.TopiaContextImplementor;
import org.nuiton.topia.framework.TopiaSQLQuery;
-import org.nuiton.topia.persistence.TopiaDAO;
import java.sql.Connection;
import java.sql.PreparedStatement;
@@ -62,87 +62,21 @@
private static final Log log =
LogFactory.getLog(ResultVoyageRemoveDataStrategy.class);
- protected Voyage voyage;
+ protected ResultDAO resultDAO;
+
@Override
- protected void removeData(String id) throws TopiaException {
+ public void setServiceContext(EchoBaseServiceContext serviceContext) {
+ super.setServiceContext(serviceContext);
- if (id.startsWith(Echotype.class.getName())) {
-
- // get dao
- TopiaDAO<Echotype> dao = getDAOFromId(id);
-
- // get entity to delete
- Echotype entity = findById(dao, id);
-
- if (voyage == null) {
-
- // load voyage
- VoyageDAO voyageDao = getDAO(Voyage.class, VoyageDAO.class);
- voyage = voyageDao.findContainsEchotype(entity);
-
- // remove data from voyage
- removeVoyageData(voyage);
- }
-
- // remove echotype
- removeEchotype(entity);
- } else if (id.startsWith(LengthAgeKey.class.getName())) {
-
- // get dao
- TopiaDAO<LengthAgeKey> dao = getDAOFromId(id);
-
- // get entity to delete
- LengthAgeKey entity = findById(dao, id);
-
- if (voyage == null) {
-
- // load voyage
- VoyageDAO voyageDao = getDAO(Voyage.class, VoyageDAO.class);
- voyage = voyageDao.findContainsLengthAgeKey(entity);
-
- // remove data from voyage
- removeVoyageData(voyage);
- }
-
- // remove lengthAgeKey
- removeLengthAgeKey(entity);
- } else if (id.startsWith(LengthWeightKey.class.getName())) {
-
- // get dao
- TopiaDAO<LengthWeightKey> dao = getDAOFromId(id);
-
- // get entity to delete
- LengthWeightKey entity = findById(dao, id);
-
- if (voyage == null) {
-
- // load voyage
- VoyageDAO voyageDao = getDAO(Voyage.class, VoyageDAO.class);
- voyage = voyageDao.findContainsLengthWeightKey(entity);
-
- // remove data from voyage
- removeVoyageData(voyage);
- }
-
- // remove lengthAgeKey
- removeLengthWeightKey(entity);
- } else {
- canNotDealWithId(id);
- }
+ resultDAO = getDAO(Result.class, ResultDAO.class);
}
- protected void removeVoyageData(final Voyage voyage) throws TopiaException {
+ @Override
+ protected void removeDataInVoyage(final Voyage voyage) throws TopiaException {
- // suppress all postCell from the voyage
- TopiaDAO<Cell> cellDAO = getDAO(Cell.class);
- for (Cell postCell : voyage.getPostCell()) {
- voyage.removePostCell(postCell);
- delete(cellDAO, postCell);
- }
+ removeVoyagePostCell(voyage);
- flushTransaction("Could not flush transaction after removing postCells");
-
// Get all cells of the voyage
TopiaSQLQuery<String> query = new TopiaSQLQuery<String>() {
@Override
@@ -173,10 +107,8 @@
// remove all result of cells
- TopiaDAO<Result> resultDAO = getDAO(Result.class);
-
for (String cellId : cellIds) {
- Cell cell = findById(cellDAO, cellId);
+ Cell cell = cellDAO.findByTopiaId(cellId);
Collection<Result> cellResult = cell.getResult();
for (Result result : cellResult) {
cell.removeResult(result);
@@ -188,30 +120,41 @@
"Could not flush transaction after deleting data from voyage");
}
- protected void removeEchotype(Echotype entity) throws TopiaException {
+ @Override
+ protected void removeImportData(Voyage voyage, String id) throws TopiaException {
- removeEchotype(entity, voyage);
+ if (id.startsWith(Echotype.class.getName())) {
- if (log.isInfoEnabled()) {
- log.info("Echotype " + entity.getTopiaId() + " was removed");
- }
- }
+ // remove echotype
+ Echotype entity = echotypeDAO.findByTopiaId(id);
- protected void removeLengthAgeKey(LengthAgeKey entity) throws TopiaException {
+ removeEchotype(voyage, entity);
- removeLengthAgeKey(entity, voyage);
+ if (log.isInfoEnabled()) {
+ log.info("Echotype " + entity.getTopiaId() + " was removed");
+ }
+ } else if (id.startsWith(LengthAgeKey.class.getName())) {
- if (log.isInfoEnabled()) {
- log.info("LengthAgeKey " + entity.getTopiaId() + " was removed");
- }
- }
+ // remove lengthAgeKey
+ LengthAgeKey entity = lengthAgeKeyDAO.findByTopiaId(id);
- protected void removeLengthWeightKey(LengthWeightKey entity) throws TopiaException {
+ removeLengthAgeKey(voyage, entity);
- removeLengthWeightKey(entity, voyage);
+ if (log.isInfoEnabled()) {
+ log.info("LengthAgeKey " + entity.getTopiaId() + " was removed");
+ }
+ } else if (id.startsWith(LengthWeightKey.class.getName())) {
- if (log.isInfoEnabled()) {
- log.info("LengthWeightKey " + entity.getTopiaId() + " was removed");
+ // remove lengthAgeKey
+ LengthWeightKey entity = lengthWeightKeyDAO.findByTopiaId(id);
+
+ removeLengthWeightKey(voyage, entity);
+
+ if (log.isInfoEnabled()) {
+ log.info("LengthWeightKey " + entity.getTopiaId() + " was removed");
+ }
+ } else {
+ canNotDealWithId(id);
}
}
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 2012-09-12 12:45:13 UTC (rev 653)
+++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/EchoBaseTestServiceSupport.java 2012-09-12 15:57:54 UTC (rev 654)
@@ -85,8 +85,8 @@
return fakeServiceContext.getTestDir();
}
- public void assertConfProgressionToEnd(ProgressionModel conf) {
- Assert.assertEquals(100f, conf.getProgression(), 1);
+ public void assertConfProgressionToEnd(ProgressModel conf) {
+ Assert.assertEquals(100f, conf.getProgress(), 1);
}
protected void prepareInputFile(InputFile inputFile,
Modified: trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/EmbeddedApplicationServiceIT.java
===================================================================
--- trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/EmbeddedApplicationServiceIT.java 2012-09-12 12:45:13 UTC (rev 653)
+++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/EmbeddedApplicationServiceIT.java 2012-09-12 15:57:54 UTC (rev 654)
@@ -63,7 +63,7 @@
File zipFile = service.createEmbeddedApplication(conf);
Assert.assertTrue(zipFile.exists());
- Assert.assertEquals(100f, conf.getProgression(), 1);
+ Assert.assertEquals(100f, conf.getProgress(), 1);
// TODO Test that embedded db has exactly same number of data than in incoming db
}
Modified: trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/ImportDbServiceTest.java
===================================================================
--- trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/ImportDbServiceTest.java 2012-09-12 12:45:13 UTC (rev 653)
+++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/ImportDbServiceTest.java 2012-09-12 15:57:54 UTC (rev 654)
@@ -71,7 +71,7 @@
service.doImport(conf, user);
- Assert.assertTrue(conf.getProgression() > 94);
+ Assert.assertTrue(conf.getProgress() > 94);
}
}
Modified: trunk/src/site/rst/removeimports.rst
===================================================================
--- trunk/src/site/rst/removeimports.rst 2012-09-12 12:45:13 UTC (rev 653)
+++ trunk/src/site/rst/removeimports.rst 2012-09-12 15:57:54 UTC (rev 654)
@@ -36,23 +36,48 @@
Abstract
--------
-Ce document décrit ce qui se passe lors la suppresion des imports.
+Ce document décrit ce qui se passe lors la suppresion d'un import.
+Import Voyage complêt)
+----------------------
+
+Données à supprimer
+~~~~~~~~~~~~~~~~~~~
+
+Le voyage en question et tout ce qui y est rattaché (Transit,...) et aussi :
+
+- category (utilise EchoType)
+- echotype
+
+Imports à retirer
+~~~~~~~~~~~~~~~~~
+
+Seront supprimés de la table des imports les imports suivants qui aurait pu
+être effectué suite à cet import, à savoir :
+
+- import Transect
+- import Operation
+- import Catches
+- import Acoustic
+- import Résultats Voyage
+- import Résultats Esdu
+- import Region
+- import Map
+
+
Import Voyage / Transit / Transect
----------------------------------
-Données supprimées
-~~~~~~~~~~~~~~~~~~
+Données à supprimer
+~~~~~~~~~~~~~~~~~~~
-Le voyage en question et tout ce qui y est rattaché et aussi :
+Le voyage en question et tout ce qui y est rattaché (Transit,...) et aussi :
-- category
+- category (utilise EchoType)
- echotype
-- lengthAgeKey
-- lengthWeightKey
-Import retirés
-~~~~~~~~~~~~~~
+Imports à retirer
+~~~~~~~~~~~~~~~~~
Seront supprimés de la table des imports les imports suivants qui aurait pu
être effectué suite à cet import, à savoir :
@@ -69,14 +94,14 @@
Import Transect
---------------
-Données supprimées
-~~~~~~~~~~~~~~~~~~
+Données à supprimer
+~~~~~~~~~~~~~~~~~~~
Le transect en question et tout ce qui y est rattaché, ainsi que les *postCell*
et leur résultats.
-Import retirés
-~~~~~~~~~~~~~~
+Imports à retirer
+~~~~~~~~~~~~~~~~~
Seront supprimés de la table des imports les imports suivants qui aurait pu
être effectué suite à cet import, à savoir :
@@ -91,14 +116,14 @@
Import Operation
----------------
-Données supprimées
-~~~~~~~~~~~~~~~~~~
+Données à supprimer
+~~~~~~~~~~~~~~~~~~~
Les opérations de pêche et tout ce qui y est rattaché (OperationMetadata et
GearMetadata et Sample).
-Import retirés
-~~~~~~~~~~~~~~
+Imports à retirer
+~~~~~~~~~~~~~~~~~~~
Seront supprimés de la table des imports les imports suivants qui aurait pu
être effectué suite à cet import, à savoir :
@@ -108,27 +133,28 @@
Import Catches
--------------
-Données supprimées
-~~~~~~~~~~~~~~~~~~
+Données à supprimer
+~~~~~~~~~~~~~~~~~~~
-Les échantillons captures en question et tout ce qui y est rattaché.
+Les échantillons captures (Sample) en question et tout ce qui y est rattaché
+(SampleData).
-Import retirés
-~~~~~~~~~~~~~~
+Imports à retirer
+~~~~~~~~~~~~~~~~~
Aucun sous import possible à retirer.
Import Acoustic
---------------
-Données supprimées
-~~~~~~~~~~~~~~~~~~
+Données à supprimer
+~~~~~~~~~~~~~~~~~~~
Les données acoustiques et tout ce qui y est rattaché (DataAcquisition, Cell, Result),
ainsi que les *postCell* et leur résultats.
-Import retirés
-~~~~~~~~~~~~~~
+Imports à retirer
+~~~~~~~~~~~~~~~~~
Seront supprimés de la table des imports les imports suivants qui aurait pu
être effectué sur ce voyage, à savoir :
@@ -140,8 +166,8 @@
Import Résultats voyage
-----------------------
-Données supprimées
-~~~~~~~~~~~~~~~~~~
+Données à supprimer
+~~~~~~~~~~~~~~~~~~~
Les données rattachés à un voyage après-coup, à savoir :
@@ -151,8 +177,8 @@
Mais aussi tous les résultats (car il peuvent dépendre des données précédentes).
-Import retirés
-~~~~~~~~~~~~~~
+Imports à retirer
+~~~~~~~~~~~~~~~~~
Seront supprimés de la table des imports les imports suivants qui aurait pu
être effectué suite à cet import, à savoir :
@@ -164,38 +190,38 @@
Immort Résultats Esdu
---------------------
-Données supprimées
-~~~~~~~~~~~~~~~~~~
+Données à supprimer
+~~~~~~~~~~~~~~~~~~~
Les résultats attachés aux cellules de type *ESDU*.
-Import retirés
-~~~~~~~~~~~~~~
+Imports à retirer
+~~~~~~~~~~~~~~~~~
Aucun sous import possible à retirer.
Import Region
-------------
-Données supprimées
-~~~~~~~~~~~~~~~~~~
+Données à supprimer
+~~~~~~~~~~~~~~~~~~~
Les postCells de type *Region* et tout ce qui y est rattaché (Result)
-Import retirés
-~~~~~~~~~~~~~~
+Imports à retirer
+~~~~~~~~~~~~~~~~~
Aucun sous import possible à retirer.
Import Map
----------
-Données supprimées
-~~~~~~~~~~~~~~~~~~
+Données à supprimer
+~~~~~~~~~~~~~~~~~~~
Les postCells de type *Map* et tout ce qui y est rattaché (Result)
-Import retirés
-~~~~~~~~~~~~~~
+Imports à retirer
+~~~~~~~~~~~~~~~~~
Aucun sous import possible à retirer.
\ No newline at end of file
1
0
12 Sep '12
Author: tchemit
Date: 2012-09-12 14:45:13 +0200 (Wed, 12 Sep 2012)
New Revision: 653
Url: http://forge.codelutin.com/repositories/revision/echobase/653
Log:
add missing svn properties
fix result for some long action (was null)
add remove import first doc
Added:
trunk/src/site/rst/removeimports.rst
Modified:
trunk/echobase-domain/src/main/java/fr/ifremer/echobase/services/AbstractEchobaseActionConfiguration.java
trunk/echobase-tools/src/test/baracouda.mdb
trunk/echobase-tools/src/test/echobase-2012-04-12/csv/association/Cell_childs.csv
trunk/echobase-tools/src/test/echobase-2012-04-12/csv/association/Cell_data.csv
trunk/echobase-tools/src/test/echobase-2012-04-12/csv/association/DataAcquisition_dataProcessing.csv
trunk/echobase-tools/src/test/echobase-2012-04-12/csv/association/DataProcessing_cell.csv
trunk/echobase-tools/src/test/echobase-2012-04-12/csv/association/Echotype_species.csv
trunk/echobase-tools/src/test/echobase-2012-04-12/csv/association/Operation_gearMetadataValue.csv
trunk/echobase-tools/src/test/echobase-2012-04-12/csv/association/Operation_operationMetadataValue.csv
trunk/echobase-tools/src/test/echobase-2012-04-12/csv/association/Operation_sample.csv
trunk/echobase-tools/src/test/echobase-2012-04-12/csv/association/Sample_sampleData.csv
trunk/echobase-tools/src/test/echobase-2012-04-12/csv/association/Transect_dataAcquisition.csv
trunk/echobase-tools/src/test/echobase-2012-04-12/csv/association/Transect_operation.csv
trunk/echobase-tools/src/test/echobase-2012-04-12/csv/association/Transit_transect.csv
trunk/echobase-tools/src/test/echobase-2012-04-12/csv/association/Voyage_echotype.csv
trunk/echobase-tools/src/test/echobase-2012-04-12/csv/association/Voyage_echotype.csv2
trunk/echobase-tools/src/test/echobase-2012-04-12/csv/association/Voyage_lengthAgeKey.csv
trunk/echobase-tools/src/test/echobase-2012-04-12/csv/association/Voyage_lengthWeightKey.csv
trunk/echobase-tools/src/test/echobase-2012-04-12/csv/association/Voyage_postCell.csv
trunk/echobase-tools/src/test/echobase-2012-04-12/csv/association/Voyage_transit.csv
trunk/echobase-tools/src/test/echobase-2012-04-12/csv/baracouda/Cell.csv
trunk/echobase-tools/src/test/echobase-2012-04-12/csv/baracouda/Data.csv
trunk/echobase-tools/src/test/echobase-2012-04-12/csv/baracouda/DataAcquisition.csv
trunk/echobase-tools/src/test/echobase-2012-04-12/csv/baracouda/DataMetadata.csv
trunk/echobase-tools/src/test/echobase-2012-04-12/csv/baracouda/DataMetadata2.csv
trunk/echobase-tools/src/test/echobase-2012-04-12/csv/baracouda/DataProcessing.csv
trunk/echobase-tools/src/test/echobase-2012-04-12/csv/baracouda/Data_backup.csv
trunk/echobase-tools/src/test/echobase-2012-04-12/csv/baracouda/GearMetadataValue.csv
trunk/echobase-tools/src/test/echobase-2012-04-12/csv/baracouda/LengthAgeKey.csv
trunk/echobase-tools/src/test/echobase-2012-04-12/csv/baracouda/LengthWeightKey.csv
trunk/echobase-tools/src/test/echobase-2012-04-12/csv/baracouda/Operation.csv
trunk/echobase-tools/src/test/echobase-2012-04-12/csv/baracouda/OperationMetadataValue.csv
trunk/echobase-tools/src/test/echobase-2012-04-12/csv/baracouda/Sample.csv
trunk/echobase-tools/src/test/echobase-2012-04-12/csv/baracouda/SampleData.csv
trunk/echobase-tools/src/test/echobase-2012-04-12/csv/baracouda/SpeciesCategory.csv
trunk/echobase-tools/src/test/echobase-2012-04-12/csv/baracouda/Transect.csv
trunk/echobase-tools/src/test/echobase-2012-04-12/csv/baracouda/Transit.csv
trunk/echobase-tools/src/test/echobase-2012-04-12/csv/baracouda/Voyage.csv
trunk/echobase-tools/src/test/echobase-2012-04-12/csv/new/AcousticInstrument.csv
trunk/echobase-tools/src/test/echobase-2012-04-12/csv/new/AgeCategory.csv
trunk/echobase-tools/src/test/echobase-2012-04-12/csv/new/AreaOfOperation.csv
trunk/echobase-tools/src/test/echobase-2012-04-12/csv/new/CellMethod.csv
trunk/echobase-tools/src/test/echobase-2012-04-12/csv/new/CellType.csv
trunk/echobase-tools/src/test/echobase-2012-04-12/csv/new/DataMetadata.csv
trunk/echobase-tools/src/test/echobase-2012-04-12/csv/new/DataQuality.csv
trunk/echobase-tools/src/test/echobase-2012-04-12/csv/new/DataType.csv
trunk/echobase-tools/src/test/echobase-2012-04-12/csv/new/DepthStratum.csv
trunk/echobase-tools/src/test/echobase-2012-04-12/csv/new/Echotype.csv
trunk/echobase-tools/src/test/echobase-2012-04-12/csv/new/EchotypeCategory.csv
trunk/echobase-tools/src/test/echobase-2012-04-12/csv/new/Gear.csv
trunk/echobase-tools/src/test/echobase-2012-04-12/csv/new/GearMetadata.csv
trunk/echobase-tools/src/test/echobase-2012-04-12/csv/new/Mission.csv
trunk/echobase-tools/src/test/echobase-2012-04-12/csv/new/OperationEvent.csv
trunk/echobase-tools/src/test/echobase-2012-04-12/csv/new/OperationMetadata.csv
trunk/echobase-tools/src/test/echobase-2012-04-12/csv/new/ReferenceDatum.csv
trunk/echobase-tools/src/test/echobase-2012-04-12/csv/new/ReferenceDatumType.csv
trunk/echobase-tools/src/test/echobase-2012-04-12/csv/new/SampleDataType.csv
trunk/echobase-tools/src/test/echobase-2012-04-12/csv/new/SampleType.csv
trunk/echobase-tools/src/test/echobase-2012-04-12/csv/new/SexCategory.csv
trunk/echobase-tools/src/test/echobase-2012-04-12/csv/new/SizeCategory.csv
trunk/echobase-tools/src/test/echobase-2012-04-12/csv/new/Species.csv
trunk/echobase-tools/src/test/echobase-2012-04-12/csv/new/Strata.csv
trunk/echobase-tools/src/test/echobase-2012-04-12/csv/new/TSParameters.csv
trunk/echobase-tools/src/test/echobase-2012-04-12/csv/new/Vessel.csv
trunk/echobase-tools/src/test/echobase-2012-04-12/csv/new/VesselType.csv
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/AbstractLaunchImport.java
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/removeData/Delete.java
trunk/echobase-ui/src/main/resources/i18n/echobase-ui_en_GB.properties
trunk/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties
trunk/echobase-ui/src/main/webapp/WEB-INF/includes/actionResult.jsp
trunk/src/site/site_en.xml
trunk/src/site/site_fr.xml
Modified: trunk/echobase-domain/src/main/java/fr/ifremer/echobase/services/AbstractEchobaseActionConfiguration.java
===================================================================
--- trunk/echobase-domain/src/main/java/fr/ifremer/echobase/services/AbstractEchobaseActionConfiguration.java 2012-09-12 11:03:43 UTC (rev 652)
+++ trunk/echobase-domain/src/main/java/fr/ifremer/echobase/services/AbstractEchobaseActionConfiguration.java 2012-09-12 12:45:13 UTC (rev 653)
@@ -41,6 +41,8 @@
private Exception error;
+ private String resultMessage;
+
protected AbstractEchobaseActionConfiguration() {
progressionModel = new DefaultProgressionModel();
}
@@ -106,6 +108,14 @@
return error != null;
}
+ public String getResultMessage() {
+ return resultMessage;
+ }
+
+ public void setResultMessage(String resultMessage) {
+ this.resultMessage = resultMessage;
+ }
+
@Override
public String getActionTime() {
return progressionModel.getActionTime();
Property changes on: trunk/echobase-tools/src/test/baracouda.mdb
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/echobase-tools/src/test/echobase-2012-04-12/csv/association/Cell_childs.csv
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Property changes on: trunk/echobase-tools/src/test/echobase-2012-04-12/csv/association/Cell_data.csv
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Property changes on: trunk/echobase-tools/src/test/echobase-2012-04-12/csv/association/DataAcquisition_dataProcessing.csv
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Property changes on: trunk/echobase-tools/src/test/echobase-2012-04-12/csv/association/DataProcessing_cell.csv
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Property changes on: trunk/echobase-tools/src/test/echobase-2012-04-12/csv/association/Echotype_species.csv
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Property changes on: trunk/echobase-tools/src/test/echobase-2012-04-12/csv/association/Operation_gearMetadataValue.csv
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Property changes on: trunk/echobase-tools/src/test/echobase-2012-04-12/csv/association/Operation_operationMetadataValue.csv
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Property changes on: trunk/echobase-tools/src/test/echobase-2012-04-12/csv/association/Operation_sample.csv
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Property changes on: trunk/echobase-tools/src/test/echobase-2012-04-12/csv/association/Sample_sampleData.csv
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Property changes on: trunk/echobase-tools/src/test/echobase-2012-04-12/csv/association/Transect_dataAcquisition.csv
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Property changes on: trunk/echobase-tools/src/test/echobase-2012-04-12/csv/association/Transect_operation.csv
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Property changes on: trunk/echobase-tools/src/test/echobase-2012-04-12/csv/association/Transit_transect.csv
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Property changes on: trunk/echobase-tools/src/test/echobase-2012-04-12/csv/association/Voyage_echotype.csv
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Property changes on: trunk/echobase-tools/src/test/echobase-2012-04-12/csv/association/Voyage_echotype.csv2
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Property changes on: trunk/echobase-tools/src/test/echobase-2012-04-12/csv/association/Voyage_lengthAgeKey.csv
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Property changes on: trunk/echobase-tools/src/test/echobase-2012-04-12/csv/association/Voyage_lengthWeightKey.csv
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Property changes on: trunk/echobase-tools/src/test/echobase-2012-04-12/csv/association/Voyage_postCell.csv
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Property changes on: trunk/echobase-tools/src/test/echobase-2012-04-12/csv/association/Voyage_transit.csv
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Property changes on: trunk/echobase-tools/src/test/echobase-2012-04-12/csv/baracouda/Cell.csv
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Property changes on: trunk/echobase-tools/src/test/echobase-2012-04-12/csv/baracouda/Data.csv
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Property changes on: trunk/echobase-tools/src/test/echobase-2012-04-12/csv/baracouda/DataAcquisition.csv
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Property changes on: trunk/echobase-tools/src/test/echobase-2012-04-12/csv/baracouda/DataMetadata.csv
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Property changes on: trunk/echobase-tools/src/test/echobase-2012-04-12/csv/baracouda/DataMetadata2.csv
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Property changes on: trunk/echobase-tools/src/test/echobase-2012-04-12/csv/baracouda/DataProcessing.csv
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Property changes on: trunk/echobase-tools/src/test/echobase-2012-04-12/csv/baracouda/Data_backup.csv
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Property changes on: trunk/echobase-tools/src/test/echobase-2012-04-12/csv/baracouda/GearMetadataValue.csv
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Property changes on: trunk/echobase-tools/src/test/echobase-2012-04-12/csv/baracouda/LengthAgeKey.csv
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Property changes on: trunk/echobase-tools/src/test/echobase-2012-04-12/csv/baracouda/LengthWeightKey.csv
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Property changes on: trunk/echobase-tools/src/test/echobase-2012-04-12/csv/baracouda/Operation.csv
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Property changes on: trunk/echobase-tools/src/test/echobase-2012-04-12/csv/baracouda/OperationMetadataValue.csv
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Property changes on: trunk/echobase-tools/src/test/echobase-2012-04-12/csv/baracouda/Sample.csv
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Property changes on: trunk/echobase-tools/src/test/echobase-2012-04-12/csv/baracouda/SampleData.csv
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Property changes on: trunk/echobase-tools/src/test/echobase-2012-04-12/csv/baracouda/SpeciesCategory.csv
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Property changes on: trunk/echobase-tools/src/test/echobase-2012-04-12/csv/baracouda/Transect.csv
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Property changes on: trunk/echobase-tools/src/test/echobase-2012-04-12/csv/baracouda/Transit.csv
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Property changes on: trunk/echobase-tools/src/test/echobase-2012-04-12/csv/baracouda/Voyage.csv
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Property changes on: trunk/echobase-tools/src/test/echobase-2012-04-12/csv/new/AcousticInstrument.csv
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Property changes on: trunk/echobase-tools/src/test/echobase-2012-04-12/csv/new/AgeCategory.csv
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Property changes on: trunk/echobase-tools/src/test/echobase-2012-04-12/csv/new/AreaOfOperation.csv
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Property changes on: trunk/echobase-tools/src/test/echobase-2012-04-12/csv/new/CellMethod.csv
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Property changes on: trunk/echobase-tools/src/test/echobase-2012-04-12/csv/new/CellType.csv
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Property changes on: trunk/echobase-tools/src/test/echobase-2012-04-12/csv/new/DataMetadata.csv
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Property changes on: trunk/echobase-tools/src/test/echobase-2012-04-12/csv/new/DataQuality.csv
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Property changes on: trunk/echobase-tools/src/test/echobase-2012-04-12/csv/new/DataType.csv
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Property changes on: trunk/echobase-tools/src/test/echobase-2012-04-12/csv/new/DepthStratum.csv
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Property changes on: trunk/echobase-tools/src/test/echobase-2012-04-12/csv/new/Echotype.csv
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Property changes on: trunk/echobase-tools/src/test/echobase-2012-04-12/csv/new/EchotypeCategory.csv
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Property changes on: trunk/echobase-tools/src/test/echobase-2012-04-12/csv/new/Gear.csv
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Property changes on: trunk/echobase-tools/src/test/echobase-2012-04-12/csv/new/GearMetadata.csv
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Property changes on: trunk/echobase-tools/src/test/echobase-2012-04-12/csv/new/Mission.csv
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Property changes on: trunk/echobase-tools/src/test/echobase-2012-04-12/csv/new/OperationEvent.csv
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Property changes on: trunk/echobase-tools/src/test/echobase-2012-04-12/csv/new/OperationMetadata.csv
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Property changes on: trunk/echobase-tools/src/test/echobase-2012-04-12/csv/new/ReferenceDatum.csv
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Property changes on: trunk/echobase-tools/src/test/echobase-2012-04-12/csv/new/ReferenceDatumType.csv
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Property changes on: trunk/echobase-tools/src/test/echobase-2012-04-12/csv/new/SampleDataType.csv
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Property changes on: trunk/echobase-tools/src/test/echobase-2012-04-12/csv/new/SampleType.csv
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Property changes on: trunk/echobase-tools/src/test/echobase-2012-04-12/csv/new/SexCategory.csv
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Property changes on: trunk/echobase-tools/src/test/echobase-2012-04-12/csv/new/SizeCategory.csv
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Property changes on: trunk/echobase-tools/src/test/echobase-2012-04-12/csv/new/Species.csv
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Property changes on: trunk/echobase-tools/src/test/echobase-2012-04-12/csv/new/Strata.csv
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Property changes on: trunk/echobase-tools/src/test/echobase-2012-04-12/csv/new/TSParameters.csv
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Property changes on: trunk/echobase-tools/src/test/echobase-2012-04-12/csv/new/Vessel.csv
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Property changes on: trunk/echobase-tools/src/test/echobase-2012-04-12/csv/new/VesselType.csv
___________________________________________________________________
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/AbstractLaunchImport.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/AbstractLaunchImport.java 2012-09-12 11:03:43 UTC (rev 652)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/AbstractLaunchImport.java 2012-09-12 12:45:13 UTC (rev 653)
@@ -25,7 +25,6 @@
import fr.ifremer.echobase.services.importdata.AbstractImportConfiguration;
import fr.ifremer.echobase.services.importdata.AbstractImportDataService;
-import fr.ifremer.echobase.services.importdb.ImportDbConfiguration;
import fr.ifremer.echobase.ui.actions.AbstractWaitAndExecAction;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -60,7 +59,7 @@
@Override
protected String getResultMessage(M model) {
String message = _("echobase.message.importData.result",
- model.getActionTime(), result);
+ model.getActionTime(), model.getResultMessage());
if (log.isInfoEnabled()) {
log.info("Result: " + message);
}
@@ -72,15 +71,14 @@
return _("echobase.legend.importData.result.resume");
}
- private String result;
-
@Override
protected void startAction(S service, M model) throws Exception {
if (log.isInfoEnabled()) {
log.info("Start imports for " + getModel());
}
- result = service.doImport(model, getEchoBaseSession().getUser());
+ model.setResultMessage(
+ service.doImport(model, getEchoBaseSession().getUser()));
}
@Override
Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/removeData/Delete.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/removeData/Delete.java 2012-09-12 11:03:43 UTC (rev 652)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/removeData/Delete.java 2012-09-12 12:45:13 UTC (rev 653)
@@ -59,7 +59,7 @@
@Override
protected String getResultMessage(RemoveDataConfiguration model) {
String message = _("echobase.message.removeData.result",
- model.getActionTime(), result);
+ model.getActionTime(), model.getResultMessage());
if (log.isInfoEnabled()) {
log.info("Result: " + message);
}
@@ -71,8 +71,6 @@
return _("echobase.legend.removeData.resume");
}
- private String result;
-
@Override
protected void startAction(RemoveDataService service,
RemoveDataConfiguration model) throws Exception {
@@ -81,7 +79,8 @@
log.info("Will remove importLog : " + model.getImportLogId());
}
- result = service.removeImport(model, getEchoBaseSession().getUser());
+ model.setResultMessage(
+ service.removeImport(model, getEchoBaseSession().getUser()));
}
@Override
Modified: trunk/echobase-ui/src/main/resources/i18n/echobase-ui_en_GB.properties
===================================================================
--- trunk/echobase-ui/src/main/resources/i18n/echobase-ui_en_GB.properties 2012-09-12 11:03:43 UTC (rev 652)
+++ trunk/echobase-ui/src/main/resources/i18n/echobase-ui_en_GB.properties 2012-09-12 12:45:13 UTC (rev 653)
@@ -321,7 +321,7 @@
echobase.menu.viewData=Display data
echobase.message.createEmbedded.result=Portable application was successful in %s.
echobase.message.download.link=If download did not start by itself, you can start it manually from this link\:
-echobase.message.exportDb.result=Export of database was successful in %s.
+echobase.message.exportDb.result=Export of database (mode %s) was successful (file %s) in %s.
echobase.message.importData.result=Data import successful in %s \:\n%s
echobase.message.no.row.selected=No data selected
echobase.message.noEntrySelection=No field selected
Modified: trunk/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties
===================================================================
--- trunk/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties 2012-09-12 11:03:43 UTC (rev 652)
+++ trunk/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties 2012-09-12 12:45:13 UTC (rev 653)
@@ -321,7 +321,7 @@
echobase.menu.viewData=Visualiser les données
echobase.message.createEmbedded.result=La création de l'application embarqué a réussi en %s
echobase.message.download.link=Si le téléchargement n'a pas démarré automatiquement, suivez ce lien \:
-echobase.message.exportDb.result=L'export de la base a réussi en %s
+echobase.message.exportDb.result=L'export de la base (mode %s) a réussi (fichier %s) en %s
echobase.message.importData.result=Import de données réussi en %s \:\n%s
echobase.message.no.row.selected=Aucune donnée sélectionnée
echobase.message.noEntrySelection=Pas de champ sélectionné
Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/includes/actionResult.jsp
===================================================================
--- trunk/echobase-ui/src/main/webapp/WEB-INF/includes/actionResult.jsp 2012-09-12 11:03:43 UTC (rev 652)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/includes/actionResult.jsp 2012-09-12 12:45:13 UTC (rev 653)
@@ -3,7 +3,7 @@
EchoBase :: UI
$Id$
- $HeadURL: http://svn.forge.codelutin.com/svn/echobase/trunk/echobase-ui/src/main/weba… $
+ $HeadURL$
%%
Copyright (C) 2011 Ifremer, Codelutin
%%
Property changes on: trunk/echobase-ui/src/main/webapp/WEB-INF/includes/actionResult.jsp
___________________________________________________________________
Modified: svn:keywords
- Author Date Id Revision
+ Author Date Id Revision HeadURL
Added: trunk/src/site/rst/removeimports.rst
===================================================================
--- trunk/src/site/rst/removeimports.rst (rev 0)
+++ trunk/src/site/rst/removeimports.rst 2012-09-12 12:45:13 UTC (rev 653)
@@ -0,0 +1,201 @@
+.. -
+.. * #%L
+.. * EchoBase
+.. *
+.. * $Id$
+.. * $HeadURL$
+.. * %%
+.. * Copyright (C) 2011 - 2012 Ifremer, Codelutin
+.. * %%
+.. * This program is free software: you can redistribute it and/or modify
+.. * it under the terms of the GNU Affero General Public License as published by
+.. * 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%
+.. -
+
+=======================
+Suppression des imports
+=======================
+
+.. contents:: Table des matières
+ :depth: 2
+
+.. sectnum::
+ :start: 1
+ :depth: 2
+
+Abstract
+--------
+
+Ce document décrit ce qui se passe lors la suppresion des imports.
+
+Import Voyage / Transit / Transect
+----------------------------------
+
+Données supprimées
+~~~~~~~~~~~~~~~~~~
+
+Le voyage en question et tout ce qui y est rattaché et aussi :
+
+- category
+- echotype
+- lengthAgeKey
+- lengthWeightKey
+
+Import retirés
+~~~~~~~~~~~~~~
+
+Seront supprimés de la table des imports les imports suivants qui aurait pu
+être effectué suite à cet import, à savoir :
+
+- import Transect
+- import Operation
+- import Catches
+- import Acoustic
+- import Résultats Voyage
+- import Résultats Esdu
+- import Region
+- import Map
+
+Import Transect
+---------------
+
+Données supprimées
+~~~~~~~~~~~~~~~~~~
+
+Le transect en question et tout ce qui y est rattaché, ainsi que les *postCell*
+et leur résultats.
+
+Import retirés
+~~~~~~~~~~~~~~
+
+Seront supprimés de la table des imports les imports suivants qui aurait pu
+être effectué suite à cet import, à savoir :
+
+- import Operation
+- import Catches
+- import Acoustic
+- import Résultats Esdu
+- import Region
+- import Map
+
+Import Operation
+----------------
+
+Données supprimées
+~~~~~~~~~~~~~~~~~~
+
+Les opérations de pêche et tout ce qui y est rattaché (OperationMetadata et
+GearMetadata et Sample).
+
+Import retirés
+~~~~~~~~~~~~~~
+
+Seront supprimés de la table des imports les imports suivants qui aurait pu
+être effectué suite à cet import, à savoir :
+
+- import Catches
+
+Import Catches
+--------------
+
+Données supprimées
+~~~~~~~~~~~~~~~~~~
+
+Les échantillons captures en question et tout ce qui y est rattaché.
+
+Import retirés
+~~~~~~~~~~~~~~
+
+Aucun sous import possible à retirer.
+
+Import Acoustic
+---------------
+
+Données supprimées
+~~~~~~~~~~~~~~~~~~
+
+Les données acoustiques et tout ce qui y est rattaché (DataAcquisition, Cell, Result),
+ainsi que les *postCell* et leur résultats.
+
+Import retirés
+~~~~~~~~~~~~~~
+
+Seront supprimés de la table des imports les imports suivants qui aurait pu
+être effectué sur ce voyage, à savoir :
+
+- import Résultats Esdu
+- import Region
+- import Map
+
+Import Résultats voyage
+-----------------------
+
+Données supprimées
+~~~~~~~~~~~~~~~~~~
+
+Les données rattachés à un voyage après-coup, à savoir :
+
+- echotype
+- lengthageKey
+- lengthWeightKey
+
+Mais aussi tous les résultats (car il peuvent dépendre des données précédentes).
+
+Import retirés
+~~~~~~~~~~~~~~
+
+Seront supprimés de la table des imports les imports suivants qui aurait pu
+être effectué suite à cet import, à savoir :
+
+- import Résultats Esdu
+- import Region
+- import Map
+
+Immort Résultats Esdu
+---------------------
+
+Données supprimées
+~~~~~~~~~~~~~~~~~~
+
+Les résultats attachés aux cellules de type *ESDU*.
+
+Import retirés
+~~~~~~~~~~~~~~
+
+Aucun sous import possible à retirer.
+
+Import Region
+-------------
+
+Données supprimées
+~~~~~~~~~~~~~~~~~~
+
+Les postCells de type *Region* et tout ce qui y est rattaché (Result)
+
+Import retirés
+~~~~~~~~~~~~~~
+
+Aucun sous import possible à retirer.
+
+Import Map
+----------
+
+Données supprimées
+~~~~~~~~~~~~~~~~~~
+
+Les postCells de type *Map* et tout ce qui y est rattaché (Result)
+
+Import retirés
+~~~~~~~~~~~~~~
+
+Aucun sous import possible à retirer.
\ No newline at end of file
Property changes on: trunk/src/site/rst/removeimports.rst
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Modified: trunk/src/site/site_en.xml
===================================================================
--- trunk/src/site/site_en.xml 2012-09-12 11:03:43 UTC (rev 652)
+++ trunk/src/site/site_en.xml 2012-09-12 12:45:13 UTC (rev 653)
@@ -103,6 +103,7 @@
<item name="Portable Application" href="embedded.html"/>
<item name="Imports" href="imports.html"/>
<item name="Import/Export with EchoBase format" href="importDb.html"/>
+ <item name="Remove imports" href="removeimports.html"/>
<item name="Download"
href="http://forge.codelutin.com/projects/echobase/files"/>
</menu>
Modified: trunk/src/site/site_fr.xml
===================================================================
--- trunk/src/site/site_fr.xml 2012-09-12 11:03:43 UTC (rev 652)
+++ trunk/src/site/site_fr.xml 2012-09-12 12:45:13 UTC (rev 653)
@@ -104,6 +104,7 @@
<item name="Application embarquée" href="embedded.html"/>
<item name="Imports" href="imports.html"/>
<item name="Import/Export au format EchoBase" href="importDb.html"/>
+ <item name="Suppression des imports" href="removeimports.html"/>
<item name="Téléchargement"
href="http://forge.codelutin.com/projects/echobase/files"/>
</menu>
1
0
12 Sep '12
Author: tchemit
Date: 2012-09-12 13:03:43 +0200 (Wed, 12 Sep 2012)
New Revision: 652
Url: http://forge.codelutin.com/repositories/revision/echobase/652
Log:
fixes #1489: Improve long task error display
Added:
trunk/echobase-ui/src/main/webapp/WEB-INF/includes/actionResult.jsp
Removed:
trunk/echobase-ui/src/main/webapp/WEB-INF/includes/importDataResults.jsp
Modified:
trunk/echobase-domain/src/main/java/fr/ifremer/echobase/services/AbstractEchobaseActionConfiguration.java
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/AbstractWaitAndExecAction.java
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/embeddedApplication/Build.java
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportDb/Export.java
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/AbstractLaunchImport.java
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importDb/Import.java
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/removeData/Delete.java
trunk/echobase-ui/src/main/resources/config/struts-embeddedApplication.xml
trunk/echobase-ui/src/main/resources/config/struts-exportDb.xml
trunk/echobase-ui/src/main/resources/config/struts-importData.xml
trunk/echobase-ui/src/main/resources/config/struts-importDb.xml
trunk/echobase-ui/src/main/resources/config/struts-removeData.xml
trunk/echobase-ui/src/main/resources/i18n/echobase-ui_en_GB.properties
trunk/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties
trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/embeddedApplication/result.jsp
trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/exportDb/result.jsp
trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/resultAcousticImport.jsp
trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/resultCatchesImport.jsp
trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/resultCommonImport.jsp
trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/resultOperationImport.jsp
trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/resultResultsImport.jsp
trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importDb/result.jsp
trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/removeData/deleteResult.jsp
Modified: trunk/echobase-domain/src/main/java/fr/ifremer/echobase/services/AbstractEchobaseActionConfiguration.java
===================================================================
--- trunk/echobase-domain/src/main/java/fr/ifremer/echobase/services/AbstractEchobaseActionConfiguration.java 2012-09-12 11:02:33 UTC (rev 651)
+++ trunk/echobase-domain/src/main/java/fr/ifremer/echobase/services/AbstractEchobaseActionConfiguration.java 2012-09-12 11:03:43 UTC (rev 652)
@@ -102,6 +102,10 @@
this.error = error;
}
+ public boolean hasError() {
+ return error != null;
+ }
+
@Override
public String getActionTime() {
return progressionModel.getActionTime();
Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/AbstractWaitAndExecAction.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/AbstractWaitAndExecAction.java 2012-09-12 11:02:33 UTC (rev 651)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/AbstractWaitAndExecAction.java 2012-09-12 11:03:43 UTC (rev 652)
@@ -28,6 +28,7 @@
import fr.ifremer.echobase.persistence.EchoBaseEntityHelper;
import fr.ifremer.echobase.services.AbstractEchobaseActionConfiguration;
import fr.ifremer.echobase.services.EchoBaseService;
+import org.apache.commons.lang3.exception.ExceptionUtils;
import org.nuiton.topia.TopiaContext;
import java.io.IOException;
@@ -62,6 +63,27 @@
/** Shared actionContext to reuse all invocation of this same action. */
private ActionContext actionContext;
+ private String result;
+
+ public final String getResult() {
+ return result;
+ }
+
+ public final Exception getError() {
+ return model.getError();
+ }
+
+ public final String getErrorStack() {
+
+ String errorStack = null;
+ if (model.hasError()) {
+
+ errorStack = ExceptionUtils.getStackTrace(model.getError());
+ }
+
+ return errorStack;
+ }
+
protected AbstractWaitAndExecAction(Class<M> modelType,
Class<S> serviceType) {
this.modelType = modelType;
@@ -70,6 +92,14 @@
protected abstract void startAction(S service, M model) throws Exception;
+ public abstract String getActionResumeTitle();
+
+ protected abstract String getSuccesMessage();
+
+ protected abstract String getErrorMessage();
+
+ protected abstract String getResultMessage(M model);
+
public final M getModel() {
return model;
}
@@ -90,6 +120,24 @@
model = getEchoBaseSession().getActionConfiguration(modelType);
}
+ public final String result() throws Exception {
+
+ try {
+ if (model.hasError()) {
+
+ addFlashError(getErrorMessage());
+ } else {
+
+ // ok no error, compute result message
+ result = getResultMessage(model);
+ addFlashMessage(getSuccesMessage());
+ }
+ return SUCCESS;
+ } finally {
+ closeAction(model);
+ }
+ }
+
@Override
public final String execute() throws Exception {
@@ -112,17 +160,17 @@
startAction(service, model);
- model.endAction();
- return SUCCESS;
+ } catch (Exception e) {
+ model.setError(e);
} finally {
- try {
- EchoBaseEntityHelper.closeConnection(tx);
- } finally {
- closeAction(model);
- }
+ model.endAction();
+
+ EchoBaseEntityHelper.closeConnection(tx);
}
+
+ return SUCCESS;
}
protected void closeAction(M model) throws Exception {
Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/embeddedApplication/Build.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/embeddedApplication/Build.java 2012-09-12 11:02:33 UTC (rev 651)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/embeddedApplication/Build.java 2012-09-12 11:03:43 UTC (rev 652)
@@ -48,6 +48,28 @@
}
@Override
+ protected String getSuccesMessage() {
+ return _("echobase.info.createEmbedded.succeded");
+ }
+
+ @Override
+ protected String getErrorMessage() {
+ return _("echobase.info.createEmbedded.failed");
+ }
+
+ @Override
+ protected String getResultMessage(EmbeddedApplicationConfiguration model) {
+ String result = _("echobase.message.createEmbedded.result",
+ model.getActionTime());
+ return result;
+ }
+
+ @Override
+ public String getActionResumeTitle() {
+ return _("echobase.legend.createEmbedded.resume");
+ }
+
+ @Override
protected void startAction(EmbeddedApplicationService service,
EmbeddedApplicationConfiguration model) throws Exception {
if (log.isInfoEnabled()) {
Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportDb/Export.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportDb/Export.java 2012-09-12 11:02:33 UTC (rev 651)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportDb/Export.java 2012-09-12 11:03:43 UTC (rev 652)
@@ -50,10 +50,39 @@
protected void startAction(ExportDbService service,
ExportDbConfiguration model) throws Exception {
if (log.isInfoEnabled()) {
- log.info("Start export to file " + model.getFileName());
+ log.info("Start export db to file " + model.getFileName());
}
service.doExport(model);
}
+ @Override
+ protected String getSuccesMessage() {
+ return _("echobase.info.exportDb.succeded");
+ }
+
+ @Override
+ protected String getErrorMessage() {
+ return _("echobase.info.exportDb.failed");
+ }
+
+ @Override
+ public String getActionResumeTitle() {
+ return _("echobase.legend.exportDb.resume");
+ }
+
+ @Override
+ protected String getResultMessage(ExportDbConfiguration model) {
+ String exportType = _(model.getExportDbMode().getI18nKey());
+ String result = _("echobase.message.exportDb.result",
+ exportType,
+ model.getFileName(),
+ model.getActionTime());
+
+ if (log.isInfoEnabled()) {
+ log.info("Result: " + result);
+ }
+ return result;
+ }
+
}
\ No newline at end of file
Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/AbstractLaunchImport.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/AbstractLaunchImport.java 2012-09-12 11:02:33 UTC (rev 651)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/AbstractLaunchImport.java 2012-09-12 11:03:43 UTC (rev 652)
@@ -25,14 +25,13 @@
import fr.ifremer.echobase.services.importdata.AbstractImportConfiguration;
import fr.ifremer.echobase.services.importdata.AbstractImportDataService;
-import fr.ifremer.echobase.services.importdata.ImportException;
+import fr.ifremer.echobase.services.importdb.ImportDbConfiguration;
import fr.ifremer.echobase.ui.actions.AbstractWaitAndExecAction;
-import org.apache.commons.lang3.exception.ExceptionUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
/**
- * TODO
+ * Abstract action to launch an data import.
*
* @author tchemit <chemit(a)codelutin.com>
* @since 0.3
@@ -44,54 +43,49 @@
/** Logger. */
private static final Log log = LogFactory.getLog(AbstractLaunchImport.class);
- protected transient Exception error;
-
- protected String result;
-
protected AbstractLaunchImport(Class<M> modelType, Class<S> serviceType) {
super(modelType, serviceType);
}
- public String getResult() {
- return result;
+ @Override
+ protected String getSuccesMessage() {
+ return _("echobase.info.importData.succeded");
}
- public Exception getError() {
- return error;
+ @Override
+ protected String getErrorMessage() {
+ return _("echobase.info.importData.failed");
}
- public String getErrorStack() {
-
- String errorStack = null;
- if (error != null) {
-
- errorStack = ExceptionUtils.getStackTrace(error);
+ @Override
+ protected String getResultMessage(M model) {
+ String message = _("echobase.message.importData.result",
+ model.getActionTime(), result);
+ if (log.isInfoEnabled()) {
+ log.info("Result: " + message);
}
+ return message;
+ }
- return errorStack;
+ @Override
+ public String getActionResumeTitle() {
+ return _("echobase.legend.importData.result.resume");
}
+ private String result;
+
@Override
protected void startAction(S service, M model) throws Exception {
if (log.isInfoEnabled()) {
log.info("Start imports for " + getModel());
}
- try {
- result = service.doImport(model, getEchoBaseSession().getUser());
+ result = service.doImport(model, getEchoBaseSession().getUser());
+ }
- addFlashMessage(_("echobase.info.import.succeded"));
-
- } catch (ImportException e) {
-
- addFlashError(_("echobase.info.import.failed"));
-
- if (log.isErrorEnabled()) {
- log.error("Error while import ", e);
- }
-
- error = e;
- }
+ @Override
+ protected void closeAction(M model) throws Exception {
+ destroyModel(model);
}
}
Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importDb/Import.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importDb/Import.java 2012-09-12 11:02:33 UTC (rev 651)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importDb/Import.java 2012-09-12 11:03:43 UTC (rev 652)
@@ -31,10 +31,6 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import java.util.Locale;
-
-import static org.nuiton.i18n.I18n.l_;
-
/**
* Start the import db.
*
@@ -48,55 +44,66 @@
/** Logger. */
private static final Log log = LogFactory.getLog(Import.class);
- protected String result;
+ public Import() {
+ super(ImportDbConfiguration.class, ImportDbService.class);
+ }
- public String getResult() {
- return result;
+ @Override
+ protected String getSuccesMessage() {
+ return _("echobase.info.importDb.succeded");
}
- public Import() {
- super(ImportDbConfiguration.class, ImportDbService.class);
+ @Override
+ protected String getErrorMessage() {
+ return _("echobase.info.importDb.failed");
}
@Override
- protected void startAction(ImportDbService service,
- ImportDbConfiguration model) throws Exception {
- if (log.isInfoEnabled()) {
- log.info("Start imports with file " +
- model.getInput().getFileName());
- }
-
+ protected String getResultMessage(ImportDbConfiguration model) {
ImportDbMode importDbMode = model.getImportDbMode();
- Locale locale = getLocale();
- EchoBaseUser user = getEchoBaseSession().getUser();
- service.doImport(model, user);
-
- switch (importDbMode) {
-
+ String message;
+ switch (model.getImportDbMode()) {
case REFERENTIAL:
-
- addFlashMessage(_("echobase.info.import.succeded"));
- result = l_(locale, "echobase.importDb.referentialResult",
+ message = _("echobase.importDb.referentialResult",
model.getActionTime());
break;
case DATA:
-
- addFlashMessage(_("echobase.info.import.succeded"));
- result = l_(locale, "echobase.importDb.dataResult",
+ message = _("echobase.importDb.dataResult",
model.getActionTime());
break;
case FREE:
-
- addFlashMessage(_("echobase.info.import.succeded"));
- result = l_(locale, "echobase.importDb.freeResult",
+ message = _("echobase.importDb.freeResult",
model.getActionTime());
break;
+ default:
+ throw new IllegalStateException("Can't reach here...");
}
+ if (log.isInfoEnabled()) {
+ log.info("Result: " + message);
+ }
+ return message;
}
@Override
+ public String getActionResumeTitle() {
+ return _("echobase.legend.importDb.resume");
+ }
+
+ @Override
+ protected void startAction(ImportDbService service,
+ ImportDbConfiguration model) throws Exception {
+ if (log.isInfoEnabled()) {
+ log.info("Start imports with file " +
+ model.getInput().getFileName());
+ }
+
+ EchoBaseUser user = getEchoBaseSession().getUser();
+ service.doImport(model, user);
+ }
+
+ @Override
protected void closeAction(ImportDbConfiguration model) throws Exception {
destroyModel(model);
}
Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/removeData/Delete.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/removeData/Delete.java 2012-09-12 11:02:33 UTC (rev 651)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/removeData/Delete.java 2012-09-12 11:03:43 UTC (rev 652)
@@ -42,17 +42,38 @@
/** Logger. */
private static final Log log = LogFactory.getLog(Delete.class);
- protected String result;
-
public Delete() {
super(RemoveDataConfiguration.class, RemoveDataService.class);
}
- public String getResult() {
- return result;
+ @Override
+ protected String getSuccesMessage() {
+ return _("echobase.info.removeData.succeded");
}
@Override
+ protected String getErrorMessage() {
+ return _("echobase.info.removeData.failed");
+ }
+
+ @Override
+ protected String getResultMessage(RemoveDataConfiguration model) {
+ String message = _("echobase.message.removeData.result",
+ model.getActionTime(), result);
+ if (log.isInfoEnabled()) {
+ log.info("Result: " + message);
+ }
+ return message;
+ }
+
+ @Override
+ public String getActionResumeTitle() {
+ return _("echobase.legend.removeData.resume");
+ }
+
+ private String result;
+
+ @Override
protected void startAction(RemoveDataService service,
RemoveDataConfiguration model) throws Exception {
@@ -63,4 +84,8 @@
result = service.removeImport(model, getEchoBaseSession().getUser());
}
+ @Override
+ protected void closeAction(RemoveDataConfiguration model) throws Exception {
+ destroyModel(model);
+ }
}
Modified: trunk/echobase-ui/src/main/resources/config/struts-embeddedApplication.xml
===================================================================
--- trunk/echobase-ui/src/main/resources/config/struts-embeddedApplication.xml 2012-09-12 11:02:33 UTC (rev 651)
+++ trunk/echobase-ui/src/main/resources/config/struts-embeddedApplication.xml 2012-09-12 11:03:43 UTC (rev 652)
@@ -46,12 +46,20 @@
</action>
<!-- Build embedded application archive -->
- <action name="build"
- class="fr.ifremer.echobase.ui.actions.embeddedApplication.Build"
- method="execute">
+ <action name="build" method="execute"
+ class="fr.ifremer.echobase.ui.actions.embeddedApplication.Build">
<interceptor-ref name="basicStackLoggued"/>
<interceptor-ref name="execAndWait"/>
<result name="wait">/WEB-INF/jsp/embeddedApplication/progress.jsp</result>
+ <result type="redirectAction">
+ <param name="namespace">/embeddedApplication</param>
+ <param name="actionName">result</param>
+ </result>
+ </action>
+
+ <!-- Build embedded application archive -->
+ <action name="result" method="result"
+ class="fr.ifremer.echobase.ui.actions.embeddedApplication.Build">
<result>/WEB-INF/jsp/embeddedApplication/result.jsp</result>
</action>
Modified: trunk/echobase-ui/src/main/resources/config/struts-exportDb.xml
===================================================================
--- trunk/echobase-ui/src/main/resources/config/struts-exportDb.xml 2012-09-12 11:02:33 UTC (rev 651)
+++ trunk/echobase-ui/src/main/resources/config/struts-exportDb.xml 2012-09-12 11:03:43 UTC (rev 652)
@@ -53,6 +53,15 @@
<interceptor-ref name="basicStackLoggued"/>
<interceptor-ref name="execAndWait"/>
<result name="wait">/WEB-INF/jsp/exportDb/progress.jsp</result>
+ <result type="redirectAction">
+ <param name="namespace">/exportDb</param>
+ <param name="actionName">result</param>
+ </result>
+ </action>
+
+ <!-- Result Build export -->
+ <action name="result" method="result"
+ class="fr.ifremer.echobase.ui.actions.exportDb.Export">
<result>/WEB-INF/jsp/exportDb/result.jsp</result>
</action>
Modified: trunk/echobase-ui/src/main/resources/config/struts-importData.xml
===================================================================
--- trunk/echobase-ui/src/main/resources/config/struts-importData.xml 2012-09-12 11:02:33 UTC (rev 651)
+++ trunk/echobase-ui/src/main/resources/config/struts-importData.xml 2012-09-12 11:03:43 UTC (rev 652)
@@ -54,11 +54,20 @@
</action>
<!-- Starts import -->
- <action name="import*"
+ <action name="import*" method="execute"
class="fr.ifremer.echobase.ui.actions.importData.Launch{1}Import">
<interceptor-ref name="basicStackLoggued"/>
<interceptor-ref name="execAndWait"/>
<result name="wait">/WEB-INF/jsp/importData/progress{1}Import.jsp</result>
+ <result type="redirectAction">
+ <param name="namespace">/importData</param>
+ <param name="actionName">result{1}</param>
+ </result>
+ </action>
+
+ <!-- Result of Starts import -->
+ <action name="result*" method="result"
+ class="fr.ifremer.echobase.ui.actions.importData.Launch{1}Import">
<result>/WEB-INF/jsp/importData/result{1}Import.jsp</result>
</action>
Modified: trunk/echobase-ui/src/main/resources/config/struts-importDb.xml
===================================================================
--- trunk/echobase-ui/src/main/resources/config/struts-importDb.xml 2012-09-12 11:02:33 UTC (rev 651)
+++ trunk/echobase-ui/src/main/resources/config/struts-importDb.xml 2012-09-12 11:03:43 UTC (rev 652)
@@ -48,11 +48,20 @@
</action>
<!-- Starts import -->
- <action name="import" class="fr.ifremer.echobase.ui.actions.importDb.Import"
- method="execute">
+ <action name="import" method="execute"
+ class="fr.ifremer.echobase.ui.actions.importDb.Import">
<interceptor-ref name="basicStackLoggued"/>
<interceptor-ref name="execAndWait"/>
<result name="wait">/WEB-INF/jsp/importDb/progress.jsp</result>
+ <result type="redirectAction">
+ <param name="namespace">/importDb</param>
+ <param name="actionName">result</param>
+ </result>
+ </action>
+
+ <!-- Result import -->
+ <action name="result" method="result"
+ class="fr.ifremer.echobase.ui.actions.importDb.Import">
<result>/WEB-INF/jsp/importDb/result.jsp</result>
</action>
Modified: trunk/echobase-ui/src/main/resources/config/struts-removeData.xml
===================================================================
--- trunk/echobase-ui/src/main/resources/config/struts-removeData.xml 2012-09-12 11:02:33 UTC (rev 651)
+++ trunk/echobase-ui/src/main/resources/config/struts-removeData.xml 2012-09-12 11:03:43 UTC (rev 652)
@@ -44,6 +44,15 @@
<interceptor-ref name="basicStackLoggued"/>
<interceptor-ref name="execAndWait"/>
<result name="wait">/WEB-INF/jsp/removeData/deleteProgress.jsp</result>
+ <result type="redirectAction">
+ <param name="namespace">/removeData</param>
+ <param name="actionName">result</param>
+ </result>
+ </action>
+
+ <!-- Result of Delete the importLog -->
+ <action name="result" method="result"
+ class="fr.ifremer.echobase.ui.actions.removeData.Delete">
<result>/WEB-INF/jsp/removeData/deleteResult.jsp</result>
</action>
Modified: trunk/echobase-ui/src/main/resources/i18n/echobase-ui_en_GB.properties
===================================================================
--- trunk/echobase-ui/src/main/resources/i18n/echobase-ui_en_GB.properties 2012-09-12 11:02:33 UTC (rev 651)
+++ trunk/echobase-ui/src/main/resources/i18n/echobase-ui_en_GB.properties 2012-09-12 11:03:43 UTC (rev 652)
@@ -34,7 +34,6 @@
echobase.action.show.exportDb.documentation=How to export a database
echobase.action.show.import.documentation=How to import data
echobase.action.show.importDb.documentation=How to import a database
-echobase.action.showImportLogs=Liste des imports\=Show import logs
echobase.action.toEnglish=English
echobase.action.toFrench=French
echobase.action.usingEnglish=English
@@ -45,6 +44,7 @@
echobase.common.acousticDensityUnit=acousticDensityUnit
echobase.common.acquisitionSoftwareVersionER60=acquisitionSoftwareVersion (ER60 instrument)
echobase.common.acquisitionSoftwareVersionME70=acquisitionSoftwareVersion (ME70 instrument)
+echobase.common.actionError=An error occurs while operation\:
echobase.common.addDataAcquisition=Always create new DataAcqusitions entries
echobase.common.admin=Administrator
echobase.common.areaOfOperation=AreaOfOperation
@@ -74,13 +74,11 @@
echobase.common.exportDbMode=Mode
echobase.common.gearMetadataFile=
echobase.common.id=ID
-echobase.common.imortType=import type
echobase.common.importDataMode=Import type
echobase.common.importDate=Import date
echobase.common.importDbFile=
echobase.common.importDbMode=Import db mode
echobase.common.importError=Error\:
-echobase.common.importLogActions=Actions
echobase.common.importNotes=Import notes
echobase.common.importResult=Import results
echobase.common.importText=import description
@@ -223,14 +221,20 @@
echobase.importDb.freeResult=Free db import was succesful in %s.
echobase.importDb.referentialResult=Referential db import was succesul in %s.
echobase.info.click.to.select=You can select value with a simple click then copy it (Ctrl-C)
+echobase.info.createEmbedded.failed=Portable application creation failed
+echobase.info.createEmbedded.succeded=Portable application creation succesful
echobase.info.dbeditor.propertyDiffsResult=Data import results
echobase.info.documentation=EchoBase online documentation
echobase.info.downloadFiles=Download EchoBase or some import files
-echobase.info.echoBaseForge=Project Forge
echobase.info.echoR=EchoR project
echobase.info.exportDb.archive=Basebame of the archive, extension <strong>.echobase</strong> will be added to it.
+echobase.info.exportDb.failed=Database export failed
+echobase.info.exportDb.succeded=Database export successful
echobase.info.import.failed=Import failed
-echobase.info.import.succeded=Successful import
+echobase.info.importData.failed=Data import failed
+echobase.info.importData.succeded=Data import sucessful
+echobase.info.importDb.failed=Database import failed
+echobase.info.importDb.succeded=Database import successful
echobase.info.license=License AGPL V3
echobase.info.new.sqlQuery.inprogress=Query creation in progress
echobase.info.new.workingDbConfiguration.inprogress=New working database configuration in progress
@@ -240,6 +244,8 @@
echobase.info.no.voyagee.found=No survey selected
echobase.info.no.workingDbConfiguration.saved=No working database configuration saved
echobase.info.no.workingDbConfiguration.selected=Select a working database configuration and then connect
+echobase.info.removeData.failed=Import removal failed
+echobase.info.removeData.succeded=Successful data import removal in %s
echobase.info.reportBug=Bug report
echobase.info.sqlQuery.not.modifiable=You have not sufficient rights to update the selected query
echobase.info.update.user.password=Keep empty password field to not modify it.
@@ -282,22 +288,22 @@
echobase.label.workingDbConfigurations=Working databases saved
echobase.label.workingDbSelected=Working database selected <strong>%s</strong>
echobase.legend.connectionToDb.detail=Database connection detailed information
+echobase.legend.createEmbedded.resume=Results of portable application creation
echobase.legend.dbeditor.edit=Editing '%s'
echobase.legend.dbeditor.show=Displaying '%s'
echobase.legend.embeddedApplication.configuration=Portable database configuration
echobase.legend.exportDb.configuration.files=Export configuration
echobase.legend.exportDb.configuration.selectExportDbMode=Select export db mode
+echobase.legend.exportDb.resume=Resume of database export
echobase.legend.importData.configuration.selectImportType=Type of import selection
echobase.legend.importData.configure=Import configuration
echobase.legend.importData.createMission=Mission caracteristics
-echobase.legend.importData.result.resume=Results
+echobase.legend.importData.result.resume=Results of data import
echobase.legend.importDb.configuration=Configure import
-echobase.legend.importDb.configuration.files=Import file selection (.echobase file)
-echobase.legend.importDb.configuration.freeMode=Free import configuration
-echobase.legend.importDb.configuration.legacyVoyageMode=Data import configuration
-echobase.legend.importDb.configuration.referentialMode=Referential import configuration
echobase.legend.importDb.configuration.selectImportDbMode=Select import db mode
+echobase.legend.importDb.resume=Results of database import
echobase.legend.libreOfficeQuery=Translate a SQL query from Libre Office
+echobase.legend.removeData.resume=Results of Import removal
echobase.legend.sqlQuery.configuration=Query definition
echobase.legend.sqlQuery.result=Query results
echobase.legend.workingDbConfiguration.create=Create a working database configuration
@@ -313,9 +319,13 @@
echobase.menu.removeData=Remove data
echobase.menu.users=Manage users
echobase.menu.viewData=Display data
+echobase.message.createEmbedded.result=Portable application was successful in %s.
+echobase.message.download.link=If download did not start by itself, you can start it manually from this link\:
+echobase.message.exportDb.result=Export of database was successful in %s.
+echobase.message.importData.result=Data import successful in %s \:\n%s
echobase.message.no.row.selected=No data selected
echobase.message.noEntrySelection=No field selected
-echobase.message.removeData.result=data was successful removed in %s.
+echobase.message.removeData.result=Data import removalwas successful in %s\:\n%s
echobase.message.warnEmbeddedApplicationInProgress=Please do not close the window to access the new portable database file
echobase.message.warnExportInProgress=Please do not close the window to access the export file
echobase.message.warnImportInProgress=Please do not close the window to access the imported file
Modified: trunk/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties
===================================================================
--- trunk/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties 2012-09-12 11:02:33 UTC (rev 651)
+++ trunk/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties 2012-09-12 11:03:43 UTC (rev 652)
@@ -34,7 +34,6 @@
echobase.action.show.exportDb.documentation=Comment exporter une base
echobase.action.show.import.documentation=Comment importer des données
echobase.action.show.importDb.documentation=Comment importer une base
-echobase.action.showImportLogs=Liste des imports
echobase.action.toEnglish=En anglais
echobase.action.toFrench=En français
echobase.action.usingEnglish=Version anglaise
@@ -45,6 +44,7 @@
echobase.common.acousticDensityUnit=Unité des densités acoustiques
echobase.common.acquisitionSoftwareVersionER60=Version du logiciel d'acquisition ER60
echobase.common.acquisitionSoftwareVersionME70=Version du logiciel d'acquisition ME70
+echobase.common.actionError=Une erreur est survenue pendant l'opération \:
echobase.common.addDataAcquisition=Toujours créer de nouvelles entrées DataAcqusitions
echobase.common.admin=Administrateur
echobase.common.areaOfOperation=Zone d'activités
@@ -74,13 +74,11 @@
echobase.common.exportDbMode=Mode
echobase.common.gearMetadataFile=
echobase.common.id=Identifiant
-echobase.common.imortType=Type d'import
echobase.common.importDataMode=Type d'import
echobase.common.importDate=Date de l'import
echobase.common.importDbFile=
echobase.common.importDbMode=Mode d'import
echobase.common.importError=Une erreur est survenue pendant l'import \:
-echobase.common.importLogActions=Actions
echobase.common.importNotes=Remarques sur l'import
echobase.common.importResult=Résultat de l'import
echobase.common.importText=Description
@@ -223,14 +221,20 @@
echobase.importDb.freeResult=L'import de type libre s'est déroulé avec succès en %s.
echobase.importDb.referentialResult=L'import de type référentiel s'est déroulé avec succès en %s.
echobase.info.click.to.select=Vous pouvez sélectionner la valeur en un simple click puis la copier (Ctrl-C)
+echobase.info.createEmbedded.failed=Création de l'application embarqué réussi
+echobase.info.createEmbedded.succeded=Création de l'application embarqué a échoué
echobase.info.dbeditor.propertyDiffsResult=Résultat d'import de données
echobase.info.documentation=Documentation en ligne d'EchoBase
echobase.info.downloadFiles=Télécharger l'application ou des fichiers d'imports
-echobase.info.echoBaseForge=Gestion du projet
echobase.info.echoR=Projet EchoR
echobase.info.exportDb.archive=Il s'agit du nom de l'archive, l'extension <strong>.echobase</strong> sera automatiquement rajoutée.
+echobase.info.exportDb.failed=L'export de la base de données a échoué
+echobase.info.exportDb.succeded=L'export de la base de données a réussi
echobase.info.import.failed=L'import a échoué
-echobase.info.import.succeded=L'import a réussi
+echobase.info.importData.failed=L'import des données a échoué
+echobase.info.importData.succeded=L'import des données a réussi
+echobase.info.importDb.failed=L'import de la base de données a échoué
+echobase.info.importDb.succeded=L'import de la base de données a réussi
echobase.info.license=Licence AGPL V3
echobase.info.new.sqlQuery.inprogress=Nouvelle requête en cours de création
echobase.info.new.workingDbConfiguration.inprogress=Nouvelle configuration de base de travail en cours de création
@@ -240,6 +244,8 @@
echobase.info.no.voyagee.found=Aucune campagne à exporter
echobase.info.no.workingDbConfiguration.saved=Aucune configuration de base de travail enregistrée
echobase.info.no.workingDbConfiguration.selected=Sélectionner une configuration pour ensuite vous y connecter
+echobase.info.removeData.failed=La suppresion de l'import a échoué
+echobase.info.removeData.succeded=La suppresion de l'import a réussi en %s
echobase.info.reportBug=Rapport de bug
echobase.info.sqlQuery.not.modifiable=Vous ne disposez pas des droits nécessaires pour modifier la requête sélectionnée
echobase.info.update.user.password=Pour ne pas modifier le mot de passe laisser ce champs vide.
@@ -282,22 +288,22 @@
echobase.label.workingDbConfigurations=Bases de travail enregistrées
echobase.label.workingDbSelected=Base de travail sélectionnée <strong>%s</strong>
echobase.legend.connectionToDb.detail=Informations détaillées de connexion à la base de données
+echobase.legend.createEmbedded.resume=Résumé de la création d'une application embarquée
echobase.legend.dbeditor.edit=Edition de '%s'
echobase.legend.dbeditor.show=Visualisation de '%s'
echobase.legend.embeddedApplication.configuration=Configuration de l'application embarquée
echobase.legend.exportDb.configuration.files=Configuration de l'export
echobase.legend.exportDb.configuration.selectExportDbMode=Choix du mode d'export
+echobase.legend.exportDb.resume=Résumé de l'export de base
echobase.legend.importData.configuration.selectImportType=Sélection du type d'import
echobase.legend.importData.configure=Configurer l'import
echobase.legend.importData.createMission=Caractéristiques de la mission
-echobase.legend.importData.result.resume=Résultats
+echobase.legend.importData.result.resume=Résultats de l'import de données
echobase.legend.importDb.configuration=Configuration de l'import
-echobase.legend.importDb.configuration.files=Choix du fichier à importer (fichier .echobase)
-echobase.legend.importDb.configuration.freeMode=Configuration import "libre"
-echobase.legend.importDb.configuration.legacyVoyageMode=Configuration import "données"
-echobase.legend.importDb.configuration.referentialMode=Configuration import "référentiel"
echobase.legend.importDb.configuration.selectImportDbMode=Choix du mode d'import
+echobase.legend.importDb.resume=Résumé de l'import de base de données
echobase.legend.libreOfficeQuery=Traduire une requête SQL issue de Libre Office
+echobase.legend.removeData.resume=Résumé de la suppression d'un import
echobase.legend.sqlQuery.configuration=Définition de la requête
echobase.legend.sqlQuery.result=Résultats de la requête
echobase.legend.workingDbConfiguration.create=Création d'une configuration de base de travail
@@ -313,9 +319,13 @@
echobase.menu.removeData=Supprimer des données
echobase.menu.users=Gérer les utilisateurs
echobase.menu.viewData=Visualiser les données
+echobase.message.createEmbedded.result=La création de l'application embarqué a réussi en %s
+echobase.message.download.link=Si le téléchargement n'a pas démarré automatiquement, suivez ce lien \:
+echobase.message.exportDb.result=L'export de la base a réussi en %s
+echobase.message.importData.result=Import de données réussi en %s \:\n%s
echobase.message.no.row.selected=Aucune donnée sélectionnée
echobase.message.noEntrySelection=Pas de champ sélectionné
-echobase.message.removeData.result=Résultat de la suppression de l'import %s
+echobase.message.removeData.result=La suppression de l'import s'est déroule avec succès en %s \:\n%s
echobase.message.warnEmbeddedApplicationInProgress=Merci de ne pas fermer la fenêtre pour pouvoir accéder aux résultats de la création de l'application embarquée
echobase.message.warnExportInProgress=Merci de ne pas fermer la fenêtre pour pouvoir accéder aux résultats de l'export
echobase.message.warnImportInProgress=Merci de ne pas fermer la fenêtre pour pouvoir accéder aux résultats de l'import
@@ -354,4 +364,3 @@
echobase.tooltip.disconnectWorkingDb=Changer de base de travail
echobase.tooltip.logout=Se déconnecter
echobase.tooltip.selectWorkingDb=Sélectionner une base de travail
-ehobase.message.removeData.result=Import supprimé avec succès en %s
Added: trunk/echobase-ui/src/main/webapp/WEB-INF/includes/actionResult.jsp
===================================================================
--- trunk/echobase-ui/src/main/webapp/WEB-INF/includes/actionResult.jsp (rev 0)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/includes/actionResult.jsp 2012-09-12 11:03:43 UTC (rev 652)
@@ -0,0 +1,50 @@
+<%--
+ #%L
+ EchoBase :: UI
+
+ $Id$
+ $HeadURL: http://svn.forge.codelutin.com/svn/echobase/trunk/echobase-ui/src/main/weba… $
+ %%
+ Copyright (C) 2011 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%
+ --%>
+<%@page contentType="text/html" pageEncoding="UTF-8" %>
+<%@ taglib prefix="s" uri="/struts-tags" %>
+
+<br/>
+<fieldset>
+ <legend>
+ <s:property value="actionResumeTitle"/>
+ </legend>
+
+ <s:if test="error != null">
+ <s:text name="echobase.common.actionError"/>
+ <strong>
+ <s:property value="error.message"/>
+ </strong>
+ <pre id="errorStack">
+ <code>
+ <s:property value="errorStack"/>
+ </code>
+ </pre>
+ </s:if>
+ <s:else>
+ <pre>
+ <s:property value="result"/>
+ </pre>
+ </s:else>
+</fieldset>
+
Property changes on: trunk/echobase-ui/src/main/webapp/WEB-INF/includes/actionResult.jsp
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Deleted: trunk/echobase-ui/src/main/webapp/WEB-INF/includes/importDataResults.jsp
===================================================================
--- trunk/echobase-ui/src/main/webapp/WEB-INF/includes/importDataResults.jsp 2012-09-12 11:02:33 UTC (rev 651)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/includes/importDataResults.jsp 2012-09-12 11:03:43 UTC (rev 652)
@@ -1,48 +0,0 @@
-<%--
- #%L
- EchoBase :: UI
-
- $Id$
- $HeadURL$
- %%
- Copyright (C) 2011 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%
- --%>
-<%@page contentType="text/html" pageEncoding="UTF-8" %>
-<%@ taglib prefix="s" uri="/struts-tags" %>
-
-<br/>
-<fieldset>
- <legend><s:text name="echobase.legend.importData.result.resume"/></legend>
-
- <s:if test="hasActionErrors()">
- <s:text name="echobase.common.importError"/>
- <strong>
- <s:property value="error.message"/>
- </strong>
- <pre id="errorStack">
- <code>
- <s:property value="errorStack"/>
- </code>
- </pre>
- </s:if>
- <s:else>
- <pre>
- <s:property value="result"/>
- </pre>
- </s:else>
-</fieldset>
-
Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/embeddedApplication/result.jsp
===================================================================
--- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/embeddedApplication/result.jsp 2012-09-12 11:02:33 UTC (rev 651)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/embeddedApplication/result.jsp 2012-09-12 11:03:43 UTC (rev 652)
@@ -37,11 +37,6 @@
</script>
<title><s:text name="echobase.title.embeddedApplicationResult"/></title>
-<div>
- La création de l'application embarquée a réussi en <s:property
- value="model.actionTime"/>.
-</div>
-
<div class="cleanBoth help">
<s:a href="http://maven-site.forge.codelutin.com/echobase/embedded.html"
target="doc">
@@ -49,10 +44,11 @@
</s:a>
</div>
<br/>
-<br/>
+<%@ include file="/WEB-INF/includes/actionResult.jsp" %>
+
<div>
- Si le téléchargement n'a pas démarré automatiquement, suivez ce lien :
+ <s:text name="echobase.message.download.link"/>
<a href="${downloadUrl}">
<s:text name="echobase.action.downloadEmbeddedApplicationFile"/>
</a>
Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/exportDb/result.jsp
===================================================================
--- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/exportDb/result.jsp 2012-09-12 11:02:33 UTC (rev 651)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/exportDb/result.jsp 2012-09-12 11:03:43 UTC (rev 652)
@@ -37,9 +37,10 @@
</script>
<title><s:text name="echobase.title.exportDbResult"/></title>
+<%@ include file="/WEB-INF/includes/actionResult.jsp" %>
+
<div>
- L'export de la base complête a réussi en <s:property
- value="model.actionTime"/>.
+ L'export de la base complête a réussi en <s:property value="model.actionTime"/>.
</div>
<br/>
Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/resultAcousticImport.jsp
===================================================================
--- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/resultAcousticImport.jsp 2012-09-12 11:02:33 UTC (rev 651)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/resultAcousticImport.jsp 2012-09-12 11:03:43 UTC (rev 652)
@@ -29,4 +29,4 @@
<s:text name="echobase.common.importType.acoustic"/>
</title>
-<%@ include file="/WEB-INF/includes/importDataResults.jsp" %>
+<%@ include file="/WEB-INF/includes/actionResult.jsp" %>
Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/resultCatchesImport.jsp
===================================================================
--- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/resultCatchesImport.jsp 2012-09-12 11:02:33 UTC (rev 651)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/resultCatchesImport.jsp 2012-09-12 11:03:43 UTC (rev 652)
@@ -29,4 +29,4 @@
<s:text name="echobase.common.importType.catches"/>
</title>
-<%@ include file="/WEB-INF/includes/importDataResults.jsp" %>
+<%@ include file="/WEB-INF/includes/actionResult.jsp" %>
Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/resultCommonImport.jsp
===================================================================
--- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/resultCommonImport.jsp 2012-09-12 11:02:33 UTC (rev 651)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/resultCommonImport.jsp 2012-09-12 11:03:43 UTC (rev 652)
@@ -28,4 +28,4 @@
<s:text name="echobase.common.importType.common"/>
</title>
-<%@ include file="/WEB-INF/includes/importDataResults.jsp" %>
\ No newline at end of file
+<%@ include file="/WEB-INF/includes/actionResult.jsp" %>
\ No newline at end of file
Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/resultOperationImport.jsp
===================================================================
--- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/resultOperationImport.jsp 2012-09-12 11:02:33 UTC (rev 651)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/resultOperationImport.jsp 2012-09-12 11:03:43 UTC (rev 652)
@@ -29,4 +29,4 @@
<s:text name="echobase.common.importType.operation"/>
</title>
-<%@ include file="/WEB-INF/includes/importDataResults.jsp" %>
+<%@ include file="/WEB-INF/includes/actionResult.jsp" %>
Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/resultResultsImport.jsp
===================================================================
--- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/resultResultsImport.jsp 2012-09-12 11:02:33 UTC (rev 651)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/resultResultsImport.jsp 2012-09-12 11:03:43 UTC (rev 652)
@@ -33,4 +33,4 @@
( <s:property value="%{getText(model.importType.i18nKey)}"/> )
</h4>
-<%@ include file="/WEB-INF/includes/importDataResults.jsp" %>
+<%@ include file="/WEB-INF/includes/actionResult.jsp" %>
Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importDb/result.jsp
===================================================================
--- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importDb/result.jsp 2012-09-12 11:02:33 UTC (rev 651)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importDb/result.jsp 2012-09-12 11:03:43 UTC (rev 652)
@@ -26,7 +26,5 @@
<title><s:text name="echobase.title.importDbResult"/></title>
-<div>
- <s:property value="%{result}"/>
-</div>
+<%@ include file="/WEB-INF/includes/actionResult.jsp" %>
Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/removeData/deleteResult.jsp
===================================================================
--- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/removeData/deleteResult.jsp 2012-09-12 11:02:33 UTC (rev 651)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/removeData/deleteResult.jsp 2012-09-12 11:03:43 UTC (rev 652)
@@ -26,14 +26,7 @@
<title><s:text name="echobase.title.removeDataResult"/></title>
-<div>
- <s:text name="echobase.message.removeData.result">
- <s:param><s:property value="model.actionTime"/></s:param>
- </s:text>
- <pre>
- <s:property value="result"/>
- </pre>
-</div>
+<%@ include file="/WEB-INF/includes/actionResult.jsp" %>
<s:form id="createForm" namespace="/removeData">
<ul class="toolbar floatLeft">
1
0
r651 - trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/exportdb
by tchemit@users.forge.codelutin.com 12 Sep '12
by tchemit@users.forge.codelutin.com 12 Sep '12
12 Sep '12
Author: tchemit
Date: 2012-09-12 13:02:33 +0200 (Wed, 12 Sep 2012)
New Revision: 651
Url: http://forge.codelutin.com/repositories/revision/echobase/651
Log:
remove comment code
Modified:
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/exportdb/ExportDbService.java
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/exportdb/ExportDbService.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/exportdb/ExportDbService.java 2012-09-11 16:59:23 UTC (rev 650)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/exportdb/ExportDbService.java 2012-09-12 11:02:33 UTC (rev 651)
@@ -94,206 +94,5 @@
strategy.doExport(model, dir);
EchoBaseIOUtil.compressZipFile(zipFile, dir);
-
}
-
-// /**
-// * Export the complete db into csv files stored in a zip archive file.
-// *
-// * @param model file name of the zip to create
-// * @throws IOException if could not create or write files.
-// */
-// public void exportDb(ExportDbConfiguration model) throws IOException {
-//
-// String fileName = model.getFileName();
-//
-// File tempDirectory = model.getWorkingDirectory();
-//
-// File zipFile = new File(tempDirectory, fileName + ".zip");
-//
-// if (log.isInfoEnabled()) {
-// log.info("Will export db to " + zipFile);
-// }
-// model.setExportFile(zipFile);
-//
-// ExportService exportService = getService(ExportService.class);
-// File dir = new File(tempDirectory, "echobase");
-//
-// FileUtil.createDirectoryIfNecessary(dir);
-//
-// EchoBaseDbMeta dbMeta = getDbMeta();
-//
-// model.setNbSteps(dbMeta.getEntriesSize());
-//
-// for (TableMeta<EchoBaseEntityEnum> meta : dbMeta.getAllTables()) {
-//
-// model.incrementsProgression();
-//
-// exportService.exportData(meta, new File(dir, meta.getFilename()));
-// }
-//
-// for (AssociationMeta<EchoBaseEntityEnum> meta : dbMeta.getAllAssociations()) {
-//
-// model.incrementsProgression();
-//
-// exportService.exportData(meta, new File(dir, meta.getFilename()));
-// }
-// if (log.isInfoEnabled()) {
-// log.info("Export zip file = " + zipFile);
-// }
-// EchoBaseIOUtil.compressZipFile(zipFile, dir);
-// }
-
-// /**
-// * Export the partial db into csv files at the given location.
-// *
-// * @param model file name of the zip to create
-// * @param computeSteps flag to compute stesp inside this method
-// * @throws IOException if could not create or write files.
-// */
-// public void exportPartialDb(ExportDbConfiguration model,
-// boolean computeSteps) throws IOException {
-//
-// String fileName = model.getFileName();
-//
-// File tempDirectory = model.getWorkingDirectory();
-// File dir = new File(tempDirectory, "echobase");
-// FileUtil.createDirectoryIfNecessary(dir);
-//
-// if (log.isInfoEnabled()) {
-// log.info("Will export to " + dir);
-// }
-//
-// File zipFile = new File(tempDirectory, fileName + ".zip");
-// model.setExportFile(zipFile);
-//
-// ExportService exportService = getService(ExportService.class);
-//
-// // export all referentiel
-// List<TableMeta<EchoBaseEntityEnum>> refEntries = getDbMeta().getReferenceTables();
-// List<AssociationMeta<EchoBaseEntityEnum>> refAssocEntries = getDbMeta().getReferenceAssociations();
-//
-// boolean withVoyages = model.getVoyageIds() != null;
-//
-// if (computeSteps) {
-// int nbstesp = refEntries.size();
-//
-// if (withVoyages) {
-// nbstesp += model.getVoyageIds().length;
-// }
-//
-// model.setNbSteps(nbstesp);
-// }
-//
-// for (TableMeta<EchoBaseEntityEnum> meta : refEntries) {
-//
-// model.incrementsProgression();
-//
-// File entryFile = new File(dir, meta.getFilename());
-// exportService.exportData(meta, entryFile);
-// }
-//
-// for (AssociationMeta<EchoBaseEntityEnum> associationMeta : refAssocEntries) {
-//
-// model.incrementsProgression();
-//
-// File entryFile = new File(dir, associationMeta.getFilename());
-// exportService.exportData(associationMeta, entryFile);
-// }
-//
-// if (withVoyages) {
-// List<TableMeta<EchoBaseEntityEnum>> dataEntries =
-// getDbMeta().getDataTables();
-// List<AssociationMeta<EchoBaseEntityEnum>> dataAssociationEntries =
-// getDbMeta().getDataAssociations();
-//
-// ReplicateEntityVisitor visitor = createVisitor(
-// exportService.getModelFactory(false),
-// dataEntries,
-// dataAssociationEntries,
-// dir
-// );
-//
-// try {
-// for (String voyageId : model.getVoyageIds()) {
-//
-// model.incrementsProgression();
-//
-// Voyage voyage = getEntityById(Voyage.class, voyageId);
-// visitor.export(voyage);
-// }
-// } finally {
-// // close visitor to close export files
-// visitor.close();
-// }
-// }
-//
-// EchoBaseIOUtil.compressZipFile(zipFile, dir);
-// }
-//
-// public ReplicateEntityVisitor createVisitor(ExportModelFactory<EchoBaseEntityEnum> modelFactory,
-// List<TableMeta<EchoBaseEntityEnum>> entityMetas,
-// List<AssociationMeta<EchoBaseEntityEnum>> associations,
-// File container) {
-//
-// Preconditions.checkNotNull(modelFactory);
-//
-// Map<EchoBaseEntityEnum, TopiaCsvExports.EntityExportContext<EchoBaseEntityEnum>> contexts = TopiaCsvExports.createReplicateEntityVisitorContexts(
-// modelFactory, entityMetas, associations, container);
-//
-// ReplicateEntityVisitor result = new ReplicateEntityVisitor(
-// getDbMeta().getPersistenceHelper(), contexts);
-// return result;
-// }
-//
-// /**
-// * entity visitor to export data to csv files.
-// *
-// * @author tchemit <chemit(a)codelutin.com>
-// * @since 0.3
-// */
-// public static class ReplicateEntityVisitor extends ExportEntityVisitor<EchoBaseEntityEnum> {
-//
-// protected final Set<String> categoryIds;
-//
-// @Override
-// protected boolean isNoChildVisit(String propertyName, TopiaEntity entity) {
-// return Result.PROPERTY_CATEGORY.equals(propertyName) &&
-// entity instanceof Result;
-// }
-//
-// public ReplicateEntityVisitor(TopiaPersistenceHelper<EchoBaseEntityEnum> typeProvider,
-// Map<EchoBaseEntityEnum, TopiaCsvExports.EntityExportContext<EchoBaseEntityEnum>> entityExporters) {
-// super(typeProvider, entityExporters);
-// categoryIds = Sets.newHashSet();
-// }
-//
-// @Override
-// public void visit(TopiaEntity entity, String propertyName,
-// Class<?> type, Object value) {
-// if (Result.PROPERTY_CATEGORY.equals(propertyName) &&
-// entity instanceof Result) {
-//
-// // export category
-// try {
-// TopiaEntity topiaEntity = (TopiaEntity) value;
-// if (categoryIds.add(topiaEntity.getTopiaId())) {
-// // add this new category
-// topiaEntity.accept(this);
-// }
-//
-// } catch (TopiaException e) {
-// if (log.isErrorEnabled()) {
-// log.error("Can not visit entity " + value, e);
-// }
-// }
-// }
-// }
-//
-// @Override
-// public void close() throws IOException {
-// categoryIds.clear();
-// super.close();
-// }
-// }
}
1
0
r650 - in trunk: echobase-domain/src/main/java/fr/ifremer/echobase/io echobase-domain/src/main/java/fr/ifremer/echobase/services echobase-services/src/main/java/fr/ifremer/echobase/services/importdb/strategy echobase-services/src/test/java/fr/ifremer/echobase/services
by tchemit@users.forge.codelutin.com 11 Sep '12
by tchemit@users.forge.codelutin.com 11 Sep '12
11 Sep '12
Author: tchemit
Date: 2012-09-11 18:59:23 +0200 (Tue, 11 Sep 2012)
New Revision: 650
Url: http://forge.codelutin.com/repositories/revision/echobase/650
Log:
improve importDb progression + make it works even for small jvm
Modified:
trunk/echobase-domain/src/main/java/fr/ifremer/echobase/io/EchoBaseIOUtil.java
trunk/echobase-domain/src/main/java/fr/ifremer/echobase/services/AbstractEchobaseActionConfiguration.java
trunk/echobase-domain/src/main/java/fr/ifremer/echobase/services/ProgressionModel.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdb/strategy/AbstractImportDbStrategy.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdb/strategy/EchoBaseImportStrategy.java
trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/ExportDbServiceTest.java
trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/ImportDbServiceTest.java
Modified: trunk/echobase-domain/src/main/java/fr/ifremer/echobase/io/EchoBaseIOUtil.java
===================================================================
--- trunk/echobase-domain/src/main/java/fr/ifremer/echobase/io/EchoBaseIOUtil.java 2012-09-11 16:55:09 UTC (rev 649)
+++ trunk/echobase-domain/src/main/java/fr/ifremer/echobase/io/EchoBaseIOUtil.java 2012-09-11 16:59:23 UTC (rev 650)
@@ -37,9 +37,12 @@
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
+import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.LineNumberReader;
import java.util.Collection;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipFile;
/**
* Usefull methods on io.
@@ -110,7 +113,6 @@
} finally {
reader.close();
}
-
}
} finally {
writer.close();
@@ -118,13 +120,48 @@
}
public static int countLines(File file) {
+ InputStream inputStream = null;
+ try {
+ inputStream = FileUtils.openInputStream(file);
+ int result = countLines(inputStream);
+ inputStream.close();
+ return result;
+ } catch (IOException e) {
+ throw new EchoBaseTechnicalException("Could not countLines", e);
+ } finally {
+ if (inputStream != null) {
+ IOUtils.closeQuietly(inputStream);
+ }
+ }
+ }
+
+ public static long countLines(ZipFile zipFile,
+ Iterable<ZipEntry> entries) throws IOException {
+ long result = 0l;
+ for (ZipEntry entry : entries) {
+ InputStream inputStream = zipFile.getInputStream(entry);
+ try {
+ int i = countLines(inputStream);
+ if (log.isDebugEnabled()) {
+ log.debug("entry: " + entry.getName() + " - " + i);
+ }
+ result += i;
+ inputStream.close();
+ } finally {
+ if (inputStream != null) {
+ IOUtils.closeQuietly(inputStream);
+ }
+ }
+ }
+ return result;
+ }
+
+ public static int countLines(InputStream file) {
int result = 0;
LineNumberReader reader = null;
try {
- reader = new LineNumberReader(
- new InputStreamReader(FileUtils.openInputStream(file))
- );
+ reader = new LineNumberReader(new InputStreamReader(file));
while (reader.readLine() != null) {
}
result = reader.getLineNumber();
Modified: trunk/echobase-domain/src/main/java/fr/ifremer/echobase/services/AbstractEchobaseActionConfiguration.java
===================================================================
--- trunk/echobase-domain/src/main/java/fr/ifremer/echobase/services/AbstractEchobaseActionConfiguration.java 2012-09-11 16:55:09 UTC (rev 649)
+++ trunk/echobase-domain/src/main/java/fr/ifremer/echobase/services/AbstractEchobaseActionConfiguration.java 2012-09-11 16:59:23 UTC (rev 650)
@@ -168,7 +168,6 @@
return endTime;
}
-
@Override
public void setEndTime(long endTime) {
this.endTime = endTime;
Modified: trunk/echobase-domain/src/main/java/fr/ifremer/echobase/services/ProgressionModel.java
===================================================================
--- trunk/echobase-domain/src/main/java/fr/ifremer/echobase/services/ProgressionModel.java 2012-09-11 16:55:09 UTC (rev 649)
+++ trunk/echobase-domain/src/main/java/fr/ifremer/echobase/services/ProgressionModel.java 2012-09-11 16:59:23 UTC (rev 650)
@@ -22,6 +22,8 @@
*/
package fr.ifremer.echobase.services;
+import org.nuiton.topia.persistence.csv.CsvProgressionModel;
+
import java.io.Serializable;
/**
@@ -30,18 +32,8 @@
* @author tchemit <chemit(a)codelutin.com>
* @since 0.3
*/
-public interface ProgressionModel extends Serializable {
+public interface ProgressionModel extends CsvProgressionModel, Serializable {
- long getNbSteps();
-
- float getProgression();
-
- void setProgression(float progression);
-
- void incrementsProgression();
-
- void setNbSteps(long nbSteps);
-
long getStartTime();
void setStartTime(long startTime);
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdb/strategy/AbstractImportDbStrategy.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdb/strategy/AbstractImportDbStrategy.java 2012-09-11 16:55:09 UTC (rev 649)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdb/strategy/AbstractImportDbStrategy.java 2012-09-11 16:59:23 UTC (rev 650)
@@ -29,6 +29,7 @@
import fr.ifremer.echobase.entities.EntityModificationLog;
import fr.ifremer.echobase.entities.ImportLog;
import fr.ifremer.echobase.entities.data.Voyage;
+import fr.ifremer.echobase.io.EchoBaseIOUtil;
import fr.ifremer.echobase.persistence.EchoBaseDbMeta;
import fr.ifremer.echobase.services.EchoBaseServiceSupport;
import fr.ifremer.echobase.services.importdata.ImportException;
@@ -96,20 +97,24 @@
validateAssociationEntries(dbMeta, associations);
if (model.isComputeSteps()) {
- int size = tables.size() + associations.size();
- model.setNbSteps(size + missingEntries.size());
- }
- for (String missingEntry : missingEntries) {
+ long size = EchoBaseIOUtil.countLines(zipFile, tables.values()) +
+ EchoBaseIOUtil.countLines(zipFile, associations.values()) -
+ tables.size() -
+ associations.size();
- // skip thoses not found entries
- model.incrementsProgression();
-
if (log.isInfoEnabled()) {
- log.info("Skip not found entry " + missingEntry);
+ log.info("NB Steps: " + size);
}
+ model.setNbSteps(size);
}
+ for (String missingEntry : missingEntries) {
+ if (log.isDebugEnabled()) {
+ log.debug("Skip not found entry " + missingEntry);
+ }
+ }
+
ImportStrategy<EchoBaseEntityEnum> strategy = new EchoBaseImportStrategy(
EchoBaseImportModelFactory.newFactory(this),
getTransaction(),
@@ -176,15 +181,15 @@
for (Map.Entry<TableMeta<EchoBaseEntityEnum>, ZipEntry> entry :
entriestoConsume.entrySet()) {
- model.incrementsProgression();
-
TableMeta<EchoBaseEntityEnum> entryDef = entry.getKey();
ZipEntry value = entry.getValue();
- CsvImportResult<EchoBaseEntityEnum> csvResult = CsvImportResult.newResult(
- entryDef.getSource(),
- value.getName(),
- false
- );
+ CsvImportResult<EchoBaseEntityEnum> csvResult =
+ CsvImportResult.newResult(
+ entryDef.getSource(),
+ value.getName(),
+ false,
+ model
+ );
Reader reader = IOUtils.toBufferedReader(
new InputStreamReader(zipFile.getInputStream(value)));
@@ -239,18 +244,19 @@
for (Map.Entry<AssociationMeta<EchoBaseEntityEnum>, ZipEntry> entry :
associations.entrySet()) {
- model.incrementsProgression();
-
AssociationMeta<EchoBaseEntityEnum> entryDef = entry.getKey();
ZipEntry value = entry.getValue();
- CsvImportResult<EchoBaseEntityEnum> csvResult = CsvImportResult.newResult(
- entryDef.getSource(),
- value.getName(),
- false
- );
+ CsvImportResult<EchoBaseEntityEnum> csvResult =
+ CsvImportResult.newResult(
+ entryDef.getSource(),
+ value.getName(),
+ false,
+ model
+ );
- Reader reader = IOUtils.toBufferedReader(new InputStreamReader(zipFile.getInputStream(value)));
+ Reader reader = IOUtils.toBufferedReader(
+ new InputStreamReader(zipFile.getInputStream(value)));
try {
long s0 = TimeLog.getTime();
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdb/strategy/EchoBaseImportStrategy.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdb/strategy/EchoBaseImportStrategy.java 2012-09-11 16:55:09 UTC (rev 649)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdb/strategy/EchoBaseImportStrategy.java 2012-09-11 16:59:23 UTC (rev 650)
@@ -74,7 +74,7 @@
CsvImportResult<EchoBaseEntityEnum> csvResult) throws TopiaException {
TopiaDAO<E> dao = persistenceHelper.getDAO(tx, meta.getSource());
- TopiaCsvImports.importAllEntities(dao, meta, importer, csvResult);
+ TopiaCsvImports.importAllEntities(dao, meta, importer, csvResult, nbRowBuffer);
}
@Override
Modified: trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/ExportDbServiceTest.java
===================================================================
--- trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/ExportDbServiceTest.java 2012-09-11 16:55:09 UTC (rev 649)
+++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/ExportDbServiceTest.java 2012-09-11 16:59:23 UTC (rev 650)
@@ -26,6 +26,7 @@
import fr.ifremer.echobase.services.exportdb.ExportDbConfiguration;
import fr.ifremer.echobase.services.exportdb.ExportDbMode;
import fr.ifremer.echobase.services.exportdb.ExportDbService;
+import junit.framework.Assert;
import org.junit.Test;
import org.nuiton.util.FileUtil;
@@ -55,10 +56,12 @@
File workingDirectory = new File(getTestDir(), "work-dir");
FileUtil.createDirectoryIfNecessary(workingDirectory);
conf.setWorkingDirectory(workingDirectory);
- conf.setFileName("echobase");
+ conf.setFileName("echobase-referential");
conf.setComputeSteps(true);
conf.setExportDbMode(ExportDbMode.REFERENTIAL);
service.doExport(conf);
+ Assert.assertNotNull(conf.getExportFile());
+ Assert.assertTrue(conf.getExportFile().exists());
}
@Test
@@ -73,10 +76,12 @@
File workingDirectory = new File(getTestDir(), "work-dir");
FileUtil.createDirectoryIfNecessary(workingDirectory);
conf.setWorkingDirectory(workingDirectory);
- conf.setFileName("echobase");
+ conf.setFileName("echobase-data");
conf.setComputeSteps(true);
conf.setExportDbMode(ExportDbMode.DATA);
service.doExport(conf);
+ Assert.assertNotNull(conf.getExportFile());
+ Assert.assertTrue(conf.getExportFile().exists());
}
@Test
@@ -91,10 +96,12 @@
File workingDirectory = new File(getTestDir(), "work-dir");
FileUtil.createDirectoryIfNecessary(workingDirectory);
conf.setWorkingDirectory(workingDirectory);
- conf.setFileName("echobase");
+ conf.setFileName("echobase-referentialAndData");
conf.setComputeSteps(true);
conf.setExportDbMode(ExportDbMode.REFERENTIAL_AND_DATA);
service.doExport(conf);
+ Assert.assertNotNull(conf.getExportFile());
+ Assert.assertTrue(conf.getExportFile().exists());
}
@Test
@@ -107,26 +114,12 @@
File workingDirectory = new File(getTestDir(), "work-dir");
FileUtil.createDirectoryIfNecessary(workingDirectory);
conf.setWorkingDirectory(workingDirectory);
- conf.setFileName("echobase");
+ conf.setFileName("echobase-all");
conf.setComputeSteps(true);
conf.setExportDbMode(ExportDbMode.ALL);
service.doExport(conf);
+ Assert.assertNotNull(conf.getExportFile());
+ Assert.assertTrue(conf.getExportFile().exists());
}
-//
-// @Test
-// public void exportPartialDb() throws IOException {
-//
-// ExportDbService service = getService(ExportDbService.class);
-//
-// ExportDbConfiguration conf = new ExportDbConfiguration();
-//
-// conf.setVoyageIds(getVoyageId());
-//
-// File workingDirectory = new File(getTestDir(), "work-dir");
-// FileUtil.createDirectoryIfNecessary(workingDirectory);
-// conf.setWorkingDirectory(workingDirectory);
-// conf.setFileName("echobase");
-//
-// service.exportPartialDb(conf, true);
-// }
+
}
Modified: trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/ImportDbServiceTest.java
===================================================================
--- trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/ImportDbServiceTest.java 2012-09-11 16:55:09 UTC (rev 649)
+++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/ImportDbServiceTest.java 2012-09-11 16:59:23 UTC (rev 650)
@@ -71,7 +71,7 @@
service.doImport(conf, user);
- Assert.assertEquals(100f, conf.getProgression(), 1);
+ Assert.assertTrue(conf.getProgression() > 94);
}
}
1
0
r649 - in trunk/echobase-ui/src/main: java/fr/ifremer/echobase/ui/actions/importDb resources/i18n
by tchemit@users.forge.codelutin.com 11 Sep '12
by tchemit@users.forge.codelutin.com 11 Sep '12
11 Sep '12
Author: tchemit
Date: 2012-09-11 18:55:09 +0200 (Tue, 11 Sep 2012)
New Revision: 649
Url: http://forge.codelutin.com/repositories/revision/echobase/649
Log:
fix i18n
Modified:
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importDb/Import.java
trunk/echobase-ui/src/main/resources/i18n/echobase-ui_en_GB.properties
trunk/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties
Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importDb/Import.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importDb/Import.java 2012-09-11 16:54:49 UTC (rev 648)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importDb/Import.java 2012-09-11 16:55:09 UTC (rev 649)
@@ -83,7 +83,7 @@
case DATA:
addFlashMessage(_("echobase.info.import.succeded"));
- result = l_(locale, "echobase.importDb.legacyVoyageResult",
+ result = l_(locale, "echobase.importDb.dataResult",
model.getActionTime());
break;
Modified: trunk/echobase-ui/src/main/resources/i18n/echobase-ui_en_GB.properties
===================================================================
--- trunk/echobase-ui/src/main/resources/i18n/echobase-ui_en_GB.properties 2012-09-11 16:54:49 UTC (rev 648)
+++ trunk/echobase-ui/src/main/resources/i18n/echobase-ui_en_GB.properties 2012-09-11 16:55:09 UTC (rev 649)
@@ -219,8 +219,8 @@
echobase.error.workingDbConfiguration.url.already.exists=A configuration with same url already exists
echobase.error.workingDbConfiguration.url.required=Mandatory jdbc url
echobase.header.request.result=SQL query result
+echobase.importDb.dataResult=Data db import was sucessful in %s.
echobase.importDb.freeResult=Free db import was succesful in %s.
-echobase.importDb.legacyVoyageResult=Legacy voyage db import was sucessful in %s.
echobase.importDb.referentialResult=Referential db import was succesul in %s.
echobase.info.click.to.select=You can select value with a simple click then copy it (Ctrl-C)
echobase.info.dbeditor.propertyDiffsResult=Data import results
Modified: trunk/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties
===================================================================
--- trunk/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties 2012-09-11 16:54:49 UTC (rev 648)
+++ trunk/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties 2012-09-11 16:55:09 UTC (rev 649)
@@ -219,8 +219,8 @@
echobase.error.workingDbConfiguration.url.already.exists=Une configuration existe déjà avec cette url
echobase.error.workingDbConfiguration.url.required=Url jdbc obligatoire
echobase.header.request.result=Résultat de la requête SQL
+echobase.importDb.dataResult=L'import de type données s'est déroulé abec succès en %s.
echobase.importDb.freeResult=L'import de type libre s'est déroulé avec succès en %s.
-echobase.importDb.legacyVoyageResult=L'import de type données ancienne s'est déroulé abec succès en %s.
echobase.importDb.referentialResult=L'import de type référentiel s'est déroulé avec succès en %s.
echobase.info.click.to.select=Vous pouvez sélectionner la valeur en un simple click puis la copier (Ctrl-C)
echobase.info.dbeditor.propertyDiffsResult=Résultat d'import de données
1
0
Author: tchemit
Date: 2012-09-11 18:54:49 +0200 (Tue, 11 Sep 2012)
New Revision: 648
Url: http://forge.codelutin.com/repositories/revision/echobase/648
Log:
fix rst
Modified:
trunk/src/site/en/rst/importDb.rst
trunk/src/site/rst/importDb.rst
Modified: trunk/src/site/en/rst/importDb.rst
===================================================================
--- trunk/src/site/en/rst/importDb.rst 2012-09-11 15:54:12 UTC (rev 647)
+++ trunk/src/site/en/rst/importDb.rst 2012-09-11 16:54:49 UTC (rev 648)
@@ -20,6 +20,7 @@
.. * along with this program. If not, see <http://www.gnu.org/licenses/>.
.. * #L%
.. -
+
==========================
Import / Export d'une base
==========================
@@ -32,7 +33,7 @@
:depth: 2
Abstract
-========
+--------
Ce document explique comment importer / exporter des bases au format EchoBase.
Modified: trunk/src/site/rst/importDb.rst
===================================================================
--- trunk/src/site/rst/importDb.rst 2012-09-11 15:54:12 UTC (rev 647)
+++ trunk/src/site/rst/importDb.rst 2012-09-11 16:54:49 UTC (rev 648)
@@ -20,6 +20,7 @@
.. * along with this program. If not, see <http://www.gnu.org/licenses/>.
.. * #L%
.. -
+
==========================
Import / Export d'une base
==========================
@@ -32,7 +33,7 @@
:depth: 2
Abstract
-========
+--------
Ce document explique comment importer / exporter des bases au format EchoBase.
1
0
r647 - in trunk/echobase-tools: . src/test src/test/java/fr/ifremer/echobase/tools src/test/java/fr/ifremer/echobase/tools/loaders
by tchemit@users.forge.codelutin.com 11 Sep '12
by tchemit@users.forge.codelutin.com 11 Sep '12
11 Sep '12
Author: tchemit
Date: 2012-09-11 17:54:12 +0200 (Tue, 11 Sep 2012)
New Revision: 647
Url: http://forge.codelutin.com/repositories/revision/echobase/647
Log:
add csv files to svn (no more private stuff)
Added:
trunk/echobase-tools/src/test/baracouda.mdb
Modified:
trunk/echobase-tools/pom.xml
trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/AbstractToolTest.java
trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/EchoBaseDbZipCreatorIT.java
trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/TestHelper.java
trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/AbstractLoaderIT.java
Modified: trunk/echobase-tools/pom.xml
===================================================================
--- trunk/echobase-tools/pom.xml 2012-09-11 14:51:24 UTC (rev 646)
+++ trunk/echobase-tools/pom.xml 2012-09-11 15:54:12 UTC (rev 647)
@@ -21,19 +21,40 @@
<description>EchoBase tools module</description>
<properties>
+
+ <csvVersion>2012-04-12</csvVersion>
<redmine.releaseFiles>
- ${basedir}/target/echobase-legacyData-${project.version}.zip,
- ${basedir}/target/echobase-referentiel-${project.version}.zip
+ ${basedir}/target/echobase-legacyData-${project.version}.echobase,
+ ${basedir}/target/echobase-referentiel-${project.version}.echobase
</redmine.releaseFiles>
</properties>
<build>
+
+ <testResources>
+ <testResource>
+ <directory>src/test/echobase-${csvVersion}</directory>
+ <includes>
+ <include>**/*.csv</include>
+ </includes>
+ </testResource>
+ <testResource>
+ <directory>src/test/resources</directory>
+ <includes>
+ <include>**/*.*</include>
+ </includes>
+ </testResource>
+ </testResources>
+
<pluginManagement>
<plugins>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<argLine>-Xms512m -Xmx1512m</argLine>
+ <environmentVariables>
+ <csvVersion>${csvVersion}</csvVersion>
+ </environmentVariables>
</configuration>
</plugin>
</plugins>
@@ -208,32 +229,6 @@
</plugins>
</build>
</profile>
-
- <profile>
- <activation>
- <file>
- <exists>src/test/private/echobase-2012-04-12</exists>
- </file>
- </activation>
- <id>echobase-csv-inputs</id>
- <build>
- <testResources>
- <testResource>
- <directory>src/test/private/echobase-2012-04-12</directory>
- <includes>
- <include>**/*.csv</include>
- </includes>
- </testResource>
- <testResource>
- <directory>src/test/resources</directory>
- <includes>
- <include>**/*.*</include>
- </includes>
- </testResource>
- </testResources>
- </build>
- </profile>
-
</profiles>
</project>
Added: trunk/echobase-tools/src/test/baracouda.mdb
===================================================================
(Binary files differ)
Property changes on: trunk/echobase-tools/src/test/baracouda.mdb
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Modified: trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/AbstractToolTest.java
===================================================================
--- trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/AbstractToolTest.java 2012-09-11 14:51:24 UTC (rev 646)
+++ trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/AbstractToolTest.java 2012-09-11 15:54:12 UTC (rev 647)
@@ -70,14 +70,6 @@
protected EchoBaseConfiguration configuration;
- @BeforeClass
- public static void beforeClass() {
-
- // check /csv dir is available in test resources
- TestHelper.assertCsvResourceDirectoryExists();
-
- }
-
@Before
public void setUp() throws Exception {
Modified: trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/EchoBaseDbZipCreatorIT.java
===================================================================
--- trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/EchoBaseDbZipCreatorIT.java 2012-09-11 14:51:24 UTC (rev 646)
+++ trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/EchoBaseDbZipCreatorIT.java 2012-09-11 15:54:12 UTC (rev 647)
@@ -80,7 +80,7 @@
File dir = new File(exportdir, "echobase");
- File distributionFile = new File(exportdir, "echobase-legacyData-" + dbVersion + ".zip");
+ File distributionFile = new File(exportdir, "echobase-legacyData-" + dbVersion + ".echobase");
Assert.assertFalse(distributionFile.exists());
File sourceDir = TestHelper.getCsvResourceDirectory();
@@ -108,7 +108,7 @@
File dir = new File(exportdir, "echobase");
- File distributionFile = new File(exportdir, "echobase-referentiel-" + dbVersion + ".zip");
+ File distributionFile = new File(exportdir, "echobase-referentiel-" + dbVersion + ".echobase");
Assert.assertFalse(distributionFile.exists());
File sourceDir = TestHelper.getCsvResourceDirectory();
Modified: trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/TestHelper.java
===================================================================
--- trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/TestHelper.java 2012-09-11 14:51:24 UTC (rev 646)
+++ trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/TestHelper.java 2012-09-11 15:54:12 UTC (rev 647)
@@ -23,10 +23,8 @@
*/
package fr.ifremer.echobase.tools;
+import com.google.common.base.Preconditions;
import org.apache.commons.io.FileUtils;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.junit.Assume;
import org.junit.Ignore;
import org.junit.rules.TestName;
import org.nuiton.util.FileUtil;
@@ -45,13 +43,13 @@
protected static File basedir;
- /** Logger. */
- private static final Log log = LogFactory.getLog(TestHelper.class);
-
protected static final long timestamp = System.currentTimeMillis();
- /** La version du jeux de données utilisé. */
- public static final String ECHOBASE_CSV_VERSION = "2012-04-12";
+ public static String getCsvVersion() {
+ String tmp = System.getenv("csvVersion");
+ Preconditions.checkNotNull(tmp, "Could not find csvVersion in properties");
+ return tmp;
+ }
public static File getBasedir() {
if (basedir == null) {
@@ -64,20 +62,10 @@
return basedir;
}
- public static void assertCsvResourceDirectoryExists() {
- File sourceDir = getCsvResourceDirectory();
- if (!sourceDir.exists()) {
- if (log.isWarnEnabled()) {
- log.warn("Could not find " + sourceDir + ", will skip some tests...");
- }
- }
- Assume.assumeTrue(sourceDir.exists());
- }
-
public static File getCsvResourceDirectory() {
File basedir = getBasedir();
File sourceDir = FileUtil.getFileFromFQN(
- basedir, "src.test.private.echobase-" + ECHOBASE_CSV_VERSION + ".csv");
+ basedir, "src.test.echobase-" + getCsvVersion() + ".csv");
return sourceDir;
}
@@ -91,32 +79,4 @@
FileUtil.createDirectoryIfNecessary(result);
return result;
}
-//
-// public static TopiaContext getRootContext(File dbDir) {
-//
-// JdbcConfiguration dbConf = JdbcConfiguration.newEmbeddedConfig(dbDir);
-// TopiaContext context = EchobaseTopiaContexts.newWorkingDb(persistenceHelper, dbConf);
-// return context;
-// }
-
-// /**
-// * Used to get all contract of a package
-// *
-// * @param entitiesPackage package contening desired entities
-// * @return contracts contained in entitiesPackage
-// */
-// public static EchoBaseEntityEnum[] getContractsOf(Package entitiesPackage) {
-// EchoBaseEntityEnum[] echoBaseEntityEnums = EchoBaseEntityEnum.values();
-// List<EchoBaseEntityEnum> refClasses = new ArrayList<EchoBaseEntityEnum>();
-// for (EchoBaseEntityEnum echoBaseEntityEnum : echoBaseEntityEnums) {
-//
-// // Get all entities in package fr.ifremer.echobase.entities.references
-// Class<? extends TopiaEntity> contract = echoBaseEntityEnum.getContract();
-// if (entitiesPackage.equals(contract.getPackage())) {
-// refClasses.add(echoBaseEntityEnum);
-// }
-// }
-// return refClasses.toArray(new EchoBaseEntityEnum[refClasses.size()]);
-// }
-
}
Modified: trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/AbstractLoaderIT.java
===================================================================
--- trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/AbstractLoaderIT.java 2012-09-11 14:51:24 UTC (rev 646)
+++ trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/AbstractLoaderIT.java 2012-09-11 15:54:12 UTC (rev 647)
@@ -87,8 +87,6 @@
@BeforeClass
public static void beforeClass() {
- AbstractToolTest.beforeClass();
-
msAccessFile = FileUtil.getFileFromPaths(TestHelper.getBasedir(),
"src",
"test",
1
0
r645 - trunk/echobase-services/src/test/java/fr/ifremer/echobase/services
by tchemit@users.forge.codelutin.com 11 Sep '12
by tchemit@users.forge.codelutin.com 11 Sep '12
11 Sep '12
Author: tchemit
Date: 2012-09-11 14:55:17 +0200 (Tue, 11 Sep 2012)
New Revision: 645
Url: http://forge.codelutin.com/repositories/revision/echobase/645
Log:
fix compile
Modified:
trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/ExportDbServiceTest.java
Modified: trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/ExportDbServiceTest.java
===================================================================
--- trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/ExportDbServiceTest.java 2012-09-11 12:48:41 UTC (rev 644)
+++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/ExportDbServiceTest.java 2012-09-11 12:55:17 UTC (rev 645)
@@ -68,7 +68,7 @@
ExportDbConfiguration conf = new ExportDbConfiguration();
- conf.setVoyageIds(getVoyageId());
+ conf.setVoyageIds(new String[]{getVoyageId()});
File workingDirectory = new File(getTestDir(), "work-dir");
FileUtil.createDirectoryIfNecessary(workingDirectory);
@@ -86,7 +86,7 @@
ExportDbConfiguration conf = new ExportDbConfiguration();
- conf.setVoyageIds(getVoyageId());
+ conf.setVoyageIds(new String[]{getVoyageId()});
File workingDirectory = new File(getTestDir(), "work-dir");
FileUtil.createDirectoryIfNecessary(workingDirectory);
1
0
11 Sep '12
Author: tchemit
Date: 2012-09-11 14:48:41 +0200 (Tue, 11 Sep 2012)
New Revision: 644
Url: http://forge.codelutin.com/repositories/revision/echobase/644
Log:
refs #1485: Permettre une import EchoBase plus cibl?\195?\169
refs #1486: Permettre un export EchoBase plus cible
am?\195?\169lioration des t?\195?\162ches de fond (meilleur param?\195?\169trage)
Added:
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/exportdb/ExportDbMode.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/exportdb/strategy/
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/exportdb/strategy/AbstractExportDbStrategy.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/exportdb/strategy/AllExportDbStrategy.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/exportdb/strategy/DataExportDbStrategy.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/exportdb/strategy/ReferentialAndDataExportDbStrategy.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/exportdb/strategy/ReferentialExportDbStrategy.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdb/EchoBaseImportModelFactory.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdb/strategy/
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdb/strategy/AbstractImportDbStrategy.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdb/strategy/DataImportDbStrategy.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdb/strategy/EchoBaseImportStrategy.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdb/strategy/FreeImportDbStrategy.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdb/strategy/ReferentialImportDbStrategy.java
trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/EchoBaseServiceFixtures.java
trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/importDb/
trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/importDb/Configure-configureData-validation.xml
trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/importDb/Configure-configureFree-validation.xml
trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/importDb/Configure-configureReferential-validation.xml
trunk/src/site/en/rst/importDb.rst
trunk/src/site/rst/importDb.rst
Removed:
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdb/DefaultImportStrategy.java
trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/importDb/Configure-validation.xml
trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/importHistorical/
Modified:
trunk/echobase-domain/src/main/java/fr/ifremer/echobase/services/EchoBaseServiceSupport.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/embeddedapplication/EmbeddedApplicationConfiguration.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/embeddedapplication/EmbeddedApplicationService.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/exportdb/ExportDbConfiguration.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/exportdb/ExportDbService.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdb/ImportDbConfiguration.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdb/ImportDbMode.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdb/ImportDbService.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdb/ImportService.java
trunk/echobase-services/src/main/resources/i18n/echobase-services_en_GB.properties
trunk/echobase-services/src/main/resources/i18n/echobase-services_fr_FR.properties
trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/EchoBaseTestServiceSupport.java
trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/EmbeddedApplicationServiceIT.java
trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/ExportDbServiceTest.java
trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/ImportDbServiceTest.java
trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/AbstractImportDataServiceIT.java
trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/AcousticImportServiceIT.java
trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/CatchesImportServiceIT.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/services/importdata/OperationImportServiceIT.java
trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/ResultsEsduCellImportServiceIT.java
trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/ResultsMapCellImportServiceIT.java
trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/ResultsRegionCellImportServiceIT.java
trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/ResultsVoyageImportServiceIT.java
trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/EntityLoader.java
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseApplicationListener.java
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportDb/Configure.java
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportDb/Export.java
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importDb/Configure.java
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importDb/Import.java
trunk/echobase-ui/src/main/resources/config/struts-exportDb.xml
trunk/echobase-ui/src/main/resources/config/struts-importDb.xml
trunk/echobase-ui/src/main/resources/i18n/echobase-ui_en_GB.properties
trunk/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties
trunk/echobase-ui/src/main/webapp/WEB-INF/includes/footer.jsp
trunk/echobase-ui/src/main/webapp/WEB-INF/includes/header.jsp
trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/embeddedApplication/progress.jsp
trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/exportDb/configure.jsp
trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/exportDb/progress.jsp
trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/home.jsp
trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/progressAcousticImport.jsp
trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/progressCatchesImport.jsp
trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/progressCommonImport.jsp
trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/progressOperationImport.jsp
trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/progressResultsImport.jsp
trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importDb/configure.jsp
trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importDb/progress.jsp
trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/removeData/deleteProgress.jsp
trunk/echobase-ui/src/main/webapp/css/screen.css
trunk/src/site/site_en.xml
trunk/src/site/site_fr.xml
Modified: trunk/echobase-domain/src/main/java/fr/ifremer/echobase/services/EchoBaseServiceSupport.java
===================================================================
--- trunk/echobase-domain/src/main/java/fr/ifremer/echobase/services/EchoBaseServiceSupport.java 2012-09-10 16:00:37 UTC (rev 643)
+++ trunk/echobase-domain/src/main/java/fr/ifremer/echobase/services/EchoBaseServiceSupport.java 2012-09-11 12:48:41 UTC (rev 644)
@@ -109,6 +109,10 @@
return serviceContext.getInternalTransaction();
}
+ public final EchoBaseConfiguration getConfiguration() {
+ return serviceContext.getConfiguration();
+ }
+
protected final TopiaContext getTransaction() {
return serviceContext.getTransaction();
}
@@ -121,10 +125,6 @@
return serviceContext.getDbMeta();
}
- protected final EchoBaseConfiguration getConfiguration() {
- return serviceContext.getConfiguration();
- }
-
protected final Date newDate() {
return serviceContext.newDate();
}
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 2012-09-10 16:00:37 UTC (rev 643)
+++ trunk/echobase-domain/src/main/resources/i18n/echobase-domain_en_GB.properties 2012-09-11 12:48:41 UTC (rev 644)
@@ -4,12 +4,12 @@
echobase.common.importType.catches=Fishing data import
echobase.common.importType.commonDataAll=Voyage / Transit / Transects import
echobase.common.importType.commonDataTransect=Transects import
-echobase.common.importType.voyage=Voyage import
echobase.common.importType.operation=Operations data import
echobase.common.importType.resultsEsdu=Import the “ESDU” cells results
echobase.common.importType.resultsMap=Import the “map” cells results
echobase.common.importType.resultsRegion=Import the “region” cells results
echobase.common.importType.resultsVoyage=Import the voyage-related results
+echobase.common.importType.voyage=Voyage import
echobase.config.csv.separator.description=Csv separator character
echobase.config.data.directory.description=Path to application data
echobase.config.documentationUrl.description=Where to find EchoBase online documentation
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 2012-09-10 16:00:37 UTC (rev 643)
+++ trunk/echobase-domain/src/main/resources/i18n/echobase-domain_fr_FR.properties 2012-09-11 12:48:41 UTC (rev 644)
@@ -4,12 +4,12 @@
echobase.common.importType.catches=Import des données de pêche
echobase.common.importType.commonDataAll=Import Voyage / Transit / Transects
echobase.common.importType.commonDataTransect=Import Transects
-echobase.common.importType.voyage=Import Campagne
echobase.common.importType.operation=Import des opérations
echobase.common.importType.resultsEsdu=Import des résultats des cellules de type "ESDU"
echobase.common.importType.resultsMap=Import des cellules de type Carte
echobase.common.importType.resultsRegion=Import des cellules de type Région
echobase.common.importType.resultsVoyage=Import des résultats du voyage
+echobase.common.importType.voyage=Import Campagne
echobase.config.csv.separator.description=Caractère séparateur pour les fichiers csv
echobase.config.data.directory.description=Répertoire des données de l'application
echobase.config.documentationUrl.description=Où trouver la documentation en ligne d'EchoBase
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/embeddedapplication/EmbeddedApplicationConfiguration.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/embeddedapplication/EmbeddedApplicationConfiguration.java 2012-09-10 16:00:37 UTC (rev 643)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/embeddedapplication/EmbeddedApplicationConfiguration.java 2012-09-11 12:48:41 UTC (rev 644)
@@ -83,6 +83,7 @@
return voyageIds;
}
+ // Attention on ne peut pas utiliser un ... car sinon ça plante dans l'ui
public void setVoyageIds(String[] voyageIds) {
this.voyageIds = Arrays.copyOf(voyageIds, voyageIds.length);
}
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/embeddedapplication/EmbeddedApplicationService.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/embeddedapplication/EmbeddedApplicationService.java 2012-09-10 16:00:37 UTC (rev 643)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/embeddedapplication/EmbeddedApplicationService.java 2012-09-11 12:48:41 UTC (rev 644)
@@ -38,10 +38,13 @@
import fr.ifremer.echobase.services.EchoBaseServiceSupport;
import fr.ifremer.echobase.services.UserService;
import fr.ifremer.echobase.services.exportdb.ExportDbConfiguration;
+import fr.ifremer.echobase.services.exportdb.ExportDbMode;
import fr.ifremer.echobase.services.exportdb.ExportDbService;
import fr.ifremer.echobase.services.exportquery.ExportQueryNameAlreadyExistException;
import fr.ifremer.echobase.services.exportquery.ExportQueryService;
+import fr.ifremer.echobase.services.importdata.ImportException;
import fr.ifremer.echobase.services.importdb.ImportDbConfiguration;
+import fr.ifremer.echobase.services.importdb.ImportDbMode;
import fr.ifremer.echobase.services.importdb.ImportDbService;
import fr.ifremer.echobase.services.workingDb.WorkingDbConfigurationAlreadyExistException;
import org.apache.commons.io.FileUtils;
@@ -209,7 +212,7 @@
File dir,
File exportZipFile,
EchoBaseServiceContext newServiceContext,
- EchoBaseUser admin) throws IOException, TopiaException {
+ EchoBaseUser admin) throws IOException, ImportException, TopiaException {
JdbcConfiguration dbConf = JdbcConfiguration.newEmbeddedConfig(dir);
TopiaContext rootContext = EchobaseTopiaContexts.newWorkingDb(
@@ -227,10 +230,13 @@
importConfiguration.getInput().setFile(exportZipFile);
File importTempDir = new File(model.getWorkingDirectory(), "importDb");
importConfiguration.setWorkingDirectory(importTempDir);
+ importConfiguration.setImportDbMode(ImportDbMode.FREE);
+ importConfiguration.setComputeSteps(false);
+ importConfiguration.setCommitAfterEachFile(true);
// do import to embedded working db
- newServiceContext.getService(ImportDbService.class).importDb(
- importConfiguration, admin, false, true);
+ newServiceContext.getService(ImportDbService.class).doImport(
+ importConfiguration, admin);
} finally {
// remove current transaction
@@ -317,6 +323,9 @@
File exportTempDir = new File(dir, "exportDb");
exportconfiguration.setWorkingDirectory(exportTempDir);
exportconfiguration.setVoyageIds(model.getVoyageIds());
+ exportconfiguration.setComputeSteps(false);
+ exportconfiguration.setExportDbMode(ExportDbMode.REFERENTIAL_AND_DATA);
+
TopiaContext transaction = serviceContext.getTransaction();
TopiaContext newTx = beginTransaction(
@@ -325,7 +334,7 @@
try {
serviceContext.setTransaction(newTx);
ExportDbService exportDbService = getService(ExportDbService.class);
- exportDbService.exportPartialDb(exportconfiguration, false);
+ exportDbService.doExport(exportconfiguration);
} catch (IOException eee) {
rollbackTransaction(
newTx,
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/exportdb/ExportDbConfiguration.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/exportdb/ExportDbConfiguration.java 2012-09-10 16:00:37 UTC (rev 643)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/exportdb/ExportDbConfiguration.java 2012-09-11 12:48:41 UTC (rev 644)
@@ -46,9 +46,13 @@
private File exportFile;
+ private ExportDbMode exportDbMode;
+
/** Ids of voyages to push in embedded application (with all their datas). */
private String[] voyageIds;
+ private boolean computeSteps;
+
public ExportDbConfiguration() {
}
@@ -84,10 +88,27 @@
return voyageIds;
}
- public void setVoyageIds(String... voyageIds) {
+ // Attention on ne peut pas utiliser un ... car sinon ça plante dans l'ui
+ public void setVoyageIds(String[] voyageIds) {
this.voyageIds = voyageIds;
}
+ public ExportDbMode getExportDbMode() {
+ return exportDbMode;
+ }
+
+ public void setExportDbMode(ExportDbMode exportDbMode) {
+ this.exportDbMode = exportDbMode;
+ }
+
+ public boolean isComputeSteps() {
+ return computeSteps;
+ }
+
+ public void setComputeSteps(boolean computeSteps) {
+ this.computeSteps = computeSteps;
+ }
+
@Override
public void destroy() throws IOException {
if (workingDirectory != null) {
Added: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/exportdb/ExportDbMode.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/exportdb/ExportDbMode.java (rev 0)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/exportdb/ExportDbMode.java 2012-09-11 12:48:41 UTC (rev 644)
@@ -0,0 +1,60 @@
+package fr.ifremer.echobase.services.exportdb;
+
+/*
+ * #%L
+ * EchoBase :: Services
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2011 - 2012 Ifremer, Codelutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * 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.I18nAble;
+
+import static org.nuiton.i18n.I18n.n_;
+
+/**
+ * Db export mode.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 1.2
+ */
+public enum ExportDbMode implements I18nAble {
+
+ /** Export only referential. */
+ REFERENTIAL(n_("echobase.common.exportDbMode.referential")),
+
+ /** Export only selected data. */
+ DATA(n_("echobase.common.exportDbMode.data")),
+
+ /** Export selected data + referential. */
+ REFERENTIAL_AND_DATA(n_("echobase.common.exportDbMode.referentialAndData")),
+
+ /** Export all the db. */
+ ALL(n_("echobase.common.exportDbMode.all"));
+
+ private final String i18nKey;
+
+ ExportDbMode(String i18nKey) {
+ this.i18nKey = i18nKey;
+ }
+
+ @Override
+ public String getI18nKey() {
+ return i18nKey;
+ }
+}
\ No newline at end of file
Property changes on: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/exportdb/ExportDbMode.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/exportdb/ExportDbService.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/exportdb/ExportDbService.java 2012-09-10 16:00:37 UTC (rev 643)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/exportdb/ExportDbService.java 2012-09-11 12:48:41 UTC (rev 644)
@@ -23,33 +23,21 @@
*/
package fr.ifremer.echobase.services.exportdb;
-import com.google.common.base.Preconditions;
-import com.google.common.collect.Sets;
+import fr.ifremer.echobase.EchoBaseTechnicalException;
import fr.ifremer.echobase.io.EchoBaseIOUtil;
-import fr.ifremer.echobase.persistence.EchoBaseDbMeta;
-import fr.ifremer.echobase.entities.EchoBaseEntityEnum;
-import fr.ifremer.echobase.entities.data.Result;
-import fr.ifremer.echobase.entities.data.Voyage;
-import fr.ifremer.echobase.services.DbEditorService;
import fr.ifremer.echobase.services.EchoBaseServiceSupport;
+import fr.ifremer.echobase.services.exportdb.strategy.AbstractExportDbStrategy;
+import fr.ifremer.echobase.services.exportdb.strategy.AllExportDbStrategy;
+import fr.ifremer.echobase.services.exportdb.strategy.DataExportDbStrategy;
+import fr.ifremer.echobase.services.exportdb.strategy.ReferentialAndDataExportDbStrategy;
+import fr.ifremer.echobase.services.exportdb.strategy.ReferentialExportDbStrategy;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.nuiton.topia.TopiaException;
-import org.nuiton.topia.persistence.TopiaEntity;
-import org.nuiton.topia.persistence.TopiaPersistenceHelper;
-import org.nuiton.topia.persistence.csv.out.ExportEntityVisitor;
-import org.nuiton.topia.persistence.csv.out.ExportModelFactory;
-import org.nuiton.topia.persistence.csv.out.TopiaCsvExports;
-import org.nuiton.topia.persistence.metadata.AssociationMeta;
-import org.nuiton.topia.persistence.metadata.TableMeta;
import org.nuiton.util.FileUtil;
import org.nuiton.util.TimeLog;
import java.io.File;
import java.io.IOException;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
/**
* Service to import / export a complete db.
@@ -60,208 +48,252 @@
public class ExportDbService extends EchoBaseServiceSupport {
/** Logger. */
- private static final Log log =
- LogFactory.getLog(ExportDbService.class);
+ private static final Log log = LogFactory.getLog(ExportDbService.class);
- public static final TimeLog timeLog = new TimeLog(DbEditorService.class);
+ public static final TimeLog timeLog = new TimeLog(ExportDbService.class);
- /**
- * Export the complete db into csv files stored in a zip archive file.
- *
- * @param model file name of the zip to create
- * @throws IOException if could not create or write files.
- */
- public void exportDb(ExportDbConfiguration model) throws IOException {
+ public void doExport(ExportDbConfiguration model) throws IOException {
String fileName = model.getFileName();
File tempDirectory = model.getWorkingDirectory();
- File zipFile = new File(tempDirectory, fileName + ".zip");
+ File zipFile = new File(tempDirectory, fileName + ".echobase");
if (log.isInfoEnabled()) {
log.info("Will export db to " + zipFile);
}
model.setExportFile(zipFile);
- ExportService exportService = getService(ExportService.class);
File dir = new File(tempDirectory, "echobase");
FileUtil.createDirectoryIfNecessary(dir);
- EchoBaseDbMeta dbMeta = getDbMeta();
+ ExportDbMode exportDbMode = model.getExportDbMode();
- model.setNbSteps(dbMeta.getEntriesSize());
+ AbstractExportDbStrategy strategy;
- for (TableMeta<EchoBaseEntityEnum> meta : dbMeta.getAllTables()) {
-
- model.incrementsProgression();
-
- exportService.exportData(meta, new File(dir, meta.getFilename()));
+ switch (exportDbMode) {
+ case REFERENTIAL:
+ strategy = getService(ReferentialExportDbStrategy.class);
+ break;
+ case DATA:
+ strategy = getService(DataExportDbStrategy.class);
+ break;
+ case REFERENTIAL_AND_DATA:
+ strategy = getService(ReferentialAndDataExportDbStrategy.class);
+ break;
+ case ALL:
+ strategy = getService(AllExportDbStrategy.class);
+ break;
+ default:
+ throw new EchoBaseTechnicalException(
+ "Can not deal with this exportDbMode: " + exportDbMode);
}
- for (AssociationMeta<EchoBaseEntityEnum> meta : dbMeta.getAllAssociations()) {
+ strategy.doExport(model, dir);
- model.incrementsProgression();
-
- exportService.exportData(meta, new File(dir, meta.getFilename()));
- }
- if (log.isInfoEnabled()) {
- log.info("Export zip file = " + zipFile);
- }
EchoBaseIOUtil.compressZipFile(zipFile, dir);
- }
- /**
- * Export the partial db into csv files at the given location.
- *
- * @param model file name of the zip to create
- * @param computeSteps flag to compute stesp inside this method
- * @throws IOException if could not create or write files.
- */
- public void exportPartialDb(ExportDbConfiguration model,
- boolean computeSteps) throws IOException {
-
- String fileName = model.getFileName();
-
- File tempDirectory = model.getWorkingDirectory();
- File dir = new File(tempDirectory, "echobase");
- FileUtil.createDirectoryIfNecessary(dir);
-
- if (log.isInfoEnabled()) {
- log.info("Will export to " + dir);
- }
-
- File zipFile = new File(tempDirectory, fileName + ".zip");
- model.setExportFile(zipFile);
-
- ExportService exportService = getService(ExportService.class);
-
- // export all referentiel
- List<TableMeta<EchoBaseEntityEnum>> refEntries = getDbMeta().getReferenceTables();
- List<AssociationMeta<EchoBaseEntityEnum>> refAssocEntries = getDbMeta().getReferenceAssociations();
-
- boolean withVoyages = model.getVoyageIds() != null;
-
- if (computeSteps) {
- int nbstesp = refEntries.size();
-
- if (withVoyages) {
- nbstesp += model.getVoyageIds().length;
- }
-
- model.setNbSteps(nbstesp);
- }
-
- for (TableMeta<EchoBaseEntityEnum> meta : refEntries) {
-
- model.incrementsProgression();
-
- File entryFile = new File(dir, meta.getFilename());
- exportService.exportData(meta, entryFile);
- }
-
- for (AssociationMeta<EchoBaseEntityEnum> associationMeta : refAssocEntries) {
-
- model.incrementsProgression();
-
- File entryFile = new File(dir, associationMeta.getFilename());
- exportService.exportData(associationMeta, entryFile);
- }
-
- if (withVoyages) {
- List<TableMeta<EchoBaseEntityEnum>> dataEntries =
- getDbMeta().getDataTables();
- List<AssociationMeta<EchoBaseEntityEnum>> dataAssociationEntries =
- getDbMeta().getDataAssociations();
-
- ReplicateEntityVisitor visitor = createVisitor(
- exportService.getModelFactory(false),
- dataEntries,
- dataAssociationEntries,
- dir
- );
-
- try {
- for (String voyageId : model.getVoyageIds()) {
-
- model.incrementsProgression();
-
- Voyage voyage = getEntityById(Voyage.class, voyageId);
- visitor.export(voyage);
- }
- } finally {
- // close visitor to close export files
- visitor.close();
- }
- }
-
- EchoBaseIOUtil.compressZipFile(zipFile, dir);
}
- public ReplicateEntityVisitor createVisitor(ExportModelFactory<EchoBaseEntityEnum> modelFactory,
- List<TableMeta<EchoBaseEntityEnum>> entityMetas,
- List<AssociationMeta<EchoBaseEntityEnum>> associations,
- File container) {
+// /**
+// * Export the complete db into csv files stored in a zip archive file.
+// *
+// * @param model file name of the zip to create
+// * @throws IOException if could not create or write files.
+// */
+// public void exportDb(ExportDbConfiguration model) throws IOException {
+//
+// String fileName = model.getFileName();
+//
+// File tempDirectory = model.getWorkingDirectory();
+//
+// File zipFile = new File(tempDirectory, fileName + ".zip");
+//
+// if (log.isInfoEnabled()) {
+// log.info("Will export db to " + zipFile);
+// }
+// model.setExportFile(zipFile);
+//
+// ExportService exportService = getService(ExportService.class);
+// File dir = new File(tempDirectory, "echobase");
+//
+// FileUtil.createDirectoryIfNecessary(dir);
+//
+// EchoBaseDbMeta dbMeta = getDbMeta();
+//
+// model.setNbSteps(dbMeta.getEntriesSize());
+//
+// for (TableMeta<EchoBaseEntityEnum> meta : dbMeta.getAllTables()) {
+//
+// model.incrementsProgression();
+//
+// exportService.exportData(meta, new File(dir, meta.getFilename()));
+// }
+//
+// for (AssociationMeta<EchoBaseEntityEnum> meta : dbMeta.getAllAssociations()) {
+//
+// model.incrementsProgression();
+//
+// exportService.exportData(meta, new File(dir, meta.getFilename()));
+// }
+// if (log.isInfoEnabled()) {
+// log.info("Export zip file = " + zipFile);
+// }
+// EchoBaseIOUtil.compressZipFile(zipFile, dir);
+// }
- Preconditions.checkNotNull(modelFactory);
-
- Map<EchoBaseEntityEnum, TopiaCsvExports.EntityExportContext<EchoBaseEntityEnum>> contexts = TopiaCsvExports.createReplicateEntityVisitorContexts(
- modelFactory, entityMetas, associations, container);
-
- ReplicateEntityVisitor result = new ReplicateEntityVisitor(
- getDbMeta().getPersistenceHelper(), contexts);
- return result;
- }
-
- /**
- * entity visitor to export data to csv files.
- *
- * @author tchemit <chemit(a)codelutin.com>
- * @since 0.3
- */
- public static class ReplicateEntityVisitor extends ExportEntityVisitor<EchoBaseEntityEnum> {
-
- protected final Set<String> categoryIds;
-
- @Override
- protected boolean isNoChildVisit(String propertyName, TopiaEntity entity) {
- return Result.PROPERTY_CATEGORY.equals(propertyName) &&
- entity instanceof Result;
- }
-
- public ReplicateEntityVisitor(TopiaPersistenceHelper<EchoBaseEntityEnum> typeProvider,
- Map<EchoBaseEntityEnum, TopiaCsvExports.EntityExportContext<EchoBaseEntityEnum>> entityExporters) {
- super(typeProvider, entityExporters);
- categoryIds = Sets.newHashSet();
- }
-
- @Override
- public void visit(TopiaEntity entity, String propertyName,
- Class<?> type, Object value) {
- if (Result.PROPERTY_CATEGORY.equals(propertyName) &&
- entity instanceof Result) {
-
- // export category
- try {
- TopiaEntity topiaEntity = (TopiaEntity) value;
- if (categoryIds.add(topiaEntity.getTopiaId())) {
- // add this new category
- topiaEntity.accept(this);
- }
-
- } catch (TopiaException e) {
- if (log.isErrorEnabled()) {
- log.error("Can not visit entity " + value, e);
- }
- }
- }
- }
-
- @Override
- public void close() throws IOException {
- categoryIds.clear();
- super.close();
- }
- }
+// /**
+// * Export the partial db into csv files at the given location.
+// *
+// * @param model file name of the zip to create
+// * @param computeSteps flag to compute stesp inside this method
+// * @throws IOException if could not create or write files.
+// */
+// public void exportPartialDb(ExportDbConfiguration model,
+// boolean computeSteps) throws IOException {
+//
+// String fileName = model.getFileName();
+//
+// File tempDirectory = model.getWorkingDirectory();
+// File dir = new File(tempDirectory, "echobase");
+// FileUtil.createDirectoryIfNecessary(dir);
+//
+// if (log.isInfoEnabled()) {
+// log.info("Will export to " + dir);
+// }
+//
+// File zipFile = new File(tempDirectory, fileName + ".zip");
+// model.setExportFile(zipFile);
+//
+// ExportService exportService = getService(ExportService.class);
+//
+// // export all referentiel
+// List<TableMeta<EchoBaseEntityEnum>> refEntries = getDbMeta().getReferenceTables();
+// List<AssociationMeta<EchoBaseEntityEnum>> refAssocEntries = getDbMeta().getReferenceAssociations();
+//
+// boolean withVoyages = model.getVoyageIds() != null;
+//
+// if (computeSteps) {
+// int nbstesp = refEntries.size();
+//
+// if (withVoyages) {
+// nbstesp += model.getVoyageIds().length;
+// }
+//
+// model.setNbSteps(nbstesp);
+// }
+//
+// for (TableMeta<EchoBaseEntityEnum> meta : refEntries) {
+//
+// model.incrementsProgression();
+//
+// File entryFile = new File(dir, meta.getFilename());
+// exportService.exportData(meta, entryFile);
+// }
+//
+// for (AssociationMeta<EchoBaseEntityEnum> associationMeta : refAssocEntries) {
+//
+// model.incrementsProgression();
+//
+// File entryFile = new File(dir, associationMeta.getFilename());
+// exportService.exportData(associationMeta, entryFile);
+// }
+//
+// if (withVoyages) {
+// List<TableMeta<EchoBaseEntityEnum>> dataEntries =
+// getDbMeta().getDataTables();
+// List<AssociationMeta<EchoBaseEntityEnum>> dataAssociationEntries =
+// getDbMeta().getDataAssociations();
+//
+// ReplicateEntityVisitor visitor = createVisitor(
+// exportService.getModelFactory(false),
+// dataEntries,
+// dataAssociationEntries,
+// dir
+// );
+//
+// try {
+// for (String voyageId : model.getVoyageIds()) {
+//
+// model.incrementsProgression();
+//
+// Voyage voyage = getEntityById(Voyage.class, voyageId);
+// visitor.export(voyage);
+// }
+// } finally {
+// // close visitor to close export files
+// visitor.close();
+// }
+// }
+//
+// EchoBaseIOUtil.compressZipFile(zipFile, dir);
+// }
+//
+// public ReplicateEntityVisitor createVisitor(ExportModelFactory<EchoBaseEntityEnum> modelFactory,
+// List<TableMeta<EchoBaseEntityEnum>> entityMetas,
+// List<AssociationMeta<EchoBaseEntityEnum>> associations,
+// File container) {
+//
+// Preconditions.checkNotNull(modelFactory);
+//
+// Map<EchoBaseEntityEnum, TopiaCsvExports.EntityExportContext<EchoBaseEntityEnum>> contexts = TopiaCsvExports.createReplicateEntityVisitorContexts(
+// modelFactory, entityMetas, associations, container);
+//
+// ReplicateEntityVisitor result = new ReplicateEntityVisitor(
+// getDbMeta().getPersistenceHelper(), contexts);
+// return result;
+// }
+//
+// /**
+// * entity visitor to export data to csv files.
+// *
+// * @author tchemit <chemit(a)codelutin.com>
+// * @since 0.3
+// */
+// public static class ReplicateEntityVisitor extends ExportEntityVisitor<EchoBaseEntityEnum> {
+//
+// protected final Set<String> categoryIds;
+//
+// @Override
+// protected boolean isNoChildVisit(String propertyName, TopiaEntity entity) {
+// return Result.PROPERTY_CATEGORY.equals(propertyName) &&
+// entity instanceof Result;
+// }
+//
+// public ReplicateEntityVisitor(TopiaPersistenceHelper<EchoBaseEntityEnum> typeProvider,
+// Map<EchoBaseEntityEnum, TopiaCsvExports.EntityExportContext<EchoBaseEntityEnum>> entityExporters) {
+// super(typeProvider, entityExporters);
+// categoryIds = Sets.newHashSet();
+// }
+//
+// @Override
+// public void visit(TopiaEntity entity, String propertyName,
+// Class<?> type, Object value) {
+// if (Result.PROPERTY_CATEGORY.equals(propertyName) &&
+// entity instanceof Result) {
+//
+// // export category
+// try {
+// TopiaEntity topiaEntity = (TopiaEntity) value;
+// if (categoryIds.add(topiaEntity.getTopiaId())) {
+// // add this new category
+// topiaEntity.accept(this);
+// }
+//
+// } catch (TopiaException e) {
+// if (log.isErrorEnabled()) {
+// log.error("Can not visit entity " + value, e);
+// }
+// }
+// }
+// }
+//
+// @Override
+// public void close() throws IOException {
+// categoryIds.clear();
+// super.close();
+// }
+// }
}
Added: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/exportdb/strategy/AbstractExportDbStrategy.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/exportdb/strategy/AbstractExportDbStrategy.java (rev 0)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/exportdb/strategy/AbstractExportDbStrategy.java 2012-09-11 12:48:41 UTC (rev 644)
@@ -0,0 +1,209 @@
+package fr.ifremer.echobase.services.exportdb.strategy;
+
+/*
+ * #%L
+ * EchoBase :: Services
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2011 - 2012 Ifremer, Codelutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * 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.EchoBaseEntityEnum;
+import fr.ifremer.echobase.entities.data.Result;
+import fr.ifremer.echobase.entities.data.Voyage;
+import fr.ifremer.echobase.services.EchoBaseServiceSupport;
+import fr.ifremer.echobase.services.exportdb.ExportDbConfiguration;
+import fr.ifremer.echobase.services.exportdb.ExportService;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.nuiton.topia.TopiaException;
+import org.nuiton.topia.persistence.TopiaEntity;
+import org.nuiton.topia.persistence.TopiaPersistenceHelper;
+import org.nuiton.topia.persistence.csv.out.ExportEntityVisitor;
+import org.nuiton.topia.persistence.csv.out.TopiaCsvExports;
+import org.nuiton.topia.persistence.metadata.AssociationMeta;
+import org.nuiton.topia.persistence.metadata.TableMeta;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * Abstract export db strategy.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 1.2
+ */
+public abstract class AbstractExportDbStrategy extends EchoBaseServiceSupport {
+
+ /** Logger. */
+ private static final Log log =
+ LogFactory.getLog(AbstractExportDbStrategy.class);
+
+ protected abstract boolean canExportVoyage();
+
+ protected abstract List<TableMeta<EchoBaseEntityEnum>> getTablesToExport(ExportDbConfiguration model);
+
+ protected abstract List<AssociationMeta<EchoBaseEntityEnum>> getAssociationsToExport(ExportDbConfiguration model);
+
+ public final void doExport(ExportDbConfiguration model,
+ File dir) throws IOException {
+
+ List<TableMeta<EchoBaseEntityEnum>> tablesToExport =
+ getTablesToExport(model);
+ List<AssociationMeta<EchoBaseEntityEnum>> associationsToExport =
+ getAssociationsToExport(model);
+
+ boolean withVoyages = canExportVoyage() && model.getVoyageIds() != null;
+
+ if (model.isComputeSteps()) {
+ int nbSteps = tablesToExport.size() + associationsToExport.size();
+
+ if (withVoyages) {
+ nbSteps += model.getVoyageIds().length;
+ }
+
+ if (log.isInfoEnabled()) {
+ log.info("NB steps: " + nbSteps);
+ }
+
+ model.setNbSteps(nbSteps);
+ }
+
+ ExportService exportService = getService(ExportService.class);
+
+ exportTables(model, dir, tablesToExport, exportService);
+
+ exportAssociations(model, dir, associationsToExport, exportService);
+
+ if (withVoyages) {
+
+ exportVoyages(model, dir, exportService);
+ }
+ }
+
+ private void exportTables(ExportDbConfiguration model,
+ File dir,
+ List<TableMeta<EchoBaseEntityEnum>> tablesToExport,
+ ExportService exportService) {
+ for (TableMeta<EchoBaseEntityEnum> meta : tablesToExport) {
+
+ model.incrementsProgression();
+
+ File entryFile = new File(dir, meta.getFilename());
+ exportService.exportData(meta, entryFile);
+ }
+ }
+
+ private void exportAssociations(ExportDbConfiguration model,
+ File dir,
+ List<AssociationMeta<EchoBaseEntityEnum>> associationsToExport,
+ ExportService exportService) {
+ for (AssociationMeta<EchoBaseEntityEnum> associationMeta : associationsToExport) {
+
+ model.incrementsProgression();
+
+ File entryFile = new File(dir, associationMeta.getFilename());
+ exportService.exportData(associationMeta, entryFile);
+ }
+ }
+
+ private void exportVoyages(ExportDbConfiguration model,
+ File dir,
+ ExportService exportService) throws IOException {
+
+ Map<EchoBaseEntityEnum, TopiaCsvExports.EntityExportContext<EchoBaseEntityEnum>> contexts =
+ TopiaCsvExports.createReplicateEntityVisitorContexts(
+ exportService.getModelFactory(false),
+ getDbMeta().getDataTables(),
+ getDbMeta().getDataAssociations(),
+ dir);
+
+ ReplicateEntityVisitor visitor = new ReplicateEntityVisitor(
+ getDbMeta().getPersistenceHelper(),
+ contexts);
+
+ try {
+ for (String voyageId : model.getVoyageIds()) {
+
+ model.incrementsProgression();
+
+ Voyage voyage = getEntityById(Voyage.class, voyageId);
+ visitor.export(voyage);
+ }
+ } finally {
+
+ // close visitor to close export files
+ visitor.close();
+ }
+ }
+
+ /**
+ * entity visitor to export data to csv files.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.3
+ */
+ static class ReplicateEntityVisitor extends ExportEntityVisitor<EchoBaseEntityEnum> {
+
+ protected final Set<String> categoryIds;
+
+ @Override
+ protected boolean isNoChildVisit(String propertyName, TopiaEntity entity) {
+ return Result.PROPERTY_CATEGORY.equals(propertyName) &&
+ entity instanceof Result;
+ }
+
+ public ReplicateEntityVisitor(TopiaPersistenceHelper<EchoBaseEntityEnum> typeProvider,
+ Map<EchoBaseEntityEnum, TopiaCsvExports.EntityExportContext<EchoBaseEntityEnum>> entityExporters) {
+ super(typeProvider, entityExporters);
+ categoryIds = Sets.newHashSet();
+ }
+
+ @Override
+ public void visit(TopiaEntity entity, String propertyName,
+ Class<?> type, Object value) {
+ if (Result.PROPERTY_CATEGORY.equals(propertyName) &&
+ entity instanceof Result) {
+
+ // export category
+ try {
+ TopiaEntity topiaEntity = (TopiaEntity) value;
+ if (categoryIds.add(topiaEntity.getTopiaId())) {
+ // add this new category
+ topiaEntity.accept(this);
+ }
+
+ } catch (TopiaException e) {
+ if (log.isErrorEnabled()) {
+ log.error("Can not visit entity " + value, e);
+ }
+ }
+ }
+ }
+
+ @Override
+ public void close() throws IOException {
+ categoryIds.clear();
+ super.close();
+ }
+ }
+}
Property changes on: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/exportdb/strategy/AbstractExportDbStrategy.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/exportdb/strategy/AllExportDbStrategy.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/exportdb/strategy/AllExportDbStrategy.java (rev 0)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/exportdb/strategy/AllExportDbStrategy.java 2012-09-11 12:48:41 UTC (rev 644)
@@ -0,0 +1,56 @@
+package fr.ifremer.echobase.services.exportdb.strategy;
+
+/*
+ * #%L
+ * EchoBase :: Services
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2011 - 2012 Ifremer, Codelutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * 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.services.exportdb.ExportDbConfiguration;
+import org.nuiton.topia.persistence.metadata.AssociationMeta;
+import org.nuiton.topia.persistence.metadata.TableMeta;
+
+import java.io.File;
+import java.util.List;
+
+/**
+ * Export all db (referential + all data).
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 1.2
+ */
+public class AllExportDbStrategy extends AbstractExportDbStrategy {
+
+ @Override
+ protected boolean canExportVoyage() {
+ return false;
+ }
+
+ @Override
+ protected List<TableMeta<EchoBaseEntityEnum>> getTablesToExport(ExportDbConfiguration model) {
+ return getDbMeta().getAllTables();
+ }
+
+ @Override
+ protected List<AssociationMeta<EchoBaseEntityEnum>> getAssociationsToExport(ExportDbConfiguration model) {
+ return getDbMeta().getAllAssociations();
+ }
+}
Property changes on: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/exportdb/strategy/AllExportDbStrategy.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/exportdb/strategy/DataExportDbStrategy.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/exportdb/strategy/DataExportDbStrategy.java (rev 0)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/exportdb/strategy/DataExportDbStrategy.java 2012-09-11 12:48:41 UTC (rev 644)
@@ -0,0 +1,56 @@
+package fr.ifremer.echobase.services.exportdb.strategy;
+
+/*
+ * #%L
+ * EchoBase :: Services
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2011 - 2012 Ifremer, Codelutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * 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.services.exportdb.ExportDbConfiguration;
+import org.nuiton.topia.persistence.metadata.AssociationMeta;
+import org.nuiton.topia.persistence.metadata.TableMeta;
+
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * Export only selected data.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 1.2
+ */
+public class DataExportDbStrategy extends AbstractExportDbStrategy {
+
+ @Override
+ protected boolean canExportVoyage() {
+ return true;
+ }
+
+ @Override
+ protected List<TableMeta<EchoBaseEntityEnum>> getTablesToExport(ExportDbConfiguration model) {
+ return Collections.emptyList();
+ }
+
+ @Override
+ protected List<AssociationMeta<EchoBaseEntityEnum>> getAssociationsToExport(ExportDbConfiguration model) {
+ return Collections.emptyList();
+ }
+}
Property changes on: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/exportdb/strategy/DataExportDbStrategy.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/exportdb/strategy/ReferentialAndDataExportDbStrategy.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/exportdb/strategy/ReferentialAndDataExportDbStrategy.java (rev 0)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/exportdb/strategy/ReferentialAndDataExportDbStrategy.java 2012-09-11 12:48:41 UTC (rev 644)
@@ -0,0 +1,55 @@
+package fr.ifremer.echobase.services.exportdb.strategy;
+
+/*
+ * #%L
+ * EchoBase :: Services
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2011 - 2012 Ifremer, Codelutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * 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.services.exportdb.ExportDbConfiguration;
+import org.nuiton.topia.persistence.metadata.AssociationMeta;
+import org.nuiton.topia.persistence.metadata.TableMeta;
+
+import java.util.List;
+
+/**
+ * Export referential + selected data.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 1.2
+ */
+public class ReferentialAndDataExportDbStrategy extends AbstractExportDbStrategy {
+
+ @Override
+ protected boolean canExportVoyage() {
+ return true;
+ }
+
+ @Override
+ protected List<TableMeta<EchoBaseEntityEnum>> getTablesToExport(ExportDbConfiguration model) {
+ return getDbMeta().getReferenceTables();
+ }
+
+ @Override
+ protected List<AssociationMeta<EchoBaseEntityEnum>> getAssociationsToExport(ExportDbConfiguration model) {
+ return getDbMeta().getReferenceAssociations();
+ }
+}
Property changes on: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/exportdb/strategy/ReferentialAndDataExportDbStrategy.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/exportdb/strategy/ReferentialExportDbStrategy.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/exportdb/strategy/ReferentialExportDbStrategy.java (rev 0)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/exportdb/strategy/ReferentialExportDbStrategy.java 2012-09-11 12:48:41 UTC (rev 644)
@@ -0,0 +1,60 @@
+package fr.ifremer.echobase.services.exportdb.strategy;
+
+/*
+ * #%L
+ * EchoBase :: Services
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2011 - 2012 Ifremer, Codelutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * 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.data.Voyage;
+import fr.ifremer.echobase.services.exportdb.ExportDbConfiguration;
+import fr.ifremer.echobase.services.exportdb.ExportDbService;
+import fr.ifremer.echobase.services.exportdb.ExportService;
+import org.nuiton.topia.persistence.metadata.AssociationMeta;
+import org.nuiton.topia.persistence.metadata.TableMeta;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.List;
+
+/**
+ * Export only referential.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 1.2
+ */
+public class ReferentialExportDbStrategy extends AbstractExportDbStrategy {
+
+ @Override
+ protected boolean canExportVoyage() {
+ return false;
+ }
+
+ @Override
+ protected List<TableMeta<EchoBaseEntityEnum>> getTablesToExport(ExportDbConfiguration model) {
+ return getDbMeta().getReferenceTables();
+ }
+
+ @Override
+ protected List<AssociationMeta<EchoBaseEntityEnum>> getAssociationsToExport(ExportDbConfiguration model) {
+ return getDbMeta().getReferenceAssociations();
+ }
+}
Property changes on: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/exportdb/strategy/ReferentialExportDbStrategy.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Deleted: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdb/DefaultImportStrategy.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdb/DefaultImportStrategy.java 2012-09-10 16:00:37 UTC (rev 643)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdb/DefaultImportStrategy.java 2012-09-11 12:48:41 UTC (rev 644)
@@ -1,111 +0,0 @@
-package fr.ifremer.echobase.services.importdb;
-/*
- * #%L
- * EchoBase :: Services
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2011 - 2012 Ifremer, Codelutin
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * 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.persistence.EchoBasePersistenceHelper;
-import org.nuiton.topia.TopiaContext;
-import org.nuiton.topia.TopiaException;
-import org.nuiton.topia.persistence.TopiaDAO;
-import org.nuiton.topia.persistence.TopiaEntity;
-import org.nuiton.topia.persistence.csv.in.CsvImportResult;
-import org.nuiton.topia.persistence.csv.in.ImportModelFactory;
-import org.nuiton.topia.persistence.csv.in.ImportStrategy;
-import org.nuiton.topia.persistence.csv.in.TopiaCsvImports;
-import org.nuiton.topia.persistence.metadata.AssociationMeta;
-import org.nuiton.topia.persistence.metadata.TableMeta;
-import org.nuiton.util.csv.Import;
-import org.nuiton.util.csv.ImportToMap;
-
-/**
- * TODO
- *
- * @author tchemit <chemit(a)codelutin.com>
- * @since 1.1
- */
-public class DefaultImportStrategy implements ImportStrategy<EchoBaseEntityEnum> {
-
- private final TopiaContext tx;
-
- private final EchoBasePersistenceHelper persistenceHelper;
-
- private final int nbRowBuffer;
-
- private final ImportModelFactory<EchoBaseEntityEnum> modelFactory;
-
- public DefaultImportStrategy(ImportModelFactory<EchoBaseEntityEnum> modelFactory,
- TopiaContext tx,
- EchoBasePersistenceHelper persistenceHelper,
- int nbRowBuffer) {
- this.tx = tx;
- this.persistenceHelper = persistenceHelper;
- this.nbRowBuffer = nbRowBuffer;
- this.modelFactory = modelFactory;
- }
-
- public ImportModelFactory<EchoBaseEntityEnum> getModelFactory() {
- return modelFactory;
- }
-
- @Override
- public <E extends TopiaEntity> void importTable(TableMeta<EchoBaseEntityEnum> meta,
- Import<E> importer,
- CsvImportResult<EchoBaseEntityEnum> csvResult) throws TopiaException {
- TopiaDAO<E> dao = persistenceHelper.getDAO(tx, meta.getSource());
-
- TopiaCsvImports.importAllEntities(dao, meta, importer, csvResult);
- }
-
- @Override
- public <E extends TopiaEntity> Iterable<E> importTableAndReturnThem(TableMeta<EchoBaseEntityEnum> meta,
- Import<E> importer,
- CsvImportResult<EchoBaseEntityEnum> csvResult) throws TopiaException {
- TopiaDAO<E> dao = persistenceHelper.getDAO(tx, meta.getSource());
-
- Iterable<E> result = TopiaCsvImports.importAllEntitiesAndReturnThem(
- dao, meta, importer, csvResult);
- return result;
-
- }
-
- @Override
- public void importAssociation(AssociationMeta<EchoBaseEntityEnum> meta,
- ImportToMap importer,
- CsvImportResult<EchoBaseEntityEnum> csvResult) throws TopiaException {
-
- if (getModelFactory().isNMAssociationMeta(meta)) {
- TopiaCsvImports.importNMAssociation(tx,
- meta,
- importer,
- csvResult,
- nbRowBuffer);
- } else {
- TopiaCsvImports.importAssociation(tx,
- meta,
- importer,
- csvResult,
- nbRowBuffer);
- }
-
- }
-}
Added: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdb/EchoBaseImportModelFactory.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdb/EchoBaseImportModelFactory.java (rev 0)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdb/EchoBaseImportModelFactory.java 2012-09-11 12:48:41 UTC (rev 644)
@@ -0,0 +1,114 @@
+package fr.ifremer.echobase.services.importdb;
+
+/*
+ * #%L
+ * EchoBase :: Services
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2011 - 2012 Ifremer, Codelutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * 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.services.DbEditorService;
+import fr.ifremer.echobase.services.EchoBaseServiceSupport;
+import org.nuiton.topia.persistence.TopiaEntity;
+import org.nuiton.topia.persistence.csv.EntityCsvModel;
+import org.nuiton.topia.persistence.csv.in.EntityAssociationImportModel;
+import org.nuiton.topia.persistence.csv.in.ImportModelFactory;
+import org.nuiton.topia.persistence.metadata.AssociationMeta;
+import org.nuiton.topia.persistence.metadata.ColumnMeta;
+import org.nuiton.topia.persistence.metadata.TableMeta;
+import org.nuiton.util.csv.ImportModel;
+
+import java.util.Collection;
+import java.util.Map;
+
+/**
+ * Import model factory.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 1.2
+ */
+public class EchoBaseImportModelFactory implements ImportModelFactory<EchoBaseEntityEnum> {
+
+ public static ImportModelFactory<EchoBaseEntityEnum> newFactory(EchoBaseServiceSupport service) {
+ return new EchoBaseImportModelFactory(
+ service.getService(DbEditorService.class),
+ service.getConfiguration().getCsvSeparator()
+ );
+ }
+
+ protected final DbEditorService service;
+
+ protected final char csvSeparator;
+
+ public EchoBaseImportModelFactory(DbEditorService service,
+ char csvSeparator) {
+ this.service = service;
+ this.csvSeparator = csvSeparator;
+ }
+
+
+ @Override
+ public <E extends TopiaEntity> ImportModel<E> buildForImport(TableMeta<EchoBaseEntityEnum> meta) {
+
+ EntityCsvModel<EchoBaseEntityEnum, E> model = EntityCsvModel.newModel(
+ csvSeparator,
+ meta,
+ TopiaEntity.TOPIA_ID
+ );
+
+ for (ColumnMeta columnMeta : meta) {
+ String propertyName = columnMeta.getName();
+ Class<?> type = columnMeta.getType();
+ if (columnMeta.isFK()) {
+
+ Class<TopiaEntity> entityType = (Class<TopiaEntity>) type;
+ Collection<TopiaEntity> universe = service.getForeignData(entityType);
+ model.addForeignKeyForImport(propertyName, entityType, universe);
+ } else {
+ model.addDefaultColumn(propertyName, type);
+ }
+ }
+ return model;
+ }
+
+ @Override
+ public ImportModel<Map<String, Object>> buildForImport(AssociationMeta<EchoBaseEntityEnum> meta) {
+
+ ImportModel<Map<String, Object>> model =
+ EntityAssociationImportModel.newImportModel(
+ csvSeparator,
+ meta
+ );
+ return model;
+ }
+
+ @Override
+ public boolean isNMAssociationMeta(AssociationMeta<EchoBaseEntityEnum> meta) {
+ EchoBaseEntityEnum source = meta.getSource();
+ EchoBaseEntityEnum target = meta.getTarget();
+ boolean result = false;
+ if (source == EchoBaseEntityEnum.Voyage && target == EchoBaseEntityEnum.Echotype ||
+ source == EchoBaseEntityEnum.Echotype && target == EchoBaseEntityEnum.Species ||
+ source == EchoBaseEntityEnum.Voyage && target == EchoBaseEntityEnum.Strata) {
+ result = true;
+ }
+ return result;
+ }
+}
Property changes on: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdb/EchoBaseImportModelFactory.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/importdb/ImportDbConfiguration.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdb/ImportDbConfiguration.java 2012-09-10 16:00:37 UTC (rev 643)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdb/ImportDbConfiguration.java 2012-09-11 12:48:41 UTC (rev 644)
@@ -50,6 +50,10 @@
protected ImportDbMode importDbMode;
+ protected boolean computeSteps = true;
+
+ protected boolean commitAfterEachFile;
+
public ImportDbConfiguration(ProgressionModel progressionModel,
Locale locale) {
super(progressionModel);
@@ -80,6 +84,22 @@
this.importDbMode = importDbMode;
}
+ public boolean isComputeSteps() {
+ return computeSteps;
+ }
+
+ public void setComputeSteps(boolean computeSteps) {
+ this.computeSteps = computeSteps;
+ }
+
+ public boolean isCommitAfterEachFile() {
+ return commitAfterEachFile;
+ }
+
+ public void setCommitAfterEachFile(boolean commitAfterEachFile) {
+ this.commitAfterEachFile = commitAfterEachFile;
+ }
+
@Override
public void destroy() throws IOException {
if (workingDirectory != null) {
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdb/ImportDbMode.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdb/ImportDbMode.java 2012-09-10 16:00:37 UTC (rev 643)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdb/ImportDbMode.java 2012-09-11 12:48:41 UTC (rev 644)
@@ -40,7 +40,7 @@
REFERENTIAL(n_("echobase.common.importDbMode.referential")),
/** Import only data. */
- VOYAGE(ImportType.VOYAGE.getI18nKey()),
+ DATA(n_("echobase.common.importDbMode.data")),
/** Import what you want. */
FREE(n_("echobase.common.importDbMode.free"));
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdb/ImportDbService.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdb/ImportDbService.java 2012-09-10 16:00:37 UTC (rev 643)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdb/ImportDbService.java 2012-09-11 12:48:41 UTC (rev 644)
@@ -23,37 +23,17 @@
*/
package fr.ifremer.echobase.services.importdb;
-import com.google.common.collect.Lists;
-import fr.ifremer.echobase.entities.EchoBaseEntityEnum;
+import fr.ifremer.echobase.EchoBaseTechnicalException;
import fr.ifremer.echobase.entities.EchoBaseUser;
-import fr.ifremer.echobase.entities.EntityModificationLog;
-import fr.ifremer.echobase.entities.ImportLog;
-import fr.ifremer.echobase.entities.ImportType;
-import fr.ifremer.echobase.entities.data.Voyage;
-import fr.ifremer.echobase.persistence.EchoBaseDbMeta;
-import fr.ifremer.echobase.services.DecoratorService;
import fr.ifremer.echobase.services.EchoBaseServiceSupport;
import fr.ifremer.echobase.services.importdata.ImportException;
-import org.apache.commons.io.IOUtils;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import fr.ifremer.echobase.services.importdb.strategy.AbstractImportDbStrategy;
+import fr.ifremer.echobase.services.importdb.strategy.DataImportDbStrategy;
+import fr.ifremer.echobase.services.importdb.strategy.FreeImportDbStrategy;
+import fr.ifremer.echobase.services.importdb.strategy.ReferentialImportDbStrategy;
import org.nuiton.topia.TopiaException;
-import org.nuiton.topia.persistence.TopiaDAO;
-import org.nuiton.topia.persistence.csv.in.CsvImportResult;
-import org.nuiton.topia.persistence.csv.in.TopiaCsvImports;
-import org.nuiton.topia.persistence.metadata.AssociationMeta;
-import org.nuiton.topia.persistence.metadata.TableMeta;
-import org.nuiton.util.TimeLog;
-import org.nuiton.util.decorator.Decorator;
-import java.io.File;
import java.io.IOException;
-import java.io.InputStreamReader;
-import java.io.Reader;
-import java.util.List;
-import java.util.Map;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipFile;
/**
* Service to import a complete db.
@@ -63,434 +43,35 @@
*/
public class ImportDbService extends EchoBaseServiceSupport {
- /** Logger. */
- private static final Log log =
- LogFactory.getLog(ImportDbService.class);
+ public void doImport(ImportDbConfiguration model,
+ EchoBaseUser user) throws ImportException {
- public static final TimeLog TIME_LOG = new TimeLog(ImportDbService.class);
+ ImportDbMode importDbMode = model.getImportDbMode();
- /**
- * Import a referential db from the given echobase file.
- *
- * @param model model of the db import operation
- * @param user user which perform the import
- * @throws IOException if any io exception while import
- * @throws TopiaException if any pb while topia treatment
- * @since 1.2
- */
- public void importReferential(ImportDbConfiguration model,
- EchoBaseUser user) throws IOException, TopiaException, ImportException {
+ AbstractImportDbStrategy strategy;
+ switch (importDbMode) {
- File file = model.getInput().getFile();
-
- ZipFile zipFile = new ZipFile(file);
- try {
-
- List<String> missingEntries = Lists.newArrayList();
-
- EchoBaseDbMeta dbMeta = getDbMeta();
-
- Map<TableMeta<EchoBaseEntityEnum>, ZipEntry> tables =
- getTables(zipFile, missingEntries, dbMeta);
-
- Map<AssociationMeta<EchoBaseEntityEnum>, ZipEntry> associations =
- getAssociations(zipFile, missingEntries, dbMeta);
-
- int size = tables.size() + associations.size();
- model.setNbSteps(size + missingEntries.size());
-
- // check that contains only referential entries
- List<EchoBaseEntityEnum> badTableTypes = Lists.newArrayList();
- List<TableMeta<EchoBaseEntityEnum>> dataTables = dbMeta.getDataTables();
- for (TableMeta<EchoBaseEntityEnum> tableMetas : tables.keySet()) {
- if (dataTables.contains(tableMetas)) {
- badTableTypes.add(tableMetas.getSource());
- }
- }
-
- if (!badTableTypes.isEmpty()) {
- throw new ImportException(
- "In referential import, can not accept " +
- "data type, but found some data types: " + badTableTypes);
- }
-
- List<EchoBaseEntityEnum> badAssociationTypes = Lists.newArrayList();
- List<AssociationMeta<EchoBaseEntityEnum>> associationTables = dbMeta.getDataAssociations();
- for (AssociationMeta<EchoBaseEntityEnum> tableMetas : associations.keySet()) {
- if (associationTables.contains(tableMetas)) {
- badAssociationTypes.add(tableMetas.getSource());
- }
- }
- if (!badAssociationTypes.isEmpty()) {
- throw new ImportException(
- "In referential import, can not accept " +
- "data type, but found some data associations files: " +
- badAssociationTypes);
- }
-
- for (String missingEntry : missingEntries) {
-
- // skip thoses not found entries
- model.incrementsProgression();
-
- if (log.isInfoEnabled()) {
- log.info("Skip not found entry " + missingEntry);
- }
- }
-
- DefaultImportStrategy strategy = new DefaultImportStrategy(
- getService(ImportService.class),
- getTransaction(),
- dbMeta.getPersistenceHelper(),
- 1000
- );
-
- importTables(strategy, model, zipFile, tables, false, false);
-
- importAssociations(strategy, model, zipFile, associations);
-
- // add a log entry of import db
- if (log.isInfoEnabled()) {
- log.info("Import done with user " + user.getEmail());
- }
- TopiaDAO<EntityModificationLog> dao =
- getDAO(EntityModificationLog.class);
-
- dao.create(
- EntityModificationLog.PROPERTY_ENTITY_TYPE, "Import db",
- EntityModificationLog.PROPERTY_ENTITY_ID, "Complete db",
- EntityModificationLog.PROPERTY_MODIFICATION_USER, user.getEmail(),
- EntityModificationLog.PROPERTY_MODIFICATION_DATE, newDate(),
- EntityModificationLog.PROPERTY_MODIFICATION_TEXT, "import db from file " + file.getName()
- );
- commitTransaction("Could not commit db import from file " + file);
-
- } finally {
- zipFile.close();
+ case REFERENTIAL:
+ strategy = getService(ReferentialImportDbStrategy.class);
+ break;
+ case DATA:
+ strategy = getService(DataImportDbStrategy.class);
+ break;
+ case FREE:
+ strategy = getService(FreeImportDbStrategy.class);
+ break;
+ default:
+ throw new EchoBaseTechnicalException(
+ "Can not deal with this importDbMode: " + importDbMode);
}
- }
- /**
- * Import a legacy data db from the given echobase file.
- *
- * @param model model of the db import operation
- * @param user user which perform the import
- * @throws IOException if any io exception while import
- * @throws TopiaException if any pb while topia treatment
- * @since 1.2
- */
- public void importLegacyData(ImportDbConfiguration model,
- EchoBaseUser user) throws IOException, TopiaException, ImportException {
-
- File file = model.getInput().getFile();
-
- ZipFile zipFile = new ZipFile(file);
try {
-
- List<String> missingEntries = Lists.newArrayList();
-
- EchoBaseDbMeta dbMeta = getDbMeta();
-
- Map<TableMeta<EchoBaseEntityEnum>, ZipEntry> tables = getTables(zipFile, missingEntries, dbMeta);
-
- Map<AssociationMeta<EchoBaseEntityEnum>, ZipEntry> associations = getAssociations(zipFile, missingEntries, dbMeta);
-
- int size = tables.size() + associations.size();
- model.setNbSteps(size + missingEntries.size());
-
- // check that contains only referential entries
- List<EchoBaseEntityEnum> badTableTypes = Lists.newArrayList();
- List<TableMeta<EchoBaseEntityEnum>> dataTables = dbMeta.getReferenceTables();
- for (TableMeta<EchoBaseEntityEnum> tableMetas : tables.keySet()) {
- if (dataTables.contains(tableMetas)) {
- badTableTypes.add(tableMetas.getSource());
- }
- }
-
- if (!badTableTypes.isEmpty()) {
- throw new ImportException(
- "In data import, can not accept " +
- "referential type, but found some referential files: " + badTableTypes);
- }
-
- List<EchoBaseEntityEnum> badAssociationTypes = Lists.newArrayList();
- List<AssociationMeta<EchoBaseEntityEnum>> associationTables = dbMeta.getReferenceAssociations();
- for (AssociationMeta<EchoBaseEntityEnum> tableMetas : associations.keySet()) {
- if (associationTables.contains(tableMetas)) {
- badAssociationTypes.add(tableMetas.getSource());
- }
- }
- if (!badAssociationTypes.isEmpty()) {
- throw new ImportException(
- "In data import, can not accept " +
- "referential type, but found some referential associations files: " +
- badAssociationTypes);
- }
-
- for (String missingEntry : missingEntries) {
-
- // skip thoses not found entries
- model.incrementsProgression();
-
- if (log.isInfoEnabled()) {
- log.info("Skip not found entry " + missingEntry);
- }
- }
-
- DefaultImportStrategy strategy = new DefaultImportStrategy(
- getService(ImportService.class),
- getTransaction(),
- dbMeta.getPersistenceHelper(),
- 1000
- );
-
- Iterable<Voyage> importedVoyages =
- importTables(strategy,
- model,
- zipFile,
- tables,
- false,
- true);
-
- importAssociations(strategy, model, zipFile, associations);
-
- // add a log entry of import db
- if (log.isInfoEnabled()) {
- log.info("Import done with user " + user.getEmail());
- }
-
- TopiaDAO<ImportLog> importLogDAO = getDAO(ImportLog.class);
-
- Decorator<Voyage> decorator = getService(DecoratorService.class).getDecorator(getLocale(), Voyage.class, null);
- for (Voyage importedVoyage : importedVoyages) {
-
- // create a importLog entry
- ImportLog importLog = importLogDAO.create(
- ImportLog.PROPERTY_IMPORT_TYPE, ImportType.VOYAGE,
- ImportLog.PROPERTY_IMPORT_USER, user.getEmail(),
- ImportLog.PROPERTY_IMPORT_DATE, newDate(),
- ImportLog.PROPERTY_IMPORT_TEXT, "import legacy voyage " + decorator.toString(importedVoyage) + " from file " + file.getName()
- );
- importLog.addImportId(importedVoyage.getTopiaId());
- }
-
- TopiaDAO<EntityModificationLog> dao =
- getDAO(EntityModificationLog.class);
-
- dao.create(
- EntityModificationLog.PROPERTY_ENTITY_TYPE, "Import db",
- EntityModificationLog.PROPERTY_ENTITY_ID, "Complete db",
- EntityModificationLog.PROPERTY_MODIFICATION_USER, user.getEmail(),
- EntityModificationLog.PROPERTY_MODIFICATION_DATE, newDate(),
- EntityModificationLog.PROPERTY_MODIFICATION_TEXT, "import db from file " + file.getName()
- );
- commitTransaction("Could not commit db import from file " + file);
-
- } finally {
- zipFile.close();
+ strategy.doImport(model, user);
+ } catch (IOException e) {
+ throw new ImportException("Could not import db", e);
+ } catch (TopiaException e) {
+ throw new ImportException("Could not import db", e);
}
}
- /**
- * Import a complete db from the given echobase file.
- *
- * @param model model of the db import operation
- * @param user user which perform the import
- * @param computeSteps flag to compute stesp inside this method
- * @param commitAfterEachFile flag to commit after each imported file
- * @throws IOException if any io exception while import
- * @throws TopiaException if any pb while topia treatment
- */
- public void importDb(ImportDbConfiguration model,
- EchoBaseUser user,
- boolean computeSteps,
- boolean commitAfterEachFile) throws IOException, TopiaException {
-
- File file = model.getInput().getFile();
-
- ZipFile zipFile = new ZipFile(file);
- try {
-
- List<String> missingEntries = Lists.newArrayList();
-
- EchoBaseDbMeta dbMeta = getDbMeta();
-
- Map<TableMeta<EchoBaseEntityEnum>, ZipEntry> tables = getTables(zipFile, missingEntries, dbMeta);
-
- Map<AssociationMeta<EchoBaseEntityEnum>, ZipEntry> associations = getAssociations(zipFile, missingEntries, dbMeta);
-
- if (computeSteps) {
- int size = tables.size() + associations.size();
- model.setNbSteps(size + missingEntries.size());
- }
-
- for (String missingEntry : missingEntries) {
-
- // skip thoses not found entries
- model.incrementsProgression();
-
- if (log.isInfoEnabled()) {
- log.info("Skip not found entry " + missingEntry);
- }
- }
-
- DefaultImportStrategy strategy = new DefaultImportStrategy(
- getService(ImportService.class),
- getTransaction(),
- dbMeta.getPersistenceHelper(),
- 1000
- );
-
- importTables(strategy, model, zipFile, tables, commitAfterEachFile, false);
-
- importAssociations(strategy, model, zipFile, associations);
-
- // add a log entry of import db
- if (log.isInfoEnabled()) {
- log.info("Import done with user " + user.getEmail());
- }
- TopiaDAO<EntityModificationLog> dao =
- getDAO(EntityModificationLog.class);
-
- dao.create(
- EntityModificationLog.PROPERTY_ENTITY_TYPE, "Import db",
- EntityModificationLog.PROPERTY_ENTITY_ID, "Complete db",
- EntityModificationLog.PROPERTY_MODIFICATION_USER, user.getEmail(),
- EntityModificationLog.PROPERTY_MODIFICATION_DATE, newDate(),
- EntityModificationLog.PROPERTY_MODIFICATION_TEXT, "import db from file " + file.getName()
- );
- commitTransaction("Could not commit db import from file " + file);
-
- } finally {
- zipFile.close();
- }
- }
-
- private Map<TableMeta<EchoBaseEntityEnum>, ZipEntry> getTables(ZipFile zipFile,
- List<String> missingEntries,
- EchoBaseDbMeta dbMeta) {
- return TopiaCsvImports.discoverEntries(
- "echobase/", dbMeta.getAllTables(),
- zipFile, missingEntries);
- }
-
- private Map<AssociationMeta<EchoBaseEntityEnum>, ZipEntry> getAssociations(ZipFile zipFile,
- List<String> missingEntries,
- EchoBaseDbMeta dbMeta) {
- return TopiaCsvImports.discoverEntries(
- "echobase/", dbMeta.getAllAssociations(),
- zipFile, missingEntries);
- }
-
- private Iterable<Voyage> importTables(DefaultImportStrategy strategy,
- ImportDbConfiguration model,
- ZipFile zipFile,
- Map<TableMeta<EchoBaseEntityEnum>, ZipEntry> entriestoConsume,
- boolean commitAfterEachFile,
- boolean keepVoyages) throws IOException, TopiaException {
-
- Iterable<Voyage> result = null;
-
- for (Map.Entry<TableMeta<EchoBaseEntityEnum>, ZipEntry> entry :
- entriestoConsume.entrySet()) {
-
- model.incrementsProgression();
-
- TableMeta<EchoBaseEntityEnum> entryDef = entry.getKey();
- ZipEntry value = entry.getValue();
- CsvImportResult<EchoBaseEntityEnum> csvResult = CsvImportResult.newResult(
- entryDef.getSource(),
- value.getName(),
- false
- );
-
- Reader reader = IOUtils.toBufferedReader(
- new InputStreamReader(zipFile.getInputStream(value)));
- try {
-
- long s0 = TimeLog.getTime();
-
- if (log.isInfoEnabled()) {
- log.info("Will import " + entryDef);
- }
-
- if (EchoBaseEntityEnum.Voyage == entryDef.getSource() &&
- keepVoyages) {
- result = TopiaCsvImports.importTableAndReturn(reader,
- strategy,
- entryDef,
- csvResult
- );
- } else {
- TopiaCsvImports.importTable(reader,
- strategy,
- entryDef,
- csvResult
- );
- }
-
- s0 = TIME_LOG.log(s0, "importFile::done");
-
- flushTransaction("Could not flush " + entryDef + " to db.");
-
- TIME_LOG.log(s0, "importFile::flushTransaction");
- } finally {
- reader.close();
-
- if (commitAfterEachFile) {
- commitTransaction(
- "Could not commit db import from file " +
- zipFile.getName() + "#" + entryDef.getFilename());
- }
-
- clearCache();
- }
- }
-
- return result;
- }
-
- private void importAssociations(DefaultImportStrategy strategy,
- ImportDbConfiguration model,
- ZipFile zipFile,
- Map<AssociationMeta<EchoBaseEntityEnum>, ZipEntry> associations) throws IOException, TopiaException {
-
- for (Map.Entry<AssociationMeta<EchoBaseEntityEnum>, ZipEntry> entry :
- associations.entrySet()) {
-
- model.incrementsProgression();
-
- AssociationMeta<EchoBaseEntityEnum> entryDef = entry.getKey();
- ZipEntry value = entry.getValue();
-
- CsvImportResult<EchoBaseEntityEnum> csvResult = CsvImportResult.newResult(
- entryDef.getSource(),
- value.getName(),
- false
- );
-
- Reader reader = IOUtils.toBufferedReader(new InputStreamReader(zipFile.getInputStream(value)));
- try {
- long s0 = TimeLog.getTime();
-
- if (log.isInfoEnabled()) {
- log.info("Will import " + entryDef);
- }
-
- TopiaCsvImports.importAssociation(reader,
- strategy,
- entryDef,
- csvResult);
-
- s0 = TIME_LOG.log(s0, "importFile::done");
-
- flushTransaction("Could not flush associations to db.");
-
- TIME_LOG.log(s0, "importFile::flushTransaction");
- } finally {
- reader.close();
- }
- }
- }
-
}
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdb/ImportService.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdb/ImportService.java 2012-09-10 16:00:37 UTC (rev 643)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdb/ImportService.java 2012-09-11 12:48:41 UTC (rev 644)
@@ -33,12 +33,8 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.nuiton.topia.persistence.TopiaEntity;
-import org.nuiton.topia.persistence.csv.EntityCsvModel;
import org.nuiton.topia.persistence.csv.in.CsvImportResult;
-import org.nuiton.topia.persistence.csv.in.EntityAssociationImportModel;
import org.nuiton.topia.persistence.csv.in.ImportModelFactory;
-import org.nuiton.topia.persistence.metadata.AssociationMeta;
-import org.nuiton.topia.persistence.metadata.ColumnMeta;
import org.nuiton.topia.persistence.metadata.TableMeta;
import org.nuiton.util.csv.Import;
import org.nuiton.util.csv.ImportModel;
@@ -46,8 +42,6 @@
import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
-import java.util.Collection;
-import java.util.Map;
/**
* To import datas from csv files into the db.
@@ -55,71 +49,24 @@
* @author tchemit <chemit(a)codelutin.com>
* @since 0.2
*/
-public class ImportService extends EchoBaseServiceSupport implements ImportModelFactory<EchoBaseEntityEnum> {
+public class ImportService extends EchoBaseServiceSupport {
/** Logger. */
private static final Log log = LogFactory.getLog(ImportService.class);
- @Override
- public <E extends TopiaEntity> ImportModel<E> buildForImport(TableMeta<EchoBaseEntityEnum> meta) {
-
- DbEditorService service = getService(DbEditorService.class);
-
- EntityCsvModel<EchoBaseEntityEnum, E> model = EntityCsvModel.newModel(
- getConfiguration().getCsvSeparator(),
- meta,
- TopiaEntity.TOPIA_ID
- );
-
- for (ColumnMeta columnMeta : meta) {
- String propertyName = columnMeta.getName();
- Class<?> type = columnMeta.getType();
- if (columnMeta.isFK()) {
-
- Class<TopiaEntity> entityType = (Class<TopiaEntity>) type;
- Collection<TopiaEntity> universe = service.getForeignData(entityType);
- model.addForeignKeyForImport(propertyName, entityType, universe);
- } else {
- model.addDefaultColumn(propertyName, type);
- }
- }
- return model;
- }
-
- @Override
- public ImportModel<Map<String, Object>> buildForImport(AssociationMeta<EchoBaseEntityEnum> meta) {
-
- ImportModel<Map<String, Object>> model =
- EntityAssociationImportModel.newImportModel(
- getConfiguration().getCsvSeparator(),
- meta
- );
- return model;
- }
-
- @Override
- public boolean isNMAssociationMeta(AssociationMeta<EchoBaseEntityEnum> meta) {
- EchoBaseEntityEnum source = meta.getSource();
- EchoBaseEntityEnum target = meta.getTarget();
- boolean result = false;
- if (source == EchoBaseEntityEnum.Voyage && target == EchoBaseEntityEnum.Echotype ||
- source == EchoBaseEntityEnum.Echotype && target == EchoBaseEntityEnum.Species ||
- source == EchoBaseEntityEnum.Voyage && target == EchoBaseEntityEnum.Strata) {
- result = true;
- }
- return result;
- }
-
public CsvImportResult<EchoBaseEntityEnum> importDatas(EchoBaseEntityEnum entityType,
String importFileName,
File importFile,
boolean createIfNotFound,
EchoBaseUser user) throws IOException {
+ ImportModelFactory<EchoBaseEntityEnum> importModelFactory =
+ EchoBaseImportModelFactory.newFactory(this);
+
DbEditorService service = getService(DbEditorService.class);
TableMeta<EchoBaseEntityEnum> meta = service.getTableMeta(entityType);
- ImportModel<TopiaEntity> csvModel = buildForImport(meta);
+ ImportModel<TopiaEntity> csvModel = importModelFactory.buildForImport(meta);
String messagePrefix = "Import du fichier " + importFileName + " le " + newDate();
CsvImportResult<EchoBaseEntityEnum> result = CsvImportResult.newResult(
Added: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdb/strategy/AbstractImportDbStrategy.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdb/strategy/AbstractImportDbStrategy.java (rev 0)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdb/strategy/AbstractImportDbStrategy.java 2012-09-11 12:48:41 UTC (rev 644)
@@ -0,0 +1,277 @@
+package fr.ifremer.echobase.services.importdb.strategy;
+
+/*
+ * #%L
+ * EchoBase :: Services
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2011 - 2012 Ifremer, Codelutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * 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.Lists;
+import fr.ifremer.echobase.entities.EchoBaseEntityEnum;
+import fr.ifremer.echobase.entities.EchoBaseUser;
+import fr.ifremer.echobase.entities.EntityModificationLog;
+import fr.ifremer.echobase.entities.ImportLog;
+import fr.ifremer.echobase.entities.data.Voyage;
+import fr.ifremer.echobase.persistence.EchoBaseDbMeta;
+import fr.ifremer.echobase.services.EchoBaseServiceSupport;
+import fr.ifremer.echobase.services.importdata.ImportException;
+import fr.ifremer.echobase.services.importdb.EchoBaseImportModelFactory;
+import fr.ifremer.echobase.services.importdb.ImportDbConfiguration;
+import org.apache.commons.io.IOUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.nuiton.topia.TopiaException;
+import org.nuiton.topia.persistence.TopiaDAO;
+import org.nuiton.topia.persistence.csv.in.CsvImportResult;
+import org.nuiton.topia.persistence.csv.in.ImportStrategy;
+import org.nuiton.topia.persistence.csv.in.TopiaCsvImports;
+import org.nuiton.topia.persistence.metadata.AssociationMeta;
+import org.nuiton.topia.persistence.metadata.TableMeta;
+import org.nuiton.util.TimeLog;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.util.List;
+import java.util.Map;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipFile;
+
+/**
+ * Abstract import db strategy.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 1.2
+ */
+public abstract class AbstractImportDbStrategy extends EchoBaseServiceSupport {
+
+ /** Logger. */
+ private static final Log log =
+ LogFactory.getLog(AbstractImportDbStrategy.class);
+
+ public static final TimeLog TIME_LOG =
+ new TimeLog(AbstractImportDbStrategy.class);
+
+ public final void doImport(ImportDbConfiguration model,
+ EchoBaseUser user) throws IOException, ImportException, TopiaException {
+ File file = model.getInput().getFile();
+
+ ZipFile zipFile = new ZipFile(file);
+ try {
+
+ List<String> missingEntries = Lists.newArrayList();
+
+ EchoBaseDbMeta dbMeta = getDbMeta();
+
+ Map<TableMeta<EchoBaseEntityEnum>, ZipEntry> tables =
+ TopiaCsvImports.discoverEntries(
+ "echobase/", dbMeta.getAllTables(),
+ zipFile, missingEntries);
+
+ validateTableEntries(dbMeta, tables);
+
+ Map<AssociationMeta<EchoBaseEntityEnum>, ZipEntry> associations =
+ TopiaCsvImports.discoverEntries(
+ "echobase/", dbMeta.getAllAssociations(),
+ zipFile, missingEntries);
+
+ validateAssociationEntries(dbMeta, associations);
+
+ if (model.isComputeSteps()) {
+ int size = tables.size() + associations.size();
+ model.setNbSteps(size + missingEntries.size());
+ }
+
+ for (String missingEntry : missingEntries) {
+
+ // skip thoses not found entries
+ model.incrementsProgression();
+
+ if (log.isInfoEnabled()) {
+ log.info("Skip not found entry " + missingEntry);
+ }
+ }
+
+ ImportStrategy<EchoBaseEntityEnum> strategy = new EchoBaseImportStrategy(
+ EchoBaseImportModelFactory.newFactory(this),
+ getTransaction(),
+ dbMeta.getPersistenceHelper(),
+ 1000
+ );
+
+ Iterable<Voyage> importedVoyages = importTables(strategy,
+ model,
+ zipFile,
+ tables
+ );
+
+ importAssociations(strategy, model, zipFile, associations);
+
+ // add a log entry of import db
+ if (log.isInfoEnabled()) {
+ log.info("Import done with user " + user.getEmail());
+ }
+
+ createImportLogEntry(getDAO(ImportLog.class),
+ user,
+ file,
+ importedVoyages);
+
+ createLogBookEntry(getDAO(EntityModificationLog.class),
+ user,
+ file,
+ importedVoyages);
+
+ commitTransaction("Could not commit db import from file " + file);
+
+ } finally {
+ zipFile.close();
+ }
+ }
+
+
+ protected abstract void validateTableEntries(EchoBaseDbMeta dbMeta,
+ Map<TableMeta<EchoBaseEntityEnum>, ZipEntry> tables) throws ImportException;
+
+ protected abstract void validateAssociationEntries(EchoBaseDbMeta dbMeta,
+ Map<AssociationMeta<EchoBaseEntityEnum>, ZipEntry> associations) throws ImportException;
+
+ protected abstract void createImportLogEntry(TopiaDAO<ImportLog> dao,
+ EchoBaseUser user,
+ File file,
+ Iterable<Voyage> importedVoyages) throws TopiaException;
+
+ protected abstract void createLogBookEntry(TopiaDAO<EntityModificationLog> dao,
+ EchoBaseUser user,
+ File file,
+ Iterable<Voyage> importedVoyages) throws TopiaException;
+
+ protected Iterable<Voyage> importTables(ImportStrategy<EchoBaseEntityEnum> strategy,
+ ImportDbConfiguration model,
+ ZipFile zipFile,
+ Map<TableMeta<EchoBaseEntityEnum>, ZipEntry> entriestoConsume) throws IOException, TopiaException {
+
+ boolean commitAfterEachFile = model.isCommitAfterEachFile();
+
+ Iterable<Voyage> result = null;
+
+ for (Map.Entry<TableMeta<EchoBaseEntityEnum>, ZipEntry> entry :
+ entriestoConsume.entrySet()) {
+
+ model.incrementsProgression();
+
+ TableMeta<EchoBaseEntityEnum> entryDef = entry.getKey();
+ ZipEntry value = entry.getValue();
+ CsvImportResult<EchoBaseEntityEnum> csvResult = CsvImportResult.newResult(
+ entryDef.getSource(),
+ value.getName(),
+ false
+ );
+
+ Reader reader = IOUtils.toBufferedReader(
+ new InputStreamReader(zipFile.getInputStream(value)));
+ try {
+
+ long s0 = TimeLog.getTime();
+
+ if (log.isInfoEnabled()) {
+ log.info("Will import " + entryDef);
+ }
+
+ if (EchoBaseEntityEnum.Voyage == entryDef.getSource()) {
+ result = TopiaCsvImports.importTableAndReturn(reader,
+ strategy,
+ entryDef,
+ csvResult
+ );
+ } else {
+ TopiaCsvImports.importTable(reader,
+ strategy,
+ entryDef,
+ csvResult
+ );
+ }
+
+ s0 = TIME_LOG.log(s0, "importFile::done");
+
+ flushTransaction("Could not flush " + entryDef + " to db.");
+
+ TIME_LOG.log(s0, "importFile::flushTransaction");
+ } finally {
+ reader.close();
+
+ if (commitAfterEachFile) {
+ commitTransaction(
+ "Could not commit db import from file " +
+ zipFile.getName() + "#" + entryDef.getFilename());
+ }
+
+ clearCache();
+ }
+ }
+
+ return result;
+ }
+
+ protected void importAssociations(ImportStrategy<EchoBaseEntityEnum> strategy,
+ ImportDbConfiguration model,
+ ZipFile zipFile,
+ Map<AssociationMeta<EchoBaseEntityEnum>, ZipEntry> associations) throws IOException, TopiaException {
+
+ for (Map.Entry<AssociationMeta<EchoBaseEntityEnum>, ZipEntry> entry :
+ associations.entrySet()) {
+
+ model.incrementsProgression();
+
+ AssociationMeta<EchoBaseEntityEnum> entryDef = entry.getKey();
+ ZipEntry value = entry.getValue();
+
+ CsvImportResult<EchoBaseEntityEnum> csvResult = CsvImportResult.newResult(
+ entryDef.getSource(),
+ value.getName(),
+ false
+ );
+
+ Reader reader = IOUtils.toBufferedReader(new InputStreamReader(zipFile.getInputStream(value)));
+ try {
+ long s0 = TimeLog.getTime();
+
+ if (log.isInfoEnabled()) {
+ log.info("Will import " + entryDef);
+ }
+
+ TopiaCsvImports.importAssociation(reader,
+ strategy,
+ entryDef,
+ csvResult);
+
+ s0 = TIME_LOG.log(s0, "importFile::done");
+
+ flushTransaction("Could not flush associations to db.");
+
+ TIME_LOG.log(s0, "importFile::flushTransaction");
+ } finally {
+ reader.close();
+ }
+ }
+ }
+
+}
Property changes on: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdb/strategy/AbstractImportDbStrategy.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/importdb/strategy/DataImportDbStrategy.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdb/strategy/DataImportDbStrategy.java (rev 0)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdb/strategy/DataImportDbStrategy.java 2012-09-11 12:48:41 UTC (rev 644)
@@ -0,0 +1,127 @@
+package fr.ifremer.echobase.services.importdb.strategy;
+
+/*
+ * #%L
+ * EchoBase :: Services
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2011 - 2012 Ifremer, Codelutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * 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.Lists;
+import fr.ifremer.echobase.entities.EchoBaseEntityEnum;
+import fr.ifremer.echobase.entities.EchoBaseUser;
+import fr.ifremer.echobase.entities.EntityModificationLog;
+import fr.ifremer.echobase.entities.ImportLog;
+import fr.ifremer.echobase.entities.ImportType;
+import fr.ifremer.echobase.entities.data.Voyage;
+import fr.ifremer.echobase.persistence.EchoBaseDbMeta;
+import fr.ifremer.echobase.services.DecoratorService;
+import fr.ifremer.echobase.services.importdata.ImportException;
+import org.nuiton.topia.TopiaException;
+import org.nuiton.topia.persistence.TopiaDAO;
+import org.nuiton.topia.persistence.metadata.AssociationMeta;
+import org.nuiton.topia.persistence.metadata.TableMeta;
+import org.nuiton.util.decorator.Decorator;
+
+import java.io.File;
+import java.util.List;
+import java.util.Map;
+import java.util.zip.ZipEntry;
+
+/**
+ * Data only import db strategy.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 1.2
+ */
+public class DataImportDbStrategy extends AbstractImportDbStrategy {
+
+ @Override
+ protected void validateTableEntries(EchoBaseDbMeta dbMeta,
+ Map<TableMeta<EchoBaseEntityEnum>, ZipEntry> tables) throws ImportException {
+
+ // check that contains only referential entries
+ List<EchoBaseEntityEnum> badTableTypes = Lists.newArrayList();
+ List<TableMeta<EchoBaseEntityEnum>> dataTables = dbMeta.getReferenceTables();
+ for (TableMeta<EchoBaseEntityEnum> tableMetas : tables.keySet()) {
+ if (dataTables.contains(tableMetas)) {
+ badTableTypes.add(tableMetas.getSource());
+ }
+ }
+
+ if (!badTableTypes.isEmpty()) {
+ throw new ImportException(
+ "In data import, can not accept " +
+ "referential type, but found some referential files: " + badTableTypes);
+ }
+
+ }
+
+ @Override
+ protected void validateAssociationEntries(EchoBaseDbMeta dbMeta,
+ Map<AssociationMeta<EchoBaseEntityEnum>, ZipEntry> associations) throws ImportException {
+ List<EchoBaseEntityEnum> badAssociationTypes = Lists.newArrayList();
+ List<AssociationMeta<EchoBaseEntityEnum>> associationTables = dbMeta.getReferenceAssociations();
+ for (AssociationMeta<EchoBaseEntityEnum> tableMetas : associations.keySet()) {
+ if (associationTables.contains(tableMetas)) {
+ badAssociationTypes.add(tableMetas.getSource());
+ }
+ }
+ if (!badAssociationTypes.isEmpty()) {
+ throw new ImportException(
+ "In data import, can not accept " +
+ "referential type, but found some referential associations files: " +
+ badAssociationTypes);
+ }
+ }
+
+ @Override
+ protected void createImportLogEntry(TopiaDAO<ImportLog> dao,
+ EchoBaseUser user,
+ File file,
+ Iterable<Voyage> importedVoyages) throws TopiaException {
+
+ Decorator<Voyage> decorator = getService(DecoratorService.class).getDecorator(getLocale(), Voyage.class, null);
+ for (Voyage importedVoyage : importedVoyages) {
+
+ // create a importLog entry
+ ImportLog importLog = dao.create(
+ ImportLog.PROPERTY_IMPORT_TYPE, ImportType.VOYAGE,
+ ImportLog.PROPERTY_IMPORT_USER, user.getEmail(),
+ ImportLog.PROPERTY_IMPORT_DATE, newDate(),
+ ImportLog.PROPERTY_IMPORT_TEXT, "import voyage " + decorator.toString(importedVoyage) + " from file " + file.getName()
+ );
+ importLog.addImportId(importedVoyage.getTopiaId());
+ }
+ }
+
+ @Override
+ protected void createLogBookEntry(TopiaDAO<EntityModificationLog> dao,
+ EchoBaseUser user,
+ File file,
+ Iterable<Voyage> importedVoyages) throws TopiaException {
+ dao.create(
+ EntityModificationLog.PROPERTY_ENTITY_TYPE, "Import data only db",
+ EntityModificationLog.PROPERTY_ENTITY_ID, "Data only EchoBase db",
+ EntityModificationLog.PROPERTY_MODIFICATION_USER, user.getEmail(),
+ EntityModificationLog.PROPERTY_MODIFICATION_DATE, newDate(),
+ EntityModificationLog.PROPERTY_MODIFICATION_TEXT, "import db from file " + file.getName()
+ );
+ }
+}
Property changes on: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdb/strategy/DataImportDbStrategy.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/importdb/strategy/EchoBaseImportStrategy.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdb/strategy/EchoBaseImportStrategy.java (rev 0)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdb/strategy/EchoBaseImportStrategy.java 2012-09-11 12:48:41 UTC (rev 644)
@@ -0,0 +1,112 @@
+package fr.ifremer.echobase.services.importdb.strategy;
+
+/*
+ * #%L
+ * EchoBase :: Services
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2011 - 2012 Ifremer, Codelutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * 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.persistence.EchoBasePersistenceHelper;
+import org.nuiton.topia.TopiaContext;
+import org.nuiton.topia.TopiaException;
+import org.nuiton.topia.persistence.TopiaDAO;
+import org.nuiton.topia.persistence.TopiaEntity;
+import org.nuiton.topia.persistence.csv.in.CsvImportResult;
+import org.nuiton.topia.persistence.csv.in.ImportModelFactory;
+import org.nuiton.topia.persistence.csv.in.ImportStrategy;
+import org.nuiton.topia.persistence.csv.in.TopiaCsvImports;
+import org.nuiton.topia.persistence.metadata.AssociationMeta;
+import org.nuiton.topia.persistence.metadata.TableMeta;
+import org.nuiton.util.csv.Import;
+import org.nuiton.util.csv.ImportToMap;
+
+/**
+ * How to import csv files.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 1.1
+ */
+public class EchoBaseImportStrategy implements ImportStrategy<EchoBaseEntityEnum> {
+
+ private final TopiaContext tx;
+
+ private final EchoBasePersistenceHelper persistenceHelper;
+
+ private final int nbRowBuffer;
+
+ private final ImportModelFactory<EchoBaseEntityEnum> modelFactory;
+
+ public EchoBaseImportStrategy(ImportModelFactory<EchoBaseEntityEnum> modelFactory,
+ TopiaContext tx,
+ EchoBasePersistenceHelper persistenceHelper,
+ int nbRowBuffer) {
+ this.tx = tx;
+ this.persistenceHelper = persistenceHelper;
+ this.nbRowBuffer = nbRowBuffer;
+ this.modelFactory = modelFactory;
+ }
+
+ public ImportModelFactory<EchoBaseEntityEnum> getModelFactory() {
+ return modelFactory;
+ }
+
+ @Override
+ public <E extends TopiaEntity> void importTable(TableMeta<EchoBaseEntityEnum> meta,
+ Import<E> importer,
+ CsvImportResult<EchoBaseEntityEnum> csvResult) throws TopiaException {
+ TopiaDAO<E> dao = persistenceHelper.getDAO(tx, meta.getSource());
+
+ TopiaCsvImports.importAllEntities(dao, meta, importer, csvResult);
+ }
+
+ @Override
+ public <E extends TopiaEntity> Iterable<E> importTableAndReturnThem(TableMeta<EchoBaseEntityEnum> meta,
+ Import<E> importer,
+ CsvImportResult<EchoBaseEntityEnum> csvResult) throws TopiaException {
+ TopiaDAO<E> dao = persistenceHelper.getDAO(tx, meta.getSource());
+
+ Iterable<E> result = TopiaCsvImports.importAllEntitiesAndReturnThem(
+ dao, meta, importer, csvResult);
+ return result;
+
+ }
+
+ @Override
+ public void importAssociation(AssociationMeta<EchoBaseEntityEnum> meta,
+ ImportToMap importer,
+ CsvImportResult<EchoBaseEntityEnum> csvResult) throws TopiaException {
+
+ if (getModelFactory().isNMAssociationMeta(meta)) {
+ TopiaCsvImports.importNMAssociation(tx,
+ meta,
+ importer,
+ csvResult,
+ nbRowBuffer);
+ } else {
+ TopiaCsvImports.importAssociation(tx,
+ meta,
+ importer,
+ csvResult,
+ nbRowBuffer);
+ }
+
+ }
+}
Property changes on: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdb/strategy/EchoBaseImportStrategy.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/importdb/strategy/FreeImportDbStrategy.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdb/strategy/FreeImportDbStrategy.java (rev 0)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdb/strategy/FreeImportDbStrategy.java 2012-09-11 12:48:41 UTC (rev 644)
@@ -0,0 +1,102 @@
+package fr.ifremer.echobase.services.importdb.strategy;
+
+/*
+ * #%L
+ * EchoBase :: Services
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2011 - 2012 Ifremer, Codelutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * 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.EntityModificationLog;
+import fr.ifremer.echobase.entities.ImportLog;
+import fr.ifremer.echobase.entities.ImportType;
+import fr.ifremer.echobase.entities.data.Voyage;
+import fr.ifremer.echobase.persistence.EchoBaseDbMeta;
+import fr.ifremer.echobase.services.DecoratorService;
+import fr.ifremer.echobase.services.importdata.ImportException;
+import org.nuiton.topia.TopiaException;
+import org.nuiton.topia.persistence.TopiaDAO;
+import org.nuiton.topia.persistence.metadata.AssociationMeta;
+import org.nuiton.topia.persistence.metadata.TableMeta;
+import org.nuiton.util.decorator.Decorator;
+
+import java.io.File;
+import java.util.Date;
+import java.util.Map;
+import java.util.zip.ZipEntry;
+
+/**
+ * Free import db strategy (can import either referential or/and data).
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 1.2
+ */
+public class FreeImportDbStrategy extends AbstractImportDbStrategy {
+
+ @Override
+ protected void validateTableEntries(EchoBaseDbMeta dbMeta,
+ Map<TableMeta<EchoBaseEntityEnum>, ZipEntry> tables) throws ImportException {
+ // nothing to validate
+ }
+
+ @Override
+ protected void validateAssociationEntries(EchoBaseDbMeta dbMeta,
+ Map<AssociationMeta<EchoBaseEntityEnum>, ZipEntry> associations) throws ImportException {
+ // nothing to validate
+ }
+
+ @Override
+ protected void createImportLogEntry(TopiaDAO<ImportLog> dao,
+ EchoBaseUser user,
+ File file,
+ Iterable<Voyage> importedVoyages) throws TopiaException {
+ Date date = newDate();
+
+ Decorator<Voyage> decorator = getService(DecoratorService.class).getDecorator(getLocale(), Voyage.class, null);
+ for (Voyage importedVoyage : importedVoyages) {
+
+ // create a importLog entry
+ ImportLog importLog = dao.create(
+ ImportLog.PROPERTY_IMPORT_TYPE, ImportType.VOYAGE,
+ ImportLog.PROPERTY_IMPORT_USER, user.getEmail(),
+ ImportLog.PROPERTY_IMPORT_DATE, date,
+ ImportLog.PROPERTY_IMPORT_TEXT, "import voyage " + decorator.toString(importedVoyage) + " from file " + file.getName()
+ );
+ importLog.addImportId(importedVoyage.getTopiaId());
+ }
+ }
+
+ @Override
+ protected void createLogBookEntry(TopiaDAO<EntityModificationLog> dao,
+ EchoBaseUser user,
+ File file,
+ Iterable<Voyage> importedVoyages) throws TopiaException {
+
+ dao.create(
+ EntityModificationLog.PROPERTY_ENTITY_TYPE, "Import free db",
+ EntityModificationLog.PROPERTY_ENTITY_ID, "Free EchoBase db",
+ EntityModificationLog.PROPERTY_MODIFICATION_USER, user.getEmail(),
+ EntityModificationLog.PROPERTY_MODIFICATION_DATE, newDate(),
+ EntityModificationLog.PROPERTY_MODIFICATION_TEXT, "import db from file " + file.getName()
+ );
+ }
+
+}
Property changes on: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdb/strategy/FreeImportDbStrategy.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/importdb/strategy/ReferentialImportDbStrategy.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdb/strategy/ReferentialImportDbStrategy.java (rev 0)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdb/strategy/ReferentialImportDbStrategy.java 2012-09-11 12:48:41 UTC (rev 644)
@@ -0,0 +1,115 @@
+package fr.ifremer.echobase.services.importdb.strategy;
+
+/*
+ * #%L
+ * EchoBase :: Services
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2011 - 2012 Ifremer, Codelutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * 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.Lists;
+import fr.ifremer.echobase.entities.EchoBaseEntityEnum;
+import fr.ifremer.echobase.entities.EchoBaseUser;
+import fr.ifremer.echobase.entities.EntityModificationLog;
+import fr.ifremer.echobase.entities.ImportLog;
+import fr.ifremer.echobase.entities.data.Voyage;
+import fr.ifremer.echobase.persistence.EchoBaseDbMeta;
+import fr.ifremer.echobase.services.importdata.ImportException;
+import org.nuiton.topia.TopiaException;
+import org.nuiton.topia.persistence.TopiaDAO;
+import org.nuiton.topia.persistence.metadata.AssociationMeta;
+import org.nuiton.topia.persistence.metadata.TableMeta;
+
+import java.io.File;
+import java.util.List;
+import java.util.Map;
+import java.util.zip.ZipEntry;
+
+/**
+ * Referential only import db strategy.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 1.2
+ */
+public class ReferentialImportDbStrategy extends AbstractImportDbStrategy {
+
+ @Override
+ protected void validateTableEntries(EchoBaseDbMeta dbMeta,
+ Map<TableMeta<EchoBaseEntityEnum>, ZipEntry> tables) throws ImportException {
+
+ // check that contains only referential entries
+ List<EchoBaseEntityEnum> badTableTypes = Lists.newArrayList();
+ List<TableMeta<EchoBaseEntityEnum>> dataTables = dbMeta.getDataTables();
+ for (TableMeta<EchoBaseEntityEnum> tableMetas : tables.keySet()) {
+ if (dataTables.contains(tableMetas)) {
+ badTableTypes.add(tableMetas.getSource());
+ }
+ }
+
+ if (!badTableTypes.isEmpty()) {
+ throw new ImportException(
+ "In referential import, can not accept " +
+ "data type, but found some data types: " + badTableTypes);
+ }
+ }
+
+ @Override
+ protected void validateAssociationEntries(EchoBaseDbMeta dbMeta,
+ Map<AssociationMeta<EchoBaseEntityEnum>, ZipEntry> associations) throws ImportException {
+
+ List<EchoBaseEntityEnum> badAssociationTypes = Lists.newArrayList();
+ List<AssociationMeta<EchoBaseEntityEnum>> associationTables = dbMeta.getDataAssociations();
+ for (AssociationMeta<EchoBaseEntityEnum> tableMetas : associations.keySet()) {
+ if (associationTables.contains(tableMetas)) {
+ badAssociationTypes.add(tableMetas.getSource());
+ }
+ }
+ if (!badAssociationTypes.isEmpty()) {
+ throw new ImportException(
+ "In referential import, can not accept " +
+ "data type, but found some data associations files: " +
+ badAssociationTypes);
+ }
+ }
+
+ @Override
+ protected void createImportLogEntry(TopiaDAO<ImportLog> dao,
+ EchoBaseUser user,
+ File file,
+ Iterable<Voyage> importedVoyages) {
+ // no importLog entry to add
+ }
+
+ @Override
+ protected void createLogBookEntry(TopiaDAO<EntityModificationLog> dao,
+ EchoBaseUser user,
+ File file,
+ Iterable<Voyage> importedVoyages) throws TopiaException {
+
+ dao.create(
+ EntityModificationLog.PROPERTY_ENTITY_TYPE, "Import referential only db",
+ EntityModificationLog.PROPERTY_ENTITY_ID, "Referential EchoBase db",
+ EntityModificationLog.PROPERTY_MODIFICATION_USER, user.getEmail(),
+ EntityModificationLog.PROPERTY_MODIFICATION_DATE, newDate(),
+ EntityModificationLog.PROPERTY_MODIFICATION_TEXT, "import db from file " + file.getName()
+ );
+
+ }
+
+}
Property changes on: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdb/strategy/ReferentialImportDbStrategy.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Modified: trunk/echobase-services/src/main/resources/i18n/echobase-services_en_GB.properties
===================================================================
--- trunk/echobase-services/src/main/resources/i18n/echobase-services_en_GB.properties 2012-09-10 16:00:37 UTC (rev 643)
+++ trunk/echobase-services/src/main/resources/i18n/echobase-services_en_GB.properties 2012-09-11 12:48:41 UTC (rev 644)
@@ -11,8 +11,13 @@
echobase.common.esduByEchotypeFile=Results per ESDU / echotype file
echobase.common.esduBySpeciesAndAgeCategoryFile=Results per ESDU / species / age file
echobase.common.esduBySpeciesAndSizeCategoryFile=Results per ESDU / species / size file
+echobase.common.exportDbMode.all=Export complete database
+echobase.common.exportDbMode.data=Export only data
+echobase.common.exportDbMode.referential=Export only referential
+echobase.common.exportDbMode.referentialAndData=Export referential and some data
echobase.common.gearMetadataFile=Gear metadata file
-echobase.common.importDbFile=Import file (.zip)
+echobase.common.importDbFile=Import file (.echobase)
+echobase.common.importDbMode.data=Data import
echobase.common.importDbMode.free=Free import
echobase.common.importDbMode.referential=Referential import
echobase.common.lengthAgeKeyFile=Size-age equations file
Modified: trunk/echobase-services/src/main/resources/i18n/echobase-services_fr_FR.properties
===================================================================
--- trunk/echobase-services/src/main/resources/i18n/echobase-services_fr_FR.properties 2012-09-10 16:00:37 UTC (rev 643)
+++ trunk/echobase-services/src/main/resources/i18n/echobase-services_fr_FR.properties 2012-09-11 12:48:41 UTC (rev 644)
@@ -11,8 +11,13 @@
echobase.common.esduByEchotypeFile=Fichier de résultats par ESDU / échotype
echobase.common.esduBySpeciesAndAgeCategoryFile=Fichier de résultats par ESDU / espèce / âge
echobase.common.esduBySpeciesAndSizeCategoryFile=Fichier de résultats par ESDU / espèce / taille
+echobase.common.exportDbMode.all=Exporter toute la base
+echobase.common.exportDbMode.data=Exporter uniquement des données
+echobase.common.exportDbMode.referential=Exporter uniquement le référentiel
+echobase.common.exportDbMode.referentialAndData=Exporter le référentiel et des données
echobase.common.gearMetadataFile=Fichier de méta-données d'engin
-echobase.common.importDbFile=Fichier d'import (zip)
+echobase.common.importDbFile=Fichier d'import (.echobase)
+echobase.common.importDbMode.data=Import Données
echobase.common.importDbMode.free=Import libre
echobase.common.importDbMode.referential=Import Référentiel
echobase.common.lengthAgeKeyFile=Fichier des relations taille-âge
Added: trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/EchoBaseServiceFixtures.java
===================================================================
--- trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/EchoBaseServiceFixtures.java (rev 0)
+++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/EchoBaseServiceFixtures.java 2012-09-11 12:48:41 UTC (rev 644)
@@ -0,0 +1,163 @@
+package fr.ifremer.echobase.services;
+
+/*
+ * #%L
+ * EchoBase :: Services
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2011 - 2012 Ifremer, Codelutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * 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%
+ */
+
+/**
+ * Obtain some fixtures for service tests.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 1.2
+ */
+public class EchoBaseServiceFixtures {
+
+ public String IMPORT_DATA_ECHOBASE_NO_DATA() {
+ return "/import-data/echobase-" + dbVersion() + "-nodata.h2.db.gz";
+ }
+
+ public String IMPORT_DATA_ECHOBASE_COMMON_DATA() {
+ return "/import-data/echobase-" + dbVersion() + "-commonData.h2.db.gz";
+ }
+
+ public String IMPORT_DATA_ECHOBASE_OPERATION() {
+ return "/import-data/echobase-" + dbVersion() + "-operation.h2.db.gz";
+ }
+
+ public String IMPORT_DATA_ECHOBASE_CATCHES() {
+ return "/import-data/echobase-" + dbVersion() + "-catches.h2.db.gz";
+ }
+
+ public String IMPORT_DATA_ECHOBASE_CATCHES_AND_VOYAGE_RESULT() {
+ return "/import-data/echobase-" + dbVersion() + "-catches-and-voyage-result.h2.db.gz";
+ }
+
+// public String IMPORT_DATA_ECHOBASE_CATCHES_AND_ACOUSTIC = "/import-data/echobase-" + dbVersion()+ "-catches-and-acoustic.h2.db.gz";
+
+// public String IMPORT_DATA_ECHOBASE_CATCHES_AND_ACOUSTIC_AND_VOYAGE_RESULT = "/import-data/echobase-" + dbVersion()+ "-catches-and-acoustic-and-voyage-result.h2.db.gz";
+
+ public String VESSEL_ID() {
+ return "fr.ifremer.echobase.entities.references.Vessel#1323196672049#0.9790502711645855";
+ }
+
+ public String MISSION_ID() {
+ return "fr.ifremer.echobase.entities.references.Mission#1323127544274#0.7939481378378231";
+ }
+
+ public String AREA_OF_OPERATION_ID() {
+ return "fr.ifremer.echobase.entities.references.AreaOfOperation#1323128474277#0.011341599655098622";
+ }
+
+
+ public String dbVersion() {
+ return "1.2";
+ }
+
+ public String importDbReferentialPath() {
+ return "/echobase-" + dbVersion() + "-importDb-referentiel.zip";
+ }
+
+ public int NB_VOYAGE() {
+ return 1;
+ }
+
+ public int NB_TRANSIT() {
+ return 3;
+ }
+
+ public int NB_TRANSECT() {
+ return 251;
+ }
+
+ public int NB_OPERATION() {
+ return 131;
+ }
+
+ public int NB_OPERATION_METADATAVALUE() {
+ return 393;
+ }
+
+ public int NB_GEAR_METADATAVALUE() {
+ return 917;
+ }
+
+ public int NB_SAMPLE_TOTAL() {
+ return 1232;
+ }
+
+ public int NB_SAMPLE_DATA_TOTAL() {
+ return 1834;
+ }
+
+ public int NB_SAMPLE_UNSORTED() {
+ return 14;
+ }
+
+ public int NB_SAMPLE_DATA_UNSORTED() {
+ return 200;
+ }
+
+ public int NB_SAMPLE_BIOMETRY() {
+ return 15;
+ }
+
+ public int NB_SAMPLE_DATA_BIOMETRY() {
+ return 43;
+ }
+
+ public int NB_SAMPLE() {
+ return NB_SAMPLE_TOTAL() + NB_SAMPLE_UNSORTED() + NB_SAMPLE_BIOMETRY();
+ }
+
+ public int NB_SAMPLE_DATA() {
+ return NB_SAMPLE_DATA_TOTAL() + NB_SAMPLE_DATA_UNSORTED() + NB_SAMPLE_DATA_BIOMETRY();
+ }
+
+ public int NB_DATA_ACQUISITION() {
+ return 1;
+ }
+
+ public int NB_DATA_PROCESSING() {
+ return 1;
+ }
+
+ public int NB_CELL() {
+ return 26668;
+ }
+
+ public int NB_DATA() {
+ return 264478;
+ }
+
+ public int NB_LENGTH_AGE_KEY() {
+ return 404;
+ }
+
+ public int NB_LENGTH_WEIGHT_KEY() {
+ return 7;
+ }
+
+ public int NB_ECHOTYPE() {
+ return 8;
+ }
+
+}
Property changes on: trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/EchoBaseServiceFixtures.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
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 2012-09-10 16:00:37 UTC (rev 643)
+++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/EchoBaseTestServiceSupport.java 2012-09-11 12:48:41 UTC (rev 644)
@@ -65,6 +65,8 @@
protected abstract FakeEchoBaseServiceContext initContext();
+ protected final EchoBaseServiceFixtures fixtures = new EchoBaseServiceFixtures();
+
@Rule
public FakeEchoBaseServiceContext fakeServiceContext = initContext();
Modified: trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/EmbeddedApplicationServiceIT.java
===================================================================
--- trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/EmbeddedApplicationServiceIT.java 2012-09-10 16:00:37 UTC (rev 643)
+++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/EmbeddedApplicationServiceIT.java 2012-09-11 12:48:41 UTC (rev 644)
@@ -25,7 +25,6 @@
import fr.ifremer.echobase.services.embeddedapplication.EmbeddedApplicationConfiguration;
import fr.ifremer.echobase.services.embeddedapplication.EmbeddedApplicationService;
-import fr.ifremer.echobase.services.importdata.AbstractImportDataServiceIT;
import org.apache.commons.io.FileUtils;
import org.junit.Assert;
import org.junit.Test;
@@ -43,7 +42,7 @@
protected FakeEchoBaseServiceContext initContext() {
return new FakeEchoBaseServiceContext(
- AbstractImportDataServiceIT.IMPORT_DATA_ECHOBASE_COMMON_DATA);
+ fixtures.IMPORT_DATA_ECHOBASE_COMMON_DATA());
}
@Test
Modified: trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/ExportDbServiceTest.java
===================================================================
--- trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/ExportDbServiceTest.java 2012-09-10 16:00:37 UTC (rev 643)
+++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/ExportDbServiceTest.java 2012-09-11 12:48:41 UTC (rev 644)
@@ -24,8 +24,8 @@
package fr.ifremer.echobase.services;
import fr.ifremer.echobase.services.exportdb.ExportDbConfiguration;
+import fr.ifremer.echobase.services.exportdb.ExportDbMode;
import fr.ifremer.echobase.services.exportdb.ExportDbService;
-import fr.ifremer.echobase.services.importdata.AbstractImportDataServiceIT;
import org.junit.Test;
import org.nuiton.util.FileUtil;
@@ -42,28 +42,45 @@
protected FakeEchoBaseServiceContext initContext() {
return new FakeEchoBaseServiceContext(
- AbstractImportDataServiceIT.IMPORT_DATA_ECHOBASE_COMMON_DATA);
+ fixtures.IMPORT_DATA_ECHOBASE_COMMON_DATA());
}
@Test
- public void exportDb() throws IOException {
+ public void exportReferential() throws IOException {
ExportDbService service = getService(ExportDbService.class);
ExportDbConfiguration conf = new ExportDbConfiguration();
+ File workingDirectory = new File(getTestDir(), "work-dir");
+ FileUtil.createDirectoryIfNecessary(workingDirectory);
+ conf.setWorkingDirectory(workingDirectory);
+ conf.setFileName("echobase");
+ conf.setComputeSteps(true);
+ conf.setExportDbMode(ExportDbMode.REFERENTIAL);
+ service.doExport(conf);
+ }
+
+ @Test
+ public void exportData() throws IOException {
+
+ ExportDbService service = getService(ExportDbService.class);
+
+ ExportDbConfiguration conf = new ExportDbConfiguration();
+
conf.setVoyageIds(getVoyageId());
File workingDirectory = new File(getTestDir(), "work-dir");
FileUtil.createDirectoryIfNecessary(workingDirectory);
conf.setWorkingDirectory(workingDirectory);
conf.setFileName("echobase");
-
- service.exportDb(conf);
+ conf.setComputeSteps(true);
+ conf.setExportDbMode(ExportDbMode.DATA);
+ service.doExport(conf);
}
@Test
- public void exportPartialDb() throws IOException {
+ public void exportReferentialAndData() throws IOException {
ExportDbService service = getService(ExportDbService.class);
@@ -75,7 +92,41 @@
FileUtil.createDirectoryIfNecessary(workingDirectory);
conf.setWorkingDirectory(workingDirectory);
conf.setFileName("echobase");
+ conf.setComputeSteps(true);
+ conf.setExportDbMode(ExportDbMode.REFERENTIAL_AND_DATA);
+ service.doExport(conf);
+ }
- service.exportPartialDb(conf, true);
+ @Test
+ public void exportAll() throws IOException {
+
+ ExportDbService service = getService(ExportDbService.class);
+
+ ExportDbConfiguration conf = new ExportDbConfiguration();
+
+ File workingDirectory = new File(getTestDir(), "work-dir");
+ FileUtil.createDirectoryIfNecessary(workingDirectory);
+ conf.setWorkingDirectory(workingDirectory);
+ conf.setFileName("echobase");
+ conf.setComputeSteps(true);
+ conf.setExportDbMode(ExportDbMode.ALL);
+ service.doExport(conf);
}
+//
+// @Test
+// public void exportPartialDb() throws IOException {
+//
+// ExportDbService service = getService(ExportDbService.class);
+//
+// ExportDbConfiguration conf = new ExportDbConfiguration();
+//
+// conf.setVoyageIds(getVoyageId());
+//
+// File workingDirectory = new File(getTestDir(), "work-dir");
+// FileUtil.createDirectoryIfNecessary(workingDirectory);
+// conf.setWorkingDirectory(workingDirectory);
+// conf.setFileName("echobase");
+//
+// service.exportPartialDb(conf, true);
+// }
}
Modified: trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/ImportDbServiceTest.java
===================================================================
--- trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/ImportDbServiceTest.java 2012-09-10 16:00:37 UTC (rev 643)
+++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/ImportDbServiceTest.java 2012-09-11 12:48:41 UTC (rev 644)
@@ -25,11 +25,12 @@
import fr.ifremer.echobase.entities.EchoBaseUser;
import fr.ifremer.echobase.entities.EchoBaseUserImpl;
+import fr.ifremer.echobase.services.importdata.ImportException;
import fr.ifremer.echobase.services.importdb.ImportDbConfiguration;
+import fr.ifremer.echobase.services.importdb.ImportDbMode;
import fr.ifremer.echobase.services.importdb.ImportDbService;
import org.junit.Assert;
import org.junit.Test;
-import org.nuiton.topia.TopiaException;
import org.nuiton.util.FileUtil;
import java.io.File;
@@ -51,7 +52,7 @@
}
@Test
- public void importDb() throws IOException, TopiaException {
+ public void importDb() throws IOException, ImportException {
ImportDbService service = getService(ImportDbService.class);
@@ -60,13 +61,15 @@
File workingDirectory = new File(getTestDir(), "work-dir");
FileUtil.createDirectoryIfNecessary(workingDirectory);
conf.setWorkingDirectory(workingDirectory);
+ conf.setComputeSteps(true);
+ conf.setCommitAfterEachFile(false);
+ conf.setImportDbMode(ImportDbMode.REFERENTIAL);
+ prepareInputFile(conf.getInput(), fixtures.importDbReferentialPath());
- prepareInputFile(conf.getInput(), "/echobase-" + DB_VERSION + "-importDb-referentiel.zip");
-
EchoBaseUser user = new EchoBaseUserImpl();
user.setEmail("testUser(a)fake.fr");
- service.importDb(conf, user, true, false);
+ service.doImport(conf, user);
Assert.assertEquals(100f, conf.getProgression(), 1);
}
Modified: trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/AbstractImportDataServiceIT.java
===================================================================
--- trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/AbstractImportDataServiceIT.java 2012-09-10 16:00:37 UTC (rev 643)
+++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/AbstractImportDataServiceIT.java 2012-09-11 12:48:41 UTC (rev 644)
@@ -50,7 +50,6 @@
import fr.ifremer.echobase.entities.references.CellType;
import fr.ifremer.echobase.io.InputFile;
import fr.ifremer.echobase.services.EchoBaseTestServiceSupport;
-import fr.ifremer.echobase.services.ImportDbServiceTest;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.junit.Assert;
@@ -82,96 +81,34 @@
public static final TimeLog TIME_LOG = new TimeLog(AbstractImportDataServiceIT.class);
- public static final String IMPORT_DATA_ECHOBASE_NO_DATA = "/import-data/echobase-" + ImportDbServiceTest.DB_VERSION + "-nodata.h2.db.gz";
-
- public static final String IMPORT_DATA_ECHOBASE_COMMON_DATA = "/import-data/echobase-" + ImportDbServiceTest.DB_VERSION + "-commonData.h2.db.gz";
-
- public static final String IMPORT_DATA_ECHOBASE_OPERATION = "/import-data/echobase-" + ImportDbServiceTest.DB_VERSION + "-operation.h2.db.gz";
-
- public static final String IMPORT_DATA_ECHOBASE_CATCHES = "/import-data/echobase-" + ImportDbServiceTest.DB_VERSION + "-catches.h2.db.gz";
-
- public static final String IMPORT_DATA_ECHOBASE_CATCHES_AND_VOYAGE_RESULT = "/import-data/echobase-" + ImportDbServiceTest.DB_VERSION + "-catches-and-voyage-result.h2.db.gz";
-
-// public static final String IMPORT_DATA_ECHOBASE_CATCHES_AND_ACOUSTIC = "/import-data/echobase-" + ImportDbServiceTest.DB_VERSION + "-catches-and-acoustic.h2.db.gz";
-
-// public static final String IMPORT_DATA_ECHOBASE_CATCHES_AND_ACOUSTIC_AND_VOYAGE_RESULT = "/import-data/echobase-" + ImportDbServiceTest.DB_VERSION + "-catches-and-acoustic-and-voyage-result.h2.db.gz";
-
- public static final String VESSEL_ID = "fr.ifremer.echobase.entities.references.Vessel#1323196672049#0.9790502711645855";
-
- public static final String MISSION_ID = "fr.ifremer.echobase.entities.references.Mission#1323127544274#0.7939481378378231";
-
- public static final String AREA_OF_OPERATION_ID = "fr.ifremer.echobase.entities.references.AreaOfOperation#1323128474277#0.011341599655098622";
-
- public static final int NB_VOYAGE = 1;
-
- public static final int NB_TRANSIT = 3;
-
- public static final int NB_TRANSECT = 251;
-
- public static final int NB_OPERATION = 131;
-
- public static final int NB_OPERATION_METADATAVALUE = 393;
-
- public static final int NB_GEAR_METADATAVALUE = 917;
-
- public static final int NB_SAMPLE_TOTAL = 1232;
-
- public static final int NB_SAMPLE_DATA_TOTAL = 1834;
-
- public static final int NB_SAMPLE_UNSORTED = 14;
-
- public static final int NB_SAMPLE_DATA_UNSORTED = 200;
-
- public static final int NB_SAMPLE_BIOMETRY = 15;
-
- public static final int NB_SAMPLE_DATA_BIOMETRY = 43;
-
- public static final int NB_SAMPLE = NB_SAMPLE_TOTAL + NB_SAMPLE_UNSORTED + NB_SAMPLE_BIOMETRY;
-
- public static final int NB_SAMPLE_DATA = NB_SAMPLE_DATA_TOTAL + NB_SAMPLE_DATA_UNSORTED + NB_SAMPLE_DATA_BIOMETRY;
-
- public static final int NB_DATA_ACQUISITION = 1;
-
- public static final int NB_DATA_PROCESSING = 1;
-
- public static final int NB_CELL = 26668;
-
- public static final int NB_DATA = 264478;
-
- public static final int NB_LENGTH_AGE_KEY = 404;
-
- public static final int NB_LENGTH_WEIGHT_KEY = 7;
-
- public static final int NB_ECHOTYPE = 8;
-
public void assertImportCommonData() throws TopiaException {
- assertNbEntities(Voyage.class, NB_VOYAGE);
- assertNbEntities(Transit.class, NB_TRANSIT);
- assertNbEntities(Transect.class, NB_TRANSECT);
+ assertNbEntities(Voyage.class, fixtures.NB_VOYAGE());
+ assertNbEntities(Transit.class, fixtures.NB_TRANSIT());
+ assertNbEntities(Transect.class, fixtures.NB_TRANSECT());
}
public void assertImportOperations() throws TopiaException {
- assertNbEntities(Operation.class, NB_OPERATION);
- assertNbEntities(OperationMetadataValue.class, NB_OPERATION_METADATAVALUE);
- assertNbEntities(GearMetadataValue.class, NB_GEAR_METADATAVALUE);
+ assertNbEntities(Operation.class, fixtures.NB_OPERATION());
+ assertNbEntities(OperationMetadataValue.class, fixtures.NB_OPERATION_METADATAVALUE());
+ assertNbEntities(GearMetadataValue.class, fixtures.NB_GEAR_METADATAVALUE());
}
public void assertImportSampleDatas() throws TopiaException {
- assertNbEntities(Sample.class, NB_SAMPLE);
- assertNbEntities(SampleData.class, NB_SAMPLE_DATA);
+ assertNbEntities(Sample.class, fixtures.NB_SAMPLE());
+ assertNbEntities(SampleData.class, fixtures.NB_SAMPLE_DATA());
}
public void assertImportAcousticDatas() throws TopiaException {
- assertNbEntities(DataAcquisition.class, NB_DATA_ACQUISITION);
- assertNbEntities(DataProcessing.class, NB_DATA_PROCESSING);
- assertNbEntities(Cell.class, NB_CELL);
- assertNbEntities(Data.class, NB_DATA);
+ assertNbEntities(DataAcquisition.class, fixtures.NB_DATA_ACQUISITION());
+ assertNbEntities(DataProcessing.class, fixtures.NB_DATA_PROCESSING());
+ assertNbEntities(Cell.class, fixtures.NB_CELL());
+ assertNbEntities(Data.class, fixtures.NB_DATA());
}
public void assertImportVoyageResult() throws TopiaException {
- assertNbEntities(LengthAgeKey.class, NB_LENGTH_AGE_KEY);
- assertNbEntities(LengthWeightKey.class, NB_LENGTH_WEIGHT_KEY);
- assertNbEntities(Echotype.class, NB_ECHOTYPE);
+ assertNbEntities(LengthAgeKey.class, fixtures.NB_LENGTH_AGE_KEY());
+ assertNbEntities(LengthWeightKey.class, fixtures.NB_LENGTH_WEIGHT_KEY());
+ assertNbEntities(Echotype.class, fixtures.NB_ECHOTYPE());
}
protected <M extends AbstractImportConfiguration, S extends AbstractImportDataService<M>>
Modified: trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/AcousticImportServiceIT.java
===================================================================
--- trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/AcousticImportServiceIT.java 2012-09-10 16:00:37 UTC (rev 643)
+++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/AcousticImportServiceIT.java 2012-09-11 12:48:41 UTC (rev 644)
@@ -41,7 +41,7 @@
public class AcousticImportServiceIT extends AbstractImportDataServiceIT {
protected FakeEchoBaseServiceContext initContext() {
- return new FakeEchoBaseServiceContext(IMPORT_DATA_ECHOBASE_CATCHES);
+ return new FakeEchoBaseServiceContext(fixtures.IMPORT_DATA_ECHOBASE_CATCHES());
}
protected String[] getImportPath(String filename) {
@@ -62,7 +62,7 @@
new AcousticImportConfiguration(getLocale());
conf.setVoyageId(getVoyageId());
- conf.setVesselId(VESSEL_ID);
+ conf.setVesselId(fixtures.VESSEL_ID());
conf.setAcousticDensityUnit("acousticDensityUnit");
conf.setAcquisitionSoftwareVersionER60("acquisitionSoftwareVersionER60");
conf.setAcquisitionSoftwareVersionME70("acquisitionSoftwareVersionME70");
@@ -85,12 +85,12 @@
List<EchoBaseCsvFileImportResult> result;
result = doImport(conf, AcousticImportService.class, 1);
- assertNbIDs(result, 0, NB_CELL);
+ assertNbIDs(result, 0, fixtures.NB_CELL());
- assertCsvImportResult(result, 0, DataAcquisition.class, NB_DATA_ACQUISITION);
- assertCsvImportResult(result, 0, DataProcessing.class, NB_DATA_PROCESSING);
- assertCsvImportResult(result, 0, Cell.class, NB_CELL);
- assertCsvImportResult(result, 0, Data.class, NB_DATA);
+ assertCsvImportResult(result, 0, DataAcquisition.class, fixtures.NB_DATA_ACQUISITION());
+ assertCsvImportResult(result, 0, DataProcessing.class, fixtures.NB_DATA_PROCESSING());
+ assertCsvImportResult(result, 0, Cell.class, fixtures.NB_CELL());
+ assertCsvImportResult(result, 0, Data.class, fixtures.NB_DATA());
assertImportAcousticDatas();
}
Modified: trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/CatchesImportServiceIT.java
===================================================================
--- trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/CatchesImportServiceIT.java 2012-09-10 16:00:37 UTC (rev 643)
+++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/CatchesImportServiceIT.java 2012-09-11 12:48:41 UTC (rev 644)
@@ -41,7 +41,7 @@
public class CatchesImportServiceIT extends AbstractImportDataServiceIT {
protected FakeEchoBaseServiceContext initContext() {
- return new FakeEchoBaseServiceContext(IMPORT_DATA_ECHOBASE_OPERATION);
+ return new FakeEchoBaseServiceContext(fixtures.IMPORT_DATA_ECHOBASE_OPERATION());
}
protected String[] getImportPath(String filename) {
@@ -70,20 +70,20 @@
List<EchoBaseCsvFileImportResult> result;
result = doImport(conf, CatchesImportService.class, 3);
- assertNbIDs(result, 0, NB_SAMPLE_TOTAL);
+ assertNbIDs(result, 0, fixtures.NB_SAMPLE_TOTAL());
- assertCsvImportResult(result, 0, Sample.class, NB_SAMPLE_TOTAL, 0, NB_SAMPLE);
- assertCsvImportResult(result, 0, SampleData.class, NB_SAMPLE_DATA_TOTAL, 0, NB_SAMPLE_DATA);
+ assertCsvImportResult(result, 0, Sample.class, fixtures.NB_SAMPLE_TOTAL(), 0, fixtures.NB_SAMPLE());
+ assertCsvImportResult(result, 0, SampleData.class, fixtures.NB_SAMPLE_DATA_TOTAL(), 0, fixtures.NB_SAMPLE_DATA());
assertCsvImportResult(result, 0, SpeciesCategory.class, 4, 0, 456);
- assertNbIDs(result, 1, NB_SAMPLE_UNSORTED);
- assertCsvImportResult(result, 1, Sample.class, NB_SAMPLE_UNSORTED, 0, NB_SAMPLE);
- assertCsvImportResult(result, 1, SampleData.class, NB_SAMPLE_DATA_UNSORTED, 0, NB_SAMPLE_DATA);
+ assertNbIDs(result, 1, fixtures.NB_SAMPLE_UNSORTED());
+ assertCsvImportResult(result, 1, Sample.class, fixtures.NB_SAMPLE_UNSORTED(), 0, fixtures.NB_SAMPLE());
+ assertCsvImportResult(result, 1, SampleData.class, fixtures.NB_SAMPLE_DATA_UNSORTED(), 0, fixtures.NB_SAMPLE_DATA());
assertCsvImportResult(result, 1, SpeciesCategory.class, 9, 0, 456);
- assertNbIDs(result, 2, NB_SAMPLE_BIOMETRY);
- assertCsvImportResult(result, 2, Sample.class, NB_SAMPLE_BIOMETRY, 0, NB_SAMPLE);
- assertCsvImportResult(result, 2, SampleData.class, NB_SAMPLE_DATA_BIOMETRY, 0, NB_SAMPLE_DATA);
+ assertNbIDs(result, 2, fixtures.NB_SAMPLE_BIOMETRY());
+ assertCsvImportResult(result, 2, Sample.class, fixtures.NB_SAMPLE_BIOMETRY(), 0, fixtures.NB_SAMPLE());
+ assertCsvImportResult(result, 2, SampleData.class, fixtures.NB_SAMPLE_DATA_BIOMETRY(), 0, fixtures.NB_SAMPLE_DATA());
assertImportSampleDatas();
}
@@ -107,9 +107,9 @@
List<EchoBaseCsvFileImportResult> result;
result = doImport(conf, CatchesImportService.class, 1);
- assertNbIDs(result, 0, NB_SAMPLE_TOTAL);
- assertCsvImportResult(result, 0, Sample.class, NB_SAMPLE_TOTAL);
- assertCsvImportResult(result, 0, SampleData.class, NB_SAMPLE_DATA_TOTAL);
+ assertNbIDs(result, 0, fixtures.NB_SAMPLE_TOTAL());
+ assertCsvImportResult(result, 0, Sample.class, fixtures.NB_SAMPLE_TOTAL());
+ assertCsvImportResult(result, 0, SampleData.class, fixtures.NB_SAMPLE_DATA_TOTAL());
}
@Ignore
@@ -131,9 +131,9 @@
List<EchoBaseCsvFileImportResult> result;
result = doImport(conf, CatchesImportService.class, 1);
- assertNbIDs(result, 0, NB_SAMPLE_UNSORTED);
- assertCsvImportResult(result, 0, Sample.class, NB_SAMPLE_UNSORTED);
- assertCsvImportResult(result, 0, SampleData.class, NB_SAMPLE_DATA_UNSORTED);
+ assertNbIDs(result, 0, fixtures.NB_SAMPLE_UNSORTED());
+ assertCsvImportResult(result, 0, Sample.class, fixtures.NB_SAMPLE_UNSORTED());
+ assertCsvImportResult(result, 0, SampleData.class, fixtures.NB_SAMPLE_DATA_UNSORTED());
}
@Ignore
@@ -155,9 +155,9 @@
List<EchoBaseCsvFileImportResult> result;
result = doImport(conf, CatchesImportService.class, 1);
- assertNbIDs(result, 0, NB_SAMPLE_BIOMETRY);
- assertCsvImportResult(result, 0, Sample.class, NB_SAMPLE_BIOMETRY);
- assertCsvImportResult(result, 0, SampleData.class, NB_SAMPLE_DATA_BIOMETRY);
+ assertNbIDs(result, 0, fixtures.NB_SAMPLE_BIOMETRY());
+ assertCsvImportResult(result, 0, Sample.class, fixtures.NB_SAMPLE_BIOMETRY());
+ assertCsvImportResult(result, 0, SampleData.class, fixtures.NB_SAMPLE_DATA_BIOMETRY());
}
}
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 2012-09-10 16:00:37 UTC (rev 643)
+++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/CommonAllImportServiceIT.java 2012-09-11 12:48:41 UTC (rev 644)
@@ -43,7 +43,7 @@
@Override
protected FakeEchoBaseServiceContext initContext() {
return new FakeEchoBaseServiceContext(
- IMPORT_DATA_ECHOBASE_NO_DATA);
+ fixtures.IMPORT_DATA_ECHOBASE_NO_DATA());
}
protected String[] getImportPath(String filename) {
@@ -62,9 +62,9 @@
CommonImportConfiguration conf =
new CommonImportConfiguration(getLocale());
- conf.setAreaOfOperationId(AREA_OF_OPERATION_ID);
+ conf.setAreaOfOperationId(fixtures.AREA_OF_OPERATION_ID());
conf.setDatum("datum");
- conf.setMissionId(MISSION_ID);
+ conf.setMissionId(fixtures.MISSION_ID());
conf.setTransectBinUnitsPingAxis("transectBinUnitsPingAxis");
conf.setTransectGeospatialVerticalPositive("transectGeospatialVerticalPositive");
conf.setTransectLicence("transectLicence");
@@ -80,14 +80,14 @@
List<EchoBaseCsvFileImportResult> result;
result = doImport(conf, CommonAllImportService.class, 3);
- assertNbIDs(result, 0, NB_VOYAGE);
- assertCsvImportResult(result, 0, Voyage.class, NB_VOYAGE);
+ assertNbIDs(result, 0, fixtures.NB_VOYAGE());
+ assertCsvImportResult(result, 0, Voyage.class, fixtures.NB_VOYAGE());
assertNbIDs(result, 1, 0);
- assertCsvImportResult(result, 1, Transit.class, NB_TRANSIT);
+ assertCsvImportResult(result, 1, Transit.class, fixtures.NB_TRANSIT());
assertNbIDs(result, 2, 0);
- assertCsvImportResult(result, 2, Transect.class, NB_TRANSECT);
+ assertCsvImportResult(result, 2, Transect.class, fixtures.NB_TRANSECT());
assertImportCommonData();
}
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 2012-09-10 16:00:37 UTC (rev 643)
+++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/CommonTransectImportServiceIT.java 2012-09-11 12:48:41 UTC (rev 644)
@@ -40,7 +40,8 @@
public class CommonTransectImportServiceIT extends AbstractImportDataServiceIT {
protected FakeEchoBaseServiceContext initContext() {
- return new FakeEchoBaseServiceContext(IMPORT_DATA_ECHOBASE_COMMON_DATA);
+ return new FakeEchoBaseServiceContext(
+ fixtures.IMPORT_DATA_ECHOBASE_COMMON_DATA());
}
protected String[] getImportPath(String filename) {
@@ -57,7 +58,7 @@
CommonImportConfiguration conf =
new CommonImportConfiguration(getLocale());
- conf.setAreaOfOperationId(AREA_OF_OPERATION_ID);
+ conf.setAreaOfOperationId(fixtures.AREA_OF_OPERATION_ID());
conf.setDatum("datum");
conf.setVoyageId(getVoyageId());
conf.setTransectBinUnitsPingAxis("transectBinUnitsPingAxis");
@@ -76,8 +77,8 @@
List<EchoBaseCsvFileImportResult> result;
result = doImport(conf, CommonTransectImportService.class, 1);
- assertNbIDs(result, 0, NB_TRANSECT);
- assertCsvImportResult(result, 0, Transect.class, NB_TRANSECT);
+ assertNbIDs(result, 0, fixtures.NB_TRANSECT());
+ assertCsvImportResult(result, 0, Transect.class, fixtures.NB_TRANSECT());
assertImportCommonData();
}
Modified: trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/OperationImportServiceIT.java
===================================================================
--- trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/OperationImportServiceIT.java 2012-09-10 16:00:37 UTC (rev 643)
+++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/OperationImportServiceIT.java 2012-09-11 12:48:41 UTC (rev 644)
@@ -40,7 +40,8 @@
public class OperationImportServiceIT extends AbstractImportDataServiceIT {
protected FakeEchoBaseServiceContext initContext() {
- return new FakeEchoBaseServiceContext(IMPORT_DATA_ECHOBASE_COMMON_DATA);
+ return new FakeEchoBaseServiceContext(
+ fixtures.IMPORT_DATA_ECHOBASE_COMMON_DATA());
}
protected String[] getImportPath(String filename) {
@@ -71,14 +72,14 @@
List<EchoBaseCsvFileImportResult> result;
result = doImport(conf, OperationImportService.class, 3);
- assertNbIDs(result, 0, NB_OPERATION);
- assertCsvImportResult(result, 0, Operation.class, NB_OPERATION);
+ assertNbIDs(result, 0, fixtures.NB_OPERATION());
+ assertCsvImportResult(result, 0, Operation.class, fixtures.NB_OPERATION());
assertNbIDs(result, 1, 0);
- assertCsvImportResult(result, 1, OperationMetadataValue.class, NB_OPERATION_METADATAVALUE);
+ assertCsvImportResult(result, 1, OperationMetadataValue.class, fixtures.NB_OPERATION_METADATAVALUE());
assertNbIDs(result, 2, 0);
- assertCsvImportResult(result, 2, GearMetadataValue.class, NB_GEAR_METADATAVALUE);
+ assertCsvImportResult(result, 2, GearMetadataValue.class, fixtures.NB_GEAR_METADATAVALUE());
assertImportOperations();
}
Modified: trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/ResultsEsduCellImportServiceIT.java
===================================================================
--- trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/ResultsEsduCellImportServiceIT.java 2012-09-10 16:00:37 UTC (rev 643)
+++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/ResultsEsduCellImportServiceIT.java 2012-09-11 12:48:41 UTC (rev 644)
@@ -46,7 +46,7 @@
protected FakeEchoBaseServiceContext initContext() {
return new FakeEchoBaseServiceContext(
- IMPORT_DATA_ECHOBASE_CATCHES_AND_VOYAGE_RESULT);
+ fixtures.IMPORT_DATA_ECHOBASE_CATCHES_AND_VOYAGE_RESULT());
}
protected String[] getImportPath(String filename) {
Modified: trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/ResultsMapCellImportServiceIT.java
===================================================================
--- trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/ResultsMapCellImportServiceIT.java 2012-09-10 16:00:37 UTC (rev 643)
+++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/ResultsMapCellImportServiceIT.java 2012-09-11 12:48:41 UTC (rev 644)
@@ -43,7 +43,7 @@
protected FakeEchoBaseServiceContext initContext() {
return new FakeEchoBaseServiceContext(
- IMPORT_DATA_ECHOBASE_CATCHES_AND_VOYAGE_RESULT);
+ fixtures.IMPORT_DATA_ECHOBASE_CATCHES_AND_VOYAGE_RESULT());
}
protected String[] getImportPath(String filename) {
@@ -72,7 +72,7 @@
List<EchoBaseCsvFileImportResult> result;
result = doImport(conf, ResultsMapCellImportService.class, 1);
- assertNbIDs(result,0,380);
+ assertNbIDs(result, 0, 380);
assertCsvImportResult(result, 0, Cell.class, 380);
assertCsvImportResult(result, 0, Data.class, 2280);
Modified: trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/ResultsRegionCellImportServiceIT.java
===================================================================
--- trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/ResultsRegionCellImportServiceIT.java 2012-09-10 16:00:37 UTC (rev 643)
+++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/ResultsRegionCellImportServiceIT.java 2012-09-11 12:48:41 UTC (rev 644)
@@ -44,7 +44,7 @@
protected FakeEchoBaseServiceContext initContext() {
return new FakeEchoBaseServiceContext(
- IMPORT_DATA_ECHOBASE_CATCHES_AND_VOYAGE_RESULT);
+ fixtures.IMPORT_DATA_ECHOBASE_CATCHES_AND_VOYAGE_RESULT());
}
protected String[] getImportPath(String filename) {
Modified: trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/ResultsVoyageImportServiceIT.java
===================================================================
--- trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/ResultsVoyageImportServiceIT.java 2012-09-10 16:00:37 UTC (rev 643)
+++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/ResultsVoyageImportServiceIT.java 2012-09-11 12:48:41 UTC (rev 644)
@@ -42,7 +42,7 @@
public class ResultsVoyageImportServiceIT extends AbstractImportDataServiceIT {
protected FakeEchoBaseServiceContext initContext() {
- return new FakeEchoBaseServiceContext(IMPORT_DATA_ECHOBASE_CATCHES);
+ return new FakeEchoBaseServiceContext(fixtures.IMPORT_DATA_ECHOBASE_CATCHES());
}
protected String[] getImportPath(String filename) {
@@ -75,14 +75,14 @@
List<EchoBaseCsvFileImportResult> result;
result = doImport(conf, ResultsVoyageImportService.class, 3);
- assertNbIDs(result, 0, NB_LENGTH_AGE_KEY);
- assertCsvImportResult(result, 0, LengthAgeKey.class, NB_LENGTH_AGE_KEY);
+ assertNbIDs(result, 0, fixtures.NB_LENGTH_AGE_KEY());
+ assertCsvImportResult(result, 0, LengthAgeKey.class, fixtures.NB_LENGTH_AGE_KEY());
- assertNbIDs(result, 1, NB_LENGTH_WEIGHT_KEY);
- assertCsvImportResult(result, 1, LengthWeightKey.class, NB_LENGTH_WEIGHT_KEY);
+ assertNbIDs(result, 1, fixtures.NB_LENGTH_WEIGHT_KEY());
+ assertCsvImportResult(result, 1, LengthWeightKey.class, fixtures.NB_LENGTH_WEIGHT_KEY());
- assertNbIDs(result, 2, NB_ECHOTYPE);
- assertCsvImportResult(result, 2, Echotype.class, NB_ECHOTYPE);
+ assertNbIDs(result, 2, fixtures.NB_ECHOTYPE());
+ assertCsvImportResult(result, 2, Echotype.class, fixtures.NB_ECHOTYPE());
}
@Ignore
@@ -107,8 +107,8 @@
List<EchoBaseCsvFileImportResult> result;
result = doImport(conf, ResultsVoyageImportService.class, 1);
- assertNbIDs(result, 0, NB_LENGTH_AGE_KEY);
- assertCsvImportResult(result, 0, LengthAgeKey.class, NB_LENGTH_AGE_KEY);
+ assertNbIDs(result, 0, fixtures.NB_LENGTH_AGE_KEY());
+ assertCsvImportResult(result, 0, LengthAgeKey.class, fixtures.NB_LENGTH_AGE_KEY());
}
@Ignore
@@ -133,8 +133,8 @@
List<EchoBaseCsvFileImportResult> result;
result = doImport(conf, ResultsVoyageImportService.class, 1);
- assertNbIDs(result, 0, NB_LENGTH_WEIGHT_KEY);
- assertCsvImportResult(result, 0, LengthWeightKey.class, NB_LENGTH_WEIGHT_KEY);
+ assertNbIDs(result, 0, fixtures.NB_LENGTH_WEIGHT_KEY());
+ assertCsvImportResult(result, 0, LengthWeightKey.class, fixtures.NB_LENGTH_WEIGHT_KEY());
}
@Ignore
@@ -158,8 +158,8 @@
List<EchoBaseCsvFileImportResult> result;
result = doImport(conf, ResultsVoyageImportService.class, 1);
- assertNbIDs(result, 0, NB_ECHOTYPE);
- assertCsvImportResult(result, 0, Echotype.class, NB_ECHOTYPE);
+ assertNbIDs(result, 0, fixtures.NB_ECHOTYPE());
+ assertCsvImportResult(result, 0, Echotype.class, fixtures.NB_ECHOTYPE());
}
}
\ No newline at end of file
Modified: trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/EntityLoader.java
===================================================================
--- trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/EntityLoader.java 2012-09-10 16:00:37 UTC (rev 643)
+++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/EntityLoader.java 2012-09-11 12:48:41 UTC (rev 644)
@@ -37,6 +37,7 @@
import fr.ifremer.echobase.services.EchoBaseServiceContext;
import fr.ifremer.echobase.services.EchoBaseServiceSupport;
import fr.ifremer.echobase.services.exportdb.ExportService;
+import fr.ifremer.echobase.services.importdb.EchoBaseImportModelFactory;
import fr.ifremer.echobase.services.importdb.ImportService;
import fr.ifremer.echobase.tools.FileType;
import org.apache.commons.io.IOUtils;
@@ -46,11 +47,12 @@
import org.nuiton.topia.persistence.TopiaDAO;
import org.nuiton.topia.persistence.TopiaEntity;
import org.nuiton.topia.persistence.TopiaId;
+import org.nuiton.topia.persistence.csv.EntityCsvModel;
+import org.nuiton.topia.persistence.csv.in.CsvImportResult;
+import org.nuiton.topia.persistence.csv.in.ImportModelFactory;
import org.nuiton.topia.persistence.metadata.AssociationMeta;
import org.nuiton.topia.persistence.metadata.MetaFilenameAware;
import org.nuiton.topia.persistence.metadata.TableMeta;
-import org.nuiton.topia.persistence.csv.in.CsvImportResult;
-import org.nuiton.topia.persistence.csv.EntityCsvModel;
import org.nuiton.util.FileUtil;
import org.nuiton.util.csv.Import;
import org.nuiton.util.csv.ImportModel;
@@ -100,6 +102,8 @@
private final EchoBaseEntityEnum[] extraDependencies;
+ private ImportModelFactory<EchoBaseEntityEnum> modelFactory;
+
protected EntityLoader(Class<E> entityClass,
FileType... fileTypes) {
this(entityClass, null, null, EMPTY_DEPENDENCIES_ARRAY, fileTypes);
@@ -151,6 +155,8 @@
} else {
parentAssociationMeta = null;
}
+
+ modelFactory = EchoBaseImportModelFactory.newFactory(this);
}
protected EntityCsvModel<EchoBaseEntityEnum, E> createCsvImportModel(TableMeta<EchoBaseEntityEnum> meta) {
@@ -381,10 +387,6 @@
return getDAO(entityClass);
}
- protected final ImportService getImportService() {
- return getService(ImportService.class);
- }
-
protected final ExportService getExportService() {
return getService(ExportService.class);
}
@@ -423,8 +425,6 @@
Reader reader,
CsvImportResult<EchoBaseEntityEnum> csvResult) throws IOException {
- ImportService service = getImportService();
-
if (entry instanceof AssociationMeta) {
// load a association input
@@ -441,7 +441,7 @@
Map<String, TopiaEntity> targetsById =
Maps.uniqueIndex(targetEntities, TopiaId.GET_TOPIA_ID);
- ImportModel<Map<String, Object>> model = service.buildForImport(associationMeta);
+ ImportModel<Map<String, Object>> model = modelFactory.buildForImport(associationMeta);
EchoBaseEntityEnum sourceType = associationMeta.getSource();
@@ -480,7 +480,7 @@
log.info("Will import " + tableMeta);
}
- ImportModel<TopiaEntity> model = service.buildForImport(tableMeta);
+ ImportModel<TopiaEntity> model = modelFactory.buildForImport(tableMeta);
Import<TopiaEntity> importer = Import.newImport(model, reader);
Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseApplicationListener.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseApplicationListener.java 2012-09-10 16:00:37 UTC (rev 643)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseApplicationListener.java 2012-09-11 12:48:41 UTC (rev 644)
@@ -75,6 +75,23 @@
protected static final Log log =
LogFactory.getLog(EchoBaseApplicationListener.class);
+ static {
+ try {
+ Class.forName("org.postgresql.Driver");
+ } catch (ClassNotFoundException e) {
+ if (log.isErrorEnabled()) {
+ log.error("Could not find pg driver", e);
+ }
+ }
+ try {
+ Class.forName("org.h2.Driver");
+ } catch (ClassNotFoundException e) {
+ if (log.isErrorEnabled()) {
+ log.error("Could not find h2 driver", e);
+ }
+ }
+ }
+
@Override
public void contextInitialized(ServletContextEvent sce) {
Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportDb/Configure.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportDb/Configure.java 2012-09-10 16:00:37 UTC (rev 643)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportDb/Configure.java 2012-09-11 12:48:41 UTC (rev 644)
@@ -23,7 +23,10 @@
*/
package fr.ifremer.echobase.ui.actions.exportDb;
+import com.opensymphony.xwork2.interceptor.annotations.InputConfig;
+import fr.ifremer.echobase.entities.data.Voyage;
import fr.ifremer.echobase.services.exportdb.ExportDbConfiguration;
+import fr.ifremer.echobase.services.exportdb.ExportDbMode;
import fr.ifremer.echobase.ui.actions.AbstractConfigureAction;
import org.apache.commons.io.FileUtils;
import org.apache.commons.logging.Log;
@@ -32,6 +35,7 @@
import java.io.File;
import java.io.IOException;
+import java.util.Map;
/**
* Configure the complete db export.
@@ -46,19 +50,67 @@
/** Logger. */
private static final Log log = LogFactory.getLog(Configure.class);
+ /** Universe of possible export modes. */
+ protected Map<String, String> modes;
+
+ /** Universe of voyages to export in db. */
+ protected Map<String, String> voyages;
+
public Configure() {
super(ExportDbConfiguration.class);
}
+ public Map<String, String> getModes() {
+ return modes;
+ }
+
+ public Map<String, String> getVoyages() {
+ return voyages;
+ }
+
+ public void setFileName(String fileName) {
+ getModel().setFileName(fileName);
+ }
+
+ @InputConfig(methodName = "input")
+ public String configureReferential() throws Exception {
+ return execute();
+ }
+
+ @InputConfig(methodName = "input")
+ public String configureReferentialAndData() throws Exception {
+ return execute();
+ }
+
+ @InputConfig(methodName = "input")
+ public String configureData() throws Exception {
+ return execute();
+ }
+
+ @InputConfig(methodName = "input")
+ public String configureAll() throws Exception {
+ return execute();
+ }
+
@Override
protected ExportDbConfiguration createModel() {
ExportDbConfiguration result = new ExportDbConfiguration();
result.setFileName("echobase");
+ result.setComputeSteps(true);
return result;
}
- public void setFileName(String fileName) {
- getModel().setFileName(fileName);
+ @Override
+ protected void prepareInputAction(ExportDbConfiguration model) {
+
+ modes = decorateEnums(ExportDbMode.values());
+
+ if (model.getExportDbMode() == null) {
+
+ model.setExportDbMode(ExportDbMode.ALL);
+ }
+
+ voyages = loadSortAndDecorate(Voyage.class);
}
@Override
Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportDb/Export.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportDb/Export.java 2012-09-10 16:00:37 UTC (rev 643)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/exportDb/Export.java 2012-09-11 12:48:41 UTC (rev 644)
@@ -53,7 +53,7 @@
log.info("Start export to file " + model.getFileName());
}
- service.exportDb(model);
+ service.doExport(model);
}
}
\ No newline at end of file
Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importDb/Configure.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importDb/Configure.java 2012-09-10 16:00:37 UTC (rev 643)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importDb/Configure.java 2012-09-11 12:48:41 UTC (rev 644)
@@ -23,6 +23,7 @@
*/
package fr.ifremer.echobase.ui.actions.importDb;
+import com.opensymphony.xwork2.interceptor.annotations.InputConfig;
import fr.ifremer.echobase.io.EchoBaseIOUtil;
import fr.ifremer.echobase.io.InputFile;
import fr.ifremer.echobase.services.importdb.ImportDbConfiguration;
@@ -50,7 +51,6 @@
/** Logger. */
private static final Log log = LogFactory.getLog(Configure.class);
-
/** Universe of possible import modes. */
protected Map<String, String> modes;
@@ -94,15 +94,18 @@
EchoBaseIOUtil.copyFile(input, dataDirectory);
}
- public String execute_referential() throws Exception {
+ @InputConfig(methodName = "input")
+ public String configureReferential() throws Exception {
return execute();
}
- public String execute_voyage() throws Exception {
+ @InputConfig(methodName = "input")
+ public String configureData() throws Exception {
return execute();
}
- public String execute_free() throws Exception {
+ @InputConfig(methodName = "input")
+ public String configureFree() throws Exception {
return execute();
}
Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importDb/Import.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importDb/Import.java 2012-09-10 16:00:37 UTC (rev 643)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importDb/Import.java 2012-09-11 12:48:41 UTC (rev 644)
@@ -69,18 +69,18 @@
ImportDbMode importDbMode = model.getImportDbMode();
Locale locale = getLocale();
EchoBaseUser user = getEchoBaseSession().getUser();
+ service.doImport(model, user);
+
switch (importDbMode) {
case REFERENTIAL:
- service.importReferential(model, user);
addFlashMessage(_("echobase.info.import.succeded"));
result = l_(locale, "echobase.importDb.referentialResult",
model.getActionTime());
break;
- case VOYAGE:
- service.importLegacyData(model, user);
+ case DATA:
addFlashMessage(_("echobase.info.import.succeded"));
result = l_(locale, "echobase.importDb.legacyVoyageResult",
@@ -88,7 +88,6 @@
break;
case FREE:
- service.importDb(model, user, true, false);
addFlashMessage(_("echobase.info.import.succeded"));
result = l_(locale, "echobase.importDb.freeResult",
Modified: trunk/echobase-ui/src/main/resources/config/struts-exportDb.xml
===================================================================
--- trunk/echobase-ui/src/main/resources/config/struts-exportDb.xml 2012-09-10 16:00:37 UTC (rev 643)
+++ trunk/echobase-ui/src/main/resources/config/struts-exportDb.xml 2012-09-11 12:48:41 UTC (rev 644)
@@ -30,8 +30,14 @@
<package name="exportDb" extends="loggued" namespace="/exportDb">
+ <!-- Configure export (input) -->
+ <action name="configure" method="input"
+ class="fr.ifremer.echobase.ui.actions.exportDb.Configure">
+ <result name="input">/WEB-INF/jsp/exportDb/configure.jsp</result>
+ </action>
+
<!-- Configure export -->
- <action name="configure"
+ <action name="configure*" method="configure{1}"
class="fr.ifremer.echobase.ui.actions.exportDb.Configure">
<interceptor-ref name="prepareParamsStackLoggued"/>
<result name="input">/WEB-INF/jsp/exportDb/configure.jsp</result>
Modified: trunk/echobase-ui/src/main/resources/config/struts-importDb.xml
===================================================================
--- trunk/echobase-ui/src/main/resources/config/struts-importDb.xml 2012-09-10 16:00:37 UTC (rev 643)
+++ trunk/echobase-ui/src/main/resources/config/struts-importDb.xml 2012-09-11 12:48:41 UTC (rev 644)
@@ -30,9 +30,15 @@
<package name="importDb" extends="loggued" namespace="/importDb">
- <!-- Configure import -->
- <action name="configure-*" method="execute_{1}"
+ <!-- Configure import (input) -->
+ <action name="configure" method="input"
class="fr.ifremer.echobase.ui.actions.importDb.Configure">
+ <result name="input">/WEB-INF/jsp/importDb/configure.jsp</result>
+ </action>
+
+ <!-- Configure import (validate) -->
+ <action name="configure*" method="configure{1}"
+ class="fr.ifremer.echobase.ui.actions.importDb.Configure">
<interceptor-ref name="prepareParamsStackLoggued"/>
<result name="input">/WEB-INF/jsp/importDb/configure.jsp</result>
<result type="redirectAction">
Added: trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/importDb/Configure-configureData-validation.xml
===================================================================
--- trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/importDb/Configure-configureData-validation.xml (rev 0)
+++ trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/importDb/Configure-configureData-validation.xml 2012-09-11 12:48:41 UTC (rev 644)
@@ -0,0 +1,35 @@
+<!--
+ #%L
+ EchoBase :: UI
+
+ $Id$
+ $HeadURL$
+ %%
+ Copyright (C) 2011 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%
+ -->
+<!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator 1.0.3//EN"
+ "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">
+<validators>
+
+ <field name="input">
+ <field-validator type="fieldexpression">
+ <param name="expression">model.input.file != null</param>
+ <message key="echobase.error.importDb.input.required"/>
+ </field-validator>
+ </field>
+
+</validators>
\ No newline at end of file
Property changes on: trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/importDb/Configure-configureData-validation.xml
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Added: trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/importDb/Configure-configureFree-validation.xml
===================================================================
--- trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/importDb/Configure-configureFree-validation.xml (rev 0)
+++ trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/importDb/Configure-configureFree-validation.xml 2012-09-11 12:48:41 UTC (rev 644)
@@ -0,0 +1,35 @@
+<!--
+ #%L
+ EchoBase :: UI
+
+ $Id$
+ $HeadURL$
+ %%
+ Copyright (C) 2011 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%
+ -->
+<!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator 1.0.3//EN"
+ "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">
+<validators>
+
+ <field name="input">
+ <field-validator type="fieldexpression">
+ <param name="expression">model.input.file != null</param>
+ <message key="echobase.error.importDb.input.required"/>
+ </field-validator>
+ </field>
+
+</validators>
\ No newline at end of file
Property changes on: trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/importDb/Configure-configureFree-validation.xml
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Added: trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/importDb/Configure-configureReferential-validation.xml
===================================================================
--- trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/importDb/Configure-configureReferential-validation.xml (rev 0)
+++ trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/importDb/Configure-configureReferential-validation.xml 2012-09-11 12:48:41 UTC (rev 644)
@@ -0,0 +1,39 @@
+<!--
+ #%L
+ EchoBase :: UI
+
+ $Id$
+ $HeadURL$
+ %%
+ Copyright (C) 2011 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%
+ -->
+<!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator 1.0.3//EN"
+ "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">
+<validators>
+
+ <field name="input">
+ <field-validator type="fieldexpression" short-circuit="true">
+ <param name="expression">model.input.file != null</param>
+ <message key="echobase.error.importDb.input.required"/>
+ </field-validator>
+ <field-validator type="fieldexpression" short-circuit="true">
+ <param name="expression">model.input.fileName.endsWith(".echobase")</param>
+ <message key="echobase.error.importDb.input.extension.mismatch"/>
+ </field-validator>
+ </field>
+
+</validators>
\ No newline at end of file
Property changes on: trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/importDb/Configure-configureReferential-validation.xml
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Deleted: trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/importDb/Configure-validation.xml
===================================================================
--- trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/importHistorical/Configure-validation.xml 2012-09-10 16:00:37 UTC (rev 643)
+++ trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/importDb/Configure-validation.xml 2012-09-11 12:48:41 UTC (rev 644)
@@ -1,35 +0,0 @@
-<!--
- #%L
- EchoBase :: UI
-
- $Id$
- $HeadURL$
- %%
- Copyright (C) 2011 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%
- -->
-<!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator 1.0.3//EN"
- "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">
-<validators>
-
- <field name="input">
- <field-validator type="fieldexpression">
- <param name="expression">model.input.file != null</param>
- <message key="echobase.error.importHistorical.input.required"/>
- </field-validator>
- </field>
-
-</validators>
\ No newline at end of file
Modified: trunk/echobase-ui/src/main/resources/i18n/echobase-ui_en_GB.properties
===================================================================
--- trunk/echobase-ui/src/main/resources/i18n/echobase-ui_en_GB.properties 2012-09-10 16:00:37 UTC (rev 643)
+++ trunk/echobase-ui/src/main/resources/i18n/echobase-ui_en_GB.properties 2012-09-11 12:48:41 UTC (rev 644)
@@ -31,8 +31,9 @@
echobase.action.save=Save
echobase.action.saveSqlQuery=Update query
echobase.action.show.embedded.documentation=How to use a portable database
+echobase.action.show.exportDb.documentation=How to export a database
echobase.action.show.import.documentation=How to import data
-echobase.action.show.importDb.documentation=How to import db data
+echobase.action.show.importDb.documentation=How to import a database
echobase.action.showImportLogs=Liste des imports\=Show import logs
echobase.action.toEnglish=English
echobase.action.toFrench=French
@@ -70,6 +71,7 @@
echobase.common.esduByEchotypeFile=
echobase.common.esduBySpeciesAndAgeCategoryFile=
echobase.common.esduBySpeciesAndSizeCategoryFile=
+echobase.common.exportDbMode=Mode
echobase.common.gearMetadataFile=
echobase.common.id=ID
echobase.common.imortType=import type
@@ -196,8 +198,9 @@
echobase.error.import.voyage.required=La sélection d'une campagne est obligatoire
echobase.error.import.voyageDescription.required=Description de la campagne non rengeigné
echobase.error.import.voyageFile.required=La sélection d'un fichier Voyage est obligatoire
+echobase.error.importDb.input.extension.mismatch=Import db file must be a .echobase file
+echobase.error.importDb.input.required=Le fichier d'import est obligatoire
echobase.error.importFile.required=Fichier d'import obligatoire
-echobase.error.importHistorical.input.required=Le fichier d'import est obligatoire
echobase.error.invalid.sql=Invalid query\: %s
echobase.error.login.unknown=Unkwown user
echobase.error.login.wrongLogin=Le login est déjà utilisé
@@ -222,11 +225,13 @@
echobase.info.click.to.select=You can select value with a simple click then copy it (Ctrl-C)
echobase.info.dbeditor.propertyDiffsResult=Data import results
echobase.info.documentation=EchoBase online documentation
+echobase.info.downloadFiles=Download EchoBase or some import files
echobase.info.echoBaseForge=Project Forge
echobase.info.echoR=EchoR project
-echobase.info.exportDb.archive=Basebame of the archive, extension <strong>.zip</strong> will be added to it.
+echobase.info.exportDb.archive=Basebame of the archive, extension <strong>.echobase</strong> will be added to it.
echobase.info.import.failed=Import failed
echobase.info.import.succeded=Successful import
+echobase.info.license=License AGPL V3
echobase.info.new.sqlQuery.inprogress=Query creation in progress
echobase.info.new.workingDbConfiguration.inprogress=New working database configuration in progress
echobase.info.no.sqlQuery.saved=No saved SQL query
@@ -235,12 +240,14 @@
echobase.info.no.voyagee.found=No survey selected
echobase.info.no.workingDbConfiguration.saved=No working database configuration saved
echobase.info.no.workingDbConfiguration.selected=Select a working database configuration and then connect
+echobase.info.reportBug=Bug report
echobase.info.sqlQuery.not.modifiable=You have not sufficient rights to update the selected query
echobase.info.update.user.password=Keep empty password field to not modify it.
echobase.info.usefulLinks=Some useful links
echobase.info.user.create=User %s created
echobase.info.user.delete=User %s deleted
echobase.info.user.update=User %s updated
+echobase.info.userSupport=User support
echobase.info.workingDbconfiguration.connected=Connection to the working database '%s' successful
echobase.info.workingDbconfiguration.created=Working database configuration '%s' created
echobase.info.workingDbconfiguration.deleted=Working database configuration '%s' deleted
@@ -279,10 +286,12 @@
echobase.legend.dbeditor.show=Displaying '%s'
echobase.legend.embeddedApplication.configuration=Portable database configuration
echobase.legend.exportDb.configuration.files=Export configuration
+echobase.legend.exportDb.configuration.selectExportDbMode=Select export db mode
echobase.legend.importData.configuration.selectImportType=Type of import selection
echobase.legend.importData.configure=Import configuration
echobase.legend.importData.createMission=Mission caracteristics
echobase.legend.importData.result.resume=Results
+echobase.legend.importDb.configuration=Configure import
echobase.legend.importDb.configuration.files=Import file selection (.echobase file)
echobase.legend.importDb.configuration.freeMode=Free import configuration
echobase.legend.importDb.configuration.legacyVoyageMode=Data import configuration
@@ -297,9 +306,9 @@
echobase.menu.createEmbeddedApplication=Create a portable database
echobase.menu.editData=Modify data
echobase.menu.export=Export data
-echobase.menu.exportDb=Complete database export
+echobase.menu.exportDb=Database export
echobase.menu.importData=Import data
-echobase.menu.importDb=Complete database import
+echobase.menu.importDb=Database import
echobase.menu.logs=Change log
echobase.menu.removeData=Remove data
echobase.menu.users=Manage users
@@ -324,11 +333,11 @@
echobase.title.entityModificationLogs=Change log
echobase.title.export=SQL export
echobase.title.exportDb=Export a complete database
-echobase.title.exportDbProgress=Export the current database
-echobase.title.exportDbResult=Complete database export results
+echobase.title.exportDbProgress=Export database in progress
+echobase.title.exportDbResult=Database export results
echobase.title.exportTable=Export a table
echobase.title.importData.selectImportType=Select type of import
-echobase.title.importDb=Complete database import
+echobase.title.importDb=Database import
echobase.title.importDbProgress=Importing data
echobase.title.importDbResult=Data import results
echobase.title.importLog.detail=Import detail
Modified: trunk/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties
===================================================================
--- trunk/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties 2012-09-10 16:00:37 UTC (rev 643)
+++ trunk/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties 2012-09-11 12:48:41 UTC (rev 644)
@@ -31,8 +31,9 @@
echobase.action.save=Sauvegarder
echobase.action.saveSqlQuery=Mettre à jour
echobase.action.show.embedded.documentation=Comment utiliser une application embarquée
+echobase.action.show.exportDb.documentation=Comment exporter une base
echobase.action.show.import.documentation=Comment importer des données
-echobase.action.show.importDb.documentation=Comment importer des données
+echobase.action.show.importDb.documentation=Comment importer une base
echobase.action.showImportLogs=Liste des imports
echobase.action.toEnglish=En anglais
echobase.action.toFrench=En français
@@ -70,6 +71,7 @@
echobase.common.esduByEchotypeFile=
echobase.common.esduBySpeciesAndAgeCategoryFile=
echobase.common.esduBySpeciesAndSizeCategoryFile=
+echobase.common.exportDbMode=Mode
echobase.common.gearMetadataFile=
echobase.common.id=Identifiant
echobase.common.imortType=Type d'import
@@ -196,8 +198,9 @@
echobase.error.import.voyage.required=La sélection d'une campagne est obligatoire
echobase.error.import.voyageDescription.required=Description de la campagne non rengeigné
echobase.error.import.voyageFile.required=La sélection d'un fichier Voyage est obligatoire
+echobase.error.importDb.input.extension.mismatch=Le fichier n'est pas un fichier .echobase
+echobase.error.importDb.input.required=Le fichier d'import est obligatoire
echobase.error.importFile.required=Fichier d'import obligatoire
-echobase.error.importHistorical.input.required=Le fichier d'import est obligatoire
echobase.error.invalid.sql=Requête non valide \: %s
echobase.error.login.unknown=Utilisateur inconnu
echobase.error.login.wrongLogin=Le login est déjà utilisé
@@ -222,11 +225,13 @@
echobase.info.click.to.select=Vous pouvez sélectionner la valeur en un simple click puis la copier (Ctrl-C)
echobase.info.dbeditor.propertyDiffsResult=Résultat d'import de données
echobase.info.documentation=Documentation en ligne d'EchoBase
+echobase.info.downloadFiles=Télécharger l'application ou des fichiers d'imports
echobase.info.echoBaseForge=Gestion du projet
echobase.info.echoR=Projet EchoR
-echobase.info.exportDb.archive=Il s'agit du nom de l'archive, l'extension <strong>.zip</strong> sera automatiquement rajoutée.
+echobase.info.exportDb.archive=Il s'agit du nom de l'archive, l'extension <strong>.echobase</strong> sera automatiquement rajoutée.
echobase.info.import.failed=L'import a échoué
echobase.info.import.succeded=L'import a réussi
+echobase.info.license=Licence AGPL V3
echobase.info.new.sqlQuery.inprogress=Nouvelle requête en cours de création
echobase.info.new.workingDbConfiguration.inprogress=Nouvelle configuration de base de travail en cours de création
echobase.info.no.sqlQuery.saved=Aucune requête d'export SQL enregistrée
@@ -235,12 +240,14 @@
echobase.info.no.voyagee.found=Aucune campagne à exporter
echobase.info.no.workingDbConfiguration.saved=Aucune configuration de base de travail enregistrée
echobase.info.no.workingDbConfiguration.selected=Sélectionner une configuration pour ensuite vous y connecter
+echobase.info.reportBug=Rapport de bug
echobase.info.sqlQuery.not.modifiable=Vous ne disposez pas des droits nécessaires pour modifier la requête sélectionnée
echobase.info.update.user.password=Pour ne pas modifier le mot de passe laisser ce champs vide.
echobase.info.usefulLinks=Quelques liens utiles
echobase.info.user.create=L'utilisateur '%s' a été créé
echobase.info.user.delete=L'utilisateur '%s' a été supprimé
echobase.info.user.update=L'utilisateur '%s' a été mis à jour
+echobase.info.userSupport=Support utilisateur
echobase.info.workingDbconfiguration.connected=Connexion à la base de travail '%s' réussie
echobase.info.workingDbconfiguration.created=Configuration à la base de travail '%s' créée
echobase.info.workingDbconfiguration.deleted=Configuration à la base de travail '%s' supprimée
@@ -279,10 +286,12 @@
echobase.legend.dbeditor.show=Visualisation de '%s'
echobase.legend.embeddedApplication.configuration=Configuration de l'application embarquée
echobase.legend.exportDb.configuration.files=Configuration de l'export
+echobase.legend.exportDb.configuration.selectExportDbMode=Choix du mode d'export
echobase.legend.importData.configuration.selectImportType=Sélection du type d'import
echobase.legend.importData.configure=Configurer l'import
echobase.legend.importData.createMission=Caractéristiques de la mission
echobase.legend.importData.result.resume=Résultats
+echobase.legend.importDb.configuration=Configuration de l'import
echobase.legend.importDb.configuration.files=Choix du fichier à importer (fichier .echobase)
echobase.legend.importDb.configuration.freeMode=Configuration import "libre"
echobase.legend.importDb.configuration.legacyVoyageMode=Configuration import "données"
@@ -297,9 +306,9 @@
echobase.menu.createEmbeddedApplication=Créer une application embarquée
echobase.menu.editData=Modifier les données
echobase.menu.export=Exporter des données
-echobase.menu.exportDb=Exporter une base complète
+echobase.menu.exportDb=Exporter une base
echobase.menu.importData=Importer des données
-echobase.menu.importDb=Importer une base complète
+echobase.menu.importDb=Importer une base
echobase.menu.logs=Journal des modifications
echobase.menu.removeData=Supprimer des données
echobase.menu.users=Gérer les utilisateurs
@@ -324,14 +333,14 @@
echobase.title.entityModificationLogs=Journal des modifications
echobase.title.export=Export SQL
echobase.title.exportDb=Export complet de la base
-echobase.title.exportDbProgress=Export complet de la base de données en cours
-echobase.title.exportDbResult=Résultats de l'export complet de la base de données
+echobase.title.exportDbProgress=Export de la base de données en cours
+echobase.title.exportDbResult=Résultats de l'export de la base de données
echobase.title.exportTable=Exporter une table
echobase.title.importData.selectImportType=Sélection du type d'import
-echobase.title.importDb=Import d'une base complète
+echobase.title.importDb=Import d'une base
echobase.title.importDbProgress=Import de données en cours
echobase.title.importDbResult=Résultats de l'import de données
-echobase.title.importLog.detail=Détil d'un import
+echobase.title.importLog.detail=Détail d'un import
echobase.title.importLogs=Liste des imports
echobase.title.importTable=Importer une table
echobase.title.login=Connexion
Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/includes/footer.jsp
===================================================================
--- trunk/echobase-ui/src/main/webapp/WEB-INF/includes/footer.jsp 2012-09-10 16:00:37 UTC (rev 643)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/includes/footer.jsp 2012-09-11 12:48:41 UTC (rev 644)
@@ -30,33 +30,31 @@
<div id='footer'>
<ul class="clearfix">
<li>
- <a href="http://maven-site.forge.codelutin.com/echobase/"
- title="Documentation de l'application" target="_blank">
- Echobase
- </a>
+ <span style="font-size: 140%">
+ EchoBase <%=EchoBaseActionSupport.getApplicationVersion()%>
+ © 2011-2012
+ </span>
+ <a href="http://www.ifremer.fr">Ifremer</a>
+ <a href="http://www.codelutin.com" title="Code Lutin" target="_blank">Code
+ Lutin</a>
</li>
<li>
- <a href="http://forge.codelutin.com/projects/echobase/roadmap?completed=1"
- title="Modifications faites pour cette version" target="_blank">
- Roadmap <%=EchoBaseActionSupport.getApplicationVersion()%>
- </a>
+ <s:a href="http://www.gnu.org/licenses/agpl.html" target='license'>
+ <s:text name="echobase.info.license"/>
+ </s:a>
</li>
- <!--li>
- <a href="mailto:echobase-users at " title="Contacter un responsable">
- Contact
- </a>
- </li-->
<li>
- <a href="http://www.gnu.org/licenses/agpl.html" title="Licence AGPL v3"
- target="_blank">
- AGPLv3
- </a>
+ <s:a href="http://forge.codelutin.com/projects/echobase/issues/new"
+ target='#doc'>
+ <s:text name="echobase.info.reportBug"/>
+ </s:a>
</li>
<li>
- Copyright 2011-2012
- <a href="http://www.ifremer.fr">Ifremer</a>
- <a href="http://www.codelutin.com" title="Code Lutin" target="_blank">Code
- Lutin</a>
+ <s:a
+ href="http://list.forge.codelutin.com/cgi-bin/mailman/listinfo/echobase-users"
+ target='#mailingList'>
+ <s:text name="echobase.info.userSupport"/>
+ </s:a>
</li>
</ul>
</div>
Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/includes/header.jsp
===================================================================
--- trunk/echobase-ui/src/main/webapp/WEB-INF/includes/header.jsp 2012-09-10 16:00:37 UTC (rev 643)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/includes/header.jsp 2012-09-11 12:48:41 UTC (rev 644)
@@ -89,13 +89,11 @@
<s:if test="%{admin}">
<s:if test="%{workingDbSelected}">
<li>
- <s:a action="configure" namespace="/importDb" method="input"
- cssClass="impBase">
+ <s:a action="configure" namespace="/importDb" cssClass="impBase">
<span><s:text name="echobase.menu.importDb"/></s:a></span>
</li>
<li>
- <s:a action="configure" namespace="/exportDb" method="input"
- cssClass="expBase">
+ <s:a action="configure" namespace="/exportDb" cssClass="expBase">
<span><s:text name="echobase.menu.exportDb"/></s:a></span>
</li>
<li>
@@ -111,7 +109,7 @@
</li>
<li>
<s:a action="importLogs" namespace="/removeData"
- method="input" cssClass="delDonnee">
+ cssClass="delDonnee">
<span><s:text name="echobase.menu.removeData"/></s:a></span>
</li>
<li>
Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/embeddedApplication/progress.jsp
===================================================================
--- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/embeddedApplication/progress.jsp 2012-09-10 16:00:37 UTC (rev 643)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/embeddedApplication/progress.jsp 2012-09-11 12:48:41 UTC (rev 644)
@@ -25,9 +25,10 @@
<%@ taglib prefix="s" uri="/struts-tags" %>
<%@ taglib prefix="sj" uri="/struts-jquery-tags" %>
-<s:url id="url" action="build" namespace="/embeddedApplication"/>
-<meta http-equiv="refresh" content="5;url=${url}"/>
+<meta http-equiv="refresh"
+ content='10;url=<s:url action="build" namespace="/embeddedApplication"/>'/>
+
<title><s:text name="echobase.title.embeddedApplicationProgress"/></title>
<%-- TODO letellier 20111104 : Add warn icon --%>
Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/exportDb/configure.jsp
===================================================================
--- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/exportDb/configure.jsp 2012-09-10 16:00:37 UTC (rev 643)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/exportDb/configure.jsp 2012-09-11 12:48:41 UTC (rev 644)
@@ -26,13 +26,49 @@
<title><s:text name="echobase.title.exportDb"/></title>
-<s:form namespace="/exportDb" method="POST">
+<script type="text/javascript">
+ jQuery(document).ready(function () {
+
+ // to change form when mode is changed
+ $('[name="model.exportDbMode"]').change(function (event) {
+ $('[class~="exportDbMode"]').hide();
+ $('#' + this.value).show();
+ $('#' + this.value + ' .errorMessage').hide();
+ });
+
+ // show incoming mode
+ var incomingVal = $('[name="model.exportDbMode"][checked="checked"]').val();
+ $('#' + incomingVal).show();
+ });
+</script>
+
+<fieldset>
+ <legend>
+ <s:text name="echobase.legend.exportDb.configuration.selectExportDbMode"/>
+ </legend>
+ <s:radio id='mode' key='model.exportDbMode' list="modes" cssClass="cleanBoth"
+ label='%{getText("echobase.common.exportDbMode")}'
+ required="true" template="myradiomap"/>
+</fieldset>
+
+<s:form id="REFERENTIAL" namespace="/exportDb" method="POST"
+ cssClass="hidden exportDbMode">
+
<fieldset>
<legend>
<s:text name="echobase.legend.exportDb.configuration.files"/>
</legend>
+ <div class="cleanBoth help">
+ <s:a href="%{getDocumentation('importDb.html','export-referential')}"
+ target="doc">
+ <s:text name="echobase.action.show.exportDb.documentation"/>
+ </s:a>
+ </div>
+ <br/>
+
+ <s:hidden key="model.exportDbMode" value="REFERENTIAL" label=''/>
<s:textfield key="model.fileName" required="true" size="100"
label="%{getText('echobase.label.exportDbFileName')} (*)"/>
@@ -41,6 +77,105 @@
</div>
</fieldset>
<br/>
- <s:submit action="configure" value='%{getText("echobase.action.export")}'/>
+ <s:submit action="configureReferential"
+ value='%{getText("echobase.action.export")}'/>
+</s:form>
+
+
+<s:form id="REFERENTIAL_AND_DATA" namespace="/exportDb" method="POST"
+ cssClass="hidden exportDbMode">
+
+ <fieldset>
+ <legend>
+ <s:text name="echobase.legend.exportDb.configuration.files"/>
+ </legend>
+
+ <div class="cleanBoth help">
+ <s:a
+ href="%{getDocumentation('importDb.html','export-referential-and-data')}"
+ target="doc">
+ <s:text name="echobase.action.show.exportDb.documentation"/>
+ </s:a>
+ </div>
+ <br/>
+
+ <s:hidden key="model.exportDbMode" value="REFERENTIAL_AND_DATA" label=''/>
+ <s:textfield key="model.fileName" required="true" size="100"
+ label="%{getText('echobase.label.exportDbFileName')} (*)"/>
+
+ <s:checkboxlist list="voyages" key="model.voyageIds"
+ template="mycheckboxlist"
+ label="%{getText('echobase.label.voyageToSelect')}"/>
+
+ <div class="cleanBoth">
+ (*) <s:text name="echobase.info.exportDb.archive"/>
+ </div>
+ </fieldset>
+ <br/>
+ <s:submit action="configureReferentialAndData"
+ value='%{getText("echobase.action.export")}'/>
+
+</s:form>
+
+
+<s:form id="DATA" namespace="/exportDb" method="POST"
+ cssClass="hidden exportDbMode">
+
+ <fieldset>
+ <legend>
+ <s:text name="echobase.legend.exportDb.configuration.files"/>
+ </legend>
+
+ <div class="cleanBoth help">
+ <s:a href="%{getDocumentation('importDb.html','export-data')}"
+ target="doc">
+ <s:text name="echobase.action.show.exportDb.documentation"/>
+ </s:a>
+ </div>
+ <br/>
+ <s:hidden key="model.exportDbMode" value="DATA" label=''/>
+ <s:textfield key="model.fileName" required="true" size="100"
+ label="%{getText('echobase.label.exportDbFileName')} (*)"/>
+
+ <s:checkboxlist list="voyages" key="model.voyageIds"
+ template="mycheckboxlist"
+ label="%{getText('echobase.label.voyageToSelect')}"/>
+
+ <div class="cleanBoth">
+ (*) <s:text name="echobase.info.exportDb.archive"/>
+ </div>
+ </fieldset>
+ <br/>
+ <s:submit action="configureData"
+ value='%{getText("echobase.action.export")}'/>
+</s:form>
+
+<s:form id="ALL" namespace="/exportDb" method="POST"
+ cssClass="hidden exportDbMode">
+
+ <fieldset>
+ <legend>
+ <s:text name="echobase.legend.exportDb.configuration.files"/>
+ </legend>
+
+ <div class="cleanBoth help">
+ <s:a href="%{getDocumentation('importDb.html','export-all')}"
+ target="doc">
+ <s:text name="echobase.action.show.exportDb.documentation"/>
+ </s:a>
+ </div>
+ <br/>
+
+ <s:hidden key="model.exportDbMode" value="ALL" label=''/>
+ <s:textfield key="model.fileName" required="true" size="100"
+ label="%{getText('echobase.label.exportDbFileName')} (*)"/>
+
+ <div class="cleanBoth">
+ (*) <s:text name="echobase.info.exportDb.archive"/>
+ </div>
+ </fieldset>
+ <br/>
+ <s:submit action="configureAll" value='%{getText("echobase.action.export")}'/>
+
</s:form>
\ No newline at end of file
Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/exportDb/progress.jsp
===================================================================
--- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/exportDb/progress.jsp 2012-09-10 16:00:37 UTC (rev 643)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/exportDb/progress.jsp 2012-09-11 12:48:41 UTC (rev 644)
@@ -25,8 +25,8 @@
<%@ taglib prefix="s" uri="/struts-tags" %>
<%@ taglib prefix="sj" uri="/struts-jquery-tags" %>
-<s:url id="url" action="export" namespace="/exportDb"/>
-<meta http-equiv="refresh" content="5;url=${url}"/>
+<meta http-equiv="refresh"
+ content='10;url=<s:url action="export" namespace="/exportDb"/>'/>
<title><s:text name="echobase.title.exportDbProgress"/></title>
Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/home.jsp
===================================================================
--- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/home.jsp 2012-09-10 16:00:37 UTC (rev 643)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/home.jsp 2012-09-11 12:48:41 UTC (rev 644)
@@ -43,22 +43,10 @@
</s:a>
</li>
<li>
- <s:a href="http://forge.codelutin.com/projects/echobase"
- target='#forge'>
- <s:text name="echobase.info.echoBaseForge"/>
+ <s:a href="http://forge.codelutin.com/projects/echobase/files" target='#doc'>
+ <s:text name="echobase.info.downloadFiles"/>
</s:a>
</li>
</ul>
</fieldset>
</div>
-
-<s:if test="!workingDbSelected">
- <s:form namespace="/workingDb" action="showList">
- <ul class="toolbar floatLeft">
- <li>
- <s:submit theme="simple" action="showList"
- key="echobase.action.workingDbconfiguration.connect"/>
- </li>
- </ul>
- </s:form>
-</s:if>
\ No newline at end of file
Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/progressAcousticImport.jsp
===================================================================
--- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/progressAcousticImport.jsp 2012-09-10 16:00:37 UTC (rev 643)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/progressAcousticImport.jsp 2012-09-11 12:48:41 UTC (rev 644)
@@ -25,8 +25,8 @@
<%@ taglib prefix="s" uri="/struts-tags" %>
<%@ taglib prefix="sj" uri="/struts-jquery-tags" %>
-<s:url id="url" action="importAcoustic" namespace="/importData"/>
-<meta http-equiv="refresh" content="1;url=${url}"/>
+<meta http-equiv="refresh"
+ content='10;url=<s:url action="importAcoustic" namespace="/importData"/>'/>
<title>
<s:text name="echobase.common.importType.acoustic"/>
Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/progressCatchesImport.jsp
===================================================================
--- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/progressCatchesImport.jsp 2012-09-10 16:00:37 UTC (rev 643)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/progressCatchesImport.jsp 2012-09-11 12:48:41 UTC (rev 644)
@@ -25,8 +25,8 @@
<%@ taglib prefix="s" uri="/struts-tags" %>
<%@ taglib prefix="sj" uri="/struts-jquery-tags" %>
-<s:url id="url" action="importCatches" namespace="/importData"/>
-<meta http-equiv="refresh" content="1;url=${url}"/>
+<meta http-equiv="refresh"
+ content='10;url=<s:url action="importCatches" namespace="/importData"/>'/>
<title>
<s:text name="echobase.common.importType.catches"/>
Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/progressCommonImport.jsp
===================================================================
--- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/progressCommonImport.jsp 2012-09-10 16:00:37 UTC (rev 643)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/progressCommonImport.jsp 2012-09-11 12:48:41 UTC (rev 644)
@@ -25,8 +25,8 @@
<%@ taglib prefix="s" uri="/struts-tags" %>
<%@ taglib prefix="sj" uri="/struts-jquery-tags" %>
-<s:url id="url" action="importCommon" namespace="/importData"/>
-<meta http-equiv="refresh" content="1;url=${url}"/>
+<meta http-equiv="refresh"
+ content='1;url=<s:url action="importCommon" namespace="/importData"/>'/>
<title>
<s:text name="echobase.common.importType.common"/>
Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/progressOperationImport.jsp
===================================================================
--- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/progressOperationImport.jsp 2012-09-10 16:00:37 UTC (rev 643)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/progressOperationImport.jsp 2012-09-11 12:48:41 UTC (rev 644)
@@ -25,8 +25,8 @@
<%@ taglib prefix="s" uri="/struts-tags" %>
<%@ taglib prefix="sj" uri="/struts-jquery-tags" %>
-<s:url id="url" action="importOperation" namespace="/importData"/>
-<meta http-equiv="refresh" content="1;url=${url}"/>
+<meta http-equiv="refresh"
+ content='10;url=<s:url action="importOperation" namespace="/importData"/>'/>
<title>
<s:text name="echobase.common.importType.operation"/>
Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/progressResultsImport.jsp
===================================================================
--- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/progressResultsImport.jsp 2012-09-10 16:00:37 UTC (rev 643)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/progressResultsImport.jsp 2012-09-11 12:48:41 UTC (rev 644)
@@ -25,8 +25,8 @@
<%@ taglib prefix="s" uri="/struts-tags" %>
<%@ taglib prefix="sj" uri="/struts-jquery-tags" %>
-<s:url id="url" action="importResults" namespace="/importData"/>
-<meta http-equiv="refresh" content="1;url=${url}"/>
+<meta http-equiv="refresh"
+ content='10;url=<s:url action="importResults" namespace="/importData"/>'/>
<title>
<s:text name="echobase.common.importType.results"/>
Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importDb/configure.jsp
===================================================================
--- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importDb/configure.jsp 2012-09-10 16:00:37 UTC (rev 643)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importDb/configure.jsp 2012-09-11 12:48:41 UTC (rev 644)
@@ -26,7 +26,6 @@
<title><s:text name="echobase.title.importDb"/></title>
-
<script type="text/javascript">
jQuery(document).ready(function () {
@@ -44,69 +43,60 @@
});
</script>
-<s:form namespace="/importDb" method="POST" enctype="multipart/form-data">
+<fieldset>
+ <legend>
+ <s:text name="echobase.legend.importDb.configuration.selectImportDbMode"/>
+ </legend>
+ <s:radio id='mode' key='model.importDbMode' list="modes" cssClass="cleanBoth"
+ label='%{getText("echobase.common.importDbMode")}'
+ required="true" template="myradiomap"/>
+</fieldset>
- <fieldset>
- <legend>
- <s:text name="echobase.legend.importDb.configuration.selectImportDbMode"/>
- </legend>
- <s:radio key='model.importDbMode' list="modes" cssClass="cleanBoth"
- label='%{getText("echobase.common.importDbMode")}'
- required="true" template="myradiomap"/>
- </fieldset>
-
-</s:form>
-
<s:form id="REFERENTIAL" namespace="/importDb" method="POST"
enctype="multipart/form-data" cssClass="hidden importDbMode">
<fieldset>
<legend>
- <s:text name="echobase.legend.importDb.configuration.referentialMode"/>
+ <s:text name="echobase.legend.importDb.configuration"/>
</legend>
-
<div class="cleanBoth help">
- <s:a href="%{getDocumentation('importDb.html','referential')}"
+ <s:a href="%{getDocumentation('importDb.html','import-referential')}"
target="doc">
<s:text name="echobase.action.show.importDb.documentation"/>
</s:a>
</div>
<br/>
<s:hidden key="model.importDbMode" value="REFERENTIAL" label=''/>
+ <s:file name="input" required="true" key="echobase.common.importDbFile"/>
- <s:file name="input" required="true"
- key="echobase.common.importDbFile"/>
-
</fieldset>
<br/>
- <s:submit action="configure-referential"
+ <s:submit action="configureReferential"
value='%{getText("echobase.action.import")}'/>
</s:form>
-<s:form id="VOYAGE" namespace="/importDb" method="POST"
+<s:form id="DATA" namespace="/importDb" method="POST"
enctype="multipart/form-data" cssClass="hidden importDbMode">
<fieldset>
<legend>
- <s:text name="echobase.legend.importDb.configuration.legacyVoyageMode"/>
+ <s:text name="echobase.legend.importDb.configuration"/>
</legend>
<div class="cleanBoth help">
- <s:a href="%{getDocumentation('importDb.html','voyage')}"
+ <s:a href="%{getDocumentation('importDb.html','data')}"
target="doc">
<s:text name="echobase.action.show.importDb.documentation"/>
</s:a>
</div>
<br/>
- <s:hidden key="model.importDbMode" value="VOYAGE" label=''/>
+ <s:hidden key="model.importDbMode" value="DATA" label=''/>
+ <s:file name="input" required="true" key="echobase.common.importDbFile"/>
- <s:file name="input" required="true"
- key="echobase.common.importDbFile"/>
-
</fieldset>
<br/>
- <s:submit action="configure-voyage"
+ <s:submit action="configureData"
value='%{getText("echobase.action.import")}'/>
</s:form>
@@ -115,7 +105,7 @@
<fieldset>
<legend>
- <s:text name="echobase.legend.importDb.configuration.freeMode"/>
+ <s:text name="echobase.legend.importDb.configuration"/>
</legend>
<div class="cleanBoth help">
@@ -126,11 +116,10 @@
</div>
<br/>
<s:hidden key="model.importDbMode" value="FREE" label=''/>
-
<s:file name="input" required="true" key="echobase.common.importDbFile"/>
</fieldset>
<br/>
- <s:submit action="configure-free"
+ <s:submit action="configureFree"
value='%{getText("echobase.action.import")}'/>
</s:form>
\ No newline at end of file
Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importDb/progress.jsp
===================================================================
--- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importDb/progress.jsp 2012-09-10 16:00:37 UTC (rev 643)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importDb/progress.jsp 2012-09-11 12:48:41 UTC (rev 644)
@@ -25,7 +25,8 @@
<%@ taglib prefix="s" uri="/struts-tags" %>
<%@ taglib prefix="sj" uri="/struts-jquery-tags" %>
-<meta http-equiv="refresh" content="10;url=<s:url action="import" namespace="/importDb"/>"/>
+<meta http-equiv="refresh"
+ content="10;url=<s:url action="import" namespace="/importDb"/>"/>
<title><s:text name="echobase.title.importDbProgress"/></title>
Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/removeData/deleteProgress.jsp
===================================================================
--- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/removeData/deleteProgress.jsp 2012-09-10 16:00:37 UTC (rev 643)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/removeData/deleteProgress.jsp 2012-09-11 12:48:41 UTC (rev 644)
@@ -26,7 +26,7 @@
<%@ taglib prefix="sj" uri="/struts-jquery-tags" %>
<meta http-equiv="refresh"
- content='5;url=<s:url action="delete" namespace="/removeData"/>'/>
+ content='10;url=<s:url action="delete" namespace="/removeData"/>'/>
<title><s:text name="echobase.title.removeDataProgress"/></title>
Modified: trunk/echobase-ui/src/main/webapp/css/screen.css
===================================================================
--- trunk/echobase-ui/src/main/webapp/css/screen.css 2012-09-10 16:00:37 UTC (rev 643)
+++ trunk/echobase-ui/src/main/webapp/css/screen.css 2012-09-11 12:48:41 UTC (rev 644)
@@ -406,7 +406,7 @@
}
.containerHomeSize {
- width:645px;
+ width:85%;
}
form#login .wwlbl {
Added: trunk/src/site/en/rst/importDb.rst
===================================================================
--- trunk/src/site/en/rst/importDb.rst (rev 0)
+++ trunk/src/site/en/rst/importDb.rst 2012-09-11 12:48:41 UTC (rev 644)
@@ -0,0 +1,128 @@
+.. -
+.. * #%L
+.. * EchoBase
+.. * $Id$
+.. * $HeadURL$
+.. * %%
+.. * Copyright (C) 2011 - 2012 Ifremer, Codelutin
+.. * %%
+.. * This program is free software: you can redistribute it and/or modify
+.. * it under the terms of the GNU Affero General Public License as published by
+.. * 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 / Export d'une base
+==========================
+
+.. contents:: Table des matières
+ :depth: 2
+
+.. sectnum::
+ :start: 1
+ :depth: 2
+
+Abstract
+========
+
+Ce document explique comment importer / exporter des bases au format EchoBase.
+
+Export EchoBase
+---------------
+
+EchoBase permet d'export une partie ou l'ensemble d'une base de travial au
+format *.echobase* qui est ensuite réimportable dans une autre instance d'EchoBase.
+
+- Cliquer sur le menu *Exporter une base*.
+
+- Configurer l'export
+
+Une fichier au format *.echobase* sera créé, il est ensuite possible de
+l'importer sur une autre instance d'EchoBase.
+
+Il existe plusieurs modes d'export que nous détaillons ci-dessous.
+
+Export referential
+~~~~~~~~~~~~~~~~~~
+
+Dans ce mode on exporte uniquement le référentiel de la base de travail.
+
+Il vous suffit de renseigner le nom du fichier d'export (l'extension
+*.echobase*) sera automatiquement rajoutée, puis de cliquer sur *Exporter*.
+
+Une fois l'export réalisé, le fichier sera téléchargeable.
+
+Export referential and data
+~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Dans ce mode on exporte le référentiel et les données sélectionnées
+de la base de travail.
+
+Il vous suffit de renseigner le nom du fichier d'export (l'extension
+*.echobase*) sera automatiquement rajoutée, de sélectionner les données
+à exporter puis de cliquer sur *Exporter*.
+
+Une fois l'export réalisé, le fichier sera téléchargeable.
+
+
+Export data
+~~~~~~~~~~~
+
+Dans ce mode on exporte uniquement les données sélectionnées de la base de
+travail.
+
+Il vous suffit de renseigner le nom du fichier d'export (l'extension
+*.echobase*) sera automatiquement rajoutée, de sélectionner les données
+à exporter puis de cliquer sur *Exporter*.
+
+Une fois l'export réalisé, le fichier sera téléchargeable.
+
+Export All
+~~~~~~~~~~
+
+Dans ce mode, on exporte toute la base de travail.
+
+Il vous suffit de renseigner le nom du fichier d'export (l'extension
+*.echobase*) sera automatiquement rajoutée, puis de cliquer sur *Exporter*.
+
+Une fois l'export réalisé, le fichier sera téléchargeable.
+
+Import EchoBase
+---------------
+
+Tout export de base au format *.echobase* est ensuite réimportable sur n'importe
+qu'elle autre instance d'EchoBase.
+
+TODO Expliquer le fonctionnement de l'import et la politique des collisions...
+
+Import Referential
+~~~~~~~~~~~~~~~~~~
+
+Ce mode permet d'importer uniquement des données du référentiel.
+
+Il suffit de renseigner le fichier *.echobase* à importer et de lancer l'import.
+
+Import Data
+~~~~~~~~~~~
+
+Ce mode permet d'importer uniquement des données thématiques.
+
+Il suffit de renseigner le fichier *.echobase* à importer et de lancer l'import.
+
+Import Free
+~~~~~~~~~~~
+
+Ce mode permet d'importer n'importe quelle type de données (référentiel ou/et
+données thématiques).
+
+Il suffit de renseigner le fichier *.echobase* à importer et de lancer l'import.
+
Property changes on: trunk/src/site/en/rst/importDb.rst
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Added: trunk/src/site/rst/importDb.rst
===================================================================
--- trunk/src/site/rst/importDb.rst (rev 0)
+++ trunk/src/site/rst/importDb.rst 2012-09-11 12:48:41 UTC (rev 644)
@@ -0,0 +1,128 @@
+.. -
+.. * #%L
+.. * EchoBase
+.. * $Id$
+.. * $HeadURL$
+.. * %%
+.. * Copyright (C) 2011 - 2012 Ifremer, Codelutin
+.. * %%
+.. * This program is free software: you can redistribute it and/or modify
+.. * it under the terms of the GNU Affero General Public License as published by
+.. * 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 / Export d'une base
+==========================
+
+.. contents:: Table des matières
+ :depth: 2
+
+.. sectnum::
+ :start: 1
+ :depth: 2
+
+Abstract
+========
+
+Ce document explique comment importer / exporter des bases au format EchoBase.
+
+Export EchoBase
+---------------
+
+EchoBase permet d'export une partie ou l'ensemble d'une base de travial au
+format *.echobase* qui est ensuite réimportable dans une autre instance d'EchoBase.
+
+- Cliquer sur le menu *Exporter une base*.
+
+- Configurer l'export
+
+Une fichier au format *.echobase* sera créé, il est ensuite possible de
+l'importer sur une autre instance d'EchoBase.
+
+Il existe plusieurs modes d'export que nous détaillons ci-dessous.
+
+Export referential
+~~~~~~~~~~~~~~~~~~
+
+Dans ce mode on exporte uniquement le référentiel de la base de travail.
+
+Il vous suffit de renseigner le nom du fichier d'export (l'extension
+*.echobase*) sera automatiquement rajoutée, puis de cliquer sur *Exporter*.
+
+Une fois l'export réalisé, le fichier sera téléchargeable.
+
+Export referential and data
+~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Dans ce mode on exporte le référentiel et les données sélectionnées
+de la base de travail.
+
+Il vous suffit de renseigner le nom du fichier d'export (l'extension
+*.echobase*) sera automatiquement rajoutée, de sélectionner les données
+à exporter puis de cliquer sur *Exporter*.
+
+Une fois l'export réalisé, le fichier sera téléchargeable.
+
+
+Export data
+~~~~~~~~~~~
+
+Dans ce mode on exporte uniquement les données sélectionnées de la base de
+travail.
+
+Il vous suffit de renseigner le nom du fichier d'export (l'extension
+*.echobase*) sera automatiquement rajoutée, de sélectionner les données
+à exporter puis de cliquer sur *Exporter*.
+
+Une fois l'export réalisé, le fichier sera téléchargeable.
+
+Export All
+~~~~~~~~~~
+
+Dans ce mode, on exporte toute la base de travail.
+
+Il vous suffit de renseigner le nom du fichier d'export (l'extension
+*.echobase*) sera automatiquement rajoutée, puis de cliquer sur *Exporter*.
+
+Une fois l'export réalisé, le fichier sera téléchargeable.
+
+Import EchoBase
+---------------
+
+Tout export de base au format *.echobase* est ensuite réimportable sur n'importe
+qu'elle autre instance d'EchoBase.
+
+TODO Expliquer le fonctionnement de l'import et la politique des collisions...
+
+Import Referential
+~~~~~~~~~~~~~~~~~~
+
+Ce mode permet d'importer uniquement des données du référentiel.
+
+Il suffit de renseigner le fichier *.echobase* à importer et de lancer l'import.
+
+Import Data
+~~~~~~~~~~~
+
+Ce mode permet d'importer uniquement des données thématiques.
+
+Il suffit de renseigner le fichier *.echobase* à importer et de lancer l'import.
+
+Import Free
+~~~~~~~~~~~
+
+Ce mode permet d'importer n'importe quelle type de données (référentiel ou/et
+données thématiques).
+
+Il suffit de renseigner le fichier *.echobase* à importer et de lancer l'import.
+
Property changes on: trunk/src/site/rst/importDb.rst
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Modified: trunk/src/site/site_en.xml
===================================================================
--- trunk/src/site/site_en.xml 2012-09-10 16:00:37 UTC (rev 643)
+++ trunk/src/site/site_en.xml 2012-09-11 12:48:41 UTC (rev 644)
@@ -97,17 +97,20 @@
<item name="English Version" href="./index.html"/>
</menu>
- <menu name="Utilisateur">
+ <menu name="User">
<item name="Home" href="index.html"/>
<item name="Installation" href="install.html"/>
<item name="Portable Application" href="embedded.html"/>
<item name="Imports" href="imports.html"/>
- <item name="Model" href="model.html"/>
+ <item name="Import/Export with EchoBase format" href="importDb.html"/>
<item name="Download"
href="http://forge.codelutin.com/projects/echobase/files"/>
+ </menu>
+
+ <menu name="Dev">
+ <item name="Model" href="model.html"/>
<item name="Roadmap"
href="http://forge.codelutin.com/projects/echobase/roadmap"/>
-
<item name="Changelogs" href="changes-report.html"/>
</menu>
Modified: trunk/src/site/site_fr.xml
===================================================================
--- trunk/src/site/site_fr.xml 2012-09-10 16:00:37 UTC (rev 643)
+++ trunk/src/site/site_fr.xml 2012-09-11 12:48:41 UTC (rev 644)
@@ -103,15 +103,20 @@
<item name="Installation" href="install.html"/>
<item name="Application embarquée" href="embedded.html"/>
<item name="Imports" href="imports.html"/>
- <item name="Modèle" href="model.html"/>
+ <item name="Import/Export au format EchoBase" href="importDb.html"/>
<item name="Téléchargement"
href="http://forge.codelutin.com/projects/echobase/files"/>
+ </menu>
+
+ <menu name="Dev">
+ <item name="Modèle" href="model.html"/>
<item name="Roadmap"
href="http://forge.codelutin.com/projects/echobase/roadmap"/>
-
<item name="Historique des versions" href="changes-report.html"/>
</menu>
+
+
<menu ref="reports"/>
<footer>
1
0