diff --git a/geoportal-service/CHANGELOG.md b/geoportal-service/CHANGELOG.md
index d89cf4e..e702d48 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] 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..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.8
+ 1.0.9
Geoportal Service
war
@@ -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
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/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();
};
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