diff --git a/src/main/java/org/gcube/vremanagement/executor/persistence/JDBCPersistenceConnector.java b/src/main/java/org/gcube/vremanagement/executor/persistence/JDBCPersistenceConnector.java index 232f013..f80fdc4 100644 --- a/src/main/java/org/gcube/vremanagement/executor/persistence/JDBCPersistenceConnector.java +++ b/src/main/java/org/gcube/vremanagement/executor/persistence/JDBCPersistenceConnector.java @@ -13,6 +13,8 @@ import java.sql.SQLException; import java.sql.Statement; import java.util.UUID; +import org.gcube.smartgears.ContextProvider; +import org.gcube.smartgears.context.application.ApplicationContext; import org.gcube.vremanagement.executor.plugin.PluginState; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -58,9 +60,17 @@ public class JDBCPersistenceConnector extends PersistenceConnector { try { - Path currentAbsolutePath = Paths.get(".").toAbsolutePath().normalize(); - logger.debug(String.format("Current Absolute Path : %s",currentAbsolutePath)); - String effectiveJDBCURL = String.format("%s%s/%s", jdbcURL, currentAbsolutePath.toString(), dbName); + String path = "."; + ApplicationContext ctx = ContextProvider.get(); + if(ctx == null){ + Path currentAbsolutePath = Paths.get(".").toAbsolutePath().normalize(); + logger.debug(String.format("Current Absolute Path : %s",currentAbsolutePath)); + path = currentAbsolutePath.toString(); + }else { + path = ctx.application().getContextPath(); + } + String effectiveJDBCURL = String.format("%s%s/%s", jdbcURL, path, dbName); + logger.debug(String.format("DB URL : %s", effectiveJDBCURL)); connection = DriverManager.getConnection(effectiveJDBCURL, username, password); } catch (SQLException e) { logger.error(String.format("Unable to connect to JDBC URL : %s", jdbcURL));