jOOQ™ 3.2 Offering Commercial Licensing and Support
Four years ago, the Java database middleware market was dominated by a variety of ORMs implementing JPA. This paradigm was hardly challenged by alternatives. There was a gap for an API making SQL a first-class citizen in the Java language ecosystem and jOOQ had come to fill this gap. With jOOQ, developers who engage heavily in writing SQL finally had a tool that helped them express SQL almost natively in the Java language, leveraging the Java 6+ compiler’s features to validate their SQL statement’s syntax and type correctness. In the last four years, jOOQ had become increasingly popular and mature. jOOQ is used by many demanding customers operating on large and complex databases. The feedback that we have had from those customers was unanimously positive, although there was one thing missing. That one missing thing was professional support, warranties, and thus commercial licensing. With the new jOOQ 3.2, apart from introducing great new features, we are changing quite a few things on how we operate.
At Data Geekery GmbH, we believe in Open Source. But we also believe in the creative power enabled by commercial software. This is why we have chosen to implement the following dual-licensing strategy:
- Users using jOOQ with popular Open Source databases will continue to be able to get our high-quality, integration-tested Apache Software License 2.0 licensed free Open Source distribution from Maven Central, from GitHub, or from the jOOQ website. At the same time, they will continue to profit from our free community support in English on the jOOQ User Group.
- Users using jOOQ with commercial databases will be able to profit from our competitive commercial jOOQ subscription licenses, which include support for commercial databases, as well as professional support in English, German, and French, early access to releases and bugfixes, warranties, custom engineering and much more.
Of course, customers using jOOQ with an Open Source database can also purchase a commercial license subscription, if they wish to profit from our professional support and services. In the following FAQ, we’ll answer to some questions you may have:
Why offering a workstation license?
We believe that the main added value of jOOQ is added to our customer’s development lifecycles. jOOQ helps developers write SQL code in 10% of the time they needed if they had used JDBC or other String-based approaches directly. At the same time, jOOQ and its powerful source code generator help prevent coding mistakes early in the development lifecycle, preventing 90% of the usual SQL mistakes. jOOQ is thus a development tool, as opposed to a database, which is a storage tool adding most value at runtime. This is why jOOQ offers a workstation license, as opposed to most databases offering server licenses.
Why not just offering support for an all-Open-Source library?
We’re aware of vendors that sell all-Open-Source software, making money only with expensive support subscriptions. This is a viable model for vendors offering server software, such as databases, where 24/7 support is very crucial. It is also a viable model for vendors offering very complex software, which needs a lot of additional, costly consulting efforts. jOOQ is none of the aforementioned. It is middleware, which is very easy to use and will not generate any consulting business as it adds almost no complexity on top of SQL itself. We have challenged our decision with a variety of existing users and customers, and we firmly believe that we can add most value with a dual-licensing model that builds upon dependent database licensing models. After all, spending a bit of money on a jOOQ license will save our customers an incredible amount of money on their development lifecycle with powerful databases like DB2, Oracle, SQL Server, or Sybase.
Why stick with the Apache License?
The Apache License has served us well in the past four years. It is very liberal while at the same time, protecting our trademarks. It is a license that has enabled us to grow and get lots of high quality community feedback and contributions. We do not want to follow suit with other dual-licensing companies who go down the *GPL path, as we believe that dual-licensing *GPL software is not true to the spirit of Open Source Software in the long run. By staying with the Apache License, we want to express our deep commitment to Open Source.
What about contributor copyrights?
We take copyrights seriously. This is why we had our major contributors sign an agreement to transfer all copyrights to us. While we need to settle copyrights, we still want to publicly attribute authorship to those contributors who have shared code or documentation with us. Of course, we also welcome all future contributions by our community! Should you as a contributor feel that your copyrights are challenged or infringed by our dual-licensing, please do contact us directly.
What happened to the jOOQ Console?
While the jOOQ Console 3.1 will continue to be available to jOOQ 3.2 users from Maven Central, the jOOQ Console development has been stopped in its current form. It will make room for a new, commercial profiler software that Data Geekery will develop in the near future, stay tuned.
Why do this at all?
Because we want to show our commitment to jOOQ, which is much more than a library. It is a vision of a better Java and SQL integration. It is innovation in various fields of the Java ecosystem. We want to:
- Support those who love both Java and SQL and who were denied appropriate tooling, in the past.
- Further develop the integration of internal domain-specific languages in Java, by formalising language aspects of software like jOOQ. Not just for jOOQ.
- Expand our high-quality SQL integration into the Scala ecosystem by offering a native Scala API – and possibly core.
- Further improve the jOOQ Console to provide more high-quality development tooling.
- Make our SQL knowledge available to our customers through our blog and source code.
In order to implement the above plans, we need to create a business from jOOQ. And we believe that this business will be extremely interesting both to us and to our customers. Together, as the jOOQ ecosystem, we’ll create a better Java/SQL world! Let us start with jOOQ 3.2!
Everytime you read an excellent article and don't share it, god kills a kitten!
- 2,555,365 hits
- Dear followers, we need your love! What was your jOOQ experience like? buff.ly/1nT1PyB 4 hours ago
- This Common API Technique is Actually an Anti-Pattern buff.ly/1nSUgYS 7 hours ago
Get Back in Control of Your SQL
Top Posts & Pages
- The Difference Between ROW_NUMBER(), RANK(), and DENSE_RANK()
- Do You Really Understand SQL's GROUP BY and HAVING clauses?
- The 5 Golden Rules of Giving Awesome Customer Support
- SQL Trick: row_number() is to SELECT what dense_rank() is to SELECT DISTINCT
- Java 8 Friday: 10 Subtle Mistakes When Using the Streams API
- 10 Subtle Best Practices when Coding Java
- Java 8 Friday Goodies: Map Enhancements
- The 10 Most Popular DB Engines (SQL and NoSQL)
- Top 10 Easy Performance Optimisations in Java
- Probably the Coolest SQL Feature: Window Functions
- The 5 Golden Rules of Giving Awesome Customer Support February 9, 2016
- Using Oracle AQ via Java 8 Streams February 8, 2016
- How to Detect Slow Queries with jOOQ January 28, 2016
- How to Pattern-Match Files and Display Adjacent Lines in Java January 26, 2016
- Use JUnit’s expected exceptions sparingly January 20, 2016
- Impress Your Coworkers by Using SQL UNPIVOT! January 18, 2016
- Reactive Database Access – Part 3 – Using jOOQ with Scala, Futures and Actors January 14, 2016
- If Java Were Designed Today: The Synchronizable Interface January 12, 2016
- 2016 Will be the Year Remembered as When Java Finally Had Window Functions! January 6, 2016
- A Curious Incidence of a jOOQ API Design Flaw January 5, 2016
- February 2016 (2)
- January 2016 (8)
- December 2015 (10)
- November 2015 (2)
- October 2015 (8)
- September 2015 (5)
- August 2015 (7)
- July 2015 (3)
- June 2015 (7)
- May 2015 (9)
- April 2015 (11)
- March 2015 (11)
- February 2015 (10)
- January 2015 (9)
- December 2014 (10)
- November 2014 (8)
- October 2014 (5)
- September 2014 (13)
- August 2014 (11)
- July 2014 (10)
- June 2014 (14)
- May 2014 (15)
- April 2014 (11)
- March 2014 (15)
- February 2014 (17)
- January 2014 (14)
- December 2013 (23)
- November 2013 (24)
- October 2013 (19)
- September 2013 (15)
- August 2013 (24)
- July 2013 (17)
- June 2013 (3)
- May 2013 (5)
- April 2013 (6)
- March 2013 (8)
- February 2013 (11)
- January 2013 (3)
- December 2012 (5)
- November 2012 (2)
- October 2012 (5)
- September 2012 (7)
- August 2012 (7)
- July 2012 (7)
- June 2012 (1)
- May 2012 (6)
- April 2012 (12)
- March 2012 (3)
- February 2012 (5)
- January 2012 (12)
- December 2011 (8)
- November 2011 (15)
- October 2011 (17)
- September 2011 (12)
- August 2011 (13)
- July 2011 (4)