Last updated by 3 years ago

Page: 1.3.5 Release Notes, Version:9

Grails 1.3.5 Release Notes

Grails 1.3.5 has not been released yet. This page is a placeholder.

Grails is a dynamic web application framework built on Java and Groovy, leveraging best of breed APIs from the Java EE sphere including Spring, Hibernate and SiteMesh. Grails brings to Java and Groovy developers the joys of convention-based rapid development while allowing them to leverage their existing knowledge and capitalize on the proven and performant APIs Java developers have been using for years.

Now using Groovy 1.7.5

Release notes for Groovy 1.7.5 can be found here.

Named Queries Now Support Sorting

The list method attached to named queries now support the same parameters as the static list method that is added to domain classes including "sort", "ordering", "ignoreCase" etc...

Person.recentPublications.list(sort: 'title', order: 'desc', ignoreCase: true)

New feature: view information about templates used to render a single url

GRAILS-5163

GSP templates are re-used in large web applications by using the g:render taglib. A lot of small templates can be used to render a single page. It might be hard to find out what gsp template actually renders the html seen in the result. The debug templates -feature adds html comments to the output. The comments contain debug information about gsp templates used to render the page.

Usage is simple: append "?debugTemplates" or "&debugTemplates" to the url and view the source of the result in your browser. "debugTemplates" is restricted to development mode. It won't work in production.

Here is an example of comments added by debugTemplates :

<!-- GSP #2 START template: /home/user/sampleapp/grails-app/views/_carousel.gsp precompiled: false lastmodified: 22.6.2010 10:45 -->
.
.
.
<!-- GSP #2 END template: /home/user/sampleapp/grails-app/views/_carousel.gsp rendering time: 115 ms -->

Each comment block has a unique id so that you can find the start & end of each template call.

GSP reloading is supported for precompiled GSPs now

GRAILS-5787

Details are in the Grails reference documentation (TODO: fix link to grails.org/doc/latest after it has been updated)

Property Override mechanism now compatible with reloading

GRAILS-5763

Any properties set/overridden using this mechanism will not be lost when making changes to beans.

Issues with scoped beans have been fixed

GRAILS-6278

Tests can now be targeted via their fullname

GRAILS-6462

Previously you could not specify the identifying suffix of the test (i.e. “Tests” and “Test” for JUnit).

grails test-app MyTests

The application instance can be easily accessed inside resources.groovy

GRAILS-6363

Previously you had to either use the ApplicationHolder (or ConfigurationHolder if you wanted the config) to get access to this. Now you can just refer to “application”.

import grails.util.*
beans = {
    if (application.config.my.company.mockService) {
        myBean(my.company.mock.MockImpl) {
            bookService = ref("bookService")
        }   
    } else {
        myBean(my.company.MyBeanImpl) {
            bookService = ref("bookService")
        }
    }
}

Improvements to functional testing support

The functional testing support provided to plugins has been enhanced to include testing remote instances or running tests against a WAR deployed version of the application. Not all testing plugins will be immediately compatible, but support should follow quickly.

For more information see the functional testing section in the manual

This release includes previous fixes in 1.3.x release train: