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

August 2017

  • 1 participants
  • 135 discussions
[Git][ultreiaio/ird-observe][develop] La synchro avancée de référentiel ne fonctionne plus (See #841)
by Tony CHEMIT 15 Aug '17

15 Aug '17
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: c4301b93 by Tony CHEMIT at 2017-08-15T15:42:56+02:00 La synchro avancée de référentiel ne fonctionne plus (See #841) - - - - - 2 changed files: - client/src/main/java/fr/ird/observe/client/ui/storage/StorageUIHandler.java - services/src/main/java/fr/ird/observe/services/service/DataSourceService.java Changes: ===================================== client/src/main/java/fr/ird/observe/client/ui/storage/StorageUIHandler.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/ui/storage/StorageUIHandler.java +++ b/client/src/main/java/fr/ird/observe/client/ui/storage/StorageUIHandler.java @@ -792,7 +792,9 @@ public class StorageUIHandler implements UIHandler<StorageUI> { Boolean apply = (Boolean) abstractButton.getClientProperty("apply"); if (apply != null && apply) { SwingUtilities.invokeLater(() -> { - ui.getNextAction().doClick(); + if (ui.getModel().getNextStep()!=null) { + ui.getNextAction().doClick(); + } ui.getApplyAction().doClick(); }); } ===================================== services/src/main/java/fr/ird/observe/services/service/DataSourceService.java ===================================== --- a/services/src/main/java/fr/ird/observe/services/service/DataSourceService.java +++ b/services/src/main/java/fr/ird/observe/services/service/DataSourceService.java @@ -63,7 +63,7 @@ public interface DataSourceService extends ObserveService, Closeable { @Get(addAuthtoken = false) void migrateData(ObserveDataSourceConfiguration dataSourceConfiguration); - @Get(addAuthtoken = false) + @Get Set<Class<? extends ReferentialDto>> getReferentialTypesInShell(); @Get View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/c4301b93939f06d5737dcd0febf… --- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/c4301b93939f06d5737dcd0febf… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][develop] Mauvais repositionnement de l'écran lors du changement du type d'opération FOB (See #831)
by Tony CHEMIT 14 Aug '17

14 Aug '17
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: fe160eca by Tony CHEMIT at 2017-08-14T17:28:21+02:00 Mauvais repositionnement de l&#39;écran lors du changement du type d&#39;opération FOB (See #831) - - - - - 4 changed files: - client/src/main/java/fr/ird/observe/client/ui/ObserveMainUIHandler.java - client/src/main/java/fr/ird/observe/client/ui/content/impl/seine/FloatingObjectTransmittingBuoyOperationUI.jaxx - client/src/main/java/fr/ird/observe/client/ui/content/impl/seine/FloatingObjectTransmittingBuoyOperationUIHandler.java - client/src/main/java/fr/ird/observe/client/ui/storage/StorageUIHandler.java Changes: ===================================== client/src/main/java/fr/ird/observe/client/ui/ObserveMainUIHandler.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/ui/ObserveMainUIHandler.java +++ b/client/src/main/java/fr/ird/observe/client/ui/ObserveMainUIHandler.java @@ -54,4 +54,9 @@ public class ObserveMainUIHandler implements UIHandler<ObserveMainUI> { int dividerLocation = Math.min(splitpane2.getMinimumDividerLocation() + plusSize, splitpane2.getMaximumDividerLocation() - 100); splitpane2.setDividerLocation(dividerLocation); } + + public void updateContentSizeForce(int plusSize) { + JSplitPane splitpane2 = ui.getSplitpane2(); + splitpane2.setDividerLocation(plusSize); + } } ===================================== client/src/main/java/fr/ird/observe/client/ui/content/impl/seine/FloatingObjectTransmittingBuoyOperationUI.jaxx ===================================== --- a/client/src/main/java/fr/ird/observe/client/ui/content/impl/seine/FloatingObjectTransmittingBuoyOperationUI.jaxx +++ b/client/src/main/java/fr/ird/observe/client/ui/content/impl/seine/FloatingObjectTransmittingBuoyOperationUI.jaxx @@ -100,7 +100,7 @@ </row> </Table> - <JPanel id="transmittingBuoys" constraints="BorderLayout.CENTER"/> + <JPanel id="transmittingBuoys" layout='{new GridLayout(0,1)}'/> <JComment id='comment' constraints="BorderLayout.SOUTH"/> @@ -122,7 +122,7 @@ <JLabel id='noBaliseEditor'/> - <Table id='transmittingBuoy1Editor' fill="horizontal"> + <Table id='transmittingBuoy1Editor' fill="both"> <row> <cell anchor='west'> <JLabel id='transmittingBuoyOperation1Label'/> @@ -180,7 +180,7 @@ </row> </Table> - <Table id='transmittingBuoy2Editor' fill="horizontal"> + <Table id='transmittingBuoy2Editor' fill="both"> <row> <cell anchor='west'> <JLabel id='transmittingBuoyOperation2Label'/> ===================================== client/src/main/java/fr/ird/observe/client/ui/content/impl/seine/FloatingObjectTransmittingBuoyOperationUIHandler.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/ui/content/impl/seine/FloatingObjectTransmittingBuoyOperationUIHandler.java +++ b/client/src/main/java/fr/ird/observe/client/ui/content/impl/seine/FloatingObjectTransmittingBuoyOperationUIHandler.java @@ -22,6 +22,7 @@ package fr.ird.observe.client.ui.content.impl.seine; import com.google.common.collect.Lists; +import fr.ird.observe.client.ObserveSwingApplicationContext; import fr.ird.observe.client.db.ClientDataContext; import fr.ird.observe.client.db.ObserveSwingDataSource; import fr.ird.observe.client.db.constants.DataContextType; @@ -40,10 +41,10 @@ import fr.ird.observe.services.dto.seine.FloatingObjectTransmittingBuoyDto; import fr.ird.observe.services.dto.seine.FloatingObjectTransmittingBuoyHelper; import fr.ird.observe.services.dto.seine.TransmittingBuoyDto; import fr.ird.observe.services.dto.seine.TransmittingBuoyHelper; -import java.awt.GridLayout; import java.util.ArrayList; import java.util.Collection; import java.util.List; +import javax.swing.JComponent; import javax.swing.JPanel; import javax.swing.SwingUtilities; import org.apache.commons.logging.Log; @@ -255,15 +256,16 @@ public class FloatingObjectTransmittingBuoyOperationUIHandler extends ContentUIH TransmittingBuoyDto transmittingBuoy; ReferentialReference<TransmittingBuoyOperationDto> objectOperation; + JComponent focusOwner = null; switch (nbBalises) { case 0: // no balise - editorPanel.setLayout(new GridLayout()); editorPanel.add(ui.getNoBaliseEditor()); if (getModel().isEditing()) { ui.getValidatorBalise1().setBean(null); ui.getValidatorBalise2().setBean(null); } + focusOwner = ui.getComment().getComment2(); break; case 1: @@ -274,12 +276,13 @@ public class FloatingObjectTransmittingBuoyOperationUIHandler extends ContentUIH bindEditBalise(ui.getTransmittingBuoy1(), objectOperation, transmittingBuoy); - editorPanel.setLayout(new GridLayout(1, 0)); editorPanel.add(ui.getTransmittingBuoy1Editor()); if (getModel().isEditing()) { ui.getValidatorBalise1().setBean(ui.getTransmittingBuoy1()); ui.getValidatorBalise2().setBean(null); } + + focusOwner = ui.getTransmittingBuoyType1(); break; case 2: @@ -292,20 +295,24 @@ public class FloatingObjectTransmittingBuoyOperationUIHandler extends ContentUIH objectOperation = reset ? getObjectOperation(operations, codeOperations[1]) : null; bindEditBalise(ui.getTransmittingBuoy2(), objectOperation, transmittingBuoy); - editorPanel.setLayout(new GridLayout(2, 0)); editorPanel.add(ui.getTransmittingBuoy1Editor()); editorPanel.add(ui.getTransmittingBuoy2Editor()); if (getModel().isEditing()) { ui.getValidatorBalise1().setBean(ui.getTransmittingBuoy1()); ui.getValidatorBalise2().setBean(ui.getTransmittingBuoy2()); } + focusOwner = ui.getTransmittingBuoyType1(); break; } + JComponent finalFocusOwner = focusOwner; SwingUtilities.invokeLater(() -> { - // recalcul de la disposition - getUi().revalidate(); + ObserveSwingApplicationContext.get().getMainUI().getHandler().updateContentSizeForce(600); + + if (finalFocusOwner != null) { + UIHelper.askFocus(finalFocusOwner); + } }); } ===================================== client/src/main/java/fr/ird/observe/client/ui/storage/StorageUIHandler.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/ui/storage/StorageUIHandler.java +++ b/client/src/main/java/fr/ird/observe/client/ui/storage/StorageUIHandler.java @@ -28,11 +28,11 @@ import fr.ird.observe.client.ObserveRunner; import fr.ird.observe.client.ObserveSwingApplicationContext; import fr.ird.observe.client.ObserveTextGenerator; import fr.ird.observe.client.configuration.ClientConfig; +import fr.ird.observe.client.constants.ConnexionStatus; import fr.ird.observe.client.constants.CreationMode; import fr.ird.observe.client.constants.DbMode; import fr.ird.observe.client.db.ObserveDataSourcesManager; import fr.ird.observe.client.db.ObserveSwingDataSource; -import fr.ird.observe.client.constants.ConnexionStatus; import fr.ird.observe.client.ui.ObserveKeyStrokes; import fr.ird.observe.client.ui.ObserveMainUI; import fr.ird.observe.client.ui.UIHelper; @@ -791,8 +791,10 @@ public class StorageUIHandler implements UIHandler<StorageUI> { } Boolean apply = (Boolean) abstractButton.getClientProperty("apply"); if (apply != null && apply) { - SwingUtilities.invokeLater(ui.getNextAction()::doClick); - SwingUtilities.invokeLater(ui.getApplyAction()::doClick); + SwingUtilities.invokeLater(() -> { + ui.getNextAction().doClick(); + ui.getApplyAction().doClick(); + }); } } }; View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/fe160ecadc36da4d56a5f28794e… --- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/fe160ecadc36da4d56a5f28794e… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][develop] Amélioration présentation arbre de sélection (See #839)
by Tony CHEMIT 14 Aug '17

14 Aug '17
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: f41cf75b by Tony CHEMIT at 2017-08-14T16:14:08+02:00 Amélioration présentation arbre de sélection (See #839) - - - - - 1 changed file: - client/src/main/java/fr/ird/observe/client/ui/storage/tabs/SelectDataUI.jcss Changes: ===================================== client/src/main/java/fr/ird/observe/client/ui/storage/tabs/SelectDataUI.jcss ===================================== --- a/client/src/main/java/fr/ird/observe/client/ui/storage/tabs/SelectDataUI.jcss +++ b/client/src/main/java/fr/ird/observe/client/ui/storage/tabs/SelectDataUI.jcss @@ -32,7 +32,6 @@ rootVisible:false; largeModel:true; font-size:11; - showsRootHandles:false; toggleClickCount:100; } View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/f41cf75b7a498934d78bc3d07d1… --- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/f41cf75b7a498934d78bc3d07d1… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][develop] update license headers
by Tony CHEMIT 14 Aug '17

14 Aug '17
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: d58f7549 by Tony CHEMIT at 2017-08-14T16:10:34+02:00 update license headers - - - - - 5 changed files: - client/src/test/java/fr/ird/observe/client/ClientTestClassResource.java - client/src/test/java/fr/ird/observe/client/ClientTestMethodResource.java - client/src/test/java/fr/ird/observe/client/ClientTestSupport.java - client/src/test/java/fr/ird/observe/client/DataSourcesForTestManager.java - client/src/test/java/fr/ird/observe/client/ObserveTextGeneratorTest.java Changes: ===================================== client/src/test/java/fr/ird/observe/client/ClientTestClassResource.java ===================================== --- a/client/src/test/java/fr/ird/observe/client/ClientTestClassResource.java +++ b/client/src/test/java/fr/ird/observe/client/ClientTestClassResource.java @@ -2,7 +2,7 @@ package fr.ird.observe.client; /* * #%L - * ObServe :: Services ToPIA Implementation + * ObServe :: Client * %% * Copyright (C) 2008 - 2017 IRD, Code Lutin, Ultreia.io * %% ===================================== client/src/test/java/fr/ird/observe/client/ClientTestMethodResource.java ===================================== --- a/client/src/test/java/fr/ird/observe/client/ClientTestMethodResource.java +++ b/client/src/test/java/fr/ird/observe/client/ClientTestMethodResource.java @@ -2,7 +2,7 @@ package fr.ird.observe.client; /* * #%L - * ObServe :: Services ToPIA Implementation + * ObServe :: Client * %% * Copyright (C) 2008 - 2017 IRD, Code Lutin, Ultreia.io * %% ===================================== client/src/test/java/fr/ird/observe/client/ClientTestSupport.java ===================================== --- a/client/src/test/java/fr/ird/observe/client/ClientTestSupport.java +++ b/client/src/test/java/fr/ird/observe/client/ClientTestSupport.java @@ -2,7 +2,7 @@ package fr.ird.observe.client; /*- * #%L - * ObServe :: Services ToPIA Implementation + * ObServe :: Client * %% * Copyright (C) 2008 - 2017 IRD, Code Lutin, Ultreia.io * %% ===================================== client/src/test/java/fr/ird/observe/client/DataSourcesForTestManager.java ===================================== --- a/client/src/test/java/fr/ird/observe/client/DataSourcesForTestManager.java +++ b/client/src/test/java/fr/ird/observe/client/DataSourcesForTestManager.java @@ -2,7 +2,7 @@ package fr.ird.observe.client; /*- * #%L - * ObServe :: Services ToPIA Implementation + * ObServe :: Client * %% * Copyright (C) 2008 - 2017 IRD, Code Lutin, Ultreia.io * %% ===================================== client/src/test/java/fr/ird/observe/client/ObserveTextGeneratorTest.java ===================================== --- a/client/src/test/java/fr/ird/observe/client/ObserveTextGeneratorTest.java +++ b/client/src/test/java/fr/ird/observe/client/ObserveTextGeneratorTest.java @@ -1,5 +1,27 @@ package fr.ird.observe.client; +/*- + * #%L + * ObServe :: Client + * %% + * Copyright (C) 2008 - 2017 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 com.google.common.collect.ImmutableSet; import fr.ird.observe.client.db.ObserveSwingDataSource; import fr.ird.observe.client.ui.admin.validate.ValidateModel; @@ -54,4 +76,4 @@ public class ObserveTextGeneratorTest extends ClientTestSupport { } -} \ No newline at end of file +} View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/d58f7549936e85836b417bbc4b2… --- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/d58f7549936e85836b417bbc4b2… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][develop] Review validation report (need translations in ES and EN) (See #806)
by Tony CHEMIT 14 Aug '17

14 Aug '17
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: f098afe6 by Tony CHEMIT at 2017-08-14T16:09:05+02:00 Review validation report (need translations in ES and EN) (See #806) - - - - - 17 changed files: - client/pom.xml - + client/src/main/ftl/validationReport_en.ftl - + client/src/main/ftl/validationReport_es.ftl - + client/src/main/ftl/validationReport_fr.ftl - client/src/main/java/fr/ird/observe/client/ObserveRunner.java - client/src/main/java/fr/ird/observe/client/ObserveTextGenerator.java - client/src/main/java/fr/ird/observe/client/ui/admin/validate/ValidateEntityListCellRenderer.java - client/src/main/java/fr/ird/observe/client/ui/admin/validate/ValidateModel.java - client/src/main/java/fr/ird/observe/client/ui/admin/validate/ValidateUIHandler.java - + client/src/test/java/fr/ird/observe/client/ClientTestClassResource.java - + client/src/test/java/fr/ird/observe/client/ClientTestMethodResource.java - + client/src/test/java/fr/ird/observe/client/ClientTestSupport.java - + client/src/test/java/fr/ird/observe/client/DataSourcesForTestManager.java - + client/src/test/java/fr/ird/observe/client/ObserveTextGeneratorTest.java - client/src/test/java/fr/ird/observe/application/swing/ui/content/impl/longline/LonglineDetailCompositionValidatorServiceTest.java → client/src/test/java/fr/ird/observe/client/ui/content/impl/longline/LonglineDetailCompositionValidatorServiceTest.java - services/src/main/java/fr/ird/observe/services/service/actions/validate/ValidationResult.java - test/src/main/java/fr/ird/observe/test/TestClassResourceSupport.java Changes: ===================================== client/pom.xml ===================================== --- a/client/pom.xml +++ b/client/pom.xml @@ -348,6 +348,12 @@ <version>${project.version}</version> <scope>runtime</scope> </dependency> + <dependency> + <groupId>${project.groupId}</groupId> + <artifactId>test</artifactId> + <version>${project.version}</version> + <scope>test</scope> + </dependency> <!-- jaxx dependencies --> @@ -709,6 +715,7 @@ <template>dataSourceSelectModeResume</template> <template>initStorage</template> <template>storageModelDataSourceConfiguration</template> + <template>validationResult</template> </templateList> </configuration> </execution> ===================================== client/src/main/ftl/validationReport_en.ftl ===================================== --- /dev/null +++ b/client/src/main/ftl/validationReport_en.ftl @@ -0,0 +1,40 @@ +<html> +<body> +<b>#TODO</b> +<h1>Rapport de validation</h1> + +<h2>Configuration</h2> + +<ul> + <li>Rapport de validation généré le ${now}</li> + <li>Scopes : ${scopes?join(", ")}</li> + <li>Context : ${contextName}</li> +</ul> + +<#list messageTypes as type> +<h2>${decorateType(type)}</h2> +<table> + <thead> + <tr> + <th>Identifiant</th> + <th>Libellé</th> + <th>Scope</th> + <th>Champs</th> + <th>Message</th> + </tr> + </thead> + <#list validationResult.getDtosForType(type) as dto> + <#list validationResult.getMessagesForId(dto.id) as message> + <tr> + <td>${dto.id}</td> + <td>${decorateReference(dto.reference)}</td> + <td>${message.scope}</td> + <td>${decorateProperty(message.fieldName)}</td> + <td>${message.message}</td> + </tr> + </#list> + </#list> +</table> +</#list> +</body> +</html> ===================================== client/src/main/ftl/validationReport_es.ftl ===================================== --- /dev/null +++ b/client/src/main/ftl/validationReport_es.ftl @@ -0,0 +1,40 @@ +<html> +<body> +<b>#TODO</b> +<h1>Rapport de validation</h1> + +<h2>Configuration</h2> + +<ul> + <li>Rapport de validation généré le ${now}</li> + <li>Scopes : ${scopes?join(", ")}</li> + <li>Context : ${contextName}</li> +</ul> + +<#list messageTypes as type> +<h2>${decorateType(type)}</h2> +<table> + <thead> + <tr> + <th>Identifiant</th> + <th>Libellé</th> + <th>Scope</th> + <th>Champs</th> + <th>Message</th> + </tr> + </thead> + <#list validationResult.getDtosForType(type) as dto> + <#list validationResult.getMessagesForId(dto.id) as message> + <tr> + <td>${dto.id}</td> + <td>${decorateReference(dto.reference)}</td> + <td>${message.scope}</td> + <td>${decorateProperty(message.fieldName)}</td> + <td>${message.message}</td> + </tr> + </#list> + </#list> +</table> +</#list> +</body> +</html> ===================================== client/src/main/ftl/validationReport_fr.ftl ===================================== --- /dev/null +++ b/client/src/main/ftl/validationReport_fr.ftl @@ -0,0 +1,40 @@ +<html> +<body> + +<h1>Rapport de validation</h1> + +<h2>Configuration</h2> + +<ul> + <li>Rapport de validation généré le ${now}</li> + <li>Scopes : ${scopes?join(", ")}</li> + <li>Context : ${contextName}</li> +</ul> + +<#list messageTypes as type> +<h2>${decorateType(type)}</h2> +<table> + <thead> + <tr> + <th>Identifiant</th> + <th>Libellé</th> + <th>Scope</th> + <th>Champs</th> + <th>Message</th> + </tr> + </thead> + <#list validationResult.getDtosForType(type) as dto> + <#list validationResult.getMessagesForId(dto.id) as message> + <tr> + <td>${dto.id}</td> + <td>${decorateReference(dto.reference)}</td> + <td>${message.scope}</td> + <td>${decorateProperty(message.fieldName)}</td> + <td>${message.message}</td> + </tr> + </#list> + </#list> +</table> +</#list> +</body> +</html> ===================================== client/src/main/java/fr/ird/observe/client/ObserveRunner.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/ObserveRunner.java +++ b/client/src/main/java/fr/ird/observe/client/ObserveRunner.java @@ -87,6 +87,10 @@ public abstract class ObserveRunner extends ApplicationRunner { private static ObserveResourceManager resourceManager; + public static void setResourceManager(ObserveResourceManager resourceManager) { + ObserveRunner.resourceManager = resourceManager; + } + private static ObserveActionExecutor actionExecutor; public static ObserveRunner getRunner() { @@ -481,7 +485,7 @@ public abstract class ObserveRunner extends ApplicationRunner { } } - private void initI18n(ClientConfig config) { + public static void initI18n(ClientConfig config) { I18n.close(); ===================================== client/src/main/java/fr/ird/observe/client/ObserveTextGenerator.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/ObserveTextGenerator.java +++ b/client/src/main/java/fr/ird/observe/client/ObserveTextGenerator.java @@ -25,9 +25,11 @@ package fr.ird.observe.client; import fr.ird.observe.client.configuration.ClientConfig; import fr.ird.observe.client.db.ObserveDataSourcesManager; import fr.ird.observe.client.db.ObserveSwingDataSource; +import fr.ird.observe.client.ui.admin.validate.ValidateModel; import fr.ird.observe.client.ui.storage.StorageUIModel; import fr.ird.observe.services.configuration.ObserveDataSourceConfiguration; import fr.ird.observe.services.configuration.ObserveDataSourceInformation; +import fr.ird.observe.services.service.actions.validate.ValidationResult; import freemarker.cache.FileTemplateLoader; import freemarker.template.Configuration; import freemarker.template.Template; @@ -64,6 +66,8 @@ public class ObserveTextGenerator { private static final String INIT_STORAGE_TEMPLATE = "initStorage.ftl"; + private static final String VALIDATION_REPORT_TEMPLATE = "validationReport.ftl"; + private final Configuration freemarkerConfiguration; private final ClientConfig observeConfiguration; @@ -115,6 +119,10 @@ public class ObserveTextGenerator { return generateHtml(INIT_STORAGE_TEMPLATE, model); } + public String getValidationReport(ValidateModel model) { + return generateHtml(VALIDATION_REPORT_TEMPLATE, model); + } + protected String generateHtml(String templateName, Object model) { return generateHtml(observeConfiguration.getLocale(), templateName, model); } ===================================== client/src/main/java/fr/ird/observe/client/ui/admin/validate/ValidateEntityListCellRenderer.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/ui/admin/validate/ValidateEntityListCellRenderer.java +++ b/client/src/main/java/fr/ird/observe/client/ui/admin/validate/ValidateEntityListCellRenderer.java @@ -21,12 +21,12 @@ */ package fr.ird.observe.client.ui.admin.validate; -import com.google.common.collect.ImmutableSet; import fr.ird.observe.client.ObserveSwingApplicationContext; import fr.ird.observe.services.decoration.DecoratorService; import fr.ird.observe.services.decoration.ObserveI18nDecoratorHelper; import fr.ird.observe.services.dto.reference.AbstractReference; import fr.ird.observe.services.dto.reference.ReferentialReference; +import fr.ird.observe.services.service.actions.validate.ValidationResult; import java.awt.Component; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; @@ -61,15 +61,15 @@ public class ValidateEntityListCellRenderer extends DefaultListCellRenderer impl this.model = model; renderCache = new HashMap<>(); // on écoute les modifications de messages sur le model - this.model.addPropertyChangeListener(ValidateModel.PROPERTY_MESSAGES, this); + this.model.addPropertyChangeListener(ValidateModel.PROPERTY_VALIDATION_RESULT, this); } @Override public void propertyChange(PropertyChangeEvent evt) { - ImmutableSet value = (ImmutableSet) evt.getNewValue(); + ValidationResult value = (ValidationResult) evt.getNewValue(); if (log.isDebugEnabled()) { - log.debug(String.format("messages changed : %d, rebuild render cache", value == null ? 0 : value.size())); + log.debug(String.format("messages changed : %d, rebuild render cache", value == null ? 0 : value.getData().size())); } synchronized (renderCache) { renderCache.clear(); ===================================== client/src/main/java/fr/ird/observe/client/ui/admin/validate/ValidateModel.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/ui/admin/validate/ValidateModel.java +++ b/client/src/main/java/fr/ird/observe/client/ui/admin/validate/ValidateModel.java @@ -30,29 +30,36 @@ import fr.ird.observe.client.ui.admin.AdminActionModel; import fr.ird.observe.client.ui.admin.AdminStep; import fr.ird.observe.client.ui.admin.AdminUIModel; import fr.ird.observe.client.ui.util.ProgressModel; +import fr.ird.observe.services.decoration.DecoratorService; +import fr.ird.observe.services.decoration.ObserveI18nDecoratorHelper; import fr.ird.observe.services.dto.reference.AbstractReference; +import fr.ird.observe.services.dto.reference.DataReference; import fr.ird.observe.services.dto.referential.ReferentialDto; +import fr.ird.observe.services.service.actions.validate.ValidateService; +import fr.ird.observe.services.service.actions.validate.ValidationResult; import fr.ird.observe.services.service.actions.validate.ValidationResultDto; import fr.ird.observe.services.service.actions.validate.ValidationResultDtoMessage; -import fr.ird.observe.services.service.actions.validate.ValidateService; import fr.ird.observe.services.validation.ValidatorDto; +import java.beans.Introspector; import java.beans.PropertyChangeListener; import java.io.File; -import java.util.Comparator; +import java.text.SimpleDateFormat; import java.util.Date; import java.util.EnumMap; import java.util.EnumSet; import java.util.LinkedHashSet; -import java.util.List; import java.util.Set; -import java.util.TreeSet; import java.util.stream.Collectors; +import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.mutable.MutableInt; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.jaxx.runtime.swing.wizard.ext.WizardState; import org.nuiton.validator.NuitonValidatorScope; + +import static org.nuiton.i18n.I18n.t; + /** * Modele pour preparer une validation de donnees d'une base. * @@ -66,7 +73,8 @@ public class ValidateModel extends AdminActionModel { static final String PROPERTY_MODEL_MODE = "modelMode"; private static final String PROPERTY_GENERATE_REPORT = "generateReport"; private static final String PROPERTY_REPORT_FILE = "reportFile"; - static final String PROPERTY_MESSAGES = "messages"; + + static final String PROPERTY_VALIDATION_RESULT = "validationResult"; /** le pattern du fichier de rapport après validation */ private static final String REPORT_PATTERN = "report-%1$tF--%1$tk-%1$tM-%1$tS.txt"; @@ -95,18 +103,16 @@ public class ValidateModel extends AdminActionModel { /** les validateurs selectionnées */ private Set<ValidatorDto> validators; - /** le dictionnaire des paths d'entites detectees */ - private final Set<ValidationResultDto> messages; - private final Set<Class> messagesTypes; - private final ProgressModel progressModel = new ProgressModel(); + private ValidationResult<?> validationResult; + private DecoratorService decoratorService; + public ValidateModel() { super(AdminStep.VALIDATE); scopes = EnumSet.noneOf(NuitonValidatorScope.class); this.messagesTypes = new LinkedHashSet<>(); - this.messages = new TreeSet<>(Comparator.comparing(m -> m.getReference().getId())); } @@ -184,36 +190,41 @@ public class ValidateModel extends AdminActionModel { return validators; } - public void setMessages(ImmutableSet<ValidationResultDto> messages) { - this.messages.clear(); + @SuppressWarnings("unused") + public ValidationResult<?> getValidationResult() { + return validationResult; + } + + public void setValidationResult(ValidationResult<?> validationResult) { + this.validationResult = validationResult; this.messagesTypes.clear(); - this.messages.addAll(messages); - Set<Class> collect = messages.stream().map(m -> m.getReference().getType()).collect(Collectors.toSet()); - this.messagesTypes.addAll(collect); - firePropertyChange(PROPERTY_MESSAGES, messages); + if (validationResult != null) { + this.messagesTypes.addAll(validationResult.getTypes()); + } + firePropertyChange(PROPERTY_VALIDATION_RESULT, null, validationResult); } - Set<Class> getMessageTypes() { + public Set<Class> getMessageTypes() { return messagesTypes; } - List<AbstractReference> getMessagesDto(Class dtoType) { + public ImmutableSet<ValidationResultDto> getMessagesDto(Class dtoType) { - return messages.stream().filter(m -> dtoType.equals(m.getReference().getType())).map(ValidationResultDto::getReference).collect(Collectors.toList()); + return validationResult == null ? ImmutableSet.of() : validationResult.getDtosForType(dtoType); } - public Set<ValidationResultDto> getMessages() { - return messages; + public ImmutableSet<ValidationResultDto> getMessages() { + return validationResult == null ? ImmutableSet.of() : validationResult.getData(); } - List<ValidationResultDtoMessage> getMessages(AbstractReference<?> dtoType) { + public ImmutableSet<ValidationResultDtoMessage> getMessages(AbstractReference<?> dtoType) { - return messages.stream().filter(m -> dtoType.equals(m.getReference())).flatMap(m -> m.getMessages().stream()).collect(Collectors.toList()); + return validationResult == null ? ImmutableSet.of() : validationResult.getMessagesForId(dtoType.getId()); } - void addScope(NuitonValidatorScope scope) { + public void addScope(NuitonValidatorScope scope) { scopes.add(scope); validators = null; firePropertyChange(PROPERTY_SCOPES, null, scopes); @@ -228,9 +239,6 @@ public class ValidateModel extends AdminActionModel { @Override public void destroy() { super.destroy(); - if (messages != null) { - setMessages(ImmutableSet.of()); - } if (validators != null) { validators = null; } @@ -270,6 +278,12 @@ public class ValidateModel extends AdminActionModel { setReportFile(reportFile); } + private static final SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyy HH:mm"); + + public String getNow() { + return df.format(new Date()); + } + public boolean validate(AdminUIModel uiModel) { return uiModel.validate(AdminStep.SELECT_DATA) && uiModel.getStepState(step) == WizardState.SUCCESSED; } @@ -294,8 +308,8 @@ public class ValidateModel extends AdminActionModel { } - boolean withoutMessages() { - return messages.isEmpty(); + public boolean withoutMessages() { + return validationResult == null || validationResult.getData().isEmpty(); } EnumMap<NuitonValidatorScope, Integer> getScopesCount(AbstractReference<?> value) { @@ -305,10 +319,14 @@ public class ValidateModel extends AdminActionModel { temp.put(scope, new MutableInt()); } - messages.stream() - .filter(m -> value.equals(m.getReference())).flatMap(m -> m.getMessages().stream()) - .map(ValidationResultDtoMessage::getScope) - .forEach(s -> temp.get(s).incrementAndGet()); + if (validationResult != null) { + getMessages().stream() + .filter(m -> value.equals(m.getReference())).flatMap(m -> m.getMessages().stream()) + .map(ValidationResultDtoMessage::getScope) + .forEach(s -> temp.get(s).incrementAndGet()); + + } + EnumMap<NuitonValidatorScope, Integer> result = new EnumMap<>(NuitonValidatorScope.class); temp.entrySet().stream() @@ -316,4 +334,24 @@ public class ValidateModel extends AdminActionModel { .forEach(entry -> result.put(entry.getKey(), entry.getValue().toInteger())); return result; } + + @SuppressWarnings({"unchecked", "unused"}) + public String decorateReference(AbstractReference reference) { + if (reference instanceof DataReference<?>) { + return decoratorService.getDataReferenceDecorator(reference.getType()).toString(reference); + } + return decoratorService.getReferentialReferenceDecorator(reference.getType()).toString(reference); + } + + public String decorateType(Class type) { + return t(ObserveI18nDecoratorHelper.getTypeI18nKey(type)); + } + + public String decorateProperty(String propertyName) { + return t(ObserveI18nDecoratorHelper.getPropertyI18nKey(propertyName)); + } + + public void setDecoratorService(DecoratorService decoratorService) { + this.decoratorService = decoratorService; + } } ===================================== client/src/main/java/fr/ird/observe/client/ui/admin/validate/ValidateUIHandler.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/ui/admin/validate/ValidateUIHandler.java +++ b/client/src/main/java/fr/ird/observe/client/ui/admin/validate/ValidateUIHandler.java @@ -37,16 +37,16 @@ import fr.ird.observe.client.ui.admin.config.SelectDataUI; import fr.ird.observe.client.ui.tree.selection.SelectionTreeModel; import fr.ird.observe.client.ui.util.ObserveValidationMessageTableRenderer; import fr.ird.observe.client.ui.util.ProgressModel; -import fr.ird.observe.services.decoration.DecoratorService; import fr.ird.observe.services.decoration.ObserveI18nDecoratorHelper; +import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.reference.AbstractReference; import fr.ird.observe.services.dto.reference.DataReference; import fr.ird.observe.services.service.actions.validate.DataValidationRequest; import fr.ird.observe.services.service.actions.validate.ReferentialValidationRequest; -import fr.ird.observe.services.service.actions.validate.ValidationResultDtoMessage; -import fr.ird.observe.services.service.actions.validate.ValidationResultDto; import fr.ird.observe.services.service.actions.validate.ValidateService; import fr.ird.observe.services.service.actions.validate.ValidationResult; +import fr.ird.observe.services.service.actions.validate.ValidationResultDto; +import fr.ird.observe.services.service.actions.validate.ValidationResultDtoMessage; import fr.ird.observe.services.validation.ValidatorDto; import java.io.File; import java.io.IOException; @@ -54,6 +54,7 @@ import java.util.Collections; import java.util.Date; import java.util.List; import java.util.Set; +import java.util.stream.Collectors; import javax.swing.DefaultListModel; import javax.swing.JCheckBox; import javax.swing.JTable; @@ -229,12 +230,12 @@ public class ValidateUIHandler extends AdminTabUIHandler<ValidateUI> implements Class<?> type = (Class<?>) o; - List<AbstractReference> refs = tabUI.getStepModel().getMessagesDto(type); - for (AbstractReference<?> ref : Iterables.limit(refs, 100)) { + ImmutableSet<ValidationResultDto> refs = tabUI.getStepModel().getMessagesDto(type); + for (ValidationResultDto ref : Iterables.limit(refs, 100)) { if (log.isDebugEnabled()) { log.debug("add ref = " + ref); } - tabUI.refModel.addElement(ref); + tabUI.refModel.addElement(ref.getReference()); } tabUI.refList.setSelectedIndex(0); } finally { @@ -268,7 +269,7 @@ public class ValidateUIHandler extends AdminTabUIHandler<ValidateUI> implements log.debug(ref); } - List<ValidationResultDtoMessage> messages = tabUI.getStepModel().getMessages(ref); + ImmutableSet<ValidationResultDtoMessage> messages = tabUI.getStepModel().getMessages(ref); tabUI.messagesModel.setMessages(messages); @@ -349,7 +350,7 @@ public class ValidateUIHandler extends AdminTabUIHandler<ValidateUI> implements AdminUIModel model = ui.getModel(); // on vide les anciens messages ValidateModel stepModel = model.getValidateModel(); - stepModel.setMessages(ImmutableSet.of()); + stepModel.setValidationResult(null); SelectionTreeModel dataModel = model.getSelectDataModel().getSelectionDataModel(); @@ -380,6 +381,8 @@ public class ValidateUIHandler extends AdminTabUIHandler<ValidateUI> implements ImmutableSet<NuitonValidatorScope> scopes = ImmutableSet.copyOf(stepModel.getScopes()); String contextName = stepModel.getContextName(); + ValidationResult<?> result = null; + if (dataModel.isLoadReferential()) { // validation des referentiels selectionnes @@ -391,11 +394,17 @@ public class ValidateUIHandler extends AdminTabUIHandler<ValidateUI> implements progressModel.incrementsCurrentStep(); - ValidationResult<ReferentialValidationRequest> result = validateService.validateReferential(request); + result = validateService.validateReferential(request); - messages.addAll(result.getData()); } else if (dataModel.isUseData()) { + DataValidationRequest mainRequest = new DataValidationRequest(); + mainRequest.setDataIds(ImmutableSet.copyOf(dataModel.getSelectedData().stream().map(DataReference::getId).collect(Collectors.toSet()))); + mainRequest.setScopes(scopes); + mainRequest.setValidationContext(contextName); + + ValidationResult.Builder<DataValidationRequest> resultBuilder = ValidationResult.builder(ReferentialLocale.valueOf(ObserveSwingApplicationContext.get().getConfig().getDbLocale()), mainRequest); + for (DataReference<?> dataReference : dataModel.getSelectedData()) { String id = dataReference.getId(); @@ -407,17 +416,20 @@ public class ValidateUIHandler extends AdminTabUIHandler<ValidateUI> implements sendMessage(t("observe.actions.validate.message.validate.trip", getDecoratorService().getDataReferenceDecorator(dataReference.getType()).toString(dataReference))); progressModel.incrementsCurrentStep(); - ValidationResult<DataValidationRequest> result = validateService.validateData(request); - messages.addAll(result.getData()); + + result = validateService.validateData(request); + resultBuilder.addMessages(result.getData()); } + result = resultBuilder.build(); + } else throw new IllegalStateException(); progressModel.incrementsCurrentStep(); dataSourceToValidate.close(); - stepModel.setMessages(messages.build()); + stepModel.setValidationResult(result); } @@ -445,60 +457,18 @@ public class ValidateUIHandler extends AdminTabUIHandler<ValidateUI> implements } } - //FIXME A remplacer par une template private void generateReportFile(ValidateModel validationModel) throws IOException { File reportFile = validationModel.getReportFile(); if (log.isInfoEnabled()) { log.info("save report in " + reportFile); } - DecoratorService service = getDecoratorService(); - StringBuilder builder = new StringBuilder(); - builder.append(LINE).append('\n'); + validationModel.setDecoratorService(getDecoratorService()); - builder.append(t("observe.actions.validate.report.title", new Date())).append('\n'); - builder.append(t("observe.actions.validate.report.scopes", validationModel.getScopes())).append('\n'); - builder.append(t("observe.actions.validate.report.contextName", validationModel.getContextName())).append('\n'); + String content = ObserveSwingApplicationContext.get().getTextGenerator().getValidationReport(validationModel); -// Map<Class<? extends IdDto>, ValidateResultForDtoType<? extends IdDto>> messages = validationModel.getMessages(); -// -// builder.append(t("observe.actions.validate.report.entities.with.messages", messages.size())).append('\n'); -// builder.append(LINE).append('\n').append('\n'); -// -// for (ValidateResultForDtoType<?> validateResultForDtoType : messages.values()) { -// -// ImmutableSet<? extends ValidateResultForDto<?>> validateResultForHelper = validateResultForDtoType.getValidateResultForDto(); -// for (ValidateResultForDto<?> validateResultForDto : validateResultForHelper) { -// AbstractReference<?> referenceDto = validateResultForDto.getReference(); -// -// String refStr = service.getReferenceDecorator(referenceDto.getType()).toString(referenceDto); -// -// Set<ValidationResultDtoMessage> refMessages = validateResultForDto.getMessages(); -// -// EnumSet<NuitonValidatorScope> scopes = getScopes(validateResultForDto); -// -// builder.append(t("observe.actions.validate.report.entity", referenceDto.getId(), refStr, refMessages.size(), scopes)).append('\n'); -// for (NuitonValidatorScope scope : scopes) { -// -// List<ValidationResultDtoMessage> messagesByScope = scopeMessageFilter(scope, validateResultForDto); -// -// for (ValidationResultDtoMessage message : messagesByScope) { -// -// builder.append(message.getScope()).append(" - ").append(message.getMessage()).append('\n'); -// -// } -// -// builder.append('\n'); -// } -// -// } -// builder.append(LINE).append('\n').append('\n'); -// } - - String content = builder.toString(); - if (log.isInfoEnabled()) { - log.info(content); - } + log.debug(content); + addMessage(AdminStep.SHOW_RESUME, content); FileUtils.write(reportFile, content, Charsets.UTF_8.name()); } ===================================== client/src/test/java/fr/ird/observe/client/ClientTestClassResource.java ===================================== --- /dev/null +++ b/client/src/test/java/fr/ird/observe/client/ClientTestClassResource.java @@ -0,0 +1,172 @@ +package fr.ird.observe.client; + +/* + * #%L + * ObServe :: Services ToPIA Implementation + * %% + * Copyright (C) 2008 - 2017 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 fr.ird.observe.client.configuration.ClientConfig; +import fr.ird.observe.client.db.ObserveSwingDataSource; +import fr.ird.observe.services.configuration.topia.ObserveDataSourceConfigurationTopiaH2; +import fr.ird.observe.services.dto.source.DataSourceCreateConfigurationDto; +import fr.ird.observe.services.dto.source.DataSourceCreateWithNoReferentialImportException; +import fr.ird.observe.services.dto.source.IncompatibleDataSourceCreateConfigurationException; +import fr.ird.observe.services.service.BabModelVersionException; +import fr.ird.observe.services.service.DatabaseConnexionNotAuthorizedException; +import fr.ird.observe.services.service.DatabaseNotFoundException; +import fr.ird.observe.test.ObserveTestConfiguration; +import fr.ird.observe.test.ObserveTestResources; +import fr.ird.observe.test.TestClassResourceSupport; +import fr.ird.observe.test.spi.DatabaseClassifier; +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; +import java.util.Locale; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.junit.runner.Description; +import org.nuiton.i18n.I18n; +import org.nuiton.i18n.init.ClassPathI18nInitializer; +import org.nuiton.version.Version; + +/** + * Created on 18/08/15. + * + * @author Tony Chemit - dev(a)tchemit.fr + */ +public class ClientTestClassResource extends TestClassResourceSupport { + + /** Logger. */ + private static final Log log = LogFactory.getLog(ClientTestClassResource.class); + + private final DataSourcesForTestManager dataSourcesForTestManager; + private ObserveSwingApplicationContext applicationContext; + + public ClientTestClassResource() { + this(DatabaseClassifier.DEFAULT); + } + + public ClientTestClassResource(DatabaseClassifier classifier) { + super(classifier); + + dataSourcesForTestManager = new DataSourcesForTestManager(); + } + + public DataSourcesForTestManager getDataSourcesForTestManager() { + return dataSourcesForTestManager; + } + + public ObserveSwingApplicationContext getApplicationContext() { + return applicationContext; + } + + public ObserveSwingDataSource createDataSourceConfiguration(Version dbVersion, String dbName, File targetPath, String login, char[] password) throws DataSourceCreateWithNoReferentialImportException, IOException, IncompatibleDataSourceCreateConfigurationException, DatabaseNotFoundException, DatabaseConnexionNotAuthorizedException, BabModelVersionException { + + ObserveDataSourceConfigurationTopiaH2 sharedDatabaseConfiguration = dataSourcesForTestManager.createSharedDataSourceConfigurationH2(dbVersion, dbName, login, password); + + File sharedDatabaseFile = sharedDatabaseConfiguration.getDatabaseFile(); + + ObserveDataSourceConfigurationTopiaH2 dataSourceConfiguration; + + ObserveSwingDataSource observeSwingDataSource; + boolean sharedDatabaseExist = sharedDatabaseFile.exists(); + if (!sharedDatabaseExist) { + + if (log.isInfoEnabled()) { + log.info("Create shared database: " + dbVersion.toString() + "/" + dbName + " to " + sharedDatabaseFile); + } + + DataSourceCreateConfigurationDto createConfiguration = new DataSourceCreateConfigurationDto(); + + String scriptPath = "/db/" + dbVersion.toString() + "/" + dbName + ".sql.gz"; + + byte[] databaseToImportContent = ObserveTestResources.getResourceContent(scriptPath); + + createConfiguration.setImportDatabase(databaseToImportContent); + + observeSwingDataSource = applicationContext.getDataSourcesManager().newDataSource(sharedDatabaseConfiguration); + observeSwingDataSource.create(createConfiguration); + + } + + if (targetPath == null) { + + dataSourceConfiguration = sharedDatabaseConfiguration; + + observeSwingDataSource = applicationContext.getDataSourcesManager().newDataSource(sharedDatabaseConfiguration); + + } else { + + // Use a copy + + dataSourceConfiguration = dataSourcesForTestManager.createDataSourceConfigurationH2(targetPath, dbVersion, dbName, login, password); + File databaseFileTarget = dataSourceConfiguration.getDatabaseFile(); + + if (log.isInfoEnabled()) { + log.info("Copy database: " + dbVersion.toString() + "/" + dbName + " to " + databaseFileTarget); + } + Files.createDirectories(databaseFileTarget.toPath().getParent()); + Files.copy(sharedDatabaseFile.toPath(), databaseFileTarget.toPath()); + + observeSwingDataSource = applicationContext.getDataSourcesManager().newDataSource(sharedDatabaseConfiguration); + + } + + dataSourceConfiguration.setModelVersion(ObserveTestConfiguration.getModelVersion()); + + if (!observeSwingDataSource.isOpen()) { + observeSwingDataSource.open(); + } + return observeSwingDataSource; + + } + + @Override + protected void before(Description description) throws Exception { + super.before(description); + + if (ObserveSwingApplicationContext.isInit()) { + + ObserveSwingApplicationContext.get().close(); + } + + ClientConfig config = new ClientConfig(); + + config.setDataDirectory(getTestDirectory()); + config.initConfig(new ObserveResourceManager().getResource(ObserveResourceManager.Resource.application)); + + ObserveRunner.setResourceManager(new ObserveResourceManager()); + ObserveRunner.initI18n(config); + +// config.getTemplatesDirectory().mkdirs(); + + applicationContext = new ObserveSwingApplicationContext(config); + + I18n.init(new ClassPathI18nInitializer(), Locale.FRANCE); + + } + + protected void after(Description description) throws IOException { + + super.after(description); + applicationContext.close(); + } + +} ===================================== client/src/test/java/fr/ird/observe/client/ClientTestMethodResource.java ===================================== --- /dev/null +++ b/client/src/test/java/fr/ird/observe/client/ClientTestMethodResource.java @@ -0,0 +1,78 @@ +package fr.ird.observe.client; + +/* + * #%L + * ObServe :: Services ToPIA Implementation + * %% + * Copyright (C) 2008 - 2017 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 fr.ird.observe.client.db.ObserveSwingDataSource; +import fr.ird.observe.services.configuration.topia.ObserveDataSourceConfigurationTopiaH2; +import fr.ird.observe.test.ObserveTestConfiguration; +import fr.ird.observe.test.TestMethodResourceSupport; +import fr.ird.observe.test.spi.CopyDatabaseConfiguration; +import java.io.File; +import java.util.Objects; +import org.junit.runner.Description; + + +/** + * Created on 18/08/15. + * + * @author Tony Chemit - dev(a)tchemit.fr + */ +public class ClientTestMethodResource extends TestMethodResourceSupport<ClientTestClassResource> { + + private ObserveSwingDataSource dataSource; + + public ClientTestMethodResource(ClientTestClassResource clientTestClassResource) { + super(clientTestClassResource); + } + + public ObserveSwingDataSource getDataSource() { + return dataSource; + } + + public ObserveDataSourceConfigurationTopiaH2 createDataSourceConfigurationH2(Class<?> testClass, String dbName) { + + return testClassResource.getDataSourcesForTestManager().createDataSourceConfigurationH2( + getTestDirectory(), testClass, dbName, getLogin(), getPassword()); + + } + + @Override + protected void before(Description description) throws Throwable { + + super.before(description); + + Objects.requireNonNull(getDbName(), "Pas de nom de base spécifié"); + Objects.requireNonNull(getDbVersion(), "Pas de version de base spécifié"); + Objects.requireNonNull(getLogin(), "Pas de login spécifié"); + Objects.requireNonNull(getPassword(), "Pas de password spécifié"); + + CopyDatabaseConfiguration copyDatabaseConfiguration = ObserveTestConfiguration.getCopyDatabaseConfigurationAnnotation(testClassMethod, testClassResource.getClassifier()); + boolean useSharedDatabase = copyDatabaseConfiguration == null; + + File databasePath = useSharedDatabase ? null : getTestDirectory().toPath().resolve("localDb").toFile(); + + dataSource = testClassResource.createDataSourceConfiguration(getDbVersion(), getDbName(), databasePath, getLogin(), getPassword()); + + } + +} ===================================== client/src/test/java/fr/ird/observe/client/ClientTestSupport.java ===================================== --- /dev/null +++ b/client/src/test/java/fr/ird/observe/client/ClientTestSupport.java @@ -0,0 +1,51 @@ +package fr.ird.observe.client; + +/*- + * #%L + * ObServe :: Services ToPIA Implementation + * %% + * Copyright (C) 2008 - 2017 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 fr.ird.observe.test.DatabaseName; +import fr.ird.observe.test.ObserveTestConfiguration; +import fr.ird.observe.test.spi.DatabaseLoginConfiguration; +import fr.ird.observe.test.spi.DatabaseNameConfiguration; +import fr.ird.observe.test.spi.DatabasePasswordConfiguration; +import fr.ird.observe.test.spi.DatabaseVersionConfiguration; +import org.junit.ClassRule; +import org.junit.Rule; + +/** + * Created on 26/12/15. + * + * @author Tony Chemit - dev(a)tchemit.fr + */ +(a)DatabaseNameConfiguration(DatabaseName.referentiel) +@DatabaseVersionConfiguration(ObserveTestConfiguration.MODEL_VERSION) +@DatabaseLoginConfiguration() +@DatabasePasswordConfiguration(ObserveTestConfiguration.H2_PASSWORD) +public abstract class ClientTestSupport { + + @ClassRule + public static final ClientTestClassResource TEST_CLASS_RESOURCE = new ClientTestClassResource(); + + @Rule + public final ClientTestMethodResource testMethodResource = new ClientTestMethodResource(TEST_CLASS_RESOURCE); + +} ===================================== client/src/test/java/fr/ird/observe/client/DataSourcesForTestManager.java ===================================== --- /dev/null +++ b/client/src/test/java/fr/ird/observe/client/DataSourcesForTestManager.java @@ -0,0 +1,136 @@ +package fr.ird.observe.client; + +/*- + * #%L + * ObServe :: Services ToPIA Implementation + * %% + * Copyright (C) 2008 - 2017 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 fr.ird.observe.persistence.migration.ObserveMigrationConfigurationProvider; +import fr.ird.observe.services.configuration.topia.ObserveDataSourceConfigurationTopiaH2; +import fr.ird.observe.test.TestHelper; +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.nuiton.version.Version; + +/** + * Created on 26/12/15. + * + * @author Tony Chemit - dev(a)tchemit.fr + */ +public class DataSourcesForTestManager { + + /** Logger. */ + private static final Log log = LogFactory.getLog(DataSourcesForTestManager.class); + + /** + * Root path of shared databases. + */ + private static Path sharedDatabasesRootPath; + + private Path getSharedDatabasesRootPath() { + if (sharedDatabasesRootPath == null) { + sharedDatabasesRootPath = TestHelper.getCommonsDir().toPath(); + } + return sharedDatabasesRootPath; + } + + private Path getDatabasePath(Path rootPath, Version dbVersion, String dbName) { + return rootPath.resolve(dbVersion.getValidName()).resolve(dbName); + } + + public ObserveDataSourceConfigurationTopiaH2 createSharedDataSourceConfigurationH2(Version dbVersion, String dbName, String login, char[] password) { + Path databasePath = getDatabasePath(getSharedDatabasesRootPath(), dbVersion, dbName); + return createDataSourceConfigurationH2(databasePath.toFile(), dbVersion, dbName, login, password); + } + + public ObserveDataSourceConfigurationTopiaH2 createDataSourceConfigurationH2(File localDbFile, Version dbVersion, String dbName, String login, char[] password) { + + ObserveDataSourceConfigurationTopiaH2 configurationTopiaH2 = new ObserveDataSourceConfigurationTopiaH2(); + + if (log.isDebugEnabled()) { + log.debug("db directory: " + localDbFile); + } + configurationTopiaH2.setLabel("Commons database#" + dbName); + configurationTopiaH2.setUsername(login); + configurationTopiaH2.setPassword(password); + configurationTopiaH2.setDirectory(localDbFile); + configurationTopiaH2.setDbName("obstuna"); + configurationTopiaH2.setAutoMigrate(true); + configurationTopiaH2.setShowMigrationProgression(true); + configurationTopiaH2.setShowMigrationSql(true); + configurationTopiaH2.setModelVersion(dbVersion); + return configurationTopiaH2; + + } + + public ObserveDataSourceConfigurationTopiaH2 createDataSourceConfigurationH2(File testDirectory, Class<?> testClass, String dbName, String login, char[] password) { + + ObserveDataSourceConfigurationTopiaH2 configurationTopiaH2 = new ObserveDataSourceConfigurationTopiaH2(); + + File localDbFile = new File(testDirectory, dbName); + + if (log.isInfoEnabled()) { + log.info("db directory: " + localDbFile); + } + configurationTopiaH2.setLabel(testClass.getSimpleName() + "#" + dbName); + configurationTopiaH2.setUsername(login); + configurationTopiaH2.setPassword(password); + configurationTopiaH2.setDirectory(localDbFile); + configurationTopiaH2.setDbName("obstuna"); + configurationTopiaH2.setAutoMigrate(true); + configurationTopiaH2.setModelVersion(ObserveMigrationConfigurationProvider.get().getLastVersion()); + return configurationTopiaH2; + + } + + public void clear() throws IOException { + Path sharedDatabasesRootPath = getSharedDatabasesRootPath(); + log.info(String.format("Clear share databases directory: %s", sharedDatabasesRootPath)); + if (Files.exists(sharedDatabasesRootPath)) { + Files.newDirectoryStream(sharedDatabasesRootPath).forEach(this::deleteDirectory); + } + } + + private void deleteDirectory(Path directory) { + try { + log.debug(String.format("Delete directory: %s", directory)); + Files.walk(directory).filter(f->!f.equals(directory)).forEach(f -> { + try { + if (Files.isDirectory(f)) { + deleteDirectory(f); + return; + } + log.debug(String.format("Delete file: %s", f)); + Files.delete(f); + } catch (IOException e) { + throw new IllegalStateException(e); + } + }); + + Files.delete(directory); + } catch (IOException e) { + throw new IllegalStateException(e); + } + } +} ===================================== client/src/test/java/fr/ird/observe/client/ObserveTextGeneratorTest.java ===================================== --- /dev/null +++ b/client/src/test/java/fr/ird/observe/client/ObserveTextGeneratorTest.java @@ -0,0 +1,57 @@ +package fr.ird.observe.client; + +import com.google.common.collect.ImmutableSet; +import fr.ird.observe.client.db.ObserveSwingDataSource; +import fr.ird.observe.client.ui.admin.validate.ValidateModel; +import fr.ird.observe.services.service.actions.validate.DataValidationRequest; +import fr.ird.observe.services.service.actions.validate.ValidateService; +import fr.ird.observe.services.service.actions.validate.ValidationResult; +import fr.ird.observe.test.DatabaseName; +import fr.ird.observe.test.ObserveFixtures; +import fr.ird.observe.test.spi.DatabaseNameConfiguration; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.junit.Assert; +import org.junit.Test; +import org.nuiton.validator.NuitonValidatorScope; + +/** + * Created by tchemit on 14/08/17. + * + * @author Tony Chemit - dev(a)tchemit.fr + */ +public class ObserveTextGeneratorTest extends ClientTestSupport { + + /** Logger. */ + private static final Log log = LogFactory.getLog(ObserveTextGeneratorTest.class); + + @DatabaseNameConfiguration(DatabaseName.dataForTestSeine) + @Test + public void getValidationReport() { + + ObserveSwingDataSource dataSource = testMethodResource.getDataSource(); + + DataValidationRequest request = new DataValidationRequest(); + request.setDataIds(ImmutableSet.of(ObserveFixtures.TRIP_SEINE_ID_1)); + request.setScopes(ImmutableSet.of(NuitonValidatorScope.ERROR, NuitonValidatorScope.WARNING)); + request.setValidationContext(ValidateService.UPDATE_VALIDATION_CONTEXT); + request.setValidationSpeedEnable(true); + request.setValidationLengthWeightEnable(true); + request.setValidationSpeedMaxValue(TEST_CLASS_RESOURCE.getApplicationContext().getConfig().getValidationSpeedMaxValue()); + + ValidationResult<DataValidationRequest> result = dataSource.getValidateService().validateData(request); + + ValidateModel model = new ValidateModel(); + model.setDecoratorService(TEST_CLASS_RESOURCE.getApplicationContext().getDecoratorService()); + model.setValidationResult(result); + model.setContextName(request.getValidationContext()); + model.addScope(NuitonValidatorScope.ERROR); + model.addScope(NuitonValidatorScope.WARNING); + model.setContextName(request.getValidationContext()); + String content = TEST_CLASS_RESOURCE.getApplicationContext().getTextGenerator().getValidationReport(model); + Assert.assertNotNull(content); + log.info(content); + } + + +} \ No newline at end of file ===================================== client/src/test/java/fr/ird/observe/application/swing/ui/content/impl/longline/LonglineDetailCompositionValidatorServiceTest.java → client/src/test/java/fr/ird/observe/client/ui/content/impl/longline/LonglineDetailCompositionValidatorServiceTest.java ===================================== ===================================== services/src/main/java/fr/ird/observe/services/service/actions/validate/ValidationResult.java ===================================== --- a/services/src/main/java/fr/ird/observe/services/service/actions/validate/ValidationResult.java +++ b/services/src/main/java/fr/ird/observe/services/service/actions/validate/ValidationResult.java @@ -77,6 +77,10 @@ public class ValidationResult<R extends ValidationRequest> implements ObserveDto return ImmutableSet.copyOf(data.stream().filter(d -> type.equals(d.getType())).flatMap(d -> d.getMessages().stream()).collect(Collectors.toSet())); } + public ImmutableSet<ValidationResultDto> getDtosForType(Class type) { + return ImmutableSet.copyOf(data.stream().filter(d -> type.equals(d.getType())).collect(Collectors.toSet())); + } + public ImmutableSet<ValidationResultDtoMessage> getMessagesForId(String id) { return ImmutableSet.copyOf(data.stream().filter(d -> id.equals(d.getId())).flatMap(d -> d.getMessages().stream()).collect(Collectors.toSet())); } @@ -148,5 +152,11 @@ public class ValidationResult<R extends ValidationRequest> implements ObserveDto public Collection<ValidationResultDtoMessage> get(String id) { return data.keySet().stream().filter(d -> id.equals(d.getId())).findFirst().map(data::get).orElse(Collections.emptyList()); } + + public void addMessages(ImmutableSet<ValidationResultDto> data) { + for (ValidationResultDto datum : data) { + this.data.putAll(datum.getReference(), datum.getMessages()); + } + } } } ===================================== test/src/main/java/fr/ird/observe/test/TestClassResourceSupport.java ===================================== --- a/test/src/main/java/fr/ird/observe/test/TestClassResourceSupport.java +++ b/test/src/main/java/fr/ird/observe/test/TestClassResourceSupport.java @@ -98,6 +98,10 @@ public abstract class TestClassResourceSupport implements TestRule { return classifier; } + public File getTestDirectory() { + return testDirectory; + } + public String getServerDbName() { return serverDbName; } @@ -118,7 +122,7 @@ public abstract class TestClassResourceSupport implements TestRule { }; } - protected void before(Description description) { + protected void before(Description description) throws Exception{ Class<?> testClass = description.getTestClass(); if (log.isDebugEnabled()) { View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/f098afe65c8054ecad21c8570b7… --- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/f098afe65c8054ecad21c8570b7… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][develop] Fix NPe when not using Main ui
by Tony CHEMIT 13 Aug '17

13 Aug '17
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: 049a5c9c by Tony CHEMIT at 2017-08-13T18:28:27+02:00 Fix NPe when not using Main ui - - - - - 1 changed file: - client/src/main/java/fr/ird/observe/client/ui/storage/StorageUIBlockingLayerUI.java Changes: ===================================== client/src/main/java/fr/ird/observe/client/ui/storage/StorageUIBlockingLayerUI.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/ui/storage/StorageUIBlockingLayerUI.java +++ b/client/src/main/java/fr/ird/observe/client/ui/storage/StorageUIBlockingLayerUI.java @@ -80,7 +80,9 @@ public class StorageUIBlockingLayerUI extends BlockingLayerUI { if (log.isDebugEnabled()) { log.debug("Enter in formula zone: " + e); } - ObserveSwingApplicationContext.get().getMainUI().getModel().setFocusOnNavigation(false); + if (ObserveSwingApplicationContext.get().getMainUI() != null) { + ObserveSwingApplicationContext.get().getMainUI().getModel().setFocusOnNavigation(false); + } } super.processMouseEvent(e, l); } View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/049a5c9cc3357cf51a490d7bc39… --- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/049a5c9cc3357cf51a490d7bc39… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][develop] Curiosité d'affichage dans l'assistant de sélection des marées (See #846)
by Tony CHEMIT 13 Aug '17

13 Aug '17
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: 38d23171 by Tony CHEMIT at 2017-08-13T17:19:54+02:00 Curiosité d&#39;affichage dans l&#39;assistant de sélection des marées (See #846) - - - - - 1 changed file: - client/src/main/java/fr/ird/observe/client/ui/tree/selection/SelectionTreeCellRenderer.java Changes: ===================================== client/src/main/java/fr/ird/observe/client/ui/tree/selection/SelectionTreeCellRenderer.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/ui/tree/selection/SelectionTreeCellRenderer.java +++ b/client/src/main/java/fr/ird/observe/client/ui/tree/selection/SelectionTreeCellRenderer.java @@ -27,6 +27,7 @@ import fr.ird.observe.client.ui.tree.selection.nodes.TripLonglineSelectionTreeNo import fr.ird.observe.client.ui.tree.selection.nodes.TripSeineSelectionTreeNode; import java.awt.BorderLayout; import java.awt.Component; +import java.awt.Dimension; import javax.swing.Icon; import javax.swing.JCheckBox; import javax.swing.JPanel; @@ -68,6 +69,7 @@ public class SelectionTreeCellRenderer extends DefaultXTreeCellRenderer { setToolTipText(((TripLonglineSelectionTreeNode) node).getToolTipText()); } selected.setSelected(node.isSelected()); + panel.setPreferredSize(new Dimension(getPreferredSize().width + 20, getPreferredSize().height + 2)); return panel; } View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/38d2317109faa9ca9a2ec9f51d1… --- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/38d2317109faa9ca9a2ec9f51d1… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][develop] Problème des caractères accentués, le retour (See #838)
by Tony CHEMIT 13 Aug '17

13 Aug '17
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: b78e4d30 by Tony CHEMIT at 2017-08-13T11:07:12+02:00 Problème des caractères accentués, le retour (See #838) - - - - - 1 changed file: - pom.xml Changes: ===================================== pom.xml ===================================== --- a/pom.xml +++ b/pom.xml @@ -176,7 +176,7 @@ <nuitonUtilsVersion>3.0-rc-18</nuitonUtilsVersion> <nuitonConverterVersion>1.0</nuitonConverterVersion> <nuitonVersionVersion>1.0-rc-2</nuitonVersionVersion> - <httpVersion>1.0.3-SNAPSHOT</httpVersion> + <httpVersion>1.0.3</httpVersion> <xworkVersion>2.3.33</xworkVersion> <flexmarkVersion>0.22.18</flexmarkVersion> <hibernateVersion>5.1.9.Final</hibernateVersion> View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/b78e4d30047caa00681ca52c388… --- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/b78e4d30047caa00681ca52c388… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][develop] 2 commits: [WIDOWS] Il arrive que l'application ne parvienne pas à supprimer le fichier i18n.zip (See #816)
by Tony CHEMIT 13 Aug '17

13 Aug '17
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: 29eb6b9f by Tony CHEMIT at 2017-08-13T10:47:28+02:00 [WIDOWS] Il arrive que l&#39;application ne parvienne pas à supprimer le fichier i18n.zip (See #816) - - - - - 4a50aad3 by Tony CHEMIT at 2017-08-13T10:47:32+02:00 Problème de la migration targetLength.sizeMeasureType (See #835 #570) - - - - - 8 changed files: - client/src/main/java/fr/ird/observe/client/ObserveRunner.java - persistence/src/main/java/fr/ird/observe/persistence/migration/DataSourceMigrationForVersion_6_0.java - persistence/src/main/resources/db/migration/6.0/08_evol_8390_measure_type-H2.sql - persistence/src/main/resources/db/migration/6.0/08_evol_8390_measure_type-PG.sql - persistence/src/main/resources/db/migration/6.0/18_evol_8404_lengthLengthParameter-common.sql - test/src/main/resources/db/6.902/dataForTestLongline.sql.gz - test/src/main/resources/db/6.902/dataForTestSeine.sql.gz - test/src/main/resources/db/6.902/referentiel.sql.gz Changes: ===================================== client/src/main/java/fr/ird/observe/client/ObserveRunner.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/ObserveRunner.java +++ b/client/src/main/java/fr/ird/observe/client/ObserveRunner.java @@ -505,7 +505,11 @@ public abstract class ObserveRunner extends ApplicationRunner { ZipUtil.uncompressFiltred(archive, directory.getParentFile()); } finally { if (Files.exists(archive.toPath())) { - Files.delete(archive.toPath()); + try { + Files.delete(archive.toPath()); + } catch (IOException e) { + log.error(String.format("Could not delete i18n archive %s", archive)); + } } } ===================================== 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 @@ -170,15 +170,15 @@ public class DataSourceMigrationForVersion_6_0 extends AbstractObserveMigrationC } }); - Set<String> unkownCodes = new HashSet<>(lengthMeasureTypes); - unkownCodes.removeAll(knownSizeMeasureTypeMapping.keySet()); - unkownCodes.removeAll(existingSizeMeasureMapping.keySet()); + Set<String> unknownCodes = new HashSet<>(lengthMeasureTypes); + unknownCodes.removeAll(knownSizeMeasureTypeMapping.keySet()); + unknownCodes.removeAll(existingSizeMeasureMapping.keySet()); - if (!unkownCodes.isEmpty()) { + if (!unknownCodes.isEmpty()) { // migration impossible, il manque encore des référentiels // ce cas ne devrait jamais arrivé - throw new IllegalStateException("Les types de mesure de taille pour les codes suivants :\n\t" + Joiner.on("\n\t").join(unkownCodes) + " sont requis pour la migration mais n'ont pas été trouvés en base."); + throw new IllegalStateException("Les types de mesure de taille pour les codes suivants :\n\t" + Joiner.on("\n\t").join(unknownCodes) + " sont requis pour la migration mais n'ont pas été trouvés en base."); } @@ -222,7 +222,7 @@ public class DataSourceMigrationForVersion_6_0 extends AbstractObserveMigrationC String newId = StringUtils.replace(oldId, ".longline", ""); queries.add(String.format("UPDATE observe_common.sizeMeasureType SET topiaId = '%s' WHERE topiaId = '%s'", newId, oldId)); queries.add(String.format("UPDATE observe_longline.sizeMeasure SET sizeMeasureType2 = '%s' WHERE sizeMeasureType = '%s'", newId, oldId)); - queries.add(String.format("UPDATE observe_seine.targetLength SET sizeMeasureType = '%s' WHERE sizeMeasureType = '%s'", newId, oldId)); + queries.add(String.format("UPDATE observe_seine.targetLength SET sizeMeasureType2 = '%s' WHERE sizeMeasureType = '%s'", newId, oldId)); } } { ===================================== persistence/src/main/resources/db/migration/6.0/08_evol_8390_measure_type-H2.sql ===================================== --- a/persistence/src/main/resources/db/migration/6.0/08_evol_8390_measure_type-H2.sql +++ b/persistence/src/main/resources/db/migration/6.0/08_evol_8390_measure_type-H2.sql @@ -30,11 +30,14 @@ UPDATE observe_common.LASTUPDATEDATE SET TYPE = 'fr.ird.observe.entities.referen ALTER TABLE observe_seine.targetlength ADD COLUMN sizeMeasureType VARCHAR(255); UPDATE observe_seine.targetlength SET sizeMeasureType = NULL WHERE measureType = 0; -UPDATE observe_seine.targetlength SET sizeMeasureType = (select topiaid from observe_longline.sizemeasuretype where code ='PDL') WHERE measureType = 1; -UPDATE observe_seine.targetlength SET sizeMeasureType =(select topiaid from observe_longline.sizemeasuretype where code='FL') WHERE measureType = 2; +UPDATE observe_seine.targetlength SET sizeMeasureType = (select topiaid from observe_longline.sizemeasuretype where topiaid='fr.ird.observe.entities.referentiel.longline.SizeMeasureType#1433499466774#0.529249255312607') WHERE measureType = 1; +UPDATE observe_seine.targetlength SET sizeMeasureType =(select topiaid from observe_longline.sizemeasuretype where topiaid ='fr.ird.observe.entities.referentiel.longline.SizeMeasureType#1433499465700#0.0902433863375336') WHERE measureType = 2; ALTER TABLE observe_seine.targetlength DROP COLUMN measureType; - ALTER TABLE observe_seine.targetlength ADD COLUMN sizeMeasureType2 VARCHAR(255); + +ALTER TABLE observe_seine.nontargetlength ADD COLUMN sizeMeasureType VARCHAR(255); +ALTER TABLE observe_seine.nontargetlength ADD CONSTRAINT FK_NON_TARGET_LENGTH_SIZE_MEASURE_TYPE FOREIGN KEY(sizeMeasureType) REFERENCES OBSERVE_COMMON.sizemeasuretype(topiaid); + ALTER TABLE observe_longline.sizeMeasure ADD COLUMN sizeMeasureType2 VARCHAR(255); ALTER TABLE observe_longline.weightMeasure ADD COLUMN weightMeasureType2 VARCHAR(255); ===================================== persistence/src/main/resources/db/migration/6.0/08_evol_8390_measure_type-PG.sql ===================================== --- a/persistence/src/main/resources/db/migration/6.0/08_evol_8390_measure_type-PG.sql +++ b/persistence/src/main/resources/db/migration/6.0/08_evol_8390_measure_type-PG.sql @@ -32,10 +32,13 @@ UPDATE observe_common.LASTUPDATEDATE SET TYPE = 'fr.ird.observe.entities.referen ALTER TABLE observe_seine.targetlength ADD COLUMN sizeMeasureType VARCHAR(255); UPDATE observe_seine.targetlength SET sizeMeasureType = NULL WHERE measureType = 0; -UPDATE observe_seine.targetlength SET sizeMeasureType = (select topiaid from observe_longline.sizemeasuretype where code='PDL') WHERE measureType = 1; -UPDATE observe_seine.targetlength SET sizeMeasureType =(select topiaid from observe_longline.sizemeasuretype where code='FL') WHERE measureType = 2; +UPDATE observe_seine.targetlength SET sizeMeasureType = (select topiaid from observe_longline.sizemeasuretype where topiaid='fr.ird.observe.entities.referentiel.longline.SizeMeasureType#1433499466774#0.529249255312607') WHERE measureType = 1; +UPDATE observe_seine.targetlength SET sizeMeasureType =(select topiaid from observe_longline.sizemeasuretype where topiaid ='fr.ird.observe.entities.referentiel.longline.SizeMeasureType#1433499465700#0.0902433863375336') WHERE measureType = 2; ALTER TABLE observe_seine.targetlength DROP COLUMN measureType CASCADE; - ALTER TABLE observe_seine.targetlength ADD COLUMN sizeMeasureType2 VARCHAR(255); + +ALTER TABLE observe_seine.nontargetlength ADD COLUMN sizeMeasureType VARCHAR(255); +ALTER TABLE observe_seine.nontargetlength ADD CONSTRAINT FK_NON_TARGET_LENGTH_SIZE_MEASURE_TYPE FOREIGN KEY(sizeMeasureType) REFERENCES OBSERVE_COMMON.sizemeasuretype(topiaid); + ALTER TABLE observe_longline.sizeMeasure ADD COLUMN sizeMeasureType2 VARCHAR(255); ALTER TABLE observe_longline.weightMeasure ADD COLUMN weightMeasureType2 VARCHAR(255); ===================================== persistence/src/main/resources/db/migration/6.0/18_evol_8404_lengthLengthParameter-common.sql ===================================== --- a/persistence/src/main/resources/db/migration/6.0/18_evol_8404_lengthLengthParameter-common.sql +++ b/persistence/src/main/resources/db/migration/6.0/18_evol_8404_lengthLengthParameter-common.sql @@ -19,9 +19,6 @@ -- <http://www.gnu.org/licenses/gpl-3.0.html>. -- #L% --- -ALTER TABLE observe_seine.nontargetlength ADD COLUMN sizeMeasureType VARCHAR(255); -ALTER TABLE observe_seine.nontargetlength ADD CONSTRAINT FK_NON_TARGET_LENGTH_SIZE_MEASURE_TYPE FOREIGN KEY(sizeMeasureType) REFERENCES OBSERVE_COMMON.sizemeasuretype(topiaid); - ALTER TABLE observe_common.lengthweightparameter ADD COLUMN sizeMeasureType VARCHAR(255); ALTER TABLE observe_common.lengthweightparameter ADD CONSTRAINT FK_LENGTH_WEIGHT_PARAMETER_SIZE_MEASURE_TYPE FOREIGN KEY(sizeMeasureType) REFERENCES OBSERVE_COMMON.sizemeasuretype(topiaid); UPDATE observe_common.lengthweightparameter SET sizeMeasureType = ( SELECT sizeMeasureType FROM observe_common.species s WHERE s.topiaId = species); ===================================== test/src/main/resources/db/6.902/dataForTestLongline.sql.gz ===================================== Binary files a/test/src/main/resources/db/6.902/dataForTestLongline.sql.gz and b/test/src/main/resources/db/6.902/dataForTestLongline.sql.gz differ ===================================== test/src/main/resources/db/6.902/dataForTestSeine.sql.gz ===================================== Binary files a/test/src/main/resources/db/6.902/dataForTestSeine.sql.gz and b/test/src/main/resources/db/6.902/dataForTestSeine.sql.gz differ ===================================== test/src/main/resources/db/6.902/referentiel.sql.gz ===================================== Binary files a/test/src/main/resources/db/6.902/referentiel.sql.gz and b/test/src/main/resources/db/6.902/referentiel.sql.gz differ View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/compare/0ab03958893fcf7798a15c7c7a… --- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/compare/0ab03958893fcf7798a15c7c7a… You're receiving this email because of your account on gitlab.com.
1 0
0 0
[Git][ultreiaio/ird-observe][develop] Problème de la migration targetLength.sizeMeasureType (See #835 #570)
by Tony CHEMIT 12 Aug '17

12 Aug '17
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: 0ab03958 by Tony CHEMIT at 2017-08-12T15:13:13+02:00 Problème de la migration targetLength.sizeMeasureType (See #835 #570) - - - - - 4 changed files: - persistence/src/main/java/fr/ird/observe/persistence/migration/DataSourceMigrationForVersion_6_0.java - persistence/src/main/resources/db/migration/6.0/08_evol_8390_measure_type-H2.sql - persistence/src/main/resources/db/migration/6.0/08_evol_8390_measure_type-PG.sql - persistence/src/main/resources/db/migration/6.0/18_evol_8404_lengthLengthParameter-common.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 @@ -170,15 +170,15 @@ public class DataSourceMigrationForVersion_6_0 extends AbstractObserveMigrationC } }); - Set<String> unkownCodes = new HashSet<>(lengthMeasureTypes); - unkownCodes.removeAll(knownSizeMeasureTypeMapping.keySet()); - unkownCodes.removeAll(existingSizeMeasureMapping.keySet()); + Set<String> unknownCodes = new HashSet<>(lengthMeasureTypes); + unknownCodes.removeAll(knownSizeMeasureTypeMapping.keySet()); + unknownCodes.removeAll(existingSizeMeasureMapping.keySet()); - if (!unkownCodes.isEmpty()) { + if (!unknownCodes.isEmpty()) { // migration impossible, il manque encore des référentiels // ce cas ne devrait jamais arrivé - throw new IllegalStateException("Les types de mesure de taille pour les codes suivants :\n\t" + Joiner.on("\n\t").join(unkownCodes) + " sont requis pour la migration mais n'ont pas été trouvés en base."); + throw new IllegalStateException("Les types de mesure de taille pour les codes suivants :\n\t" + Joiner.on("\n\t").join(unknownCodes) + " sont requis pour la migration mais n'ont pas été trouvés en base."); } @@ -222,7 +222,7 @@ public class DataSourceMigrationForVersion_6_0 extends AbstractObserveMigrationC String newId = StringUtils.replace(oldId, ".longline", ""); queries.add(String.format("UPDATE observe_common.sizeMeasureType SET topiaId = '%s' WHERE topiaId = '%s'", newId, oldId)); queries.add(String.format("UPDATE observe_longline.sizeMeasure SET sizeMeasureType2 = '%s' WHERE sizeMeasureType = '%s'", newId, oldId)); - queries.add(String.format("UPDATE observe_seine.targetLength SET sizeMeasureType = '%s' WHERE sizeMeasureType = '%s'", newId, oldId)); + queries.add(String.format("UPDATE observe_seine.targetLength SET sizeMeasureType2 = '%s' WHERE sizeMeasureType = '%s'", newId, oldId)); } } { ===================================== persistence/src/main/resources/db/migration/6.0/08_evol_8390_measure_type-H2.sql ===================================== --- a/persistence/src/main/resources/db/migration/6.0/08_evol_8390_measure_type-H2.sql +++ b/persistence/src/main/resources/db/migration/6.0/08_evol_8390_measure_type-H2.sql @@ -30,11 +30,14 @@ UPDATE observe_common.LASTUPDATEDATE SET TYPE = 'fr.ird.observe.entities.referen ALTER TABLE observe_seine.targetlength ADD COLUMN sizeMeasureType VARCHAR(255); UPDATE observe_seine.targetlength SET sizeMeasureType = NULL WHERE measureType = 0; -UPDATE observe_seine.targetlength SET sizeMeasureType = (select topiaid from observe_longline.sizemeasuretype where code ='PDL') WHERE measureType = 1; -UPDATE observe_seine.targetlength SET sizeMeasureType =(select topiaid from observe_longline.sizemeasuretype where code='FL') WHERE measureType = 2; +UPDATE observe_seine.targetlength SET sizeMeasureType = (select topiaid from observe_longline.sizemeasuretype where topiaid='fr.ird.observe.entities.referentiel.longline.SizeMeasureType#1433499466774#0.529249255312607') WHERE measureType = 1; +UPDATE observe_seine.targetlength SET sizeMeasureType =(select topiaid from observe_longline.sizemeasuretype where topiaid ='fr.ird.observe.entities.referentiel.longline.SizeMeasureType#1433499465700#0.0902433863375336') WHERE measureType = 2; ALTER TABLE observe_seine.targetlength DROP COLUMN measureType; - ALTER TABLE observe_seine.targetlength ADD COLUMN sizeMeasureType2 VARCHAR(255); + +ALTER TABLE observe_seine.nontargetlength ADD COLUMN sizeMeasureType VARCHAR(255); +ALTER TABLE observe_seine.nontargetlength ADD CONSTRAINT FK_NON_TARGET_LENGTH_SIZE_MEASURE_TYPE FOREIGN KEY(sizeMeasureType) REFERENCES OBSERVE_COMMON.sizemeasuretype(topiaid); + ALTER TABLE observe_longline.sizeMeasure ADD COLUMN sizeMeasureType2 VARCHAR(255); ALTER TABLE observe_longline.weightMeasure ADD COLUMN weightMeasureType2 VARCHAR(255); ===================================== persistence/src/main/resources/db/migration/6.0/08_evol_8390_measure_type-PG.sql ===================================== --- a/persistence/src/main/resources/db/migration/6.0/08_evol_8390_measure_type-PG.sql +++ b/persistence/src/main/resources/db/migration/6.0/08_evol_8390_measure_type-PG.sql @@ -32,10 +32,13 @@ UPDATE observe_common.LASTUPDATEDATE SET TYPE = 'fr.ird.observe.entities.referen ALTER TABLE observe_seine.targetlength ADD COLUMN sizeMeasureType VARCHAR(255); UPDATE observe_seine.targetlength SET sizeMeasureType = NULL WHERE measureType = 0; -UPDATE observe_seine.targetlength SET sizeMeasureType = (select topiaid from observe_longline.sizemeasuretype where code='PDL') WHERE measureType = 1; -UPDATE observe_seine.targetlength SET sizeMeasureType =(select topiaid from observe_longline.sizemeasuretype where code='FL') WHERE measureType = 2; +UPDATE observe_seine.targetlength SET sizeMeasureType = (select topiaid from observe_longline.sizemeasuretype where topiaid='fr.ird.observe.entities.referentiel.longline.SizeMeasureType#1433499466774#0.529249255312607') WHERE measureType = 1; +UPDATE observe_seine.targetlength SET sizeMeasureType =(select topiaid from observe_longline.sizemeasuretype where topiaid ='fr.ird.observe.entities.referentiel.longline.SizeMeasureType#1433499465700#0.0902433863375336') WHERE measureType = 2; ALTER TABLE observe_seine.targetlength DROP COLUMN measureType CASCADE; - ALTER TABLE observe_seine.targetlength ADD COLUMN sizeMeasureType2 VARCHAR(255); + +ALTER TABLE observe_seine.nontargetlength ADD COLUMN sizeMeasureType VARCHAR(255); +ALTER TABLE observe_seine.nontargetlength ADD CONSTRAINT FK_NON_TARGET_LENGTH_SIZE_MEASURE_TYPE FOREIGN KEY(sizeMeasureType) REFERENCES OBSERVE_COMMON.sizemeasuretype(topiaid); + ALTER TABLE observe_longline.sizeMeasure ADD COLUMN sizeMeasureType2 VARCHAR(255); ALTER TABLE observe_longline.weightMeasure ADD COLUMN weightMeasureType2 VARCHAR(255); ===================================== persistence/src/main/resources/db/migration/6.0/18_evol_8404_lengthLengthParameter-common.sql ===================================== --- a/persistence/src/main/resources/db/migration/6.0/18_evol_8404_lengthLengthParameter-common.sql +++ b/persistence/src/main/resources/db/migration/6.0/18_evol_8404_lengthLengthParameter-common.sql @@ -19,9 +19,6 @@ -- <http://www.gnu.org/licenses/gpl-3.0.html>. -- #L% --- -ALTER TABLE observe_seine.nontargetlength ADD COLUMN sizeMeasureType VARCHAR(255); -ALTER TABLE observe_seine.nontargetlength ADD CONSTRAINT FK_NON_TARGET_LENGTH_SIZE_MEASURE_TYPE FOREIGN KEY(sizeMeasureType) REFERENCES OBSERVE_COMMON.sizemeasuretype(topiaid); - ALTER TABLE observe_common.lengthweightparameter ADD COLUMN sizeMeasureType VARCHAR(255); ALTER TABLE observe_common.lengthweightparameter ADD CONSTRAINT FK_LENGTH_WEIGHT_PARAMETER_SIZE_MEASURE_TYPE FOREIGN KEY(sizeMeasureType) REFERENCES OBSERVE_COMMON.sizemeasuretype(topiaid); UPDATE observe_common.lengthweightparameter SET sizeMeasureType = ( SELECT sizeMeasureType FROM observe_common.species s WHERE s.topiaId = species); View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/0ab03958893fcf7798a15c7c7a5… --- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/0ab03958893fcf7798a15c7c7a5… You're receiving this email because of your account on gitlab.com.
1 0
0 0
  • ← Newer
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • ...
  • 14
  • Older →

HyperKitty Powered by HyperKitty version 1.3.12.