Grails 5.0 updates underlying frameworks and consolidates functionality


The Grails Foundation has published Grails 5.0 with deprecation of “point” based navigation to configuration; automatic wiring by default by type in Data Services; the decoupling of the Grails Gradle plugin from the grails-core; and the removal of the Grails Gradle Publish plugin from grails-plugin applications. This release also includes dependency upgrades for Apache Groovy 3, Micronaut Framework 3, Gradle 7, Spring boot 2.5, Spring frame 5.3 and Spock 2.0.

Grails promises high productivity by combining, in one pot so to speak, all the ingredients: “Convention-over-configuration, sensible defaults, savvy APIs and Groovy language” with a clear goal: to make “the framework Grails easy to learn for Java developers “.

Grails 5 will take advantage of the new features and capabilities offered by Apache Groovy 3, including the new Parrot parser. It supports additional syntax and language features, such as lambda expressions, default methods with interfaces, and several extension methods for existing Java classes. The minimum Java version has been increased to JDK 8 because Grails 5 was built with Groovy 3.0.7 under test up to JDK 14.

Another notable change is the upgrade of dependencies to Spring Framework 5.3.10 and spring boot 2.5.5.

As of this release, the “point” based navigation to the Grails configuration is deprecated, so it will be removed in the future. The recommendation is that developers update their plugin configuration to use the @ConfigurationProperties Where @Value annotations in their Grails projects. The alternative is to access the configuration parameters using grailsApplication.config.getProperty('a.b.c', String) in the place of grailsApplication.config.a.b.c.

A new defect automatic wire by type replaces existing automatic wiring mechanism by name. Developers can still use Spring @Qualifier annotation to wire automatically by name.

There are also changes with the Gradle plugins: the Grails Gradle plugin will no longer be part of the grails-core and it might get a separate versioning in the future, so the developers would have to decouple the grailsVersion Gradle’s property of grailsGradlePluginVersion in existing applications. When JFrog shut down Bintray earlier this year, the Grails Gradle publishing plug-in stopped working because it was using the Bintray API to publish artifacts. As a result, this plugin is no longer part of the new Grails plugin applications.

Improvements to the Grails framework will continue over the next few months with changes to the Grails CLI, Grails guides and Grails documentation regarding integration with Micronaut.

Grails, originally named Groovy on Rails, was co-founded in July 2005 by Graeme Rocher, Guillaume LaForge, Steven Devijver and Dierk konig. Thirteen years after its initial release, Grails has reached its fifth major milestone, continuing its journey of increasing development productivity. Inspired by Ruby on Rails, he tried to improve productivity by following the “code by convention“, thus masking the complexity of the configuration from the developer and providing a development environment out of the box. The seamless integration with Java has allowed him to take advantage of the rich ecosystem that has been built over the years.

Under the auspices of the very recent Grail Foundation, Grails’ future will be determined with the help of the Technical Advisory Board, made up of:

  • Jeff Scott Brown – Grails Foundation, co-founder and director; Grails Practice Leader at OCI
  • Graeme Rocher – Co-founder of Grails; architect at Oracle
  • Puneet behl – Grails product development manager at OCI
  • David Estes – Co-founder and vice-president of engineering at Morpheus Data; creator of the Grails Asset-Pipeline
  • James kleeh – Micronaut product development manager at OCI

Developers should expect a smooth upgrade from Grails Framework 4, as there aren’t many API changes in Grails Framework 5. Plugins should work without a lot of obstacles, unless they use specific Spring, Spring Boot, or Groovy APIs that have been modified in any way.

Leave A Reply

Your email address will not be published.