From 740fd736feb3c08fa3f43f653923f26795a465fb Mon Sep 17 00:00:00 2001 From: felmer <franz-josef.elmer@id.ethz.ch> Date: Thu, 31 Jan 2019 08:43:20 +0100 Subject: [PATCH] SSDM-7158: harvester: update modification timestamps --- .../AbstractRegistrationHolder.java | 2 +- .../synchronizer/EntitySynchronizer.java | 1 + .../synchronizer/IHarvesterQuery.java | 18 ++++++++---------- .../synchronizer/RegistrationDTO.java | 14 +++++++++++++- 4 files changed, 23 insertions(+), 12 deletions(-) diff --git a/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/harvester/synchronizer/AbstractRegistrationHolder.java b/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/harvester/synchronizer/AbstractRegistrationHolder.java index 8cf1c1de3c5..f43b03ae53d 100644 --- a/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/harvester/synchronizer/AbstractRegistrationHolder.java +++ b/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/harvester/synchronizer/AbstractRegistrationHolder.java @@ -48,5 +48,5 @@ public abstract class AbstractRegistrationHolder this.registrationTimestamp = registrationTimestamp; } - + public abstract Date getLastModificationDate(); } diff --git a/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/harvester/synchronizer/EntitySynchronizer.java b/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/harvester/synchronizer/EntitySynchronizer.java index 960fbaf0005..0a009236a6c 100644 --- a/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/harvester/synchronizer/EntitySynchronizer.java +++ b/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/harvester/synchronizer/EntitySynchronizer.java @@ -402,6 +402,7 @@ public class EntitySynchronizer RegistrationDTO registration = new RegistrationDTO(); registration.setPermId(permID); registration.setTypeId(typeId); + registration.setModificationTimestamp(entity.getLastModificationDate()); registration.setRegistrationTimestamp(entity.getRegistrationTimestamp()); registration.setRegistratorId(registratorId); registrations.add(registration); diff --git a/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/harvester/synchronizer/IHarvesterQuery.java b/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/harvester/synchronizer/IHarvesterQuery.java index f6c790f9e84..3875622beb8 100644 --- a/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/harvester/synchronizer/IHarvesterQuery.java +++ b/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/harvester/synchronizer/IHarvesterQuery.java @@ -27,9 +27,9 @@ import net.lemnik.eodsql.Update; */ public interface IHarvesterQuery extends BaseQuery { - public static final String UPDATE2 = - "set registration_timestamp = ?{1.registrationTimestamp}, pers_id_registerer = ?{1.registratorId} " - + "where perm_id = ?{1.permId}"; + public static final String SETTERS = "set modification_timestamp = ?{1.modificationTimestamp}, " + + "registration_timestamp = ?{1.registrationTimestamp}, " + + "pers_id_registerer = ?{1.registratorId} "; @Select("select id,user_id as userId from persons") public List<PersonRecord> listAllUsers(); @@ -37,20 +37,18 @@ public interface IHarvesterQuery extends BaseQuery @Select("select id,code from material_types") public List<MaterialTypeRecord> listAllMaterialTypes(); - @Update(sql = "update materials set registration_timestamp = ?{1.registrationTimestamp}, pers_id_registerer = ?{1.registratorId} " - + "where code = ?{1.permId} and maty_id = ?{1.typeId}", batchUpdate = true) + @Update(sql = "update materials " + SETTERS + " where code = ?{1.permId} and maty_id = ?{1.typeId}", batchUpdate = true) public void updateMaterialRegistrations(List<RegistrationDTO> registrations); - @Update(sql = "update projects " + UPDATE2, batchUpdate = true) + @Update(sql = "update projects " + SETTERS + "where perm_id = ?{1.permId}", batchUpdate = true) public void updateProjectRegistrations(List<RegistrationDTO> registrations); - @Update(sql = "update experiments_all " + UPDATE2, batchUpdate = true) + @Update(sql = "update experiments_all " + SETTERS + "where perm_id = ?{1.permId}", batchUpdate = true) public void updateExperimentRegistrations(List<RegistrationDTO> registrations); - @Update(sql = "update samples_all " + UPDATE2, batchUpdate = true) + @Update(sql = "update samples_all " + SETTERS + "where perm_id = ?{1.permId}", batchUpdate = true) public void updateSampleRegistrations(List<RegistrationDTO> registrations); - @Update(sql = "update data_all set registration_timestamp = ?{1.registrationTimestamp}, pers_id_registerer = ?{1.registratorId} " - + "where code = ?{1.permId}", batchUpdate = true) + @Update(sql = "update data_all " + SETTERS + "where code = ?{1.permId}", batchUpdate = true) public void updateDataSetRegistrations(List<RegistrationDTO> registrations); } diff --git a/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/harvester/synchronizer/RegistrationDTO.java b/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/harvester/synchronizer/RegistrationDTO.java index de5777cfe3e..ab1083230e7 100644 --- a/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/harvester/synchronizer/RegistrationDTO.java +++ b/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/harvester/synchronizer/RegistrationDTO.java @@ -24,9 +24,11 @@ import java.util.Date; public class RegistrationDTO { private String permId; - + private Long typeId; + private Date modificationTimestamp; + private Date registrationTimestamp; private long registratorId; @@ -51,6 +53,16 @@ public class RegistrationDTO this.typeId = typeId; } + public Date getModificationTimestamp() + { + return modificationTimestamp; + } + + public void setModificationTimestamp(Date modificationTimestamp) + { + this.modificationTimestamp = modificationTimestamp; + } + public Date getRegistrationTimestamp() { return registrationTimestamp; -- GitLab