branch develop updated (ffa2528 -> 40649a1)
This is an automated email from the git hooks/post-receive script. New change to branch develop in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git from ffa2528 Add missing license header new 9e5c968 Nouvelle icône (Fixes #8886) new b30c8d0 Use Topia 3.2 and Hibernate 5.1.3 (fixes #8889) new 7a59d76 fix cherry-pick new 7a923bf Le transfert de 4 nouvelles marées de droite à gauche n'aboutit pas (Fixes #8887) new d11991e Plantage de la synchro avancée de référentiel (Fixes #8882) new 04a9ce0 Exception si tentative de suppression d'une espèce (Fixes #8878) new 935a39e Supprimer la configuration de la mémoire maximum à utiliser (Fixes #8873) new 3447b91 Mauvais chargement de l'action de synchro référentiel dans certains cas (fixes #8874) new 33a07e8 fix cherry-pick new a3d008a Problèmes de fiabilité/rafraichissement sur le formulaire LL Captures (fixes #8859) new 6387a7f refs #8863 Bien nettoyer les modèles d'actions à la fin new 5ffa8ba fix cherry-pick new db0f405 fix cherry-pick new c976414 refs #8863 Prévenir des fuites mémoires quand on change de source + réusinage des dernières modifications new e0354e1 Si on ferme la base, il reste des références sur celle-ci, ce qui peut induire des fuites mémoires (fixes #8875) new 40649a1 fix cherry-pick The 16 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit 40649a15584c08dd41c1375c48f1f3f3bbc56b77 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Dec 15 20:32:16 2016 +0100 fix cherry-pick commit e0354e1a8e7789854f93b0e9e8e1ab83f66aff9f Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Dec 14 11:35:00 2016 +0100 Si on ferme la base, il reste des références sur celle-ci, ce qui peut induire des fuites mémoires (fixes #8875) commit c976414f157dc47c289e9d7b71a6773107894525 Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Dec 14 09:56:16 2016 +0100 refs #8863 Prévenir des fuites mémoires quand on change de source + réusinage des dernières modifications commit db0f405f44425eef13f40e9d1638611f0af81a0e Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Dec 14 09:39:59 2016 +0100 fix cherry-pick commit 5ffa8ba22e2d3bc0a7f560ab955dea9bf487bbf1 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Dec 15 18:35:47 2016 +0100 fix cherry-pick commit 6387a7f632ee491ce076401aa13d27771e27dd95 Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Dec 14 08:52:18 2016 +0100 refs #8863 Bien nettoyer les modèles d'actions à la fin commit a3d008ab567dccdf861cedbd55ac5566eb280b4d Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Dec 14 08:09:14 2016 +0100 Problèmes de fiabilité/rafraichissement sur le formulaire LL Captures (fixes #8859) commit 33a07e8abc2ce0bbad9d85cf6bc28bf103bbe2a3 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Dec 15 18:15:37 2016 +0100 fix cherry-pick commit 3447b915c7e195bff64504f973a26c3d96fddcda Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Dec 14 11:34:06 2016 +0100 Mauvais chargement de l'action de synchro référentiel dans certains cas (fixes #8874) commit 935a39eab513ce3fa547a14ebd3cba0e533c6877 Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Dec 14 10:43:51 2016 +0100 Supprimer la configuration de la mémoire maximum à utiliser (Fixes #8873) commit 04a9ce0173c97fb1ff3ea833e7db6daa5d869ce8 Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Dec 14 16:35:28 2016 +0100 Exception si tentative de suppression d'une espèce (Fixes #8878) commit d11991e135a54a18e286f8ec06fe1ca7f9aaece3 Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Dec 14 17:45:43 2016 +0100 Plantage de la synchro avancée de référentiel (Fixes #8882) commit 7a923bfe42ef7436cac96e64cb2a07e7553038a7 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Dec 15 16:38:54 2016 +0100 Le transfert de 4 nouvelles marées de droite à gauche n'aboutit pas (Fixes #8887) commit 7a59d761f081da0d17a5498d953e9b4cd628f5b1 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Dec 15 18:04:28 2016 +0100 fix cherry-pick commit b30c8d07f63445475f906faf613461e785fb9eb6 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Dec 15 14:07:49 2016 +0100 Use Topia 3.2 and Hibernate 5.1.3 (fixes #8889) commit 9e5c968999accc24842310572dd8df346671e83e Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Dec 15 17:43:43 2016 +0100 Nouvelle icône (Fixes #8886) Summary of changes: .../swing/decoration/DecoratorService.java | 4 +- application-swing/pom.xml | 1 - application-swing/src/main/assembly/dist/go.bat | 2 +- application-swing/src/main/assembly/dist/go.sh | 3 +- .../observe/application/swing/ObserveRunner.java | 5 + .../ObserveSwingApplicationDataSourcesManager.java | 1 + .../swing/db/ObserveSwingDataSource.java | 6 +- .../application/swing/ui/ObserveMainUI.jcss | 2 +- .../swing/ui/ObserveMainUIInitializer.java | 15 +-- .../ui/actions/menu/help/ShowAboutAction.java | 4 +- .../actions/menu/storage/CloseStorageAction.java | 4 +- .../actions/menu/storage/ReloadStorageAction.java | 2 +- .../swing/ui/admin/AdminUILauncher.java | 67 +++++++------ .../swing/ui/admin/config/ConfigUIHandler.java | 7 +- .../swing/ui/admin/report/ReportModel.java | 11 ++- .../admin/synchronize/data/DataSynchroModel.java | 11 ++- .../referential/legacy/SynchronizeModel.java | 12 ++- .../referential/ng/ReferentialSynchroModel.java | 18 +++- .../swing/ui/admin/validate/ValidateModel.java | 4 + .../application/swing/ui/content/ContentUI.jaxx | 4 + .../swing/ui/content/ContentUIHandler.java | 17 +++- .../swing/ui/content/ContentUIManager.java | 13 ++- .../swing/ui/content/ContentUIModel.java | 6 ++ .../swing/ui/content/ObserveContentUI.java | 2 + .../swing/ui/content/list/ContentListUIModel.java | 7 ++ .../ui/content/table/ContentTableUIModel.java | 9 +- .../impl/longline/CatchLonglineUIHandler.java | 9 ++ .../swing/ui/storage/StorageUIHandler.java | 2 + .../swing/ui/storage/StorageUILauncher.java | 105 ++++++++++++++++++++- .../src/main/resources/icons/logo OT_rvb.png | Bin 143337 -> 0 bytes .../src/main/resources/icons/logo-OT_web.png | Bin 34309 -> 0 bytes .../src/main/resources/icons/logo-small.png | Bin 0 -> 46914 bytes .../src/main/resources/icons/logo.png | Bin 0 -> 232898 bytes entities/pom.xml | 20 +++- .../observe/ObserveTopiaApplicationContext.java | 10 +- .../fr/ird/observe/ObserveTopiaConfiguration.java | 16 +++- .../entities/migration/ObserveMigrationEngine.java | 4 +- pom.xml | 34 +++++-- .../topia/service/DataSourceServiceTopia.java | 43 ++++----- .../ng/ReferentialSynchronizeService.java | 9 +- src/site/resources/images/logo-OT_web.png | Bin 34309 -> 0 bytes src/site/resources/images/logo-small.png | Bin 0 -> 46914 bytes src/site/resources/images/logo.png | Bin 0 -> 232898 bytes src/site/rst/index.rst | 8 +- src/site/site_fr.xml | 2 +- topia-extension/pom.xml | 8 +- .../sql/batch/TopiaSqlBatchServiceImpl.java | 39 ++++---- .../sql/batch/actions/AbstractSchemaAction.java | 38 ++++++++ .../sql/batch/actions/AbstractSqlAction.java | 2 +- .../sql/batch/actions/CreateSchemaAction.java | 28 ++---- .../sql/batch/actions/DropSchemaAction.java | 40 +++----- .../sql/batch/actions/ReplicateTablesAction.java | 22 ++++- 52 files changed, 465 insertions(+), 211 deletions(-) delete mode 100644 application-swing/src/main/resources/icons/logo OT_rvb.png delete mode 100644 application-swing/src/main/resources/icons/logo-OT_web.png create mode 100644 application-swing/src/main/resources/icons/logo-small.png create mode 100644 application-swing/src/main/resources/icons/logo.png delete mode 100644 src/site/resources/images/logo-OT_web.png create mode 100644 src/site/resources/images/logo-small.png create mode 100644 src/site/resources/images/logo.png -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit 9e5c968999accc24842310572dd8df346671e83e Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Dec 15 17:43:43 2016 +0100 Nouvelle icône (Fixes #8886) --- .../application/swing/ui/ObserveMainUI.jcss | 2 +- .../ui/actions/menu/help/ShowAboutAction.java | 4 +-- .../src/main/resources/icons/logo OT_rvb.png | Bin 143337 -> 0 bytes .../src/main/resources/icons/logo-OT_web.png | Bin 34309 -> 0 bytes .../src/main/resources/icons/logo-small.png | Bin 0 -> 46914 bytes .../src/main/resources/icons/logo.png | Bin 0 -> 232898 bytes pom.xml | 28 ++++++++++++++++++--- src/site/resources/images/logo-OT_web.png | Bin 34309 -> 0 bytes src/site/resources/images/logo-small.png | Bin 0 -> 46914 bytes src/site/resources/images/logo.png | Bin 0 -> 232898 bytes src/site/rst/index.rst | 8 ++---- src/site/site_fr.xml | 2 +- 12 files changed, 31 insertions(+), 13 deletions(-) diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUI.jcss b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUI.jcss index a05caa6..452ddb9 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUI.jcss +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUI.jcss @@ -34,7 +34,7 @@ JSplitPane { #mainFrame { defaultCloseOperation: "do_nothing_on_close"; - iconImage: {UIHelper.createImageIcon("logo-OT_web.png").getImage()}; + iconImage: {SwingUtil.createImageIcon("logo.png").getImage()}; } #menu { diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/menu/help/ShowAboutAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/menu/help/ShowAboutAction.java index 67cddd2..9e3adf3 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/menu/help/ShowAboutAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/menu/help/ShowAboutAction.java @@ -74,7 +74,7 @@ public class ShowAboutAction extends AbstractUIAction { String name = ObserveRunner.getRunner().getRunnerName(); AboutUI about = AboutUIBuilder.builder(ui) - .setIconPath("/icons/logo-OT_web.png") + .setIconPath("/icons/logo.png") .setTitle(t("observe.title.about")) .setBottomText(ui.getConfig().getCopyrightText()) .addAboutTab(t("observe.about.message"), true) @@ -88,7 +88,7 @@ public class ShowAboutAction extends AbstractUIAction { JPanel topPanel = about.getTopPanel(); topPanel.removeAll(); topPanel.setLayout(new BorderLayout()); - topPanel.add(new JLabel(Resource.getIcon("/icons/logo-OT_web.png")), BorderLayout.WEST); + topPanel.add(new JLabel(Resource.getIcon("/icons/logo-small.png")), BorderLayout.WEST); topPanel.add(new JLabel(Resource.getIcon("/icons/logo_ird.png")), BorderLayout.EAST); about.display(); diff --git a/application-swing/src/main/resources/icons/logo OT_rvb.png b/application-swing/src/main/resources/icons/logo OT_rvb.png deleted file mode 100644 index 1c35a25..0000000 Binary files a/application-swing/src/main/resources/icons/logo OT_rvb.png and /dev/null differ diff --git a/application-swing/src/main/resources/icons/logo-OT_web.png b/application-swing/src/main/resources/icons/logo-OT_web.png deleted file mode 100644 index e6b87bd..0000000 Binary files a/application-swing/src/main/resources/icons/logo-OT_web.png and /dev/null differ diff --git a/application-swing/src/main/resources/icons/logo-small.png b/application-swing/src/main/resources/icons/logo-small.png new file mode 100644 index 0000000..a850860 Binary files /dev/null and b/application-swing/src/main/resources/icons/logo-small.png differ diff --git a/application-swing/src/main/resources/icons/logo.png b/application-swing/src/main/resources/icons/logo.png new file mode 100644 index 0000000..4a4c9c8 Binary files /dev/null and b/application-swing/src/main/resources/icons/logo.png differ diff --git a/pom.xml b/pom.xml index b8ed0e6..958e6ce 100644 --- a/pom.xml +++ b/pom.xml @@ -514,6 +514,10 @@ <groupId>org.hibernate</groupId> <artifactId>hibernate-ehcache</artifactId> </exclusion> + <exclusion> + <groupId>org.hibernate</groupId> + <artifactId>hibernate-c3p0</artifactId> + </exclusion> </exclusions> </dependency> @@ -566,19 +570,37 @@ <version>${hibernateVersion}</version> </dependency> - <dependency> + <!--dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-c3p0</artifactId> <version>${hibernateVersion}</version> <scope>runtime</scope> + </dependency--> + + <dependency> + <groupId>com.zaxxer</groupId> + <artifactId>HikariCP</artifactId> + <version>2.5.1</version> </dependency> <dependency> + <groupId>org.hibernate</groupId> + <artifactId>hibernate-hikaricp</artifactId> + <version>${hibernateVersion}</version> + <exclusions> + <exclusion> + <groupId>com.zaxxer</groupId> + <artifactId>HikariCP-java6</artifactId> + </exclusion> + </exclusions> + </dependency> + + <!--dependency> <groupId>com.mchange</groupId> <artifactId>c3p0</artifactId> <version>0.9.5.2</version> <scope>runtime</scope> - </dependency> + </dependency--> <!-- Map --> @@ -1126,7 +1148,7 @@ </profile> <profile> - <id>generate-changelog</id> + <id>changelog-profile</id> <activation> <property> <name>performRelease</name> diff --git a/src/site/resources/images/logo-OT_web.png b/src/site/resources/images/logo-OT_web.png deleted file mode 100644 index e6b87bd..0000000 Binary files a/src/site/resources/images/logo-OT_web.png and /dev/null differ diff --git a/src/site/resources/images/logo-small.png b/src/site/resources/images/logo-small.png new file mode 100644 index 0000000..a850860 Binary files /dev/null and b/src/site/resources/images/logo-small.png differ diff --git a/src/site/resources/images/logo.png b/src/site/resources/images/logo.png new file mode 100644 index 0000000..4a4c9c8 Binary files /dev/null and b/src/site/resources/images/logo.png differ diff --git a/src/site/rst/index.rst b/src/site/rst/index.rst index 3154e79..375072d 100644 --- a/src/site/rst/index.rst +++ b/src/site/rst/index.rst @@ -45,19 +45,15 @@ Les documents - `Architecture logicielle`_ - `Road Map`_ -- `Validation`_ - `Administration obstuna`_ - `Administration web`_ -- `Client lourd`_ -- `Le projet maven`_ +- `Configuration`_ .. _Architecture logicielle: architecture-logicielle.html .. _Administration obstuna: install-serverPG.html .. _Administration web: administration-web.html -.. _Validation: Validation.html .. _Road Map: Avancement.html -.. _Client lourd: Observe-Swing.html -.. _Le projet maven: Observe-maven.html +.. _Configuration: config-report.html diff --git a/src/site/site_fr.xml b/src/site/site_fr.xml index b3af8bb..3b8bbe2 100644 --- a/src/site/site_fr.xml +++ b/src/site/site_fr.xml @@ -28,7 +28,7 @@ <bannerLeft> <name>${project.name}</name> - <src>${project.url}/v/${siteDeployClassifier}/images/logo-OT_web.png</src> + <src>${project.url}/v/${siteDeployClassifier}/images/logo-small.png</src> <href>index.html</href> </bannerLeft> -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit b30c8d07f63445475f906faf613461e785fb9eb6 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Dec 15 14:07:49 2016 +0100 Use Topia 3.2 and Hibernate 5.1.3 (fixes #8889) --- .../observe/ObserveTopiaApplicationContext.java | 10 ++++-- .../entities/migration/ObserveMigrationEngine.java | 4 +-- .../sql/batch/actions/AbstractSchemaAction.java | 38 ++++++++++++++++++++ .../sql/batch/actions/CreateSchemaAction.java | 29 +++------------ .../sql/batch/actions/DropSchemaAction.java | 42 ++++++---------------- 5 files changed, 62 insertions(+), 61 deletions(-) diff --git a/entities/src/main/java/fr/ird/observe/ObserveTopiaApplicationContext.java b/entities/src/main/java/fr/ird/observe/ObserveTopiaApplicationContext.java index 4debf52..86832ba 100644 --- a/entities/src/main/java/fr/ird/observe/ObserveTopiaApplicationContext.java +++ b/entities/src/main/java/fr/ird/observe/ObserveTopiaApplicationContext.java @@ -30,8 +30,8 @@ import fr.ird.observe.entities.referentiel.ObserveReferentialEntity; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.hibernate.HibernateException; -import org.hibernate.cfg.Configuration; import org.hibernate.tool.hbm2ddl.SchemaExport; +import org.hibernate.tool.schema.TargetType; import org.nuiton.topia.persistence.TopiaException; import org.nuiton.topia.persistence.internal.support.TopiaMetadataModelSupportImpl; import org.nuiton.topia.persistence.jdbc.JdbcH2Helper; @@ -48,6 +48,7 @@ import org.nuiton.util.StringUtil; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; +import java.util.EnumSet; import java.util.LinkedHashSet; import java.util.Objects; import java.util.Set; @@ -135,8 +136,11 @@ public class ObserveTopiaApplicationContext extends AbstractObserveTopiaApplicat topiaPersistenceContext.commit(); } - Configuration hibernateConfiguration = getHibernateProvider().getHibernateConfiguration(); - new SchemaExport(hibernateConfiguration).execute(showSchema, true, false, true); + EnumSet<TargetType> targetTypes = EnumSet.of(TargetType.DATABASE); + if (showSchema) { + targetTypes.add(TargetType.STDOUT); + } + new SchemaExport().execute(targetTypes, SchemaExport.Action.CREATE, getHibernateProvider().getMetaData()); topiaFiresSupport.firePostCreateSchema(this); } catch (HibernateException eee) { diff --git a/entities/src/main/java/fr/ird/observe/entities/migration/ObserveMigrationEngine.java b/entities/src/main/java/fr/ird/observe/entities/migration/ObserveMigrationEngine.java index ed23e06..adb25a2 100644 --- a/entities/src/main/java/fr/ird/observe/entities/migration/ObserveMigrationEngine.java +++ b/entities/src/main/java/fr/ird/observe/entities/migration/ObserveMigrationEngine.java @@ -34,8 +34,8 @@ import org.nuiton.topia.persistence.util.TopiaUtil; public class ObserveMigrationEngine extends TopiaMigrationEngine { public void createSchemaIfNotExist() { - if (TopiaUtil.isSchemaEmpty(versionConfiguration)) { - TMSVersionHibernateDao.createTMSSchema(versionConfiguration); + if (TopiaUtil.isSchemaEmpty(versionConfiguration, metaData)) { + TMSVersionHibernateDao.createTMSSchema(metaData); } } diff --git a/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/AbstractSchemaAction.java b/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/AbstractSchemaAction.java index 9d3772e..47737ef 100644 --- a/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/AbstractSchemaAction.java +++ b/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/AbstractSchemaAction.java @@ -22,11 +22,23 @@ package org.nuiton.topia.service.sql.batch.actions; * #L% */ +import org.hibernate.boot.Metadata; +import org.hibernate.boot.registry.BootstrapServiceRegistry; +import org.hibernate.boot.registry.BootstrapServiceRegistryBuilder; +import org.hibernate.boot.registry.StandardServiceRegistry; +import org.hibernate.boot.registry.StandardServiceRegistryBuilder; +import org.hibernate.boot.spi.MetadataImplementor; import org.hibernate.dialect.Dialect; +import org.hibernate.engine.config.spi.ConfigurationService; +import org.hibernate.tool.hbm2ddl.SchemaExport; +import org.hibernate.tool.schema.TargetType; +import org.nuiton.topia.persistence.HibernateAvailableSettings; import java.io.IOException; import java.nio.file.Path; import java.sql.SQLException; +import java.util.EnumSet; +import java.util.Properties; /** * Created on 01/01/16. @@ -57,4 +69,30 @@ public abstract class AbstractSchemaAction<R extends AbstractSchemaRequest> exte } + + protected void generateSqlInFile(Class<? extends Dialect> dialectType, Path sqlScriptFile, SchemaExport.Action action) { + + Metadata hibernateMetadata = getSourcePersistenceContext().getHibernateSupport().getHibernateMetadata(); + + StandardServiceRegistry serviceRegistry = ((MetadataImplementor) hibernateMetadata).getMetadataBuildingOptions().getServiceRegistry(); + + Properties properties = new Properties(); + properties.putAll(serviceRegistry.getService(ConfigurationService.class).getSettings()); + properties.put(HibernateAvailableSettings.DIALECT, dialectType.getName()); + + BootstrapServiceRegistry bsr = new BootstrapServiceRegistryBuilder().build(); + StandardServiceRegistryBuilder ssrBuilder = new StandardServiceRegistryBuilder(bsr); + ssrBuilder.applySettings(properties); + StandardServiceRegistry registry = ssrBuilder.build(); + + try { + new SchemaExport() + .setOutputFile(sqlScriptFile.toFile().getAbsolutePath()) + .setDelimiter(";") + .execute(EnumSet.of(TargetType.SCRIPT), action, hibernateMetadata, registry); + } finally { + StandardServiceRegistryBuilder.destroy(registry); + } + } + } diff --git a/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/CreateSchemaAction.java b/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/CreateSchemaAction.java index 5f87059..c8da770 100644 --- a/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/CreateSchemaAction.java +++ b/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/CreateSchemaAction.java @@ -4,7 +4,7 @@ package org.nuiton.topia.service.sql.batch.actions; * #%L * ObServe :: ToPIA Extension * %% - * Copyright (C) 2008 - 2016 IRD, Code Lutin, Tony Chemit + * Copyright (C) 2008 - 2016 IRD, Codelutin, Tony Chemit * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as @@ -22,21 +22,15 @@ package org.nuiton.topia.service.sql.batch.actions; * #L% */ -import com.google.common.collect.ImmutableSet; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; import org.hibernate.HibernateException; -import org.hibernate.cfg.Configuration; -import org.hibernate.cfg.Environment; import org.hibernate.dialect.Dialect; import org.hibernate.tool.hbm2ddl.SchemaExport; -import org.hibernate.tool.hbm2ddl.Target; import org.nuiton.topia.persistence.TopiaException; import java.io.IOException; +import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; -import java.util.Properties; /** * Created on 01/01/16. @@ -46,9 +40,6 @@ import java.util.Properties; */ public class CreateSchemaAction extends AbstractSchemaAction<CreateSchemaRequest> { - /** Logger */ - private static final Log log = LogFactory.getLog(CreateSchemaAction.class); - public static final String CREATE_SCHEMA_STATEMENT = "CREATE SCHEMA %s;\n"; public CreateSchemaAction(CreateSchemaRequest request, boolean showSql) { @@ -61,25 +52,13 @@ public class CreateSchemaAction extends AbstractSchemaAction<CreateSchemaRequest Path sqlScriptFile = temporaryDirectory.resolve("replicateSchema_" + System.nanoTime() + ".sql"); - Configuration hibernateConfiguration = getSourcePersistenceContext().getHibernateSupport().getHibernateConfiguration(); - - Properties properties = new Properties(); - - properties.put(Environment.DIALECT, dialectType.getName()); - - new SchemaExport(hibernateConfiguration, properties) - .setOutputFile(sqlScriptFile.toFile().getAbsolutePath()) - .setDelimiter(";") - .execute(Target.NONE, SchemaExport.Type.CREATE); + generateSqlInFile(dialectType, sqlScriptFile, SchemaExport.Action.CREATE); String sqlStatements = ""; if (request.isAddSchema()) { - - ImmutableSet<String> schemaNames = getSchemaNames(); - for (String schemaName : schemaNames) { + for (String schemaName : getSchemaNames()) { sqlStatements += String.format(CREATE_SCHEMA_STATEMENT, schemaName); } - } sqlStatements += new String(Files.readAllBytes(sqlScriptFile)); diff --git a/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/DropSchemaAction.java b/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/DropSchemaAction.java index 8153c6e..0ee1dbb 100644 --- a/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/DropSchemaAction.java +++ b/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/DropSchemaAction.java @@ -4,7 +4,7 @@ package org.nuiton.topia.service.sql.batch.actions; * #%L * ObServe :: ToPIA Extension * %% - * Copyright (C) 2008 - 2016 IRD, Code Lutin, Tony Chemit + * Copyright (C) 2008 - 2016 IRD, Codelutin, Tony Chemit * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as @@ -22,21 +22,15 @@ package org.nuiton.topia.service.sql.batch.actions; * #L% */ -import com.google.common.collect.ImmutableSet; -import org.apache.commons.io.output.WriterOutputStream; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; import org.hibernate.HibernateException; -import org.hibernate.cfg.Configuration; -import org.hibernate.cfg.Environment; import org.hibernate.dialect.Dialect; import org.hibernate.tool.hbm2ddl.SchemaExport; import org.nuiton.topia.persistence.TopiaException; import java.io.IOException; +import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; -import java.util.Properties; /** * Created on 01/01/16. @@ -60,43 +54,29 @@ public class DropSchemaAction extends AbstractSchemaAction<DropSchemaRequest> { try { - Path sqlScriptFile = temporaryDirectory.resolve("replicateSchema_" + System.nanoTime() + ".sql"); + Path sqlScriptFile = temporaryDirectory.resolve("dropSchema_" + System.nanoTime() + ".sql"); - Configuration hibernateConfiguration = getSourcePersistenceContext().getHibernateSupport().getHibernateConfiguration(); + generateSqlInFile(dialectType, sqlScriptFile, SchemaExport.Action.DROP); - Properties properties = new Properties(); - - properties.put(Environment.DIALECT, dialectType.getName()); - - new SchemaExport(hibernateConfiguration, properties) - .setOutputFile(sqlScriptFile.toFile().getAbsolutePath()) - .setDelimiter(";") - .drop(false, false); - - WriterOutputStream out = new WriterOutputStream(writer); - Files.copy(sqlScriptFile, out); - out.flush(); - - String sqlContent = new String(Files.readAllBytes(sqlScriptFile)); + String sqlStatements = new String(Files.readAllBytes(sqlScriptFile), StandardCharsets.UTF_8); Files.delete(sqlScriptFile); if (request.isDropSchema()) { - - ImmutableSet<String> schemaNames = getSchemaNames(); - for (String schemaName : schemaNames) { - sqlContent += String.format(DROP_SCHEMA_STATEMENT, schemaName); + for (String schemaName : getSchemaNames()) { + sqlStatements += String.format(DROP_SCHEMA_STATEMENT, schemaName); } } if (showSql) { if (log.isInfoEnabled()) { - log.info(sqlContent); + log.info(sqlStatements); } } - return sqlContent; + return sqlStatements; } catch (HibernateException eee) { - throw new TopiaException(String.format("Could not create schema for reason: %s", eee.getMessage()), eee); + throw new TopiaException(String.format("Could not drop schema for reason: %s", eee.getMessage()), eee); } } + } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit 7a59d761f081da0d17a5498d953e9b4cd628f5b1 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Dec 15 18:04:28 2016 +0100 fix cherry-pick --- .../nuiton/topia/service/sql/batch/actions/CreateSchemaAction.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/CreateSchemaAction.java b/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/CreateSchemaAction.java index c8da770..40d47ed 100644 --- a/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/CreateSchemaAction.java +++ b/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/CreateSchemaAction.java @@ -22,6 +22,8 @@ package org.nuiton.topia.service.sql.batch.actions; * #L% */ +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.hibernate.HibernateException; import org.hibernate.dialect.Dialect; import org.hibernate.tool.hbm2ddl.SchemaExport; @@ -42,6 +44,9 @@ public class CreateSchemaAction extends AbstractSchemaAction<CreateSchemaRequest public static final String CREATE_SCHEMA_STATEMENT = "CREATE SCHEMA %s;\n"; + /** Logger */ + private static final Log log = LogFactory.getLog(CreateSchemaAction.class); + public CreateSchemaAction(CreateSchemaRequest request, boolean showSql) { super(request, showSql); } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit 7a923bfe42ef7436cac96e64cb2a07e7553038a7 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Dec 15 16:38:54 2016 +0100 Le transfert de 4 nouvelles marées de droite à gauche n'aboutit pas (Fixes #8887) --- entities/pom.xml | 20 ++++++++--- .../fr/ird/observe/ObserveTopiaConfiguration.java | 16 ++++++--- pom.xml | 6 ++-- topia-extension/pom.xml | 8 +++-- .../sql/batch/TopiaSqlBatchServiceImpl.java | 39 +++++++++++----------- .../sql/batch/actions/AbstractSqlAction.java | 2 +- .../sql/batch/actions/ReplicateTablesAction.java | 22 +++++++++--- 7 files changed, 75 insertions(+), 38 deletions(-) diff --git a/entities/pom.xml b/entities/pom.xml index 40ee092..10054d5 100644 --- a/entities/pom.xml +++ b/entities/pom.xml @@ -22,7 +22,8 @@ <http://www.gnu.org/licenses/lgpl-3.0.html>. #L% --> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> @@ -101,9 +102,17 @@ <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> </dependency> - <dependency> + <!--dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-c3p0</artifactId> + </dependency--> + <dependency> + <groupId>com.zaxxer</groupId> + <artifactId>HikariCP</artifactId> + </dependency> + <dependency> + <groupId>org.hibernate</groupId> + <artifactId>hibernate-hikaricp</artifactId> </dependency> <!-- test --> @@ -182,12 +191,13 @@ <phase>generate-sources</phase> <configuration> <target> - <copy verbose="true" failonerror="true" overwrite="true" filtering="true" todir="${project.build.directory}/xmi"> + <copy verbose="true" failonerror="true" overwrite="true" filtering="true" + todir="${project.build.directory}/xmi"> <filterset> - <filter value="${observe.model.version}" token="observe.model.version" /> + <filter value="${observe.model.version}" token="observe.model.version"/> </filterset> <fileset dir="${basedir}/src/main/xmi"> - <include name="*.ini" /> + <include name="*.ini"/> </fileset> </copy> </target> diff --git a/entities/src/main/java/fr/ird/observe/ObserveTopiaConfiguration.java b/entities/src/main/java/fr/ird/observe/ObserveTopiaConfiguration.java index 939cbd9..80293b7 100644 --- a/entities/src/main/java/fr/ird/observe/ObserveTopiaConfiguration.java +++ b/entities/src/main/java/fr/ird/observe/ObserveTopiaConfiguration.java @@ -22,6 +22,7 @@ package fr.ird.observe; * #L% */ +import org.hibernate.hikaricp.internal.HikariCPConnectionProvider; import org.nuiton.topia.persistence.BeanTopiaConfiguration; import org.nuiton.topia.persistence.HibernateAvailableSettings; import org.nuiton.topia.persistence.jdbc.JdbcConfiguration; @@ -45,10 +46,17 @@ public class ObserveTopiaConfiguration extends BeanTopiaConfiguration { if (showSql) { hibernateExtraConfiguration.put("hibernate.show_sql", Boolean.TRUE.toString()); } - hibernateExtraConfiguration.put(HibernateAvailableSettings.CONNECTION_PROVIDER, "org.hibernate.c3p0.internal.C3P0ConnectionProvider"); - hibernateExtraConfiguration.put(HibernateAvailableSettings.C3P0_MAX_SIZE, "500"); - hibernateExtraConfiguration.put(HibernateAvailableSettings.C3P0_MAX_STATEMENTS, "500"); - hibernateExtraConfiguration.put(HibernateAvailableSettings.C3P0_TIMEOUT, "100"); + + hibernateExtraConfiguration.put(HibernateAvailableSettings.CONNECTION_PROVIDER, HikariCPConnectionProvider.class.getName()); + hibernateExtraConfiguration.put("hibernate.hikari.minimumIdle", "2"); + hibernateExtraConfiguration.put("hibernate.hikari.maximumPoolSize", "20"); + hibernateExtraConfiguration.put("hibernate.hikari.autoCommit", "false"); + hibernateExtraConfiguration.put("hibernate.hikari.registerMbeans", "true"); + +// hibernateExtraConfiguration.put(HibernateAvailableSettings.CONNECTION_PROVIDER, "org.hibernate.c3p0.internal.C3P0ConnectionProvider"); +// hibernateExtraConfiguration.put(HibernateAvailableSettings.C3P0_MAX_SIZE, "500"); +// hibernateExtraConfiguration.put(HibernateAvailableSettings.C3P0_MAX_STATEMENTS, "500"); +// hibernateExtraConfiguration.put(HibernateAvailableSettings.C3P0_TIMEOUT, "100"); } public boolean isH2Configuration() { diff --git a/pom.xml b/pom.xml index 958e6ce..6c3a5bf 100644 --- a/pom.xml +++ b/pom.xml @@ -164,14 +164,14 @@ <eugenePluginVersion>3.0-alpha-10</eugenePluginVersion> <processorPluginVersion>1.3</processorPluginVersion> - <topiaVersion>3.2-SNAPSHOT</topiaVersion> - <jaxxVersion>2.35</jaxxVersion> + <topiaVersion>3.2</topiaVersion> + <jaxxVersion>2.36</jaxxVersion> <nuitonI18nVersion>3.6.2</nuitonI18nVersion> <nuitonValidatorVersion>3.0.1</nuitonValidatorVersion> <nuitonUtilsVersion>3.0-rc-16</nuitonUtilsVersion> <nuitonConfigVersion>3.1</nuitonConfigVersion> <xworkVersion>2.3.31</xworkVersion> - <hibernateVersion>4.3.11.Final</hibernateVersion> + <hibernateVersion>5.1.3.Final</hibernateVersion> <sl4jVersion>1.7.21</sl4jVersion> <swingXVersion>1.6.5-1</swingXVersion> <reflectionsVersion>0.9.10</reflectionsVersion> diff --git a/topia-extension/pom.xml b/topia-extension/pom.xml index 41c2d0e..2e5d10d 100644 --- a/topia-extension/pom.xml +++ b/topia-extension/pom.xml @@ -82,11 +82,15 @@ </dependency> <dependency> + <groupId>com.zaxxer</groupId> + <artifactId>HikariCP</artifactId> + </dependency> + + <!--dependency> <groupId>com.mchange</groupId> <artifactId>c3p0</artifactId> - <version>0.9.5.2</version> <scope>compile</scope> - </dependency> + </dependency--> <!-- test --> <dependency> diff --git a/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/TopiaSqlBatchServiceImpl.java b/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/TopiaSqlBatchServiceImpl.java index a69332f..683d999 100644 --- a/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/TopiaSqlBatchServiceImpl.java +++ b/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/TopiaSqlBatchServiceImpl.java @@ -158,32 +158,33 @@ public class TopiaSqlBatchServiceImpl implements TopiaSqlBatchService { AbstractSqlRequest sqlRequest = sqlRequestIterator.next(); - AbstractSqlAction<?> action = createAction(sqlRequest, requests.isShowSql()); + try (AbstractSqlAction<?> action = createAction(sqlRequest, requests.isShowSql())) { - action.run(); + action.run(); - Optional<Set<BlobsContainer.Builder>> optionalBlobsContainers = action.getBlobsContainersBuilder(); - if (optionalBlobsContainers.isPresent()) { - Set<BlobsContainer.Builder> blobsContainers = optionalBlobsContainers.get(); + Optional<Set<BlobsContainer.Builder>> optionalBlobsContainers = action.getBlobsContainersBuilder(); + if (optionalBlobsContainers.isPresent()) { + Set<BlobsContainer.Builder> blobsContainers = optionalBlobsContainers.get(); - for (BlobsContainer.Builder blobsContainerBuilder : blobsContainers) { - String tableName = blobsContainerBuilder.getTableName(); - String columnName = blobsContainerBuilder.getColumnName(); + for (BlobsContainer.Builder blobsContainerBuilder : blobsContainers) { + String tableName = blobsContainerBuilder.getTableName(); + String columnName = blobsContainerBuilder.getColumnName(); - String key = tableName + "##" + columnName; - if (blobContainersBuilder.containsKey(key)) { - BlobsContainer.Builder blobsContainerBuilder1 = blobContainersBuilder.get(key); - blobsContainerBuilder1.addAllBlob(blobsContainerBuilder.build().getBlobsById()); - } else { - blobContainersBuilder.put(tableName, blobsContainerBuilder); + String key = tableName + "##" + columnName; + if (blobContainersBuilder.containsKey(key)) { + BlobsContainer.Builder blobsContainerBuilder1 = blobContainersBuilder.get(key); + blobsContainerBuilder1.addAllBlob(blobsContainerBuilder.build().getBlobsById()); + } else { + blobContainersBuilder.put(tableName, blobsContainerBuilder); + } } } - } - //FIXME Review transaction management + //FIXME Review transaction management - hasNext = sqlRequestIterator.hasNext(); - if (!hasNext) { - action.commit(); + hasNext = sqlRequestIterator.hasNext(); + if (!hasNext) { + action.commit(); + } } } diff --git a/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/AbstractSqlAction.java b/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/AbstractSqlAction.java index 397687c..b95fc27 100644 --- a/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/AbstractSqlAction.java +++ b/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/AbstractSqlAction.java @@ -179,7 +179,7 @@ public abstract class AbstractSqlAction<R extends AbstractSqlRequest> implements } } if (error != null) { - throw new RuntimeException("Could not close", error); + throw new TopiaException("Could not close", error); } } diff --git a/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/ReplicateTablesAction.java b/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/ReplicateTablesAction.java index 5a2954f..9c21f61 100644 --- a/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/ReplicateTablesAction.java +++ b/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/ReplicateTablesAction.java @@ -22,7 +22,7 @@ package org.nuiton.topia.service.sql.batch.actions; * #L% */ -import com.mchange.v2.c3p0.impl.NewProxyConnection; +import com.zaxxer.hikari.pool.HikariProxyConnection; import org.apache.commons.io.output.ByteArrayOutputStream; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -212,11 +212,25 @@ public class ReplicateTablesAction extends AbstractTablesAction<ReplicateTablesR if (connection instanceof PgConnection) { pgConnection = (PGConnection) connection; - } else if (connection instanceof NewProxyConnection) { + } +// else if (connection instanceof NewProxyConnection) { +// +// NewProxyConnection connection1 = (NewProxyConnection) connection; +// try { +// Field field = connection1.getClass().getDeclaredField("inner"); +// field.setAccessible(true); +// pgConnection = (PGConnection) field.get(connection1); +// } catch (Exception e) { +// throw new RuntimeException(e); +// } +// +// } + else if (connection instanceof HikariProxyConnection) { + + HikariProxyConnection connection1 = (HikariProxyConnection) connection; - NewProxyConnection connection1 = (NewProxyConnection) connection; try { - Field field = connection1.getClass().getDeclaredField("inner"); + Field field = connection1.getClass().getSuperclass().getDeclaredField("delegate"); field.setAccessible(true); pgConnection = (PGConnection) field.get(connection1); } catch (Exception e) { -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit d11991e135a54a18e286f8ec06fe1ca7f9aaece3 Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Dec 14 17:45:43 2016 +0100 Plantage de la synchro avancée de référentiel (Fixes #8882) --- .../synchro/referential/ng/ReferentialSynchronizeService.java | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/services/src/main/java/fr/ird/observe/services/service/actions/synchro/referential/ng/ReferentialSynchronizeService.java b/services/src/main/java/fr/ird/observe/services/service/actions/synchro/referential/ng/ReferentialSynchronizeService.java index ee08e13..9f5ff2a 100644 --- a/services/src/main/java/fr/ird/observe/services/service/actions/synchro/referential/ng/ReferentialSynchronizeService.java +++ b/services/src/main/java/fr/ird/observe/services/service/actions/synchro/referential/ng/ReferentialSynchronizeService.java @@ -24,10 +24,7 @@ package fr.ird.observe.services.service.actions.synchro.referential.ng; import fr.ird.observe.services.ObserveService; import fr.ird.observe.services.spi.PostRequest; -import fr.ird.observe.services.spi.ReadDataPermission; -import fr.ird.observe.services.spi.ReadReferentialPermission; import fr.ird.observe.services.spi.Write; -import fr.ird.observe.services.spi.WriteDataPermission; /** * Created on 08/08/16. @@ -37,13 +34,11 @@ import fr.ird.observe.services.spi.WriteDataPermission; */ public interface ReferentialSynchronizeService extends ObserveService { - @ReadReferentialPermission - @ReadDataPermission + // Note : sur cette méthode aucun droit métier à poser, les actions sont légitimes @PostRequest ReferentialSynchronizeSqlsRequest produceSqlsRequest(ReferentialSynchronizeRequest request); - @ReadDataPermission - @WriteDataPermission + // Note : sur cette méthode aucun droit métier à poser, les actions sont légitimes @Write @PostRequest void executeSqlsRequests(ReferentialSynchronizeSqlsRequest localSqlsRequest, ReferentialSynchronizeSqlsRequest oppositeSqlsRequest); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit 04a9ce0173c97fb1ff3ea833e7db6daa5d869ce8 Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Dec 14 16:35:28 2016 +0100 Exception si tentative de suppression d'une espèce (Fixes #8878) --- .../fr/ird/observe/application/swing/decoration/DecoratorService.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/application-swing-decoration/src/main/java/fr/ird/observe/application/swing/decoration/DecoratorService.java b/application-swing-decoration/src/main/java/fr/ird/observe/application/swing/decoration/DecoratorService.java index e8a076e..1b55aa4 100644 --- a/application-swing-decoration/src/main/java/fr/ird/observe/application/swing/decoration/DecoratorService.java +++ b/application-swing-decoration/src/main/java/fr/ird/observe/application/swing/decoration/DecoratorService.java @@ -121,6 +121,7 @@ import fr.ird.observe.services.dto.seine.FloatingObjectTransmittingBuoyDto; import fr.ird.observe.services.dto.seine.GearUseFeaturesMeasurementSeineDto; import fr.ird.observe.services.dto.seine.NonTargetCatchDto; import fr.ird.observe.services.dto.seine.NonTargetSampleDto; +import fr.ird.observe.services.dto.seine.ObjectObservedSpeciesDto; import fr.ird.observe.services.dto.seine.ObjectSchoolEstimateDto; import fr.ird.observe.services.dto.seine.RouteDto; import fr.ird.observe.services.dto.seine.RouteStubDto; @@ -341,7 +342,6 @@ public class DecoratorService extends DecoratorProvider { registerDataAndDataReferenceDecorator(FloatingObjectTransmittingBuoyDto.class, t("observe.type.floatingObjectTransmittingBuoy")); registerDataAndDataReferenceDecorator(FloatingObjectSchoolEstimateDto.class, t("observe.type.floatingObjectSchoolEstimate")); registerDataAndDataReferenceDecorator(FloatingObjectObservedSpeciesDto.class, t("observe.type.floatingObjectObservedSpecies")); - registerDataAndDataReferenceDecorator(ObjectSchoolEstimateDto.class, "${species/scientificLabel}$s##${totalWeight}$d", "${species}$s##${totalWeight}$d"); @@ -391,6 +391,8 @@ public class DecoratorService extends DecoratorProvider { // ObjectObservedSpecies decorator registerDecorator(new ObjectObservedSpeciesDecorator()); + registerDataReferenceDecorator(ObjectObservedSpeciesDto.class, "${species}$s##${count}$d"); + // TargetLength decorator registerDecorator(new TargetCatchDecorator()); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit 935a39eab513ce3fa547a14ebd3cba0e533c6877 Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Dec 14 10:43:51 2016 +0100 Supprimer la configuration de la mémoire maximum à utiliser (Fixes #8873) --- application-swing/pom.xml | 1 - application-swing/src/main/assembly/dist/go.bat | 2 +- application-swing/src/main/assembly/dist/go.sh | 3 +-- 3 files changed, 2 insertions(+), 4 deletions(-) diff --git a/application-swing/pom.xml b/application-swing/pom.xml index 4b6d754..b3eadf4 100644 --- a/application-swing/pom.xml +++ b/application-swing/pom.xml @@ -806,7 +806,6 @@ <errTitle>${project.parent.name}</errTitle> <jre> <minVersion>1.8.0</minVersion> - <maxHeapSize>256</maxHeapSize> </jre> <versionInfo> <fileVersion>${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}.0</fileVersion> diff --git a/application-swing/src/main/assembly/dist/go.bat b/application-swing/src/main/assembly/dist/go.bat index cffa0cc..4d736a1 100755 --- a/application-swing/src/main/assembly/dist/go.bat +++ b/application-swing/src/main/assembly/dist/go.bat @@ -1 +1 @@ -java -Xmx512M -Xms512M -jar ${project.build.finalName}.jar %1 %2 %3 %4 %5 %6 %7 %8 %9 \ No newline at end of file +java -jar ${project.build.finalName}.jar %1 %2 %3 %4 %5 %6 %7 %8 %9 \ No newline at end of file diff --git a/application-swing/src/main/assembly/dist/go.sh b/application-swing/src/main/assembly/dist/go.sh index 73a918c..5732c5f 100755 --- a/application-swing/src/main/assembly/dist/go.sh +++ b/application-swing/src/main/assembly/dist/go.sh @@ -24,5 +24,4 @@ ### #!/bin/sh -MX=512M -java -Xmx$MX -Xms$MX -jar ${project.build.finalName}.jar "$@" \ No newline at end of file +java -jar ${project.build.finalName}.jar "$@" \ No newline at end of file -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit 3447b915c7e195bff64504f973a26c3d96fddcda Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Dec 14 11:34:06 2016 +0100 Mauvais chargement de l'action de synchro référentiel dans certains cas (fixes #8874) --- .../application/swing/ui/admin/config/ConfigUIHandler.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/config/ConfigUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/config/ConfigUIHandler.java index 3c5b9e3..c64f232 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/config/ConfigUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/config/ConfigUIHandler.java @@ -2,7 +2,7 @@ * #%L * ObServe :: Application Swing * %% - * Copyright (C) 2008 - 2016 IRD, Code Lutin, Tony Chemit + * Copyright (C) 2008 - 2016 IRD, Codelutin, Tony Chemit * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as @@ -26,7 +26,9 @@ import fr.ird.observe.application.swing.ObserveTextGenerator; import fr.ird.observe.application.swing.ui.MnemonicHelper; import fr.ird.observe.application.swing.ui.UIHelper; import fr.ird.observe.application.swing.ui.admin.AdminStep; +import fr.ird.observe.application.swing.ui.admin.AdminTabUI; import fr.ird.observe.application.swing.ui.admin.AdminTabUIHandler; +import fr.ird.observe.application.swing.ui.admin.AdminUI; import fr.ird.observe.application.swing.ui.storage.StorageStep; import fr.ird.observe.application.swing.ui.storage.StorageUILauncher; import fr.ird.observe.application.swing.ui.storage.StorageUIModel; @@ -35,10 +37,9 @@ import jaxx.runtime.spi.UIHandler; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import javax.swing.AbstractAction; import javax.swing.JCheckBox; -import javax.swing.JComponent; import javax.swing.JLabel; +import javax.swing.JTree; import javax.swing.KeyStroke; import java.awt.Window; import java.awt.event.ActionEvent; @@ -165,4 +166,5 @@ public class ConfigUIHandler extends AdminTabUIHandler<ConfigUI> implements UIHa return text; } + } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit 33a07e8abc2ce0bbad9d85cf6bc28bf103bbe2a3 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Dec 15 18:15:37 2016 +0100 fix cherry-pick --- .../application/swing/ui/admin/config/ConfigUIHandler.java | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/config/ConfigUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/config/ConfigUIHandler.java index c64f232..6a8b6dd 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/config/ConfigUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/config/ConfigUIHandler.java @@ -26,9 +26,7 @@ import fr.ird.observe.application.swing.ObserveTextGenerator; import fr.ird.observe.application.swing.ui.MnemonicHelper; import fr.ird.observe.application.swing.ui.UIHelper; import fr.ird.observe.application.swing.ui.admin.AdminStep; -import fr.ird.observe.application.swing.ui.admin.AdminTabUI; import fr.ird.observe.application.swing.ui.admin.AdminTabUIHandler; -import fr.ird.observe.application.swing.ui.admin.AdminUI; import fr.ird.observe.application.swing.ui.storage.StorageStep; import fr.ird.observe.application.swing.ui.storage.StorageUILauncher; import fr.ird.observe.application.swing.ui.storage.StorageUIModel; @@ -37,9 +35,10 @@ import jaxx.runtime.spi.UIHandler; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import javax.swing.AbstractAction; import javax.swing.JCheckBox; +import javax.swing.JComponent; import javax.swing.JLabel; -import javax.swing.JTree; import javax.swing.KeyStroke; import java.awt.Window; import java.awt.event.ActionEvent; @@ -78,8 +77,8 @@ public class ConfigUIHandler extends AdminTabUIHandler<ConfigUI> implements UIHa } }); - MnemonicHelper.addKeyStroke(ui.getConfigureLocalSource(),configureLocalSourceKeyStroke); - MnemonicHelper.addKeyStroke(ui.getConfigureCentralSource(),configureRemoteSourceKeyStroke); + MnemonicHelper.addKeyStroke(ui.getConfigureLocalSource(), configureLocalSourceKeyStroke); + MnemonicHelper.addKeyStroke(ui.getConfigureCentralSource(), configureRemoteSourceKeyStroke); super.afterInit(ui); UIHelper.setLayerUI(ui.getOperations(), parentUI.getOperationBlockLayerUI()); UIHelper.setLayerUI(ui.getConfig(), parentUI.getConfigBlockLayerUI()); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit a3d008ab567dccdf861cedbd55ac5566eb280b4d Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Dec 14 08:09:14 2016 +0100 Problèmes de fiabilité/rafraichissement sur le formulaire LL Captures (fixes #8859) --- .../ui/content/table/impl/longline/CatchLonglineUIHandler.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/CatchLonglineUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/CatchLonglineUIHandler.java index eeb9401..5b68d52 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/CatchLonglineUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/longline/CatchLonglineUIHandler.java @@ -634,6 +634,15 @@ public class CatchLonglineUIHandler extends ContentTableUIHandler<SetLonglineCat CatchLonglineUIModel model = getModel(); + // On supprime l'entrée sélectionnée dans le tableau + getTableModel().setSelectedRow(-1); + + // On vide les tableaux de taille + model.getSizeMeasuresTableModel().clear(); + + // On vide les tableaux de poids + model.getWeightMeasuresTableModel().clear(); + loadReferentialReferenceSetsInModel(form); model.setForm(form); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit 6387a7f632ee491ce076401aa13d27771e27dd95 Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Dec 14 08:52:18 2016 +0100 refs #8863 Bien nettoyer les modèles d'actions à la fin --- .../swing/ui/admin/AdminUILauncher.java | 65 +++++++++++----------- .../swing/ui/admin/report/ReportModel.java | 11 +++- .../admin/synchronize/data/DataSynchroModel.java | 15 +++-- .../referential/legacy/SynchronizeModel.java | 12 +++- .../referential/ng/ReferentialSynchroModel.java | 16 ++++-- .../swing/ui/admin/validate/ValidateModel.java | 4 ++ 6 files changed, 79 insertions(+), 44 deletions(-) diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/AdminUILauncher.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/AdminUILauncher.java index 62e9061..a8293b4 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/AdminUILauncher.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/AdminUILauncher.java @@ -2,7 +2,7 @@ * #%L * ObServe :: Application Swing * %% - * Copyright (C) 2008 - 2016 IRD, Code Lutin, Tony Chemit + * Copyright (C) 2008 - 2016 IRD, Codelutin, Tony Chemit * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as @@ -158,10 +158,10 @@ public class AdminUILauncher extends WizardUILancher<AdminStep, AdminUIModel, Ad log.info("closing dialog " + e.getWindow().getName()); } if (AdminUILauncher.this.ui.getModel().getModelState() - != WizardState.CANCELED) { + != WizardState.CANCELED) { if (log.isInfoEnabled()) { log.info("cancel panel from dialog !" + - e.getWindow().getName()); + e.getWindow().getName()); } AdminUILauncher.this.ui.cancel(); } @@ -221,40 +221,43 @@ public class AdminUILauncher extends WizardUILancher<AdminStep, AdminUIModel, Ad AdminUIModel model = ui.getModel(); - try { - + ConfigModel.doCloseSource(model.getConfigModel().getCentralSource()); + ConfigModel.doCloseSource(model.getConfigModel().getLocalSource()); - ConfigModel.doCloseSource(model.getConfigModel().getCentralSource()); - ConfigModel.doCloseSource(model.getConfigModel().getLocalSource()); + model.destroy(); + ui.dispose(); - if (!(parent instanceof ObserveMainUI)) { - JDialog dialog = (JDialog) parent; - if (log.isInfoEnabled()) { - log.info("dispose ui!"); - } - ui.dispose(); - dialog.setVisible(false); - dialog.dispose(); - if (log.isInfoEnabled()) { - log.info("After dispose."); - } - ObserveSwingApplicationContext.get().releaseLock(); - return; + if (!(parent instanceof ObserveMainUI)) { + JDialog dialog = (JDialog) parent; + if (log.isInfoEnabled()) { + log.info("dispose ui!"); + } + dialog.setVisible(false); + dialog.dispose(); + if (log.isInfoEnabled()) { + log.info("After dispose."); } + ObserveSwingApplicationContext.get().releaseLock(); + return; + } - mainUI = (ObserveMainUI) parent; - mainUI.getSynchroWizard().remove(ui); - mainUI.removeContextValue(model.getClass()); + ObserveMainUI mainUI = (ObserveMainUI) parent; + mainUI.getSynchroWizard().remove(ui); + mainUI.removeContextValue(model.getClass()); + System.runFinalization(); + System.gc(); - ObserveSwingDataSource source = model.getConfigModel().getPreviousSource(); + ObserveSwingDataSource source = model.getPreviousSource(); - if (source == null) { + if (source == null) { - // pas de service auparavant - mainUI.getModel().setMode(ObserveUIMode.NO_DB); - return; - } + // pas de service auparavant + mainUI.getModel().setMode(ObserveUIMode.NO_DB); + return; + } + + try { ConfigModel.doCloseSource(source); @@ -268,9 +271,7 @@ public class AdminUILauncher extends WizardUILancher<AdminStep, AdminUIModel, Ad // on a pas reussit a reouvrir la base precedente UIHelper.handlingError("Could not close", e); - if (mainUI != null) { - mainUI.getModel().setMode(ObserveUIMode.NO_DB); - } + mainUI.setMode(ObserveUIMode.NO_DB); } } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/report/ReportModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/report/ReportModel.java index a6de627..ed0bbc5 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/report/ReportModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/report/ReportModel.java @@ -42,7 +42,6 @@ import java.net.URL; import java.util.List; import java.util.Map; import java.util.TreeMap; -import java.util.regex.Pattern; import java.util.stream.Collectors; import static fr.ird.observe.application.swing.ui.admin.AdminUIModel.SELECTED_TRIP_PROPERTY_NAME; @@ -76,8 +75,6 @@ public class ReportModel extends AdminActionModel { public static final String VALID_PROPERTY_NAME = "valid"; - public static final Pattern REPORT_DEFINITION_PATTERN = Pattern.compile("report.(\\w+).name"); - /** Logger. */ private static final Log log = LogFactory.getLog(ReportModel.class); @@ -123,6 +120,14 @@ public class ReportModel extends AdminActionModel { } + @Override + public void destroy() { + super.destroy(); + variables.clear(); + resultModel = null; + reports = null; + } + public List<Report> loadReports(URL resource) throws IOException { ReportBuilder builder = new ReportBuilder(); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/synchronize/data/DataSynchroModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/synchronize/data/DataSynchroModel.java index b5f5342..05bd5c2 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/synchronize/data/DataSynchroModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/synchronize/data/DataSynchroModel.java @@ -25,15 +25,12 @@ package fr.ird.observe.application.swing.ui.admin.synchronize.data; import fr.ird.observe.application.swing.db.ObserveSwingDataSource; import fr.ird.observe.application.swing.ui.admin.AdminActionModel; import fr.ird.observe.application.swing.ui.admin.AdminStep; -import fr.ird.observe.application.swing.ui.admin.AdminUI; -import fr.ird.observe.application.swing.ui.admin.config.ConfigUI; import fr.ird.observe.application.swing.ui.admin.synchronize.data.task.DataSynchronizeTaskSupport; -import fr.ird.observe.application.swing.ui.tree.selection.SelectionTreeModel; +import fr.ird.observe.application.swing.ui.storage.tabs.DataSelectionModel; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import javax.swing.DefaultListModel; -import javax.swing.border.TitledBorder; /** * Created on 02/08/16. @@ -85,6 +82,16 @@ public class DataSynchroModel extends AdminActionModel { } + @Override + public void destroy() { + super.destroy(); + leftSelectionDataModel.destroy(); + rightSelectionDataModel.destroy(); + tasks.clear(); + leftSource = null; + rightSource = null; + } + public void setLeftSelectionDataModel(SelectionTreeModel leftSelectionDataModel) { this.leftSelectionDataModel = leftSelectionDataModel; } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/synchronize/referential/legacy/SynchronizeModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/synchronize/referential/legacy/SynchronizeModel.java index 5410c75..54a6d85 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/synchronize/referential/legacy/SynchronizeModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/synchronize/referential/legacy/SynchronizeModel.java @@ -2,7 +2,7 @@ * #%L * ObServe :: Application Swing * %% - * Copyright (C) 2008 - 2016 IRD, Code Lutin, Tony Chemit + * Copyright (C) 2008 - 2016 IRD, Codelutin, Tony Chemit * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as @@ -23,6 +23,8 @@ package fr.ird.observe.application.swing.ui.admin.synchronize.referential.legacy import fr.ird.observe.application.swing.db.ObserveSwingDataSource; import fr.ird.observe.application.swing.ui.admin.AdminUIModel; +import fr.ird.observe.application.swing.ui.admin.AdminActionModel; +import fr.ird.observe.application.swing.ui.admin.AdminStep; import fr.ird.observe.services.service.actions.synchro.referential.legacy.UnidirectionalReferentialSynchronizeCallbackResults; import fr.ird.observe.services.service.actions.synchro.referential.legacy.UnidirectionalReferentialSynchronizeContext; import fr.ird.observe.services.service.actions.synchro.referential.legacy.UnidirectionalReferentialSynchronizeEngine; @@ -119,9 +121,17 @@ public class SynchronizeModel extends AdminActionModel { return obsoleteReferencesSelectionModel; } + @Override public void destroy() { + super.destroy(); obsoleteReferencesSelectionModel.clearSelection(); obsoleteReferences.clear(); + referentialSynchronizeCallbackResults = null; + referentialSynchronizeResult = null; + centralSource = null; + source = null; + engine = null; + referentialSynchronizeContext = null; } public boolean validate(AdminUIModel uiModel, AdminStep step) { diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/synchronize/referential/ng/ReferentialSynchroModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/synchronize/referential/ng/ReferentialSynchroModel.java index 4606e91..d7bee06 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/synchronize/referential/ng/ReferentialSynchroModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/synchronize/referential/ng/ReferentialSynchroModel.java @@ -39,8 +39,6 @@ import fr.ird.observe.services.dto.referential.ReferentialReferenceSet; import fr.ird.observe.services.service.actions.synchro.referential.diff.ReferentialSynchronizeDiffsEngine; import fr.ird.observe.services.service.actions.synchro.referential.ng.ReferentialSynchronizeService; import fr.ird.observe.services.service.actions.synchro.referential.ng.ReferentialSynchronizeServiceEngine; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; import java.beans.PropertyChangeListener; import java.util.ArrayList; @@ -74,8 +72,7 @@ public class ReferentialSynchroModel extends AdminActionModel { public static final String DESACTIVATE_WITH_REPLACE_LEFT_PROPERTY_NAME = "desactivateWithReplaceLeft"; public static final String REVERT_RIGHT_PROPERTY_NAME = "revertRight"; public static final String REVERT_LEFT_PROPERTY_NAME = "revertLeft"; - /** Logger. */ - private static final Log log = LogFactory.getLog(ReferentialSynchroModel.class); + private final ReferentialSynchronizeTaskListModel tasks; private ObserveSwingDataSource leftSource; private ObserveSwingDataSource rightSource; @@ -101,6 +98,17 @@ public class ReferentialSynchroModel extends AdminActionModel { this.tasks = new ReferentialSynchronizeTaskListModel(); } + @Override + public void destroy() { + super.destroy(); + tasks.clear(); + leftSource = null; + rightSource = null; + leftTreeModel = null; + rightTreeModel = null; + engine = null; + } + public ReferentialSynchronizeMode getSynchronizeMode() { return synchronizeMode; } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/validate/ValidateModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/validate/ValidateModel.java index d25676f..003c83b 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/validate/ValidateModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/validate/ValidateModel.java @@ -102,6 +102,7 @@ public class ValidateModel extends AdminActionModel { messages = new TreeMap<>(); } + /** * @return le nom par defaut du rapport de validation à enregistrer. */ @@ -253,6 +254,9 @@ public class ValidateModel extends AdminActionModel { if (validators != null) { validators = null; } + if (allValidators != null) { + allValidators = null; + } } public void start(AdminUIModel uiModel) { -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit 5ffa8ba22e2d3bc0a7f560ab955dea9bf487bbf1 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Dec 15 18:35:47 2016 +0100 fix cherry-pick --- .../ird/observe/application/swing/ui/admin/AdminUILauncher.java | 8 +++----- .../swing/ui/admin/synchronize/data/DataSynchroModel.java | 5 ++++- .../admin/synchronize/referential/ng/ReferentialSynchroModel.java | 5 +++++ .../nuiton/topia/service/sql/batch/actions/DropSchemaAction.java | 2 ++ 4 files changed, 14 insertions(+), 6 deletions(-) diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/AdminUILauncher.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/AdminUILauncher.java index a8293b4..1d56234 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/AdminUILauncher.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/AdminUILauncher.java @@ -217,8 +217,6 @@ public class AdminUILauncher extends WizardUILancher<AdminStep, AdminUIModel, Ad log.info(this + ", was canceled ? " + wasCanceled); } - ObserveMainUI mainUI = null; - AdminUIModel model = ui.getModel(); ConfigModel.doCloseSource(model.getConfigModel().getCentralSource()); @@ -241,14 +239,14 @@ public class AdminUILauncher extends WizardUILancher<AdminStep, AdminUIModel, Ad return; } - ObserveMainUI mainUI = (ObserveMainUI) parent; + ObserveMainUI mainUI = ObserveSwingApplicationContext.get().getMainUI(); mainUI.getSynchroWizard().remove(ui); mainUI.removeContextValue(model.getClass()); System.runFinalization(); System.gc(); - ObserveSwingDataSource source = model.getPreviousSource(); + ObserveSwingDataSource source = model.getConfigModel().getPreviousSource(); if (source == null) { @@ -271,7 +269,7 @@ public class AdminUILauncher extends WizardUILancher<AdminStep, AdminUIModel, Ad // on a pas reussit a reouvrir la base precedente UIHelper.handlingError("Could not close", e); - mainUI.setMode(ObserveUIMode.NO_DB); + mainUI.getModel().setMode(ObserveUIMode.NO_DB); } } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/synchronize/data/DataSynchroModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/synchronize/data/DataSynchroModel.java index 05bd5c2..fd607f2 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/synchronize/data/DataSynchroModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/synchronize/data/DataSynchroModel.java @@ -25,12 +25,15 @@ package fr.ird.observe.application.swing.ui.admin.synchronize.data; import fr.ird.observe.application.swing.db.ObserveSwingDataSource; import fr.ird.observe.application.swing.ui.admin.AdminActionModel; import fr.ird.observe.application.swing.ui.admin.AdminStep; +import fr.ird.observe.application.swing.ui.admin.AdminUI; +import fr.ird.observe.application.swing.ui.admin.config.ConfigUI; import fr.ird.observe.application.swing.ui.admin.synchronize.data.task.DataSynchronizeTaskSupport; -import fr.ird.observe.application.swing.ui.storage.tabs.DataSelectionModel; +import fr.ird.observe.application.swing.ui.tree.selection.SelectionTreeModel; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import javax.swing.DefaultListModel; +import javax.swing.border.TitledBorder; /** * Created on 02/08/16. diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/synchronize/referential/ng/ReferentialSynchroModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/synchronize/referential/ng/ReferentialSynchroModel.java index d7bee06..102f62d 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/synchronize/referential/ng/ReferentialSynchroModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/synchronize/referential/ng/ReferentialSynchroModel.java @@ -39,6 +39,8 @@ import fr.ird.observe.services.dto.referential.ReferentialReferenceSet; import fr.ird.observe.services.service.actions.synchro.referential.diff.ReferentialSynchronizeDiffsEngine; import fr.ird.observe.services.service.actions.synchro.referential.ng.ReferentialSynchronizeService; import fr.ird.observe.services.service.actions.synchro.referential.ng.ReferentialSynchronizeServiceEngine; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import java.beans.PropertyChangeListener; import java.util.ArrayList; @@ -54,6 +56,9 @@ import static org.nuiton.i18n.I18n.t; */ public class ReferentialSynchroModel extends AdminActionModel { + /** Logger */ + private static final Log log = LogFactory.getLog(ReferentialSynchroModel.class); + public static final String LEFT_SOURCE_PROPERTY_NAME = "leftSource"; public static final String RIGHT_SOURCE_PROPERTY_NAME = "rightSource"; public static final String TASKS_PROPERTY_NAME = "tasks"; diff --git a/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/DropSchemaAction.java b/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/DropSchemaAction.java index 0ee1dbb..af817f4 100644 --- a/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/DropSchemaAction.java +++ b/topia-extension/src/main/java/org/nuiton/topia/service/sql/batch/actions/DropSchemaAction.java @@ -22,6 +22,8 @@ package org.nuiton.topia.service.sql.batch.actions; * #L% */ +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.hibernate.HibernateException; import org.hibernate.dialect.Dialect; import org.hibernate.tool.hbm2ddl.SchemaExport; -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit db0f405f44425eef13f40e9d1638611f0af81a0e Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Dec 14 09:39:59 2016 +0100 fix cherry-pick --- .../observe/application/swing/ui/content/ContentUI.jaxx | 4 ++++ .../application/swing/ui/content/ContentUIHandler.java | 17 +++++++++++++---- .../application/swing/ui/content/ContentUIManager.java | 9 +++++++++ .../application/swing/ui/content/ContentUIModel.java | 6 ++++++ .../application/swing/ui/content/ObserveContentUI.java | 2 ++ 5 files changed, 34 insertions(+), 4 deletions(-) diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUI.jaxx index 7513538..c4a5c40 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUI.jaxx @@ -99,6 +99,10 @@ public boolean close() { return getHandler().closeUI(); } +public void destroy() { + getHandler().destroyUI(); +} + public void startEdit(E o) { getHandler().startEditUI(); } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIHandler.java index db8fe1e..1e449c9 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIHandler.java @@ -54,6 +54,7 @@ import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.dto.referential.ReferentialReferenceSet; import fr.ird.observe.services.dto.referential.ReferentialReferences; import jaxx.runtime.JAXXContext; +import jaxx.runtime.context.DefaultJAXXContext; import jaxx.runtime.swing.editor.bean.BeanComboBox; import jaxx.runtime.swing.editor.bean.BeanListHeader; import jaxx.runtime.validator.swing.SwingValidatorMessageTableModel; @@ -343,6 +344,14 @@ public abstract class ContentUIHandler<E extends IdDto, U extends ContentUI<E, U } + public void destroyUI() { + UIHelper.removeAllDataBindings(getUi()); + getModel().destroy(); + UIHelper.destroy((Component) getUi()); + DefaultJAXXContext delegateContext = (DefaultJAXXContext) getUi().getDelegateContext(); + delegateContext.clear(); + } + protected void installFocusTraversalPolicy() { ObserveSwingApplicationContext.get().getFocusManager().installFocusTraversalPolicy(ui); } @@ -938,7 +947,7 @@ public abstract class ContentUIHandler<E extends IdDto, U extends ContentUI<E, U } - // sortReferential data from first decorator context + // sort data from first decorator context DataReferenceDecorator<R> decorator = getDataReferenceDecorator(dtoClass); DecoratorUtil.sort(decorator, data, 0); @@ -965,7 +974,7 @@ public abstract class ContentUIHandler<E extends IdDto, U extends ContentUI<E, U } - // sortReferential data from first decorator context + // sort data from first decorator context ReferentialReferenceDecorator<R> decorator = getReferentialReferenceDecorator(dtoClass); DecoratorUtil.sort(decorator, data, 0); @@ -999,7 +1008,7 @@ public abstract class ContentUIHandler<E extends IdDto, U extends ContentUI<E, U } - // sortReferential data from first decorator context + // sort data from first decorator context ReferentialReferenceDecorator<R> decorator = getReferentialReferenceDecorator(dtoClass); DecoratorUtil.sort(decorator, data, 0); @@ -1031,7 +1040,7 @@ public abstract class ContentUIHandler<E extends IdDto, U extends ContentUI<E, U } - // sortReferential data from first decorator context + // sort data from first decorator context DataReferenceDecorator<R> decorator = getDataReferenceDecorator(dtoClass); DecoratorUtil.sort(decorator, data, 0); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIManager.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIManager.java index 3eaa004..1c18476 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIManager.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIManager.java @@ -191,6 +191,15 @@ public class ContentUIManager { return closed; } + public void removeSelectedContentUI() { + + ContentUI<?, ?> selectedContentUI = getSelectedContentUI(); + if (selectedContentUI != null) { + getLayout().removeLayoutComponent(selectedContentUI, selectedContentUI.getClass().getName()); + selectedContentUI.destroy(); + } + } + public void restartEdit() { ContentUI<?, ?> selectedUI = getSelectedContentUI(); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIModel.java index 7ac6e1e..8c32cce 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIModel.java @@ -328,4 +328,10 @@ public abstract class ContentUIModel<E extends IdDto> extends AbstractSerializab return (DataReferenceSet<R>) referenceSet; } + public void destroy() { + dataReferenceSetsByPropertyName = null; + referentialReferenceSetsByPropertyName = null; + form = null; + bean = null; + } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ObserveContentUI.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ObserveContentUI.java index 76363cd..ef383d9 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ObserveContentUI.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ObserveContentUI.java @@ -62,6 +62,8 @@ public interface ObserveContentUI<E extends IdDto, U extends ContentUI<E, U>> ex boolean close(); + void destroy(); + void stopEdit(); void startEdit(E bean); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit c976414f157dc47c289e9d7b71a6773107894525 Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Dec 14 09:56:16 2016 +0100 refs #8863 Prévenir des fuites mémoires quand on change de source + réusinage des dernières modifications --- .../observe/application/swing/ObserveRunner.java | 5 + .../swing/db/ObserveSwingDataSource.java | 9 +- .../swing/ui/admin/AdminUILauncher.java | 4 +- .../swing/ui/content/list/ContentListUIModel.java | 7 ++ .../ui/content/table/ContentTableUIModel.java | 9 +- .../swing/ui/storage/StorageUIHandler.java | 2 + .../swing/ui/storage/StorageUILauncher.java | 108 ++++++++++++++++++++- 7 files changed, 137 insertions(+), 7 deletions(-) diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ObserveRunner.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ObserveRunner.java index 3579795..b56adbc 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ObserveRunner.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ObserveRunner.java @@ -98,6 +98,11 @@ public abstract class ObserveRunner extends ApplicationRunner { return actionExecutor; } + public static void cleanMemory() { + System.runFinalization(); + System.gc(); + } + public abstract String getRunnerName(); private final boolean init; diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/db/ObserveSwingDataSource.java b/application-swing/src/main/java/fr/ird/observe/application/swing/db/ObserveSwingDataSource.java index 21e2326..4bb8f63 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/db/ObserveSwingDataSource.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/db/ObserveSwingDataSource.java @@ -4,7 +4,7 @@ package fr.ird.observe.application.swing.db; * #%L * ObServe :: Application Swing * %% - * Copyright (C) 2008 - 2016 IRD, Code Lutin, Tony Chemit + * Copyright (C) 2008 - 2016 IRD, Codelutin, Tony Chemit * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as @@ -26,6 +26,7 @@ import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.SetMultimap; +import fr.ird.observe.application.swing.ObserveRunner; import fr.ird.observe.application.swing.ObserveSwingApplicationContext; import fr.ird.observe.application.swing.configuration.ObserveSwingApplicationConfig; import fr.ird.observe.application.swing.db.event.ObserveSwingDataSourceEvent; @@ -59,7 +60,10 @@ import fr.ird.observe.services.service.DatabaseConnexionNotAuthorizedException; import fr.ird.observe.services.service.DatabaseDestroyNotAuthorizedException; import fr.ird.observe.services.service.DatabaseNotFoundException; import fr.ird.observe.services.service.LastUpdateDateService; +import fr.ird.observe.services.service.ObserveReferentialCache; import fr.ird.observe.services.service.PingService; +import fr.ird.observe.services.service.ReferentialService; +import fr.ird.observe.services.service.SqlScriptProducerService; import fr.ird.observe.services.service.actions.consolidate.ConsolidateDataService; import fr.ird.observe.services.service.actions.report.ReportService; import fr.ird.observe.services.service.actions.synchro.referential.diff.ReferentialSynchronizeDiffService; @@ -241,6 +245,9 @@ public class ObserveSwingDataSource extends AbstractSerializableBean implements dataSourceService.close(); } } finally { + + ObserveRunner.cleanMemory(); + connection = null; expired = false; diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/AdminUILauncher.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/AdminUILauncher.java index 1d56234..e681d11 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/AdminUILauncher.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/AdminUILauncher.java @@ -21,6 +21,7 @@ */ package fr.ird.observe.application.swing.ui.admin; +import fr.ird.observe.application.swing.ObserveRunner; import fr.ird.observe.application.swing.ObserveSwingApplicationContext; import fr.ird.observe.application.swing.db.ObserveSwingDataSource; import fr.ird.observe.application.swing.ui.ObserveMainUI; @@ -243,8 +244,7 @@ public class AdminUILauncher extends WizardUILancher<AdminStep, AdminUIModel, Ad mainUI.getSynchroWizard().remove(ui); mainUI.removeContextValue(model.getClass()); - System.runFinalization(); - System.gc(); + ObserveRunner.cleanMemory(); ObserveSwingDataSource source = model.getConfigModel().getPreviousSource(); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/ContentListUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/ContentListUIModel.java index d9d2a5a..6961482 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/ContentListUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/ContentListUIModel.java @@ -82,6 +82,13 @@ public abstract class ContentListUIModel<E extends IdDto, C extends DataDto> ext this.childType = childType; } + @Override + public void destroy() { + super.destroy(); + dataReferenceSetsByPropertyName = null; + selectedDatas = null; + } + public Class<C> getChildType() { return childType; } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ContentTableUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ContentTableUIModel.java index 3209c07..a4d27ce 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ContentTableUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/ContentTableUIModel.java @@ -2,7 +2,7 @@ * #%L * ObServe :: Application Swing * %% - * Copyright (C) 2008 - 2016 IRD, Code Lutin, Tony Chemit + * Copyright (C) 2008 - 2016 IRD, Codelutin, Tony Chemit * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as @@ -205,6 +205,13 @@ public abstract class ContentTableUIModel<E extends IdDto, D extends IdDto> exte firePropertyChange(PROPERTY_SHOW_DATA, oldValue, showData); } + @Override + public void destroy() { + super.destroy(); + tableEditBean = null; + tableModel = null; + } + protected BinderModelBuilder<D, D> prepareChildLoador(String binderName) { String[] properties = getChildProperties(); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageUIHandler.java index daf3777..f636b87 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageUIHandler.java @@ -542,6 +542,8 @@ public class StorageUIHandler implements UIHandler<StorageUI> { } catch (Exception ex) { UIHelper.handlingError(ex); throw new RuntimeException(ex); + } finally { + ObserveRunner.cleanMemory(); } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageUILauncher.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageUILauncher.java index 50e6cf0..64174cf 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageUILauncher.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageUILauncher.java @@ -2,7 +2,7 @@ * #%L * ObServe :: Application Swing * %% - * Copyright (C) 2008 - 2016 IRD, Code Lutin, Tony Chemit + * Copyright (C) 2008 - 2016 IRD, Codelutin, Tony Chemit * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as @@ -21,9 +21,11 @@ */ package fr.ird.observe.application.swing.ui.storage; +import fr.ird.observe.application.swing.ObserveRunner; import fr.ird.observe.application.swing.ObserveSwingApplicationContext; import fr.ird.observe.application.swing.configuration.ObserveSwingApplicationConfig; import fr.ird.observe.application.swing.configuration.constants.DbMode; +import fr.ird.observe.application.swing.ui.ObserveMainUIHandler; import fr.ird.observe.application.swing.ui.UIHelper; import jaxx.runtime.JAXXContext; import jaxx.runtime.JAXXObject; @@ -110,6 +112,9 @@ public class StorageUILauncher extends WizardUILancher<StorageStep, StorageUIMod super.doClose(ui, wasCanceled); ui.getModel().setBusy(false); ui.dispose(); + + ObserveRunner.cleanMemory(); + } /** @@ -149,7 +154,7 @@ public class StorageUILauncher extends WizardUILancher<StorageStep, StorageUIMod model.setCanUseServerService(modes.contains(DbMode.USE_SERVER)); model.updateUniverse(); - model.setDbMode(modes.stream().findFirst().orElse(DbMode.USE_LOCAL)); + model.setDbMode(modes.stream().findFirst().orElse(null)); } else { ObserveSwingApplicationConfig config = ObserveSwingApplicationContext.get().getConfig(); @@ -222,7 +227,7 @@ public class StorageUILauncher extends WizardUILancher<StorageStep, StorageUIMod * @param mainUI la fenetre principale parent (peut etre null) * @param model le modèle de source de données à utiliser * @param title le titre de la fenêtre - * @param dbMode le type deconnexion (base distante ou serveur distant) + * @param model le type deconnexion (base distante ou serveur distant) * @see StorageUI */ public static void obtainConnexion(JAXXContext context, Window mainUI, StorageUIModel model, String title, DbMode dbMode) { @@ -284,6 +289,103 @@ public class StorageUILauncher extends WizardUILancher<StorageStep, StorageUIMod } /** + * Méthode pour lancer l'action de connexion à une base locale. + * + * @param context le context applicatif + * @param mainUI la fenetre principale parent (peut etre null) + * @param model le modèle de source de données à utiliser + * @see StorageUI + */ + public static void obtainLocalConnexion(final JAXXContext context, + Window mainUI, + final StorageUIModel model) { + + if (mainUI == null) { + mainUI = ObserveSwingApplicationContext.get().getMainUI(); + } + + addStorageUIHandler(context); + + StorageUILauncher launcher = new StorageUILauncher( + context, + mainUI, + model, + t("observe.title.connect.localDB")) { + + @Override + protected StorageUI createUI(JAXXContext context, + Window mainUI, + Class<StorageUI> storageUIClass, + Class<StorageUIModel> modelClass, + StorageUIModel model) throws Exception { + if (!(mainUI instanceof JAXXObject)) { + // sinon on a pas de context propagé... + mainUI = null; + } + return super.createUI(context, mainUI, storageUIClass, modelClass, model); + } + + @Override + protected void init(StorageUI ui) { + StorageUIModel model = ui.getModel(); + + int nbModes = 0; + + DbMode mode = null; + if (model.isCanCreateLocalService()) { + nbModes++; + mode = DbMode.CREATE_LOCAL; + } + if (model.isCanUseLocalService()) { + nbModes++; + mode = DbMode.USE_LOCAL; + } + if (model.isCanUseRemoteService()) { + nbModes++; + mode = DbMode.USE_REMOTE; + } + if (model.isCanUseServerService()) { + nbModes++; + mode = DbMode.USE_SERVER; + } + + if (nbModes == 1) { + + if (log.isDebugEnabled()) { + log.debug("Only one mode available [" + mode + + "], set it in model"); + } + + // un seul mode possible, on le sélectionne + model.setDbMode(mode); + } + + // on supprime des étapes + model.setExcludeSteps(Arrays.asList( + StorageStep.BACKUP, + StorageStep.CONFIG_REFERENTIEL, + StorageStep.CONFIG_DATA, + StorageStep.SELECT_DATA, + StorageStep.CONFIRM)); + + model.updateUniverse(); + } + + @Override + protected void doAction(StorageUI ui) { + super.doAction(ui); + if (log.isDebugEnabled()) { + log.debug("Apply new local connexion to " + model); + } + ui.getModel().copyTo(model); + model.validate(); + } + }; + + launcher.start(); + } + + /** * Méthode pour lancer l'action de connexion à une base locale ou distante. * * @param context le context applicatif -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit e0354e1a8e7789854f93b0e9e8e1ab83f66aff9f Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Dec 14 11:35:00 2016 +0100 Si on ferme la base, il reste des références sur celle-ci, ce qui peut induire des fuites mémoires (fixes #8875) --- .../ObserveSwingApplicationDataSourcesManager.java | 1 + .../actions/menu/storage/CloseStorageAction.java | 7 ++-- .../actions/menu/storage/ReloadStorageAction.java | 2 +- .../topia/service/DataSourceServiceTopia.java | 43 +++++++++------------- 4 files changed, 23 insertions(+), 30 deletions(-) diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ObserveSwingApplicationDataSourcesManager.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ObserveSwingApplicationDataSourcesManager.java index a29de90..9643249 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ObserveSwingApplicationDataSourcesManager.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ObserveSwingApplicationDataSourcesManager.java @@ -267,6 +267,7 @@ public class ObserveSwingApplicationDataSourcesManager implements Closeable { } // Ne pas supprimer, utilisé par ObserveRunner + @SuppressWarnings("unused") public void initStorage(ObserveSwingApplicationConfig config, ObserveMainUI mainUI, boolean askToCreate) { if (config.isLocalStorageExist()) { diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/menu/storage/CloseStorageAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/menu/storage/CloseStorageAction.java index e41be83..9d5384a 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/menu/storage/CloseStorageAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/menu/storage/CloseStorageAction.java @@ -1,10 +1,10 @@ -package fr.ird.observe.application.swing.ui.actions.menu.storage; +package fr.ird.observe.application.swing.ui.actions; /* * #%L * ObServe :: Application Swing * %% - * Copyright (C) 2008 - 2016 IRD, Code Lutin, Tony Chemit + * Copyright (C) 2008 - 2016 IRD, Codelutin, Tony Chemit * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as @@ -25,7 +25,7 @@ package fr.ird.observe.application.swing.ui.actions.menu.storage; import fr.ird.observe.application.swing.ObserveSwingApplicationContext; import fr.ird.observe.application.swing.db.ObserveSwingDataSource; import fr.ird.observe.application.swing.ui.ObserveMainUI; -import fr.ird.observe.application.swing.ui.actions.AbstractUIAction; +import jaxx.runtime.SwingUtil; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -78,6 +78,7 @@ public class CloseStorageAction extends AbstractUIAction { // on doit fermer le storage en cours d'utilisation source.close(); } finally { + ObserveSwingApplicationContext.get().getDataSourcesManager().setMainDataSource(null); ui.getModel().setBusy(false); } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/menu/storage/ReloadStorageAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/menu/storage/ReloadStorageAction.java index 52efa91..53cad65 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/menu/storage/ReloadStorageAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/menu/storage/ReloadStorageAction.java @@ -109,7 +109,7 @@ public class ReloadStorageAction extends AbstractUIAction { context.setNodesToReselect(ids); // attachement a l'ui - context.getDataSourcesManager().prepareMainStorage(storage, false); + context.getDataSourcesManager().prepareMainStorage(storage, true); // ouverture du service storage.open(); diff --git a/services-topia/src/main/java/fr/ird/observe/services/topia/service/DataSourceServiceTopia.java b/services-topia/src/main/java/fr/ird/observe/services/topia/service/DataSourceServiceTopia.java index 77f66a9..447c32a 100644 --- a/services-topia/src/main/java/fr/ird/observe/services/topia/service/DataSourceServiceTopia.java +++ b/services-topia/src/main/java/fr/ird/observe/services/topia/service/DataSourceServiceTopia.java @@ -33,12 +33,12 @@ import fr.ird.observe.ObserveTopiaConfigurationFactory; import fr.ird.observe.entities.migration.ObserveMigrationConfigurationProvider; import fr.ird.observe.entities.referentiel.ObserveReferentialEntity; import fr.ird.observe.services.configuration.ObserveDataSourceConfiguration; +import fr.ird.observe.services.configuration.ObserveDataSourceConnection; +import fr.ird.observe.services.configuration.ObserveDataSourceInformation; import fr.ird.observe.services.configuration.topia.ObserveDataSourceConfigurationTopiaH2; import fr.ird.observe.services.configuration.topia.ObserveDataSourceConfigurationTopiaPG; import fr.ird.observe.services.configuration.topia.ObserveDataSourceConfigurationTopiaSupport; -import fr.ird.observe.services.configuration.ObserveDataSourceConnection; import fr.ird.observe.services.configuration.topia.ObserveDataSourceConnectionTopia; -import fr.ird.observe.services.configuration.ObserveDataSourceInformation; import fr.ird.observe.services.dto.DataSourceCreateConfigurationDto; import fr.ird.observe.services.dto.DataSourceCreateWithNoReferentialImportException; import fr.ird.observe.services.dto.IncompatibleDataSourceCreateConfigurationException; @@ -429,15 +429,7 @@ public class DataSourceServiceTopia extends ObserveServiceTopia implements DataS ObserveDataSourceConfigurationTopiaSupport dataSourceConfiguration = serviceContext.getDataSourceConfiguration(); Optional<ObserveTopiaApplicationContext> optionalTopiaApplicationContext = ObserveTopiaApplicationContextFactory.getTopiaApplicationContextIfPresent(dataSourceConfiguration); - if (optionalTopiaApplicationContext.isPresent()) { - - ObserveTopiaApplicationContext topiaApplicationContext = optionalTopiaApplicationContext.get(); - if (log.isInfoEnabled()) { - log.info("Closing topia application context: " + dataSourceConfiguration); - } - topiaApplicationContext.close(); - - } + close(dataSourceConfiguration, optionalTopiaApplicationContext.orElse(null)); } @@ -457,15 +449,7 @@ public class DataSourceServiceTopia extends ObserveServiceTopia implements DataS Optional<ObserveTopiaApplicationContext> optionalTopiaApplicationContext = ObserveTopiaApplicationContextFactory.getTopiaApplicationContextIfPresent(dataSourceConfiguration); - if (optionalTopiaApplicationContext.isPresent()) { - - ObserveTopiaApplicationContext topiaApplicationContext = optionalTopiaApplicationContext.get(); - if (log.isInfoEnabled()) { - log.info("Closing topia application context: " + dataSourceConfiguration); - } - topiaApplicationContext.close(); - - } + close(dataSourceConfiguration, optionalTopiaApplicationContext.orElse(null)); ObserveDataSourceConfigurationTopiaH2 dataSourceConfigurationH2 = (ObserveDataSourceConfigurationTopiaH2) dataSourceConfiguration; @@ -575,7 +559,6 @@ public class DataSourceServiceTopia extends ObserveServiceTopia implements DataS protected ObserveDataSourceInformation getDataSourceInformation(ObserveDataSourceConfigurationTopiaSupport dataSourceConfiguration, ObserveTopiaConfiguration topiaConfiguration) { - boolean readReferential; boolean writeReferential; boolean readData; boolean writeData; @@ -589,7 +572,6 @@ public class DataSourceServiceTopia extends ObserveServiceTopia implements DataS if (dataSourceConfiguration.isH2Database()) { // Sur une base H2, on a le droit de tout lire, mais uniquement d'écrire les données - readReferential = true; writeReferential = false; readData = true; writeData = true; @@ -626,21 +608,19 @@ public class DataSourceServiceTopia extends ObserveServiceTopia implements DataS Set<String> referentielPrivileges = observeJdbcHelper.getTablePrivileges(ObserveSecurityHelper.OBSERVE_COMMON_SCHEMA_NAME, "vessel"); // Sur une base PG, on regarde en base ce que l'utilisateur peut lire/écrire - readReferential = true; writeReferential = canWrite(referentielPrivileges); } if (log.isDebugEnabled()) { - log.debug("User can read refererential : " + readReferential + ", " + - "write referential : " + writeReferential + ", " + + log.debug("User can write referential : " + writeReferential + ", " + "read data : " + readData + ", " + "write data : " + writeData + "."); } ObserveMigrationConfigurationProvider observeMigrationConfigurationProvider = ObserveMigrationConfigurationProvider.get(); return new ObserveDataSourceInformation( - readReferential, + true, writeReferential, readData, writeData, @@ -649,6 +629,17 @@ public class DataSourceServiceTopia extends ObserveServiceTopia implements DataS observeMigrationConfigurationProvider.getVersionsAfter(version)); } + private void close(ObserveDataSourceConfigurationTopiaSupport dataSourceConfiguration, ObserveTopiaApplicationContext topiaApplicationContext) { + if (topiaApplicationContext != null) { + + if (log.isInfoEnabled()) { + log.info("Closing topia application context: " + dataSourceConfiguration); + } + topiaApplicationContext.close(); + + } + } + private static class DetectReferentialTypesInShellBuilder implements TopiaMetadataModelVisitor { private final ImmutableSet.Builder<Class<? extends ReferentialDto>> typesInShellBuilder = ImmutableSet.builder(); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit 40649a15584c08dd41c1375c48f1f3f3bbc56b77 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Dec 15 20:32:16 2016 +0100 fix cherry-pick --- .../application/swing/db/ObserveSwingDataSource.java | 3 --- .../application/swing/ui/ObserveMainUIInitializer.java | 15 +++++++++------ .../swing/ui/actions/menu/storage/CloseStorageAction.java | 3 ++- .../swing/ui/admin/synchronize/data/DataSynchroModel.java | 5 ++--- .../referential/ng/ReferentialSynchroModel.java | 1 - .../application/swing/ui/content/ContentUIManager.java | 4 ---- .../application/swing/ui/storage/StorageUILauncher.java | 5 +---- 7 files changed, 14 insertions(+), 22 deletions(-) diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/db/ObserveSwingDataSource.java b/application-swing/src/main/java/fr/ird/observe/application/swing/db/ObserveSwingDataSource.java index 4bb8f63..a185587 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/db/ObserveSwingDataSource.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/db/ObserveSwingDataSource.java @@ -60,10 +60,7 @@ import fr.ird.observe.services.service.DatabaseConnexionNotAuthorizedException; import fr.ird.observe.services.service.DatabaseDestroyNotAuthorizedException; import fr.ird.observe.services.service.DatabaseNotFoundException; import fr.ird.observe.services.service.LastUpdateDateService; -import fr.ird.observe.services.service.ObserveReferentialCache; import fr.ird.observe.services.service.PingService; -import fr.ird.observe.services.service.ReferentialService; -import fr.ird.observe.services.service.SqlScriptProducerService; import fr.ird.observe.services.service.actions.consolidate.ConsolidateDataService; import fr.ird.observe.services.service.actions.report.ReportService; import fr.ird.observe.services.service.actions.synchro.referential.diff.ReferentialSynchronizeDiffService; diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUIInitializer.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUIInitializer.java index 29c8057..daac71c 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUIInitializer.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/ObserveMainUIInitializer.java @@ -21,6 +21,7 @@ */ package fr.ird.observe.application.swing.ui; +import fr.ird.observe.application.swing.ObserveRunner; import fr.ird.observe.application.swing.ObserveSwingApplicationContext; import fr.ird.observe.application.swing.configuration.ObserveSwingApplicationConfig; import fr.ird.observe.application.swing.db.DataContext; @@ -221,17 +222,19 @@ public class ObserveMainUIInitializer { } } - // on recherche l'ui (voir si elle existe déjà) - ContentUI<?, ?> content = manager.getContent(uiClass); - - if (content == null) { - - content = manager.createContent(uiClass); + ContentUI<?, ?> previousSelectedContent = manager.getSelectedContentUI(); + if (previousSelectedContent != null) { + manager.removeSelectedContentUI(); } + // on recherche l'ui (voir si elle existe déjà) + ContentUI<?, ?> content = manager.createContent(uiClass); + // on ouvre l'écran manager.openContent(content); + ObserveRunner.cleanMemory(); + if (focusOnNavigation) SwingUtilities.invokeLater(focusOwner::requestFocusInWindow); } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/menu/storage/CloseStorageAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/menu/storage/CloseStorageAction.java index 9d5384a..772d4c4 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/menu/storage/CloseStorageAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/menu/storage/CloseStorageAction.java @@ -1,4 +1,4 @@ -package fr.ird.observe.application.swing.ui.actions; +package fr.ird.observe.application.swing.ui.actions.menu.storage; /* * #%L @@ -25,6 +25,7 @@ package fr.ird.observe.application.swing.ui.actions; import fr.ird.observe.application.swing.ObserveSwingApplicationContext; import fr.ird.observe.application.swing.db.ObserveSwingDataSource; import fr.ird.observe.application.swing.ui.ObserveMainUI; +import fr.ird.observe.application.swing.ui.actions.AbstractUIAction; import jaxx.runtime.SwingUtil; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/synchronize/data/DataSynchroModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/synchronize/data/DataSynchroModel.java index fd607f2..d509b70 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/synchronize/data/DataSynchroModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/synchronize/data/DataSynchroModel.java @@ -48,7 +48,6 @@ public class DataSynchroModel extends AdminActionModel { public static final String LEFT_SOURCE_PROPERTY_NAME = "leftSource"; public static final String RIGHT_SOURCE_PROPERTY_NAME = "rightSource"; -// public static final String TASKS_PROPERTY_NAME = "tasks"; public static final String LEFT_SELECTION_MODEL_CHANGED_PROPERTY_NAME = "leftSelectionModelChanged"; public static final String RIGHT_SELECTION_MODEL_CHANGED_PROPERTY_NAME = "rightSelectionModelChanged"; @@ -88,8 +87,8 @@ public class DataSynchroModel extends AdminActionModel { @Override public void destroy() { super.destroy(); - leftSelectionDataModel.destroy(); - rightSelectionDataModel.destroy(); + leftSelectionDataModel = null; + rightSelectionDataModel = null; tasks.clear(); leftSource = null; rightSource = null; diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/synchronize/referential/ng/ReferentialSynchroModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/synchronize/referential/ng/ReferentialSynchroModel.java index 102f62d..b4f2126 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/synchronize/referential/ng/ReferentialSynchroModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/synchronize/referential/ng/ReferentialSynchroModel.java @@ -61,7 +61,6 @@ public class ReferentialSynchroModel extends AdminActionModel { public static final String LEFT_SOURCE_PROPERTY_NAME = "leftSource"; public static final String RIGHT_SOURCE_PROPERTY_NAME = "rightSource"; - public static final String TASKS_PROPERTY_NAME = "tasks"; public static final String SYNCHRONIZE_MODE_PROPERTY_NAME = "synchronizeMode"; public static final String RIGHT_TREE_MODEL_PROPERTY_NAME = "rightTreeModel"; public static final String LEFT_TREE_MODEL_PROPERTY_NAME = "lefttTreeModel"; diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIManager.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIManager.java index 1c18476..c1b6692 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIManager.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIManager.java @@ -79,9 +79,6 @@ public class ContentUIManager { String constraints = uiClass.getName(); - if (getLayout().contains(constraints)) { - throw new IllegalStateException("Already existing constrainst [" + constraints + "]"); - } U result; try { Constructor<U> constructor = uiClass.getConstructor(JAXXContext.class); @@ -102,7 +99,6 @@ public class ContentUIManager { } // initialisation du content -// result.init(); result.addMouseListener(new MouseAdapter() { @Override public void mouseEntered(MouseEvent e) { diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageUILauncher.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageUILauncher.java index 64174cf..f039245 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageUILauncher.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageUILauncher.java @@ -25,7 +25,6 @@ import fr.ird.observe.application.swing.ObserveRunner; import fr.ird.observe.application.swing.ObserveSwingApplicationContext; import fr.ird.observe.application.swing.configuration.ObserveSwingApplicationConfig; import fr.ird.observe.application.swing.configuration.constants.DbMode; -import fr.ird.observe.application.swing.ui.ObserveMainUIHandler; import fr.ird.observe.application.swing.ui.UIHelper; import jaxx.runtime.JAXXContext; import jaxx.runtime.JAXXObject; @@ -304,8 +303,6 @@ public class StorageUILauncher extends WizardUILancher<StorageStep, StorageUIMod mainUI = ObserveSwingApplicationContext.get().getMainUI(); } - addStorageUIHandler(context); - StorageUILauncher launcher = new StorageUILauncher( context, mainUI, @@ -353,7 +350,7 @@ public class StorageUILauncher extends WizardUILancher<StorageStep, StorageUIMod if (log.isDebugEnabled()) { log.debug("Only one mode available [" + mode + - "], set it in model"); + "], set it in model"); } // un seul mode possible, on le sélectionne -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
participants (1)
-
codelutin.com scm