Beispiel #1
0
  /**
   * Initializes this plugin with the given variables.
   *
   * <p>This method should never be called manually.
   *
   * @param loader PluginLoader that is responsible for this plugin
   * @param server Server instance that is running this plugin
   * @param description PluginDescriptionFile containing metadata on this plugin
   * @param dataFolder Folder containing the plugin's data
   * @param file File containing this plugin
   * @param classLoader ClassLoader which holds this plugin
   */
  protected final void initialize(
      PluginLoader loader,
      Server server,
      PluginDescriptionFile description,
      File dataFolder,
      File file,
      ClassLoader classLoader) {
    if (!initialized) {
      this.initialized = true;
      this.loader = loader;
      this.server = server;
      this.file = file;
      this.description = description;
      this.dataFolder = dataFolder;
      this.classLoader = classLoader;
      this.configFile = new File(dataFolder, "config.yml");

      if (description.isDatabaseEnabled()) {
        ServerConfig db = new ServerConfig();

        db.setDefaultServer(false);
        db.setRegister(false);
        db.setClasses(getDatabaseClasses());
        db.setName(description.getName());
        server.configureDbConfig(db);

        DataSourceConfig ds = db.getDataSourceConfig();

        ds.setUrl(replaceDatabaseString(ds.getUrl()));
        getDataFolder().mkdirs();

        ClassLoader previous = Thread.currentThread().getContextClassLoader();

        Thread.currentThread().setContextClassLoader(classLoader);
        ebean = EbeanServerFactory.create(db);
        Thread.currentThread().setContextClassLoader(previous);
      }
    }
  }
 @Override
 public void configureDbConfig(ServerConfig config) {
   server.configureDbConfig(config);
 }