@Override
public SqlSessionFactory getObject() throws Exception {
final Reader reader = new InputStreamReader(this.configLocation.getInputStream());
// Null environment causes the configuration to use the default.
// This will be overwritten below regardless.
final XMLConfigBuilder xmlConfigBuilder = new XMLConfigBuilder(reader, null, null);
final Configuration configuration = xmlConfigBuilder.parse();
final TransactionFactory transactionFactory = this.transactionFactoryClass.newInstance();
final Environment env = new Environment(this.environment, transactionFactory, this.dataSource);
configuration.setEnvironment(env);