diff --git a/src/main/java/org/olat/upgrade/OLATUpgrade.java b/src/main/java/org/olat/upgrade/OLATUpgrade.java index 89b0d76b8443b5fa8db1896d64a6a80bf971c84e..fbc3d0ea7d8671a1d7fcec598f15cd18516bb769 100644 --- a/src/main/java/org/olat/upgrade/OLATUpgrade.java +++ b/src/main/java/org/olat/upgrade/OLATUpgrade.java @@ -21,10 +21,11 @@ package org.olat.upgrade; +import javax.sql.DataSource; + import org.olat.core.logging.OLog; import org.olat.core.logging.Tracing; import org.springframework.jdbc.core.JdbcTemplate; -import org.springframework.jdbc.datasource.DriverManagerDataSource; /** @@ -91,7 +92,7 @@ public abstract class OLATUpgrade { * @param query * @param dataSource */ - public void executePlainSQLDBStatement(String query, DriverManagerDataSource dataSource) { + public void executePlainSQLDBStatement(String query, DataSource dataSource) { JdbcTemplate template = new JdbcTemplate(dataSource); template.update(query); } diff --git a/src/main/java/org/olat/upgrade/UpgradeManager.java b/src/main/java/org/olat/upgrade/UpgradeManager.java index 43a93e51fc20220d5bad34fa4e5f24e835eefa7f..6be10992574e877c6b7269068d5db144443b2ce0 100644 --- a/src/main/java/org/olat/upgrade/UpgradeManager.java +++ b/src/main/java/org/olat/upgrade/UpgradeManager.java @@ -5,6 +5,8 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import javax.sql.DataSource; + import org.olat.core.commons.persistence.DBFactory; import org.olat.core.configuration.Initializable; import org.olat.core.gui.control.Event; @@ -15,7 +17,6 @@ import org.olat.core.util.event.FrameworkStartedEvent; import org.olat.core.util.event.FrameworkStartupEventChannel; import org.olat.core.util.event.GenericEventListener; import org.olat.core.util.xml.XStreamHelper; -import org.springframework.jdbc.datasource.DriverManagerDataSource; /** * @@ -39,7 +40,7 @@ public abstract class UpgradeManager extends BasicManager implements Initializab List<OLATUpgrade> upgrades; Map<String, UpgradeHistoryData> upgradesHistories; private UpgradesDefinitions upgradesDefinitions; - protected DriverManagerDataSource dataSource; + protected DataSource dataSource; private boolean needsUpgrade = true; private boolean autoUpgradeDatabase = true; @@ -47,11 +48,11 @@ public abstract class UpgradeManager extends BasicManager implements Initializab * [used by spring] * @param dataSource */ - public void setDataSource (DriverManagerDataSource dataSource) { + public void setDataSource (DataSource dataSource) { this.dataSource = dataSource; } - public DriverManagerDataSource getDataSource() { + public DataSource getDataSource() { return dataSource; } diff --git a/src/main/java/org/olat/upgrade/UpgradeManagerImpl.java b/src/main/java/org/olat/upgrade/UpgradeManagerImpl.java index f7368784a749314c9328d99a704aa9cae714be5f..00393310c9cf5a1a83a15c0fb126f8752eb75fbf 100644 --- a/src/main/java/org/olat/upgrade/UpgradeManagerImpl.java +++ b/src/main/java/org/olat/upgrade/UpgradeManagerImpl.java @@ -45,6 +45,8 @@ import org.springframework.core.io.Resource; */ public class UpgradeManagerImpl extends UpgradeManager { + private String dbVendor; + /** * used by spring */ @@ -52,6 +54,14 @@ public class UpgradeManagerImpl extends UpgradeManager { // } + /** + * [user by Spring] + * @param dbVendor + */ + public void setDbVendor(String dbVendor) { + this.dbVendor = dbVendor; + } + /** * Execute the pre system init code of all upgrades in the order as they were configured * in the configuration file @@ -101,9 +111,9 @@ public class UpgradeManagerImpl extends UpgradeManager { public void runAlterDbStatements() { String dialect = ""; //only run upgrades on mysql or postgresql - if (dataSource.getUrl().contains("mysql")) dialect = "mysql"; - else if (dataSource.getUrl().contains("postgresql")) dialect = "postgresql"; - else if (dataSource.getUrl().contains("hsqldb")) return; + if (dbVendor.contains("mysql")) dialect = "mysql"; + else if (dbVendor.contains("postgresql")) dialect = "postgresql"; + else if (dbVendor.contains("hsqldb")) return; else return; Statement statement = null; diff --git a/src/main/java/org/olat/upgrade/_spring/upgradeContext.xml b/src/main/java/org/olat/upgrade/_spring/upgradeContext.xml index 480e704b0ac751706bd764736ba900d301dbc9a7..404ca62156d5742ee39f5204fdb2662d4926004d 100644 --- a/src/main/java/org/olat/upgrade/_spring/upgradeContext.xml +++ b/src/main/java/org/olat/upgrade/_spring/upgradeContext.xml @@ -14,6 +14,7 @@ <context:component-scan base-package="org.olat.upgrade" /> <bean id="olatUpgradeManager.enabled" class="org.olat.upgrade.UpgradeManagerImpl" lazy-init="true" init-method="init" depends-on="folderModule"> + <property name="dbVendor" value="${db.vendor}"/> <property name="upgradesDefinitions" ref="olatupgrades"/> <property name="dataSource" ref="${db.vendor}DataSource"/> <property name="autoUpgradeDatabase" value="${auto.upgrade.database}" />