public static synchronized EmbeddedDB get() {
if (instance == null) {
if ("true".equals(System.getProperty("com.ning.billing.dbi.test.h2"))) {
log.info("Using h2 as the embedded database");
instance = new H2EmbeddedDB();
} else {
if (isUsingLocalInstance()) {
log.info("Using MySQL local database");
final String databaseName = System.getProperty("com.ning.billing.dbi.test.localDb.database", "killbill");
final String username = System.getProperty("com.ning.billing.dbi.test.localDb.password", "root");
final String password = System.getProperty("com.ning.billing.dbi.test.localDb.username", "root");
instance = new MySQLStandaloneDB(databaseName, username, password);
} else {
log.info("Using MySQL as the embedded database");
instance = new MySQLEmbeddedDB();
}
}
}
return instance;
}