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 fda01f6b3a8 Updating apache/grails-website asf-site-production branch
for Github Actions run:21364806034
fda01f6b3a8 is described below
commit fda01f6b3a8bb91d16d264bb42bbee248412cd99
Author: jamesfredley <[email protected]>
AuthorDate: Mon Jan 26 16:18:39 2026 +0000
Updating apache/grails-website asf-site-production branch for Github
Actions run:21364806034
---
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 | 32 ++++++++++++++--------------
blog/tag/quickcast.html | 32 ++++++++++++++--------------
foundation/minutes.xml | 2 +-
rss.xml | 56 ++++++++++++++++++++++++-------------------------
14 files changed, 101 insertions(+), 101 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 1cb3bdf34ed..27d39a2a319 100644
--- a/blog/index.html
+++ b/blog/index.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-2.html'>
+ <a href='https://grails.apache.org/blog/2017-01-20-1.html'>
<h3>January 20, 2017</h3>
- <h2>Quickcast #4: Angular Scaffolding</h2>
+ <h2>Quickcast #3: Multi-Project Builds</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-2.html'>
<h3>January 20, 2017</h3>
- <h2>Quickcast #5: Retrieving Runtime Config Value...</h2>
+ <h2>Quickcast #4: Angular Scaffolding</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-1.html'>
+ <a href='https://grails.apache.org/blog/2017-01-20-4.html'>
<h3>January 20, 2017</h3>
- <h2>Quickcast #3: Multi-Project Builds</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 5844c477744..56b0d3abe9f 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-2.html'>
+ <a href='https://grails.apache.org/blog/2017-01-20-1.html'>
<h3>January 20, 2017</h3>
- <h2>Quickcast #4: Angular Scaffolding</h2>
+ <h2>Quickcast #3: Multi-Project Builds</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-2.html'>
<h3>January 20, 2017</h3>
- <h2>Quickcast #5: Retrieving Runtime Config Value...</h2>
+ <h2>Quickcast #4: Angular Scaffolding</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-1.html'>
+ <a href='https://grails.apache.org/blog/2017-01-20-4.html'>
<h3>January 20, 2017</h3>
- <h2>Quickcast #3: Multi-Project Builds</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/foundation/minutes.xml b/foundation/minutes.xml
index 0b1a1b00234..69b2ba0fcbf 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>Mon, 26 Jan 2026 14:14:34
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>Mon, 26 Jan 2026 16:13:13
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/rss.xml b/rss.xml
index 47d991beac0..c5ab74f40cc 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>Mon, 26 Jan 2026 14:14:37
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>Mon, 26 Jan 2026 16:13:15
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>
@@ -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 #4: Angular
Scaffolding</title><link>https://grails.apache.org/blog/2017-01-20-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/rest.html"><span
class="hashtag">#rest</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#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>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 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>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/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 #4: Angular
Scaffolding</title><link>https://grails.apache.org/blog/2017-01-20-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/rest.html"><span
class="hashtag">#rest</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#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>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>