SlideShare a Scribd company logo
1 of 40
Download to read offline
Ⓒ
2021 Grails Foundation. All rights reserved. grails.org
1
Ⓒ
2021 Grails Foundation. All rights reserved. grails.org
2
About Puneet
Puneet Behl is the Grails Development Lead at Object
Computing, Inc.
He is very enthusiastic about the Grails and Micronaut
frameworks, Groovy, Docker, and open source
technologies.
If you’d like to get in touch, feel free to say hello on
twitter.com/puneetbhl
Ⓒ
2021 Grails Foundation. All rights reserved. grails.org
3
AGENDA
● Introducing Grails Framework 5
● Upgrading
● Build and Infrastructure
● What Does Micronaut Integration Mean for You?
● Recent Updates
● The Road Ahead
Ⓒ
2021 Grails Foundation. All rights reserved. grails.org
4
Introducing
Grails
Framework 5
Ⓒ
2021 Grails Foundation. All rights reserved. grails.org
5
Dependent Libraries
● Apache Groovy 3
● Gradle 7.2
● Micronaut 3
● Spring framework 5.3
● Spring Boot 2.6
● Spock 2.0-groovy-3.0
Ⓒ
2021 Grails Foundation. All rights reserved. grails.org
6
Deprecations
The dot-based configuration access (i.e., grailsApplication.config.a.b.c) is
deprecated.
We recommend you use grailsApplication.config.getProperty(key, type).
Ⓒ
2021 Grails Foundation. All rights reserved. grails.org
7
JUnit5
● Running JUnit4 tests on JUnit Platform
● Annotation in org.junit.jupiter.api
● Assertions in org.junit.jupiter.api.Assertions
● @BeforeEach and @AfterEach
● @BeforeAll and @AfterAll
● junit-vintage-engine in runtime classpath
● Migrate from JUnit4
(https://junit.org/junit5/docs/current/user-guide/#migrating-from-junit4 )
Ⓒ
2021 Grails Foundation. All rights reserved. grails.org
8
Grails Gradle Plugin
The Grails Gradle Plugin was originally part of Grails Core; it has now been moved to a
separate repository.
The Grails Gradle plugin might not advance with the same speed as Grails Core. So, we
have added a separate Gradle property, grailsGradlePluginVersion
, to decouple it
from Grails Core version.
apply plugin:"org.grails.grails-web"
Ⓒ
2021 Grails Foundation. All rights reserved. grails.org
9
Semantic Versioning 2.0
Starting with version 4.0.0, the Grails framework follows semantic versioning 2.0.0 to make
the release process more predictable and simple.
https://semver.org/
Ⓒ
2021 Grails Foundation. All rights reserved. grails.org
10
Grails Plugins
● Most Grails plugins that work with Grails framework 4 should work with Grails
framework 5 as well.
● Building configuration instead of plugins.
Ⓒ
2021 Grails Foundation. All rights reserved. grails.org
11
JCenter and Bintray Shutdown
https://jfrog.com/blog/into-the-sunset-bintray-jcenter-gocenter-and-chartcenter/
Ⓒ
2021 Grails Foundation. All rights reserved. grails.org
12
Publishing Plugins
● The Grails Gradle Publish plugin is removed
● The Grails Profile Publish plugin is removed
● Instead use Gradle maven-publish plugin
● Include/update plugin in the Grails Plugin Portal
Ⓒ
2021 Grails Foundation. All rights reserved. grails.org
13
The Grails Wrapper Update
In June, the Grails Framework Artifactory instance was updated. As a result, the old Grails
wrapper now fails under certain conditions because the URL it uses to retrieve information is
no longer supported.
https://grails.org/blog/2021-06-10-grails-wrapper-update.html
Ⓒ
2021 Grails Foundation. All rights reserved. grails.org
14
Upgrading
Ⓒ
2021 Grails Foundation. All rights reserved. grails.org
15
Upgrading
● Grails framework 3 is EOL (end of life), so it's a good time to update your applications
and plugins
● Migrate tests from JUnit4 to JUnit5
● Change grailsVersion=5.1.0
● Remove any reference to jcenter()
● Update to Gradle 7.2
○ Run gradle help --scan
○ Execute gradle wrapper --gradle-version 7.2
● Gradle scope changes
Ⓒ
2021 Grails Foundation. All rights reserved. grails.org
16
Apache Groovy 3
● No more JDK warning with JDK 11 or higher
● Java 16 support
● New Parrot parser
● GDK additions: Several new extension methods
● Release Notes (https://groovy-lang.org/releasenotes/groovy-3.0.html#releasenotes)
Ⓒ
2021 Grails Foundation. All rights reserved. grails.org
17
GORM 7.1
● Apache Groovy 3
● Spring 5.3
● Spring 2.5.5
● Hibernate 5.5.7 (https://hibernate.org/orm/releases/5.5/ )
● MongoDB Driver Sync 4
(https://mongodb.github.io/mongo-java-driver/4.0/upgrading/)
● Neo4J Driver 4
Ⓒ
2021 Grails Foundation. All rights reserved. grails.org
18
Upgrading - Spring Boot Changes
● Hibernate Validator 6.2
(https://in.relation.to/2021/01/06/hibernate-validator-700-62-final-released/ )
● Environment Variable Prefix
● Metrics and endpoints
● Java 16
● Jetty 10 Support
● Configuration Changes
(https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.5-Configuration-C
hangelog)
● Spring Boot 2.5 Release Notes
https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.5-Release-Notes
Ⓒ
2021 Grails Foundation. All rights reserved. grails.org
19
Upgrading - Spring Changes
● Official support for Apache Groovy 3
● What's New in Spring Framework 5.x
https://github.com/spring-projects/spring-framework/wiki/What%27s-New-in-Spring-Fr
amework-5.x
Ⓒ
2021 Grails Foundation. All rights reserved. grails.org
20
Gradle 7.2
● Use mavenCentral()
or maven { url "https://repo.grails.org/grails/core" }
● The scope “provided” is removed.
● Apache Groovy 3
● Removal of Compile and Runtime Configurations
● Use maven-publish instead of maven
● Duplicate Strategy
● Upgrading from Gradle 5.x
https://docs.gradle.org/7.2/userguide/upgrading_version_5.html
● Gradle 7.2 Release Notes https://docs.gradle.org/7.2/release-notes.html
Ⓒ
2021 Grails Foundation. All rights reserved. grails.org
21
Gradle Scope Changes
compile api/implementation
compileOnly compileOnly
runtime runtimeOnly
testCompile testImplementation
testRuntime testRuntimeOnly
provided compileOnly/api
Ⓒ
2021 Grails Foundation. All rights reserved. grails.org
22
Micronaut 3
● The javax.inject annotations are no longer a transitive dependency. Micronaut now
ships with the Jakarta inject annotations. Either replace all javax.inject imports with
jakarta.inject, or add a dependency on javax-inject to continue using the older
annotations:
implementation("javax.inject:javax.inject:1")
● https://micronaut.io/2021/08/18/micronaut-framework-3-released/
Ⓒ
2021 Grails Foundation. All rights reserved. grails.org
23
Build and
Infrastructure
Ⓒ
2021 Grails Foundation. All rights reserved. grails.org
24
Build and Infrastructure
● Configured Gradle Enterprise (https://ge.grails.org) to improve Gradle build
● Moved from Travis to Github Workflows
● The artifacts are published to Maven Central
Ⓒ
2021 Grails Foundation. All rights reserved. grails.org
25
What Does
Micronaut
Integration
Mean For
You?
Ⓒ
2021 Grails Foundation. All rights reserved. grails.org
26
The Powerful Micronaut Declarative HTTP Client
● implementation("io.micronaut:micronaut-http-client")
@Client("https://start.grails.org")
interface GrailsAppForgeClient {
@Get("/{version}/profiles")
List<Map> profiles(String version)
}
Ⓒ
2021 Grails Foundation. All rights reserved. grails.org
27
Testing Security in the Application
when: 'login'
UserCredentials credentials = new UserCredentials(username: 'sherlock', password:
'elementary')
HttpRequest request = HttpRequest.POST('/api/login', credentials)
HttpResponse<BearerToken> resp = client.toBlocking().exchange(request, BearerToken)
resp = client.toBlocking().exchange(HttpRequest.GET('/api/announcements')
.header('Authorization', "Bearer ${resp.body().accessToken}"),
Argument.of(List, AnnouncementView))
then: 'announcement list'
rsp.status.code == 200
rsp.body() != null
((List)rsp.body()).size() == 1
Ⓒ
2021 Grails Foundation. All rights reserved. grails.org
28
Grails and Micronaut Kafka
import io.micronaut.configuration.kafka.annotation.KafkaClient
import io.micronaut.configuration.kafka.annotation.Topic
@KafkaClient
interface AnalyticsClient {
@Topic('analytics')
Map updateAnalytics(Map book)
}
Ⓒ
2021 Grails Foundation. All rights reserved. grails.org
29
Micronaut Features That Do Not Work With Grails
● Tracing
● Metrics
● Security
● CORS
● Open API
Ⓒ
2021 Grails Foundation. All rights reserved. grails.org
30
Recent
Releases
Ⓒ
2021 Grails Foundation. All rights reserved. grails.org
31
Grails Database Migration Plugin 4.0.0-RC2 Released
● Support Liquibase 4.6
● Liquibase Extension Upgrade Guide
(https://docs.liquibase.com/tools-integrations/extensions/extension-upgrade-guides/h
ome.html)
● Release Notes (https://github.com/liquibase/liquibase/releases/)
Ⓒ
2021 Grails Foundation. All rights reserved. grails.org
32
Grails 5.0.3 Released
● Bug-fixes and Improvements
● Make Grails 5 compatible with Gradle 7.2
● Fixed some bug around grails.factories file
● Release Notes (https://github.com/grails/grails-core/releases/tag/v5.0.3)
Ⓒ
2021 Grails Foundation. All rights reserved. grails.org
33
Log4J2 - CVE-202144228
● Grails®
framework blog post (https://grails.org/blog/2021-12-14-log4j2-cve.html)
● CVE-202144228 (https://nvd.nist.gov/vuln/detail/CVE-2021-44228)
Ⓒ
2021 Grails Foundation. All rights reserved. grails.org
34
The Road
Ahead
Ⓒ
2021 Grails Foundation. All rights reserved. grails.org
35
Grails Framework 5.1
● Spring Boot 2.6.1
● Micronaut 3.2
● Hibernate 5.6
● MongoDB Driver 4.4
● Better support with Gradle 7.2
Ⓒ
2021 Grails Foundation. All rights reserved. grails.org
36
● Improvements to the Grails CLI
● Spring Security Core Grails Plugin
Upcoming Changes
Ⓒ
2021 Grails Foundation. All rights reserved. grails.org
37
2GM Quarterly Town Hall Meeting
Each Town Hall Meeting is led by a panel of 2GM users, developers, and advocates.
Everyone in the 2GM communities is welcome and encouraged to participate.
https://objectcomputing.com/resources/events/2gm-town-hall
Next Meeting - Friday, January 7, 2022
Ⓒ
2021 Grails Foundation. All rights reserved. grails.org
38
Grails Foundation™
● A not-for-profit organization that supports and collectively leads the open source Grails
project.
● Supported by a Technology Advisory Board that ensures the Framework continues to
reflect and serve its diverse and growing user community.
● The Board meets quarterly to discuss and make recommendations regarding the Grails
framework roadmap and technical direction.
● For more information, check out https://grails.org/foundation/index.html.
Ⓒ
2021 Grails Foundation. All rights reserved. grails.org
39
Thank You
Community involvement is vital for the success of Grails framework. We appreciate the
Grails community for the support and feedback throughout this journey.
We are excited about this latest release. Please, upgrade your applications to Grails
framework 5. We would love to hear about your experience, and if you need any help with
your upgrade, we are here to support(https://grails.org/support.html) you.
Ⓒ
2021 Grails Foundation. All rights reserved. grails.org
40
Merry
Christmas!

More Related Content

What's hot

文字コードの脆弱性はこの3年間でどの程度対策されたか?
文字コードの脆弱性はこの3年間でどの程度対策されたか?文字コードの脆弱性はこの3年間でどの程度対策されたか?
文字コードの脆弱性はこの3年間でどの程度対策されたか?
Hiroshi Tokumaru
 

What's hot (20)

組織にテストを書く文化を根付かせる戦略と戦術
組織にテストを書く文化を根付かせる戦略と戦術組織にテストを書く文化を根付かせる戦略と戦術
組織にテストを書く文化を根付かせる戦略と戦術
 
GoでMinecraftっぽいの作る
GoでMinecraftっぽいの作るGoでMinecraftっぽいの作る
GoでMinecraftっぽいの作る
 
Guide To AGPL
Guide To AGPLGuide To AGPL
Guide To AGPL
 
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
 
Azure DataLake 大全
Azure DataLake 大全Azure DataLake 大全
Azure DataLake 大全
 
Laravelの検索機能の実装方法
Laravelの検索機能の実装方法Laravelの検索機能の実装方法
Laravelの検索機能の実装方法
 
インフラ領域の技術スタックや業務内容について紹介
インフラ領域の技術スタックや業務内容について紹介インフラ領域の技術スタックや業務内容について紹介
インフラ領域の技術スタックや業務内容について紹介
 
RESTfulとは
RESTfulとはRESTfulとは
RESTfulとは
 
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編
 
Ormとの付き合い方
Ormとの付き合い方Ormとの付き合い方
Ormとの付き合い方
 
はじめての Gatling
はじめての Gatlingはじめての Gatling
はじめての Gatling
 
MySQL・PostgreSQLだけで作る高速でリッチな全文検索システム
MySQL・PostgreSQLだけで作る高速でリッチな全文検索システムMySQL・PostgreSQLだけで作る高速でリッチな全文検索システム
MySQL・PostgreSQLだけで作る高速でリッチな全文検索システム
 
Test Yourself - テストを書くと何がどう変わるか
Test Yourself - テストを書くと何がどう変わるかTest Yourself - テストを書くと何がどう変わるか
Test Yourself - テストを書くと何がどう変わるか
 
JavaScriptの仕組みと未来のJavaScript ~ESNextとは~
JavaScriptの仕組みと未来のJavaScript ~ESNextとは~JavaScriptの仕組みと未来のJavaScript ~ESNextとは~
JavaScriptの仕組みと未来のJavaScript ~ESNextとは~
 
オトナのTDD(テスト駆動開発)入門
オトナのTDD(テスト駆動開発)入門オトナのTDD(テスト駆動開発)入門
オトナのTDD(テスト駆動開発)入門
 
アプリの鍵が消える時_Droid kaigi2018
アプリの鍵が消える時_Droid kaigi2018アプリの鍵が消える時_Droid kaigi2018
アプリの鍵が消える時_Droid kaigi2018
 
Pythonの非同期処理を始める前に
Pythonの非同期処理を始める前にPythonの非同期処理を始める前に
Pythonの非同期処理を始める前に
 
文字コードの脆弱性はこの3年間でどの程度対策されたか?
文字コードの脆弱性はこの3年間でどの程度対策されたか?文字コードの脆弱性はこの3年間でどの程度対策されたか?
文字コードの脆弱性はこの3年間でどの程度対策されたか?
 
【解説】IKE(IIJ Kubernetes Engine):= Vanilla Kubernetes + 何?
【解説】IKE(IIJ Kubernetes Engine):= Vanilla Kubernetes + 何?【解説】IKE(IIJ Kubernetes Engine):= Vanilla Kubernetes + 何?
【解説】IKE(IIJ Kubernetes Engine):= Vanilla Kubernetes + 何?
 
Kubernetesのワーカーノードを自動修復するために必要だったこと
Kubernetesのワーカーノードを自動修復するために必要だったことKubernetesのワーカーノードを自動修復するために必要だったこと
Kubernetesのワーカーノードを自動修復するために必要だったこと
 

Similar to What’s new in grails framework 5?

gitopsthekubernetesway-201026090439.pdf
gitopsthekubernetesway-201026090439.pdfgitopsthekubernetesway-201026090439.pdf
gitopsthekubernetesway-201026090439.pdf
saraichiba2
 
Contributing to Grails
Contributing to GrailsContributing to Grails
Contributing to Grails
GR8Conf
 
WTF is GitOps and Why You Should Care?
WTF is GitOps and Why You Should Care?WTF is GitOps and Why You Should Care?
WTF is GitOps and Why You Should Care?
Weaveworks
 

Similar to What’s new in grails framework 5? (20)

Grails 4: Upgrade your Game!
Grails 4: Upgrade your Game!Grails 4: Upgrade your Game!
Grails 4: Upgrade your Game!
 
What's New for GitLab CI/CD February 2020
What's New for GitLab CI/CD February 2020What's New for GitLab CI/CD February 2020
What's New for GitLab CI/CD February 2020
 
Grails 3.0 Preview
Grails 3.0 PreviewGrails 3.0 Preview
Grails 3.0 Preview
 
GitBucket: Open source self-hosting Git server built by Scala
GitBucket: Open source self-hosting Git server built by ScalaGitBucket: Open source self-hosting Git server built by Scala
GitBucket: Open source self-hosting Git server built by Scala
 
GeoServer Developers Workshop
GeoServer Developers WorkshopGeoServer Developers Workshop
GeoServer Developers Workshop
 
gitopsthekubernetesway-201026090439.pdf
gitopsthekubernetesway-201026090439.pdfgitopsthekubernetesway-201026090439.pdf
gitopsthekubernetesway-201026090439.pdf
 
Gitops: the kubernetes way
Gitops: the kubernetes wayGitops: the kubernetes way
Gitops: the kubernetes way
 
Spring Projects Infrastructure
Spring Projects InfrastructureSpring Projects Infrastructure
Spring Projects Infrastructure
 
Spring Projects Infrastructure
Spring Projects InfrastructureSpring Projects Infrastructure
Spring Projects Infrastructure
 
Drupal 8 and 9, Backwards Compatibility, and Drupal 8.5 update
Drupal 8 and 9, Backwards Compatibility, and Drupal 8.5 updateDrupal 8 and 9, Backwards Compatibility, and Drupal 8.5 update
Drupal 8 and 9, Backwards Compatibility, and Drupal 8.5 update
 
Keeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldKeeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository world
 
Contributing to Grails
Contributing to GrailsContributing to Grails
Contributing to Grails
 
JBoss EAP 7 & JDG 7 최신 기술 소개
JBoss EAP 7 & JDG 7 최신 기술 소개JBoss EAP 7 & JDG 7 최신 기술 소개
JBoss EAP 7 & JDG 7 최신 기술 소개
 
WTF is GitOps and Why You Should Care?
WTF is GitOps and Why You Should Care?WTF is GitOps and Why You Should Care?
WTF is GitOps and Why You Should Care?
 
WTF is GitOps & Why Should You Care?
WTF is GitOps & Why Should You Care?WTF is GitOps & Why Should You Care?
WTF is GitOps & Why Should You Care?
 
CIP Developing Curator Tool Wizards
CIP Developing Curator Tool WizardsCIP Developing Curator Tool Wizards
CIP Developing Curator Tool Wizards
 
How to plan and define your CI-CD pipeline
How to plan and define your CI-CD pipelineHow to plan and define your CI-CD pipeline
How to plan and define your CI-CD pipeline
 
Gitlab ci e kubernetes, build test and deploy your projects like a pro
Gitlab ci e kubernetes, build test and deploy your projects like a proGitlab ci e kubernetes, build test and deploy your projects like a pro
Gitlab ci e kubernetes, build test and deploy your projects like a pro
 
GraalVM and Oracle's Documentation Trends.pdf
GraalVM and Oracle's Documentation Trends.pdfGraalVM and Oracle's Documentation Trends.pdf
GraalVM and Oracle's Documentation Trends.pdf
 
How to manage Kubernetes at scale with just git
How to manage Kubernetes at scale with just git How to manage Kubernetes at scale with just git
How to manage Kubernetes at scale with just git
 

Recently uploaded

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Recently uploaded (20)

Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 

What’s new in grails framework 5?

  • 1. Ⓒ 2021 Grails Foundation. All rights reserved. grails.org 1
  • 2. Ⓒ 2021 Grails Foundation. All rights reserved. grails.org 2 About Puneet Puneet Behl is the Grails Development Lead at Object Computing, Inc. He is very enthusiastic about the Grails and Micronaut frameworks, Groovy, Docker, and open source technologies. If you’d like to get in touch, feel free to say hello on twitter.com/puneetbhl
  • 3. Ⓒ 2021 Grails Foundation. All rights reserved. grails.org 3 AGENDA ● Introducing Grails Framework 5 ● Upgrading ● Build and Infrastructure ● What Does Micronaut Integration Mean for You? ● Recent Updates ● The Road Ahead
  • 4. Ⓒ 2021 Grails Foundation. All rights reserved. grails.org 4 Introducing Grails Framework 5
  • 5. Ⓒ 2021 Grails Foundation. All rights reserved. grails.org 5 Dependent Libraries ● Apache Groovy 3 ● Gradle 7.2 ● Micronaut 3 ● Spring framework 5.3 ● Spring Boot 2.6 ● Spock 2.0-groovy-3.0
  • 6. Ⓒ 2021 Grails Foundation. All rights reserved. grails.org 6 Deprecations The dot-based configuration access (i.e., grailsApplication.config.a.b.c) is deprecated. We recommend you use grailsApplication.config.getProperty(key, type).
  • 7. Ⓒ 2021 Grails Foundation. All rights reserved. grails.org 7 JUnit5 ● Running JUnit4 tests on JUnit Platform ● Annotation in org.junit.jupiter.api ● Assertions in org.junit.jupiter.api.Assertions ● @BeforeEach and @AfterEach ● @BeforeAll and @AfterAll ● junit-vintage-engine in runtime classpath ● Migrate from JUnit4 (https://junit.org/junit5/docs/current/user-guide/#migrating-from-junit4 )
  • 8. Ⓒ 2021 Grails Foundation. All rights reserved. grails.org 8 Grails Gradle Plugin The Grails Gradle Plugin was originally part of Grails Core; it has now been moved to a separate repository. The Grails Gradle plugin might not advance with the same speed as Grails Core. So, we have added a separate Gradle property, grailsGradlePluginVersion , to decouple it from Grails Core version. apply plugin:"org.grails.grails-web"
  • 9. Ⓒ 2021 Grails Foundation. All rights reserved. grails.org 9 Semantic Versioning 2.0 Starting with version 4.0.0, the Grails framework follows semantic versioning 2.0.0 to make the release process more predictable and simple. https://semver.org/
  • 10. Ⓒ 2021 Grails Foundation. All rights reserved. grails.org 10 Grails Plugins ● Most Grails plugins that work with Grails framework 4 should work with Grails framework 5 as well. ● Building configuration instead of plugins.
  • 11. Ⓒ 2021 Grails Foundation. All rights reserved. grails.org 11 JCenter and Bintray Shutdown https://jfrog.com/blog/into-the-sunset-bintray-jcenter-gocenter-and-chartcenter/
  • 12. Ⓒ 2021 Grails Foundation. All rights reserved. grails.org 12 Publishing Plugins ● The Grails Gradle Publish plugin is removed ● The Grails Profile Publish plugin is removed ● Instead use Gradle maven-publish plugin ● Include/update plugin in the Grails Plugin Portal
  • 13. Ⓒ 2021 Grails Foundation. All rights reserved. grails.org 13 The Grails Wrapper Update In June, the Grails Framework Artifactory instance was updated. As a result, the old Grails wrapper now fails under certain conditions because the URL it uses to retrieve information is no longer supported. https://grails.org/blog/2021-06-10-grails-wrapper-update.html
  • 14. Ⓒ 2021 Grails Foundation. All rights reserved. grails.org 14 Upgrading
  • 15. Ⓒ 2021 Grails Foundation. All rights reserved. grails.org 15 Upgrading ● Grails framework 3 is EOL (end of life), so it's a good time to update your applications and plugins ● Migrate tests from JUnit4 to JUnit5 ● Change grailsVersion=5.1.0 ● Remove any reference to jcenter() ● Update to Gradle 7.2 ○ Run gradle help --scan ○ Execute gradle wrapper --gradle-version 7.2 ● Gradle scope changes
  • 16. Ⓒ 2021 Grails Foundation. All rights reserved. grails.org 16 Apache Groovy 3 ● No more JDK warning with JDK 11 or higher ● Java 16 support ● New Parrot parser ● GDK additions: Several new extension methods ● Release Notes (https://groovy-lang.org/releasenotes/groovy-3.0.html#releasenotes)
  • 17. Ⓒ 2021 Grails Foundation. All rights reserved. grails.org 17 GORM 7.1 ● Apache Groovy 3 ● Spring 5.3 ● Spring 2.5.5 ● Hibernate 5.5.7 (https://hibernate.org/orm/releases/5.5/ ) ● MongoDB Driver Sync 4 (https://mongodb.github.io/mongo-java-driver/4.0/upgrading/) ● Neo4J Driver 4
  • 18. Ⓒ 2021 Grails Foundation. All rights reserved. grails.org 18 Upgrading - Spring Boot Changes ● Hibernate Validator 6.2 (https://in.relation.to/2021/01/06/hibernate-validator-700-62-final-released/ ) ● Environment Variable Prefix ● Metrics and endpoints ● Java 16 ● Jetty 10 Support ● Configuration Changes (https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.5-Configuration-C hangelog) ● Spring Boot 2.5 Release Notes https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.5-Release-Notes
  • 19. Ⓒ 2021 Grails Foundation. All rights reserved. grails.org 19 Upgrading - Spring Changes ● Official support for Apache Groovy 3 ● What's New in Spring Framework 5.x https://github.com/spring-projects/spring-framework/wiki/What%27s-New-in-Spring-Fr amework-5.x
  • 20. Ⓒ 2021 Grails Foundation. All rights reserved. grails.org 20 Gradle 7.2 ● Use mavenCentral() or maven { url "https://repo.grails.org/grails/core" } ● The scope “provided” is removed. ● Apache Groovy 3 ● Removal of Compile and Runtime Configurations ● Use maven-publish instead of maven ● Duplicate Strategy ● Upgrading from Gradle 5.x https://docs.gradle.org/7.2/userguide/upgrading_version_5.html ● Gradle 7.2 Release Notes https://docs.gradle.org/7.2/release-notes.html
  • 21. Ⓒ 2021 Grails Foundation. All rights reserved. grails.org 21 Gradle Scope Changes compile api/implementation compileOnly compileOnly runtime runtimeOnly testCompile testImplementation testRuntime testRuntimeOnly provided compileOnly/api
  • 22. Ⓒ 2021 Grails Foundation. All rights reserved. grails.org 22 Micronaut 3 ● The javax.inject annotations are no longer a transitive dependency. Micronaut now ships with the Jakarta inject annotations. Either replace all javax.inject imports with jakarta.inject, or add a dependency on javax-inject to continue using the older annotations: implementation("javax.inject:javax.inject:1") ● https://micronaut.io/2021/08/18/micronaut-framework-3-released/
  • 23. Ⓒ 2021 Grails Foundation. All rights reserved. grails.org 23 Build and Infrastructure
  • 24. Ⓒ 2021 Grails Foundation. All rights reserved. grails.org 24 Build and Infrastructure ● Configured Gradle Enterprise (https://ge.grails.org) to improve Gradle build ● Moved from Travis to Github Workflows ● The artifacts are published to Maven Central
  • 25. Ⓒ 2021 Grails Foundation. All rights reserved. grails.org 25 What Does Micronaut Integration Mean For You?
  • 26. Ⓒ 2021 Grails Foundation. All rights reserved. grails.org 26 The Powerful Micronaut Declarative HTTP Client ● implementation("io.micronaut:micronaut-http-client") @Client("https://start.grails.org") interface GrailsAppForgeClient { @Get("/{version}/profiles") List<Map> profiles(String version) }
  • 27. Ⓒ 2021 Grails Foundation. All rights reserved. grails.org 27 Testing Security in the Application when: 'login' UserCredentials credentials = new UserCredentials(username: 'sherlock', password: 'elementary') HttpRequest request = HttpRequest.POST('/api/login', credentials) HttpResponse<BearerToken> resp = client.toBlocking().exchange(request, BearerToken) resp = client.toBlocking().exchange(HttpRequest.GET('/api/announcements') .header('Authorization', "Bearer ${resp.body().accessToken}"), Argument.of(List, AnnouncementView)) then: 'announcement list' rsp.status.code == 200 rsp.body() != null ((List)rsp.body()).size() == 1
  • 28. Ⓒ 2021 Grails Foundation. All rights reserved. grails.org 28 Grails and Micronaut Kafka import io.micronaut.configuration.kafka.annotation.KafkaClient import io.micronaut.configuration.kafka.annotation.Topic @KafkaClient interface AnalyticsClient { @Topic('analytics') Map updateAnalytics(Map book) }
  • 29. Ⓒ 2021 Grails Foundation. All rights reserved. grails.org 29 Micronaut Features That Do Not Work With Grails ● Tracing ● Metrics ● Security ● CORS ● Open API
  • 30. Ⓒ 2021 Grails Foundation. All rights reserved. grails.org 30 Recent Releases
  • 31. Ⓒ 2021 Grails Foundation. All rights reserved. grails.org 31 Grails Database Migration Plugin 4.0.0-RC2 Released ● Support Liquibase 4.6 ● Liquibase Extension Upgrade Guide (https://docs.liquibase.com/tools-integrations/extensions/extension-upgrade-guides/h ome.html) ● Release Notes (https://github.com/liquibase/liquibase/releases/)
  • 32. Ⓒ 2021 Grails Foundation. All rights reserved. grails.org 32 Grails 5.0.3 Released ● Bug-fixes and Improvements ● Make Grails 5 compatible with Gradle 7.2 ● Fixed some bug around grails.factories file ● Release Notes (https://github.com/grails/grails-core/releases/tag/v5.0.3)
  • 33. Ⓒ 2021 Grails Foundation. All rights reserved. grails.org 33 Log4J2 - CVE-202144228 ● Grails® framework blog post (https://grails.org/blog/2021-12-14-log4j2-cve.html) ● CVE-202144228 (https://nvd.nist.gov/vuln/detail/CVE-2021-44228)
  • 34. Ⓒ 2021 Grails Foundation. All rights reserved. grails.org 34 The Road Ahead
  • 35. Ⓒ 2021 Grails Foundation. All rights reserved. grails.org 35 Grails Framework 5.1 ● Spring Boot 2.6.1 ● Micronaut 3.2 ● Hibernate 5.6 ● MongoDB Driver 4.4 ● Better support with Gradle 7.2
  • 36. Ⓒ 2021 Grails Foundation. All rights reserved. grails.org 36 ● Improvements to the Grails CLI ● Spring Security Core Grails Plugin Upcoming Changes
  • 37. Ⓒ 2021 Grails Foundation. All rights reserved. grails.org 37 2GM Quarterly Town Hall Meeting Each Town Hall Meeting is led by a panel of 2GM users, developers, and advocates. Everyone in the 2GM communities is welcome and encouraged to participate. https://objectcomputing.com/resources/events/2gm-town-hall Next Meeting - Friday, January 7, 2022
  • 38. Ⓒ 2021 Grails Foundation. All rights reserved. grails.org 38 Grails Foundation™ ● A not-for-profit organization that supports and collectively leads the open source Grails project. ● Supported by a Technology Advisory Board that ensures the Framework continues to reflect and serve its diverse and growing user community. ● The Board meets quarterly to discuss and make recommendations regarding the Grails framework roadmap and technical direction. ● For more information, check out https://grails.org/foundation/index.html.
  • 39. Ⓒ 2021 Grails Foundation. All rights reserved. grails.org 39 Thank You Community involvement is vital for the success of Grails framework. We appreciate the Grails community for the support and feedback throughout this journey. We are excited about this latest release. Please, upgrade your applications to Grails framework 5. We would love to hear about your experience, and if you need any help with your upgrade, we are here to support(https://grails.org/support.html) you.
  • 40. Ⓒ 2021 Grails Foundation. All rights reserved. grails.org 40 Merry Christmas!