Alex Kramer
Ruminations of a soccer playing software engineer
Grails Hibernate Filters support for Hibernate 5
While upgrading one of our Grails 2 applications at Good Start Genetics to Grails 3.2.3 we found that the latest version of the Grails Hibernate Filters plugin was no longer functional. This ended up being due to the fact that Grails 3.2.x ships with Hibernate 5 which removed/moved many of...
Grails Spring Security Account Locking with Redis
For a new project at Good Start Genetics we decided to use Grails 3 to build a RESTful JSON API. As with all of the Grails applications and services we have built we installed the Spring Security Core plugin. Given that this was an API only, we also integrated the...
Grails JMS Durable Topic Subscription Name
My Grails 2.2.1 application has for a while needed to connect to JMS queues. Configuration for that is fairly straightforward and its covered well in the documentation of relevant plugins (I use the Grails JMS Plugin). Recently it became necessary to add a few durable subscriptions to a topic (three...
Groovy Safe Navigation Operator Is a Null Check Not a Truth Check
The Groovy Safe Navigation Operator is awesome. No one likes getting NPEs all over the place or having to add lots of if/else blocks to check for nulls. We use it frequently in the Grails application at my company and given the depth of the domain class relationships it is...
Find Grails Domain Classes Needing Equals and Hash Code Implemenations
In a previous post I outlined a solution for creating an annotation to add an initialized business key as well as equal and hash code implementations. After using is it on a number of domain classes in my project, I then needed to identify if there were existing domain classes...