Last updated by lhotari 1 month ago

Grails 2.3.6 Release Notes

Grails is a dynamic web application framework built on Java and Groovy, leveraging best of breed APIs 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.

New Features

Update Notes

Updated Plugins

If you are upgrading from previous versions of Grails 2.3.x and you use the Hibernate and/or Tomcat plugins you will need to update the versions in BuildConfig:

build ':tomcat:'
runtime ':hibernate:'

Changes to Dependency Graph

Grails 2.3.6 makes some changes to the dependency graph inhertied by all applications. If you are excluding dependencies from the framework you may need to alter your exclusion rules.

Changes to transactions across multiple datasources

In previous Grails versions, additional datasources didn't take part in transactions initiated in Grails. The transactions in additional datasources were basically in auto commit mode. In some cases this might be the wanted behavior. One reason might be performance: on the start of each new transaction, the BE1PC transaction manager creates a new transaction to each datasource. It's possible to leave an additional datasource out of the BE1PC transaction manager by setting transactional = false in the respective configuration block of the additional dataSource.

By default, the BE1PC implementation will add all beans implementing the Spring PlatformTransactionManager interface to the chained BE1PC transaction manager. You can use different configuration options for controlling this behaviour.

There is more details of this feature in the Transactions across multiple datasources section.

Release Information

Changes to previous Grails 2.3.x releases

DataSource.groovy (before 2.3.6)

The default dataSource properties have been revised due to database connection problems that many users were having.

These are the new defaults.

properties {
               // See for documentation
               jmxEnabled = true
               initialSize = 5
               maxActive = 50
               minIdle = 5
               maxIdle = 25
               maxWait = 10000
               maxAge = 10 * 60000
               timeBetweenEvictionRunsMillis = 5000
               minEvictableIdleTimeMillis = 60000
               validationQuery = "SELECT 1"
               validationQueryTimeout = 3
               validationInterval = 15000
               testOnBorrow = true
               testWhileIdle = true
               testOnReturn = false
               jdbcInterceptors = "ConnectionState;StatementCache(max=200)"
               defaultTransactionIsolation = java.sql.Connection.TRANSACTION_READ_COMMITTED

It's now also possible to add database driver specific properties to "dbProperties". This feature is usefull in fine tuning MySQL JDBC driver properties. There is an example on Stackoverflow.

UrlMappings.groovy (before 2.3.5)

replace this line