Saturday, April 26, 2008

Grails wins 2nd prize in JAX Innovation Award



Just read that Grails has won the Second prize (5.000 euro) in the yearly JAX Innovation Award. And that after Groovy won the First prize a year earlier. As Grails developers we know the Grails/Groovy platform is truly innovative compared to other web frameworks, but it is good to see the recognition from such a public award.

The JAX Innovation Award were presented and awarded to the winners during the conferences JAX, SOACON and Eclipse Forum Europe. The three conferences are taking place at the same time in Wiesbaden and represent the most important meeting for professional information technology in Europe.

Thursday, April 24, 2008

Busy time in Grails plugin land: Announcing the OpenID plugin



It are busy times in Grails plugin land. This week the Searchable Plugin 0.4.1, Acegi Plugin 0.2.1, and the Authentication Plugin 1.0 were already released. And I've just added another one myself: the OpenID Plugin

While Marc Palmer was releasing his Authentication plugin, I was working one a OpenID plugin myself. When I was reading through the Authentication plugin documentation I really got inspired by some features of it. So I borrowed/copied some concepts of it to the OpenID plugin. Thanks Marc!

The OpenID plugin does all the plumbing to communicate with OpenID providers (using the OpenID4Java library) to authenticate/identify users for your website. The great thing is that you are in full control where the controller and the OpenID providers will redirect to in case of successfull login or error.

Here is an example:


<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="layout" content="main" />
<title>Login</title>
<openid:css />
</head>
<body>
<div class="nav">
<span class="menuButton"><a class="home" href="${createLinkTo(dir:'')}">Home</a></span>
</div>
</div class="body">

<h1>Login</h1>
<openid:hasLoginError>
<div class="errors">
<ul>
<li></li>
</ul>
</div>
</openid:hasLoginError>
<openid:form success="[action:'loggedin']">
<openid:input size="30" value="http://" /> (e.g. http://username.myopenid.com)
<br/>
<g:submitButton name="login" value="Login" />
</openid:form>
</div>
</body>
</html>



For full documentation see: http://grails.org/OpenID+Plugin

Friday, April 11, 2008

Update on Ext Scaffolding



I'm making some progress on the Ext Scaffolding for Grails.
Currently I can generate all CRUD functionality for a simple domain class with String properties.

It's done by overriding the default scaffolding templates (aka grails install-templates). So when finished the Ext plugin will contain a plugin to install these templates, which then can be used with the generate-all command.

See below some additional screenshots.



Friday, April 4, 2008

Sneak Preview: Ext Scaffolding for Grails



A short post just before the weekend. Have a look at the nice screenshots below, which are the result of Grails Ext Scaffolding templates I'am working on currently. I hope to include the templates in the Grails Ext plugin soon.



Wednesday, March 26, 2008

First experience with Groovy and Grails support in NetBeans 6.1



Recently many blog postings related to NetBeans with Groovy and Grails integration appeared on groovyblogs.org. See Guillaume Laforge's Groovy / Grails support in NetBeans and GlassFish blog entry for a complete summary and links to related postings.

When I was reading those posting I felt it was time to try it out myself.
After downloading the latest NetBeans 6.1 nightly build and installing the Groovy and Grails plugin, I was ready for a testdrive.

Creating a Grails project


Creating a Grails project has never been easier. The NetBeans 6.1 Groovy and Grails plugin contains a New Project wizard for creating a new Grails project.



After creating the project (NetBeans is calling the Grails create-app command underwater), NetBeans displays a nice project structure specially for Grails projects.



See how NetBeans nicely devides all Grails artifact types (like Controllers, Domain classes, Scripts, Services, etc.) in separate folders.

Creating Grails artifacts


The NetBeans 6.1 Groovy and Grails plugin features context menus for creating Grails artifacts like Domain classes etc easily. After clicking the context menu item, a dialog is opened to enter information needed to create the Grails artifact.





After creating the domain class a context menu is available for generating the controller and views.



NetBeans is always calling the Grails commands underwater and this means that when generating the Views from within NetBeans also customized templates can be used. As far as I could find the install-templates command could not be executed from within NetBeans, so you still need the Grails command line.

Code-completion and syntax color highlighting


The NetBeans 6.1 Groovy and Grails plugin offers Groovy code completion and syntax color highlighting. To bad the current version does not yet include code-completion for Grails dynamic methods.



Running a Grails application


From within NetBeans the Grails application can be started (run-app) using a context menu on application level.



Notice also the context menu item to generate a war archive or to see statistics.

Deploying a Grails application to GlassFish


Reading the other blog posting it is also possible to deploy your Grails application in GlassFish, but I didn't tested this myself yet.

Summary


My first experience with the NetBeans 6.1 Groovy and Grails plugin is good. Nice to have those context menu for executing the Grails commands from the IDE. However code completion, and specially for Grails dynamic methods, need to improve to really compete with IntelliJ. But I really believe this will happen in the near future!

Tuesday, March 25, 2008

Groovy User Group on LinkedIn



I just created the Groovy User Group on Linkedin and already 50 members have joined.
If you are interested join this group at http://www.linkedin.com/groupInvitation?groupID=76751&sharedKey=7038BD424E3B.

For Grails there was already a group on LinkedIn. Join this group at http://www.linkedin.com/groupInvitation?groupID=39757&sharedKey=40CA861F1941.

Friday, February 15, 2008

Grails adaptive AJAX support with the Yahoo! UI Library



Grails ships out of the box with adaptive AJAX support.
By default Grails uses the Prototpe library when invoking AJAX request using the Grails remoteLink, formRemote and submitToRemote AJAX tags.

Not only is Grails providing an easy way of integrating AJAX functionality in your pages, but it also allows you to switch to another AJAX library if needed. This is what we mean with adaptive AJAX support.

One of the use cases to switch to another AJAX library is that this library offers more functionality then the default Prototype library. E.g. you want to use the Yahoo! User Interface Library (YUI) within you application for the autocomplete or calendar functionality. In this case you want the YUI library also to be used for your AJAX tags, so you only depend on YUI and not on both YUI and Prototype.

If you want easy support for YUI in your Grails application then just install the Grails Yahoo! UI Library Plugin which I released today. It downloads and installs automatically the latest YUI 2.4.1 2.5.0 distribution in your application, and registers itself to be used with the adapative AJAX tags. It also contains two helper tags to easily include additional YUI javascript and css files as well.

Note that this plugin does not provide any tags for embedding rich ui components without having to deal with javascript libraries. If you are more interested in such a plugin, have a look at the Grails RichUI Plugin. This plugin contains a set of AJAX components not limited to the YUI library.

For a personal application I want to use the YUI autocomplete and calendar functionality so I'm thinking already of a Grails YUI Widgets Plugin which can be installed on top of the YUI Plugin ...