I am evaluating the prospect of developing a commercial java web application using Hibernate as the ORM framework. This application would be installed on a customer's server and would be used by a small number of users. Also I do not want to release my source code since the application is mission critical and it would potentially jeopardize the security of the application.
I'd design the application so if the customer has a enterprise database license already I'd configure Hibernate to use that database. Otherwise, ideally I'd like to provide/recommend a database for them. Based on my current expertise I'd prefer to use MySQL which is dual licensed commercially and under the GPL.
Aside from the Hibernate dialect settings I do not plan to have any MySQL specific code or SQL in my application. Based on information on MySQL's website and many of the conflicting posts I've read online, it would appear that if I want to distribute the application in this manner I would need to purchase a commercial license from MySQL. The cost of a commercial license ($600+ a year from what I understand) would make the software too expensive. I feel that there must be other commercial web applications that allow similar functionality and are not bundled with a database.
That brings me to these two questions:
1.) Are there any known circumstances where you can use MySQL Community Edition with a commercial closed source application without paying a license fee? If so do you know of any commercial applications or companies that legally do this?
2.) Ideally I'd like to use the MySQL connector J driver which I believe is also dual licensed. If I do not bundle this jar in my code and instead instruct the user to download the connector and download and install MySQL Server directly from MySQL's website is this permissible under the GPL?
There are a couple helpful posts already on Stack Overflow (such as MySQL licensing and GPL) but I am looking for a more specific answer for my case. I realize most of us are not lawyers but any guidance would be helpful so I can get past the legal issues and get started on the actual coding! Thanks.
When you use the MySQL Database Software in conjunction with a web server, you do not need a commercial license. This is true even if you run a commercial web server that uses MySQL server, because you are not selling an embedded MySQL version yourself.
JDBC stands for Java Database Connectivity. It provides a set of Java API for accessing the relational databases from Java program. These Java APIs enables Java programs to execute SQL statements and interact with any SQL compliant database.
Do not make business decisions based on legal advice you get on the internet -- including mine.
My understanding is that if you tell your customer that they are responsible for downloading and installing MySQL and the JDBC connector, you can get around the GPL license terms.
If you distribute GPL software with your application, your software implicitly uses that license too. You would be obligated to allow your customer access to your source code. including the rights to modify it and distribute it themselves.
You could choose as your default RDBMS another popular open-source RDBMS with a more permissive license, such as:
Re your question in comment: Confluence is actually not open source, it's a commercial product. They do make source available to commercial license holders, but this doesn't qualify as open-source per the OSI definition.
Confluence uses JDBC, a non-RDBMS-specific API defined by Sun Microsystems. Confluence distributes with a lightweight Java database called HSQL or HypersonicHSQL, which uses a license like the New BSD License. If the customer wants to use Confluence with MySQL he has to install it himself.
See http://confluence.atlassian.com/display/DOC/Database+Setup+For+MySQL where the setup documentation tells you to go download and install MySQL and MySQL Connector/J.
The key to why this works for a non-open-source product like Confluence is that their product doesn't necessarily need to use MySQL, it can use a different JDBC driver (and in fact does so, by default). Since there's no dependency on using MySQL specifically, Confluence doesn't need to comply with the terms of GPL.
If you have other questions about GPL, the GPL FAQ is probably the best place for you to start, instead of StackOverflow. See http://www.gnu.org/licenses/gpl-faq.html
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With