Author: tchemit Date: 2012-03-29 23:44:59 +0200 (Thu, 29 Mar 2012) New Revision: 454 Url: http://forge.codelutin.com/repositories/revision/echobase/454 Log: compute stesp in import action from number of files lines Modified: trunk/echobase-entities/src/main/java/fr/ifremer/echobase/csv/CsvFileImportResult.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/AbstractImportDataService.java trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/AbstractImportDataServiceIT.java Modified: trunk/echobase-entities/src/main/java/fr/ifremer/echobase/csv/CsvFileImportResult.java =================================================================== --- trunk/echobase-entities/src/main/java/fr/ifremer/echobase/csv/CsvFileImportResult.java 2012-03-29 21:25:22 UTC (rev 453) +++ trunk/echobase-entities/src/main/java/fr/ifremer/echobase/csv/CsvFileImportResult.java 2012-03-29 21:44:59 UTC (rev 454) @@ -72,6 +72,10 @@ return getInteger(numberUpdated, entityType); } + public String getImportFileName() { + return importFileName; + } + public void incrementsNumberCreated(EchoBaseEntityEnum entityType) { increments(numberCreated, entityType); } 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-03-29 21:25:22 UTC (rev 453) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/AbstractImportDataService.java 2012-03-29 21:44:59 UTC (rev 454) @@ -48,9 +48,12 @@ import fr.ifremer.echobase.entities.references.SpeciesCategoryDAO; import fr.ifremer.echobase.services.EchoBaseServiceSupport; import fr.ifremer.echobase.services.ImportException; +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.TopiaEntity; +import org.nuiton.util.TimeLog; import org.nuiton.util.csv.ImportRuntimeException; import java.io.BufferedReader; @@ -79,10 +82,27 @@ public static final Pattern REMOVE_DOUBLE_QUOTES_PATTERN = Pattern.compile("\"(.+)\""); + /** Logger. */ + private static final Log log = + LogFactory.getLog(AbstractImportDataService.class); + + public static final TimeLog TIME_LOG = + new TimeLog(AbstractImportDataService.class); + + public final List<CsvFileImportResult> doImport(M configuration, EchoBaseUser user) throws ImportException { + long s0 = TimeLog.getTime(); + long nbSteps = configuration.computeNbSteps(); + + if (log.isInfoEnabled()) { + log.info("Nb lines to import " + nbSteps); + } + + TIME_LOG.log(s0, "computeNbSteps"); + try { List<CsvFileImportResult> result = startImport(configuration, user); 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-03-29 21:25:22 UTC (rev 453) +++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/AbstractImportDataServiceIT.java 2012-03-29 21:44:59 UTC (rev 454) @@ -176,22 +176,12 @@ protected <M extends AbstractImportConfiguration, S extends AbstractImportDataService<M>> List<CsvFileImportResult> doImport(M conf, Class<S> serviceType, int nbResults) throws ImportException { - long s0 = TimeLog.getTime(); - - long nbSteps = conf.computeNbSteps(); - - if (log.isInfoEnabled()) { - log.info("Nb lines to import " + nbSteps); - } - - TIME_LOG.log(s0, "prepareConfigurationSteps"); - - s0 = TimeLog.getTime(); - S service = getService(serviceType); EchoBaseUser fakeUser = createFakeUser(); + long s0 = TimeLog.getTime(); + List<CsvFileImportResult> result = service.doImport(conf, fakeUser); TIME_LOG.log(s0, "doImport"); @@ -200,6 +190,27 @@ Assert.assertEquals(nbResults, result.size()); assertConfProgressionToEnd(conf); + if (log.isInfoEnabled()) { + int index = 0; + for (CsvFileImportResult importResult : result) { + + StringBuilder resultBuffer = + new StringBuilder("Result " + (index++) + " for " + importResult.getImportFileName()); + for (EchoBaseEntityEnum type : importResult.getEntityTypes()) { + resultBuffer.append("\n").append(type.name()); + int numberCreated = importResult.getNumberCreated(type); + int numberUpdated = importResult.getNumberUpdated(type); + if (numberCreated > 0) { + resultBuffer.append(" ").append(numberCreated).append(" created"); + } + if (numberUpdated > 0) { + resultBuffer.append(" ").append(numberUpdated).append(" updated"); + } + } + log.info(resultBuffer.toString()); + } + } + return result; }