Groovy
Inherit Constructors From Parent Classes
A new transformation annotation which safes us a lot of typing when we define new classes that extend from parent classes with multiple constructors: @InheritConstructors.
GORM
Querying the Database using GORM Dynamic Finders
A thorough Grails Guide about the use of GORM's dynamic finders.
Grails
The Flaws in Polyglot Persistence
A post by @musketyr which describes the motivation to develop Dru (Data Reconstruction Utility):
It is a challenge to prepare test data for a simple project but when the data spans multiple data stores it gets even more complicated. The two major issues I found can be described as The Identity Flaw and The Self-Containment Flaw.
Dru - Data Reconstruction Utility
Dru is Data Reconstruction Utility which helps to create and maintain test data based on real-life production data as it is for example often easier to grab production data of web application as JSON than trying to create selective export from one or more data stores.
AgoraPulse is a profitable startup which builds its SaaS product with Grails. Kudos to them for innovating and sharing utilities to the community.
Grails Community Rock Star Award
Inspired by similar recognitions such as Java Champion, we have launched Grails Community Rock Star Awards.
Nominate a member of the Grails Community to be recognized at the annual G3 Summit for his or her outstanding contributions to the success of the Framework, happening November 28th, in Austin, TX.
Do you need ideas? @nulleric, @davydotcom, @burtbeckwith, @sbglasius, @albertovilches, @mrhaki and many others.
Compare changes between Grails versions
We have setup a GitHub organization to help users compare changes between apps created from scratch using different Grails versions.
If you visit the link, you will find a repository per Grails profile.
Imagine you want to upgrade a Grails 3.2.11 which uses the rest-api profile to the latest Grails stable version 3.3.1. You could see the changes in an app created from scratch:
I believe this should be a useful tool to upgrade your apps.
Note: this is an original idea of @nulleric who created a repository with this concept for the web profile.
Gradle
Auto reload HTML Asciidoctor Gradle plugin output
I frequently write documents using the Gradle Asciidoctor tooling. Gradle’s continuous build feature works well to rebuild the output as soon as a change is made to the source, but you then need to refresh your browser to see the change rendered.
If you write Aciidoc documentation, the build change described in this blog post will definitely help your productivity.
Comment
Sometimes, people pour their soul into a technology, and as a consequence, they become an authority on the technology. They are bright, recognizable faces of the community. But they have a life. They change jobs. They discover other technologies. They dislike the direction their beloved technology is going. When you leave a company, you should not trash talk it. You hurt the company. Moreover, you hurt the employees, the partners, the company providers. Anyone involved. Same with a technology you love, especially if you are a face of it.
You will often hear the sentence, the best of Groovy is its community. It is an excellent community. But let me tell you something. I was not attracted to Groovy by its community. I was attracted by the ecosystem pieces (Grails, Geb, Griffon) that enable you to get things done. They allow you to work in an elegant, joyful and testable way. While innovation keeps happening (GraphQL, Multi-tenancy, Data Services...), the tools are so mature that they are a safe choice for any company small or big to develop their products (see below).
Sergio del Amo