public final void init(InjectorClassLoader classLoader, InjectorPluginLoader loader) {
        if (this.classLoader != null && this.pluginLoader != null || isEnabled()) {
            return;
        }
        
        this.classLoader = classLoader;
        this.pluginLoader = loader;
        
        if (getDescription().isDatabaseEnabled()) {
            ServerConfig db = new ServerConfig();
            
            db.setDefaultServer(false);
            db.setRegister(false);
            db.setClasses(getDatabaseClasses());
            db.setName(getDescription().getName());
            getServer().configureDbConfig(db);
            
            DataSourceConfig ds = db.getDataSourceConfig();
            
            ds.setUrl(replaceDatabaseString(ds.getUrl()));
            getDataFolder().mkdirs();
            
            ClassLoader previous = Thread.currentThread().getContextClassLoader();
            
            Thread.currentThread().setContextClassLoader(previous);
            this.ebean = EbeanServerFactory.create(db);
            Thread.currentThread().setContextClassLoader(previous);
        }
    }