protected void registerDatasource() {
   try {
     prepareJndi();
     InitialContext ic = new InitialContext();
     // Construct BasicDataSource reference
     Reference ref =
         new Reference(
             "javax.sql.DataSource", "org.apache.commons.dbcp.BasicDataSourceFactory", null);
     ref.add(new StringRefAddr("driverClassName", config.getDriver()));
     ref.add(new StringRefAddr("url", config.getUrl()));
     ref.add(new StringRefAddr("username", config.getUsername()));
     ref.add(new StringRefAddr("password", config.getPassword()));
     ref.add(new StringRefAddr("maxActive", "4"));
     ref.add(new StringRefAddr("maxWait", "5000"));
     ref.add(new StringRefAddr("removeAbandoned", "true"));
     ref.add(new StringRefAddr("removeAbandonedTimeout", "5000"));
     rebind(ic, config.getJndiName(), ref);
     ic.rebind(config.getJndiName(), ref);
     rebind(ic, JNDINames.DATABASE_DATASOURCE, ref);
     ic.rebind(JNDINames.DATABASE_DATASOURCE, ref);
     rebind(ic, JNDINames.ADMIN_DATASOURCE, ref);
     ic.rebind(JNDINames.ADMIN_DATASOURCE, ref);
     registerMockJMS(ic);
   } catch (NamingException nex) {
     logger.error(nex);
   } catch (IOException ex) {
     logger.error(ex);
   }
 }