mailman.cloud.codelutin.com
Sign In Sign Up
Manage this list Sign In Sign Up

Keyboard Shortcuts

Thread View

  • j: Next unread message
  • k: Previous unread message
  • j a: Jump to all threads
  • j l: Jump to MailingList overview

Observe-commits

Thread Start a new thread
Download
Threads by month
  • ----- 2026 -----
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2025 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2024 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2023 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2022 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2021 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2020 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2019 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2018 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2017 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2016 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2015 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2014 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2013 -----
  • December
  • November
  • October
  • September
observe-commits@list.forge.codelutin.com

  • 7199 discussions
[Git][ultreiaio/ird-observe][develop] 6 commits: Fix migration - Closes #945
by Tony CHEMIT 08 May '18

08 May '18
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: 41491680 by Tony CHEMIT at 2018-05-04T16:01:00Z Fix migration - Closes #945 - - - - - 7e0ce9c0 by Tony CHEMIT at 2018-05-08T21:41:43Z [jgitflow-maven-plugin]updating poms for branch&#39;release/7.0-RC-13&#39; with non-snapshot versions[skip ci] - - - - - d10e76f5 by Tony CHEMIT at 2018-05-08T22:15:12Z merge release - - - - - 89ef1058 by Tony CHEMIT at 2018-05-08T22:15:36Z [jgitflow-maven-plugin]updating develop poms to master versions to avoid merge conflicts[skip ci] - - - - - b6b9bc62 by Tony CHEMIT at 2018-05-08T22:15:36Z [jgitflow-maven-plugin]merging &#39;master&#39; into &#39;develop&#39; - - - - - cc085c2d by Tony CHEMIT at 2018-05-08T22:15:37Z [jgitflow-maven-plugin]Updating develop poms back to pre merge state[skip ci] - - - - - 2 changed files: - persistence/src/main/java/fr/ird/observe/persistence/migration/DataSourceMigrationForVersion_6_0.java - + persistence/src/main/java/fr/ird/observe/persistence/migration/DataSourceMigrationForVersion_7_0_RC_4.java Changes: ===================================== persistence/src/main/java/fr/ird/observe/persistence/migration/DataSourceMigrationForVersion_6_0.java ===================================== --- a/persistence/src/main/java/fr/ird/observe/persistence/migration/DataSourceMigrationForVersion_6_0.java +++ b/persistence/src/main/java/fr/ird/observe/persistence/migration/DataSourceMigrationForVersion_6_0.java @@ -316,6 +316,74 @@ public class DataSourceMigrationForVersion_6_0 extends MigrationVersionResource } } + @Override + protected void prepareMigrationScript(TopiaSqlSupport topiaSqlSupport, List<String> queries, boolean showSql, boolean showProgression) { + Boolean withTriggers = topiaSqlSupport.findSingleResult(new TopiaSqlQuery<Boolean>() { + @Override + public PreparedStatement prepareQuery(Connection connection) throws SQLException { + return connection.prepareStatement("select exists(select * from pg_proc where proname = 'sync_activity_the_geom');"); + } + + @Override + public Boolean prepareResult(ResultSet resultSet) throws SQLException { + return resultSet.getBoolean(1); + } + }); + + if (withTriggers) { + queries.add("CREATE OR REPLACE function sync_activity_the_geom () returns trigger as '\n" + + "BEGIN\n" + + " IF (TG_OP = ''DELETE'') THEN\n" + + " RETURN OLD;\n" + + " END IF;\n" + + " IF (NEW.latitude IS NULL OR NEW.longitude IS NULL) THEN\n" + + " -- on ne calcule pas le point postgis si au moins une des -- coordonnees n est pas renseignee\n" + + " RAISE NOTICE ''No latitude or longitude, can not compute postgis field for id % '', NEW.topiaId;\n" + + " NEW.the_geom := NULL;\n" + + " return NEW;\n" + + " END IF;\n" + + " IF (TG_OP = ''UPDATE'' AND NEW.latitude = OLD.latitude AND NEW.longitude = OLD.longitude)\n" + + " THEN\n" + + " -- on ne calcule pas le point postgis si les coordonnées n''ont pas changées\n" + + " return NEW;\n" + + " END IF;\n" + + " RAISE NOTICE ''Will compute the_geom for activite % - latitude % and longitude %'', NEW.topiaId, NEW.latitude, NEW.longitude;\n" + + " -- affectation du point\n" + + " NEW.the_geom := ST_SetSRID(ST_MakePoint(NEW.longitude,NEW.latitude), 4326);\n" + + " RAISE NOTICE ''Computed for activity % latitude % and longitude %, the_geom %'', NEW.topiaId, NEW.latitude, NEW.longitude, NEW.the_geom;\n" + + "\n" + + " RETURN NEW;\n" + + "END\n" + + "'\n" + + "LANGUAGE 'plpgsql';\n"); + queries.add("CREATE OR REPLACE function sync_harbour_the_geom () returns trigger as '\n" + + "BEGIN\n" + + " IF (TG_OP = ''DELETE'') THEN\n" + + " RETURN OLD;\n" + + " END IF;\n" + + " IF (NEW.latitude IS NULL OR NEW.longitude IS NULL) THEN\n" + + " -- on ne calcule pas le point postgis si au moins une des -- coordonnees n est pas renseignee\n" + + " RAISE NOTICE ''No latitude or longitude, can not compute postgis field for id % '', NEW.topiaId;\n" + + " NEW.the_geom := NULL;\n" + + " return NEW;\n" + + " END IF;\n" + + " IF (TG_OP = ''UPDATE'' AND NEW.latitude = OLD.latitude AND NEW.longitude = OLD.longitude)\n" + + " THEN\n" + + " -- on ne calcule pas le point postgis si les coordonnées n''ont pas changées\n" + + " return NEW;\n" + + " END IF;\n" + + " RAISE NOTICE ''Will compute the_geom for harbour % - latitude % and longitude %'', NEW.topiaId, NEW.latitude, NEW.longitude;\n" + + " -- affectation du point\n" + + " NEW.the_geom := ST_SetSRID(ST_MakePoint(NEW.longitude,NEW.latitude), 4326);\n" + + " RAISE NOTICE ''Computed for harbour % latitude % and longitude %, the_geom %'', NEW.topiaId, NEW.latitude, NEW.longitude, NEW.the_geom;\n" + + " RETURN NEW;\n" + + "END\n" + + "'\n" + + "LANGUAGE 'plpgsql';"); + addScript("00", "fix_trigger", queries); + } + super.prepareMigrationScript(topiaSqlSupport, queries, showSql, showProgression); + } } } ===================================== persistence/src/main/java/fr/ird/observe/persistence/migration/DataSourceMigrationForVersion_7_0_RC_4.java ===================================== --- /dev/null +++ b/persistence/src/main/java/fr/ird/observe/persistence/migration/DataSourceMigrationForVersion_7_0_RC_4.java @@ -0,0 +1,90 @@ +package fr.ird.observe.persistence.migration; + +/*- + * #%L + * ObServe :: Persistence + * %% + * Copyright (C) 2008 - 2018 IRD, Code Lutin, Ultreia.io + * %% + * This program is free software: you can redistribute it and/or modify + * 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 org.nuiton.topia.persistence.support.TopiaSqlSupport; + +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.TreeMap; + +/** + * Created on 27/10/16. + * + * @author Tony Chemit - dev(a)tchemit.fr + * @since 6.0 + */ +@MigrationVersion(version = "6.1") +public class DataSourceMigrationForVersion_7_0_RC_4 extends AbstractObserveMigrationCallBack { + + DataSourceMigrationForVersion_7_0_RC_4(AbstractDataSourceMigration callBack, String scriptSuffix) { + super(DataSourceMigrationForVersion_7_0_RC_4.class, callBack, scriptSuffix); + } + + @Override + protected void prepareMigrationScript(TopiaSqlSupport topiaSqlSupport, List<String> queries, boolean showSql, boolean showProgression) { + + addScript("01", "add_object_operation", queries); + addScript("02", "add_object_material", queries); + addScript("03", "add_floating_object_part", queries); + addScript("04", "remove_dcp_fields", queries); + + Map<String, String> speciesGroupIdMapping = new TreeMap<>(); + speciesGroupIdMapping.put("fr.ird.observe.entities.referentiel.SpeciesGroup#1445863056144#0.9820877553253712", "INSERT INTO OBSERVE_COMMON.SPECIESGROUP (TOPIAID, TOPIAVERSION, TOPIACREATEDATE, LASTUPDATEDATE, CODE, URI, NEEDCOMMENT, STATUS, LABEL1, LABEL2, LABEL3, LABEL4, LABEL5, LABEL6, LABEL7, LABEL8) VALUES ('fr.ird.observe.entities.referentiel.SpeciesGroup#1445863056144#0.9820877553253712', 1, '2015-10-26 16:37:36.144000000', '2016-12-06 15:54:27.727005000', '11', null, false, 1, 'Rays', 'Raies', 'Rayas', null, null, null, null, null);"); + speciesGroupIdMapping.put("fr.ird.observe.entities.referentiel.SpeciesGroup#1239832683690#0.24333033683679461", "INSERT INTO OBSERVE_COMMON.SPECIESGROUP (TOPIAID, TOPIAVERSION, TOPIACREATEDATE, LASTUPDATEDATE, CODE, URI, NEEDCOMMENT, STATUS, LABEL1, LABEL2, LABEL3, LABEL4, LABEL5, LABEL6, LABEL7, LABEL8) VALUES ('fr.ird.observe.entities.referentiel.SpeciesGroup#1239832683690#0.24333033683679461', 14, '2009-04-15 00:00:00.003000000', '2016-12-06 15:54:27.727005000', '4', null, false, 1, 'Turtles', 'Tortues', 'Tortugas', null, null, null, null, null);"); + speciesGroupIdMapping.put("fr.ird.observe.entities.referentiel.SpeciesGroup#1446014286433#0.6480183366605247", "INSERT INTO OBSERVE_COMMON.SPECIESGROUP (TOPIAID, TOPIAVERSION, TOPIACREATEDATE, LASTUPDATEDATE, CODE, URI, NEEDCOMMENT, STATUS, LABEL1, LABEL2, LABEL3, LABEL4, LABEL5, LABEL6, LABEL7, LABEL8) VALUES ('fr.ird.observe.entities.referentiel.SpeciesGroup#1446014286433#0.6480183366605247', 1, '2015-10-28 10:38:06.432000000', '2016-12-06 15:54:27.727005000', '12', null, false, 1, 'Whale shark', 'Requin-baleine', 'Tiburón ballena', null, null, null, null, null);"); + speciesGroupIdMapping.put("fr.ird.observe.entities.referentiel.SpeciesGroup#1239832683689#0.7120116158620075", "INSERT INTO OBSERVE_COMMON.SPECIESGROUP (TOPIAID, TOPIAVERSION, TOPIACREATEDATE, LASTUPDATEDATE, CODE, URI, NEEDCOMMENT, STATUS, LABEL1, LABEL2, LABEL3, LABEL4, LABEL5, LABEL6, LABEL7, LABEL8) VALUES ('fr.ird.observe.entities.referentiel.SpeciesGroup#1239832683689#0.7120116158620075', 17, '2009-04-15 00:00:00.001000000', '2017-02-28 15:04:55.370000000', '2', null, false, 1, 'Sharks', 'Requins', 'Tiburones', null, null, null, null, null);"); + + Set<String> existingSpeciesGroupIds = getTopiaIds(topiaSqlSupport, "OBSERVE_COMMON.SPECIESGROUP"); + for (Map.Entry<String, String> entry : speciesGroupIdMapping.entrySet()) { + if (!existingSpeciesGroupIds.contains(entry.getKey())) { + queries.add(entry.getValue()); + } + } + addScript("05", "add_species_group_release_mode", queries); + addScript("06", "add_non_target_catch_release", queries); + addScript("07", "drop_table_sizemeasuretype", queries); + addScript("08", "add_floating_object_fields", queries); + addScript("09", "fill_object_material", queries); + + } + + public static class H2DataSourceMigrationForVersion extends DataSourceMigrationForVersion_7_0_RC_4 { + + public H2DataSourceMigrationForVersion(AbstractDataSourceMigration callBack) { + super(callBack, H2DataSourceMigration.TYPE); + } + + } + + public static class PGDataSourceMigrationForVersion extends DataSourceMigrationForVersion_7_0_RC_4 { + + public PGDataSourceMigrationForVersion(AbstractDataSourceMigration callBack) { + super(callBack, PGDataSourceMigration.TYPE); + } + + } + +} + View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/compare/d12ed2993778345bf960c8145a… -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/compare/d12ed2993778345bf960c8145a… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][develop] [jgitflow-maven-plugin]updating poms for 7.0-RC-14-SNAPSHOT development[skip ci]
by Tony CHEMIT 08 May '18

08 May '18
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: d12ed299 by Tony CHEMIT at 2018-05-08T21:30:26Z [jgitflow-maven-plugin]updating poms for 7.0-RC-14-SNAPSHOT development[skip ci] - - - - - 13 changed files: - client-configuration/pom.xml - client/pom.xml - dto/pom.xml - observe/pom.xml - persistence/pom.xml - pom.xml - server-configuration/pom.xml - server/pom.xml - services-client/pom.xml - services-local/pom.xml - services/pom.xml - test/pom.xml - validation/pom.xml Changes: ===================================== client-configuration/pom.xml ===================================== --- a/client-configuration/pom.xml +++ b/client-configuration/pom.xml @@ -26,7 +26,7 @@ <parent> <groupId>fr.ird.observe</groupId> <artifactId>ird-observe</artifactId> - <version>7.0-RC-13-SNAPSHOT</version> + <version>7.0-RC-14-SNAPSHOT</version> </parent> <artifactId>client-configuration</artifactId> ===================================== client/pom.xml ===================================== --- a/client/pom.xml +++ b/client/pom.xml @@ -26,7 +26,7 @@ <parent> <groupId>fr.ird.observe</groupId> <artifactId>ird-observe</artifactId> - <version>7.0-RC-13-SNAPSHOT</version> + <version>7.0-RC-14-SNAPSHOT</version> </parent> <artifactId>client</artifactId> ===================================== dto/pom.xml ===================================== --- a/dto/pom.xml +++ b/dto/pom.xml @@ -27,7 +27,7 @@ <parent> <groupId>fr.ird.observe</groupId> <artifactId>ird-observe</artifactId> - <version>7.0-RC-13-SNAPSHOT</version> + <version>7.0-RC-14-SNAPSHOT</version> </parent> <artifactId>dto</artifactId> ===================================== observe/pom.xml ===================================== --- a/observe/pom.xml +++ b/observe/pom.xml @@ -26,7 +26,7 @@ <parent> <groupId>fr.ird.observe</groupId> <artifactId>ird-observe</artifactId> - <version>7.0-RC-13-SNAPSHOT</version> + <version>7.0-RC-14-SNAPSHOT</version> </parent> <artifactId>observe</artifactId> ===================================== persistence/pom.xml ===================================== --- a/persistence/pom.xml +++ b/persistence/pom.xml @@ -26,7 +26,7 @@ <parent> <groupId>fr.ird.observe</groupId> <artifactId>ird-observe</artifactId> - <version>7.0-RC-13-SNAPSHOT</version> + <version>7.0-RC-14-SNAPSHOT</version> </parent> <artifactId>persistence</artifactId> ===================================== pom.xml ===================================== --- a/pom.xml +++ b/pom.xml @@ -31,7 +31,7 @@ <groupId>fr.ird.observe</groupId> <artifactId>ird-observe</artifactId> - <version>7.0-RC-13-SNAPSHOT</version> + <version>7.0-RC-14-SNAPSHOT</version> <packaging>pom</packaging> <name>ObServe :: Pom</name> ===================================== server-configuration/pom.xml ===================================== --- a/server-configuration/pom.xml +++ b/server-configuration/pom.xml @@ -26,7 +26,7 @@ <parent> <groupId>fr.ird.observe</groupId> <artifactId>ird-observe</artifactId> - <version>7.0-RC-13-SNAPSHOT</version> + <version>7.0-RC-14-SNAPSHOT</version> </parent> <artifactId>server-configuration</artifactId> ===================================== server/pom.xml ===================================== --- a/server/pom.xml +++ b/server/pom.xml @@ -27,7 +27,7 @@ <parent> <groupId>fr.ird.observe</groupId> <artifactId>ird-observe</artifactId> - <version>7.0-RC-13-SNAPSHOT</version> + <version>7.0-RC-14-SNAPSHOT</version> </parent> <artifactId>server</artifactId> ===================================== services-client/pom.xml ===================================== --- a/services-client/pom.xml +++ b/services-client/pom.xml @@ -27,7 +27,7 @@ <parent> <groupId>fr.ird.observe</groupId> <artifactId>ird-observe</artifactId> - <version>7.0-RC-13-SNAPSHOT</version> + <version>7.0-RC-14-SNAPSHOT</version> </parent> <artifactId>services-client</artifactId> ===================================== services-local/pom.xml ===================================== --- a/services-local/pom.xml +++ b/services-local/pom.xml @@ -27,7 +27,7 @@ <parent> <groupId>fr.ird.observe</groupId> <artifactId>ird-observe</artifactId> - <version>7.0-RC-13-SNAPSHOT</version> + <version>7.0-RC-14-SNAPSHOT</version> </parent> <artifactId>services-local</artifactId> ===================================== services/pom.xml ===================================== --- a/services/pom.xml +++ b/services/pom.xml @@ -27,7 +27,7 @@ <parent> <groupId>fr.ird.observe</groupId> <artifactId>ird-observe</artifactId> - <version>7.0-RC-13-SNAPSHOT</version> + <version>7.0-RC-14-SNAPSHOT</version> </parent> <artifactId>services</artifactId> ===================================== test/pom.xml ===================================== --- a/test/pom.xml +++ b/test/pom.xml @@ -26,7 +26,7 @@ <parent> <groupId>fr.ird.observe</groupId> <artifactId>ird-observe</artifactId> - <version>7.0-RC-13-SNAPSHOT</version> + <version>7.0-RC-14-SNAPSHOT</version> </parent> <artifactId>test</artifactId> ===================================== validation/pom.xml ===================================== --- a/validation/pom.xml +++ b/validation/pom.xml @@ -26,7 +26,7 @@ <parent> <groupId>fr.ird.observe</groupId> <artifactId>ird-observe</artifactId> - <version>7.0-RC-13-SNAPSHOT</version> + <version>7.0-RC-14-SNAPSHOT</version> </parent> <artifactId>validation</artifactId> View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/d12ed2993778345bf960c8145a9… -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/d12ed2993778345bf960c8145a9… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe] Pushed new branch release/7.0-RC-13
by Tony CHEMIT 08 May '18

08 May '18
Tony CHEMIT pushed new branch release/7.0-RC-13 at ultreiaio / ird-observe -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/tree/release/7.0-RC-13 You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][develop] Improve FOB Form (when creating) - See #948)
by Tony CHEMIT 08 May '18

08 May '18
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: d9cd7d7e by Tony CHEMIT at 2018-05-08T21:28:00Z Improve FOB Form (when creating) - See #948) - - - - - 12 changed files: - client/src/main/java/fr/ird/observe/client/ui/content/data/seine/FloatingObjectUI.jcss - client/src/main/java/fr/ird/observe/client/ui/content/data/seine/FloatingObjectUIHandler.java - client/src/main/java/fr/ird/observe/client/ui/content/data/seine/FloatingObjectUIModel.java - client/src/main/java/fr/ird/observe/client/ui/content/data/seine/dcp/FloatingObjectPartsTreeNode.java - client/src/main/java/fr/ird/observe/client/ui/content/data/seine/dcp/FloatingObjectPartsTreeTableModel.java - persistence/src/main/resources/db/migration/7.2/01_update_objectMaterial-common.sql - services-local/src/main/java/fr/ird/observe/services/local/service/data/seine/FloatingObjectServiceLocal.java - services-local/src/test/java/fr/ird/observe/services/local/service/data/seine/FloatingObjectServiceLocalTest.java - services/src/main/java/fr/ird/observe/services/service/data/seine/FloatingObjectService.java - test/src/main/resources/db/7.2/dataForTestLongline.sql.gz - test/src/main/resources/db/7.2/dataForTestSeine.sql.gz - test/src/main/resources/db/7.2/referentiel.sql.gz Changes: ===================================== client/src/main/java/fr/ird/observe/client/ui/content/data/seine/FloatingObjectUI.jcss ===================================== --- a/client/src/main/java/fr/ird/observe/client/ui/content/data/seine/FloatingObjectUI.jcss +++ b/client/src/main/java/fr/ird/observe/client/ui/content/data/seine/FloatingObjectUI.jcss @@ -144,4 +144,5 @@ BeanComboBox { treeTableModel:{new FloatingObjectPartsTreeTableModel(getModel())}; treeCellRenderer:{new FloatingObjectPartLegendTreeCellRenderer()}; selectionMode:{ListSelectionModel.SINGLE_SELECTION}; + rootVisible:false; } ===================================== client/src/main/java/fr/ird/observe/client/ui/content/data/seine/FloatingObjectUIHandler.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/ui/content/data/seine/FloatingObjectUIHandler.java +++ b/client/src/main/java/fr/ird/observe/client/ui/content/data/seine/FloatingObjectUIHandler.java @@ -22,6 +22,7 @@ package fr.ird.observe.client.ui.content.data.seine; import com.google.common.collect.ImmutableSet; +import com.google.common.collect.Maps; import fr.ird.observe.client.ObserveSwingApplicationContext; import fr.ird.observe.client.db.ClientDataContext; import fr.ird.observe.client.db.ObserveSwingDataSource; @@ -45,6 +46,7 @@ import fr.ird.observe.dto.data.seine.FloatingObjectReference; import fr.ird.observe.dto.data.seine.ObjectMaterialHierarchyDto; import fr.ird.observe.dto.form.Form; import fr.ird.observe.dto.referential.seine.ObjectMaterialDto; +import fr.ird.observe.dto.referential.seine.ObjectMaterialTypeReference; import fr.ird.observe.dto.referential.seine.ObjectOperationReference; import fr.ird.observe.dto.result.SaveResultDto; import fr.ird.observe.services.service.actions.consolidate.dcp.ConsolidateFloatingObjectRequest; @@ -187,7 +189,7 @@ public class FloatingObjectUIHandler extends ContentUIHandler<FloatingObjectDto, getModel().reset(); - openTable(partsSet, getUi().getTable()); + openTable(partsSet, getUi().getTable(),bean.isPersisted()); setContentMode(mode); @@ -209,7 +211,7 @@ public class FloatingObjectUIHandler extends ContentUIHandler<FloatingObjectDto, SwingUtilities.invokeLater(this::forceGrabFocusOnForm); } - private void openTable(Set<FloatingObjectPartReference> partsSet, JXTreeTable table) { + private void openTable(Set<FloatingObjectPartReference> partsSet, JXTreeTable table, boolean persisted) { FloatingObjectUIModel model = getModel(); for (FloatingObjectPartReference p : partsSet) { @@ -227,7 +229,9 @@ public class FloatingObjectUIHandler extends ContentUIHandler<FloatingObjectDto, FloatingObjectPartsTreeTableModel treeTableModel = (FloatingObjectPartsTreeTableModel) table.getTreeTableModel(); treeTableModel.reset(); - table.expandAll(); + if (persisted) { + table.expandAll(); + } } @Override @@ -322,10 +326,15 @@ public class FloatingObjectUIHandler extends ContentUIHandler<FloatingObjectDto, // listen messages to see if required to add ui.getErrorTableModel().addTableModelListener(computeTabValidStateListener); - List<ObjectMaterialHierarchyDto> detailedForm = getFloatingObjectService().getObjectMaterialHierarchy(); + ObjectMaterialHierarchyDto detailedForm = getFloatingObjectService().getObjectMaterialHierarchy(); + + ObjectMaterialTypeReference booleanType = getReferentialReferences(ObjectMaterialTypeReference.class).stream().filter(e->e.getTopiaId().equals("fr.ird.observe.entities.referentiel.seine.ObjectMaterialType#0#0")).findFirst().orElseThrow(IllegalStateException::new); + for (ObjectMaterialHierarchyDto objectMaterialHierarchyDto : detailedForm.getChildren()) { + objectMaterialHierarchyDto.setObjectMaterialType(booleanType); + } Map<String, ObjectMaterialDto> allMap = new TreeMap<>(); - detailedForm.stream().flatMap(o -> o.getAllDtos().stream()).forEach(s -> allMap.putIfAbsent(s.getId(), s)); + detailedForm.getAllDtos().forEach(s -> allMap.putIfAbsent(s.getId(), s)); FloatingObjectUIModel model = getModel(); model.setReferentialMap(allMap); @@ -386,7 +395,7 @@ public class FloatingObjectUIHandler extends ContentUIHandler<FloatingObjectDto, treeModel.reset(); } - private void initTable(List<ObjectMaterialHierarchyDto> materials, JXTreeTable table) { + private void initTable(ObjectMaterialHierarchyDto materials, JXTreeTable table) { FloatingObjectPartsTreeTableModel treeModel = (FloatingObjectPartsTreeTableModel) table.getTreeTableModel(); treeModel.rebuildRootNode(materials); ===================================== client/src/main/java/fr/ird/observe/client/ui/content/data/seine/FloatingObjectUIModel.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/ui/content/data/seine/FloatingObjectUIModel.java +++ b/client/src/main/java/fr/ird/observe/client/ui/content/data/seine/FloatingObjectUIModel.java @@ -120,6 +120,10 @@ public class FloatingObjectUIModel extends ContentUIModel<FloatingObjectDto> { ImmutableSet<FloatingObjectPartDto> toParts() { ImmutableSet.Builder<FloatingObjectPartDto> result = ImmutableSet.builder(); for (ObjectMaterialDto o : getAll()) { + if (o.getParent()!=null && o.getParent().getParentId()==null) { + // first level node, can't be send + continue; + } FloatingObjectPartDto partDto = new FloatingObjectPartDto(); partDto.setObjectMaterial(binder.toReference(referentialLocale, o)); if (arriving) { ===================================== client/src/main/java/fr/ird/observe/client/ui/content/data/seine/dcp/FloatingObjectPartsTreeNode.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/ui/content/data/seine/dcp/FloatingObjectPartsTreeNode.java +++ b/client/src/main/java/fr/ird/observe/client/ui/content/data/seine/dcp/FloatingObjectPartsTreeNode.java @@ -10,12 +10,12 @@ package fr.ird.observe.client.ui.content.data.seine.dcp; * 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>. @@ -34,7 +34,6 @@ import org.jetbrains.annotations.NotNull; import java.util.Collections; import java.util.Iterator; -import java.util.List; import java.util.Objects; import java.util.Optional; @@ -48,137 +47,6 @@ public class FloatingObjectPartsTreeNode extends AbstractMutableTreeTableNode im /** Logger. */ private static final Log log = LogFactory.getLog(FloatingObjectPartsTreeNode.class); - static FloatingObjectPartsTreeNode createRoot(FloatingObjectUIModel model, List<ObjectMaterialHierarchyDto> referential) { - FloatingObjectPartsTreeNodeContext rootModel = new FloatingObjectPartsTreeNodeContext(model); - FloatingObjectPartsTreeNode root = new FloatingObjectPartsTreeNode(rootModel); - if (referential != null) { - for (ObjectMaterialHierarchyDto dto : referential) { - FloatingObjectPartsTreeNodeContext childModel = new FloatingObjectPartsTreeNodeContext(dto, rootModel); - FloatingObjectPartsTreeNode node = new FloatingObjectPartsTreeNode(childModel); - root.add(node); - ImmutableSet.Builder<FloatingObjectPartsTreeNode> companionsBuilder = dto.isChildrenMultiSelectable() ? ImmutableSet.builder() : null; - node.computeCompanions(companionsBuilder); - node.setCompanions(companionsBuilder); - } - } - return root; - } - - boolean isNotValid() { - return !(getUserObject().validWhenArriving && getUserObject().validWhenLeaving); - } - - private static class FloatingObjectPartsTreeNodeContext { - - // main model to get and store values - private final FloatingObjectUIModel uiModel; - // dto (null for root) - private final ObjectMaterialHierarchyDto dto; - // Is the node is enabled (hierarchic value) ? - private final boolean enabled; - // Is this node editable ? - private final boolean editable; - // Is this node need at least one child selected ? - private final boolean needOneSelection; - // Is this node in the path of at least one mandatory child ancestor ? - private final boolean mandatory; - // Is the node is exclusive (means only one value possible for him and his brothers) ? - private final boolean exclusive; - // Is the node valid for whenArriving column ? - private boolean validWhenArriving = true; - // Is the node valid for whenLeaving column ? - private boolean validWhenLeaving = true; - // Set of brothers of this node that is in a exclusive group of node (only one value among all of them) - private ImmutableSet<FloatingObjectPartsTreeNode> companions; - // Internal to store debug node text - private String text; - - FloatingObjectPartsTreeNodeContext(FloatingObjectUIModel uiModel) { - Objects.requireNonNull(uiModel); - this.uiModel = uiModel; - this.dto = null; - this.enabled = true; - this.editable = false; - this.mandatory = false; - this.exclusive = false; - this.needOneSelection = false; - } - - FloatingObjectPartsTreeNodeContext(ObjectMaterialHierarchyDto dto, FloatingObjectPartsTreeNodeContext parent) { - Objects.requireNonNull(dto); - Objects.requireNonNull(parent); - this.uiModel = parent.uiModel; - this.dto = dto; - // enabled if parent is enabled and dto is enabled - this.enabled = parent.enabled && dto.isEnabled(); - // need one selection if is enabled and dto requires it - this.needOneSelection = enabled && dto.isChildSelectionMandatory(); - // editable if dto is selectable (we also make sure that the object material type is here too) - this.editable = dto.isSelectable() && dto.getObjectMaterialType() != null; - // mandatory if enabled parent is so or parent makes this child to be - this.mandatory = parent.mandatory || parent.needOneSelection; - // exclusive if his parent requires it - this.exclusive = parent.dto != null && parent.dto.isChildrenMultiSelectable(); - log.info(String.format("New node: %s - mandatory %s - needOneSelection %s - exclusive %s", dto.getLabel2(), mandatory, needOneSelection, exclusive)); - } - - Object getValueAt(int column) { - switch (column) { - case 0: // dto - return dto; - case 1: // when arriving - return uiModel.getWhenArriving().get(dto); - case 2: // when leaving - return uiModel.getWhenLeaving().get(dto); - } - throw new IllegalStateException(); - } - - void setValueAt(Object aValue, int column) { - switch (column) { - case 1: // when arriving - uiModel.setWhenArriving(dto.getId(), aValue == null ? null : String.valueOf(aValue)); - return; - case 2: // when leaving - uiModel.setWhenLeaving(dto.getId(), aValue == null ? null : String.valueOf(aValue)); - return; - } - throw new IllegalStateException(); - } - - boolean isColumnEditable(int column) { - switch (column) { - case 1: // when arriving - return uiModel.isArriving(); - case 2: // when leaving - return uiModel.isLeaving(); - } - throw new IllegalStateException(); - } - - boolean isValid(int column) { - switch (column) { - case 1: // when arriving - return validWhenArriving; - case 2: // when leaving - return validWhenLeaving; - } - throw new IllegalStateException(); - } - - Optional<FloatingObjectPartsTreeNode> getSelectedCompanion(int column) { - return companions.stream().filter(n -> n.getValueAt(column) != null).findFirst(); - } - - public String getText() { - if (text == null && dto != null) { - text = String.format("%s [value: %s-%s] [valid: %s-%s]", dto.getLabel2(), getValueAt(1), getValueAt(2), isValid(1), isValid(2)); - } - return text; - } - - } - private FloatingObjectPartsTreeNode(FloatingObjectPartsTreeNodeContext context) { super(context); if (context.dto != null) { @@ -189,6 +57,25 @@ public class FloatingObjectPartsTreeNode extends AbstractMutableTreeTableNode im } } + static FloatingObjectPartsTreeNode createRoot(FloatingObjectUIModel model, ObjectMaterialHierarchyDto dto) { + FloatingObjectPartsTreeNode root; + FloatingObjectPartsTreeNodeContext rootModel = new FloatingObjectPartsTreeNodeContext(model); + if (dto != null) { + FloatingObjectPartsTreeNodeContext childModel = new FloatingObjectPartsTreeNodeContext(dto, rootModel); + root = new FloatingObjectPartsTreeNode(childModel); + ImmutableSet.Builder<FloatingObjectPartsTreeNode> companionsBuilder = dto.isChildrenMultiSelectable() ? ImmutableSet.builder() : null; + root.computeCompanions(companionsBuilder); + root.setCompanions(companionsBuilder); + } else { + root = new FloatingObjectPartsTreeNode(rootModel); + } + return root; + } + + boolean isNotValid() { + return !(getUserObject().validWhenArriving && getUserObject().validWhenLeaving); + } + @Override public String toString() { return getUserObject().getText(); @@ -395,4 +282,116 @@ public class FloatingObjectPartsTreeNode extends AbstractMutableTreeTableNode im } setCompanions(childCompanionsBuilder); } + + private static class FloatingObjectPartsTreeNodeContext { + + // main model to get and store values + private final FloatingObjectUIModel uiModel; + // dto (null for root) + private final ObjectMaterialHierarchyDto dto; + // Is the node is enabled (hierarchic value) ? + private final boolean enabled; + // Is this node editable ? + private final boolean editable; + // Is this node need at least one child selected ? + private final boolean needOneSelection; + // Is this node in the path of at least one mandatory child ancestor ? + private final boolean mandatory; + // Is the node is exclusive (means only one value possible for him and his brothers) ? + private final boolean exclusive; + // Is the node valid for whenArriving column ? + private boolean validWhenArriving = true; + // Is the node valid for whenLeaving column ? + private boolean validWhenLeaving = true; + // Set of brothers of this node that is in a exclusive group of node (only one value among all of them) + private ImmutableSet<FloatingObjectPartsTreeNode> companions; + // Internal to store debug node text + private String text; + + FloatingObjectPartsTreeNodeContext(FloatingObjectUIModel uiModel) { + Objects.requireNonNull(uiModel); + this.uiModel = uiModel; + this.dto = null; + this.enabled = true; + this.editable = false; + this.mandatory = false; + this.exclusive = false; + this.needOneSelection = false; + } + + FloatingObjectPartsTreeNodeContext(ObjectMaterialHierarchyDto dto, FloatingObjectPartsTreeNodeContext parent) { + Objects.requireNonNull(dto); + Objects.requireNonNull(parent); + this.uiModel = parent.uiModel; + this.dto = dto; + // enabled if parent is enabled and dto is enabled + this.enabled = parent.enabled && dto.isEnabled(); + // need one selection if is enabled and dto requires it + this.needOneSelection = enabled && dto.isChildSelectionMandatory(); + // editable if dto is selectable (we also make sure that the object material type is here too) + this.editable = dto.isSelectable() && dto.getObjectMaterialType() != null; + + // mandatory if enabled parent is so or parent makes this child to be + this.mandatory = parent.mandatory || parent.needOneSelection; + // exclusive if his parent requires it + this.exclusive = parent.dto != null && parent.dto.isChildrenMultiSelectable(); + log.info(String.format("New node: %s - mandatory %s - needOneSelection %s - exclusive %s", dto.getLabel2(), mandatory, needOneSelection, exclusive)); + } + + Object getValueAt(int column) { + switch (column) { + case 0: // dto + return dto; + case 1: // when arriving + return uiModel.getWhenArriving().get(dto); + case 2: // when leaving + return uiModel.getWhenLeaving().get(dto); + } + throw new IllegalStateException(); + } + + void setValueAt(Object aValue, int column) { + switch (column) { + case 1: // when arriving + uiModel.setWhenArriving(dto.getId(), aValue == null ? null : String.valueOf(aValue)); + return; + case 2: // when leaving + uiModel.setWhenLeaving(dto.getId(), aValue == null ? null : String.valueOf(aValue)); + return; + } + throw new IllegalStateException(); + } + + boolean isColumnEditable(int column) { + switch (column) { + case 1: // when arriving + return uiModel.isArriving(); + case 2: // when leaving + return uiModel.isLeaving(); + } + throw new IllegalStateException(); + } + + boolean isValid(int column) { + switch (column) { + case 1: // when arriving + return validWhenArriving; + case 2: // when leaving + return validWhenLeaving; + } + throw new IllegalStateException(); + } + + Optional<FloatingObjectPartsTreeNode> getSelectedCompanion(int column) { + return companions.stream().filter(n -> n.getValueAt(column) != null).findFirst(); + } + + public String getText() { + if (text == null && dto != null) { + text = String.format("%s [value: %s-%s] [valid: %s-%s]", dto.getLabel2(), getValueAt(1), getValueAt(2), isValid(1), isValid(2)); + } + return text; + } + + } } ===================================== client/src/main/java/fr/ird/observe/client/ui/content/data/seine/dcp/FloatingObjectPartsTreeTableModel.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/ui/content/data/seine/dcp/FloatingObjectPartsTreeTableModel.java +++ b/client/src/main/java/fr/ird/observe/client/ui/content/data/seine/dcp/FloatingObjectPartsTreeTableModel.java @@ -10,12 +10,12 @@ package fr.ird.observe.client.ui.content.data.seine.dcp; * 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>. @@ -32,8 +32,6 @@ import org.jdesktop.swingx.treetable.TreeTableNode; import org.nuiton.i18n.I18n; import java.util.Arrays; -import java.util.Collections; -import java.util.List; import java.util.Optional; import java.util.stream.Collectors; @@ -56,7 +54,7 @@ public class FloatingObjectPartsTreeTableModel extends DefaultTreeTableModel { private ImmutableSet<FloatingObjectPartsTreeNode> withValidationNodes; public FloatingObjectPartsTreeTableModel(FloatingObjectUIModel uiModel) { - super(FloatingObjectPartsTreeNode.createRoot(uiModel, Collections.emptyList()), Arrays.asList( + super(FloatingObjectPartsTreeNode.createRoot(uiModel, null), Arrays.asList( I18n.t("observe.common.FloatingObjectDto.table.type"), I18n.t("observe.common.whenArriving"), I18n.t("observe.common.whenLeaving"))); @@ -68,11 +66,6 @@ public class FloatingObjectPartsTreeTableModel extends DefaultTreeTableModel { return (FloatingObjectPartsTreeNode) super.getRoot(); } - public void rebuildRootNode(List<ObjectMaterialHierarchyDto> materials) { - FloatingObjectPartsTreeNode root = FloatingObjectPartsTreeNode.createRoot(uiModel, materials); - setRoot(root); - } - @Override public void setRoot(TreeTableNode root) { super.setRoot(root); @@ -91,6 +84,10 @@ public class FloatingObjectPartsTreeTableModel extends DefaultTreeTableModel { withValidationNodes = ImmutableSet.copyOf(allNodes.stream().filter(FloatingObjectPartsTreeNode::withValidation).collect(Collectors.toSet())); } + public void rebuildRootNode(ObjectMaterialHierarchyDto materials) { + FloatingObjectPartsTreeNode root = FloatingObjectPartsTreeNode.createRoot(uiModel, materials); + setRoot(root); + } @Override public int getColumnCount() { ===================================== persistence/src/main/resources/db/migration/7.2/01_update_objectMaterial-common.sql ===================================== --- a/persistence/src/main/resources/db/migration/7.2/01_update_objectMaterial-common.sql +++ b/persistence/src/main/resources/db/migration/7.2/01_update_objectMaterial-common.sql @@ -109,3 +109,4 @@ update observe_seine.objectmaterial set validation='x.length() >= 3 && x.length( INSERT INTO observe_seine.objectMaterial (topiaid, topiaversion, topiacreatedate, lastupdatedate, needComment, status, legacyCode, standardCode, code, parent, label1, label2, label3, selectable, childrenMultiSelectable, childSelectionMandatory, objectMaterialType, validation, biodegradable, nonEntangling) values ('fr.ird.observe.entities.referentiel.seine.ObjectMaterial#0#1.3', 0, CURRENT_DATE, CURRENT_TIMESTAMP, false, 1, NULL, 'FOB', '' , null , 'FOB', 'FOB', 'FOB', false, true , true, NULL, NULL, false, false); UPDATE observe_seine.objectmaterial SET parent='fr.ird.observe.entities.referentiel.seine.ObjectMaterial#0#1.3' WHERE parent IS NULL; UPDATE observe_seine.objectmaterial SET parent= NULL WHERE topiaid='fr.ird.observe.entities.referentiel.seine.ObjectMaterial#0#1.3'; +UPDATE observe_seine.objectmaterial SET SELECTABLE = TRUE WHERE parent='fr.ird.observe.entities.referentiel.seine.ObjectMaterial#0#1.3' and status = '1'; \ No newline at end of file ===================================== services-local/src/main/java/fr/ird/observe/services/local/service/data/seine/FloatingObjectServiceLocal.java ===================================== --- a/services-local/src/main/java/fr/ird/observe/services/local/service/data/seine/FloatingObjectServiceLocal.java +++ b/services-local/src/main/java/fr/ird/observe/services/local/service/data/seine/FloatingObjectServiceLocal.java @@ -74,12 +74,11 @@ public class FloatingObjectServiceLocal extends ObserveServiceLocal implements F private static final Set<String> FOB_OBSERVED_SYSTEM_EXCLUDE_OPERATIONS = ImmutableSet.of("fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#10", "fr.ird.observe.entities.referentiel.seine.ObjectOperation#0#1"); @Override - public List<ObjectMaterialHierarchyDto> getObjectMaterialHierarchy() { + public ObjectMaterialHierarchyDto getObjectMaterialHierarchy() { ObjectMaterialTopiaDao dao = getTopiaPersistenceContext().getObjectMaterialDao(); List<ObjectMaterial> objectMaterials = dao.findAll(); objectMaterials.sort(Comparator.comparing(ObjectMaterial::getCode)); - List<ObjectMaterialHierarchyDto> rootNode = getObjectMaterialHierarchyDtos(objectMaterials); - return rootNode.get(0).getChildren(); + return getObjectMaterialHierarchyDtos(objectMaterials).get(0); } @Override ===================================== services-local/src/test/java/fr/ird/observe/services/local/service/data/seine/FloatingObjectServiceLocalTest.java ===================================== --- a/services-local/src/test/java/fr/ird/observe/services/local/service/data/seine/FloatingObjectServiceLocalTest.java +++ b/services-local/src/test/java/fr/ird/observe/services/local/service/data/seine/FloatingObjectServiceLocalTest.java @@ -10,12 +10,12 @@ package fr.ird.observe.services.local.service.data.seine; * 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>. @@ -27,7 +27,6 @@ import fr.ird.observe.services.local.service.ServiceLocalTestSupport; import fr.ird.observe.services.service.data.seine.FloatingObjectService; import fr.ird.observe.test.DatabaseName; import fr.ird.observe.test.spi.DatabaseNameConfiguration; -import java.util.List; import org.junit.Assert; import org.junit.Before; import org.junit.Test; @@ -50,9 +49,8 @@ public class FloatingObjectServiceLocalTest extends ServiceLocalTestSupport { @Test public void getObjectMaterialHierarchy() { - List<ObjectMaterialHierarchyDto> form = service.getObjectMaterialHierarchy(); + ObjectMaterialHierarchyDto form = service.getObjectMaterialHierarchy(); Assert.assertNotNull(form); - Assert.assertEquals(4, form.size()); } ===================================== services/src/main/java/fr/ird/observe/services/service/data/seine/FloatingObjectService.java ===================================== --- a/services/src/main/java/fr/ird/observe/services/service/data/seine/FloatingObjectService.java +++ b/services/src/main/java/fr/ird/observe/services/service/data/seine/FloatingObjectService.java @@ -40,8 +40,6 @@ import io.ultreia.java4all.http.spi.Delete; import io.ultreia.java4all.http.spi.Get; import io.ultreia.java4all.http.spi.Post; -import java.util.List; - /** * @author Tony Chemit - dev(a)tchemit.fr */ @@ -49,7 +47,7 @@ public interface FloatingObjectService extends ObserveService { @Get @ReadReferentialPermission - List<ObjectMaterialHierarchyDto> getObjectMaterialHierarchy(); + ObjectMaterialHierarchyDto getObjectMaterialHierarchy(); @Get @ReadDataPermission ===================================== test/src/main/resources/db/7.2/dataForTestLongline.sql.gz ===================================== Binary files a/test/src/main/resources/db/7.2/dataForTestLongline.sql.gz and b/test/src/main/resources/db/7.2/dataForTestLongline.sql.gz differ ===================================== test/src/main/resources/db/7.2/dataForTestSeine.sql.gz ===================================== Binary files a/test/src/main/resources/db/7.2/dataForTestSeine.sql.gz and b/test/src/main/resources/db/7.2/dataForTestSeine.sql.gz differ ===================================== test/src/main/resources/db/7.2/referentiel.sql.gz ===================================== Binary files a/test/src/main/resources/db/7.2/referentiel.sql.gz and b/test/src/main/resources/db/7.2/referentiel.sql.gz differ View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/d9cd7d7e6d4e059073a0b42ad36… -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/d9cd7d7e6d4e059073a0b42ad36… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][develop] Migration RC12c -> OutOfMemory : Java Heap Space (Closes #947)
by Tony CHEMIT 06 May '18

06 May '18
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: 667850b2 by Tony CHEMIT at 2018-05-06T14:48:26Z Migration RC12c -&gt; OutOfMemory : Java Heap Space (Closes #947) - - - - - 27 changed files: - client-configuration/src/main/resources/log4j.properties - client-configuration/src/main/resources/observe-log4j.properties - client/pom.xml - persistence/pom.xml - persistence/src/main/java/fr/ird/observe/persistence/ObserveTopiaApplicationContext.java - persistence/src/main/java/fr/ird/observe/persistence/ObserveTopiaConfigurationFactory.java - − persistence/src/main/java/fr/ird/observe/persistence/migration/AbstractDataSourceMigration.java - − persistence/src/main/java/fr/ird/observe/persistence/migration/AbstractObserveMigrationCallBack.java - persistence/src/main/java/fr/ird/observe/persistence/migration/DataSourceMigrationForVersion_5_0.java - persistence/src/main/java/fr/ird/observe/persistence/migration/DataSourceMigrationForVersion_6_0.java - persistence/src/main/java/fr/ird/observe/persistence/migration/DataSourceMigrationForVersion_7_0_RC_4.java → persistence/src/main/java/fr/ird/observe/persistence/migration/DataSourceMigrationForVersion_6_1.java - persistence/src/main/java/fr/ird/observe/persistence/migration/DataSourceMigrationForVersion_7_0_RC_6.java → persistence/src/main/java/fr/ird/observe/persistence/migration/DataSourceMigrationForVersion_6_2.java - persistence/src/main/java/fr/ird/observe/persistence/migration/DataSourceMigrationForVersion_7_0.java - persistence/src/main/java/fr/ird/observe/persistence/migration/DataSourceMigrationForVersion_7_1.java - persistence/src/main/java/fr/ird/observe/persistence/migration/DataSourceMigrationForVersion_7_2.java - − persistence/src/main/java/fr/ird/observe/persistence/migration/H2DataSourceMigration.java - persistence/src/main/java/fr/ird/observe/persistence/migration/MigrationVersion.java - − persistence/src/main/java/fr/ird/observe/persistence/migration/ObserveMigrationCallBackForVersionResolver.java - persistence/src/main/java/fr/ird/observe/persistence/migration/ObserveMigrationConfigurationProvider.java - persistence/src/main/java/fr/ird/observe/persistence/migration/ObserveMigrationEngine.java → persistence/src/main/java/fr/ird/observe/persistence/migration/ObserveTopiaMigrationServiceAskUserToMigrate.java - − persistence/src/main/java/fr/ird/observe/persistence/migration/PGDataSourceMigration.java - persistence/src/main/java/fr/ird/observe/persistence/migration/old/DataSourceMigrationForVersion_3_1.java - persistence/src/main/java/fr/ird/observe/persistence/migration/old/DataSourceMigrationForVersion_3_10.java - persistence/src/main/java/fr/ird/observe/persistence/migration/old/DataSourceMigrationForVersion_3_11.java - persistence/src/main/java/fr/ird/observe/persistence/migration/old/DataSourceMigrationForVersion_3_12.java - persistence/src/main/java/fr/ird/observe/persistence/migration/old/DataSourceMigrationForVersion_3_14.java - persistence/src/main/java/fr/ird/observe/persistence/migration/old/DataSourceMigrationForVersion_3_15.java The diff was not included because it is too large. View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/667850b21b0be310220540c9145… --- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/667850b21b0be310220540c9145… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][develop] Migration RC12c -> OutOfMemory : Java Heap Space (Closes #947)
by Tony CHEMIT 05 May '18

05 May '18
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: 4fc4e722 by Tony CHEMIT at 2018-05-05T20:51:48Z Migration RC12c -&gt; OutOfMemory : Java Heap Space (Closes #947) - - - - - 28 changed files: - client-configuration/src/main/resources/log4j.properties - client-configuration/src/main/resources/observe-log4j.properties - client/pom.xml - persistence/pom.xml - persistence/src/main/java/fr/ird/observe/persistence/ObserveTopiaApplicationContext.java - persistence/src/main/java/fr/ird/observe/persistence/ObserveTopiaConfigurationFactory.java - − persistence/src/main/java/fr/ird/observe/persistence/migration/AbstractObserveMigrationCallBack.java - persistence/src/main/java/fr/ird/observe/persistence/migration/DataSourceMigrationForVersion_5_0.java - persistence/src/main/java/fr/ird/observe/persistence/migration/DataSourceMigrationForVersion_6_0.java - persistence/src/main/java/fr/ird/observe/persistence/migration/DataSourceMigrationForVersion_7_0_RC_4.java → persistence/src/main/java/fr/ird/observe/persistence/migration/DataSourceMigrationForVersion_6_1.java - persistence/src/main/java/fr/ird/observe/persistence/migration/DataSourceMigrationForVersion_7_0_RC_6.java → persistence/src/main/java/fr/ird/observe/persistence/migration/DataSourceMigrationForVersion_6_2.java - persistence/src/main/java/fr/ird/observe/persistence/migration/DataSourceMigrationForVersion_7_0.java - persistence/src/main/java/fr/ird/observe/persistence/migration/DataSourceMigrationForVersion_7_1.java - persistence/src/main/java/fr/ird/observe/persistence/migration/DataSourceMigrationForVersion_7_2.java - − persistence/src/main/java/fr/ird/observe/persistence/migration/H2DataSourceMigration.java - − persistence/src/main/java/fr/ird/observe/persistence/migration/ObserveMigrationCallBackForVersionResolver.java - persistence/src/main/java/fr/ird/observe/persistence/migration/ObserveMigrationConfigurationProvider.java - − persistence/src/main/java/fr/ird/observe/persistence/migration/ObserveMigrationEngine.java - persistence/src/main/java/fr/ird/observe/persistence/migration/AbstractDataSourceMigration.java → persistence/src/main/java/fr/ird/observe/persistence/migration/ObserveTopiaMigrationServiceAskUserToMigrate.java - − persistence/src/main/java/fr/ird/observe/persistence/migration/PGDataSourceMigration.java - persistence/src/main/java/fr/ird/observe/persistence/migration/old/DataSourceMigrationForVersion_3_1.java - persistence/src/main/java/fr/ird/observe/persistence/migration/old/DataSourceMigrationForVersion_3_10.java - persistence/src/main/java/fr/ird/observe/persistence/migration/old/DataSourceMigrationForVersion_3_11.java - persistence/src/main/java/fr/ird/observe/persistence/migration/old/DataSourceMigrationForVersion_3_12.java - persistence/src/main/java/fr/ird/observe/persistence/migration/old/DataSourceMigrationForVersion_3_14.java - persistence/src/main/java/fr/ird/observe/persistence/migration/old/DataSourceMigrationForVersion_3_15.java - persistence/src/main/java/fr/ird/observe/persistence/migration/old/DataSourceMigrationForVersion_3_16.java - persistence/src/main/java/fr/ird/observe/persistence/migration/old/DataSourceMigrationForVersion_3_5.java The diff was not included because it is too large. View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/4fc4e7221e7efde6a48e0a1082b… --- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/4fc4e7221e7efde6a48e0a1082b… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][develop] Fix migration - Closes #945
by Tony CHEMIT 04 May '18

04 May '18
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: be4985c5 by Tony CHEMIT at 2018-05-04T16:00:24Z Fix migration - Closes #945 - - - - - 3 changed files: - persistence/src/main/java/fr/ird/observe/persistence/migration/DataSourceMigrationForVersion_6_0.java - persistence/src/main/java/fr/ird/observe/persistence/migration/DataSourceMigrationForVersion_7_0_RC_4.java - persistence/src/main/resources/db/migration/6.1/00_fix_trigger-PG.sql → persistence/src/main/resources/db/migration/6.0/00_fix_trigger-PG.sql Changes: ===================================== persistence/src/main/java/fr/ird/observe/persistence/migration/DataSourceMigrationForVersion_6_0.java ===================================== --- a/persistence/src/main/java/fr/ird/observe/persistence/migration/DataSourceMigrationForVersion_6_0.java +++ b/persistence/src/main/java/fr/ird/observe/persistence/migration/DataSourceMigrationForVersion_6_0.java @@ -264,6 +264,74 @@ public class DataSourceMigrationForVersion_6_0 extends AbstractObserveMigrationC super(callBack, PGDataSourceMigration.TYPE); } + @Override + protected void prepareMigrationScript(TopiaSqlSupport topiaSqlSupport, List<String> queries, boolean showSql, boolean showProgression) { + Boolean withTriggers = topiaSqlSupport.findSingleResult(new TopiaSqlQuery<Boolean>() { + @Override + public PreparedStatement prepareQuery(Connection connection) throws SQLException { + return connection.prepareStatement("select exists(select * from pg_proc where proname = 'sync_activity_the_geom');"); + } + + @Override + public Boolean prepareResult(ResultSet resultSet) throws SQLException { + return resultSet.getBoolean(1); + } + }); + + if (withTriggers) { + queries.add("CREATE OR REPLACE function sync_activity_the_geom () returns trigger as '\n" + + "BEGIN\n" + + " IF (TG_OP = ''DELETE'') THEN\n" + + " RETURN OLD;\n" + + " END IF;\n" + + " IF (NEW.latitude IS NULL OR NEW.longitude IS NULL) THEN\n" + + " -- on ne calcule pas le point postgis si au moins une des -- coordonnees n est pas renseignee\n" + + " RAISE NOTICE ''No latitude or longitude, can not compute postgis field for id % '', NEW.topiaId;\n" + + " NEW.the_geom := NULL;\n" + + " return NEW;\n" + + " END IF;\n" + + " IF (TG_OP = ''UPDATE'' AND NEW.latitude = OLD.latitude AND NEW.longitude = OLD.longitude)\n" + + " THEN\n" + + " -- on ne calcule pas le point postgis si les coordonnées n''ont pas changées\n" + + " return NEW;\n" + + " END IF;\n" + + " RAISE NOTICE ''Will compute the_geom for activite % - latitude % and longitude %'', NEW.topiaId, NEW.latitude, NEW.longitude;\n" + + " -- affectation du point\n" + + " NEW.the_geom := ST_SetSRID(ST_MakePoint(NEW.longitude,NEW.latitude), 4326);\n" + + " RAISE NOTICE ''Computed for activity % latitude % and longitude %, the_geom %'', NEW.topiaId, NEW.latitude, NEW.longitude, NEW.the_geom;\n" + + "\n" + + " RETURN NEW;\n" + + "END\n" + + "'\n" + + "LANGUAGE 'plpgsql';\n"); + queries.add("CREATE OR REPLACE function sync_harbour_the_geom () returns trigger as '\n" + + "BEGIN\n" + + " IF (TG_OP = ''DELETE'') THEN\n" + + " RETURN OLD;\n" + + " END IF;\n" + + " IF (NEW.latitude IS NULL OR NEW.longitude IS NULL) THEN\n" + + " -- on ne calcule pas le point postgis si au moins une des -- coordonnees n est pas renseignee\n" + + " RAISE NOTICE ''No latitude or longitude, can not compute postgis field for id % '', NEW.topiaId;\n" + + " NEW.the_geom := NULL;\n" + + " return NEW;\n" + + " END IF;\n" + + " IF (TG_OP = ''UPDATE'' AND NEW.latitude = OLD.latitude AND NEW.longitude = OLD.longitude)\n" + + " THEN\n" + + " -- on ne calcule pas le point postgis si les coordonnées n''ont pas changées\n" + + " return NEW;\n" + + " END IF;\n" + + " RAISE NOTICE ''Will compute the_geom for harbour % - latitude % and longitude %'', NEW.topiaId, NEW.latitude, NEW.longitude;\n" + + " -- affectation du point\n" + + " NEW.the_geom := ST_SetSRID(ST_MakePoint(NEW.longitude,NEW.latitude), 4326);\n" + + " RAISE NOTICE ''Computed for harbour % latitude % and longitude %, the_geom %'', NEW.topiaId, NEW.latitude, NEW.longitude, NEW.the_geom;\n" + + " RETURN NEW;\n" + + "END\n" + + "'\n" + + "LANGUAGE 'plpgsql';"); + addScript("00", "fix_trigger", queries); + } + super.prepareMigrationScript(topiaSqlSupport, queries, showSql, showProgression); + } } } ===================================== persistence/src/main/java/fr/ird/observe/persistence/migration/DataSourceMigrationForVersion_7_0_RC_4.java ===================================== --- a/persistence/src/main/java/fr/ird/observe/persistence/migration/DataSourceMigrationForVersion_7_0_RC_4.java +++ b/persistence/src/main/java/fr/ird/observe/persistence/migration/DataSourceMigrationForVersion_7_0_RC_4.java @@ -22,13 +22,8 @@ package fr.ird.observe.persistence.migration; * #L% */ -import org.nuiton.topia.persistence.support.TopiaSqlQuery; import org.nuiton.topia.persistence.support.TopiaSqlSupport; -import java.sql.Connection; -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.SQLException; import java.util.List; import java.util.Map; import java.util.Set; @@ -89,76 +84,6 @@ public class DataSourceMigrationForVersion_7_0_RC_4 extends AbstractObserveMigra super(callBack, PGDataSourceMigration.TYPE); } - - @Override - protected void prepareMigrationScript(TopiaSqlSupport topiaSqlSupport, List<String> queries, boolean showSql, boolean showProgression) { - - Boolean withTriggers = topiaSqlSupport.findSingleResult(new TopiaSqlQuery<Boolean>() { - @Override - public PreparedStatement prepareQuery(Connection connection) throws SQLException { - return connection.prepareStatement("select exists(select * from pg_proc where proname = 'sync_activity_the_geom');"); - } - - @Override - public Boolean prepareResult(ResultSet resultSet) throws SQLException { - return resultSet.getBoolean(1); - } - }); - - if (withTriggers) { - queries.add("CREATE OR REPLACE function sync_activity_the_geom () returns trigger as '\n" + - "BEGIN\n" + - " IF (TG_OP = ''DELETE'') THEN\n" + - " RETURN OLD;\n" + - " END IF;\n" + - " IF (NEW.latitude IS NULL OR NEW.longitude IS NULL) THEN\n" + - " -- on ne calcule pas le point postgis si au moins une des -- coordonnees n est pas renseignee\n" + - " RAISE NOTICE ''No latitude or longitude, can not compute postgis field for id % '', NEW.topiaId;\n" + - " NEW.the_geom := NULL;\n" + - " return NEW;\n" + - " END IF;\n" + - " IF (TG_OP = ''UPDATE'' AND NEW.latitude = OLD.latitude AND NEW.longitude = OLD.longitude)\n" + - " THEN\n" + - " -- on ne calcule pas le point postgis si les coordonnées n''ont pas changées\n" + - " return NEW;\n" + - " END IF;\n" + - " RAISE NOTICE ''Will compute the_geom for activite % - latitude % and longitude %'', NEW.topiaId, NEW.latitude, NEW.longitude;\n" + - " -- affectation du point\n" + - " NEW.the_geom := ST_SetSRID(ST_MakePoint(NEW.longitude,NEW.latitude), 4326);\n" + - " RAISE NOTICE ''Computed for activity % latitude % and longitude %, the_geom %'', NEW.topiaId, NEW.latitude, NEW.longitude, NEW.the_geom;\n" + - "\n" + - " RETURN NEW;\n" + - "END\n" + - "'\n" + - "LANGUAGE 'plpgsql';\n"); - queries.add("CREATE OR REPLACE function sync_harbour_the_geom () returns trigger as '\n" + - "BEGIN\n" + - " IF (TG_OP = ''DELETE'') THEN\n" + - " RETURN OLD;\n" + - " END IF;\n" + - " IF (NEW.latitude IS NULL OR NEW.longitude IS NULL) THEN\n" + - " -- on ne calcule pas le point postgis si au moins une des -- coordonnees n est pas renseignee\n" + - " RAISE NOTICE ''No latitude or longitude, can not compute postgis field for id % '', NEW.topiaId;\n" + - " NEW.the_geom := NULL;\n" + - " return NEW;\n" + - " END IF;\n" + - " IF (TG_OP = ''UPDATE'' AND NEW.latitude = OLD.latitude AND NEW.longitude = OLD.longitude)\n" + - " THEN\n" + - " -- on ne calcule pas le point postgis si les coordonnées n''ont pas changées\n" + - " return NEW;\n" + - " END IF;\n" + - " RAISE NOTICE ''Will compute the_geom for harbour % - latitude % and longitude %'', NEW.topiaId, NEW.latitude, NEW.longitude;\n" + - " -- affectation du point\n" + - " NEW.the_geom := ST_SetSRID(ST_MakePoint(NEW.longitude,NEW.latitude), 4326);\n" + - " RAISE NOTICE ''Computed for harbour % latitude % and longitude %, the_geom %'', NEW.topiaId, NEW.latitude, NEW.longitude, NEW.the_geom;\n" + - " RETURN NEW;\n" + - "END\n" + - "'\n" + - "LANGUAGE 'plpgsql';"); - addScript("00", "fix_trigger", queries); - } - super.prepareMigrationScript(topiaSqlSupport, queries, showSql, showProgression); - } } } ===================================== persistence/src/main/resources/db/migration/6.1/00_fix_trigger-PG.sql → persistence/src/main/resources/db/migration/6.0/00_fix_trigger-PG.sql ===================================== View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/be4985c5a43440cdd373738b646… --- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/be4985c5a43440cdd373738b646… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][master] Fix migration - Closes #945
by Tony CHEMIT 04 May '18

04 May '18
Tony CHEMIT pushed to branch master at ultreiaio / ird-observe Commits: 41491680 by Tony CHEMIT at 2018-05-04T16:01:00Z Fix migration - Closes #945 - - - - - 3 changed files: - persistence/src/main/java/fr/ird/observe/persistence/migration/DataSourceMigrationForVersion_6_0.java - persistence/src/main/java/fr/ird/observe/persistence/migration/DataSourceMigrationForVersion_7_0_RC_4.java - persistence/src/main/resources/db/migration/6.1/00_fix_trigger-PG.sql → persistence/src/main/resources/db/migration/6.0/00_fix_trigger-PG.sql Changes: ===================================== persistence/src/main/java/fr/ird/observe/persistence/migration/DataSourceMigrationForVersion_6_0.java ===================================== --- a/persistence/src/main/java/fr/ird/observe/persistence/migration/DataSourceMigrationForVersion_6_0.java +++ b/persistence/src/main/java/fr/ird/observe/persistence/migration/DataSourceMigrationForVersion_6_0.java @@ -264,6 +264,74 @@ public class DataSourceMigrationForVersion_6_0 extends AbstractObserveMigrationC super(callBack, PGDataSourceMigration.TYPE); } + @Override + protected void prepareMigrationScript(TopiaSqlSupport topiaSqlSupport, List<String> queries, boolean showSql, boolean showProgression) { + Boolean withTriggers = topiaSqlSupport.findSingleResult(new TopiaSqlQuery<Boolean>() { + @Override + public PreparedStatement prepareQuery(Connection connection) throws SQLException { + return connection.prepareStatement("select exists(select * from pg_proc where proname = 'sync_activity_the_geom');"); + } + + @Override + public Boolean prepareResult(ResultSet resultSet) throws SQLException { + return resultSet.getBoolean(1); + } + }); + + if (withTriggers) { + queries.add("CREATE OR REPLACE function sync_activity_the_geom () returns trigger as '\n" + + "BEGIN\n" + + " IF (TG_OP = ''DELETE'') THEN\n" + + " RETURN OLD;\n" + + " END IF;\n" + + " IF (NEW.latitude IS NULL OR NEW.longitude IS NULL) THEN\n" + + " -- on ne calcule pas le point postgis si au moins une des -- coordonnees n est pas renseignee\n" + + " RAISE NOTICE ''No latitude or longitude, can not compute postgis field for id % '', NEW.topiaId;\n" + + " NEW.the_geom := NULL;\n" + + " return NEW;\n" + + " END IF;\n" + + " IF (TG_OP = ''UPDATE'' AND NEW.latitude = OLD.latitude AND NEW.longitude = OLD.longitude)\n" + + " THEN\n" + + " -- on ne calcule pas le point postgis si les coordonnées n''ont pas changées\n" + + " return NEW;\n" + + " END IF;\n" + + " RAISE NOTICE ''Will compute the_geom for activite % - latitude % and longitude %'', NEW.topiaId, NEW.latitude, NEW.longitude;\n" + + " -- affectation du point\n" + + " NEW.the_geom := ST_SetSRID(ST_MakePoint(NEW.longitude,NEW.latitude), 4326);\n" + + " RAISE NOTICE ''Computed for activity % latitude % and longitude %, the_geom %'', NEW.topiaId, NEW.latitude, NEW.longitude, NEW.the_geom;\n" + + "\n" + + " RETURN NEW;\n" + + "END\n" + + "'\n" + + "LANGUAGE 'plpgsql';\n"); + queries.add("CREATE OR REPLACE function sync_harbour_the_geom () returns trigger as '\n" + + "BEGIN\n" + + " IF (TG_OP = ''DELETE'') THEN\n" + + " RETURN OLD;\n" + + " END IF;\n" + + " IF (NEW.latitude IS NULL OR NEW.longitude IS NULL) THEN\n" + + " -- on ne calcule pas le point postgis si au moins une des -- coordonnees n est pas renseignee\n" + + " RAISE NOTICE ''No latitude or longitude, can not compute postgis field for id % '', NEW.topiaId;\n" + + " NEW.the_geom := NULL;\n" + + " return NEW;\n" + + " END IF;\n" + + " IF (TG_OP = ''UPDATE'' AND NEW.latitude = OLD.latitude AND NEW.longitude = OLD.longitude)\n" + + " THEN\n" + + " -- on ne calcule pas le point postgis si les coordonnées n''ont pas changées\n" + + " return NEW;\n" + + " END IF;\n" + + " RAISE NOTICE ''Will compute the_geom for harbour % - latitude % and longitude %'', NEW.topiaId, NEW.latitude, NEW.longitude;\n" + + " -- affectation du point\n" + + " NEW.the_geom := ST_SetSRID(ST_MakePoint(NEW.longitude,NEW.latitude), 4326);\n" + + " RAISE NOTICE ''Computed for harbour % latitude % and longitude %, the_geom %'', NEW.topiaId, NEW.latitude, NEW.longitude, NEW.the_geom;\n" + + " RETURN NEW;\n" + + "END\n" + + "'\n" + + "LANGUAGE 'plpgsql';"); + addScript("00", "fix_trigger", queries); + } + super.prepareMigrationScript(topiaSqlSupport, queries, showSql, showProgression); + } } } ===================================== persistence/src/main/java/fr/ird/observe/persistence/migration/DataSourceMigrationForVersion_7_0_RC_4.java ===================================== --- a/persistence/src/main/java/fr/ird/observe/persistence/migration/DataSourceMigrationForVersion_7_0_RC_4.java +++ b/persistence/src/main/java/fr/ird/observe/persistence/migration/DataSourceMigrationForVersion_7_0_RC_4.java @@ -22,13 +22,8 @@ package fr.ird.observe.persistence.migration; * #L% */ -import org.nuiton.topia.persistence.support.TopiaSqlQuery; import org.nuiton.topia.persistence.support.TopiaSqlSupport; -import java.sql.Connection; -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.SQLException; import java.util.List; import java.util.Map; import java.util.Set; @@ -89,76 +84,6 @@ public class DataSourceMigrationForVersion_7_0_RC_4 extends AbstractObserveMigra super(callBack, PGDataSourceMigration.TYPE); } - - @Override - protected void prepareMigrationScript(TopiaSqlSupport topiaSqlSupport, List<String> queries, boolean showSql, boolean showProgression) { - - Boolean withTriggers = topiaSqlSupport.findSingleResult(new TopiaSqlQuery<Boolean>() { - @Override - public PreparedStatement prepareQuery(Connection connection) throws SQLException { - return connection.prepareStatement("select exists(select * from pg_proc where proname = 'sync_activity_the_geom');"); - } - - @Override - public Boolean prepareResult(ResultSet resultSet) throws SQLException { - return resultSet.getBoolean(1); - } - }); - - if (withTriggers) { - queries.add("CREATE OR REPLACE function sync_activity_the_geom () returns trigger as '\n" + - "BEGIN\n" + - " IF (TG_OP = ''DELETE'') THEN\n" + - " RETURN OLD;\n" + - " END IF;\n" + - " IF (NEW.latitude IS NULL OR NEW.longitude IS NULL) THEN\n" + - " -- on ne calcule pas le point postgis si au moins une des -- coordonnees n est pas renseignee\n" + - " RAISE NOTICE ''No latitude or longitude, can not compute postgis field for id % '', NEW.topiaId;\n" + - " NEW.the_geom := NULL;\n" + - " return NEW;\n" + - " END IF;\n" + - " IF (TG_OP = ''UPDATE'' AND NEW.latitude = OLD.latitude AND NEW.longitude = OLD.longitude)\n" + - " THEN\n" + - " -- on ne calcule pas le point postgis si les coordonnées n''ont pas changées\n" + - " return NEW;\n" + - " END IF;\n" + - " RAISE NOTICE ''Will compute the_geom for activite % - latitude % and longitude %'', NEW.topiaId, NEW.latitude, NEW.longitude;\n" + - " -- affectation du point\n" + - " NEW.the_geom := ST_SetSRID(ST_MakePoint(NEW.longitude,NEW.latitude), 4326);\n" + - " RAISE NOTICE ''Computed for activity % latitude % and longitude %, the_geom %'', NEW.topiaId, NEW.latitude, NEW.longitude, NEW.the_geom;\n" + - "\n" + - " RETURN NEW;\n" + - "END\n" + - "'\n" + - "LANGUAGE 'plpgsql';\n"); - queries.add("CREATE OR REPLACE function sync_harbour_the_geom () returns trigger as '\n" + - "BEGIN\n" + - " IF (TG_OP = ''DELETE'') THEN\n" + - " RETURN OLD;\n" + - " END IF;\n" + - " IF (NEW.latitude IS NULL OR NEW.longitude IS NULL) THEN\n" + - " -- on ne calcule pas le point postgis si au moins une des -- coordonnees n est pas renseignee\n" + - " RAISE NOTICE ''No latitude or longitude, can not compute postgis field for id % '', NEW.topiaId;\n" + - " NEW.the_geom := NULL;\n" + - " return NEW;\n" + - " END IF;\n" + - " IF (TG_OP = ''UPDATE'' AND NEW.latitude = OLD.latitude AND NEW.longitude = OLD.longitude)\n" + - " THEN\n" + - " -- on ne calcule pas le point postgis si les coordonnées n''ont pas changées\n" + - " return NEW;\n" + - " END IF;\n" + - " RAISE NOTICE ''Will compute the_geom for harbour % - latitude % and longitude %'', NEW.topiaId, NEW.latitude, NEW.longitude;\n" + - " -- affectation du point\n" + - " NEW.the_geom := ST_SetSRID(ST_MakePoint(NEW.longitude,NEW.latitude), 4326);\n" + - " RAISE NOTICE ''Computed for harbour % latitude % and longitude %, the_geom %'', NEW.topiaId, NEW.latitude, NEW.longitude, NEW.the_geom;\n" + - " RETURN NEW;\n" + - "END\n" + - "'\n" + - "LANGUAGE 'plpgsql';"); - addScript("00", "fix_trigger", queries); - } - super.prepareMigrationScript(topiaSqlSupport, queries, showSql, showProgression); - } } } ===================================== persistence/src/main/resources/db/migration/6.1/00_fix_trigger-PG.sql → persistence/src/main/resources/db/migration/6.0/00_fix_trigger-PG.sql ===================================== View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/414916806da3222e2d102b3ef5b… --- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/414916806da3222e2d102b3ef5b… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][develop] Fix migration - Closes #945
by Tony CHEMIT 04 May '18

04 May '18
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: 806b9177 by Tony CHEMIT at 2018-05-04T14:57:22Z Fix migration - Closes #945 - - - - - 2 changed files: - persistence/src/main/java/fr/ird/observe/persistence/migration/DataSourceMigrationForVersion_6_0.java - persistence/src/main/java/fr/ird/observe/persistence/migration/DataSourceMigrationForVersion_7_0_RC_4.java Changes: ===================================== persistence/src/main/java/fr/ird/observe/persistence/migration/DataSourceMigrationForVersion_6_0.java ===================================== --- a/persistence/src/main/java/fr/ird/observe/persistence/migration/DataSourceMigrationForVersion_6_0.java +++ b/persistence/src/main/java/fr/ird/observe/persistence/migration/DataSourceMigrationForVersion_6_0.java @@ -264,6 +264,74 @@ public class DataSourceMigrationForVersion_6_0 extends AbstractObserveMigrationC super(callBack, PGDataSourceMigration.TYPE); } + @Override + protected void prepareMigrationScript(TopiaSqlSupport topiaSqlSupport, List<String> queries, boolean showSql, boolean showProgression) { + Boolean withTriggers = topiaSqlSupport.findSingleResult(new TopiaSqlQuery<Boolean>() { + @Override + public PreparedStatement prepareQuery(Connection connection) throws SQLException { + return connection.prepareStatement("select exists(select * from pg_proc where proname = 'sync_activity_the_geom');"); + } + + @Override + public Boolean prepareResult(ResultSet resultSet) throws SQLException { + return resultSet.getBoolean(1); + } + }); + + if (withTriggers) { + queries.add("CREATE OR REPLACE function sync_activity_the_geom () returns trigger as '\n" + + "BEGIN\n" + + " IF (TG_OP = ''DELETE'') THEN\n" + + " RETURN OLD;\n" + + " END IF;\n" + + " IF (NEW.latitude IS NULL OR NEW.longitude IS NULL) THEN\n" + + " -- on ne calcule pas le point postgis si au moins une des -- coordonnees n est pas renseignee\n" + + " RAISE NOTICE ''No latitude or longitude, can not compute postgis field for id % '', NEW.topiaId;\n" + + " NEW.the_geom := NULL;\n" + + " return NEW;\n" + + " END IF;\n" + + " IF (TG_OP = ''UPDATE'' AND NEW.latitude = OLD.latitude AND NEW.longitude = OLD.longitude)\n" + + " THEN\n" + + " -- on ne calcule pas le point postgis si les coordonnées n''ont pas changées\n" + + " return NEW;\n" + + " END IF;\n" + + " RAISE NOTICE ''Will compute the_geom for activite % - latitude % and longitude %'', NEW.topiaId, NEW.latitude, NEW.longitude;\n" + + " -- affectation du point\n" + + " NEW.the_geom := ST_SetSRID(ST_MakePoint(NEW.longitude,NEW.latitude), 4326);\n" + + " RAISE NOTICE ''Computed for activity % latitude % and longitude %, the_geom %'', NEW.topiaId, NEW.latitude, NEW.longitude, NEW.the_geom;\n" + + "\n" + + " RETURN NEW;\n" + + "END\n" + + "'\n" + + "LANGUAGE 'plpgsql';\n"); + queries.add("CREATE OR REPLACE function sync_harbour_the_geom () returns trigger as '\n" + + "BEGIN\n" + + " IF (TG_OP = ''DELETE'') THEN\n" + + " RETURN OLD;\n" + + " END IF;\n" + + " IF (NEW.latitude IS NULL OR NEW.longitude IS NULL) THEN\n" + + " -- on ne calcule pas le point postgis si au moins une des -- coordonnees n est pas renseignee\n" + + " RAISE NOTICE ''No latitude or longitude, can not compute postgis field for id % '', NEW.topiaId;\n" + + " NEW.the_geom := NULL;\n" + + " return NEW;\n" + + " END IF;\n" + + " IF (TG_OP = ''UPDATE'' AND NEW.latitude = OLD.latitude AND NEW.longitude = OLD.longitude)\n" + + " THEN\n" + + " -- on ne calcule pas le point postgis si les coordonnées n''ont pas changées\n" + + " return NEW;\n" + + " END IF;\n" + + " RAISE NOTICE ''Will compute the_geom for harbour % - latitude % and longitude %'', NEW.topiaId, NEW.latitude, NEW.longitude;\n" + + " -- affectation du point\n" + + " NEW.the_geom := ST_SetSRID(ST_MakePoint(NEW.longitude,NEW.latitude), 4326);\n" + + " RAISE NOTICE ''Computed for harbour % latitude % and longitude %, the_geom %'', NEW.topiaId, NEW.latitude, NEW.longitude, NEW.the_geom;\n" + + " RETURN NEW;\n" + + "END\n" + + "'\n" + + "LANGUAGE 'plpgsql';"); + addScript("00", "fix_trigger", queries); + } + super.prepareMigrationScript(topiaSqlSupport, queries, showSql, showProgression); + } } } ===================================== persistence/src/main/java/fr/ird/observe/persistence/migration/DataSourceMigrationForVersion_7_0_RC_4.java ===================================== --- a/persistence/src/main/java/fr/ird/observe/persistence/migration/DataSourceMigrationForVersion_7_0_RC_4.java +++ b/persistence/src/main/java/fr/ird/observe/persistence/migration/DataSourceMigrationForVersion_7_0_RC_4.java @@ -22,13 +22,8 @@ package fr.ird.observe.persistence.migration; * #L% */ -import org.nuiton.topia.persistence.support.TopiaSqlQuery; import org.nuiton.topia.persistence.support.TopiaSqlSupport; -import java.sql.Connection; -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.SQLException; import java.util.List; import java.util.Map; import java.util.Set; @@ -89,76 +84,6 @@ public class DataSourceMigrationForVersion_7_0_RC_4 extends AbstractObserveMigra super(callBack, PGDataSourceMigration.TYPE); } - - @Override - protected void prepareMigrationScript(TopiaSqlSupport topiaSqlSupport, List<String> queries, boolean showSql, boolean showProgression) { - - Boolean withTriggers = topiaSqlSupport.findSingleResult(new TopiaSqlQuery<Boolean>() { - @Override - public PreparedStatement prepareQuery(Connection connection) throws SQLException { - return connection.prepareStatement("select exists(select * from pg_proc where proname = 'sync_activity_the_geom');"); - } - - @Override - public Boolean prepareResult(ResultSet resultSet) throws SQLException { - return resultSet.getBoolean(1); - } - }); - - if (withTriggers) { - queries.add("CREATE OR REPLACE function sync_activity_the_geom () returns trigger as '\n" + - "BEGIN\n" + - " IF (TG_OP = ''DELETE'') THEN\n" + - " RETURN OLD;\n" + - " END IF;\n" + - " IF (NEW.latitude IS NULL OR NEW.longitude IS NULL) THEN\n" + - " -- on ne calcule pas le point postgis si au moins une des -- coordonnees n est pas renseignee\n" + - " RAISE NOTICE ''No latitude or longitude, can not compute postgis field for id % '', NEW.topiaId;\n" + - " NEW.the_geom := NULL;\n" + - " return NEW;\n" + - " END IF;\n" + - " IF (TG_OP = ''UPDATE'' AND NEW.latitude = OLD.latitude AND NEW.longitude = OLD.longitude)\n" + - " THEN\n" + - " -- on ne calcule pas le point postgis si les coordonnées n''ont pas changées\n" + - " return NEW;\n" + - " END IF;\n" + - " RAISE NOTICE ''Will compute the_geom for activite % - latitude % and longitude %'', NEW.topiaId, NEW.latitude, NEW.longitude;\n" + - " -- affectation du point\n" + - " NEW.the_geom := ST_SetSRID(ST_MakePoint(NEW.longitude,NEW.latitude), 4326);\n" + - " RAISE NOTICE ''Computed for activity % latitude % and longitude %, the_geom %'', NEW.topiaId, NEW.latitude, NEW.longitude, NEW.the_geom;\n" + - "\n" + - " RETURN NEW;\n" + - "END\n" + - "'\n" + - "LANGUAGE 'plpgsql';\n"); - queries.add("CREATE OR REPLACE function sync_harbour_the_geom () returns trigger as '\n" + - "BEGIN\n" + - " IF (TG_OP = ''DELETE'') THEN\n" + - " RETURN OLD;\n" + - " END IF;\n" + - " IF (NEW.latitude IS NULL OR NEW.longitude IS NULL) THEN\n" + - " -- on ne calcule pas le point postgis si au moins une des -- coordonnees n est pas renseignee\n" + - " RAISE NOTICE ''No latitude or longitude, can not compute postgis field for id % '', NEW.topiaId;\n" + - " NEW.the_geom := NULL;\n" + - " return NEW;\n" + - " END IF;\n" + - " IF (TG_OP = ''UPDATE'' AND NEW.latitude = OLD.latitude AND NEW.longitude = OLD.longitude)\n" + - " THEN\n" + - " -- on ne calcule pas le point postgis si les coordonnées n''ont pas changées\n" + - " return NEW;\n" + - " END IF;\n" + - " RAISE NOTICE ''Will compute the_geom for harbour % - latitude % and longitude %'', NEW.topiaId, NEW.latitude, NEW.longitude;\n" + - " -- affectation du point\n" + - " NEW.the_geom := ST_SetSRID(ST_MakePoint(NEW.longitude,NEW.latitude), 4326);\n" + - " RAISE NOTICE ''Computed for harbour % latitude % and longitude %, the_geom %'', NEW.topiaId, NEW.latitude, NEW.longitude, NEW.the_geom;\n" + - " RETURN NEW;\n" + - "END\n" + - "'\n" + - "LANGUAGE 'plpgsql';"); - addScript("00", "fix_trigger", queries); - } - super.prepareMigrationScript(topiaSqlSupport, queries, showSql, showProgression); - } } } View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/806b917739053ab6fc380af64a5… --- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/806b917739053ab6fc380af64a5… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][pages] Site checkin for project ObServe :: Pom
by Tony CHEMIT 04 May '18

04 May '18
Tony CHEMIT pushed to branch pages at ultreiaio / ird-observe Commits: 80c8a1eb by 166231 at 2018-05-04T09:55:19Z Site checkin for project ObServe :: Pom - - - - - 3 changed files: - changelog.html - dev-activity.html - file-activity.html Changes: ===================================== changelog.html ===================================== The diff for this file was not included because it is too large. ===================================== dev-activity.html ===================================== --- a/dev-activity.html +++ b/dev-activity.html @@ -92,7 +92,7 @@ <h2><a name="Developer_Activity_Report"></a>Developer Activity Report</h2> <div class="section"> <h3><a name="Changes_between_2018-04-04_and_2018-05-05"></a>Changes between 2018-04-04 and 2018-05-05</h3> -<p>Total commits: 48<br />Total number of files changed: 2370</p> +<p>Total commits: 53<br />Total number of files changed: 2370</p> <table border="0" class="table table-striped"> <tr class="a"> <th>Developer</th> @@ -100,7 +100,7 @@ <th>Total Number of Files Changed</th></tr> <tr class="b"> <td>Tony CHEMIT &lt;dev(a)tchemit.fr&gt;</td> -<td>48</td> +<td>53</td> <td>2370</td></tr></table></div></div> </div> </div> ===================================== file-activity.html ===================================== --- a/file-activity.html +++ b/file-activity.html @@ -92,50 +92,50 @@ <h2><a name="File_Activity_Report"></a>File Activity Report</h2> <div class="section"> <h3><a name="Changes_between_2018-04-04_and_2018-05-05"></a>Changes between 2018-04-04 and 2018-05-05</h3> -<p>Total commits: 48<br />Total number of files changed: 2370</p> +<p>Total commits: 53<br />Total number of files changed: 2370</p> <table border="0" class="table table-striped"> <tr class="a"> <th>Filename</th> <th>Number of Times Changed</th></tr> <tr class="b"> <td><a class="externalLink" href="https://gitlab.com/ultreiaio/ird-observe/pom.xml"><b>pom.xml</b></a> </td> -<td>18</td></tr> +<td>23</td></tr> <tr class="a"> <td><a class="externalLink" href="https://gitlab.com/ultreiaio/ird-observe/client-configuration/pom.xml">client-configuration/<b>pom.xml</b></a> </td> -<td>14</td></tr> +<td>19</td></tr> <tr class="b"> <td><a class="externalLink" href="https://gitlab.com/ultreiaio/ird-observe/client/pom.xml">client/<b>pom.xml</b></a> </td> -<td>13</td></tr> +<td>18</td></tr> <tr class="a"> <td><a class="externalLink" href="https://gitlab.com/ultreiaio/ird-observe/dto/pom.xml">dto/<b>pom.xml</b></a> </td> -<td>13</td></tr> +<td>18</td></tr> <tr class="b"> <td><a class="externalLink" href="https://gitlab.com/ultreiaio/ird-observe/server/pom.xml">server/<b>pom.xml</b></a> </td> -<td>12</td></tr> +<td>17</td></tr> <tr class="a"> <td><a class="externalLink" href="https://gitlab.com/ultreiaio/ird-observe/server-configuration/pom.xml">server-configuration/<b>pom.xml</b></a> </td> -<td>11</td></tr> +<td>16</td></tr> <tr class="b"> <td><a class="externalLink" href="https://gitlab.com/ultreiaio/ird-observe/services/pom.xml">services/<b>pom.xml</b></a> </td> -<td>11</td></tr> +<td>16</td></tr> <tr class="a"> <td><a class="externalLink" href="https://gitlab.com/ultreiaio/ird-observe/observe/pom.xml">observe/<b>pom.xml</b></a> </td> -<td>10</td></tr> +<td>15</td></tr> <tr class="b"> <td><a class="externalLink" href="https://gitlab.com/ultreiaio/ird-observe/persistence/pom.xml">persistence/<b>pom.xml</b></a> </td> -<td>10</td></tr> +<td>15</td></tr> <tr class="a"> <td><a class="externalLink" href="https://gitlab.com/ultreiaio/ird-observe/services-client/pom.xml">services-client/<b>pom.xml</b></a> </td> -<td>10</td></tr> +<td>15</td></tr> <tr class="b"> <td><a class="externalLink" href="https://gitlab.com/ultreiaio/ird-observe/services-local/pom.xml">services-local/<b>pom.xml</b></a> </td> -<td>10</td></tr> +<td>15</td></tr> <tr class="a"> <td><a class="externalLink" href="https://gitlab.com/ultreiaio/ird-observe/test/pom.xml">test/<b>pom.xml</b></a> </td> -<td>10</td></tr> +<td>15</td></tr> <tr class="b"> <td><a class="externalLink" href="https://gitlab.com/ultreiaio/ird-observe/validation/pom.xml">validation/<b>pom.xml</b></a> </td> -<td>10</td></tr> +<td>15</td></tr> <tr class="a"> <td><a class="externalLink" href="https://gitlab.com/ultreiaio/ird-observe/services-local/src/test/java/fr/ir…">services-local/src/test/java/fr/ird/observe/services/local/service/actions/validate/<b>ValidateServiceLocalTest.java</b></a> </td> <td>7</td></tr> @@ -143,20 +143,20 @@ <td><a class="externalLink" href="https://gitlab.com/ultreiaio/ird-observe/test/src/main/java/fr/ird/observe/…">test/src/main/java/fr/ird/observe/test/<b>ObserveFixtures.java</b></a> </td> <td>7</td></tr> <tr class="a"> -<td><a class="externalLink" href="https://gitlab.com/ultreiaio/ird-observe/test/src/main/resources/db/7.2/dat…">test/src/main/resources/db/7.2/<b>dataForTestLongline.sql.gz</b></a> </td> +<td><a class="externalLink" href="https://gitlab.com/ultreiaio/ird-observe/persistence/src/main/java/fr/ird/o…">persistence/src/main/java/fr/ird/observe/persistence/migration/<b>DataSourceMigrationForVersion_7_2.java</b></a> </td> <td>6</td></tr> <tr class="b"> -<td><a class="externalLink" href="https://gitlab.com/ultreiaio/ird-observe/test/src/main/resources/db/7.2/dat…">test/src/main/resources/db/7.2/<b>dataForTestSeine.sql.gz</b></a> </td> +<td><a class="externalLink" href="https://gitlab.com/ultreiaio/ird-observe/test/src/main/resources/db/7.2/dat…">test/src/main/resources/db/7.2/<b>dataForTestLongline.sql.gz</b></a> </td> <td>6</td></tr> <tr class="a"> -<td><a class="externalLink" href="https://gitlab.com/ultreiaio/ird-observe/test/src/main/resources/db/7.2/ref…">test/src/main/resources/db/7.2/<b>referentiel.sql.gz</b></a> </td> +<td><a class="externalLink" href="https://gitlab.com/ultreiaio/ird-observe/test/src/main/resources/db/7.2/dat…">test/src/main/resources/db/7.2/<b>dataForTestSeine.sql.gz</b></a> </td> <td>6</td></tr> <tr class="b"> -<td><a class="externalLink" href="https://gitlab.com/ultreiaio/ird-observe/client/src/main/java/fr/ird/observ…">client/src/main/java/fr/ird/observe/client/ui/<b>ObserveMainUIInitializer.java</b></a> </td> +<td><a class="externalLink" href="https://gitlab.com/ultreiaio/ird-observe/test/src/main/resources/db/7.2/ref…">test/src/main/resources/db/7.2/<b>referentiel.sql.gz</b></a> </td> <td>6</td></tr> <tr class="a"> -<td><a class="externalLink" href="https://gitlab.com/ultreiaio/ird-observe/persistence/src/main/java/fr/ird/o…">persistence/src/main/java/fr/ird/observe/persistence/migration/<b>DataSourceMigrationForVersion_7_2.java</b></a> </td> -<td>5</td></tr> +<td><a class="externalLink" href="https://gitlab.com/ultreiaio/ird-observe/client/src/main/java/fr/ird/observ…">client/src/main/java/fr/ird/observe/client/ui/<b>ObserveMainUIInitializer.java</b></a> </td> +<td>6</td></tr> <tr class="b"> <td><a class="externalLink" href="https://gitlab.com/ultreiaio/ird-observe/client/src/main/java/fr/ird/observ…">client/src/main/java/fr/ird/observe/client/ui/content/<b>ContentUIInitializer.java</b></a> </td> <td>5</td></tr> View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/80c8a1ebbdf756689a5f59462dc… --- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/80c8a1ebbdf756689a5f59462dc… You're receiving this email because of your account on gitlab.com.
1 0
0 0
  • ← Newer
  • 1
  • ...
  • 411
  • 412
  • 413
  • 414
  • 415
  • 416
  • 417
  • ...
  • 720
  • Older →

HyperKitty Powered by HyperKitty version 1.3.12.