branch develop updated (cbf55f5 -> 2bfa227)
This is an automated email from the git hooks/post-receive script. New change to branch develop in repository observe. See http://git.codelutin.com/observe.git from cbf55f5 renommage des classes de test pour le module client Rest new ac7c587 ajout de la date de mise a jour pour les entité dans le référentiel (refs #7520) new 7407fcd ajout de la date de mise a jour pour les Trip, Route, Activity, Set (refs #7470) new 35481cc ajout de la date de mise a jour dans les DTO (refs #7470 #7520) new a78bd4e lever un execption en cas de modification concurent d'une entité siuvie en modif (refs #7470 #7520) new 5b64f73 fix npe (refs #7470 #7520) new 9f17d49 A la sauvegarde d'un DTO, verifier seulement que la date de dernière mise a jour en base n'est pas après la date du DTO (refs #7520) new 2bfa227 Mise à jour du référentiel (Termine #7520). Merge branch 'feature/7520' into develop The 7 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit 2bfa22757d2ec70552d1195f75aefd66d750e2e9 Merge: cbf55f5 9f17d49 Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Sep 16 08:34:12 2015 +0200 Mise à jour du référentiel (Termine #7520). Merge branch 'feature/7520' into develop commit 9f17d4914216271dd9261cda2fa3b6dc12d67e7e Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Tue Sep 15 10:52:47 2015 +0200 A la sauvegarde d'un DTO, verifier seulement que la date de dernière mise a jour en base n'est pas après la date du DTO (refs #7520) commit 5b64f735b90cbe9baa4dd8aab5a4f77c12466af0 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Fri Sep 11 11:20:59 2015 +0200 fix npe (refs #7470 #7520) commit a78bd4e97e995e91b8df5908873bec7230d7d735 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Fri Sep 11 11:09:27 2015 +0200 lever un execption en cas de modification concurent d'une entité siuvie en modif (refs #7470 #7520) commit 35481cc6bcb3471ad7eb800162cf39ffc63f74ce Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Fri Sep 11 10:21:39 2015 +0200 ajout de la date de mise a jour dans les DTO (refs #7470 #7520) commit 7407fcdbb3c0fe80c6ffcf53dd0edb098ee451d1 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Thu Sep 10 16:08:39 2015 +0200 ajout de la date de mise a jour pour les Trip, Route, Activity, Set (refs #7470) commit ac7c5874a591a2e323906c69273dafda6d990c0e Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Thu Sep 10 15:18:33 2015 +0200 ajout de la date de mise a jour pour les entité dans le référentiel (refs #7520) Summary of changes: .../v1/ReferentialServiceController.java | 6 + .../java/fr/ird/observe/entities/Activity.java | 2 +- .../java/fr/ird/observe/entities/ObserveSet.java | 2 +- .../main/java/fr/ird/observe/entities/Trip.java | 2 +- .../migration/AbstractDataSourceMigration.java | 3 +- .../DataSourceMigrationForVersion_5_0.java | 6 +- .../resources/db/5.0/add_lastUpdate_field-H2.sql | 153 ++++++++++++++++++++ .../resources/db/5.0/add_lastUpdate_field-PG.sql | 154 +++++++++++++++++++++ observe-entities/src/main/xmi/observe-common.zargo | Bin 35191 -> 37033 bytes .../src/main/xmi/observe-longline.zargo | Bin 95691 -> 96937 bytes observe-entities/src/main/xmi/observe-seine.zargo | Bin 83247 -> 84597 bytes .../service/ConcurrentModificationException.java | 26 ++++ .../services/service/ReferentialService.java | 4 + .../observe/services/dto/FollowedUpdateDto.java | 14 ++ .../ird/observe/services/dto/ReferenceSetDtos.java | 8 +- .../xmi/observe-services-dto-common.properties | 6 +- .../src/main/xmi/observe-services-dto-common.zargo | Bin 34629 -> 35328 bytes .../xmi/observe-services-dto-longline.properties | 6 +- .../main/xmi/observe-services-dto-longline.zargo | Bin 59030 -> 61407 bytes .../main/xmi/observe-services-dto-seine.properties | 6 +- .../src/main/xmi/observe-services-dto-seine.zargo | Bin 56972 -> 59029 bytes .../ird/observe/services/ObserveServiceTopia.java | 80 ++++++++++- .../services/dto/ObserveDtosInitializer.java | 57 +++++--- .../services/service/ReferentialServiceTopia.java | 17 +++ .../services/service/AbstractServiceTopiaTest.java | 20 ++- .../service/ReferentialServiceTopiaTest.java | 36 +++++ .../service/seine/TripSeineServiceTopiaTest.java | 52 +++++++ 27 files changed, 619 insertions(+), 41 deletions(-) create mode 100644 observe-entities/src/main/resources/db/5.0/add_lastUpdate_field-H2.sql create mode 100644 observe-entities/src/main/resources/db/5.0/add_lastUpdate_field-PG.sql create mode 100644 observe-services-api/src/main/java/fr/ird/observe/services/service/ConcurrentModificationException.java create mode 100644 observe-services-model/src/main/java/fr/ird/observe/services/dto/FollowedUpdateDto.java -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See http://git.codelutin.com/observe.git commit ac7c5874a591a2e323906c69273dafda6d990c0e Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Thu Sep 10 15:18:33 2015 +0200 ajout de la date de mise a jour pour les entité dans le référentiel (refs #7520) --- .../v1/ReferentialServiceController.java | 6 + .../migration/AbstractDataSourceMigration.java | 3 +- .../DataSourceMigrationForVersion_5_0.java | 6 +- .../resources/db/5.0/add_lastUpdate_field-H2.sql | 133 ++++++++++++++++++++ .../resources/db/5.0/add_lastUpdate_field-PG.sql | 134 +++++++++++++++++++++ observe-entities/src/main/xmi/observe-common.zargo | Bin 35191 -> 36629 bytes .../services/service/ReferentialService.java | 4 + .../ird/observe/services/dto/ReferenceSetDtos.java | 8 +- .../xmi/observe-services-dto-common.properties | 6 +- .../src/main/xmi/observe-services-dto-common.zargo | Bin 34629 -> 33934 bytes .../xmi/observe-services-dto-longline.properties | 6 +- .../main/xmi/observe-services-dto-seine.properties | 6 +- .../ird/observe/services/ObserveServiceTopia.java | 63 +++++++++- .../services/service/ReferentialServiceTopia.java | 17 +++ .../service/ReferentialServiceTopiaTest.java | 50 ++++++++ 15 files changed, 426 insertions(+), 16 deletions(-) diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/ReferentialServiceController.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/ReferentialServiceController.java index 1f9356b..a917f4f 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/ReferentialServiceController.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/ReferentialServiceController.java @@ -29,6 +29,7 @@ import fr.ird.observe.services.service.DataNotFoundException; import fr.ird.observe.services.service.ReferentialService; import java.util.Collection; +import java.util.Date; /** * Created on 19/08/15. @@ -47,6 +48,11 @@ public class ReferentialServiceController extends ObserveAuthenticatedServiceCon } @Override + public <R extends ReferentialDto> ReferenceSetDto<R> getReferentialReferenceSetIfModify(Class<R> type, Date updateAfter) { + return service.getReferentialReferenceSetIfModify(type, updateAfter); + } + + @Override public <R extends ReferentialDto> FormDto<R> loadToRead(Class<R> type, String id) throws DataNotFoundException { return service.loadToRead(type, id); } diff --git a/observe-entities/src/main/java/fr/ird/observe/entities/migration/AbstractDataSourceMigration.java b/observe-entities/src/main/java/fr/ird/observe/entities/migration/AbstractDataSourceMigration.java index 34d7e84..d89d5fe 100644 --- a/observe-entities/src/main/java/fr/ird/observe/entities/migration/AbstractDataSourceMigration.java +++ b/observe-entities/src/main/java/fr/ird/observe/entities/migration/AbstractDataSourceMigration.java @@ -81,12 +81,13 @@ public abstract class AbstractDataSourceMigration extends TopiaMigrationCallback public static final Version V_4_0_RC7 = Versions.valueOf("4.0-RC7"); public static final Version V_4_0 = Versions.valueOf("4.0"); - public static final Version V_5_0 = Versions.valueOf("5.0"); public static final Version V_4_0_1 = Versions.valueOf("4.0.1"); public static final Version V_4_0_2 = Versions.valueOf("4.0.2"); + public static final Version V_5_0 = Versions.valueOf("5.0"); + /** Les versions de mise à jour disponibles. */ public static final Version[] availableVersions = new Version[]{ V_3_1, V_3_5, V_3_7, V_3_8, V_3_9, V_3_10, V_3_11, V_3_12, V_3_14, V_3_15, V_3_16, V_4_0_RC2, diff --git a/observe-entities/src/main/java/fr/ird/observe/entities/migration/versions/DataSourceMigrationForVersion_5_0.java b/observe-entities/src/main/java/fr/ird/observe/entities/migration/versions/DataSourceMigrationForVersion_5_0.java index 14cb837..1447187 100644 --- a/observe-entities/src/main/java/fr/ird/observe/entities/migration/versions/DataSourceMigrationForVersion_5_0.java +++ b/observe-entities/src/main/java/fr/ird/observe/entities/migration/versions/DataSourceMigrationForVersion_5_0.java @@ -53,11 +53,11 @@ public class DataSourceMigrationForVersion_5_0 extends AbstractObserveMigrationC // Ajout des champs lastUpdate // See https://forge.codelutin.com/issues/7470 - //TODO addScript("add_last_date_update", queries); + addScript("add_lastUpdate_field", queries); } - public static class H2DataSourceMigrationForVersion extends DataSourceMigrationForVersion_4_0 { + public static class H2DataSourceMigrationForVersion extends DataSourceMigrationForVersion_5_0 { public H2DataSourceMigrationForVersion(AbstractDataSourceMigration callBack) { super(callBack, H2DataSourceMigration.TYPE); @@ -65,7 +65,7 @@ public class DataSourceMigrationForVersion_5_0 extends AbstractObserveMigrationC } - public static class PGDataSourceMigrationForVersion extends DataSourceMigrationForVersion_4_0 { + public static class PGDataSourceMigrationForVersion extends DataSourceMigrationForVersion_5_0 { public PGDataSourceMigrationForVersion(AbstractDataSourceMigration callBack) { super(callBack, PGDataSourceMigration.TYPE); diff --git a/observe-entities/src/main/resources/db/5.0/add_lastUpdate_field-H2.sql b/observe-entities/src/main/resources/db/5.0/add_lastUpdate_field-H2.sql new file mode 100644 index 0000000..c2c3ca7 --- /dev/null +++ b/observe-entities/src/main/resources/db/5.0/add_lastUpdate_field-H2.sql @@ -0,0 +1,133 @@ + + +-- Referentiel commum +ALTER TABLE OBSERVE_COMMON.COUNTRY ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_COMMON.FPAZONE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_COMMON.GEAR ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_COMMON.GEARCARACTERISTIC ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_COMMON.GEARCARACTERISTICTYPE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_COMMON.HARBOUR ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_COMMON.LENGTHWEIGHTPARAMETER ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_COMMON.OCEAN ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_COMMON.ORGANISM ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_COMMON.PERSON ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_COMMON.PROGRAM ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_COMMON.SEX ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_COMMON.SPECIES ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_COMMON.SPECIESGROUP ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_COMMON.SPECIESLIST ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_COMMON.VESSEL ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_COMMON.VESSELSIZECATEGORY ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_COMMON.VESSELTYPE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; + +-- Référentiel senne +ALTER TABLE OBSERVE_SEINE.DETECTIONMODE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_SEINE.OBJECTFATE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_SEINE.OBJECTOPERATION ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_SEINE.OBJECTTYPE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_SEINE.OBSERVEDSYSTEM ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_SEINE.REASONFORDISCARD ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_SEINE.REASONFORNOFISHING ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_SEINE.REASONFORNULLSET ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_SEINE.SPECIESFATE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_SEINE.SPECIESSTATUS ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_SEINE.SURROUNDINGACTIVITY ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_SEINE.TRANSMITTINGBUOYOPERATION ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_SEINE.TRANSMITTINGBUOYTYPE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_SEINE.VESSELACTIVITY ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_SEINE.WEIGHTCATEGORY ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_SEINE.WIND ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; + +-- Référentiel Palangre +ALTER TABLE OBSERVE_LONGLINE.BAITHAULINGSTATUS ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.BAITSETTINGSTATUS ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.BAITTYPE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.CATCHFATE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.ENCOUNTERTYPE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.HEALTHNESS ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.HOOKPOSITION ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.HOOKSIZE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.HOOKTYPE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.ITEMHORIZONTALPOSITION ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.ITEMVERTICALPOSITION ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.LIGHTSTICKSCOLOR ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.LIGHTSTICKSTYPE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.LINETYPE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.MATURITYSTATUS ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.MITIGATIONTYPE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.SENSORBRAND ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.SENSORDATAFORMAT ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.SENSORTYPE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.SETTINGSHAPE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.SIZEMEASURETYPE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.STOMACFULLNESS ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.TRIPTYPE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.VESSELACTIVITY ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.WEIGHTMEASURETYPE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; + + +-- Création de la table d'historisation +CREATE TABLE OBSERVE_COMMON.LASTUPDATETYPE (TOPIAID VARCHAR(255) NOT NULL, TOPIAVERSION BIGINT NOT NULL, TOPIACREATEDATE TIMESTAMP, TYPE VARCHAR(255) NOT NULL, LASTUPDATE TIMESTAMP NOT NULL); +ALTER TABLE OBSERVE_COMMON.LASTUPDATETYPE ADD CONSTRAINT PK_LASTUPDATETYPE PRIMARY KEY(TOPIAID); + +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#0.01', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.Country', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#0.02', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.FpaZone', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#0.03', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.Gear', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#0.04', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.GearCaracteristic', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#0.05', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.GearCaracteristicType', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#0.06', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.Harbour', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#0.07', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.LengthWeightParameter', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#0.08', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.Ocean', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#0.09', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.Organism', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#0.10', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.Person', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#0.11', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.Program', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#0.12', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.Sex', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#0.13', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.Species', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#0.14', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.SpeciesGroup', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#0.15', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.SpeciesList', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#0.16', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.Vessel', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#0.17', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.VesselSizeCategory', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#0.18', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.VesselType', CURRENT_TIMESTAMP); + +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#1.01', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.seine.DetectionMode', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#1.02', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.seine.ObjectFate', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#1.03', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.seine.ObjectOperation', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#1.04', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.seine.ObjectType', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#1.05', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.seine.ObservedSystem', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#1.06', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.seine.ReasonForDiscard', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#1.07', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.seine.ReasonForNoFishing', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#1.08', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.seine.ReasonForNullSet', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#1.09', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.seine.SpeciesFate', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#1.10', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.seine.SpeciesStatus', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#1.12', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.seine.SurroundingActivity', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#1.13', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.seine.TransmittingBuoyOperation', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#1.14', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.seine.TransmittingBuoyType', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#1.15', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.seine.VesselActivitySeine', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#1.16', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.seine.WeightCategory', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#1.17', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.seine.Wind', CURRENT_TIMESTAMP); + +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.01', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.BaitHaulingStatus', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.02', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.BaitSettingStatus', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.03', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.BaitType', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.04', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.CatchFateLongline', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.05', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.EncounterType', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.06', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.Healthness', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.07', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.HookPosition', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.08', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.HookSize', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.09', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.HookType', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.10', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.ItemHorizontalPosition', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.11', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.ItemVerticalPosition', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.12', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.LightsticksColor', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.13', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.LightsticksType', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.14', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.LineType', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.15', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.MaturityStatus', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.16', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.MitigationType', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.17', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.SensorBrand', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.18', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.SensorDataFormat', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.19', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.SensorType', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.20', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.SettingShape', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.21', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.SizeMeasureType', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.22', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.StomacFullness', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.23', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.TripType', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.24', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.VesselActivityLongline', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.25', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.WeightMeasureType', CURRENT_TIMESTAMP); \ No newline at end of file diff --git a/observe-entities/src/main/resources/db/5.0/add_lastUpdate_field-PG.sql b/observe-entities/src/main/resources/db/5.0/add_lastUpdate_field-PG.sql new file mode 100644 index 0000000..77edb86 --- /dev/null +++ b/observe-entities/src/main/resources/db/5.0/add_lastUpdate_field-PG.sql @@ -0,0 +1,134 @@ + + +-- Referentiel commum +ALTER TABLE OBSERVE_COMMON.COUNTRY ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_COMMON.FPAZONE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_COMMON.GEAR ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_COMMON.GEARCARACTERISTIC ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_COMMON.GEARCARACTERISTICTYPE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_COMMON.HARBOUR ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_COMMON.LENGTHWEIGHTPARAMETER ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_COMMON.OCEAN ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_COMMON.ORGANISM ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_COMMON.PERSON ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_COMMON.PROGRAM ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_COMMON.SEX ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_COMMON.SPECIES ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_COMMON.SPECIESGROUP ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_COMMON.SPECIESLIST ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_COMMON.VESSEL ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_COMMON.VESSELSIZECATEGORY ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_COMMON.VESSELTYPE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; + +-- Référentiel senne +ALTER TABLE OBSERVE_SEINE.DETECTIONMODE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_SEINE.OBJECTFATE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_SEINE.OBJECTOPERATION ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_SEINE.OBJECTTYPE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_SEINE.OBSERVEDSYSTEM ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_SEINE.REASONFORDISCARD ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_SEINE.REASONFORNOFISHING ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_SEINE.REASONFORNULLSET ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_SEINE.SPECIESFATE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_SEINE.SPECIESSTATUS ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_SEINE.SURROUNDINGACTIVITY ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_SEINE.TRANSMITTINGBUOYOPERATION ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_SEINE.TRANSMITTINGBUOYTYPE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_SEINE.VESSELACTIVITY ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_SEINE.WEIGHTCATEGORY ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_SEINE.WIND ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; + +-- Référentiel Palangre +ALTER TABLE OBSERVE_LONGLINE.BAITHAULINGSTATUS ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.BAITSETTINGSTATUS ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.BAITTYPE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.CATCHFATE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.ENCOUNTERTYPE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.HEALTHNESS ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.HOOKPOSITION ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.HOOKSIZE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.HOOKTYPE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.ITEMHORIZONTALPOSITION ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.ITEMVERTICALPOSITION ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.LIGHTSTICKSCOLOR ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.LIGHTSTICKSTYPE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.LINETYPE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.MATURITYSTATUS ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.MITIGATIONTYPE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.SENSORBRAND ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.SENSORDATAFORMAT ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.SENSORTYPE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.SETTINGSHAPE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.SIZEMEASURETYPE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.STOMACFULLNESS ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.TRIPTYPE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.VESSELACTIVITY ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.WEIGHTMEASURETYPE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; + + +-- Création de la table d'historisation + +CREATE TABLE OBSERVE_COMMON.LASTUPDATETYPE (TOPIAID CHARACTER VARYING(255) NOT NULL, TOPIAVERSION BIGINT NOT NULL, TOPIACREATEDATE TIMESTAMP, TYPE CHARACTER VARYING(255) NOT NULL, LASTUPDATE TIMESTAMP NOT NULL); +ALTER TABLE OBSERVE_COMMON.LASTUPDATETYPE ADD CONSTRAINT PK_LASTUPDATETYPE PRIMARY KEY(TOPIAID); + +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#0.01', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.Country', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#0.02', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.FpaZone', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#0.03', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.Gear', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#0.04', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.GearCaracteristic', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#0.05', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.GearCaracteristicType', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#0.06', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.Harbour', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#0.07', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.LengthWeightParameter', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#0.08', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.Ocean', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#0.09', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.Organism', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#0.10', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.Person', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#0.11', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.Program', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#0.12', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.Sex', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#0.13', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.Species', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#0.14', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.SpeciesGroup', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#0.15', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.SpeciesList', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#0.16', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.Vessel', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#0.17', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.VesselSizeCategory', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#0.18', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.VesselType', CURRENT_TIMESTAMP); + +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#1.01', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.seine.DetectionMode', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#1.02', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.seine.ObjectFate', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#1.03', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.seine.ObjectOperation', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#1.04', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.seine.ObjectType', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#1.05', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.seine.ObservedSystem', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#1.06', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.seine.ReasonForDiscard', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#1.07', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.seine.ReasonForNoFishing', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#1.08', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.seine.ReasonForNullSet', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#1.09', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.seine.SpeciesFate', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#1.10', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.seine.SpeciesStatus', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#1.12', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.seine.SurroundingActivity', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#1.13', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.seine.TransmittingBuoyOperation', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#1.14', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.seine.TransmittingBuoyType', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#1.15', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.seine.VesselActivitySeine', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#1.16', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.seine.WeightCategory', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#1.17', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.seine.Wind', CURRENT_TIMESTAMP); + +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.01', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.BaitHaulingStatus', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.02', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.BaitSettingStatus', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.03', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.BaitType', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.04', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.CatchFateLongline', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.05', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.EncounterType', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.06', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.Healthness', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.07', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.HookPosition', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.08', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.HookSize', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.09', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.HookType', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.10', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.ItemHorizontalPosition', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.11', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.ItemVerticalPosition', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.12', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.LightsticksColor', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.13', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.LightsticksType', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.14', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.LineType', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.15', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.MaturityStatus', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.16', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.MitigationType', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.17', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.SensorBrand', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.18', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.SensorDataFormat', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.19', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.SensorType', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.20', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.SettingShape', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.21', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.SizeMeasureType', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.22', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.StomacFullness', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.23', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.TripType', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.24', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.VesselActivityLongline', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.25', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.WeightMeasureType', CURRENT_TIMESTAMP); diff --git a/observe-entities/src/main/xmi/observe-common.zargo b/observe-entities/src/main/xmi/observe-common.zargo index e30a24c..db9fa01 100644 Binary files a/observe-entities/src/main/xmi/observe-common.zargo and b/observe-entities/src/main/xmi/observe-common.zargo differ diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferentialService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferentialService.java index 8a00e1d..950b4fe 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferentialService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferentialService.java @@ -33,6 +33,7 @@ import fr.ird.observe.services.spi.Write; import fr.ird.observe.services.spi.WriteReferentialPermission; import java.util.Collection; +import java.util.Date; /** * Created on 16/08/15. @@ -45,6 +46,9 @@ public interface ReferentialService extends ObserveService { <R extends ReferentialDto> ReferenceSetDto<R> getReferentialReferenceSet(Class<R> type); @ReadReferentialPermission + <R extends ReferentialDto> ReferenceSetDto<R> getReferentialReferenceSetIfModify(Class<R> type, Date updateAfter); + + @ReadReferentialPermission <R extends ReferentialDto> FormDto<R> loadToRead(Class<R> type, String id) throws DataNotFoundException; @WriteReferentialPermission diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/ReferenceSetDtos.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/ReferenceSetDtos.java index a46821f..08acf5b 100644 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/ReferenceSetDtos.java +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/ReferenceSetDtos.java @@ -25,6 +25,7 @@ package fr.ird.observe.services.dto; import com.google.common.base.Function; import com.google.common.base.Predicate; +import java.util.Date; import java.util.LinkedHashSet; import java.util.Objects; @@ -38,10 +39,13 @@ public class ReferenceSetDtos extends AbstractReferenceSetDtos { return dto; } - public static <D extends IdDto, R extends ReferenceDto<D>> ReferenceSetDto<D> newReferenceSetDto(Class<D> type, - LinkedHashSet<R> labels) { + public static <D extends IdDto, R extends ReferenceDto<D>> ReferenceSetDto<D> newReferenceSetDto( + Class<D> type, + LinkedHashSet<R> labels, + Date lastUpdate) { ReferenceSetDto<D> dto = new ReferenceSetDto<>(type); dto.setReference((LinkedHashSet) labels); + dto.setLastUpdate(lastUpdate); return dto; } diff --git a/observe-services-model/src/main/xmi/observe-services-dto-common.properties b/observe-services-model/src/main/xmi/observe-services-dto-common.properties index ef4acac..b665f09 100644 --- a/observe-services-model/src/main/xmi/observe-services-dto-common.properties +++ b/observe-services-model/src/main/xmi/observe-services-dto-common.properties @@ -8,18 +8,18 @@ # it under the terms of the GNU 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 General Public # License along with this program. If not, see # <http://www.gnu.org/licenses/gpl-3.0.html>. # #L% ### -model.tagvalue.version=7.0 +model.tagvalue.version=5.0 model.tagvalue.simpleBeanWithNoInterfaceSuperClass=fr.ird.observe.services.dto.AbstractObserveDto model.tagvalue.simpleBeanWithNoInterfaceDefaultsClassNameSuffix=Dtos diff --git a/observe-services-model/src/main/xmi/observe-services-dto-common.zargo b/observe-services-model/src/main/xmi/observe-services-dto-common.zargo index fadfb2d..fa18225 100644 Binary files a/observe-services-model/src/main/xmi/observe-services-dto-common.zargo and b/observe-services-model/src/main/xmi/observe-services-dto-common.zargo differ diff --git a/observe-services-model/src/main/xmi/observe-services-dto-longline.properties b/observe-services-model/src/main/xmi/observe-services-dto-longline.properties index 03828c8..e867990 100644 --- a/observe-services-model/src/main/xmi/observe-services-dto-longline.properties +++ b/observe-services-model/src/main/xmi/observe-services-dto-longline.properties @@ -8,18 +8,18 @@ # it under the terms of the GNU 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 General Public # License along with this program. If not, see # <http://www.gnu.org/licenses/gpl-3.0.html>. # #L% ### -model.tagvalue.version=7.0 +model.tagvalue.version=5.0 model.tagvalue.simpleBeanWithNoInterfaceSuperClass=fr.ird.observe.services.dto.AbstractObserveDto model.tagvalue.simpleBeanWithNoInterfaceDefaultsClassNameSuffix=Dtos diff --git a/observe-services-model/src/main/xmi/observe-services-dto-seine.properties b/observe-services-model/src/main/xmi/observe-services-dto-seine.properties index 1a45d9c..efba507 100644 --- a/observe-services-model/src/main/xmi/observe-services-dto-seine.properties +++ b/observe-services-model/src/main/xmi/observe-services-dto-seine.properties @@ -8,18 +8,18 @@ # it under the terms of the GNU 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 General Public # License along with this program. If not, see # <http://www.gnu.org/licenses/gpl-3.0.html>. # #L% ### -model.tagvalue.version=7.0 +model.tagvalue.version=5.0 model.tagvalue.simpleBeanWithNoInterfaceSuperClass=fr.ird.observe.services.dto.AbstractObserveDto model.tagvalue.simpleBeanWithNoInterfaceDefaultsClassNameSuffix=Dtos diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/ObserveServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/ObserveServiceTopia.java index eca8a1f..38b7a4f 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/ObserveServiceTopia.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/ObserveServiceTopia.java @@ -30,6 +30,9 @@ import com.google.common.collect.Multimap; import fr.ird.observe.ObserveTopiaApplicationContext; import fr.ird.observe.ObserveTopiaPersistenceContext; import fr.ird.observe.entities.Entities; +import fr.ird.observe.entities.FollowedUpdateEntity; +import fr.ird.observe.entities.LastUpdateType; +import fr.ird.observe.entities.LastUpdateTypeTopiaDao; import fr.ird.observe.entities.constants.ReferenceLocale; import fr.ird.observe.entities.longline.TripLongline; import fr.ird.observe.entities.referentiel.ReferenceEntity; @@ -196,12 +199,62 @@ public class ObserveServiceTopia implements ObserveService { } protected <E extends TopiaEntity> E saveEntity(Class<E> entityType, E entity) { + if (entity instanceof FollowedUpdateEntity) { + ((FollowedUpdateEntity) entity).setLastUpdate(now()); + } ObserveTopiaPersistenceContext persistenceContext = serviceContext.getTopiaPersistenceContext(); TopiaDao<E> dao = persistenceContext.getDao(entityType); entity = dao.update(entity); + if (entity instanceof FollowedUpdateEntity) { + Class<? extends FollowedUpdateEntity> followedUpdateType = (Class<? extends FollowedUpdateEntity>) entityType; + setLastUpdate(followedUpdateType, ((FollowedUpdateEntity) entity).getLastUpdate()); + } + return entity; } + protected <E extends FollowedUpdateEntity> void setLastUpdate(Class<E> entityType, Date lastUpdate) { + + ObserveTopiaPersistenceContext persistenceContext = serviceContext.getTopiaPersistenceContext(); + + LastUpdateTypeTopiaDao dao = persistenceContext.getLastUpdateTypeDao(); + + LastUpdateType lastUpdateType = dao.forTypeEquals(entityType.getCanonicalName()).findUniqueOrNull(); + + if (lastUpdateType == null) { + + lastUpdateType = dao.newInstance(); + + lastUpdateType.setType(entityType.getCanonicalName()); + + } + + lastUpdateType.setLastUpdate(lastUpdate); + + dao.update(lastUpdateType); + } + + protected <E extends TopiaEntity> Optional<Date> getLastUpdate(Class<E> entityType) { + + Optional<Date> result = Optional.absent(); + + if (FollowedUpdateEntity.class.isAssignableFrom(entityType)) { + + ObserveTopiaPersistenceContext persistenceContext = serviceContext.getTopiaPersistenceContext(); + + LastUpdateTypeTopiaDao dao = persistenceContext.getLastUpdateTypeDao(); + + Optional<LastUpdateType> lastUpdateTypeOptional = dao.forTypeEquals(entityType.getCanonicalName()).tryFindUnique(); + + if (lastUpdateTypeOptional.isPresent()) { + result = Optional.of(lastUpdateTypeOptional.get().getLastUpdate()); + } + + } + + return result; + } + protected <D extends IdDto, E extends TopiaEntity> void deleteEntity(Class<D> dtoType, Class<E> entityType, Iterable<String> ids) { ObserveTopiaPersistenceContext persistenceContext = serviceContext.getTopiaPersistenceContext(); TopiaDao<E> dao = persistenceContext.getDao(entityType); @@ -211,6 +264,10 @@ public class ObserveServiceTopia implements ObserveService { throw new DataNotFoundException(dtoType, id); } dao.delete(entity); + if (FollowedUpdateEntity.class.isAssignableFrom(entityType)) { + Class<? extends FollowedUpdateEntity> followedUpdateType = (Class<? extends FollowedUpdateEntity>) entityType; + setLastUpdate(followedUpdateType, now()); + } } } @@ -324,7 +381,11 @@ public class ObserveServiceTopia implements ObserveService { labels.add(dto); } - ReferenceSetDto labelSetDto = ReferenceSetDtos.newReferenceSetDto(dtoType, labels); + + Optional<Date> lastUpdateOptional = getLastUpdate(entityType); + + ReferenceSetDto labelSetDto = ReferenceSetDtos.newReferenceSetDto(dtoType, labels, lastUpdateOptional.orNull()); + return labelSetDto; } diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/ReferentialServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/service/ReferentialServiceTopia.java index da64306..ff11b37 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/service/ReferentialServiceTopia.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/service/ReferentialServiceTopia.java @@ -22,6 +22,7 @@ package fr.ird.observe.services.service; * #L% */ +import com.google.common.base.Optional; import fr.ird.observe.services.ObserveServiceTopia; import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.ReferenceSetDto; @@ -30,6 +31,7 @@ import org.nuiton.topia.persistence.TopiaEntity; import java.util.Collection; import java.util.Collections; +import java.util.Date; /** * Created on 16/08/15. @@ -44,6 +46,21 @@ public class ReferentialServiceTopia extends ObserveServiceTopia implements Refe } @Override + public <D extends ReferentialDto> ReferenceSetDto<D> getReferentialReferenceSetIfModify(Class<D> dtoType, Date updateAfter) { + ReferenceSetDto<D> result = null; + + Class<TopiaEntity> entityType = getEntityType(dtoType); + + Optional<Date> lastUpdateOptional = getLastUpdate(entityType); + + if (lastUpdateOptional.isPresent() && lastUpdateOptional.get().after(updateAfter)) { + result = getReferenceSet(dtoType); + } + + return result; + } + + @Override public <D extends ReferentialDto> FormDto<D> loadToRead(Class<D> dtoType, String id) { Class<TopiaEntity> entityType = getEntityType(dtoType); TopiaEntity entity = loadEntity(dtoType, entityType, id); diff --git a/observe-services-topia/src/test/java/fr/ird/observe/services/service/ReferentialServiceTopiaTest.java b/observe-services-topia/src/test/java/fr/ird/observe/services/service/ReferentialServiceTopiaTest.java index 817fdac..e75fc35 100644 --- a/observe-services-topia/src/test/java/fr/ird/observe/services/service/ReferentialServiceTopiaTest.java +++ b/observe-services-topia/src/test/java/fr/ird/observe/services/service/ReferentialServiceTopiaTest.java @@ -24,6 +24,8 @@ package fr.ird.observe.services.service; import com.google.common.collect.ImmutableSet; import fr.ird.observe.ObserveTopiaPersistenceContext; +import fr.ird.observe.entities.LastUpdateType; +import fr.ird.observe.entities.LastUpdateTypeTopiaDao; import fr.ird.observe.entities.referentiel.LengthWeightParameter; import fr.ird.observe.entities.referentiel.Program; import fr.ird.observe.services.dto.FormDto; @@ -32,13 +34,17 @@ import fr.ird.observe.services.dto.ReferenceSetDto; import fr.ird.observe.services.dto.referential.LengthWeightParameterDto; import fr.ird.observe.services.dto.referential.ProgramDto; import fr.ird.observe.services.dto.referential.ReferentialDto; +import fr.ird.observe.services.dto.referential.VesselDto; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.junit.Assert; import org.junit.Test; import org.nuiton.topia.persistence.TopiaDao; import org.nuiton.topia.persistence.TopiaEntity; +import org.nuiton.util.DateUtil; +import java.util.Calendar; +import java.util.Date; import java.util.Map; import java.util.Set; @@ -94,12 +100,39 @@ public class ReferentialServiceTopiaTest extends AbstractServiceTopiaTest { ReferenceSetDto referentialLabelSet = service.getReferentialReferenceSet(dtoType); Assert.assertNotNull(referentialLabelSet); Assert.assertEquals(expectedCount, referentialLabelSet.sizeReference()); + Assert.assertNotNull(referentialLabelSet.getLastUpdate()); } } @Test + public void testgetReferentialReferenceSetIfModify() { + + Date updateAfter = DateUtil.createDate(1,1, 2015); + + ReferenceSetDto<VesselDto> vesselReferenceSet = service.getReferentialReferenceSetIfModify(VesselDto.class, updateAfter); + + Assert.assertNotNull(vesselReferenceSet); + Assert.assertNotNull(vesselReferenceSet.getLastUpdate()); + Assert.assertTrue(vesselReferenceSet.sizeReference() > 0); + + updateAfter = vesselReferenceSet.getLastUpdate(); + + vesselReferenceSet = service.getReferentialReferenceSetIfModify(VesselDto.class, updateAfter); + Assert.assertNull(vesselReferenceSet); + + Calendar calendar = Calendar.getInstance(); + calendar.setTime(updateAfter); + calendar.add(Calendar.DATE, 1); + updateAfter = calendar.getTime(); + + vesselReferenceSet = service.getReferentialReferenceSetIfModify(VesselDto.class, updateAfter); + Assert.assertNull(vesselReferenceSet); + + } + + @Test public void testLoadToRead() throws Exception { ObserveTopiaPersistenceContext persistenceContext = dataSourceResource.newPersistenceContext(); @@ -222,10 +255,15 @@ public class ReferentialServiceTopiaTest extends AbstractServiceTopiaTest { Assert.assertNotNull(formDto.getForm()); Assert.assertNotNull(formDto.getForm().getId()); + Date lastUpdateBefore = getLastUpdate(entityType); + service.delete(dtoType, entity.getTopiaId()); Assert.assertEquals(expectedCount - 1, dao.count()); + Date lastUpdateAfter = getLastUpdate(entityType); + Assert.assertNotEquals(lastUpdateBefore, lastUpdateAfter); + try { service.loadToRead(dtoType, entity.getTopiaId()); Assert.fail(); @@ -234,4 +272,16 @@ public class ReferentialServiceTopiaTest extends AbstractServiceTopiaTest { } } + + protected Date getLastUpdate(Class entityType) { + ObserveTopiaPersistenceContext persistenceContext = dataSourceResource.newPersistenceContext(); + + LastUpdateTypeTopiaDao dao = persistenceContext.getLastUpdateTypeDao(); + + LastUpdateType lastUpdateType = dao.forTypeEquals(entityType.getCanonicalName()).findUnique(); + + return lastUpdateType.getLastUpdate(); + + + } } \ No newline at end of file -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See http://git.codelutin.com/observe.git commit 7407fcdbb3c0fe80c6ffcf53dd0edb098ee451d1 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Thu Sep 10 16:08:39 2015 +0200 ajout de la date de mise a jour pour les Trip, Route, Activity, Set (refs #7470) --- .../java/fr/ird/observe/entities/Activity.java | 2 +- .../java/fr/ird/observe/entities/ObserveSet.java | 2 +- .../main/java/fr/ird/observe/entities/Trip.java | 2 +- .../resources/db/5.0/add_lastUpdate_field-H2.sql | 24 +++++++++++++++++++-- .../resources/db/5.0/add_lastUpdate_field-PG.sql | 20 +++++++++++++++++ observe-entities/src/main/xmi/observe-common.zargo | Bin 36629 -> 37033 bytes .../src/main/xmi/observe-longline.zargo | Bin 95691 -> 96937 bytes observe-entities/src/main/xmi/observe-seine.zargo | Bin 83247 -> 84597 bytes .../services/service/AbstractServiceTopiaTest.java | 20 +++++++++++++++-- .../service/ReferentialServiceTopiaTest.java | 14 ------------ .../service/seine/TripSeineServiceTopiaTest.java | 15 +++++++++++++ 11 files changed, 78 insertions(+), 21 deletions(-) diff --git a/observe-entities/src/main/java/fr/ird/observe/entities/Activity.java b/observe-entities/src/main/java/fr/ird/observe/entities/Activity.java index 77540f7..806df87 100644 --- a/observe-entities/src/main/java/fr/ird/observe/entities/Activity.java +++ b/observe-entities/src/main/java/fr/ird/observe/entities/Activity.java @@ -24,7 +24,7 @@ package fr.ird.observe.entities; import org.nuiton.topia.persistence.TopiaEntity; -public interface Activity extends TopiaEntity{ +public interface Activity extends TopiaEntity, FollowedUpdateEntity{ String PROPERTY_QUADRANT = "quadrant"; diff --git a/observe-entities/src/main/java/fr/ird/observe/entities/ObserveSet.java b/observe-entities/src/main/java/fr/ird/observe/entities/ObserveSet.java index 961497a..e82d13c 100644 --- a/observe-entities/src/main/java/fr/ird/observe/entities/ObserveSet.java +++ b/observe-entities/src/main/java/fr/ird/observe/entities/ObserveSet.java @@ -30,7 +30,7 @@ import org.nuiton.topia.persistence.TopiaEntity; * @author Tony Chemit - chemit@codelutin.com * @since 3.7 */ -public interface ObserveSet extends TopiaEntity { +public interface ObserveSet extends TopiaEntity, FollowedUpdateEntity { void initCoordinates(); diff --git a/observe-entities/src/main/java/fr/ird/observe/entities/Trip.java b/observe-entities/src/main/java/fr/ird/observe/entities/Trip.java index 0bcfbe6..bc7cf53 100644 --- a/observe-entities/src/main/java/fr/ird/observe/entities/Trip.java +++ b/observe-entities/src/main/java/fr/ird/observe/entities/Trip.java @@ -39,7 +39,7 @@ import java.util.Date; * @author Tony Chemit - chemit@codelutin.com * @since 3.7 */ -public interface Trip extends CommentableEntity { +public interface Trip extends CommentableEntity, FollowedUpdateEntity { String PROPERTY_START_DATE = "startDate"; diff --git a/observe-entities/src/main/resources/db/5.0/add_lastUpdate_field-H2.sql b/observe-entities/src/main/resources/db/5.0/add_lastUpdate_field-H2.sql index c2c3ca7..e26235f 100644 --- a/observe-entities/src/main/resources/db/5.0/add_lastUpdate_field-H2.sql +++ b/observe-entities/src/main/resources/db/5.0/add_lastUpdate_field-H2.sql @@ -20,7 +20,7 @@ ALTER TABLE OBSERVE_COMMON.VESSEL ADD COLUMN LASTUPDATE TIMEST ALTER TABLE OBSERVE_COMMON.VESSELSIZECATEGORY ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; ALTER TABLE OBSERVE_COMMON.VESSELTYPE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; --- Référentiel senne +-- Référentiel Senne ALTER TABLE OBSERVE_SEINE.DETECTIONMODE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; ALTER TABLE OBSERVE_SEINE.OBJECTFATE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; ALTER TABLE OBSERVE_SEINE.OBJECTOPERATION ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; @@ -65,6 +65,17 @@ ALTER TABLE OBSERVE_LONGLINE.TRIPTYPE ADD COLUMN LASTUPDATE TIMEST ALTER TABLE OBSERVE_LONGLINE.VESSELACTIVITY ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; ALTER TABLE OBSERVE_LONGLINE.WEIGHTMEASURETYPE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +-- Entitées Senne +ALTER TABLE OBSERVE_SEINE.ACTIVITY ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_SEINE.ROUTE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_SEINE.SET ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_SEINE.TRIP ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; + +-- Entitées Palangre +ALTER TABLE OBSERVE_LONGLINE.ACTIVITY ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.SET ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.TRIP ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; + -- Création de la table d'historisation CREATE TABLE OBSERVE_COMMON.LASTUPDATETYPE (TOPIAID VARCHAR(255) NOT NULL, TOPIAVERSION BIGINT NOT NULL, TOPIACREATEDATE TIMESTAMP, TYPE VARCHAR(255) NOT NULL, LASTUPDATE TIMESTAMP NOT NULL); @@ -130,4 +141,13 @@ INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastU INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.22', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.StomacFullness', CURRENT_TIMESTAMP); INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.23', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.TripType', CURRENT_TIMESTAMP); INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.24', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.VesselActivityLongline', CURRENT_TIMESTAMP); -INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.25', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.WeightMeasureType', CURRENT_TIMESTAMP); \ No newline at end of file +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.25', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.WeightMeasureType', CURRENT_TIMESTAMP); + +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#3.01', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.seine.ActivitySeine', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#3.02', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.seine.Route', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#3.03', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.seine.SetSeine', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#3.04', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.seine.TripSeine', CURRENT_TIMESTAMP); + +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#4.01', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.longline.ActivityLongline', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#4.02', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.longline.SetLongline', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#4.03', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.longline.TripLongline', CURRENT_TIMESTAMP); diff --git a/observe-entities/src/main/resources/db/5.0/add_lastUpdate_field-PG.sql b/observe-entities/src/main/resources/db/5.0/add_lastUpdate_field-PG.sql index 77edb86..cd1a3f6 100644 --- a/observe-entities/src/main/resources/db/5.0/add_lastUpdate_field-PG.sql +++ b/observe-entities/src/main/resources/db/5.0/add_lastUpdate_field-PG.sql @@ -65,6 +65,17 @@ ALTER TABLE OBSERVE_LONGLINE.TRIPTYPE ADD COLUMN LASTUPDATE TIMEST ALTER TABLE OBSERVE_LONGLINE.VESSELACTIVITY ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; ALTER TABLE OBSERVE_LONGLINE.WEIGHTMEASURETYPE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +-- Entitées Senne +ALTER TABLE OBSERVE_SEINE.ACTIVITY ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_SEINE.ROUTE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_SEINE.SET ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_SEINE.TRIP ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; + +-- Entitées Palangre +ALTER TABLE OBSERVE_LONGLINE.ACTIVITY ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.SET ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.TRIP ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; + -- Création de la table d'historisation @@ -132,3 +143,12 @@ INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastU INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.23', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.TripType', CURRENT_TIMESTAMP); INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.24', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.VesselActivityLongline', CURRENT_TIMESTAMP); INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.25', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.WeightMeasureType', CURRENT_TIMESTAMP); + +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#3.01', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.seine.ActivitySeine', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#3.02', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.seine.Route', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#3.03', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.seine.SetSeine', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#3.04', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.seine.TripSeine', CURRENT_TIMESTAMP); + +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#4.01', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.longline.ActivityLongline', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#4.02', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.longline.SetLongline', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#4.03', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.longline.TripLongline', CURRENT_TIMESTAMP); diff --git a/observe-entities/src/main/xmi/observe-common.zargo b/observe-entities/src/main/xmi/observe-common.zargo index db9fa01..aadf6fe 100644 Binary files a/observe-entities/src/main/xmi/observe-common.zargo and b/observe-entities/src/main/xmi/observe-common.zargo differ diff --git a/observe-entities/src/main/xmi/observe-longline.zargo b/observe-entities/src/main/xmi/observe-longline.zargo index fd7841b..9af82f6 100644 Binary files a/observe-entities/src/main/xmi/observe-longline.zargo and b/observe-entities/src/main/xmi/observe-longline.zargo differ diff --git a/observe-entities/src/main/xmi/observe-seine.zargo b/observe-entities/src/main/xmi/observe-seine.zargo index 540369e..de2e7c4 100644 Binary files a/observe-entities/src/main/xmi/observe-seine.zargo and b/observe-entities/src/main/xmi/observe-seine.zargo differ diff --git a/observe-services-topia/src/test/java/fr/ird/observe/services/service/AbstractServiceTopiaTest.java b/observe-services-topia/src/test/java/fr/ird/observe/services/service/AbstractServiceTopiaTest.java index fdabd80..1157dce 100644 --- a/observe-services-topia/src/test/java/fr/ird/observe/services/service/AbstractServiceTopiaTest.java +++ b/observe-services-topia/src/test/java/fr/ird/observe/services/service/AbstractServiceTopiaTest.java @@ -10,18 +10,21 @@ package fr.ird.observe.services.service; * it under the terms of the GNU 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 General Public * License along with this program. If not, see * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ +import fr.ird.observe.ObserveTopiaPersistenceContext; +import fr.ird.observe.entities.LastUpdateType; +import fr.ird.observe.entities.LastUpdateTypeTopiaDao; import fr.ird.observe.entities.migration.H2DataSourceMigration; import fr.ird.observe.services.ApplicationContextResource; import fr.ird.observe.services.DataSourceResource; @@ -39,6 +42,7 @@ import org.nuiton.util.FileUtil; import java.io.File; import java.nio.file.Files; +import java.util.Date; import java.util.Set; /** @@ -124,4 +128,16 @@ public abstract class AbstractServiceTopiaTest { } + protected Date getLastUpdate(Class entityType) { + ObserveTopiaPersistenceContext persistenceContext = dataSourceResource.newPersistenceContext(); + + LastUpdateTypeTopiaDao dao = persistenceContext.getLastUpdateTypeDao(); + + LastUpdateType lastUpdateType = dao.forTypeEquals(entityType.getCanonicalName()).findUnique(); + + return lastUpdateType.getLastUpdate(); + + + } + } diff --git a/observe-services-topia/src/test/java/fr/ird/observe/services/service/ReferentialServiceTopiaTest.java b/observe-services-topia/src/test/java/fr/ird/observe/services/service/ReferentialServiceTopiaTest.java index e75fc35..1c64cd4 100644 --- a/observe-services-topia/src/test/java/fr/ird/observe/services/service/ReferentialServiceTopiaTest.java +++ b/observe-services-topia/src/test/java/fr/ird/observe/services/service/ReferentialServiceTopiaTest.java @@ -24,8 +24,6 @@ package fr.ird.observe.services.service; import com.google.common.collect.ImmutableSet; import fr.ird.observe.ObserveTopiaPersistenceContext; -import fr.ird.observe.entities.LastUpdateType; -import fr.ird.observe.entities.LastUpdateTypeTopiaDao; import fr.ird.observe.entities.referentiel.LengthWeightParameter; import fr.ird.observe.entities.referentiel.Program; import fr.ird.observe.services.dto.FormDto; @@ -272,16 +270,4 @@ public class ReferentialServiceTopiaTest extends AbstractServiceTopiaTest { } } - - protected Date getLastUpdate(Class entityType) { - ObserveTopiaPersistenceContext persistenceContext = dataSourceResource.newPersistenceContext(); - - LastUpdateTypeTopiaDao dao = persistenceContext.getLastUpdateTypeDao(); - - LastUpdateType lastUpdateType = dao.forTypeEquals(entityType.getCanonicalName()).findUnique(); - - return lastUpdateType.getLastUpdate(); - - - } } \ No newline at end of file diff --git a/observe-services-topia/src/test/java/fr/ird/observe/services/service/seine/TripSeineServiceTopiaTest.java b/observe-services-topia/src/test/java/fr/ird/observe/services/service/seine/TripSeineServiceTopiaTest.java index 9473922..150e6e6 100644 --- a/observe-services-topia/src/test/java/fr/ird/observe/services/service/seine/TripSeineServiceTopiaTest.java +++ b/observe-services-topia/src/test/java/fr/ird/observe/services/service/seine/TripSeineServiceTopiaTest.java @@ -43,6 +43,7 @@ import org.junit.Test; import org.nuiton.util.DateUtil; import java.util.Collection; +import java.util.Date; import java.util.List; import java.util.Set; @@ -267,6 +268,8 @@ public class TripSeineServiceTopiaTest extends AbstractServiceTopiaTest { tripSeineDto.setComment("Un commentaire"); + Date lastUpdateBefore = getLastUpdate(TripSeine.class); + String tripSeineId = service.save(formDto); TripSeine tripSeine = dataSourceResource.findById(TripSeine.class, tripSeineId); @@ -285,6 +288,8 @@ public class TripSeineServiceTopiaTest extends AbstractServiceTopiaTest { Assert.assertEquals(tripSeineDto.getReportsUrl(), tripSeine.getReportsUrl()); Assert.assertEquals(tripSeineDto.getComment(), tripSeine.getComment()); + Date lastUpdateAfter = getLastUpdate(TripSeine.class); + Assert.assertNotEquals(lastUpdateBefore, lastUpdateAfter); } @@ -318,6 +323,8 @@ public class TripSeineServiceTopiaTest extends AbstractServiceTopiaTest { tripSeineDto.setComment("Un commentaire"); + Date lastUpdateBefore = getLastUpdate(TripSeine.class); + service.save(formDto); TripSeine tripSeine = dataSourceResource.findById(TripSeine.class, TRIP_SEINE_ID_1); @@ -336,11 +343,16 @@ public class TripSeineServiceTopiaTest extends AbstractServiceTopiaTest { Assert.assertEquals(tripSeineDto.getReportsUrl(), tripSeine.getReportsUrl()); Assert.assertEquals(tripSeineDto.getComment(), tripSeine.getComment()); + Date lastUpdateAfter = getLastUpdate(TripSeine.class); + Assert.assertNotEquals(lastUpdateBefore, lastUpdateAfter); + } @Test public void deleteTest() { + Date lastUpdateBefore = getLastUpdate(TripSeine.class); + service.delete(TRIP_SEINE_ID_1); List<TripSeineStubDto> tripSeineByProgram = service.getTripSeineByProgram(PROGRAM_ID); @@ -349,6 +361,9 @@ public class TripSeineServiceTopiaTest extends AbstractServiceTopiaTest { Assert.assertFalse(dataSourceResource.exists(TripSeine.class, TRIP_SEINE_ID_1)); + Date lastUpdateAfter = getLastUpdate(TripSeine.class); + Assert.assertNotEquals(lastUpdateBefore, lastUpdateAfter); + } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See http://git.codelutin.com/observe.git commit 35481cc6bcb3471ad7eb800162cf39ffc63f74ce Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Fri Sep 11 10:21:39 2015 +0200 ajout de la date de mise a jour dans les DTO (refs #7470 #7520) --- .../observe/services/dto/FollowedUpdateDto.java | 14 +++++ .../src/main/xmi/observe-services-dto-common.zargo | Bin 33934 -> 35328 bytes .../main/xmi/observe-services-dto-longline.zargo | Bin 59030 -> 61407 bytes .../src/main/xmi/observe-services-dto-seine.zargo | Bin 56972 -> 59029 bytes .../services/dto/ObserveDtosInitializer.java | 57 ++++++++++++++------- .../service/seine/TripSeineServiceTopiaTest.java | 6 +++ 6 files changed, 58 insertions(+), 19 deletions(-) diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/FollowedUpdateDto.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/FollowedUpdateDto.java new file mode 100644 index 0000000..f304477 --- /dev/null +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/FollowedUpdateDto.java @@ -0,0 +1,14 @@ +package fr.ird.observe.services.dto; + +import java.util.Date; + +/** + * @author Sylvain Bavencoff - bavencoff@codelutin.com + */ +public interface FollowedUpdateDto { + + Date getLastUpdate(); + + void setLastUpdate(Date lastUpdate); + +} diff --git a/observe-services-model/src/main/xmi/observe-services-dto-common.zargo b/observe-services-model/src/main/xmi/observe-services-dto-common.zargo index fa18225..59c5da7 100644 Binary files a/observe-services-model/src/main/xmi/observe-services-dto-common.zargo and b/observe-services-model/src/main/xmi/observe-services-dto-common.zargo differ diff --git a/observe-services-model/src/main/xmi/observe-services-dto-longline.zargo b/observe-services-model/src/main/xmi/observe-services-dto-longline.zargo index cf43c27..76b9e29 100644 Binary files a/observe-services-model/src/main/xmi/observe-services-dto-longline.zargo and b/observe-services-model/src/main/xmi/observe-services-dto-longline.zargo differ diff --git a/observe-services-model/src/main/xmi/observe-services-dto-seine.zargo b/observe-services-model/src/main/xmi/observe-services-dto-seine.zargo index 246caa6..e714dbb 100644 Binary files a/observe-services-model/src/main/xmi/observe-services-dto-seine.zargo and b/observe-services-model/src/main/xmi/observe-services-dto-seine.zargo differ diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/dto/ObserveDtosInitializer.java b/observe-services-topia/src/main/java/fr/ird/observe/services/dto/ObserveDtosInitializer.java index 987d3bd..b914890 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/dto/ObserveDtosInitializer.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/dto/ObserveDtosInitializer.java @@ -247,7 +247,8 @@ public class ObserveDtosInitializer implements ObserveModelInitializer { ReferentialDto.PROPERTY_CODE, ReferentialDto.PROPERTY_URI, ReferentialDto.PROPERTY_STATUS, - ReferentialDto.PROPERTY_NEED_COMMENT + ReferentialDto.PROPERTY_NEED_COMMENT, + ReferentialDto.PROPERTY_LAST_UPDATE }; protected final static String[] DEFAULT_REFERENTIAL_LENGTH_WEIGHT_PARAMETER_PROPERTIES = { @@ -274,7 +275,8 @@ public class ObserveDtosInitializer implements ObserveModelInitializer { I18nReferentialDto.PROPERTY_LABEL8 }; - private static final String[] DEFAULT_REFERENTIAL_REFERENCE_PROPERTIES = {ReferentialDto.PROPERTY_CODE, I18nReferentialDto.PROPERTY_LABEL1, I18nReferentialDto.PROPERTY_LABEL2, I18nReferentialDto.PROPERTY_LABEL3}; + private static final String[] DEFAULT_REFERENTIAL_REFERENCE_PROPERTIES = {ReferentialDto.PROPERTY_CODE, I18nReferentialDto.PROPERTY_LABEL1, I18nReferentialDto.PROPERTY_LABEL2, I18nReferentialDto.PROPERTY_LABEL3, + ReferentialDto.PROPERTY_LAST_UPDATE}; // { // // Need to add by hand a speciesList binder @@ -359,7 +361,8 @@ public class ObserveDtosInitializer implements ObserveModelInitializer { ActivityLonglineDto.PROPERTY_LONGITUDE, ActivityLonglineDto.PROPERTY_SEA_SURFACE_TEMPERATURE, ActivityLonglineDto.PROPERTY_VESSEL_ACTIVITY_LONGLINE, - ActivityLonglineDto.PROPERTY_FPA_ZONE + ActivityLonglineDto.PROPERTY_FPA_ZONE, + ActivityLonglineDto.PROPERTY_LAST_UPDATE ); } @@ -367,7 +370,8 @@ public class ObserveDtosInitializer implements ObserveModelInitializer { public void initActivityLonglineEncouterDto() { registerDto(ActivityLonglineEncouterDto.class, ActivityLongline.class, ActivityLonglineEncouterDto.PROPERTY_COMMENT, - ActivityLonglineEncouterDto.PROPERTY_ENCOUNTER + ActivityLonglineEncouterDto.PROPERTY_ENCOUNTER, + ActivityLonglineEncouterDto.PROPERTY_LAST_UPDATE ); } @@ -375,7 +379,8 @@ public class ObserveDtosInitializer implements ObserveModelInitializer { public void initActivityLonglineSensorUsedDto() { registerDto(ActivityLonglineSensorUsedDto.class, ActivityLongline.class, ActivityLonglineSensorUsedDto.PROPERTY_COMMENT, - ActivityLonglineSensorUsedDto.PROPERTY_SENSOR_USED + ActivityLonglineSensorUsedDto.PROPERTY_SENSOR_USED, + ActivityLonglineSensorUsedDto.PROPERTY_LAST_UPDATE ); } @@ -584,21 +589,24 @@ public class ObserveDtosInitializer implements ObserveModelInitializer { SetLonglineDto.PROPERTY_LINE_TYPE, SetLonglineDto.PROPERTY_LIGHTSTICKS_COLOR, SetLonglineDto.PROPERTY_LIGHTSTICKS_TYPE, - SetLonglineDto.PROPERTY_SETTING_SHAPE + SetLonglineDto.PROPERTY_SETTING_SHAPE, + SetLonglineDto.PROPERTY_LAST_UPDATE ); } @Override public void initSetLonglineCatchDto() { registerDto(SetLonglineCatchDto.class, SetLongline.class, - SetLonglineCatchDto.PROPERTY_CATCH_LONGLINE + SetLonglineCatchDto.PROPERTY_CATCH_LONGLINE, + SetLonglineCatchDto.PROPERTY_LAST_UPDATE ); } @Override public void initSetLonglineDetailCompositionDto() { registerDto(SetLonglineDetailCompositionDto.class, SetLongline.class, - SetLonglineDetailCompositionDto.PROPERTY_SECTION + SetLonglineDetailCompositionDto.PROPERTY_SECTION, + SetLonglineDetailCompositionDto.PROPERTY_LAST_UPDATE ); } @@ -609,14 +617,16 @@ public class ObserveDtosInitializer implements ObserveModelInitializer { SetLonglineGlobalCompositionDto.PROPERTY_BRANCHLINES_COMPOSITION, SetLonglineGlobalCompositionDto.PROPERTY_HOOKS_COMPOSITION, SetLonglineGlobalCompositionDto.PROPERTY_BAITS_COMPOSITION, - SetLonglineGlobalCompositionDto.PROPERTY_MITIGATION_TYPE + SetLonglineGlobalCompositionDto.PROPERTY_MITIGATION_TYPE, + SetLonglineGlobalCompositionDto.PROPERTY_LAST_UPDATE ); } @Override public void initSetLonglineTdrDto() { registerDto(SetLonglineTdrDto.class, SetLongline.class, - SetLonglineTdrDto.PROPERTY_TDR + SetLonglineTdrDto.PROPERTY_TDR, + SetLonglineTdrDto.PROPERTY_LAST_UPDATE ); } @@ -675,7 +685,8 @@ public class ObserveDtosInitializer implements ObserveModelInitializer { TripLonglineDto.PROPERTY_VESSEL, TripLonglineDto.PROPERTY_OCEAN, TripLonglineDto.PROPERTY_DEPARTURE_HARBOUR, - TripLonglineDto.PROPERTY_LANDING_HARBOUR + TripLonglineDto.PROPERTY_LANDING_HARBOUR, + TripLonglineDto.PROPERTY_LAST_UPDATE ); } @@ -1280,7 +1291,8 @@ public class ObserveDtosInitializer implements ObserveModelInitializer { ActivitySeineDto.PROPERTY_PREVIOUS_FPA_ZONE, ActivitySeineDto.PROPERTY_CURRENT_FPA_ZONE, ActivitySeineDto.PROPERTY_NEXT_FPA_ZONE, - ActivitySeineDto.PROPERTY_NEXT_FPA_ZONE + ActivitySeineDto.PROPERTY_WIND, + ActivitySeineDto.PROPERTY_LAST_UPDATE ); } @@ -1290,7 +1302,8 @@ public class ObserveDtosInitializer implements ObserveModelInitializer { registerDto(ActivitySeineObservedSystemDto.class, ActivitySeine.class, ActivitySeineObservedSystemDto.PROPERTY_COMMENT, ActivitySeineObservedSystemDto.PROPERTY_OBSERVED_SYSTEM_DISTANCE, - ActivitySeineObservedSystemDto.PROPERTY_OBSERVED_SYSTEM + ActivitySeineObservedSystemDto.PROPERTY_OBSERVED_SYSTEM, + ActivitySeineObservedSystemDto.PROPERTY_LAST_UPDATE ); } @@ -1424,7 +1437,8 @@ public class ObserveDtosInitializer implements ObserveModelInitializer { RouteDto.PROPERTY_DATE, RouteDto.PROPERTY_START_LOG_VALUE, RouteDto.PROPERTY_END_LOG_VALUE, - RouteDto.PROPERTY_CHECK_LEVEL + RouteDto.PROPERTY_CHECK_LEVEL, + RouteDto.PROPERTY_LAST_UPDATE ); } @@ -1460,14 +1474,16 @@ public class ObserveDtosInitializer implements ObserveModelInitializer { SetSeineDto.PROPERTY_NON_TARGET_DISCARDED, SetSeineDto.PROPERTY_CURRENT_MEASURE_DEPTH, SetSeineDto.PROPERTY_SCHOOL_TYPE, - SetSeineDto.PROPERTY_REASON_FOR_NULL_SET + SetSeineDto.PROPERTY_REASON_FOR_NULL_SET, + SetSeineDto.PROPERTY_LAST_UPDATE ); } @Override public void initSetSeineNonTargetCatchDto() { registerDto(SetSeineNonTargetCatchDto.class, SetSeine.class, - SetSeineNonTargetCatchDto.PROPERTY_NON_TARGET_CATCH + SetSeineNonTargetCatchDto.PROPERTY_NON_TARGET_CATCH, + ActivityLonglineDto.PROPERTY_LAST_UPDATE ); } @@ -1475,14 +1491,16 @@ public class ObserveDtosInitializer implements ObserveModelInitializer { public void initSetSeineSchoolEstimateDto() { registerDto(SetSeineSchoolEstimateDto.class, SetSeine.class, SetSeineSchoolEstimateDto.PROPERTY_COMMENT, - SetSeineSchoolEstimateDto.PROPERTY_SCHOOL_ESTIMATE + SetSeineSchoolEstimateDto.PROPERTY_SCHOOL_ESTIMATE, + SetSeineSchoolEstimateDto.PROPERTY_LAST_UPDATE ); } @Override public void initSetSeineTargetCatchDto() { registerDto(SetSeineTargetCatchDto.class, SetSeine.class, - SetSeineTargetCatchDto.PROPERTY_TARGET_CATCH + SetSeineTargetCatchDto.PROPERTY_TARGET_CATCH, + SetSeineTargetCatchDto.PROPERTY_LAST_UPDATE ); } @@ -1552,7 +1570,8 @@ public class ObserveDtosInitializer implements ObserveModelInitializer { TripSeineDto.PROPERTY_VESSEL, TripSeineDto.PROPERTY_OCEAN, TripSeineDto.PROPERTY_DEPARTURE_HARBOUR, - TripSeineDto.PROPERTY_LANDING_HARBOUR + TripSeineDto.PROPERTY_LANDING_HARBOUR, + TripSeineDto.PROPERTY_LAST_UPDATE ); registerReferenceBinder(TripSeineDto.class, TripSeine.class, diff --git a/observe-services-topia/src/test/java/fr/ird/observe/services/service/seine/TripSeineServiceTopiaTest.java b/observe-services-topia/src/test/java/fr/ird/observe/services/service/seine/TripSeineServiceTopiaTest.java index 150e6e6..13aea1b 100644 --- a/observe-services-topia/src/test/java/fr/ird/observe/services/service/seine/TripSeineServiceTopiaTest.java +++ b/observe-services-topia/src/test/java/fr/ird/observe/services/service/seine/TripSeineServiceTopiaTest.java @@ -139,6 +139,7 @@ public class TripSeineServiceTopiaTest extends AbstractServiceTopiaTest { Assert.assertEquals(tripSeine.getFormsUrl(), tripSeineDto.getFormsUrl()); Assert.assertEquals(tripSeine.getReportsUrl(), tripSeineDto.getReportsUrl()); Assert.assertEquals(tripSeine.getComment(), tripSeineDto.getComment()); + Assert.assertEquals(tripSeine.getLastUpdate(), tripSeineDto.getLastUpdate()); Assert.assertNotNull(formDto.getLabels()); @@ -179,6 +180,7 @@ public class TripSeineServiceTopiaTest extends AbstractServiceTopiaTest { Assert.assertEquals(tripSeine.getFormsUrl(), tripSeineDto.getFormsUrl()); Assert.assertEquals(tripSeine.getReportsUrl(), tripSeineDto.getReportsUrl()); Assert.assertEquals(tripSeine.getComment(), tripSeineDto.getComment()); + Assert.assertEquals(tripSeine.getLastUpdate(), tripSeineDto.getLastUpdate()); Assert.assertNotNull(formDto.getLabels()); @@ -217,6 +219,7 @@ public class TripSeineServiceTopiaTest extends AbstractServiceTopiaTest { Assert.assertNull(tripSeineDto.getFormsUrl()); Assert.assertNull(tripSeineDto.getReportsUrl()); Assert.assertNull(tripSeineDto.getComment()); + Assert.assertNull(tripSeineDto.getLastUpdate()); Assert.assertNotNull(formDto.getLabels()); @@ -287,6 +290,7 @@ public class TripSeineServiceTopiaTest extends AbstractServiceTopiaTest { Assert.assertEquals(tripSeineDto.getFormsUrl(), tripSeine.getFormsUrl()); Assert.assertEquals(tripSeineDto.getReportsUrl(), tripSeine.getReportsUrl()); Assert.assertEquals(tripSeineDto.getComment(), tripSeine.getComment()); + Assert.assertNotNull(tripSeine.getLastUpdate()); Date lastUpdateAfter = getLastUpdate(TripSeine.class); Assert.assertNotEquals(lastUpdateBefore, lastUpdateAfter); @@ -342,6 +346,8 @@ public class TripSeineServiceTopiaTest extends AbstractServiceTopiaTest { Assert.assertEquals(tripSeineDto.getFormsUrl(), tripSeine.getFormsUrl()); Assert.assertEquals(tripSeineDto.getReportsUrl(), tripSeine.getReportsUrl()); Assert.assertEquals(tripSeineDto.getComment(), tripSeine.getComment()); + Assert.assertNotNull(tripSeine.getLastUpdate()); + Assert.assertNotEquals(tripSeineDto.getLastUpdate(), tripSeine.getLastUpdate()); Date lastUpdateAfter = getLastUpdate(TripSeine.class); Assert.assertNotEquals(lastUpdateBefore, lastUpdateAfter); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See http://git.codelutin.com/observe.git commit a78bd4e97e995e91b8df5908873bec7230d7d735 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Fri Sep 11 11:09:27 2015 +0200 lever un execption en cas de modification concurent d'une entité siuvie en modif (refs #7470 #7520) --- .../service/ConcurrentModificationException.java | 26 +++++++++++++++ .../ird/observe/services/ObserveServiceTopia.java | 17 +++++++++- .../service/seine/TripSeineServiceTopiaTest.java | 38 ++++++++++++++++++++++ 3 files changed, 80 insertions(+), 1 deletion(-) diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/ConcurrentModificationException.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/ConcurrentModificationException.java new file mode 100644 index 0000000..8d70181 --- /dev/null +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/ConcurrentModificationException.java @@ -0,0 +1,26 @@ +package fr.ird.observe.services.service; + +import java.util.Date; + +/** + * @author Sylvain Bavencoff - bavencoff@codelutin.com + */ +public class ConcurrentModificationException extends RuntimeException { + + protected final Date lastUpdate; + + protected final Date currentUpdate; + + public ConcurrentModificationException(Date lastUpdate, Date currentUpdate) { + this.lastUpdate = lastUpdate; + this.currentUpdate = currentUpdate; + } + + public Date getLastUpdate() { + return lastUpdate; + } + + public Date getCurrentUpdate() { + return currentUpdate; + } +} diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/ObserveServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/ObserveServiceTopia.java index 38b7a4f..9353706 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/ObserveServiceTopia.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/ObserveServiceTopia.java @@ -43,6 +43,7 @@ import fr.ird.observe.services.builder.EntityToReferentialReferenceDtoBuilder; import fr.ird.observe.services.configuration.ObserveDataSourceConfigurationTopiaH2; import fr.ird.observe.services.dto.DataSourceCreateConfigurationDto; import fr.ird.observe.services.dto.DataSourceCreateWithNoReferentialImportException; +import fr.ird.observe.services.dto.FollowedUpdateDto; import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.FormDtos; import fr.ird.observe.services.dto.IdDto; @@ -54,6 +55,7 @@ import fr.ird.observe.services.dto.ReferenceSetDto; import fr.ird.observe.services.dto.ReferenceSetDtos; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.referential.ReferentialDto; +import fr.ird.observe.services.service.ConcurrentModificationException; import fr.ird.observe.services.service.DataNotFoundException; import fr.ird.observe.services.service.DataSourceService; import org.apache.commons.lang3.StringUtils; @@ -337,11 +339,24 @@ public class ObserveServiceTopia implements ObserveService { } else { - entity = loadEntity(dtoType, entityType, dto.getId()); } + if (FollowedUpdateEntity.class.isAssignableFrom(entityType) + && FollowedUpdateDto.class.isAssignableFrom(dtoType)) { + + Date lasUpdate = ((FollowedUpdateEntity) entity).getLastUpdate(); + Date currentUpdate = ((FollowedUpdateDto) dto).getLastUpdate(); + + if (! lasUpdate.equals(currentUpdate)) { + + throw new ConcurrentModificationException(lasUpdate, currentUpdate); + + } + + } + try (DtoToEntityBuilder<D, E> entityBuilder = DtoToEntityBuilder.create(dtoType, entityType, this)) { entityBuilder.build(dto, entity); diff --git a/observe-services-topia/src/test/java/fr/ird/observe/services/service/seine/TripSeineServiceTopiaTest.java b/observe-services-topia/src/test/java/fr/ird/observe/services/service/seine/TripSeineServiceTopiaTest.java index 13aea1b..f0aaf94 100644 --- a/observe-services-topia/src/test/java/fr/ird/observe/services/service/seine/TripSeineServiceTopiaTest.java +++ b/observe-services-topia/src/test/java/fr/ird/observe/services/service/seine/TripSeineServiceTopiaTest.java @@ -37,6 +37,7 @@ import fr.ird.observe.services.dto.referential.VesselDto; import fr.ird.observe.services.dto.seine.TripSeineDto; import fr.ird.observe.services.dto.seine.TripSeineStubDto; import fr.ird.observe.services.service.AbstractServiceTopiaTest; +import fr.ird.observe.services.service.ConcurrentModificationException; import fr.ird.observe.services.service.ReferentialService; import org.junit.Assert; import org.junit.Test; @@ -354,6 +355,43 @@ public class TripSeineServiceTopiaTest extends AbstractServiceTopiaTest { } + @Test(expected = ConcurrentModificationException.class) + public void saveConcurrentTest() { + + FormDto<TripSeineDto> formDto = service.loadToEdit(TRIP_SEINE_ID_1); + + TripSeineDto tripSeineDto = formDto.getForm(); + + ReferenceSetDto<PersonDto> personRefs = formDto.getReferenceSetDto(PersonDto.class); + ReferenceSetDto<OceanDto> oceanRefs = formDto.getReferenceSetDto(OceanDto.class); + ReferenceSetDto<HarbourDto> harbourRefs = formDto.getReferenceSetDto(HarbourDto.class); + + tripSeineDto.setCaptain((ReferentialReferenceDto<PersonDto>) personRefs.getReference(0)); + tripSeineDto.setDataEntryOperator((ReferentialReferenceDto<PersonDto>) personRefs.getReference(2)); + + tripSeineDto.setOcean((ReferentialReferenceDto<OceanDto>) oceanRefs.getReference(0)); + + tripSeineDto.setDepartureHarbour((ReferentialReferenceDto<HarbourDto>) harbourRefs.getReference(0)); + tripSeineDto.setLandingHarbour((ReferentialReferenceDto<HarbourDto>) harbourRefs.getReference(1)); + + // première sauvegarde + service.save(formDto); + + tripSeineDto.setErsId("ersid"); + + tripSeineDto.setStartDate(DateUtil.createDate(24, 8, 2015)); + tripSeineDto.setEndDate(DateUtil.createDate(24, 9, 2015)); + + tripSeineDto.setFormsUrl("http://une.url.com/formulaire"); + tripSeineDto.setReportsUrl("http://une.url.com/rapport"); + + tripSeineDto.setComment("Un commentaire"); + + // la deuxième sauvegarde doit lever une ConcurrentModificationException + service.save(formDto); + + } + @Test public void deleteTest() { -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See http://git.codelutin.com/observe.git commit 5b64f735b90cbe9baa4dd8aab5a4f77c12466af0 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Fri Sep 11 11:20:59 2015 +0200 fix npe (refs #7470 #7520) --- .../src/main/java/fr/ird/observe/services/ObserveServiceTopia.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/ObserveServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/ObserveServiceTopia.java index 9353706..58dc5fd 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/ObserveServiceTopia.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/ObserveServiceTopia.java @@ -349,7 +349,7 @@ public class ObserveServiceTopia implements ObserveService { Date lasUpdate = ((FollowedUpdateEntity) entity).getLastUpdate(); Date currentUpdate = ((FollowedUpdateDto) dto).getLastUpdate(); - if (! lasUpdate.equals(currentUpdate)) { + if (lasUpdate != null && ! lasUpdate.equals(currentUpdate)) { throw new ConcurrentModificationException(lasUpdate, currentUpdate); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See http://git.codelutin.com/observe.git commit 9f17d4914216271dd9261cda2fa3b6dc12d67e7e Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Tue Sep 15 10:52:47 2015 +0200 A la sauvegarde d'un DTO, verifier seulement que la date de dernière mise a jour en base n'est pas après la date du DTO (refs #7520) --- .../fr/ird/observe/services/ObserveServiceTopia.java | 2 +- .../service/seine/TripSeineServiceTopiaTest.java | 19 ++++++------------- 2 files changed, 7 insertions(+), 14 deletions(-) diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/ObserveServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/ObserveServiceTopia.java index 58dc5fd..034d079 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/ObserveServiceTopia.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/ObserveServiceTopia.java @@ -349,7 +349,7 @@ public class ObserveServiceTopia implements ObserveService { Date lasUpdate = ((FollowedUpdateEntity) entity).getLastUpdate(); Date currentUpdate = ((FollowedUpdateDto) dto).getLastUpdate(); - if (lasUpdate != null && ! lasUpdate.equals(currentUpdate)) { + if (lasUpdate != null && lasUpdate.after(currentUpdate)) { throw new ConcurrentModificationException(lasUpdate, currentUpdate); diff --git a/observe-services-topia/src/test/java/fr/ird/observe/services/service/seine/TripSeineServiceTopiaTest.java b/observe-services-topia/src/test/java/fr/ird/observe/services/service/seine/TripSeineServiceTopiaTest.java index f0aaf94..a991c4c 100644 --- a/observe-services-topia/src/test/java/fr/ird/observe/services/service/seine/TripSeineServiceTopiaTest.java +++ b/observe-services-topia/src/test/java/fr/ird/observe/services/service/seine/TripSeineServiceTopiaTest.java @@ -43,6 +43,7 @@ import org.junit.Assert; import org.junit.Test; import org.nuiton.util.DateUtil; +import java.util.Calendar; import java.util.Collection; import java.util.Date; import java.util.List; @@ -374,20 +375,12 @@ public class TripSeineServiceTopiaTest extends AbstractServiceTopiaTest { tripSeineDto.setDepartureHarbour((ReferentialReferenceDto<HarbourDto>) harbourRefs.getReference(0)); tripSeineDto.setLandingHarbour((ReferentialReferenceDto<HarbourDto>) harbourRefs.getReference(1)); - // première sauvegarde - service.save(formDto); - - tripSeineDto.setErsId("ersid"); - - tripSeineDto.setStartDate(DateUtil.createDate(24, 8, 2015)); - tripSeineDto.setEndDate(DateUtil.createDate(24, 9, 2015)); - - tripSeineDto.setFormsUrl("http://une.url.com/formulaire"); - tripSeineDto.setReportsUrl("http://une.url.com/rapport"); - - tripSeineDto.setComment("Un commentaire"); + // on fait croire que notre version est plus ancienne + Calendar calendar = Calendar.getInstance(); + calendar.setTime(tripSeineDto.getLastUpdate()); + calendar.add(Calendar.HOUR, - 1); + tripSeineDto.setLastUpdate(calendar.getTime()); - // la deuxième sauvegarde doit lever une ConcurrentModificationException service.save(formDto); } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See http://git.codelutin.com/observe.git commit 2bfa22757d2ec70552d1195f75aefd66d750e2e9 Merge: cbf55f5 9f17d49 Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Sep 16 08:34:12 2015 +0200 Mise à jour du référentiel (Termine #7520). Merge branch 'feature/7520' into develop .../v1/ReferentialServiceController.java | 6 + .../java/fr/ird/observe/entities/Activity.java | 2 +- .../java/fr/ird/observe/entities/ObserveSet.java | 2 +- .../main/java/fr/ird/observe/entities/Trip.java | 2 +- .../migration/AbstractDataSourceMigration.java | 3 +- .../DataSourceMigrationForVersion_5_0.java | 6 +- .../resources/db/5.0/add_lastUpdate_field-H2.sql | 153 ++++++++++++++++++++ .../resources/db/5.0/add_lastUpdate_field-PG.sql | 154 +++++++++++++++++++++ observe-entities/src/main/xmi/observe-common.zargo | Bin 35191 -> 37033 bytes .../src/main/xmi/observe-longline.zargo | Bin 95691 -> 96937 bytes observe-entities/src/main/xmi/observe-seine.zargo | Bin 83247 -> 84597 bytes .../service/ConcurrentModificationException.java | 26 ++++ .../services/service/ReferentialService.java | 4 + .../observe/services/dto/FollowedUpdateDto.java | 14 ++ .../ird/observe/services/dto/ReferenceSetDtos.java | 8 +- .../xmi/observe-services-dto-common.properties | 6 +- .../src/main/xmi/observe-services-dto-common.zargo | Bin 34629 -> 35328 bytes .../xmi/observe-services-dto-longline.properties | 6 +- .../main/xmi/observe-services-dto-longline.zargo | Bin 59030 -> 61407 bytes .../main/xmi/observe-services-dto-seine.properties | 6 +- .../src/main/xmi/observe-services-dto-seine.zargo | Bin 56972 -> 59029 bytes .../ird/observe/services/ObserveServiceTopia.java | 80 ++++++++++- .../services/dto/ObserveDtosInitializer.java | 57 +++++--- .../services/service/ReferentialServiceTopia.java | 17 +++ .../services/service/AbstractServiceTopiaTest.java | 20 ++- .../service/ReferentialServiceTopiaTest.java | 36 +++++ .../service/seine/TripSeineServiceTopiaTest.java | 52 +++++++ 27 files changed, 619 insertions(+), 41 deletions(-) -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
participants (1)
-
codelutin.com scm