@Override
 public DataSource poolManaged(
     final String name, final String driver, final Properties properties) {
   final BasicManagedDataSource ds = new BasicManagedDataSource(name);
   ds.setDriverClassName(driver);
   build(BasicManagedDataSource.class, ds, properties);
   return ds;
 }
 @Override
 public DataSource poolManagedWithRecovery(
     final String name,
     final XAResourceWrapper xaResourceWrapper,
     final String driver,
     final Properties properties) {
   final BasicManagedDataSource ds = new ManagedDataSourceWithRecovery(name, xaResourceWrapper);
   ds.setDriverClassName(driver);
   build(BasicManagedDataSource.class, ds, properties);
   return ds;
 }