Skip to content
Snippets Groups Projects
Commit 69b5f8af authored by buczekp's avatar buczekp
Browse files

[LMS-1531] enable to configure maxIdle and maxActive properties of default DataSourceFactory

SVN: 15862
parent 8275e6a1
No related merge requests found
......@@ -47,6 +47,8 @@ import ch.systemsx.cisd.openbis.dss.generic.shared.utils.PropertyParametersUtil.
* my-data-source-1.basicDatabaseName = my-database-1
* my-data-source-1.databaseKind = dev
* my-data-source-1.scriptFolder = sql
* my-data-source-1.maxIdle = 50
* my-data-source-1.maxActive = 50
*
* # Configure data source my-data-source-2
* my-data-source-2.version-holder-class = ch.example.databases.MyDatabase2VersionHolder
......
......@@ -40,10 +40,14 @@ public class DatabaseConfigurationContext implements DisposableBean
{
/** @see GenericObjectPool#DEFAULT_MAX_ACTIVE */
private final int MAX_ACTIVE = 20;
private final int DEFAULT_MAX_ACTIVE = 20;
/** @see GenericObjectPool#DEFAULT_MAX_IDLE */
private final int MAX_IDLE = MAX_ACTIVE;
private final int DEFAULT_MAX_IDLE = DEFAULT_MAX_ACTIVE;
private int maxIdle = DEFAULT_MAX_IDLE;
private int maxActive = DEFAULT_MAX_ACTIVE;
//
// IDataSourceFactory
......@@ -57,10 +61,20 @@ public class DatabaseConfigurationContext implements DisposableBean
dataSource.setUrl(url);
dataSource.setUsername(owner);
dataSource.setPassword(password);
dataSource.setMaxIdle(MAX_IDLE);
dataSource.setMaxActive(MAX_ACTIVE);
dataSource.setMaxIdle(maxIdle);
dataSource.setMaxActive(maxActive);
return dataSource;
}
public void setMaxIdle(int maxIdle)
{
this.maxIdle = maxIdle;
}
public void setMaxActive(int maxActive)
{
this.maxActive = maxActive;
}
}
private ISequenceNameMapper sequenceNameMapper;
......@@ -110,9 +124,9 @@ public class DatabaseConfigurationContext implements DisposableBean
setSequenceUpdateNeeded(true);
}
public final void setDataSourceFactory(final IDataSourceFactory dataSourceFactory)
public final void initDataSourceFactory(final IDataSourceFactory factory)
{
this.dataSourceFactory = dataSourceFactory;
this.dataSourceFactory = factory;
}
private final static void closeConnection(final DataSource dataSource)
......@@ -419,6 +433,23 @@ public class DatabaseConfigurationContext implements DisposableBean
}
}
/**
* Sets the maximum number of idle connections in the pool (default is 20).
*/
public void setMaxIdle(int maxIdle)
{
this.dataSourceFactory.setMaxIdle(maxIdle);
}
/**
* Sets the maximum number of active connections that can be allocated at the same time (default
* is 20).
*/
public void setMaxActive(int maxActive)
{
this.dataSourceFactory.setMaxActive(maxActive);
}
/**
* Returns the URL of the database server which allows to create a new database.
*
......
......@@ -18,6 +18,9 @@ package ch.systemsx.cisd.dbmigration;
import javax.sql.DataSource;
import org.apache.commons.dbcp.BasicDataSource;
import org.apache.commons.pool.impl.GenericObjectPool;
/**
* Factory for a {@link DataSource}.
*
......@@ -29,4 +32,16 @@ public interface IDataSourceFactory
* Creates a data source for the specified database credentials.
*/
public DataSource createDataSource(String driver, String url, String owner, String password);
/**
* @see BasicDataSource#setMaxIdle(int)
* @see GenericObjectPool#DEFAULT_MAX_IDLE
*/
public void setMaxIdle(int maxIdle);
/**
* @see BasicDataSource#setMaxActive(int)
* @see GenericObjectPool#DEFAULT_MAX_ACTIVE
*/
public void setMaxActive(int maxActive);
}
......@@ -166,6 +166,14 @@ public final class SqlUnitMigrationTest
{
return new MyDataSource(driver, url, owner, password);
}
public void setMaxActive(int maxActive)
{
}
public void setMaxIdle(int maxIdle)
{
}
};
@BeforeClass(alwaysRun = true)
......@@ -218,7 +226,7 @@ public final class SqlUnitMigrationTest
try
{
configurationContext.setCreateFromScratch(true);
configurationContext.setDataSourceFactory(DATA_SOURCE_FACTORY);
configurationContext.initDataSourceFactory(DATA_SOURCE_FACTORY);
configurationContext.setScriptFolder(getTestDataFolder(configurationContext));
DBMigrationEngine.createOrMigrateDatabaseAndGetScriptProvider(
configurationContext, databaseVersion);
......@@ -316,7 +324,7 @@ public final class SqlUnitMigrationTest
final DatabaseConfigurationContext configurationContext =
DatabaseCreationUtil.createDatabaseConfigurationContext(databaseKind);
configurationContext.setCreateFromScratch(true);
configurationContext.setDataSourceFactory(DATA_SOURCE_FACTORY);
configurationContext.initDataSourceFactory(DATA_SOURCE_FACTORY);
return configurationContext;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment