Author: tchemit Date: 2012-01-06 16:57:36 +0100 (Fri, 06 Jan 2012) New Revision: 241 Url: http://forge.codelutin.com/repositories/revision/echobase/241 Log: - fix saveEntity date diff - improve entityModificationLog Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbEditorService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ImportDbService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/CsvModelUtil.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/EntityCsvModel.java Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbEditorService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbEditorService.java 2012-01-06 15:26:42 UTC (rev 240) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbEditorService.java 2012-01-06 15:57:36 UTC (rev 241) @@ -115,7 +115,6 @@ return rows; } - public <E extends TopiaEntity> List<E> getEntities(TableMeta tableMeta, Pager pager, String sidx, @@ -150,7 +149,6 @@ log.debug("pageCount= " + pager.getPageCount()); } - if (StringUtils.isNotEmpty(sidx)) { if (ascendantOrder) { query.addOrder(sidx); @@ -262,7 +260,7 @@ } } - if (!create) { + if (user != null && !create) { // monitor the existing bean monitor = new BeanMonitor(columnNames); @@ -273,16 +271,12 @@ if (user != null) { - // only create modification logs if user is specify - PropertyDiff[] propertyDiffs = monitor == null ? null : - monitor.getPropertyDiffs(); - createEntityModificationLog( tableMeta, messagePrefix, entityToSave, user, - propertyDiffs + monitor ); } return create; @@ -300,21 +294,30 @@ String messagePrefix, TopiaEntity entity, EchoBaseUser user, - PropertyDiff[] propertyDiffs) throws TopiaException { + BeanMonitor monitor + ) throws TopiaException { StringBuilder buffer; String topiaId = entity.getTopiaId(); - boolean create = propertyDiffs == null; + buffer = new StringBuilder(messagePrefix + "\n"); + if (monitor == null) { - buffer = new StringBuilder(messagePrefix + "\n"); - if (create) { + // no monitor, means this is a creation of an object buffer.append("Une entité a été crée d'identifiant ").append(topiaId); } else { + PropertyDiff[] propertyDiffs = monitor.getPropertyDiffs(); + int length = propertyDiffs.length; + if (length == 0) { + + // no property modified, do nothing + return; + } + if (length == 1) { buffer.append("Une propriété a été modifiée :"); } else { @@ -340,7 +343,7 @@ getLocale(), targetValue, null); } } - buffer.append(String.format("\n Propriété '%s', ancienne valeur : %s, nouvelle valeur : %s", + buffer.append(String.format("\n Propriété '%s', ancienne valeur : '%s', nouvelle valeur : '%s'", propertyName, sourceValue, targetValue Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ImportDbService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ImportDbService.java 2012-01-06 15:26:42 UTC (rev 240) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ImportDbService.java 2012-01-06 15:57:36 UTC (rev 241) @@ -44,6 +44,7 @@ import org.nuiton.util.csv.ImportModel; import org.nuiton.util.csv.ImportToMap; +import java.io.BufferedReader; import java.io.File; import java.io.IOException; import java.io.InputStreamReader; @@ -103,7 +104,7 @@ false ); Reader reader = - new InputStreamReader(zipFile.getInputStream(value)); + new BufferedReader(new InputStreamReader(zipFile.getInputStream(value))); try { importFile(entryDef, reader, csvResult); } finally { @@ -119,7 +120,7 @@ getDAO(EntityModificationLog.class); dao.create( - EntityModificationLog.PROPERTY_ENTITY_TYPE, "import db", + EntityModificationLog.PROPERTY_ENTITY_TYPE, "Import db", EntityModificationLog.PROPERTY_ENTITY_ID, "Complete db", EntityModificationLog.PROPERTY_MODIFICATION_USER, user.getEmail(), EntityModificationLog.PROPERTY_MODIFICATION_DATE, newDate(), @@ -194,7 +195,8 @@ // load a association input AssociationMeta meta = (AssociationMeta) entry; - ImportModel<Map<String, Object>> model = importService.buildForImport(meta); + ImportModel<Map<String, Object>> model = + importService.buildForImport(meta); ImportToMap importer = MyImportToMap.newImport(model, reader); try { Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/CsvModelUtil.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/CsvModelUtil.java 2012-01-06 15:26:42 UTC (rev 240) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/CsvModelUtil.java 2012-01-06 15:57:36 UTC (rev 241) @@ -38,6 +38,7 @@ import org.nuiton.util.csv.ValueParser; import org.nuiton.util.csv.ValueParserFormatter; +import java.sql.Timestamp; import java.text.ParseException; import java.util.Collection; import java.util.Date; @@ -52,6 +53,20 @@ */ public class CsvModelUtil extends Common { + public static final ValueParserFormatter<Date> DAY_TIME_SECOND_WITH_TIMESTAMP = + new DateValue("dd/MM/yyyy HH:mm:ss") { + + @Override + public Date parse(String value) throws ParseException { + + Date parse = super.parse(value); + if (parse != null) { + parse = new Timestamp(parse.getTime()); + } + return parse; + } + }; + public static <E extends TopiaEntity> ForeignKeyValue<E> newForeignKeyValue(Class<E> type) { return new ForeignKeyValue<E>(type); } Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/EntityCsvModel.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/EntityCsvModel.java 2012-01-06 15:26:42 UTC (rev 240) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/EntityCsvModel.java 2012-01-06 15:57:36 UTC (rev 241) @@ -152,7 +152,7 @@ modelBuilder.newColumnForImportExport( headerName, propertyName, - CsvModelUtil.DAY_TIME_SECOND + CsvModelUtil.DAY_TIME_SECOND_WITH_TIMESTAMP ); } else if (double.class.equals(type)) { modelBuilder.newColumnForImportExport(