Mapping ISO2 and ISO3 Country Codes with Java
There are two commonly used code systems for countries: ISO 3166-1 alpha-2 and ISO 3166-1 alpha-3, aka ISO2 and ISO3 country codes. In ISO 3166-1 alpha-2, each country is represented by 2 letters, and...
View ArticlePrint pages and page fragments using an IFrame and jQuery
In my current Grails project I am using jQueryUI to display information in a dialog window. When opening the dialog window, the content of the dialog is loaded via Ajax. One requirement we had to...
View ArticleA Groovy way to retry method calls in case of exceptions
In some scenarios, method calls can fail – but would succeed when retrying the call after some seconds have passed. That is often the case with remote method calls, where the remote application could...
View ArticleDisplaying Hibernate statistics in a Grails app
Hibernate offers a statistics object (org.hibernate.stat.Statistics) that can be used to monitor the behavior of Hibernate at runtime. Statistics include connection count, max query execution time,...
View ArticleGrails 1.4 canceled, next release version will be 2.0
Grails 1.4 should actually come after Grails 1.3. SpringSource recently decided to cancel 1.4 and name the next release 2.0. A lot of improvements and new features justify the new major version number....
View ArticleDynamic list injection in Spring
Imagine you have a Spring XML configuration which defines a bean with a list property. The bean could look like public class MyBean { private List listProp; public void setListProp(List values) {...
View ArticlePrompt for confirmation when leaving a page
Sometimes users leave a web page without clicking on a save button to save the changes they made to a form. In this case, it can be useful to show a confirmation popup and ask them if they really want...
View ArticleSelenium 2 – Differences to Version 1
Selenium 2 is out for a month now. As I had to introduce Selenium into a project, I picked the new version of Selenium (2.2). I’d like to show some of the differences between Selenium 1 and 2 that I...
View ArticleJavaScript Lint – checks your JavaScript source code for common mistakes
I recently worked on a web application with a lot of Javascript code in it. The app worked well in Firefox, but when trying it in Internet Explorer 7 – to my surprise – the app did not work and...
View ArticleDebugging Dojo Applications
When you try to debug your JavaScript sources of your Dojo Toolkit webapp / website using Firebug, you will realize soon that it’s quite not possible. Error reports are linked to framework JavaScript...
View ArticleEnvironment specific externalized Grails configuration
Grails supports environment specific configuration, which can be used to define different settings for development, test, production or custom environments. The Grails User Guide describes this feature...
View ArticleIntegrating Selenium 2 with Ant
We recently integrated Selenium 2 into the Ant build of one of our projects. In this blog post I will show you how you can integrate your automated JUnit based Selenium 2 tests with Ant. If you are...
View ArticleGrails 2.0 released
It took Grails 6 years from it’s beginning to reach version 2.0. A lot of great and long awaited features justify the version jump from 1.3 to the new major release 2.0. Visit the What’s new in Grails...
View ArticleGrails Database Queries – Criteria Builder vs. Where Queries [updated]
Before Grails 2.0 arrived, Grails offered 3 ways of doing a database query: dynamic finders HQL queries Hibernate Criteria Builder If the database query is very simple, dynamic finders are a good...
View ArticleKnockout JS 2.0.0 released – Dynamic JavaScript-UIs using Data Binding
The Knockout JS Team recently released version 2.0.0 of their JavaScript data binding framework. Knockout JS is a small Javascript library that offers declarative data binding for your HTML code. It...
View ArticleFirebug 1.9 released
The popular web developer tool Firebug has been released in version 1.9. The new features include: Firebug panel docking it is now possible to dock the Firebug panel to any of the four sides of the...
View ArticleGrails is getting Maven support
According to a recent blog post of Grails project lead Graeme Rocher, Grails is getting Maven support in the form of a plugin. Currently, Grails uses Maven repositories for dependency resolution, but...
View ArticleGrails 2.0 Upgrade Guide
The Grails team has started a Google Plus discussion to gather feedback from the community on how their upgrade to Grails 2.0 went. To sum it up, small applications can be upgraded easily to Grails...
View ArticleJSON as core type in PostgreSQL 9.2
It looks like PostgreSQL 9.2 will get a JSON core type. Additionally, there will be functions to produce JSON data from database queries: query_to_json() array_to_json() row_to_json() Here is a simple...
View ArticleTwitter’s Bootstrap 2.0 released
Twitter recently released Bootstrap 2.0. Bootstrap is a open-source HTML/CSS toolkit (Apache 2 licence) to build modern websites or web applications. It’s not a framework but a set of css styles and...
View Article