diff --git a/build.gradle b/build.gradle index 088e8d813..4f509df54 100644 --- a/build.gradle +++ b/build.gradle @@ -302,7 +302,7 @@ dependencies { implementation 'com.unboundid.product.scim2:scim2-sdk-client:2.3.5' // Don't upgrade h2database - runtimeOnly "com.h2database:h2:2.3.232" + runtimeOnly "org.postgresql:postgresql:42.7.4" constraints { implementation "org.opensaml:opensaml-core:$openSamlVersion" implementation "org.opensaml:opensaml-saml-api:$openSamlVersion" diff --git a/src/main/java/stirling/software/SPDF/config/security/database/DatabaseBackupHelper.java b/src/main/java/stirling/software/SPDF/config/security/database/DatabaseBackupHelper.java index 5db05bed7..252e24e22 100644 --- a/src/main/java/stirling/software/SPDF/config/security/database/DatabaseBackupHelper.java +++ b/src/main/java/stirling/software/SPDF/config/security/database/DatabaseBackupHelper.java @@ -110,6 +110,7 @@ public class DatabaseBackupHelper implements DatabaseBackupInterface { return executeDatabaseScript(Paths.get(backupList.get(0).getFilePath())); } + // fixMe: Needs to check the type of DB before executing script @Override public void exportDatabase() throws IOException { // Check if the backup directory exists, and create it if it does not diff --git a/src/main/java/stirling/software/SPDF/model/ApplicationProperties.java b/src/main/java/stirling/software/SPDF/model/ApplicationProperties.java index 9ff700c99..c5546ceb6 100644 --- a/src/main/java/stirling/software/SPDF/model/ApplicationProperties.java +++ b/src/main/java/stirling/software/SPDF/model/ApplicationProperties.java @@ -8,6 +8,7 @@ import java.net.HttpURLConnection; import java.net.URI; import java.net.URISyntaxException; import java.net.URL; +import java.sql.Driver; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; @@ -282,6 +283,28 @@ public class ApplicationProperties { private String tessdataDir; private Boolean enableAlphaFunctionality; private String enableAnalytics; + private Datasource datasource; + } + + @Data + public static class Datasource { + private String url; + private Driver driver; + private String username; + private String password; + } + + public enum Driver { + H2("h2"), + POSTGRESQL("postgresql"), + ORACLE("oracle"), + MY_SQL("mysql"); + + private final String driverName; + + Driver(String driverName) { + this.driverName = driverName; + } } @Data diff --git a/src/main/resources/settings.yml.template b/src/main/resources/settings.yml.template index a110744a0..dcd940802 100644 --- a/src/main/resources/settings.yml.template +++ b/src/main/resources/settings.yml.template @@ -85,6 +85,11 @@ system: customHTMLFiles: false # enable to have files placed in /customFiles/templates override the existing template HTML files tessdataDir: /usr/share/tessdata # path to the directory containing the Tessdata files. This setting is relevant for Windows systems. For Windows users, this path should be adjusted to point to the appropriate directory where the Tessdata files are stored. enableAnalytics: undefined # set to 'true' to enable analytics, set to 'false' to disable analytics; for enterprise users, this is set to true + datasource: + url: jdbc:postgresql://localhost:5432/stirling-pdf-DB + driver: postgresql + username: postgres + password: ui: appName: '' # application's visible name