} // end try..catch
dataSource = (DataSource) factoryBean.getObject();
} else if(url.startsWith("jdbc:hsqldb:file")) {
logger.info("embedded HSQLDB mode detected, switching on spring single connection data source");
SingleConnectionDataSource ds = new SingleConnectionDataSource();
ds.setUrl(url);
ds.setDriverClassName(driverClassName);
ds.setUsername(username);
ds.setPassword(password);
ds.setSuppressClose(true);
dataSource = ds;
} else {
logger.info("Not using embedded HSQLDB or JNDI datasource, switching on Apache DBCP data source connection pooling");
BasicDataSource ds = new BasicDataSource();
ds.setUrl(url);
ds.setDriverClassName(driverClassName);
ds.setUsername(username);
ds.setPassword(password);
ds.setValidationQuery(validationQuery);
ds.setTestOnBorrow(false);
ds.setTestWhileIdle(true);
ds.setTimeBetweenEvictionRunsMillis(600000);
dataSource = ds;
} // end if..else
return dataSource;
}