package org.genedb.web.mvc.model;
import org.gmod.schema.cfg.ChadoSessionFactoryBean;
import org.hibernate.SessionFactory;
import java.util.Properties;
import javax.sql.DataSource;
public class ConfigurableGeneDBSessionFactoryBean {
Properties properties;
public void setProperties(Properties properties) {
this.properties = properties;
}
DataSource dataSource;
public void setDataSource(DataSource dataSource) {
this.dataSource = dataSource;
}
String packagesToScan[];
public void setPackagesToScan(String[] packagesToScan) {
this.packagesToScan = packagesToScan;
}
public SessionFactory createFullTextSessionFactory(String indexDir, int batchSize) throws Exception {
ChadoSessionFactoryBean csfb = new ChadoSessionFactoryBean();
csfb.setDataSource(dataSource);
csfb.setPackagesToScan(packagesToScan);
Properties customised = new Properties(properties);
customised.put("hibernate.search.worker.batch_size", Integer.toString(batchSize));
customised.put("hibernate.jdbc.batch_size", Integer.toString(batchSize));
customised.put("hibernate.search.default.indexBase", indexDir);
csfb.setProperties(customised);
csfb.afterPropertiesSet();
return (SessionFactory) csfb.getObject();
}
}