page banner
avatar
'Reinforcing Grails Application With Hudson/Jenkins' post illustration
Reinforcing Grails Application With Hudson/Jenkins

Hudson is an excellent continuous integration tool and has become an indispensable assistant in software quality control for many organisations. As for this post I will describe how to couple Hudson and Grails to work in effective synergy.

avatar
'Spring Security Grails plugin. Quick start and some tips' post illustration
Spring Security Grails plugin. Quick start and some tips

Spring Security plugin is a fast and convenient solution for authorizing user access. Almost every Grails web application uses it. In this article I would like to provide a guide about how to apply this solution quickly, and show you some tips that should be really useful for beginners.

avatar
'Groovy for Java developer: learning Groovy-specific features' post illustration
Groovy for Java developer: learning Groovy-specific features

Groovy is an object oriented dynamic language for the JVM. Dynamically compiled to a bytecode and interoperable with most Java libraries, Groovy is a perfect candidate for writing lightweight scripts that still can benefit from the Java ecosystem. Also, it is really easy to learn since the good old Java syntax is usually valid in Groovy. There are, however, a few caveats that you should be aware of before start coding. This post shows some specific features, and also gives a few suggestions which will help to write a clear, groovy-style code.

avatar
'Geb/Spock functional testing in Grails' post illustration
Geb/Spock functional testing in Grails

At our company’s blog we have already considered many types of the Grails testing. But there are yet one testing type, on which we have to take a look at. In this article we will check out the overview of writing functional tests using Geb/Spock technologies.

avatar
'Introduction to Git' post illustration
Introduction to Git

Git is a version control system, that was designed by Linus Torvalds, first released in 2005. In opposite to CVS (concurrent version systems) systems, which in it’s basics have a file as a processing item, in the Git basics lays work with the set of changes, other words, patches. This article dedicated to that persons, that is already familiar with the version control systems, such as SVN, and wants to know more about alternative version control solutions and persons that wants to get a tutorials about quick migration to the Git.

avatar
'Creating custom GSP tags and tag libraries in Grails' post illustration
Creating custom GSP tags and tag libraries in Grails

Grails tag libraries are designed to provide content formatting capabilities right on a GSP page. The 'tag' is an action that can be declared in a form of an HTML element. This action can accept an enclosed content and parameters defined as the element attributes to render a modified HTML. For instance, the following built-in tag iterates and renders each element of the list object using the template specified in the content:

avatar
'Grails Unit Testing: covering domain classes and services' post illustration
Grails Unit Testing: covering domain classes and services

Unit testing in Grails is currently implemented with Grails Testing plugin. The plugin provides unit testing facilities through the GrailsUnitTestCase class which offers a lot of useful methods for mocking Grails-specific objects. This post demonstrates how some of these methods can be used to test Grails domain classes and services.

avatar
'Filtering user access in Grails' post illustration
Filtering user access in Grails

Today we’ll talk about the ways to filter user access to some controllers and actions in the Grails application. There are few solutions that could be really useful for implementing this task. So let’s look at a quick overview of them.

avatar
'Escaping Deadlocks' post illustration
Escaping Deadlocks

Concurrent programs is not a novelty today, almost every modern application executes in multiple threads. But as concurrency brought us better resource utilization and throughput, it also introduced a number of issues nonexistent in serial execution. One of them is deadlocks. A deadlock is a situation where in two or more competing actions are each waiting for the other to finish, and thus neither ever does.