Author Archive for

Reuse your Hibernate/JPA domain model with Grails

It's a common story. You have an existing database and now you want to add a web application for it with the minimum of fuss. Is Grails up to the task? Of course it is! Even better, if you already have a domain model based on JPA or Hibernate configuration files, you can reuse it Read more…

RabbitMQ Plugin for Grails – Early Access

RabbitMQ is a lightweight, reliable, scalable and portable message broker based on the Advanced Message Queueing Protocol (AMQP). It's ideal for heterogeneous systems and cloud platforms, but it can be used for pretty much any messaging requirements, big or small. You don't (typically) access it via the JMS API, and in fact the JMS plugin Read more…

Simplified Spring Security with Grails

Spring Security is a powerful library for securing your applications that comes with a bewildering number of options. Based on Spring, it can be readily integrated into a Grails application. But why not save the hassle and use the new improved Grails plugin? The plugin has gone through several evolutionary stages that started with the Read more…

GORM Gotchas (Part 3)

It's great to hear that people are finding these articles useful, so it's with great pleasure that I add another to the series. This time I'm going to talk about associations again, but with the focus on when they are loaded into memory. Update 2 Aug 2010 I have added more information on eager fetching Read more…

GORM Gotchas (Part 2)

In part 1 of this series, I introduced you to some of the subtleties associated with persisting domain instances with GORM. This time, I'm going to tackle relationships with particular focus on hasMany and belongsTo. GORM provides only a few basic elements for defining relationships between domain classes, but they are sufficient to describe most Read more…

GORM Gotchas (Part 1)

Are you new to Grails? Or have you perhaps run into your first GORM "oddity"? If so, then you'll want to read this series on GORM gotchas. Not only will the articles highlight those little idiosyncrasies that often catch people out, but they will also explain why GORM behaves in these ways. Hopefully you will Read more…

Understanding AMQP, the protocol used by RabbitMQ

table { margin-bottom: 1em; } table, tr, th, td { border: 1px solid #DDD; border-collapse: collapse; } th, td { padding: 5px 10px; } Update I changed the first paragraph to clarify the relationship between RabbitMQ and JMS. RabbitMQ is a lightweight, reliable, scalable and portable message broker. But unlike many message brokers familiar to Read more…

Spring: the foundation for Grails

In the SpringSource training course for Groovy & Grails, we highlight that Grails stands on the shoulders of giants. One of those giants is Spring. Without it, Grails simply wouldn't have been developed as quickly as it was. It probably wouldn't have the flexibility to integrate easily with enterprise Java systems either. Just look at Read more…

What's a plugin-oriented architecture?

Grails is a fantastic framework for developing web applications quickly and easily. You also have access to a plethora of plugins that provide features or make integration with other systems nice and easy. That's all good, but in this article I want to talk about what happens when your application grows and you start drowning Read more…

More Grails 1.3 features

Last week, I described how Grails now treats plugins like normal dependencies that can be pulled from Maven-compatible repositories. Although this was the big new feature for 1.3, it wasn't the only one. In this post, I'll look at some of the others, starting with a feature that I only recently found out about. Named Read more…