The Caveats of Dual-Licensing

We've been in business for more than one year now with our dual-licensing strategy for jOOQ. While this strategy has worked very well for us, it has also been a bit of a challenge for some of our customers. Today, we're going to show you what caveats of dual-licensing we've run into. Our dual-licensing strategy … Continue reading The Caveats of Dual-Licensing

Using Your RDBMS for Messaging is Totally OK

Controversial database topics are a guaranteed success on reddit, because everyone has an opinion on those topics. More importantly, many people have a dogmatic opinion, which always triggers more debate than pragmatism. So, recently, I posted a link to an older article titled The Database As Queue Anti-Pattern by Mike Hadlow, and it got decent … Continue reading Using Your RDBMS for Messaging is Totally OK

Asynchronous SQL Execution with jOOQ and Java 8’s CompletableFuture

Reactive programming is the new buzzword, which essentially just means asynchronous programming or messaging. Fact is that functional syntax greatly helps with structuring asynchronous execution chains, and today, we'll see how we can do this in Java 8 using jOOQ and the new CompletableFuture API. In fact, things are quite simple: // Initiate an asynchronous … Continue reading Asynchronous SQL Execution with jOOQ and Java 8’s CompletableFuture

Top 10 Most Popular Articles on the jOOQ Blog

What do people do when they run out of topics? They recycle previous topics and create top 10 lists. Here is a list of the top 10 most popular articles from the jOOQ blog: Top 10 Very Very VERY Important Topics to Discuss A fun, not so serious parody on what is being discussed on reddit's … Continue reading Top 10 Most Popular Articles on the jOOQ Blog

How Nashorn Impacts API Evolution on a New Level

Following our previous article about how to use jOOQ with Java 8 and Nashorn, one of our users discovered a flaw in using the jOOQ API as discussed here on the user group. In essence, the flaw can be summarised like so: Java code package org.jooq.nashorn.test; public class API { public static void test(String string) … Continue reading How Nashorn Impacts API Evolution on a New Level

This Just In!! Updated Silly Keyword Metrics

It's this time of the year and we're repeating the silly metrics keyword count across all of jOOQ's code base. We have a couple of exciting news! public is still one of the favourite keywords (yeah, we're an API), but return is closing in, as well as final (yeah, we love final). A bit more … Continue reading This Just In!! Updated Silly Keyword Metrics

This is the Final Discussion!

Pun intended... Let's discuss Java final. Recently, our popular blog post "10 Subtle Best Practices when Coding Java" had a significant revival and a new set of comments as it was summarised and linked from JavaWorld. In particular, the JavaWorld editors challenged our opinion about the Java keyword "final": More controversially, Eder takes on the … Continue reading This is the Final Discussion!

Why You Should NOT Implement Layered Architectures

Abstraction layers in software are what architecture astronauts tell you to do. Instead, however, half of all applications out there would be so easy, fun, and most importantly: productive to implement if you just got rid of all those layers. Frankly, what do you really need? You need these two: Some data access Some UI … Continue reading Why You Should NOT Implement Layered Architectures

When the Java 8 Streams API is not Enough

Java 8 was - as always - a release of compromises and backwards-compatibility. A release where the JSR-335 expert group might not have agreed upon scope or feasibility of certain features with some of the audience. See some concrete explanations by Brian Goetz about why ... ... "final" is not allowed in Java 8 default … Continue reading When the Java 8 Streams API is not Enough

Look no Further! The Final Answer to “Where to Put Generated Code?”

This recent question on Stack Overflow made me think. Why does jOOQ suggest to put generated code under “/target” and not under “/src”? ... and I'm about to give you the final answer to "Where to Put Generated Code?" This isn't only about jOOQ Even if you're not using jOOQ, or if you're using jOOQ … Continue reading Look no Further! The Final Answer to “Where to Put Generated Code?”