Tuesday, December 09, 2008

Grails + Spring Integration

Regular readers will recall I mentioned in my announcement of the SpringSource acquisition of G2One that the potential to integrate Grails with more Spring portfolio products is huge. Well, SpringSource colleague Russ Miles has taken the first steps in integrating Grails with Spring Integration 1.0.

For those of you who don't know, Spring Integration is a lightweight way to do message passing through endpoints in a similar way to some of the big ESBs. The article is a precursor to even more exciting stuff involving Spring Integration being made available as a Grails plugin. Watch this space.

Tuesday, November 25, 2008

Interview with me on Grails Podcast

Those crazy guys over at the Grails podcast interviewed me about various things ranging from being part of SpringSource to the upcoming Grails 1.1 release to my deep hatred of all things Maven. Check it out.

Tuesday, November 11, 2008

Groovy and Grails join the Spring family

You may have already read about it in the various news outlets and blogs covering the announcement, but if you haven’t I’m excited to spread the word that G2One - The Groovy/Grails company - has been acquired by SpringSource. The result is that Groovy and Grails join the growing number of excellent Open Source projects delivered by SpringSource.

The Spring Framework really pioneered simplified development on the Java platform. A philosophy that is the very essence of Grails. Both frameworks aggressively try to makes the lives of developers easier. The Spring Framework provides an abstraction layer of common Java enterprise APIs, whilst Grails uses the Groovy dynamic language to further simplify Spring and Java. In this sense Grails fits perfectly into SpringSource’s philosophy.

On the Grails front this is great news at multiple levels. With Grails already being based on Spring, users of Grails now have access to expertise about not only Grails, but also Spring, the framework that underpins all of Grails. Grails will benefit further from tighter integration with the Spring Framework with exciting integration possibilities on the horizon between Grails and great Spring portfolio products like Spring Batch, Spring Integration and SpringSource dm Server.

Grails will benefit from greater visibility and wider adoption simply by being under the SpringSource umbrella. In addition, SpringSource will bring all their expertise around Eclipse plugin development ensuring that users of Groovy and Grails have a first class experience in the Eclipse IDE.

At SpringSource, there is a lot of excitement about Groovy and Grails. Grails adds that little bit of Web 2.0 spice to the company and provides yet another avenue for users to adopt the Spring Framework. We’re literally buzzing with ideas on how Spring, Groovy and Grails can be integrated in the future and look forward to the feedback of the respective communities.

I personally will continue to lead Grails at SpringSource, whilst Guillaume remains the project lead of Groovy. The majority of the former G2One team have taken up positions at SpringSource. On the topic of Guillaume, he is as excited about this development as I am and has a great post on the benefits of the acquisition to Groovy. Check it out!

Resources:

Monday, November 03, 2008

Couple of nice Grails UI articles

Matt Taylor has posted a couple of nice articles demonstrating how to use GrailsUI's dataTable component. Cool stuff.

Saturday, November 01, 2008

GrailsUI 1.0 Released

Over the past few months we've had a lot of demand from different clients for a UI component library for Grails, built and supported by G2One. Thanks to a great collaborative effort, GrailsUI 1.0 is now available built on the excellent Yahoo UI library.

Matthew Taylor, G2One Software Engineer and the lead of the GrailsUI project, has the lowdown on what is on offer. Check it out!

Friday, October 31, 2008

New GORM Features Coming in 1.1

Now that The Definitive Guide to Grails 2nd Edition (barring a few reviews) is a wrap, I've been refocusing in Grails development. First up, is GORM and we've implemented a number of great improvements including:

Better GORM events

Previously, GORM supported beforeInsert, beforeUpdate and beforeDelete events, now there is afterInsert, afterUpdate and afterDelete to complete the picture

Persistence of Collections of Basic Types

GORM now supports persisting basic types like String, Integer and so on using a join table:
class Person {
static hasMany = [nicknames:String]
}
Improvements to Data Binding

It is now simpler to bind data to a subset of properties. Previously you could use the syntax:
person.properties = params
Which would bind all the incoming request parameters to the person. If you didn't want that behavior you could use the bindData method. Now you can bind to a subset of properties using the subscript operator:
person.properties["firstName","lastName"] = params
And access a subset of the domain classes properties using the same syntax:
person.properties["firstName","lastName"].each { println it }
Read-Only Access to Objects

Persistent instances can now be loaded in a read-only state using the read method:
def book = Book.read(1)
Default Sort Order

Associations can now be sorted using a default sort order declared at the class level:
class Book {
String title
static mapping = {
sort "title"
}
}
Or at the association level:
class Author {
static hasMany = [books:Book]
static mapping = {
books sort:"title"
}
}
Batch Fetching

GORM now supports configuring batch fetching (an optimization of lazy loading) using the ORM DSL at the class level:
class Book {
String title
static mapping = {
batchSize 15
}
}
Or at the association level:
class Author {
static hasMany = [books:Book]
static mapping = {
books batchSize:15
}
}
Improvements to Dynamic Finders

There is a new InList suffix that can be used with dynamic finders:
def groovyBooks = Book.findByAuthorInList(['Dierk Koenig', 'Graeme Rocher'])
Dynamic finders can also now use the query cache:
def books = Book.findByTitle("Groovy in Action", [cache:true] )
And upgrade to a pessimistic lock:
def books = Book.findByTitle("Groovy in Action", [lock:true] )
Legacy Mapping for Many-to-Many and Unidirectional One-to-manys

Many-to-many and Unidirectional One-to-many associations can use the joinTable argument to alter the way they map to the underlying database:
class Book {
String title
static belongsTo = Author
static hasMany = [authors:Author]

static mapping = {
authors joinTable:[name:"mm_author_books", key:'mm_book_id' ]
}
}
class Author {
String name
static hasMany = [books:Book]
static mapping = {
books joinTable:[name:"mm_author_books", key:'mm_author_id']
}
}

Thursday, October 02, 2008

Sky.com relaunches written in Grails

The main portal for Sky television has relaunched written in Grails. Sky, also known as British Sky Broadcasting or BSkyB, employs 17000 people in the UK and operates the largest satellite network in the UK.

The site receives a million+ hits per day and joins all the other subsites also written in Grails:
Congrats to the Sky team!

Update 07/10: Couple of new things have arison since this was posted. Firstly, Sky actually employ 17000 people not 11000. Seems the Google sample data I obtained was out of date.

Also Glenn Saqui has a nice write-up on the architecture of Sky.com on Marc's Blog. Altogether the 4 subsites listed above receive over 110 million hits per month and run on a cluster of web layer machines and 2 db machines. Checkout the aforementioned link for more info.

Tuesday, September 02, 2008

Terracotta meets Grails with the Terracotta for Grails plugin

Our busy community of plugin developers have been at it again and now there is a brand new plugin for Grails that adds support for the Terracotta data grid. It was always possible to do this with a bit of manual configuration, but now the plugin automates things nicely using a few new Grails command line scripts.

This is one of the really great things about Grails and Groovy, because Groovy classes are just standard Java classes it is possible to integrate Groovy or Grails applications with any existing Java infrastructure, including data grids like Terracotta and Coherence. Awesome stuff.

Monday, September 01, 2008

Groovy/Grails Community goes wild launches two sites

Wow, the Groovy/Grails community is really getting it together. First we had the launch of grailscrowd.com, which is a social networking site for Groovy/Grails people to connect with other Groovy/Grails people. The site is built on Grails and its only been up for a few days but aldready over 600 people registered. If you haven't done so do so! The source code for GrailsCrowd is also availabe at Github

Not to be outdown, however, Glen Smith has launched the Groovy Awards ! A site dedicated to nominating the best contributors and to the Groovy / Grails community. Awards up for grabs include Groovy / Grails t-shirts and other goodies. Check it out.

On my front, I know I have been rather inactive posting. Books are really all consuming beasts. I have given a go to twittering now and again about what I'm writing about, although I'm still not sure I "get" twitter.

Monday, July 28, 2008

London Groovy/Grails User Group Meeting - 31st July 2008

I'll be giving a talk on the state of Grails at the London Groovy+Grails user group meeting on the 31st of July. Skills Matter are hosting it as usual, be sure to sign-up here.

Monday, July 14, 2008

Groovy/Grails Training in North America

Apologies for not posting as frequently recently, I've been hard at work on the second edition of "The Definitive Guide to Grails" and also working on feature development for Grails 1.1 (we now have JSP tag library support in GSP and massive improvements to the plug-in system).

Nevertheless, on to the topic of this post, we (G2One Inc - The Groovy/Grails company) have launched our public Groovy & Grails training programme in the US. Announcing this exciting news is Jeff Brown, our main guy in the US, who has this to say:

"Our training events are a fantastic experience. G2One are the folks who lead and sustain the development of both Groovy and Grails. No one understands the technology better than the people who build it. G2One training events give developers an opportunity to spend several days with a technology expert covering everything from fundamentals to advanced language and framework features.

The sessions include a perfect mix of lecture and reinforcing lab work. That hands on approach is a great way for developers to internalize the details. There is no better way to quickly get a team up and running with the technology."

Check it out!

Monday, June 16, 2008

Brian Guan on Grails at LinkedIn

Brian Guan, one of the pioneers of Grails use within LinkedIn, has started a blog series about their experiences with Grails. The first post presents the slides the LinkedIn guys presented at the recent Groovy/Grails meetup at JavaOne. It makes for an interested read so check it out!

Friday, June 06, 2008

Grails 1.0.3 Released

We've just released Grails 1.0.3, which includes 230 issues resolutions and improvements since the last release. The release notes go through the full details, including outlining some of the new features like enum support and interactive mode.

Grails has come a long way, since the release of 1.0 Grails has been downloaded over 186000 times averaging out to around 50000 times per month. That puts it on par or not far behind some of the biggest open source projects like Spring, Hibernate and Struts in terms of downloads.

The most exciting thing for me though is the plug-in community with over 70 plug-ins in the repository some of the new ones include Axis 2 support, Java2D with GraphicsBuilder and profiling (contributed by one of the biggest Grails users LinkedIn) and debugging plug-ins. Awesome stuff.

Now I'm shifting my focus to the second edition of the book, and feature development for Grails 1.1.

Friday, May 23, 2008

Groovy Grails Training From G2One and Callista Enterprise

G2One, Inc. and Callista Enterprise AB have announced a partnership to support Advanced Groovy and Grails training in Scandinavia.

Göteborg 2008-09-08
Stockholm 2008-09-15
Malmö 2008-09-22

The 3 day comprehensive course covers details from intro to advanced for both the Groovy language and the Grails framework. The course description may be found here.

As with all G2One training events, students will receive a free 12 month license for IntelliJ IDEA. IDEA's JetGroovy brings fantastic support for both Groovy and Grails to the IDE.

Please contact us at training at g2one dot com with any training related inquiries.

Thursday, May 22, 2008

Grails in Depth slides from JavaOne 08

Although I wasn't able to make JavaOne due to my bought of pneumonia, Guillaume did an excellent job of delivering my presentations and then did everyone a favour by posting them online! Here we go for those who haven't seen them yet:


Monday, May 19, 2008

Grails.org now powered by Grails

We've just launched a re-write of the Grails.org site in Grails. Previously the site was powered by Confluence (the Atlassian wiki), now in the spirit of eating ones own dog food it is a fully Grails powered site.

Ever since the Seam guys launched seamframework.org powered by Seam I felt something had to be done, before we could look them in the face again ;-)

Now its there and its more than a simple page turner, but a full featured wiki engine including versioning, diff'ing etc. and the source code is available at Codehaus. Enjoy!

Saturday, May 10, 2008

On missing JavaOne 08

As I write this JavaOne 08 is being wrapped up and I am horizontal in bed. I somehow managed to get pleurisy and pneumonia a few days before the event so missed it completely.

Luckily, the awesome Guillaume Laforge delivered my talks on Groovy and Grails instead of me, but sorry to those who were expecting to see me there, health comes first in this case.

It seems to have been another successful conference from what I could infer from the twitter feed and various blog postings. Was nice to hear Groovy in Action was 3rd and The Definitive Guide to Grails 6th of the best seller list after day 1.

On that topic of the books, being bed bound for a couple of weeks has given me the chance (when I'm not sleeping and feeling too ill) to spend some time planning and writing the second edition of the "The Definitive Guide..".

I'm co-authoring with Scott Davis, so the book should be bigger badder and more impressive this time. Target release date is the end of the year. Lets hope the codene doesn't make my ramblings to incoherent!

Thursday, May 01, 2008

Spring Application Platform and Grails

For those of you interested, Grails applications deploy and execute on SpringSource's new Application Platform without any issues. I have updated the Grails deployment page to that effect.

Saturday, April 26, 2008

Grails wins second prize at JAX awards

Great to hear that Grails won second prize at the JAX innovation awards, Guillaume was there to accept the award as I was away on annual leave in Thailand.

Would have been nice to win first prize, but since Groovy won last year I guess that would be too much to expect :-)

There is a remarkable amount of innovation going on within the Grails community itself, just in the past week or so we've had new releases of the Selenium plug-in, the JSecurity plug-in, a JAWR plug-in, an OpenID plug-in and the new simple Authentication Plug-in.

All contributed by our awesome user community. Amazing.

Friday, April 25, 2008

Choosing an OSS License and the Ext-JS saga

The news that Ext-JS has, from one release to the next, changed from a modified LGPL to a GPL based license nearly made me fall off my chair. There have been many poor judged, and ill advised decisions made by software companies over the last few years, but this has got to be up there with the stupidist I've seen and I'm not even personally an Ext-JS user.

What they have effectively done is built up a community, taking full advantage of the open source model by accepting user contributions and patches and then turned around and kicked their own community up the backside. It is projects like Ext-JS that give open source a bad name. How can a company have faith in open source if the people behind it can't even decide how to license the thing?

When you start off in the software business you have to very early on decide whether you are an open source company or whether you are a commercial software company. If you choose the former then you need to choose an appropriate license. For platforms the GPL license can make a lot of sense (think Linux and Java) to prevent forks, force contributions etc. although I'm still not a big fan of it.

On the otherhand for libraries or frameworks only a few licenses make sense (Apache 2.0, MIT, BSD and to a lesser extent LGPL). With Grails we went for Apache 2.0 as one of the most liberal licenses out there. Once you've decided on the license as an open source company your job is the grow the community by attracting users who put faith in your product and the fact that its licensed in a liberal way. Those users would not come in the first place if you had a restrictive license.

By choosing the open source route you have made a decision as a company to promote the community driven approach. Of course this doesn't stop you from releasing a commercial version, you could dual license it as Ext-JS have done for those who want the comfortable feeling of paying for something. You cannot however, have it both ways you are either an open source company or you are not. Ext-JS seem to be stuck in 2 minds as to whether they really are an open source company, it is this indecisiveness that is going to see their community go elsewhere.

It is not like they're unique either, the Ajax framework space is super competitive and they've just dropped the ball and given their competitors a big advantage. My personally prediction on this one is that they'll lose a lot of users, probably to Yahoo UI and jQuery UI or possibly Dojo. Something else will soon come along to fill their space and soon they will have lost their competitive advantage, their users and all those license renewals.