Want a better Minecraft server? Read about SpigotMC here!
Separate names with a comma.
Discussion in 'API Discussion' started by md_5, Nov 17, 2016.
What "MySQL" is in Spigot?
com.mysql.jdbc. That package contains classes all related to MySQL. Although Java does have an SQL implementation, there is a proper external library for it, and it's shaded into the server jar
I've always just used the classes from the java.sql package, or c3p0 for connection pooling. The java.sql and com.mysql.jdbc implementations look like they function the exact same, no clue why you would use the additional dependency.
"proper external library" implying that Java's implementation is not "proper"?
I agree that if it's removed, it should not be replaced with anything. Plugins should manage their own dependencies, not the server software IMO.
I'm not implying that at all. It is proper. Though com.mysql.jdbc is the vendor-specific implementation of MySQL which contains classes that can manage the back-end of databases, whereas Java's implementation only handles common implementations
This stackoverflow thread will explain it better than myself
I would vote for not replacing it.
Pros of replacing it:
Plugin's don't have to load mysql credentials from config.
Plugin's don't have to shade in a library for connection pooling.
Owner's only have to put their mysql credentials in one config file.
Cons of replacing it:
I know a lot of servers use different mysql credentials for each plugin for security reasons, this would not allow that.
Potentially another library in the jar that is not used very much and cannot be updated due to backwards compatibility.
I don't agree with the bs that no libraries should be included in spigot only because "Plugins should manage their own dependencies". That is dumb.
Ah ok, that makes more sense. Interesting
Do you actually know anyone aside from zPermissions that uses this?
Lets agree to disagree that spigot should add some sort of mysql lib and api in, hikaricp is the best bet. Instead of having hundreds of devs spending wasteless time on creating their own shitty sql system lets just collaboratively create a mysql system for spigot that implements hikaricp.
I think i saw one other plugin once that used the Ebean ORM. It wasn't a popular plugin though. Don't remember exactly why i was looking at it, might have been trying to help them fix something. Otherwise I've never seen any other plugins using it.
Just to make sure I'm being clear, those pros and cons are for implementing a connection pooling library into Spigot like HikariCP or C3P0, not for pros and cons of removing the Ebean ORM.
We will not add new libraries to the Bukkit API, because once we do that we can almost never update them.
Even just bumping MySQL a few point releases has caused complaints, and the SQLite change this release has been several years in the making.
Plugin developers should embed what they like because then its their issue if it breaks / is outdated, not ours.
As for the rest of this thread - it's pretty clear that the majority don't care - about 95% want it removed. Given that zPermissions is pretty much the only plugin in existence that uses this, that's that. If people still want to use it they can embed it within their plugin.