try
{
fac = ConnectionFactoryFactory.getInstance();
oldFac = fac.getClassToServe();
fac.setClassToServe(factory);
ConnectionFactory conFac = (ConnectionFactory) fac.createNewInstance();
MetadataManager mm = MetadataManager.getInstance();
JdbcConnectionDescriptor jcd = (JdbcConnectionDescriptor) SerializationUtils.clone(
broker.serviceConnectionManager().getConnectionDescriptor());
jcd.setJcdAlias(factory.getName() + "_test_checkFactory_a");
jcd.setUseAutoCommit(2);
// use this attribute to allow OJB changing initial state of connections
jcd.addAttribute("initializationCheck", "true");
mm.connectionRepository().addDescriptor(jcd);
Connection con = conFac.lookupConnection(jcd);
Connection con2 = conFac.lookupConnection(jcd);
Connection con3 = conFac.lookupConnection(jcd);
assertFalse("Expect autocommit state false", con.getAutoCommit());
con.close();
con2.close();
con3.close();
conFac = (ConnectionFactory) fac.createNewInstance();
jcd = (JdbcConnectionDescriptor) SerializationUtils.clone(
broker.serviceConnectionManager().getConnectionDescriptor());
jcd.setJcdAlias(factory.getName() + "_test_checkFactory_b");
jcd.setUseAutoCommit(1);
mm.connectionRepository().addDescriptor(jcd);
con = conFac.lookupConnection(jcd);
assertTrue("Expect autocommit state true", con.getAutoCommit());
}
finally
{
if (oldFac != null) fac.setClassToServe(oldFac);