From ec76ccfda9e8fa98c5806ca4fc18d736dccd6177 Mon Sep 17 00:00:00 2001 From: Fabio Sinibaldi Date: Tue, 24 May 2022 14:44:22 +0200 Subject: [PATCH 1/4] Fixes #23381 --- geoportal-service/CHANGELOG.md | 4 ++ geoportal-service/pom.xml | 2 +- .../engine/postgis/PostgisDBManager.java | 60 +++++++++++-------- .../providers/PostgisConnectionProvider.java | 10 +++- 4 files changed, 46 insertions(+), 30 deletions(-) diff --git a/geoportal-service/CHANGELOG.md b/geoportal-service/CHANGELOG.md index d89cf4e..1293451 100644 --- a/geoportal-service/CHANGELOG.md +++ b/geoportal-service/CHANGELOG.md @@ -2,6 +2,10 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm # Changelog for org.gcube.application.geoportal-service + +## [v1.0.9-SNAPSHOT] 2021-09-20 +- Fixes [#23381](https://support.d4science.org/issues/23381) + ## [v1.0.8] 2021-09-20 - Logging - Fixes [#22193](https://support.d4science.org/issues/22193) diff --git a/geoportal-service/pom.xml b/geoportal-service/pom.xml index b837b74..dd39c83 100644 --- a/geoportal-service/pom.xml +++ b/geoportal-service/pom.xml @@ -4,7 +4,7 @@ 4.0.0 org.gcube.application geoportal-service - 1.0.8 + 1.0.9-SNAPSHOT Geoportal Service war diff --git a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/postgis/PostgisDBManager.java b/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/postgis/PostgisDBManager.java index 571c84e..5184e1d 100644 --- a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/postgis/PostgisDBManager.java +++ b/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/postgis/PostgisDBManager.java @@ -17,49 +17,57 @@ import java.util.regex.Pattern; @Slf4j public class PostgisDBManager implements PostgisDBManagerI { - @Synchronized - public static PostgisDBManager get() throws SQLException, ConfigurationException { - if(config==null) { - log.debug("Looking for Default Configuration.. "); +// @Synchronized +// public static PostgisDBManager get() throws SQLException, ConfigurationException { +// if(config==null) { +// log.debug("Looking for Default Configuration.. "); +// +// // TODO GENERIC +// DatabaseConnection defaultConfiguration= +// ImplementationProvider.get().getIsProvider().getIS().queryForDB("postgis", "Concessioni"); +// +// log.debug("Found configuration : "+defaultConfiguration); +// config=defaultConfiguration; +// } +// return new PostgisDBManager(); +// } +// +// - // TODO GENERIC - DatabaseConnection defaultConfiguration= - ImplementationProvider.get().getIsProvider().getIS().queryForDB("postgis", "Concessioni"); - log.debug("Found configuration : "+defaultConfiguration); - config=defaultConfiguration; - } - return new PostgisDBManager(); + public static PostgisDBManagerI get() throws SQLException, ConfigurationException { + return get(false); } - public static PostgisDBManagerI get(boolean autocommit) throws SQLException, ConfigurationException { - PostgisDBManager toReturn=get(); + + private static PostgisDBManagerI get(boolean autocommit) throws SQLException, ConfigurationException { + DatabaseConnection config= + ImplementationProvider.get().getIsProvider().getIS().queryForDB("postgis", "Concessioni"); + log.debug("Found configuration : "+config); + PostgisDBManager toReturn=new PostgisDBManager(config); toReturn.conn.setAutoCommit(autocommit); return toReturn; } - private static DatabaseConnection config; + + +// private static DatabaseConnection config; - private static Connection getConnection() throws SQLException { - - Connection toReturn= DriverManager.getConnection(config.getUrl(),config.getUser(),config.getPwd()); - - //TODO configure behaviour - toReturn.setAutoCommit(false); - return toReturn; - } - - private Connection conn=null; + private DatabaseConnection config; + private PostgisDBManager(DatabaseConnection config) throws SQLException { + this.config=config; + log.info("Opening connection to {}",config); + conn= DriverManager.getConnection(config.getUrl(),config.getUser(),config.getPwd()); - private PostgisDBManager() throws SQLException { - conn=getConnection(); + //TODO configure behaviour + conn.setAutoCommit(false); } @Override diff --git a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/providers/PostgisConnectionProvider.java b/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/providers/PostgisConnectionProvider.java index 26a2e9c..60a8b24 100644 --- a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/providers/PostgisConnectionProvider.java +++ b/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/providers/PostgisConnectionProvider.java @@ -1,19 +1,23 @@ package org.gcube.application.geoportal.service.engine.providers; import org.gcube.application.geoportal.service.engine.postgis.PostgisDBManager; +import org.gcube.application.geoportal.service.engine.postgis.PostgisDBManagerI; import org.gcube.application.geoportal.service.model.internal.faults.ConfigurationException; import java.sql.SQLException; +import java.time.Duration; +import java.time.temporal.ChronoUnit; -public class PostgisConnectionProvider extends AbstractScopedMap{ +public class PostgisConnectionProvider extends AbstractScopedMap{ public PostgisConnectionProvider() { super("Postgis connection descriptor cache"); + setTTL(Duration.of(30, ChronoUnit.SECONDS)); } @Override - protected PostgisDBManager retrieveObject() throws ConfigurationException { + protected PostgisDBManagerI retrieveObject() throws ConfigurationException { try { return PostgisDBManager.get(); } catch (SQLException throwables) { @@ -22,7 +26,7 @@ public class PostgisConnectionProvider extends AbstractScopedMap Date: Tue, 24 May 2022 15:05:35 +0200 Subject: [PATCH 2/4] Restricting version to released ones --- geoportal-service/pom.xml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/geoportal-service/pom.xml b/geoportal-service/pom.xml index dd39c83..4200fbe 100644 --- a/geoportal-service/pom.xml +++ b/geoportal-service/pom.xml @@ -85,11 +85,13 @@ org.gcube.application.cms geoportal-common + 1.0.8 org.gcube.application.cms cms-plugin-framework + 1.0.0 @@ -216,6 +218,7 @@ org.gcube.application.cms concessioni-lifecycle + 1.0.0 test @@ -240,6 +243,7 @@ org.gcube.application.cms cms-test-commons + 1.0.1 test From 0b2f078b31247066ab5242afcd1290655eddd6b7 Mon Sep 17 00:00:00 2001 From: Fabio Sinibaldi Date: Tue, 24 May 2022 15:16:06 +0200 Subject: [PATCH 3/4] Use of interface --- .../geoportal/service/engine/postgis/PostgisIndex.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/postgis/PostgisIndex.java b/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/postgis/PostgisIndex.java index 514ebb8..e21fcc2 100644 --- a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/postgis/PostgisIndex.java +++ b/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/postgis/PostgisIndex.java @@ -38,7 +38,7 @@ public class PostgisIndex { private SDIManager sdiManager; private String wmsLink=null; - private static PostgisDBManager getDB() throws ConfigurationException { + private static PostgisDBManagerI getDB() throws ConfigurationException { return ImplementationProvider.get().getDbProvider().getObject(); }; From e84dd655855dade93e796d540d06a3480b32f50a Mon Sep 17 00:00:00 2001 From: Fabio Sinibaldi Date: Tue, 24 May 2022 16:04:47 +0200 Subject: [PATCH 4/4] Releasing service 1.0.9 --- geoportal-service/CHANGELOG.md | 2 +- geoportal-service/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/geoportal-service/CHANGELOG.md b/geoportal-service/CHANGELOG.md index 1293451..e702d48 100644 --- a/geoportal-service/CHANGELOG.md +++ b/geoportal-service/CHANGELOG.md @@ -3,7 +3,7 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm # Changelog for org.gcube.application.geoportal-service -## [v1.0.9-SNAPSHOT] 2021-09-20 +## [v1.0.9] 2021-09-20 - Fixes [#23381](https://support.d4science.org/issues/23381) ## [v1.0.8] 2021-09-20 diff --git a/geoportal-service/pom.xml b/geoportal-service/pom.xml index 4200fbe..d9d4d1e 100644 --- a/geoportal-service/pom.xml +++ b/geoportal-service/pom.xml @@ -4,7 +4,7 @@ 4.0.0 org.gcube.application geoportal-service - 1.0.9-SNAPSHOT + 1.0.9 Geoportal Service war