[DS-2758] Updating dbcp to dbcp2, upgraded the postgres driver to the latest version & fixed the database migration for unit tests.

This commit is contained in:
KevinVdV
2015-09-21 12:00:59 +02:00
parent 3918bac64b
commit eeb58a8844
9 changed files with 26 additions and 21 deletions

View File

@@ -351,8 +351,8 @@
<artifactId>commons-collections</artifactId> <artifactId>commons-collections</artifactId>
</dependency> </dependency>
<dependency> <dependency>
<groupId>commons-dbcp</groupId> <groupId>org.apache.commons</groupId>
<artifactId>commons-dbcp</artifactId> <artifactId>commons-dbcp2</artifactId>
</dependency> </dependency>
<dependency> <dependency>
<groupId>commons-fileupload</groupId> <groupId>commons-fileupload</groupId>
@@ -585,7 +585,7 @@
<dependency> <dependency>
<groupId>postgresql</groupId> <groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId> <artifactId>postgresql</artifactId>
</dependency> </dependency>

View File

@@ -21,7 +21,7 @@ import java.util.List;
import java.util.Locale; import java.util.Locale;
import javax.sql.DataSource; import javax.sql.DataSource;
import org.apache.commons.dbcp.BasicDataSource; import org.apache.commons.dbcp2.BasicDataSource;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger; import org.apache.log4j.Logger;
import org.dspace.core.ConfigurationManager; import org.dspace.core.ConfigurationManager;
@@ -322,11 +322,6 @@ public class DatabaseUtils
// NOTE: DatabaseLegacyReindexer only indexes in Legacy Lucene & RDBMS indexes. It can be removed once those are obsolete. // NOTE: DatabaseLegacyReindexer only indexes in Legacy Lucene & RDBMS indexes. It can be removed once those are obsolete.
List<FlywayCallback> flywayCallbacks = new DSpace().getServiceManager().getServicesByType(FlywayCallback.class); List<FlywayCallback> flywayCallbacks = new DSpace().getServiceManager().getServicesByType(FlywayCallback.class);
flywaydb.setCallbacks(flywayCallbacks.toArray(new FlywayCallback[flywayCallbacks.size()])); flywaydb.setCallbacks(flywayCallbacks.toArray(new FlywayCallback[flywayCallbacks.size()]));
// Set flyway callbacks (i.e. classes which are called post-DB migration and similar)
// In this situation, we have a Registry Updater that runs PRE-migration
// NOTE: DatabaseLegacyReindexer only indexes in Legacy Lucene & RDBMS indexes. It can be removed once those are obsolete.
// flywaydb.setCallbacks(new DatabaseRegistryUpdater(), new DatabaseLegacyReindexer());
} }
catch(SQLException e) catch(SQLException e)
{ {
@@ -1142,4 +1137,12 @@ public class DatabaseUtils
} }
} }
/**
* In case of a unit test the flyway db is cached to long leading to exceptions, we need to clear the object
*/
public static void clearFlywayDBCache()
{
flywaydb = null;
}
} }

View File

@@ -8,7 +8,7 @@
<property name="dataSource" ref="dataSource" /> <property name="dataSource" ref="dataSource" />
</bean> </bean>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" lazy-init="true" destroy-method="close"> <bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource" lazy-init="true" destroy-method="close">
<property name="driverClassName" value="org.h2.Driver"/> <property name="driverClassName" value="org.h2.Driver"/>
<property name="url" value="jdbc:h2:mem:test;LOCK_TIMEOUT=10000;MVCC=true"/> <property name="url" value="jdbc:h2:mem:test;LOCK_TIMEOUT=10000;MVCC=true"/>
<property name="username" value="sa"/> <property name="username" value="sa"/>

View File

@@ -109,6 +109,8 @@ public class AbstractUnitTest
{ {
kernelImpl.start(ConfigurationManager.getProperty("dspace.dir")); kernelImpl.start(ConfigurationManager.getProperty("dspace.dir"));
} }
//Clear our old flyway object
DatabaseUtils.clearFlywayDBCache();
//Migrate & setup our database //Migrate & setup our database
DatabaseUtils.main(new String[]{"migrate"}); DatabaseUtils.main(new String[]{"migrate"});

View File

@@ -107,11 +107,11 @@
<!-- Connecting to DSpace datasource sets a dependency on Postgres DB--> <!-- Connecting to DSpace datasource sets a dependency on Postgres DB-->
<dependency> <dependency>
<groupId>commons-dbcp</groupId> <groupId>org.apache.commons</groupId>
<artifactId>commons-dbcp</artifactId> <artifactId>commons-dbcp2</artifactId>
</dependency> </dependency>
<dependency> <dependency>
<groupId>postgresql</groupId> <groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId> <artifactId>postgresql</artifactId>
</dependency> </dependency>
<dependency> <dependency>

View File

@@ -81,7 +81,7 @@
</activation> </activation>
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>postgresql</groupId> <groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId> <artifactId>postgresql</artifactId>
</dependency> </dependency>
</dependencies> </dependencies>

View File

@@ -8,7 +8,7 @@
<property name="dataSource" ref="dataSource" /> <property name="dataSource" ref="dataSource" />
</bean> </bean>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" lazy-init="true" destroy-method="close"> <bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource" lazy-init="true" destroy-method="close">
<property name="driverClassName" value="${db.driver}"/> <property name="driverClassName" value="${db.driver}"/>
<property name="url" value="${db.url}"/> <property name="url" value="${db.url}"/>
<property name="username" value="${db.username}"/> <property name="username" value="${db.username}"/>

View File

@@ -82,7 +82,7 @@
</activation> </activation>
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>postgresql</groupId> <groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId> <artifactId>postgresql</artifactId>
</dependency> </dependency>
</dependencies> </dependencies>

10
pom.xml
View File

@@ -972,9 +972,9 @@
<!-- <version>3.1</version> xmlui - wing --> <!-- <version>3.1</version> xmlui - wing -->
</dependency> </dependency>
<dependency> <dependency>
<groupId>commons-dbcp</groupId> <groupId>org.apache.commons</groupId>
<artifactId>commons-dbcp</artifactId> <artifactId>commons-dbcp2</artifactId>
<version>1.4</version> <version>2.1.1</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>commons-discovery</groupId> <groupId>commons-discovery</groupId>
@@ -1153,9 +1153,9 @@
<version>51.1</version> <version>51.1</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>postgresql</groupId> <groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId> <artifactId>postgresql</artifactId>
<version>9.1-901-1.jdbc4</version> <version>9.4-1203-jdbc41</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.oracle</groupId> <groupId>com.oracle</groupId>