page banner
'Thread synchronization in Grails application using Hazelcast' post illustration
Thread synchronization in Grails application using Hazelcast

Recently, I have been looking for a way to implement thread synchronization in a Grails application which is hosted on several nodes on Rackspace. And while it's rather easy to synchronize threads within a single servlet container, it might be difficult to do it when the same data is simultaneously updated from separate server nodes. This post shows how this task can be solved with Hazelcast.

'Advanced GORM features: inheritance, embedded data, maps and lists storing' post illustration
Advanced GORM features: inheritance, embedded data, maps and lists storing

In my previous GORM related article, "Association Types in GORM", I have described how to create different types of relationships using Grails ORM. In this article, I would like to talk about several advanced GORM features that may help you in the development process, such as:

  • domain classes inheritance
  • embedded data
  • maps and lists storing

'Dynamically add and remove HTML blocks with Grails tag library and JQuery' post illustration
Dynamically add and remove HTML blocks with Grails tag library and JQuery

This post shows how to create Grails tag library for adding and removing identical HTML blocks, which can be used when you want to give user an option to dynamically add extra inputs for additional information. There are lots of simple JQuery and pure JavaScript solutions for this feature, but, in general, they are not flexible and clean enough for a Grails application. Pure tag library approach helps to avoid HTML and JS clutter in a GSP file and speeds up the development, since the only thing you need is to specify the tag with necessary parameters.

'Association types in GORM' post illustration
Association types in GORM

GORM (Grails Object Relational Mapping) is a plugin integrated with Grails and based on Java ORM - Hibernate. In this article, I'm going to describe how to make different kinds of associations in GORM.

'Dump a specific table or few rows (MySQL)' post illustration
Dump a specific table or few rows (MySQL)

The 'mysqldump' command is used to dump databases managed by MySQL. Let's consider three the most useful cases of MySQL database dumping.

'Checkout a specific revision with Git' post illustration
Checkout a specific revision with Git

If you have a project and want to checkout specific revision (commit), you can do it as described below.

'Upgrade ElasticSearch on Linux' post illustration
Upgrade ElasticSearch on Linux

Suppose you have a system with ElasticSearch server installed and need to upgrade it to a newer version. Below is a step-by-step guide explaining how you can do it, but note that it only works for ElasticSearch pre-1.x versions. It's also assumed that you have already stopped your ElasticSearch cluster before upgrading.

'Get total records count with GORM criteria' post illustration
Get total records count with GORM criteria

Assume you have a page with pagination that displays some objects table (selected from DB with GORM criteria) in your Grails application. If you want to know total number of possible results (as if there are no pagination parameters), you can do it in this way: