branch develop-5.x updated (bc821a4 -> d423f43)
This is an automated email from the git hooks/post-receive script. New change to branch develop-5.x in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git from bc821a4 Petites mises au point sur le widget positions(fixes #8964) new 6861d0b Improve log (remove deprecated stuff out of it) new dabad6a fix doc new d423f43 Le serveur ouvre une quantité astronomique de connexions (Fixes #8969) The 3 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 d423f43af8ad2a80963f6c0df46438b1beb63165 Author: Tony CHEMIT <dev@tchemit.fr> Date: Wed Jan 18 20:08:59 2017 +0100 Le serveur ouvre une quantité astronomique de connexions (Fixes #8969) commit dabad6ad8d52a6d1b6276779baa02f065dace1e8 Author: Tony CHEMIT <dev@tchemit.fr> Date: Wed Jan 18 20:03:54 2017 +0100 fix doc commit 6861d0b21fb994f1f4890be8238128863f421b1d Author: Tony CHEMIT <dev@tchemit.fr> Date: Wed Jan 18 19:59:28 2017 +0100 Improve log (remove deprecated stuff out of it) Summary of changes: .../src/main/resources/log4j.properties | 2 + .../src/main/resources/observe-log4j.properties | 2 + .../src/main/resources/observeweb-log4j.conf | 3 ++ application-web/pom.xml | 6 ++- .../controller/v1/DataSourceServiceController.java | 14 +++++-- .../fr/ird/observe/ObserveTopiaConfiguration.java | 4 +- pom.xml | 2 +- .../ObserveTopiaApplicationContextFactory.java | 46 +++++++++++++++++----- src/site/rst/administration-web.rst.vm | 8 ++-- 9 files changed, 66 insertions(+), 21 deletions(-) -- 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-5.x in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit 6861d0b21fb994f1f4890be8238128863f421b1d Author: Tony CHEMIT <dev@tchemit.fr> Date: Wed Jan 18 19:59:28 2017 +0100 Improve log (remove deprecated stuff out of it) --- application-swing-configuration/src/main/resources/log4j.properties | 2 ++ .../src/main/resources/observe-log4j.properties | 2 ++ application-web-configuration/src/main/resources/observeweb-log4j.conf | 3 +++ 3 files changed, 7 insertions(+) diff --git a/application-swing-configuration/src/main/resources/log4j.properties b/application-swing-configuration/src/main/resources/log4j.properties index f8b4352..d59d703 100644 --- a/application-swing-configuration/src/main/resources/log4j.properties +++ b/application-swing-configuration/src/main/resources/log4j.properties @@ -50,5 +50,7 @@ log4j.logger.org.nuiton.config=INFO log4j.logger.org.nuiton.topia.migration=INFO log4j.logger.org.nuiton.topia.service.sql=INFO #log4j.logger.org.nuiton.jaxx.widgets.gis=INFO +log4j.logger.org.hibernate.orm.deprecation=ERROR +log4j.logger.com.zaxxer.hikari.HikariDataSource=ERROR log4j.logger.jaxx.runtime.validator.swing.SwingValidator=ERROR diff --git a/application-swing-configuration/src/main/resources/observe-log4j.properties b/application-swing-configuration/src/main/resources/observe-log4j.properties index 8fe6a85..c852076 100644 --- a/application-swing-configuration/src/main/resources/observe-log4j.properties +++ b/application-swing-configuration/src/main/resources/observe-log4j.properties @@ -52,3 +52,5 @@ log4j.logger.org.nuiton.config=INFO #log4j.logger.org.nuiton.jaxx.widgets.gis=INFO log4j.logger.jaxx.runtime.validator.swing.SwingValidator=ERROR +log4j.logger.org.hibernate.orm.deprecation=ERROR +log4j.logger.com.zaxxer.hikari.HikariDataSource=ERROR diff --git a/application-web-configuration/src/main/resources/observeweb-log4j.conf b/application-web-configuration/src/main/resources/observeweb-log4j.conf index f4d9189..2919a4b 100644 --- a/application-web-configuration/src/main/resources/observeweb-log4j.conf +++ b/application-web-configuration/src/main/resources/observeweb-log4j.conf @@ -19,3 +19,6 @@ log4j.appender.file.layout.ConversionPattern=%d{dd MMM yyyy HH:mm:ss} %5p [%t] ( log4j.logger.fr.ird.observe=INFO log4j.logger.org.nuiton.topia.migration=INFO +log4j.logger.org.hibernate.orm.deprecation=ERROR +log4j.logger.com.zaxxer.hikari.HikariDataSource=ERROR + -- 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-5.x in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit dabad6ad8d52a6d1b6276779baa02f065dace1e8 Author: Tony CHEMIT <dev@tchemit.fr> Date: Wed Jan 18 20:03:54 2017 +0100 fix doc --- src/site/rst/administration-web.rst.vm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/site/rst/administration-web.rst.vm b/src/site/rst/administration-web.rst.vm index f568610..1371cd0 100644 --- a/src/site/rst/administration-web.rst.vm +++ b/src/site/rst/administration-web.rst.vm @@ -144,12 +144,12 @@ Tester l'application Par défaut, l'application est déployée à l'adresse suivante : :: - http://localhost:8080/obwerveweb + http://localhost:8080/observeweb Vous pouvez accéder à une seule page qui regroupe l'ensemble des configurations de l'application : :: - http://localhost:8080/obwerveweb/admin/configuration?adminApiKey=changeme (ou la clef que vous avez configuré) + http://localhost:8080/observeweb/admin/configuration?adminApiKey=changeme (ou la clef que vous avez configuré) Si vous arrivez sur cette page, l'application est fonctionnelle. @@ -159,7 +159,7 @@ Recharger les configurations Vous pouvez recharger les configurations à chaud via l'adresse suivante : :: - http://localhost:8080/obwerveweb/admin/reloadConfiguration?adminApiKey=chang... (ou la clef que vous avez configuré) + http://localhost:8080/observeweb/admin/reloadConfiguration?adminApiKey=chang... (ou la clef que vous avez configuré) Supprimer les sessions utilisateurs ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -167,7 +167,7 @@ Supprimer les sessions utilisateurs Vous pouvez supprimer toutes les sessions utilisateurs via l'adresse suivante : :: - http://localhost:8080/obwerveweb/admin/resetAuthenticationTokens?adminApiKey... (ou la clef que vous avez configuré) + http://localhost:8080/observeweb/admin/resetAuthenticationTokens?adminApiKey... (ou la clef que vous avez configuré) .. _page des configurations: ./config-report.html#detail_observeWeb \ 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-5.x in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit d423f43af8ad2a80963f6c0df46438b1beb63165 Author: Tony CHEMIT <dev@tchemit.fr> Date: Wed Jan 18 20:08:59 2017 +0100 Le serveur ouvre une quantité astronomique de connexions (Fixes #8969) --- application-web/pom.xml | 6 ++- .../controller/v1/DataSourceServiceController.java | 14 +++++-- .../fr/ird/observe/ObserveTopiaConfiguration.java | 4 +- pom.xml | 2 +- .../ObserveTopiaApplicationContextFactory.java | 46 +++++++++++++++++----- 5 files changed, 55 insertions(+), 17 deletions(-) diff --git a/application-web/pom.xml b/application-web/pom.xml index eb6522a..a202e79 100644 --- a/application-web/pom.xml +++ b/application-web/pom.xml @@ -69,7 +69,11 @@ <artifactId>application-web-configuration</artifactId> <version>${project.version}</version> </dependency> - + <dependency> + <groupId>${project.groupId}</groupId> + <artifactId>services-topia</artifactId> + <version>${project.version}</version> + </dependency> <!-- commons dependencies --> <dependency> diff --git a/application-web/src/main/java/fr/ird/observe/application/web/controller/v1/DataSourceServiceController.java b/application-web/src/main/java/fr/ird/observe/application/web/controller/v1/DataSourceServiceController.java index 1dacb70..beda6c1 100644 --- a/application-web/src/main/java/fr/ird/observe/application/web/controller/v1/DataSourceServiceController.java +++ b/application-web/src/main/java/fr/ird/observe/application/web/controller/v1/DataSourceServiceController.java @@ -27,10 +27,10 @@ import fr.ird.observe.application.web.request.ObserveWebRequestContext; import fr.ird.observe.application.web.security.ObserveWebSecurityApplicationContext; import fr.ird.observe.services.configuration.ObserveDataSourceConfiguration; import fr.ird.observe.services.configuration.ObserveDataSourceConfigurationAndConnection; -import fr.ird.observe.services.configuration.rest.ObserveDataSourceConfigurationRest; import fr.ird.observe.services.configuration.ObserveDataSourceConnection; -import fr.ird.observe.services.configuration.rest.ObserveDataSourceConnectionRest; import fr.ird.observe.services.configuration.ObserveDataSourceInformation; +import fr.ird.observe.services.configuration.rest.ObserveDataSourceConfigurationRest; +import fr.ird.observe.services.configuration.rest.ObserveDataSourceConnectionRest; import fr.ird.observe.services.dto.DataSourceCreateConfigurationDto; import fr.ird.observe.services.dto.DataSourceCreateWithNoReferentialImportException; import fr.ird.observe.services.dto.IncompatibleDataSourceCreateConfigurationException; @@ -41,10 +41,12 @@ import fr.ird.observe.services.service.DataSourceService; 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.topia.ObserveTopiaApplicationContextFactory; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import java.io.File; +import java.util.LinkedHashSet; import java.util.Optional; import java.util.Set; @@ -99,8 +101,6 @@ public class DataSourceServiceController extends ObserveServiceControllerSupport @Override public void close() { - getAuthenticatedService().close(); - ObserveWebRequestContext requestContext = getRequestContext(); String authenticationToken = requestContext.getAuthenticationToken(); getSecurityApplicationContext().invalidateAuthenticationToken(authenticationToken); @@ -108,6 +108,12 @@ public class DataSourceServiceController extends ObserveServiceControllerSupport log.info("Invalidate authenticationToken: " + authenticationToken); } + Set<String> databaseAuthenticationTokens = new LinkedHashSet<>(); + for (ObserveDataSourceConfigurationAndConnection connection : getSecurityApplicationContext().getConfigurationByAuthenticationToken().values()) { + databaseAuthenticationTokens.add(connection.getConnection().getAuthenticationToken()); + } + + ObserveTopiaApplicationContextFactory.clearContexts(databaseAuthenticationTokens); } @Override diff --git a/entities/src/main/java/fr/ird/observe/ObserveTopiaConfiguration.java b/entities/src/main/java/fr/ird/observe/ObserveTopiaConfiguration.java index d5a8e41..c792353 100644 --- a/entities/src/main/java/fr/ird/observe/ObserveTopiaConfiguration.java +++ b/entities/src/main/java/fr/ird/observe/ObserveTopiaConfiguration.java @@ -43,8 +43,8 @@ public class ObserveTopiaConfiguration extends BeanTopiaConfiguration { this.h2Configuration = h2Configuration; hibernateExtraConfiguration.put(HibernateAvailableSettings.CONNECTION_PROVIDER, HikariCPConnectionProvider.class.getName()); - hibernateExtraConfiguration.put("hibernate.hikari.minimumIdle", "2"); - hibernateExtraConfiguration.put("hibernate.hikari.maximumPoolSize", "20"); + hibernateExtraConfiguration.put("hibernate.hikari.minimumIdle", "1"); + hibernateExtraConfiguration.put("hibernate.hikari.maximumPoolSize", "10"); hibernateExtraConfiguration.put("hibernate.hikari.autoCommit", "false"); hibernateExtraConfiguration.put("hibernate.hikari.registerMbeans", "true"); diff --git a/pom.xml b/pom.xml index 9df0def..1730bcd 100644 --- a/pom.xml +++ b/pom.xml @@ -159,7 +159,7 @@ <eugenePluginVersion>3.0-alpha-10</eugenePluginVersion> <processorPluginVersion>1.3</processorPluginVersion> - <topiaVersion>3.2</topiaVersion> + <topiaVersion>3.2.1</topiaVersion> <jaxxVersion>2.39</jaxxVersion> <nuitonI18nVersion>3.6.2</nuitonI18nVersion> <nuitonValidatorVersion>3.1</nuitonValidatorVersion> diff --git a/services-topia/src/main/java/fr/ird/observe/services/topia/ObserveTopiaApplicationContextFactory.java b/services-topia/src/main/java/fr/ird/observe/services/topia/ObserveTopiaApplicationContextFactory.java index 80ba557..9b4f2b2 100644 --- a/services-topia/src/main/java/fr/ird/observe/services/topia/ObserveTopiaApplicationContextFactory.java +++ b/services-topia/src/main/java/fr/ird/observe/services/topia/ObserveTopiaApplicationContextFactory.java @@ -38,6 +38,8 @@ import java.util.LinkedHashSet; import java.util.Map; import java.util.Objects; import java.util.Optional; +import java.util.Set; +import java.util.stream.Collectors; /** * Usine de contexte applicatif ToPIA. @@ -104,25 +106,51 @@ public class ObserveTopiaApplicationContextFactory { } + public static void clearContexts(Set<String> usedTokens) { + + Set<ObserveDataSourceConfigurationTopiaSupport> unusedConfigurations = TOPIA_APPLICATION_CONTEXT_CACHE.entrySet() + .stream() + .filter(e -> !usedTokens.contains(e.getValue().getAuthenticationToken())) + .map(Map.Entry::getKey) + .collect(Collectors.toSet()); + for (ObserveDataSourceConfigurationTopiaSupport unusedConfiguration : unusedConfigurations) { + + ObserveTopiaApplicationContext topiaApplicationContext = TOPIA_APPLICATION_CONTEXT_CACHE.get(unusedConfiguration); + if (log.isInfoEnabled()) { + log.info("Remove unsued topia application context for: " + unusedConfiguration); + } + close(topiaApplicationContext); + TOPIA_APPLICATION_CONTEXT_CACHE.remove(unusedConfiguration); + } + + if (log.isInfoEnabled()) { + log.info("Still using " + TOPIA_APPLICATION_CONTEXT_CACHE.size() + " topia application context(s)."); + } + } + public static void close() { for (TopiaApplicationContext topiaApplicationContext : new LinkedHashSet<>(TOPIA_APPLICATION_CONTEXT_CACHE.values())) { - if (!topiaApplicationContext.isClosed()) { - try { - topiaApplicationContext.close(); - } catch (Exception e) { - if (log.isErrorEnabled()) { - log.error("Could not close topiaApplicationContext: " + topiaApplicationContext, e); - } - } - } + close(topiaApplicationContext); } TOPIA_APPLICATION_CONTEXT_CACHE.clear(); } + protected static void close(TopiaApplicationContext topiaApplicationContext) { + if (!topiaApplicationContext.isClosed()) { + try { + topiaApplicationContext.close(); + } catch (Exception e) { + if (log.isErrorEnabled()) { + log.error("Could not close topiaApplicationContext: " + topiaApplicationContext, e); + } + } + } + } + public static ObserveTopiaConfiguration createTopiaConfiguration(ObserveDataSourceConfigurationTopiaPG configuration, boolean initSchema) { ObserveTopiaConfiguration topiaConfiguration = ObserveTopiaConfigurationFactory.forPostgresqlDatabase( -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
participants (1)
-
codelutin.com scm