This is an automated email from the ASF dual-hosted git repository.
asf-ci-deploy pushed a commit to branch asf-site-production
in repository https://gitbox.apache.org/repos/asf/grails-website.git
The following commit(s) were added to refs/heads/asf-site-production by this
push:
new bf9456ba691 Updating apache/grails-website asf-site-production branch
for Github Actions run:21009711400
bf9456ba691 is described below
commit bf9456ba691cd1209aa6e37c683fc11b76663f9a
Author: sbglasius <[email protected]>
AuthorDate: Wed Jan 14 21:08:31 2026 +0000
Updating apache/grails-website asf-site-production branch for Github
Actions run:21009711400
---
blog/2016-04-01-1.html | 8 +-
blog/2016-04-01-2.html | 8 +-
blog/2017-01-20-1.html | 8 +-
blog/2017-01-20-2.html | 8 +-
blog/2017-01-20-3.html | 8 +-
blog/2017-01-20-4.html | 8 +-
blog/2017-07-12.html | 8 +-
blog/2017-10-30.html | 8 +-
blog/2018-02-08.html | 8 +-
blog/2019-01-30.html | 8 +-
blog/index.html | 44 +++----
blog/tag/quickcast.html | 32 ++---
casestudies/boosting-agility-with-grails.html | 132 ++++++++++++---------
...rehensive-solution-for-a-public-university.html | 56 +++++----
...ghput-and-delivery-performance-with-grails.html | 101 ++++++++++------
foundation/minutes.xml | 2 +-
index.html | 96 +++++++++------
rss.xml | 74 ++++++------
18 files changed, 351 insertions(+), 266 deletions(-)
diff --git a/blog/2016-04-01-1.html b/blog/2016-04-01-1.html
index 0ec19726771..f56d7a46328 100644
--- a/blog/2016-04-01-1.html
+++ b/blog/2016-04-01-1.html
@@ -136,15 +136,15 @@ Companies deploy assistants like this [](https://kapa.ai)
on docs via [website w
</a>
</article></div>
<div class='column'><article class='blogcard' style='background-image:
url(https://grails.apache.org/images/quickcast.jpg)'>
- <a href='https://grails.apache.org/blog/2018-08-22-1.html'>
+ <a href='https://grails.apache.org/blog/2018-08-22-2.html'>
<h3>August 22, 2018</h3>
- <h2>Quickcast #10: Debugging Grails® Apps</h2>
+ <h2>Quickcast #11: Grails® Profiling with YourKit</h2>
</a>
</article></div>
<div class='column'><article class='blogcard' style='background-image:
url(https://grails.apache.org/images/quickcast.jpg)'>
- <a href='https://grails.apache.org/blog/2018-08-22-2.html'>
+ <a href='https://grails.apache.org/blog/2018-08-22-1.html'>
<h3>August 22, 2018</h3>
- <h2>Quickcast #11: Grails® Profiling with YourKit</h2>
+ <h2>Quickcast #10: Debugging Grails® Apps</h2>
</a>
</article></div>
</div>
diff --git a/blog/2016-04-01-2.html b/blog/2016-04-01-2.html
index c3c6c1f6be6..434288a7897 100644
--- a/blog/2016-04-01-2.html
+++ b/blog/2016-04-01-2.html
@@ -139,15 +139,15 @@ Companies deploy assistants like this [](https://kapa.ai)
on docs via [website w
</a>
</article></div>
<div class='column'><article class='blogcard' style='background-image:
url(https://grails.apache.org/images/quickcast.jpg)'>
- <a href='https://grails.apache.org/blog/2018-08-22-1.html'>
+ <a href='https://grails.apache.org/blog/2018-08-22-2.html'>
<h3>August 22, 2018</h3>
- <h2>Quickcast #10: Debugging Grails® Apps</h2>
+ <h2>Quickcast #11: Grails® Profiling with YourKit</h2>
</a>
</article></div>
<div class='column'><article class='blogcard' style='background-image:
url(https://grails.apache.org/images/quickcast.jpg)'>
- <a href='https://grails.apache.org/blog/2018-08-22-2.html'>
+ <a href='https://grails.apache.org/blog/2018-08-22-1.html'>
<h3>August 22, 2018</h3>
- <h2>Quickcast #11: Grails® Profiling with YourKit</h2>
+ <h2>Quickcast #10: Debugging Grails® Apps</h2>
</a>
</article></div>
</div>
diff --git a/blog/2017-01-20-1.html b/blog/2017-01-20-1.html
index 5b51ec45f3d..a53a475b50c 100644
--- a/blog/2017-01-20-1.html
+++ b/blog/2017-01-20-1.html
@@ -135,15 +135,15 @@ Companies deploy assistants like this [](https://kapa.ai)
on docs via [website w
</a>
</article></div>
<div class='column'><article class='blogcard' style='background-image:
url(https://grails.apache.org/images/quickcast.jpg)'>
- <a href='https://grails.apache.org/blog/2018-08-22-1.html'>
+ <a href='https://grails.apache.org/blog/2018-08-22-2.html'>
<h3>August 22, 2018</h3>
- <h2>Quickcast #10: Debugging Grails® Apps</h2>
+ <h2>Quickcast #11: Grails® Profiling with YourKit</h2>
</a>
</article></div>
<div class='column'><article class='blogcard' style='background-image:
url(https://grails.apache.org/images/quickcast.jpg)'>
- <a href='https://grails.apache.org/blog/2018-08-22-2.html'>
+ <a href='https://grails.apache.org/blog/2018-08-22-1.html'>
<h3>August 22, 2018</h3>
- <h2>Quickcast #11: Grails® Profiling with YourKit</h2>
+ <h2>Quickcast #10: Debugging Grails® Apps</h2>
</a>
</article></div>
</div>
diff --git a/blog/2017-01-20-2.html b/blog/2017-01-20-2.html
index 8b467db5a34..5adabad2e1c 100644
--- a/blog/2017-01-20-2.html
+++ b/blog/2017-01-20-2.html
@@ -135,15 +135,15 @@ Companies deploy assistants like this [](https://kapa.ai)
on docs via [website w
</a>
</article></div>
<div class='column'><article class='blogcard' style='background-image:
url(https://grails.apache.org/images/quickcast.jpg)'>
- <a href='https://grails.apache.org/blog/2018-08-22-1.html'>
+ <a href='https://grails.apache.org/blog/2018-08-22-2.html'>
<h3>August 22, 2018</h3>
- <h2>Quickcast #10: Debugging Grails® Apps</h2>
+ <h2>Quickcast #11: Grails® Profiling with YourKit</h2>
</a>
</article></div>
<div class='column'><article class='blogcard' style='background-image:
url(https://grails.apache.org/images/quickcast.jpg)'>
- <a href='https://grails.apache.org/blog/2018-08-22-2.html'>
+ <a href='https://grails.apache.org/blog/2018-08-22-1.html'>
<h3>August 22, 2018</h3>
- <h2>Quickcast #11: Grails® Profiling with YourKit</h2>
+ <h2>Quickcast #10: Debugging Grails® Apps</h2>
</a>
</article></div>
</div>
diff --git a/blog/2017-01-20-3.html b/blog/2017-01-20-3.html
index f43a24041c5..e318a85440d 100644
--- a/blog/2017-01-20-3.html
+++ b/blog/2017-01-20-3.html
@@ -136,15 +136,15 @@ Companies deploy assistants like this [](https://kapa.ai)
on docs via [website w
</a>
</article></div>
<div class='column'><article class='blogcard' style='background-image:
url(https://grails.apache.org/images/quickcast.jpg)'>
- <a href='https://grails.apache.org/blog/2018-08-22-1.html'>
+ <a href='https://grails.apache.org/blog/2018-08-22-2.html'>
<h3>August 22, 2018</h3>
- <h2>Quickcast #10: Debugging Grails® Apps</h2>
+ <h2>Quickcast #11: Grails® Profiling with YourKit</h2>
</a>
</article></div>
<div class='column'><article class='blogcard' style='background-image:
url(https://grails.apache.org/images/quickcast.jpg)'>
- <a href='https://grails.apache.org/blog/2018-08-22-2.html'>
+ <a href='https://grails.apache.org/blog/2018-08-22-1.html'>
<h3>August 22, 2018</h3>
- <h2>Quickcast #11: Grails® Profiling with YourKit</h2>
+ <h2>Quickcast #10: Debugging Grails® Apps</h2>
</a>
</article></div>
</div>
diff --git a/blog/2017-01-20-4.html b/blog/2017-01-20-4.html
index 36319d2a693..07d438a9e68 100644
--- a/blog/2017-01-20-4.html
+++ b/blog/2017-01-20-4.html
@@ -136,15 +136,15 @@ Companies deploy assistants like this [](https://kapa.ai)
on docs via [website w
</a>
</article></div>
<div class='column'><article class='blogcard' style='background-image:
url(https://grails.apache.org/images/quickcast.jpg)'>
- <a href='https://grails.apache.org/blog/2018-08-22-1.html'>
+ <a href='https://grails.apache.org/blog/2018-08-22-2.html'>
<h3>August 22, 2018</h3>
- <h2>Quickcast #10: Debugging Grails® Apps</h2>
+ <h2>Quickcast #11: Grails® Profiling with YourKit</h2>
</a>
</article></div>
<div class='column'><article class='blogcard' style='background-image:
url(https://grails.apache.org/images/quickcast.jpg)'>
- <a href='https://grails.apache.org/blog/2018-08-22-2.html'>
+ <a href='https://grails.apache.org/blog/2018-08-22-1.html'>
<h3>August 22, 2018</h3>
- <h2>Quickcast #11: Grails® Profiling with YourKit</h2>
+ <h2>Quickcast #10: Debugging Grails® Apps</h2>
</a>
</article></div>
</div>
diff --git a/blog/2017-07-12.html b/blog/2017-07-12.html
index a8ab46399a3..feefdada90a 100644
--- a/blog/2017-07-12.html
+++ b/blog/2017-07-12.html
@@ -136,15 +136,15 @@ Companies deploy assistants like this [](https://kapa.ai)
on docs via [website w
</a>
</article></div>
<div class='column'><article class='blogcard' style='background-image:
url(https://grails.apache.org/images/quickcast.jpg)'>
- <a href='https://grails.apache.org/blog/2018-08-22-1.html'>
+ <a href='https://grails.apache.org/blog/2018-08-22-2.html'>
<h3>August 22, 2018</h3>
- <h2>Quickcast #10: Debugging Grails® Apps</h2>
+ <h2>Quickcast #11: Grails® Profiling with YourKit</h2>
</a>
</article></div>
<div class='column'><article class='blogcard' style='background-image:
url(https://grails.apache.org/images/quickcast.jpg)'>
- <a href='https://grails.apache.org/blog/2018-08-22-2.html'>
+ <a href='https://grails.apache.org/blog/2018-08-22-1.html'>
<h3>August 22, 2018</h3>
- <h2>Quickcast #11: Grails® Profiling with YourKit</h2>
+ <h2>Quickcast #10: Debugging Grails® Apps</h2>
</a>
</article></div>
</div>
diff --git a/blog/2017-10-30.html b/blog/2017-10-30.html
index 7435b8cb6ba..611dc342325 100644
--- a/blog/2017-10-30.html
+++ b/blog/2017-10-30.html
@@ -136,15 +136,15 @@ Companies deploy assistants like this [](https://kapa.ai)
on docs via [website w
</a>
</article></div>
<div class='column'><article class='blogcard' style='background-image:
url(https://grails.apache.org/images/quickcast.jpg)'>
- <a href='https://grails.apache.org/blog/2018-08-22-1.html'>
+ <a href='https://grails.apache.org/blog/2018-08-22-2.html'>
<h3>August 22, 2018</h3>
- <h2>Quickcast #10: Debugging Grails® Apps</h2>
+ <h2>Quickcast #11: Grails® Profiling with YourKit</h2>
</a>
</article></div>
<div class='column'><article class='blogcard' style='background-image:
url(https://grails.apache.org/images/quickcast.jpg)'>
- <a href='https://grails.apache.org/blog/2018-08-22-2.html'>
+ <a href='https://grails.apache.org/blog/2018-08-22-1.html'>
<h3>August 22, 2018</h3>
- <h2>Quickcast #11: Grails® Profiling with YourKit</h2>
+ <h2>Quickcast #10: Debugging Grails® Apps</h2>
</a>
</article></div>
</div>
diff --git a/blog/2018-02-08.html b/blog/2018-02-08.html
index 0f9470b17ab..70e8cf65a6c 100644
--- a/blog/2018-02-08.html
+++ b/blog/2018-02-08.html
@@ -135,15 +135,15 @@ Companies deploy assistants like this [](https://kapa.ai)
on docs via [website w
</a>
</article></div>
<div class='column'><article class='blogcard' style='background-image:
url(https://grails.apache.org/images/quickcast.jpg)'>
- <a href='https://grails.apache.org/blog/2018-08-22-1.html'>
+ <a href='https://grails.apache.org/blog/2018-08-22-2.html'>
<h3>August 22, 2018</h3>
- <h2>Quickcast #10: Debugging Grails® Apps</h2>
+ <h2>Quickcast #11: Grails® Profiling with YourKit</h2>
</a>
</article></div>
<div class='column'><article class='blogcard' style='background-image:
url(https://grails.apache.org/images/quickcast.jpg)'>
- <a href='https://grails.apache.org/blog/2018-08-22-2.html'>
+ <a href='https://grails.apache.org/blog/2018-08-22-1.html'>
<h3>August 22, 2018</h3>
- <h2>Quickcast #11: Grails® Profiling with YourKit</h2>
+ <h2>Quickcast #10: Debugging Grails® Apps</h2>
</a>
</article></div>
</div>
diff --git a/blog/2019-01-30.html b/blog/2019-01-30.html
index 80446ed9604..38826b5a881 100644
--- a/blog/2019-01-30.html
+++ b/blog/2019-01-30.html
@@ -135,15 +135,15 @@ Companies deploy assistants like this [](https://kapa.ai)
on docs via [website w
</h2>
<div class='threecolumns'>
<div class='column'><article class='blogcard' style='background-image:
url(https://grails.apache.org/images/quickcast.jpg)'>
- <a href='https://grails.apache.org/blog/2018-08-22-1.html'>
+ <a href='https://grails.apache.org/blog/2018-08-22-2.html'>
<h3>August 22, 2018</h3>
- <h2>Quickcast #10: Debugging Grails® Apps</h2>
+ <h2>Quickcast #11: Grails® Profiling with YourKit</h2>
</a>
</article></div>
<div class='column'><article class='blogcard' style='background-image:
url(https://grails.apache.org/images/quickcast.jpg)'>
- <a href='https://grails.apache.org/blog/2018-08-22-2.html'>
+ <a href='https://grails.apache.org/blog/2018-08-22-1.html'>
<h3>August 22, 2018</h3>
- <h2>Quickcast #11: Grails® Profiling with YourKit</h2>
+ <h2>Quickcast #10: Debugging Grails® Apps</h2>
</a>
</article></div>
<div class='column'><article class='blogcard' style='background-image:
url(https://grails.apache.org/images/quickcast.jpg)'>
diff --git a/blog/index.html b/blog/index.html
index c8eefcc39bf..1b67551e9c1 100644
--- a/blog/index.html
+++ b/blog/index.html
@@ -295,17 +295,17 @@ Companies deploy assistants like this [](https://kapa.ai)
on docs via [website w
<h2>Grails and the Recent Spring Framework RCE</h2>
</a>
</article></div></div><div class="threecolumns">
- <div class='column'><article class='blogcard' style='background-image:
url(https://grails.apache.org/images/grails-blog-index-3.png)'>
- <a
href='https://grails.apache.org/blog/2022-01-07-gradle-enterprise-tools-and-infrastructure-partner.html'>
- <h3>January 7, 2022</h3>
- <h2>Grails Foundation Announces First Tools and I...</h2>
- </a>
-</article></div>
<div class='column'><article class='blogcard' style='background-image:
url(https://grails.apache.org/images/grails-blog-index-4.png)'>
<a href='https://grails.apache.org/blog/2022-01-07-2gm-town-hall-q1.html'>
<h3>January 7, 2022</h3>
<h2>2GM Town Hall Meeting: 2022 Q1</h2>
</a>
+</article></div>
+ <div class='column'><article class='blogcard' style='background-image:
url(https://grails.apache.org/images/grails-blog-index-3.png)'>
+ <a
href='https://grails.apache.org/blog/2022-01-07-gradle-enterprise-tools-and-infrastructure-partner.html'>
+ <h3>January 7, 2022</h3>
+ <h2>Grails Foundation Announces First Tools and I...</h2>
+ </a>
</article></div>
<div class='column'><article class='blogcard' style='background-image:
url(https://grails.apache.org/images/grails-blog-index-2.png)'>
<a href='https://grails.apache.org/blog/2021-12-15-grails-five-one.html'>
@@ -536,15 +536,15 @@ Companies deploy assistants like this [](https://kapa.ai)
on docs via [website w
</a>
</article></div>
<div class='column'><article class='blogcard' style='background-image:
url(https://grails.apache.org/images/quickcast.jpg)'>
- <a href='https://grails.apache.org/blog/2018-08-22-1.html'>
+ <a href='https://grails.apache.org/blog/2018-08-22-2.html'>
<h3>August 22, 2018</h3>
- <h2>Quickcast #10: Debugging Grails® Apps</h2>
+ <h2>Quickcast #11: Grails® Profiling with YourKit</h2>
</a>
</article></div>
<div class='column'><article class='blogcard' style='background-image:
url(https://grails.apache.org/images/quickcast.jpg)'>
- <a href='https://grails.apache.org/blog/2018-08-22-2.html'>
+ <a href='https://grails.apache.org/blog/2018-08-22-1.html'>
<h3>August 22, 2018</h3>
- <h2>Quickcast #11: Grails® Profiling with YourKit</h2>
+ <h2>Quickcast #10: Debugging Grails® Apps</h2>
</a>
</article></div></div><div class="threecolumns">
<div class='column'><article class='blogcard' style='background-image:
url(https://grails.apache.org/images/2018-06-22.jpg)'>
@@ -692,27 +692,27 @@ Companies deploy assistants like this [](https://kapa.ai)
on docs via [website w
</a>
</article></div></div><div class="threecolumns">
<div class='column'><article class='blogcard' style='background-image:
url(https://grails.apache.org/images/quickcast.jpg)'>
- <a href='https://grails.apache.org/blog/2017-01-20-4.html'>
+ <a href='https://grails.apache.org/blog/2017-01-20-3.html'>
<h3>January 20, 2017</h3>
- <h2>Quickcast #6: Developing Grails® 3 Applicatio...</h2>
+ <h2>Quickcast #5: Retrieving Runtime Config Value...</h2>
</a>
</article></div>
<div class='column'><article class='blogcard' style='background-image:
url(https://grails.apache.org/images/quickcast.jpg)'>
- <a href='https://grails.apache.org/blog/2017-01-20-1.html'>
+ <a href='https://grails.apache.org/blog/2017-01-20-2.html'>
<h3>January 20, 2017</h3>
- <h2>Quickcast #3: Multi-Project Builds</h2>
+ <h2>Quickcast #4: Angular Scaffolding</h2>
</a>
</article></div>
<div class='column'><article class='blogcard' style='background-image:
url(https://grails.apache.org/images/quickcast.jpg)'>
- <a href='https://grails.apache.org/blog/2017-01-20-3.html'>
+ <a href='https://grails.apache.org/blog/2017-01-20-1.html'>
<h3>January 20, 2017</h3>
- <h2>Quickcast #5: Retrieving Runtime Config Value...</h2>
+ <h2>Quickcast #3: Multi-Project Builds</h2>
</a>
</article></div></div><div class="threecolumns">
<div class='column'><article class='blogcard' style='background-image:
url(https://grails.apache.org/images/quickcast.jpg)'>
- <a href='https://grails.apache.org/blog/2017-01-20-2.html'>
+ <a href='https://grails.apache.org/blog/2017-01-20-4.html'>
<h3>January 20, 2017</h3>
- <h2>Quickcast #4: Angular Scaffolding</h2>
+ <h2>Quickcast #6: Developing Grails® 3 Applicatio...</h2>
</a>
</article></div>
<div class='column'><article class='blogcard' style='background-image:
url(https://grails.apache.org/images/2016-12-14.jpg)'>
@@ -836,15 +836,15 @@ Companies deploy assistants like this [](https://kapa.ai)
on docs via [website w
</a>
</article></div></div><div class="threecolumns">
<div class='column'><article class='blogcard' style='background-image:
url(https://grails.apache.org/images/quickcast.jpg)'>
- <a href='https://grails.apache.org/blog/2016-04-01-2.html'>
+ <a href='https://grails.apache.org/blog/2016-04-01-1.html'>
<h3>April 1, 2016</h3>
- <h2>Quickcast #2: JSON Views</h2>
+ <h2>Quickcast #1: Grails® Interceptors</h2>
</a>
</article></div>
<div class='column'><article class='blogcard' style='background-image:
url(https://grails.apache.org/images/quickcast.jpg)'>
- <a href='https://grails.apache.org/blog/2016-04-01-1.html'>
+ <a href='https://grails.apache.org/blog/2016-04-01-2.html'>
<h3>April 1, 2016</h3>
- <h2>Quickcast #1: Grails® Interceptors</h2>
+ <h2>Quickcast #2: JSON Views</h2>
</a>
</article></div>
<div class='column'><article class='blogcard' style='background-image:
url(https://grails.apache.org/images/2015-03-01.jpg)'>
diff --git a/blog/tag/quickcast.html b/blog/tag/quickcast.html
index eecbfe1c78f..055f1211a0a 100644
--- a/blog/tag/quickcast.html
+++ b/blog/tag/quickcast.html
@@ -121,15 +121,15 @@ Companies deploy assistants like this [](https://kapa.ai)
on docs via [website w
</a>
</article></div>
<div class='column'><article class='blogcard' style='background-image:
url(https://grails.apache.org/images/quickcast.jpg)'>
- <a href='https://grails.apache.org/blog/2018-08-22-1.html'>
+ <a href='https://grails.apache.org/blog/2018-08-22-2.html'>
<h3>August 22, 2018</h3>
- <h2>Quickcast #10: Debugging Grails® Apps</h2>
+ <h2>Quickcast #11: Grails® Profiling with YourKit</h2>
</a>
</article></div>
<div class='column'><article class='blogcard' style='background-image:
url(https://grails.apache.org/images/quickcast.jpg)'>
- <a href='https://grails.apache.org/blog/2018-08-22-2.html'>
+ <a href='https://grails.apache.org/blog/2018-08-22-1.html'>
<h3>August 22, 2018</h3>
- <h2>Quickcast #11: Grails® Profiling with YourKit</h2>
+ <h2>Quickcast #10: Debugging Grails® Apps</h2>
</a>
</article></div></div><div class="threecolumns">
<div class='column'><article class='blogcard' style='background-image:
url(https://grails.apache.org/images/quickcast.jpg)'>
@@ -151,39 +151,39 @@ Companies deploy assistants like this [](https://kapa.ai)
on docs via [website w
</a>
</article></div></div><div class="threecolumns">
<div class='column'><article class='blogcard' style='background-image:
url(https://grails.apache.org/images/quickcast.jpg)'>
- <a href='https://grails.apache.org/blog/2017-01-20-4.html'>
+ <a href='https://grails.apache.org/blog/2017-01-20-3.html'>
<h3>January 20, 2017</h3>
- <h2>Quickcast #6: Developing Grails® 3 Applicatio...</h2>
+ <h2>Quickcast #5: Retrieving Runtime Config Value...</h2>
</a>
</article></div>
<div class='column'><article class='blogcard' style='background-image:
url(https://grails.apache.org/images/quickcast.jpg)'>
- <a href='https://grails.apache.org/blog/2017-01-20-1.html'>
+ <a href='https://grails.apache.org/blog/2017-01-20-2.html'>
<h3>January 20, 2017</h3>
- <h2>Quickcast #3: Multi-Project Builds</h2>
+ <h2>Quickcast #4: Angular Scaffolding</h2>
</a>
</article></div>
<div class='column'><article class='blogcard' style='background-image:
url(https://grails.apache.org/images/quickcast.jpg)'>
- <a href='https://grails.apache.org/blog/2017-01-20-3.html'>
+ <a href='https://grails.apache.org/blog/2017-01-20-1.html'>
<h3>January 20, 2017</h3>
- <h2>Quickcast #5: Retrieving Runtime Config Value...</h2>
+ <h2>Quickcast #3: Multi-Project Builds</h2>
</a>
</article></div></div><div class="threecolumns">
<div class='column'><article class='blogcard' style='background-image:
url(https://grails.apache.org/images/quickcast.jpg)'>
- <a href='https://grails.apache.org/blog/2017-01-20-2.html'>
+ <a href='https://grails.apache.org/blog/2017-01-20-4.html'>
<h3>January 20, 2017</h3>
- <h2>Quickcast #4: Angular Scaffolding</h2>
+ <h2>Quickcast #6: Developing Grails® 3 Applicatio...</h2>
</a>
</article></div>
<div class='column'><article class='blogcard' style='background-image:
url(https://grails.apache.org/images/quickcast.jpg)'>
- <a href='https://grails.apache.org/blog/2016-04-01-2.html'>
+ <a href='https://grails.apache.org/blog/2016-04-01-1.html'>
<h3>April 1, 2016</h3>
- <h2>Quickcast #2: JSON Views</h2>
+ <h2>Quickcast #1: Grails® Interceptors</h2>
</a>
</article></div>
<div class='column'><article class='blogcard' style='background-image:
url(https://grails.apache.org/images/quickcast.jpg)'>
- <a href='https://grails.apache.org/blog/2016-04-01-1.html'>
+ <a href='https://grails.apache.org/blog/2016-04-01-2.html'>
<h3>April 1, 2016</h3>
- <h2>Quickcast #1: Grails® Interceptors</h2>
+ <h2>Quickcast #2: JSON Views</h2>
</a>
</article></div></div>
</div>
diff --git a/casestudies/boosting-agility-with-grails.html
b/casestudies/boosting-agility-with-grails.html
index 251a873dd27..cbd905949c0 100644
--- a/casestudies/boosting-agility-with-grails.html
+++ b/casestudies/boosting-agility-with-grails.html
@@ -112,66 +112,84 @@ Companies deploy assistants like this [](https://kapa.ai)
on docs via [website w
</div>
<div class="content">
<div class="post">
- <article>
- <p>By leveraging the Apache Grails framework to expand its existing
e-commerce platform, a leading ticket exchange facilitator gained first-mover
advantage in the Asian market and emerged an online ticketing giant, boasting
stronger business capabilities, better customer service, and sales tools across
31 countries.</p>
-<div class="threecolumns space-above">
- <div class="column">
- <h3 class="columnheader">Client</h3>
-
- <p>An e-commerce merchant that facilitates secondary-market ticket
transactions for sporting matches, live concerts, theatrical performances, and
other entertainment events</p>
- </div>
- <div class="column">
- <h3 class="columnheader">Opportunity</h3>
- <p>China, Japan, South Korea, and India represented a booming
e-commerce market, and no viable ticket exchange facilitator had yet
established a foothold there.</p>
- </div>
- <div class="column">
- <h3 class="columnheader">Challenge</h3>
- <p>To scale an existing e-commerce platform quickly enough to expand
Asian operations ahead of the competition</p>
- </div>
-</div>
+ <article>
+ <p>By leveraging the Apache Grails framework to expand its
existing e-commerce platform, a leading ticket
+ exchange facilitator gained first-mover advantage in the Asian
market and emerged an online ticketing
+ giant, boasting stronger business capabilities, better
customer service, and sales tools across 31
+ countries.</p>
+ <div class="threecolumns space-above">
+ <div class="column">
+ <h3 class="columnheader">Client</h3>
-<p class="space-above"><b>In today's economy, establishing a firm foothold in
a new market ahead of the competition often comes down to the ability to build
the necessary e-commerce infrastructure fast enough to move into your target
territory first.</b></p>
+ <p>An e-commerce merchant that facilitates
secondary-market ticket transactions for sporting
+ matches, live concerts, theatrical performances, and
other entertainment events</p>
+ </div>
+ <div class="column">
+ <h3 class="columnheader">Opportunity</h3>
+ <p>China, Japan, South Korea, and India represented a
booming e-commerce market, and no viable
+ ticket exchange facilitator had yet established a
foothold there.</p>
+ </div>
+ <div class="column">
+ <h3 class="columnheader">Challenge</h3>
+ <p>To scale an existing e-commerce platform quickly enough
to expand Asian operations ahead of the
+ competition</p>
+ </div>
+ </div>
-<div class="twocolumns space-above">
- <div class="column">
- <h3 class = "space-above">Grails framework</h3>
-
- <ul>
- <li>Is an enterprise-class development framework designed
specifically to optimize performance in large, complex systems, like e-commerce
platforms.</li>
- <li>Facilitates rapid application development for companies that
have invested in JVM-based technologies.</li>
- <li>Combines convention-over-configuration, sensible defaults,
opinionated APIs, and the Groovy language, making it easy for Java developers
to learn.</li>
- <li>Seamlessly and transparently integrates and interoperates with
Java, the JVM, and existing Java EE containers.</li>
- <li>Is built on top of Spring Boot and leverages Spring Boot's
time-saving features, such as Spring-powered dependency injection.</li>
- <li>Applies the “Don't Repeat Yourself” (DRY) principle, thereby
eliminating repetition and hidden bugs, and enabling faster and easier
enhancements.</li>
- <li>Is open source, so its users are not tied to long-term
contracts or licensing costs, making it ideal for budget-conscious
businesses.</li>
- </ul>
- </div>
- <div class="column">
- <h3 class="space-above">To build an upgraded e-commerce platform that
could accommodate:</h3>
-
- <ul>
- <li>A massive influx in transactions</li>
- <li>Translation into multiple additional languages</li>
- <li>Culture-specific UI/UX expectations</li>
- </ul>
- <h3 class = "space-above">... the development platform selected by the
engineering team had to:</h3>
- <ul>
- <li>Be robust enough to handle a large, complex e-commerce
system</li>
- <li>Facilitate rapid development</li>
- <li>Offer a smooth learning curve</li>
- <li>Integrate with their existing investments in Java, Hibernate,
and Spring</li>
- <li>Allow for future expansion beyond the current initiative</li>
- <li>Fit within the company's budget</li>
- </ul>
- </div>
-</div>
+ <p class="space-above"><strong>In today's economy, establishing a
firm foothold in a new market ahead of the
+ competition often comes down to the ability to build the
necessary e-commerce infrastructure fast
+ enough to move into your target territory
first.</strong></p>
+
+ <div class="twocolumns space-above">
+ <div class="column">
+ <h3 class="space-above">Grails framework</h3>
+
+ <ul>
+ <li>Is an enterprise-class development framework
designed specifically to optimize performance
+ in large, complex systems, like e-commerce
platforms.</li>
+ <li>Facilitates rapid application development for
companies that have invested in JVM-based
+ technologies.</li>
+ <li>Combines convention-over-configuration, sensible
defaults, opinionated APIs, and the Groovy
+ language, making it easy for Java developers to
learn.</li>
+ <li>Seamlessly and transparently integrates and
interoperates with Java, the JVM, and existing
+ Java EE containers.</li>
+ <li>Is built on top of Spring Boot and leverages
Spring Boot's time-saving features, such as
+ Spring-powered dependency injection.</li>
+ <li>Applies the “Don't Repeat Yourself” (DRY)
principle, thereby eliminating repetition and
+ hidden bugs, and enabling faster and easier
enhancements.</li>
+ <li>Is open source, so its users are not tied to
long-term contracts or licensing costs, making
+ it ideal for budget-conscious businesses.</li>
+ </ul>
+ </div>
+ <div class="column">
+ <h3 class="space-above">To build an upgraded e-commerce
platform that could accommodate:</h3>
+
+ <ul>
+ <li>A massive influx in transactions</li>
+ <li>Translation into multiple additional languages</li>
+ <li>Culture-specific UI/UX expectations</li>
+ </ul>
+ <h3 class="space-above">... the development platform
selected by the engineering team had to:</h3>
+ <ul>
+ <li>Be robust enough to handle a large, complex
e-commerce system</li>
+ <li>Facilitate rapid development</li>
+ <li>Offer a smooth learning curve</li>
+ <li>Integrate with their existing investments in Java,
Hibernate, and Spring</li>
+ <li>Allow for future expansion beyond the current
initiative</li>
+ <li>Fit within the company's budget</li>
+ </ul>
+ </div>
+ </div>
-<blockquote class="space-above">
- <p>Grails is an agile development framework that reduces time to market
and gives us needed web application development velocity.</p>
- <p>With Grails and its fantastic built-in testing framework, we have
increased core logic coverage, while simultaneously reducing application
bugs.</p>
- <p>Another KPI that makes our product better is that using Grails makes
our developers more productive and happy, which makes everyone happy –
including the business.</p>
-</blockquote>
- </article>
+ <blockquote class="space-above">
+ <p>Grails is an agile development framework that reduces time
to market and gives us needed web
+ application development velocity.</p>
+ <p>With Grails and its fantastic built-in testing framework,
we have increased core logic coverage,
+ while simultaneously reducing application bugs.</p>
+ <p>Another KPI that makes our product better is that using
Grails makes our developers more productive
+ and happy, which makes everyone happy – including the
business.</p>
+ </blockquote>
+ </article>
</div>
</div> </article>
<footer>
diff --git
a/casestudies/grails-case-study-providing-a-comprehensive-solution-for-a-public-university.html
b/casestudies/grails-case-study-providing-a-comprehensive-solution-for-a-public-university.html
index e418a6b100d..fe745a47d92 100644
---
a/casestudies/grails-case-study-providing-a-comprehensive-solution-for-a-public-university.html
+++
b/casestudies/grails-case-study-providing-a-comprehensive-solution-for-a-public-university.html
@@ -112,45 +112,57 @@ Companies deploy assistants like this [](https://kapa.ai)
on docs via [website w
</div>
<div class="content">
<div class="post">
- <article>
+ <article>
<h1>APACHE GRAILS® FRAMEWORK USHERS COMPLEX LEGACY SYSTEM INTO THE
FUTURE</h1>
- <p>A massive, decentralized university database gets a modern
upgrade driven by the power and interoperability of the open source Grails
framework.</p>
+ <p>A massive, decentralized university database gets a modern
upgrade driven by the power and
+ interoperability of the open source Grails framework.</p>
<div class="space-above">
- <p><b>A system failure in a university's internal database can
affect tens of thousands of users and create major chaos, especially during
peak-use times, like school admission season.</b></p>
- </div>
+ <p><strong>A system failure in a university's internal
database can affect tens of thousands of users
+ and create major chaos, especially during peak-use
times, like school admission season.</strong>
+ </p>
+ </div>
<div class="twocolumns space-above">
<div class="column">
<h3 class="columnheader">The Challenge</h3>
- <p>A U.S.-based public research university’s core
technology team struggled to manage the demands of numerous decentralized
technology departments, each with its own unique platform, security, and
interoperability concerns.</p>
-
- <p>The university’s internal database supported 80,000
daily users, including students, staff, faculty, and contractors. The database
was also accessible to 500,000 alumni. Thus, it was critical that the system be
highly responsive and consistently performant.</p>
-
- <p>The university recognized that it needed to upgrade the
entire system in order to keep up with increasingly complex requirements, and
expanding user base, and 21st-century expectations. </p>
-
+ <p>A U.S.-based public research university’s core
technology team struggled to manage the demands of
+ numerous decentralized technology departments, each
with its own unique platform, security, and
+ interoperability concerns.</p>
+
+ <p>The university’s internal database supported 80,000
daily users, including students, staff,
+ faculty, and contractors. The database was also
accessible to 500,000 alumni. Thus, it was
+ critical that the system be highly responsive and
consistently performant.</p>
+
+ <p>The university recognized that it needed to upgrade the
entire system in order to keep up with
+ increasingly complex requirements, and expanding user
base, and 21st-century expectations. </p>
+
</div>
<div class="column">
<h3 class="columnheader">Project Goals</h3>
-
+
<p>The university's leaders identified five critical
objectives:</p>
- <ol>
+ <ol>
<li>Modernize the university’s database to accommodate
future growth</li>
<li>Ensure continuity of existing efforts (e.g., data
synchronization) and system security</li>
<li>Develop tools to be used by multiple departments,
independent of the platform in use</li>
<li>Reduce the accumulation of technical and process
debt</li>
- <li>Create a flexible business solution for RESTful
interfaces and UI using open source technologies</li>
- </ol>
+ <li>Create a flexible business solution for RESTful
interfaces and UI using open source
+ technologies</li>
+ </ol>
</div>
</div>
-
+
<h2 class="space-above">SUCCESS STORY</h2>
-
- <p>The university selected the Grails framework to power the
upgrade because of Grails' extensive library of plugins and its ability to
significantly simplify the process of building web applications and backend
systems on the Java platform.</p>
-
+
+ <p>The university selected the Grails framework to power the
upgrade because of Grails' extensive library of
+ plugins and its ability to significantly simplify the process
of building web applications and backend
+ systems on the Java platform.</p>
+
<p>Our Grails team contributed training, support, and development
services, including:</p>
-
+
<ul>
- <li>Delivering an informal training program to help the
university's technical staff get up to speed on the framework before launching
the project</li>
+ <li>Delivering an informal training program to help the
university's technical staff get up to speed on
+ the framework before launching the project</li>
<li>Replacing legacy scripts to synchronize student and
faculty data</li>
<li>Integrating the university's proprietary databases and
applications with open source technology</li>
<li>Building microservice-oriented architecture running
several interactive Grails applications</li>
@@ -158,8 +170,8 @@ Companies deploy assistants like this [](https://kapa.ai)
on docs via [website w
<li>Implementing inter-application notifications with ActiveMQ
and REST</li>
<li>Designing and building front-end Grails applications for
administration and user interfaces</li>
</ul>
-
-
+
+
</article>
</div>
</div> </article>
diff --git
a/casestudies/increased-throughput-and-delivery-performance-with-grails.html
b/casestudies/increased-throughput-and-delivery-performance-with-grails.html
index 3f70efb1e6c..d6a3cd949fa 100644
--- a/casestudies/increased-throughput-and-delivery-performance-with-grails.html
+++ b/casestudies/increased-throughput-and-delivery-performance-with-grails.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html>
<head>
- <title>Manufacturing Capacity Optimized for increased throughput and
delivery performance | Case Studies | Grails® Framework</title>
+ <title>Manufacturing Capacity Optimized for increased throughput and
delivery performance | Case Studies | Grails®</title>
<meta name="keywords"
content="grails,jvm,framework,groovy,gradle,spring-boot,gorm"/>
<meta name="description" content="A powerful Groovy-based web application
framework for the JVM built on top of Spring Boot"/>
<meta name="date" content="January 14, 2026"/>
@@ -17,7 +17,7 @@
<meta property='og:image:width' content='300'/>
<meta property='og:image:height' content='300'/>
<meta property='og:url' content='https://grails.apache.org'/>
- <meta property='og:title' content='Manufacturing Capacity Optimized for
increased throughput and delivery performance | Case Studies | Grails®
Framework'/>
+ <meta property='og:title' content='Manufacturing Capacity Optimized for
increased throughput and delivery performance | Case Studies | Grails®'/>
<meta property='og:description' content='A powerful Groovy-based web
application framework for the JVM built on top of Spring Boot'/>
<meta property='og:type' content='website'/>
@@ -113,75 +113,100 @@ Companies deploy assistants like this
[](https://kapa.ai) on docs via [website w
<div class="content">
<div class="post">
<h1>MANUFACTURING CAPACITY OPTIMIZED FOR INCREASED THROUGHPUT AND
DELIVERY PERFORMANCE</h1>
-
- <p>NXP Semiconductors, N.V. needed to build and enhance a suite of
factory applications to increase efficiency throughout its manufacturing
process.</p>
-
- <p>Grails Foundation assisted NXP in building and enhancing two key
applications using the Apache Grails® framework, which supported the
development speed and scale necessary to enable NXP to meet aggressive factory
performance milestones and objectives.</p>
-
+
+ <p>NXP Semiconductors, N.V. needed to build and enhance a suite of
factory applications to increase efficiency
+ throughout its manufacturing process.</p>
+
+ <p>Grails Foundation assisted NXP in building and enhancing two key
applications using the Apache Grails®
+ framework, which supported the development speed and scale
necessary to enable NXP to meet aggressive
+ factory performance milestones and objectives.</p>
+
<div class="space-above">
- <p><b>In the manufacturing industry, management depends upon the
accuracy and reliable functionality of factory information systems to minimize
productivity loss caused by outages and slow performance.</b></p>
+ <p><strong>In the manufacturing industry, management depends upon
the accuracy and reliable functionality of
+ factory information systems to minimize productivity loss
caused by outages and slow
+ performance.</strong></p>
</div>
-
+
<div class="twocolumns space-above">
- <div class="column">
- <h3 class="columnheader">Client</h3>
- <p>NXP Semiconductors, N.V., a Dutch global semiconductor
manufacturer headquartered in Eindhoven, Netherlands with more than 60 years’
combined experience and expertise, 44,000 employees in more than 35 countries,
and posted revenue of $9.5 billion in 2016</p>
+ <div class="column">
+ <h3 class="columnheader">Client</h3>
+ <p>NXP Semiconductors, N.V., a Dutch global semiconductor
manufacturer headquartered in Eindhoven,
+ Netherlands with more than 60 years’ combined experience
and expertise, 44,000 employees in more
+ than 35 countries, and posted revenue of $9.5 billion in
2016</p>
</div>
<div class="column">
- <h3 class="columnheader">Objective</h3>
- <p>To increase efficiency, throughput, and delivery performance
throughout the manufacturing process by upgrading a suite of critical factory
applications</p>
+ <h3 class="columnheader">Objective</h3>
+ <p>To increase efficiency, throughput, and delivery
performance throughout the manufacturing process by
+ upgrading a suite of critical factory applications</p>
</div>
</div>
<div class="twocolumns space-above">
<div class="column">
- <h3 class="columnheader">Challenge</h3>
+ <h3 class="columnheader">Challenge</h3>
<p>NXP faced two key challenges:</p>
<ul>
- <li>First, the company's factory information systems must
be available and online at all times to support 24/7 manufacturing operations.
NXP could not forfeit valuable operational time transitioning to a completely
new system, and the upgrades had to be completed in a way that did not
interfere with production.</li>
- <li>Second, due to the highly distributed nature of the
manufacturing systems, the technology NXP selected to build the upgraded system
had have the flexibility and power to support high transaction rates and low
response times.</li>
+ <li>First, the company's factory information systems must
be available and online at all times to
+ support 24/7 manufacturing operations. NXP could not
forfeit valuable operational time
+ transitioning to a completely new system, and the
upgrades had to be completed in a way that did
+ not interfere with production.</li>
+ <li>Second, due to the highly distributed nature of the
manufacturing systems, the technology NXP
+ selected to build the upgraded system had have the
flexibility and power to support high
+ transaction rates and low response times.</li>
</ul>
</div>
<div class="column">
<h3 class="columnheader">Solution</h3>
- <p>NXP’s manufacturing-application platform was already built
with Java and the OCI-developed Grails framework, so when the company needed a
partner to help upgrade its factory applications to optimize capacity
utilization, OCI was an obvious choice.</p>
- <p>Because Grails is based on the Java platform and integrates
with mainstream technologies, like Groovy, Spring, Hibernate, and Gradle, NXP
felt confident that its requirements would be met with minimal risk.</p>
+ <p>NXP’s manufacturing-application platform was already built
with Java and the OCI-developed Grails
+ framework, so when the company needed a partner to help
upgrade its factory applications to optimize
+ capacity utilization, OCI was an obvious choice.</p>
+ <p>Because Grails is based on the Java platform and integrates
with mainstream technologies, like
+ Groovy, Spring, Hibernate, and Gradle, NXP felt confident
that its requirements would be met with
+ minimal risk.</p>
</div>
</div>
-
+
<h2 class="space-above">THE APACHE GRAILS FRAMEWORK</h2>
-
+
<ul>
<li>Accelerates web application development</li>
<li>Supports exponential scaling</li>
<li>Maximizes “convention over configuration”</li>
<li>Deploys well within existing, complex environments</li>
- <li>Provides necessary flexibility to develop plug-ins and to
quickly resolve issues</li>
+ <li>Provides necessary flexibility to develop plug-ins and to
quickly resolve issues</li>
</ul>
-
+
<h2 class="space-above">Our Contribution</h2>
<p>We supported NXP in creating and enhancing two Grails applications:
CoPILOT and WIP Transport.</p>
-
+
<div class="twocolumns space-above">
- <div class="column">
- <h3 class="columnheader">Copilot</h3>
- <p>CoPILOT is used to manage production master data, including
equipment efficiency, process flow, and process time data. Alongside other
internal applications, CoPILOT enables NXP to optimize equipment performance to
improve delivery and increase factory capacity.</p>
- </div>
- <div class="column">
- <h3 class="columnheader">WiP Transport</h3>
- <p>WIP Transport is used to request supply delivery from a central
storage location. WIP Transport’s dashboard displays requests and material
movement between multiple locations throughout a factory.</p>
- </div>
+ <div class="column">
+ <h3 class="columnheader">Copilot</h3>
+ <p>CoPILOT is used to manage production master data, including
equipment efficiency, process flow, and
+ process time data. Alongside other internal applications,
CoPILOT enables NXP to optimize equipment
+ performance to improve delivery and increase factory
capacity.</p>
+ </div>
+ <div class="column">
+ <h3 class="columnheader">WiP Transport</h3>
+ <p>WIP Transport is used to request supply delivery from a
central storage location. WIP Transport’s
+ dashboard displays requests and material movement between
multiple locations throughout a factory.
+ </p>
+ </div>
</div>
-
+
<p class="space-above">Our software engineers:</p>
-
+
<ul>
<li>Delivered both apps on time, preventing any delays in
productivity</li>
- <li>Seamlessly merged the apps’ functionality with existing
systems by using the latest Grails release, along with front-end technologies,
including React and AngularJS.</li>
+ <li>Seamlessly merged the apps’ functionality with existing
systems by using the latest Grails release,
+ along with front-end technologies, including React and
AngularJS.</li>
<li>Updated NXP’s pre-existing Grails template with the latest
key-enabler releases</li>
- <li>Built a comprehensive suite of regression test cases to
sustain NXP’s applications for the long-term</li>
+ <li>Built a comprehensive suite of regression test cases to
sustain NXP’s applications for the long-term
+ </li>
</ul>
- <p>With interoperable and extensible system components built with the
Grails framework, NXP delivers high-quality, secure connections and
infrastructure worldwide, advancing solutions that make lives easier, better,
and safer.</p>
-
+ <p>With interoperable and extensible system components built with the
Grails framework, NXP delivers
+ high-quality, secure connections and infrastructure worldwide,
advancing solutions that make lives easier,
+ better, and safer.</p>
+
</div>
</div> </article>
<footer>
diff --git a/foundation/minutes.xml b/foundation/minutes.xml
index c424e84dc41..28d85b6a351 100644
--- a/foundation/minutes.xml
+++ b/foundation/minutes.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><rss
xmlns:content="http://purl.org/rss/1.0/modules/content/"
version="2.0"><channel><title>Foundation | Grails
Framework</title><link>https://grails.apache.org</link><description>A powerful
Groovy-based web application framework for the JVM built on top of Spring
Boot</description><pubDate>Wed, 14 Jan 2026 20:59:02
GMT</pubDate><item><title>Technology Advisory Board
Meeting</title><link>https://grails.apache.org/foundation/minutes/20221128-tab.html<
[...]
+<?xml version="1.0" encoding="UTF-8"?><rss
xmlns:content="http://purl.org/rss/1.0/modules/content/"
version="2.0"><channel><title>Foundation | Grails
Framework</title><link>https://grails.apache.org</link><description>A powerful
Groovy-based web application framework for the JVM built on top of Spring
Boot</description><pubDate>Wed, 14 Jan 2026 21:03:23
GMT</pubDate><item><title>Technology Advisory Board
Meeting</title><link>https://grails.apache.org/foundation/minutes/20221128-tab.html<
[...]
<h3>Meeting Attendance:</h3>
<ul>
<li><strong>Puneet Behl</strong> - Grails Product Development Lead at Object
Computing</li>
diff --git a/index.html b/index.html
index 6f0829e15d9..379caddf848 100644
--- a/index.html
+++ b/index.html
@@ -119,7 +119,7 @@ Companies deploy assistants like this [](https://kapa.ai)
on docs via [website w
</div>
<div class="calltoactions">
<div class="calltoaction">
- <b>Read the docs</b>
+ <strong>Read the docs</strong>
<h2>
<a
href="https://grails.apache.org/docs/7.0.5/">Documentation
<span class="version">7.0.5</span>
@@ -128,9 +128,10 @@ Companies deploy assistants like this [](https://kapa.ai)
on docs via [website w
<a class="allversions"
href="https://grails.apache.org/documentation.html">browse all versions</a>
</div>
<div class="calltoaction">
- <b>Get the latest version</b>
+ <strong>Get the latest version</strong>
<h2>
- <a
href="https://www.apache.org/dyn/closer.lua/grails/core/7.0.5/distribution/apache-grails-7.0.5-bin.zip?action=download">Download
+ <a
+
href="https://www.apache.org/dyn/closer.lua/grails/core/7.0.5/distribution/apache-grails-7.0.5-bin.zip?action=download">Download
<span class="version">7.0.5</span>
</a>
</h2>
@@ -139,7 +140,8 @@ Companies deploy assistants like this [](https://kapa.ai)
on docs via [website w
</div>
<div class="get-started-row">
<div class="calltoaction">
- <span class="allversions">NOTE: Versions prior to 7.0.0-M4 are
not ASF releases. Links to those releases are provided here as a
convenience.</span>
+ <span class="allversions">NOTE: Versions prior to 7.0.0-M4 are
not ASF releases. Links to those releases
+ are provided here as a convenience.</span>
</div>
</div>
</div>
@@ -150,47 +152,59 @@ Companies deploy assistants like this [](https://kapa.ai)
on docs via [website w
<div class="column">
<img
src="https://grails.apache.org/images/flatlearningcurve.png" alt="Flat Learning
Curve">
<h3>Flat Learning Curve</h3>
- <p>Convention-over-configuration, sensible defaults,
opinionated APIs, and the Groovy language combine to make the
Grails<sup>®</sup> framework easy to learn for Java developers.</p>
+ <p>Convention-over-configuration, sensible defaults,
opinionated APIs, and the Groovy language combine
+ to make the Grails<sup>®</sup> framework easy to learn
for Java developers.</p>
</div>
<div class="column">
<img src="https://grails.apache.org/images/springboot.svg"
alt="Spring Boot">
<h3>On top of Spring Boot</h3>
- <p>The Grails framework is built on top of Spring Boot and
leverages Spring Boot's time-saving features, such as Spring-powered dependency
injection.</p>
+ <p>The Grails framework is built on top of Spring Boot and
leverages Spring Boot's time-saving features,
+ such as Spring-powered dependency injection.</p>
</div>
<div class="column">
<img src="https://grails.apache.org/images/java.png"
alt="Smooth Java Integration">
<h3>Smooth Java Integration</h3>
- <p>The Grails framework seamlessly and transparently
integrates and interoperates with Java, the JVM, and existing Java EE
containers.</p>
+ <p>The Grails framework seamlessly and transparently
integrates and interoperates with Java, the JVM,
+ and existing Java EE containers.</p>
</div>
<div class="column">
<img src="https://grails.apache.org/images/groovy.png"
alt="Groovy Programming Language">
<h3>Groovy-Based</h3>
- <p>Apache Groovy is a language for the Java platform designed
to enhance developers' productivity. It is an optionally-typed and dynamic
language but with static-typing and static compilation capabilities.</p>
+ <p>Apache Groovy is a language for the Java platform designed
to enhance developers' productivity. It is
+ an optionally-typed and dynamic language but with
static-typing and static compilation capabilities.
+ </p>
</div>
<div class="column">
<img src="https://grails.apache.org/images/gorm.png" alt="GORM
- Data Access Toolkit">
<h3>Seamless GORM Integration</h3>
- <p>The Grails framework seamlessly integrates with GORM, a
data access toolkit that provides a rich set of APIs for accessing relational
and non-relational data. GORM also includes implementations for Hibernate
(SQL), MongoDB, Cassandra, and Neo4j.</p>
+ <p>The Grails framework seamlessly integrates with GORM, a
data access toolkit that provides a rich set
+ of APIs for accessing relational and non-relational data.
GORM also includes implementations for
+ Hibernate (SQL), MongoDB, Cassandra, and Neo4j.</p>
</div>
<div class="column">
<img src="https://grails.apache.org/images/restapis.svg"
alt="REST APIs, REACT, ANGULAR">
<h3>REST APIs, REACT, ANGULAR</h3>
- <p>With the use of application profiles, including React and
Angular, the Grails framework allows developers to build REST APIs or modern
web applications with a JavaScript frontend.</p>
+ <p>With the use of application profiles, including React and
Angular, the Grails framework allows
+ developers to build REST APIs or modern web applications
with a JavaScript frontend.</p>
</div>
<div class="column">
<img src="https://grails.apache.org/images/plugins.svg" alt="">
<h3>Plugins</h3>
- <p>Developers can build plugins that extend and enhance the
Grails framework, or they can access existing plugins published by a vibrant
plugin community.</p>
+ <p>Developers can build plugins that extend and enhance the
Grails framework, or they can access
+ existing plugins published by a vibrant plugin
community.</p>
</div>
<div class="column">
<img src="https://grails.apache.org/images/view.svg" alt="View
Technologies">
<h3>View Technologies</h3>
- <p>Technologies such as GSP, JSON Views, and Markup Views help
developers effortlessly generate HTML, JSON, and XML.</p>
+ <p>Technologies such as GSP, JSON Views, and Markup Views help
developers effortlessly generate HTML,
+ JSON, and XML.</p>
</div>
<div class="column">
<img src="https://grails.apache.org/images/asynchronous.svg"
alt="Asynchronous Capabilities">
<h3>Asynchronous Capabilities</h3>
- <p>The async features of the Grails framework aim to simplify
concurrent programming. The framework's features include the concept of
Promises, a unified event model, and the use of RxJava to write reactive
logic.</p>
+ <p>The async features of the Grails framework aim to simplify
concurrent programming. The framework's
+ features include the concept of Promises, a unified event
model, and the use of RxJava to write
+ reactive logic.</p>
</div>
<div class="column">
<img src="https://grails.apache.org/images/opensource.svg"
alt="Open Source">
@@ -200,12 +214,14 @@ Companies deploy assistants like this [](https://kapa.ai)
on docs via [website w
<div class="column">
<img src="https://grails.apache.org/images/dsl.png"
alt="Domain-Specific Languages">
<h3>Domain-Specific Languages</h3>
- <p>The Grails framework relies on expressive domain-specific
languages (DSLs) for validation, querying, markup rendering, and more.</p>
+ <p>The Grails framework relies on expressive domain-specific
languages (DSLs) for validation, querying,
+ markup rendering, and more.</p>
</div>
<div class="column">
<img src="https://grails.apache.org/images/idesupport.png"
alt="IDE Support">
<h3>IDE Support</h3>
- <p>Developers can access support at any time via IDEs and text
editors, such as Intellij IDEA, Eclipse, Sublime, and Textmate.</p>
+ <p>Developers can access support at any time via IDEs and text
editors, such as Intellij IDEA, Eclipse,
+ Sublime, and Textmate.</p>
</div>
</div>
</div>
@@ -213,26 +229,40 @@ Companies deploy assistants like this [](https://kapa.ai)
on docs via [website w
<article class="training" style="display: block;">
<div class="content" style="padding-top: 40px; display: none;">
<div class="twocolumns">
- <div class="column"><div class="event">
- <img src="https://grails.apache.org/images/confs/gr8confeu.png"
alt="GR8Conf EU 2020">
- <h3>
- <a href="https://gr8conf.eu/">GR8Conf EU 2020</a>
- </h3>
- <span class="location">Copenhagen, Denmark</span>
- <span class="dates">June 2 - 4, 2020</span><p>Groovy, Grails, and
related technologies have seen astounding growth in interest and adoption over
the past few years, and with good reason. GR8Conf is a series of conferences
founded to spread the word worldwide. The 2018 GR8Conf Europe is celebrating
its 10th year, and it's expected to be a blast. As in 2017 the conference had a
DevOps day, this year DevOps topics will be mixed with the rest of the topics.
GR8Conf is an independ [...]
+ <div class="column">
+ <div class="event">
+ <img
src="https://grails.apache.org/images/confs/gr8confeu.png" alt="GR8Conf EU
2020">
+ <h3>
+ <a href="https://gr8conf.eu/">GR8Conf EU 2020</a>
+ </h3>
+ <span class="location">Copenhagen, Denmark</span>
+ <span class="dates">June 2 - 4, 2020</span>
+ <p>Groovy, Grails, and related technologies have seen
astounding growth in interest and adoption
+ over the past few years, and with good reason. GR8Conf
is a series of conferences founded to
+ spread the word worldwide. The 2018 GR8Conf Europe is
celebrating its 10th year, and it's
+ expected to be a blast. As in 2017 the conference had
a DevOps day, this year DevOps topics will
+ be mixed with the rest of the topics. GR8Conf is an
independent, affordable series of
+ conferences and covers All Things Groovy</p>
- </div></div>
- <div class="column"><div class="event">
- <img src="https://grails.apache.org/images/confs/greach.png"
alt="Greach 2020">
- <h3>
- <a href="https://greachconf.com">Greach 2020</a>
- </h3>
- <span class="location">Madrid, Spain</span>
- <span class="dates">March 26 - 28, 2020</span><p>Enhance your
knowledge and skills with some of the most recognizable names from the Groovy
development scene from all around the world. Experience three days full of
Groovy and Grails talks and networking ... plus our famous Friday Beers
Party!</p>
+ </div>
+ </div>
+ <div class="column">
+ <div class="event">
+ <img
src="https://grails.apache.org/images/confs/greach.png" alt="Greach 2020">
+ <h3>
+ <a href="https://greachconf.com">Greach 2020</a>
+ </h3>
+ <span class="location">Madrid, Spain</span>
+ <span class="dates">March 26 - 28, 2020</span>
+ <p>Enhance your knowledge and skills with some of the most
recognizable names from the Groovy
+ development scene from all around the world.
Experience three days full of Groovy and Grails
+ talks and networking ... plus our famous Friday Beers
Party!</p>
- </div></div>
- </div></div>
-<!-- <div class="content">
+ </div>
+ </div>
+ </div>
+ </div>
+ <!-- <div class="content">
<h2>Grails Training</h2>
</div>-->
diff --git a/rss.xml b/rss.xml
index 5f56c0fa251..eae4707f4af 100644
--- a/rss.xml
+++ b/rss.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><rss
xmlns:content="http://purl.org/rss/1.0/modules/content/"
version="2.0"><channel><title>Blog | Grails
Framework</title><link>https://grails.apache.org</link><description>A powerful
Groovy-based web application framework for the JVM built on top of Spring
Boot</description><pubDate>Wed, 14 Jan 2026 20:59:05
GMT</pubDate><item><title>Apache Grails [%version] - Release
Announcement</title><link>https://grails.apache.org/blog/2025-10-18-introducing-g
[...]
+<?xml version="1.0" encoding="UTF-8"?><rss
xmlns:content="http://purl.org/rss/1.0/modules/content/"
version="2.0"><channel><title>Blog | Grails
Framework</title><link>https://grails.apache.org</link><description>A powerful
Groovy-based web application framework for the JVM built on top of Spring
Boot</description><pubDate>Wed, 14 Jan 2026 21:03:25
GMT</pubDate><item><title>Apache Grails [%version] - Release
Announcement</title><link>https://grails.apache.org/blog/2025-10-18-introducing-g
[...]
<p>The Apache Grails community is excited to announce the 7.0.0 release of the
Apache Grails Framework!</p>
<p>This achievement reflects the dedication of our community and underscores
the strength of the ASF's open source ecosystems.</p>
<p>Thousands, upon thousands, of hours have gone into this release, and we are
incredibly grateful to everyone who contributed their time and expertise to
make it happen.</p>
@@ -2799,21 +2799,21 @@ Moving the Grails Foundation under Unity provides a
meaningful alliance between
<p>Because Grails applications are built on top of Spring and Spring Boot, the
Grails team has taken this vulnerability very seriously. Our investigations
have yielded no evidence that Grails 4.x or 5.x applications are vulnerable to
this attack. The Grails framework has its own data-binding logic, which
includes checks to validate that a given property a) is in a list of properties
that may be bound to, and b) exists within the target metaClass. All other
property candidates are ignored.</p>
<p>The known exploit is one mechanism that can be used for this vulnerability.
We will continue to monitor this situation and alert the Grails community of
any vulnerabilities discovered, along with mitigation steps.</p>
<h2>Next Steps</h2>
-<p>Although at this time, we have no reason to believe that Grails
applications are vulnerable, as a precaution, we have released <a
href="https://github.com/apache/grails-core/releases/tag/v5.1.6">Grails
5.1.6</a>. This Grails Framework release updates our Spring dependency to
5.3.18, which includes the upstream patch from the Spring Framework
Team.</p>]]></description><author>Jason
Schindler</author><guid>2022-03-31-grails-spring-rce</guid><pubDate>Thu, 31 Mar
2022 00:00:00 GMT</pubDa [...]
-<p><strong>Gradle has joined the Grails Foundation as our first Tools and
Infrastructure Partner</strong></p>
-<p>The Grails Foundation™ is truly appreciative of the tremendous support we
receive from our sponsors. In addition to financial support, generous
contributions of development tools, infrastructure, and other resources are
essential to the continued evolution of the Grails® framework. Thus, we have
established a new partnership program to recognize the companies whose
contributions enable us to maintain and expand both the open source
technologies and the assets we rely on to keep our co [...]
-<p>Today, we are pleased to announce that Gradle Inc, the providers of <a
href="https://gradle.org">Gradle Build Tool</a> and <a
href="https://gradle.com">Gradle Enterprise</a>, has joined the Grails
Foundation as our first Tools and Infrastructure Partner! In support of our
organizations' shared values and goals within the open source ecosystem, Gradle
provides the Foundation free instances of <a href="https://gradle.com">Gradle
Enterprise</a>.</p>
-<p>Gradle Enterprise has helped our team to improve build times and
test-feedback cycle times, and improve troubleshooting efficiency by combining
root-cause analysis data with failure analytics.</p>
-<p>We’re delighted to have Gradle on board as a Tools and Infrastructure
Partner. The Gradle team's support and excitement for the Grails technology
over the years has been tremendous. Their engagement in our community has been
awesome, and we look forward to continued collaboration in the years to come.
We truly appreciate the dedication and passion Gradle has for open source
projects. On behalf of the Grails Foundation, thank you! Initiatives like these
that support and grow our Framew [...]
-<p>The Grails Foundation is a not-for-profit organization that supports the
Grails framework. The Foundation not only builds and supports an ecosystem of
documentation, functionality, and services, it promotes and evangelizes the
Framework as a leading technology in the JVM space. The generous support of our
Corporate Sponsors allows the Foundation to continue to ensure technical
innovation and advancement of the Framework as a free and open public-use
software development toolkit for ou [...]
-<p>To learn more about how you or your organization can support this
Foundation, please <a href="/">check us
out</a>!</p>]]></description><author>Jen
Wiese</author><guid>2022-01-07-gradle-enterprise-tools-and-infrastructure-partner</guid><pubDate>Fri,
07 Jan 2022 00:00:00 GMT</pubDate></item><item><title>2GM Town Hall Meeting:
2022
Q1</title><link>https://grails.apache.org/blog/2022-01-07-2gm-town-hall-q1.html</link><description><![CDATA[</p>
+<p>Although at this time, we have no reason to believe that Grails
applications are vulnerable, as a precaution, we have released <a
href="https://github.com/apache/grails-core/releases/tag/v5.1.6">Grails
5.1.6</a>. This Grails Framework release updates our Spring dependency to
5.3.18, which includes the upstream patch from the Spring Framework
Team.</p>]]></description><author>Jason
Schindler</author><guid>2022-03-31-grails-spring-rce</guid><pubDate>Thu, 31 Mar
2022 00:00:00 GMT</pubDa [...]
<p>A big thanks to everyone who joined us for our Q1 2GM Town Hall Meeting!
For those of you who missed the live event, the recording is embedded below.</p>
<p>At this quarter’s meeting, we provided an update on the latest advancements
with the Grails and Micronaut frameworks, including a look at what is coming
soon. We also shared the latest news and sponsors of the Grails and Micronaut
Foundations, as well as some great live discussions and Q&A with our
panel.</p>
<p>A special thanks to our fantastic panel of experts: James Kleeh, Puneet
Behl, Sergio del Amo Caballero, and our awesome guest <a
href="http://melix.github.io/blog/">Cédric Champeau</a>.</p>
<p>Till next time!</p>
<p>— Jen Wiese</p>
<p><a href="https://objectcomputing.com/download_file/5451">Slides</a></p>
-<iframe width="100%" height="560"
src="https://www.youtube-nocookie.com/embed/EE5flg8Hj_E"
frameborder="0"></iframe>]]></description><author>Jen
Wiese</author><guid>2022-01-07-2gm-town-hall-q1</guid><pubDate>Fri, 07 Jan 2022
00:00:00 GMT</pubDate></item><item><title>Grails Framework 5.1
Released</title><link>https://grails.apache.org/blog/2021-12-15-grails-five-one.html</link><description><![CDATA[</p>
+<iframe width="100%" height="560"
src="https://www.youtube-nocookie.com/embed/EE5flg8Hj_E"
frameborder="0"></iframe>]]></description><author>Jen
Wiese</author><guid>2022-01-07-2gm-town-hall-q1</guid><pubDate>Fri, 07 Jan 2022
00:00:00 GMT</pubDate></item><item><title>Grails Foundation Announces First
Tools and Infrastructure
Partner</title><link>https://grails.apache.org/blog/2022-01-07-gradle-enterprise-tools-and-infrastructure-partner.html</link><description><![CDATA[</p>
+<p><strong>Gradle has joined the Grails Foundation as our first Tools and
Infrastructure Partner</strong></p>
+<p>The Grails Foundation™ is truly appreciative of the tremendous support we
receive from our sponsors. In addition to financial support, generous
contributions of development tools, infrastructure, and other resources are
essential to the continued evolution of the Grails® framework. Thus, we have
established a new partnership program to recognize the companies whose
contributions enable us to maintain and expand both the open source
technologies and the assets we rely on to keep our co [...]
+<p>Today, we are pleased to announce that Gradle Inc, the providers of <a
href="https://gradle.org">Gradle Build Tool</a> and <a
href="https://gradle.com">Gradle Enterprise</a>, has joined the Grails
Foundation as our first Tools and Infrastructure Partner! In support of our
organizations' shared values and goals within the open source ecosystem, Gradle
provides the Foundation free instances of <a href="https://gradle.com">Gradle
Enterprise</a>.</p>
+<p>Gradle Enterprise has helped our team to improve build times and
test-feedback cycle times, and improve troubleshooting efficiency by combining
root-cause analysis data with failure analytics.</p>
+<p>We’re delighted to have Gradle on board as a Tools and Infrastructure
Partner. The Gradle team's support and excitement for the Grails technology
over the years has been tremendous. Their engagement in our community has been
awesome, and we look forward to continued collaboration in the years to come.
We truly appreciate the dedication and passion Gradle has for open source
projects. On behalf of the Grails Foundation, thank you! Initiatives like these
that support and grow our Framew [...]
+<p>The Grails Foundation is a not-for-profit organization that supports the
Grails framework. The Foundation not only builds and supports an ecosystem of
documentation, functionality, and services, it promotes and evangelizes the
Framework as a leading technology in the JVM space. The generous support of our
Corporate Sponsors allows the Foundation to continue to ensure technical
innovation and advancement of the Framework as a free and open public-use
software development toolkit for ou [...]
+<p>To learn more about how you or your organization can support this
Foundation, please <a href="/">check us
out</a>!</p>]]></description><author>Jen
Wiese</author><guid>2022-01-07-gradle-enterprise-tools-and-infrastructure-partner</guid><pubDate>Fri,
07 Jan 2022 00:00:00 GMT</pubDate></item><item><title>Grails Framework 5.1
Released</title><link>https://grails.apache.org/blog/2021-12-15-grails-five-one.html</link><description><![CDATA[</p>
<p>The Grails Foundation™ is pleased to announce a new minor release: <a
href="https://github.com/apache/grails-core/releases/tag/v5.1.0"><strong>Grails
framework 5.1</strong></a>!</p>
<p>This release of the Grails framework includes a number of bug fixes and
Gradle 7.2 compatibility changes (the Gradle task definitions with <a
href="https://docs.gradle.org/7.0/userguide/upgrading_version_6.html#task_validation_problems_are_now_errors">incorrectly
defined input output will now fail the build</a>), plus a bunch of
dependencies updates. For more information, please check the <a
href="https://github.com/apache/grails-core/releases/tag/v5.1.0"><strong>Grails
5.1 release no [...]
<h2>Updated Dependencies</h2>
@@ -3825,15 +3825,15 @@ class Team {
<li>2.14.1.1 for Grails 2.x</li>
<li>2.15.1 for Grails 3 and Java 7</li>
<li>3.0.6 for Grails 3 and Java 8</li>
-</ul>]]></description><author>Iván
López</author><guid>2018-09-23</guid><pubDate>Sun, 23 Sep 2018 00:00:00
GMT</pubDate></item><item><title>Quickcast #10: Debugging Grails®
Apps</title><link>https://grails.apache.org/blog/2018-08-22-1.html</link><description><![CDATA[</p>
-<p>Tags: <a href="https://grails.apache.org/blog/tag/quickcast.html"><span
class="hashtag">#quickcast</span></a></p>
-<p>In this 13-minute Quickcast, 2GM (Groovy, Grails<sup>®</sup> framework, and
Micronaut) team member, <a
href="https://objectcomputing.com/products/2gm-team#lopez">Iván López</a>,
demonstrates a variety of ways to debug Grails core code and the Grails CLI
(command line interface). Developers may use these tips to fix issues or
contribute enhancements to the core Grails framework.</p>
-<p>Grails Quickcasts, brought to you through a partnership between <a
href="https://objectcomputing.com/">Object Computing, Inc.</a> (OCI) and <a
href="https://dzone.com/">DZone</a>, provide bite-sized tutorials to help you
maximize your productivity with the Framework.</p>
-<iframe width="100%" height="560"
src="https://www.youtube-nocookie.com/embed/y69Cr_hYUCA"
frameborder="0"></iframe>]]></description><author>Iván
López</author><guid>2018-08-22-1</guid><pubDate>Wed, 22 Aug 2018 00:00:00
GMT</pubDate></item><item><title>Quickcast #11: Grails® Profiling with
YourKit</title><link>https://grails.apache.org/blog/2018-08-22-2.html</link><description><![CDATA[</p>
+</ul>]]></description><author>Iván
López</author><guid>2018-09-23</guid><pubDate>Sun, 23 Sep 2018 00:00:00
GMT</pubDate></item><item><title>Quickcast #11: Grails® Profiling with
YourKit</title><link>https://grails.apache.org/blog/2018-08-22-2.html</link><description><![CDATA[</p>
<p>Tags: <a href="https://grails.apache.org/blog/tag/quickcast.html"><span
class="hashtag">#quickcast</span></a> <a
href="https://grails.apache.org/blog/tag/yourkit.html"><span
class="hashtag">#yourkit</span></a></p>
<p>In this Quickcast, 2GM (Groovy, Grails<sup>®</sup> framework, and
Micronaut) team member, <a
href="https://objectcomputing.com/products/2gm-team#assar">Nirav Assar</a>,
demonstrates how to use YourKit to profile a Grails application and spot CPU
problems and heap and garbage collection issues.</p>
<p>Grails Quickcasts, brought to you through a partnership between <a
href="https://objectcomputing.com/">Object Computing, Inc.</a> (OCI) and <a
href="https://dzone.com/">DZone</a>, provide bite-sized tutorials to help you
maximize your productivity with the Framework.</p>
-<iframe width="100%" height="560"
src="https://www.youtube-nocookie.com/embed/NJ_T5g4bBeY"
frameborder="0"></iframe>]]></description><author>Nirav
Assar</author><guid>2018-08-22-2</guid><pubDate>Wed, 22 Aug 2018 00:00:00
GMT</pubDate></item><item><title>Mock vs Stub vs
Spy</title><link>https://grails.apache.org/blog/2018-06-22.html</link><description><![CDATA[</p>
+<iframe width="100%" height="560"
src="https://www.youtube-nocookie.com/embed/NJ_T5g4bBeY"
frameborder="0"></iframe>]]></description><author>Nirav
Assar</author><guid>2018-08-22-2</guid><pubDate>Wed, 22 Aug 2018 00:00:00
GMT</pubDate></item><item><title>Quickcast #10: Debugging Grails®
Apps</title><link>https://grails.apache.org/blog/2018-08-22-1.html</link><description><![CDATA[</p>
+<p>Tags: <a href="https://grails.apache.org/blog/tag/quickcast.html"><span
class="hashtag">#quickcast</span></a></p>
+<p>In this 13-minute Quickcast, 2GM (Groovy, Grails<sup>®</sup> framework, and
Micronaut) team member, <a
href="https://objectcomputing.com/products/2gm-team#lopez">Iván López</a>,
demonstrates a variety of ways to debug Grails core code and the Grails CLI
(command line interface). Developers may use these tips to fix issues or
contribute enhancements to the core Grails framework.</p>
+<p>Grails Quickcasts, brought to you through a partnership between <a
href="https://objectcomputing.com/">Object Computing, Inc.</a> (OCI) and <a
href="https://dzone.com/">DZone</a>, provide bite-sized tutorials to help you
maximize your productivity with the Framework.</p>
+<iframe width="100%" height="560"
src="https://www.youtube-nocookie.com/embed/y69Cr_hYUCA"
frameborder="0"></iframe>]]></description><author>Iván
López</author><guid>2018-08-22-1</guid><pubDate>Wed, 22 Aug 2018 00:00:00
GMT</pubDate></item><item><title>Mock vs Stub vs
Spy</title><link>https://grails.apache.org/blog/2018-06-22.html</link><description><![CDATA[</p>
<p>Tags: <a href="https://grails.apache.org/blog/tag/spock.html"><span
class="hashtag">#spock</span></a></p>
<h2>Introduction</h2>
<p><a href="https://spockframework.org/">Spock</a> provides three powerful yet
distinct, tools that make working with collaborators easier:</p>
@@ -5184,18 +5184,7 @@ info.app.grailsVersion=3.2.5
<p>GORM 6.1 will become the default version of GORM to be used in the upcoming
Grails 3.3, in the meantime you can use GORM 6.1 in Grails 3.2 simply by
changing the <code>gormVersion</code> setting in
<code>gradle.properties</code>:</p>
<pre><code class="language-groovy">gormVersion=6.1.0.RELEASE
</code></pre>
-<p>To celebrate the release we have prepared the first of a series of new
guides to cover GORM 6.1. Among the many new features are huge improvements to
support Neo4j. Using the official Neo4j sample application, the new guide
describes how you can <a
href="https://guides.grails.org/neo4j-movies/guide/index.html">build a graph
application with the Grails framework, GORM 6.1 and Neo4j</a>!
Enjoy!</p>]]></description><author>Graeme
Rocher</author><guid>2017-03-27</guid><pubDate>Mon, 27 Mar [...]
-<p>Tags: <a href="https://grails.apache.org/blog/tag/quickcast.html"><span
class="hashtag">#quickcast</span></a></p>
-<p>Grails<sup>®</sup> 3 is a high-productivity framework for building web
applications for the JVM.</p>
-<p>IntelliJ IDEA is a high-productivity Integrated Development Environment
(IDE) for building a variety of application types. IDEA has always had great
support for building Grails applications and, in particular, has the best
support of any IDE for developing with Grails 3.</p>
-<p>In this 20-minute video, Grails framework co-founder, <a
href="https://objectcomputing.com/products/2gm-team#brown">Jeff Scott
Brown</a>, introduces several tips and tricks related to building Grails 3
applications in IDEA.</p>
-<p>Grails Quickcasts, brought to you through a partnership between <a
href="https://objectcomputing.com/">Object Computing, Inc.</a> (OCI) and <a
href="https://dzone.com/">DZone</a>, provide bite-sized tutorials to help you
maximize your productivity with the Framework.</p>
-<iframe width="100%" height="560"
src="https://www.youtube-nocookie.com/embed/XsCCsTRdezw"
frameborder="0"></iframe>]]></description><author>Jeff Scott
Brown</author><guid>2017-01-20-4</guid><pubDate>Fri, 20 Jan 2017 00:00:00
GMT</pubDate></item><item><title>Quickcast #3: Multi-Project
Builds</title><link>https://grails.apache.org/blog/2017-01-20-1.html</link><description><![CDATA[</p>
-<p>Tags: <a href="https://grails.apache.org/blog/tag/quickcast.html"><span
class="hashtag">#quickcast</span></a></p>
-<p>In this video, Grails<sup>®</sup> framework co-founder Graeme Rocher walks
you through multi-project builds in Grails apps.</p>
-<p>The Grails framework does a few handy things with multi-project builds and
plugins, not the least of which being that Grails compiles your plugins first
and puts the class and resources of those plugins directly in the classpath.
This lets you make changes to your plugins and instantly see those changes in
your build.</p>
-<p>Grails Quickcasts, brought to you through a partnership between <a
href="https://objectcomputing.com/">Object Computing, Inc.</a> (OCI) and <a
href="https://dzone.com/">DZone</a>, provide bite-sized tutorials to help you
maximize your productivity with the Framework.</p>
-<iframe width="100%" height="560"
src="https://www.youtube-nocookie.com/embed/yNA0ce5fG9s"
frameborder="0"></iframe>]]></description><author>Graeme
Rocher</author><guid>2017-01-20-1</guid><pubDate>Fri, 20 Jan 2017 00:00:00
GMT</pubDate></item><item><title>Quickcast #5: Retrieving Runtime Config Values
in Grails®
3</title><link>https://grails.apache.org/blog/2017-01-20-3.html</link><description><![CDATA[</p>
+<p>To celebrate the release we have prepared the first of a series of new
guides to cover GORM 6.1. Among the many new features are huge improvements to
support Neo4j. Using the official Neo4j sample application, the new guide
describes how you can <a
href="https://guides.grails.org/neo4j-movies/guide/index.html">build a graph
application with the Grails framework, GORM 6.1 and Neo4j</a>!
Enjoy!</p>]]></description><author>Graeme
Rocher</author><guid>2017-03-27</guid><pubDate>Mon, 27 Mar [...]
<p>Tags: <a href="https://grails.apache.org/blog/tag/quickcast.html"><span
class="hashtag">#quickcast</span></a></p>
<p>In this short video tutorial, Grails<sup>®</sup> framework co-founder, <a
href="https://objectcomputing.com/products/2gm-team#brown">Jeff Scott
Brown</a>, highlights some of the great features of the Grails framework.</p>
<p>In fewer than 18 minutes, Jeff describes several techniques for retrieving
configuration values at runtime and discusses the pros and cons of each. Visit
<a
href="https://objectcomputing.com/news/2016/08/31/retrieving-config-values-grails-3">this
Grails blog post</a> for an accompanying article.</p>
@@ -5206,7 +5195,18 @@ info.app.grailsVersion=3.2.5
<p>In this Quickcast, 2GM (Groovy, Grails<sup>®</sup> framework, and
Micronaut) team member, <a
href="https://objectcomputing.com/products/2gm-team#kleeh">James Kleeh</a>,
walks you through the process of using the Angular scaffolding for Grails apps
to build a fully functional web app, using a simple blog format for
demonstration.</p>
<p>The tutorial explains how to have the Grails framework set up a REST
endpoint and all the Angular modules needed to get the web app running.</p>
<p>Grails Quickcasts, brought to you through a partnership between <a
href="https://objectcomputing.com/">Object Computing, Inc.</a> (OCI) and <a
href="https://dzone.com/">DZone</a>, provide bite-sized tutorials to help you
maximize your productivity with the Framework.</p>
-<iframe width="100%" height="560"
src="https://www.youtube-nocookie.com/embed/tT4BdlRFAis"
frameborder="0"></iframe>]]></description><author>James
Kleeh</author><guid>2017-01-20-2</guid><pubDate>Fri, 20 Jan 2017 00:00:00
GMT</pubDate></item><item><title>G3 Summit 2016
Wrap-up!</title><link>https://grails.apache.org/blog/2016-12-14.html</link><description><![CDATA[</p>
+<iframe width="100%" height="560"
src="https://www.youtube-nocookie.com/embed/tT4BdlRFAis"
frameborder="0"></iframe>]]></description><author>James
Kleeh</author><guid>2017-01-20-2</guid><pubDate>Fri, 20 Jan 2017 00:00:00
GMT</pubDate></item><item><title>Quickcast #3: Multi-Project
Builds</title><link>https://grails.apache.org/blog/2017-01-20-1.html</link><description><![CDATA[</p>
+<p>Tags: <a href="https://grails.apache.org/blog/tag/quickcast.html"><span
class="hashtag">#quickcast</span></a></p>
+<p>In this video, Grails<sup>®</sup> framework co-founder Graeme Rocher walks
you through multi-project builds in Grails apps.</p>
+<p>The Grails framework does a few handy things with multi-project builds and
plugins, not the least of which being that Grails compiles your plugins first
and puts the class and resources of those plugins directly in the classpath.
This lets you make changes to your plugins and instantly see those changes in
your build.</p>
+<p>Grails Quickcasts, brought to you through a partnership between <a
href="https://objectcomputing.com/">Object Computing, Inc.</a> (OCI) and <a
href="https://dzone.com/">DZone</a>, provide bite-sized tutorials to help you
maximize your productivity with the Framework.</p>
+<iframe width="100%" height="560"
src="https://www.youtube-nocookie.com/embed/yNA0ce5fG9s"
frameborder="0"></iframe>]]></description><author>Graeme
Rocher</author><guid>2017-01-20-1</guid><pubDate>Fri, 20 Jan 2017 00:00:00
GMT</pubDate></item><item><title>Quickcast #6: Developing Grails® 3
Applications with IntelliJ
IDEA</title><link>https://grails.apache.org/blog/2017-01-20-4.html</link><description><![CDATA[</p>
+<p>Tags: <a href="https://grails.apache.org/blog/tag/quickcast.html"><span
class="hashtag">#quickcast</span></a></p>
+<p>Grails<sup>®</sup> 3 is a high-productivity framework for building web
applications for the JVM.</p>
+<p>IntelliJ IDEA is a high-productivity Integrated Development Environment
(IDE) for building a variety of application types. IDEA has always had great
support for building Grails applications and, in particular, has the best
support of any IDE for developing with Grails 3.</p>
+<p>In this 20-minute video, Grails framework co-founder, <a
href="https://objectcomputing.com/products/2gm-team#brown">Jeff Scott
Brown</a>, introduces several tips and tricks related to building Grails 3
applications in IDEA.</p>
+<p>Grails Quickcasts, brought to you through a partnership between <a
href="https://objectcomputing.com/">Object Computing, Inc.</a> (OCI) and <a
href="https://dzone.com/">DZone</a>, provide bite-sized tutorials to help you
maximize your productivity with the Framework.</p>
+<iframe width="100%" height="560"
src="https://www.youtube-nocookie.com/embed/XsCCsTRdezw"
frameborder="0"></iframe>]]></description><author>Jeff Scott
Brown</author><guid>2017-01-20-4</guid><pubDate>Fri, 20 Jan 2017 00:00:00
GMT</pubDate></item><item><title>G3 Summit 2016
Wrap-up!</title><link>https://grails.apache.org/blog/2016-12-14.html</link><description><![CDATA[</p>
<p><img src="2016-12-14-img01.jpg" alt="The OCI Grails team at G3 Summit 2016"
/></p>
<p>Last month, nearly the entire <a
href="https://objectcomputing.com/products/2gm-team">2GM (Groovy,
Grails<sup>®</sup> framework, and Micronaut) team</a> from [Object Computing,
Inc.] (https://objectcomputing.com/) (OCI) converged on Fort Lauderdale for the
inaugural edition of the G3 Summit, the conference for the Apache Groovy,
Grails framework, and Gradle Community. The event is organized by <a
href="https://www.nofluffjuststuff.com/home/main">No Fluff Just Stuff</a> and
is a fantas [...]
<p>OCI team members presented over 30 workshops and breakout sessions during
the event, in addition to socializing with attendees between sessions and after
hours. We’ve asked a few team members to share their experiences at the
conference. We hope you will join us next year!</p>
@@ -7458,7 +7458,13 @@ json {
<li>view_name.gson (Example: show.gson)</li>
</ul>
<p>The content type (defined by either the <code>ACCEPT</code> header or file
extension in the URI) is taken into account to allow different formats for the
same view.</p>
-<p>For more detail, see <a
href="https://grails.github.io/grails-views/latest/">the official
documentation</a>.</p>]]></description><author>Jeff Scott
Brown</author><guid>2016-04-13</guid><pubDate>Wed, 13 Apr 2016 00:00:00
GMT</pubDate></item><item><title>Quickcast #2: JSON
Views</title><link>https://grails.apache.org/blog/2016-04-01-2.html</link><description><![CDATA[</p>
+<p>For more detail, see <a
href="https://grails.github.io/grails-views/latest/">the official
documentation</a>.</p>]]></description><author>Jeff Scott
Brown</author><guid>2016-04-13</guid><pubDate>Wed, 13 Apr 2016 00:00:00
GMT</pubDate></item><item><title>Quickcast #1: Grails®
Interceptors</title><link>https://grails.apache.org/blog/2016-04-01-1.html</link><description><![CDATA[</p>
+<p>Tags: <a href="https://grails.apache.org/blog/tag/quickcast.html"><span
class="hashtag">#quickcast</span></a></p>
+<p>In this 17-minute video, the Grails<sup>®</sup> framework co-founder, <a
href="https://objectcomputing.com/products/2gm-team#brown">Jeff Scott
Brown</a>, talks Grails <a
href="https://en.wikipedia.org/wiki/Interceptor_pattern">interceptors</a>.</p>
+<p>(Yes, <code>create-interceptor</code> actually creates an interceptor.
Mind. Blown.)</p>
+<p>This tutorial assumes only basic familiarity with Groovy (which is pretty
darned expressive anyway) and the MVC concept (which you already know). It also
serves as an excellent introduction to the interceptor pattern in any language,
because Grails' behind-the-scenes legwork lets you focus on the logic of the
pattern.</p>
+<p>Grails Quickcasts, brought to you through a partnership between <a
href="https://objectcomputing.com/">Object Computing, Inc.</a> (OCI) and <a
href="https://dzone.com/">DZone</a>, provide bite-sized tutorials to help you
maximize your productivity with the Framework.</p>
+<iframe width="100%" height="560"
src="https://www.youtube-nocookie.com/embed/XnRNfDGkBVg"
frameborder="0"></iframe>]]></description><author>Jeff Scott
Brown</author><guid>2016-04-01-1</guid><pubDate>Fri, 01 Apr 2016 00:00:00
GMT</pubDate></item><item><title>Quickcast #2: JSON
Views</title><link>https://grails.apache.org/blog/2016-04-01-2.html</link><description><![CDATA[</p>
<p>Tags: <a href="https://grails.apache.org/blog/tag/quickcast.html"><span
class="hashtag">#quickcast</span></a> <a
href="https://grails.apache.org/blog/tag/json.html"><span
class="hashtag">#json</span></a></p>
<p>In a delightful and informative 15 minutes, the Grails<sup>®</sup>
framework co-founder, <a
href="https://objectcomputing.com/products/2gm-team#brown">Jeff Scott
Brown</a>, probes JSON views.</p>
<p>Beginning with a Grails 3.1.1 application created with a standard web
profile, Jeff demonstrates how to add a few custom domain classes.</p>
@@ -7467,13 +7473,7 @@ json {
<p>While the app is running in development mode, the JSON files can be
altered, and the effects of those changes can be seen real-time in the
application.</p>
<p>This Quickcast assumes basic knowledge of Grails, JSON, and REST APIs.</p>
<p>Grails Quickcasts, brought to you through a partnership between <a
href="https://objectcomputing.com/">Object Computing, Inc.</a> (OCI) and <a
href="https://dzone.com/">DZone</a>, provide bite-sized tutorials to help you
maximize your productivity with the Framework.</p>
-<iframe width="100%" height="560"
src="https://www.youtube-nocookie.com/embed/XnRNfDGkBVg"
frameborder="0"></iframe>]]></description><author>Jeff Scott
Brown</author><guid>2016-04-01-2</guid><pubDate>Fri, 01 Apr 2016 00:00:00
GMT</pubDate></item><item><title>Quickcast #1: Grails®
Interceptors</title><link>https://grails.apache.org/blog/2016-04-01-1.html</link><description><![CDATA[</p>
-<p>Tags: <a href="https://grails.apache.org/blog/tag/quickcast.html"><span
class="hashtag">#quickcast</span></a></p>
-<p>In this 17-minute video, the Grails<sup>®</sup> framework co-founder, <a
href="https://objectcomputing.com/products/2gm-team#brown">Jeff Scott
Brown</a>, talks Grails <a
href="https://en.wikipedia.org/wiki/Interceptor_pattern">interceptors</a>.</p>
-<p>(Yes, <code>create-interceptor</code> actually creates an interceptor.
Mind. Blown.)</p>
-<p>This tutorial assumes only basic familiarity with Groovy (which is pretty
darned expressive anyway) and the MVC concept (which you already know). It also
serves as an excellent introduction to the interceptor pattern in any language,
because Grails' behind-the-scenes legwork lets you focus on the logic of the
pattern.</p>
-<p>Grails Quickcasts, brought to you through a partnership between <a
href="https://objectcomputing.com/">Object Computing, Inc.</a> (OCI) and <a
href="https://dzone.com/">DZone</a>, provide bite-sized tutorials to help you
maximize your productivity with the Framework.</p>
-<iframe width="100%" height="560"
src="https://www.youtube-nocookie.com/embed/XnRNfDGkBVg"
frameborder="0"></iframe>]]></description><author>Jeff Scott
Brown</author><guid>2016-04-01-1</guid><pubDate>Fri, 01 Apr 2016 00:00:00
GMT</pubDate></item><item><title>Grails® 3
Interceptors</title><link>https://grails.apache.org/blog/2015-03-01.html</link><description><![CDATA[</p>
+<iframe width="100%" height="560"
src="https://www.youtube-nocookie.com/embed/XnRNfDGkBVg"
frameborder="0"></iframe>]]></description><author>Jeff Scott
Brown</author><guid>2016-04-01-2</guid><pubDate>Fri, 01 Apr 2016 00:00:00
GMT</pubDate></item><item><title>Grails® 3
Interceptors</title><link>https://grails.apache.org/blog/2015-03-01.html</link><description><![CDATA[</p>
<h2>Introduction</h2>
<p>Grails<sup>®</sup> 3 is a major step forward in the evolution of the
framework and re-evaluates many aspects of the framework that have evolved over
the years. One area of the framework that was re-evaluated is that related to
Grails filters.</p>
<p>Grails filters are a lot like servlet filters but are more simple and are
better integrated into the Grails runtime and its conventions. Grails filters
were a way to implement logic that might relate to any number of controllers
and were a powerful and flexible way to address many of those concerns. Grails
3 introduces the notion of interceptors as a better way to address many of the
types of concerns that previously would have been addressed with filters.</p>