Bukkit/Bukkit — pull request #829 by ZerothAngel (2013-03-29 07:43:37+00:00)
Title: [B] Give plugins a chance to modify Avaje ServerConfig. Adds BUKKIT-3919

##### The Issue:
Plugins that use Avaje Ebeans have no visibility on the ServerConfig before EbeanServerFactory.create() is called. Of the ServerConfig properties that are not explicitly set by Bukkit, the `NamingConvention` property is probably the most interesting — it would allow a plugin to dynamically alter the names of its tables. (Otherwise the names of the tables are fixed at compile-time — using either the name of the class or a class-level annotation.)

##### Justification for this PR:
Allows plugins to change NamingConvention, Avaje logging options (e.g. debug SQL logging), or other options.

##### PR Breakdown:
This PR adds a protected, non-final method named `configureDbConfig` to JavaConfig. The default implementation does nothing. (The name and signature mirrors the method in the Server interface, which conceptually does the same thing.)

This new method is called shortly after the creation of the ServerConfig but before Bukkit explicitly sets its own values for the plugin.

##### Testing Results and Materials:
Available upon request. I have a proof-of-concept of one of my plugins (zPermissions) which overrides JavaPlugin's `configureDbConfig` and installs its own `NamingConvention` implementation which adds a prefix to all of the plugin's tables.

##### JIRA Ticket:
https://bukkit.atlassian.net/browse/BUKKIT-3919