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 44c528ba264 Updating apache/grails-website asf-site-production branch 
for Github Actions run:18414692143
44c528ba264 is described below

commit 44c528ba2649714cb5ad231c8bbc4a56d667439f
Author: jamesfredley <[email protected]>
AuthorDate: Fri Oct 10 18:20:56 2025 +0000

    Updating apache/grails-website asf-site-production branch for Github 
Actions run:18414692143
---
 blog/2015-03-01.html                      |  6 +--
 blog/2016-04-13.html                      |  2 +-
 blog/2023-07-25-introducing-grails-6.html |  2 +-
 blog/index.html                           | 28 +++++------
 blog/tag/quickcast.html                   | 16 +++----
 foundation/minutes.xml                    |  2 +-
 rss.xml                                   | 78 +++++++++++++++----------------
 7 files changed, 67 insertions(+), 67 deletions(-)

diff --git a/blog/2015-03-01.html b/blog/2015-03-01.html
index ebc25d04eec..dc9fb448570 100644
--- a/blog/2015-03-01.html
+++ b/blog/2015-03-01.html
@@ -147,7 +147,7 @@ class FirstInterceptorSpec extends Specification {
 }
 </code></pre>
 <h2>The Interceptor Trait</h2>
-<p>Grails 3 takes advantage of Groovy's powerful and flexible support for 
traits in many places. All interceptors are automatically made to implement the 
<a 
href="https://grails.apache.org/docs/3.0.x/api/grails/artefact/Interceptor.html";>grails.artefact.Interceptor</a>
 trait so all of the methods and properties defined by that trait and all of 
the methods and properties defined by traits which that trait extends are all 
available inside of an interceptor. This provides easy access to att [...]
+<p>Grails 3 takes advantage of Groovy's powerful and flexible support for 
traits in many places. All interceptors are automatically made to implement the 
<a 
href="https://grails.github.io/legacy-grails-doc/3.0.x/api/grails/artefact/Interceptor.html";>grails.artefact.Interceptor</a>
 trait so all of the methods and properties defined by that trait and all of 
the methods and properties defined by traits which that trait extends are all 
available inside of an interceptor. This provides easy a [...]
 <h2>Matching Requests</h2>
 <p>A convention is imposed which will automatically configure interceptors to 
match all requests to their corresponding controller. The implicit mapping from 
an interceptor to a controller is based on the artifact names. For example, by 
default the <code>PersonInterceptor</code> will match all requests to the 
<code>PersonController</code>.</p>
 <p>Interceptors often need to deviate from the convention and define which 
requests they should participate in using the <code>match</code>or 
<code>matchAll</code> method.</p>
@@ -189,7 +189,7 @@ class FirstInterceptor {
     // ...
 }
 </code></pre>
-<p>The <code>match</code> and <code>matchAll</code> methods in an intereceptor 
each return an instance of <a 
href="https://grails.apache.org/docs/3.0.x/api/grails/interceptors/Matcher.html";>grails.interceptors.Matcher</a>.
 Most of the methods in <code>Matcher</code> also return the 
<code>Matcher</code> which allows for method chaining as shown above with 
<code>matchAll().excludes(controller: 'auth')</code>.</p>
+<p>The <code>match</code> and <code>matchAll</code> methods in an intereceptor 
each return an instance of <a 
href="https://grails.github.io/grails-doc/3.0.x/api/grails/interceptors/Matcher.html";>grails.interceptors.Matcher</a>.
 Most of the methods in <code>Matcher</code> also return the 
<code>Matcher</code> which allows for method chaining as shown above with 
<code>matchAll().excludes(controller: 'auth')</code>.</p>
 <p>Care should be taken to narrow the group of requests that an interceptor is 
applied to. Keep in mind that whatever logic is contained in an interceptor is 
being engaged for all of the requests that the interceptor matches.</p>
 <h2>Interceptor Methods</h2>
 <p>There are 3 separate methods that an interceptor may define to participate 
in different parts of the request processing lifecycle. The <code>before</code> 
method is executed before the controller action is invoked. The 
<code>after</code> method is invoked after the controller action returns and 
before the view is rendered. The <code>afterView</code> method is invoked after 
the view is rendered. An interceptor may provide any combination of these 3 
call back methods and does not need t [...]
@@ -270,7 +270,7 @@ logger 'grails.app.controllers.demo.SimpleAuthInterceptor',
 <p>The framework offers flexibility around this such that if you would like to 
separate your interceptors from your controllers you can do that by moving the 
interceptors to a directory like <code>grails-app/interceptors/</code>. If the 
interceptor defined above were moved from 
<code>grails-app/controllers/demo/SimpleAuthInterceptor.groovy</code> to 
<code>grails-app/interceptors/demo/SimpleAuthInterceptor.groovy</code>, the 
logger name would be <code>grails.app.interceptors.demo.SimpleAu [...]
 <h2>Interceptors Are Spring Beans</h2>
 <p>All interceptors are configured as beans in the Spring application context 
and are configured to be autowired by name. This means that just like other 
Grails artifacts, an interceptor may define a property with a name that matches 
a bean name and that property will be initialized using standard Spring 
dependency injection.</p>
-<p>In addition to participating in dependency injection, because interceptors 
are Spring beans they participate in all of the standard Spring bean management 
handling. For example, if an interceptor wanted access to the application's 
configuration, the intereceptor class could implement the <a 
href="https://grails.apache.org/docs/3.0.x/api/grails/core/support/GrailsConfigurationAware.html";>grails.core.support.GrailsConfigurationAware</a>
 interface.</p>
+<p>In addition to participating in dependency injection, because interceptors 
are Spring beans they participate in all of the standard Spring bean management 
handling. For example, if an interceptor wanted access to the application's 
configuration, the intereceptor class could implement the <a 
href="https://grails.github.io/grails-doc/3.0.x/api/grails/core/support/GrailsConfigurationAware.html";>grails.core.support.GrailsConfigurationAware</a>
 interface.</p>
 <pre><code class="language-groovy">package demo
 
 import grails.config.Config
diff --git a/blog/2016-04-13.html b/blog/2016-04-13.html
index 49c32d82f15..3909fd38a99 100644
--- a/blog/2016-04-13.html
+++ b/blog/2016-04-13.html
@@ -138,7 +138,7 @@ 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.apache.org/docs/latest/guide/theWebLayer.html#gson";>the 
official documentation</a>.</p>
+<p>For more detail, see <a 
href="https://grails.github.io/grails-views/latest/";>the official 
documentation</a>.</p>
     <h2 class='space-above'>
       <span>You might also like ...</span>
     </h2>
diff --git a/blog/2023-07-25-introducing-grails-6.html 
b/blog/2023-07-25-introducing-grails-6.html
index ed218b2bc4a..5449c65a615 100644
--- a/blog/2023-07-25-introducing-grails-6.html
+++ b/blog/2023-07-25-introducing-grails-6.html
@@ -104,7 +104,7 @@
 <h2>Updates to Gradle 7.6:</h2>
 <p>Grails 6 now provides support for the latest Gradle version, 7.6.1, 
offering developers a more efficient and robust build automation tool. Gradle 
7.6.1 brings with it various improvements, enhanced performance, and additional 
features, further streamlining the development process and ensuring 
compatibility with the latest libraries and dependencies.</p>
 <h2>Introducing the New Grails Forge:</h2>
-<p><strong>Grails 6 not only embraces modern Java and the latest Spring and 
Spring Boot updates but also introduces the New Grails Forge UI, 
revolutionizing the web development experience for creating and managing Grails 
projects.</strong> With <a href="https://start.grails.org/";>the New Grails 
Forge UI</a>, developers can enjoy a modern and efficient user interface with 
simplified project creation, intuitive navigation, real-time feedback and 
validation, visual dependency management, en [...]
+<p><strong>Grails 6 not only embraces modern Java and the latest Spring and 
Spring Boot updates but also introduces the New Grails Forge UI, 
revolutionizing the web development experience for creating and managing Grails 
projects.</strong> With <a href="https://grails.github.io/grails-forge-ui/";>the 
New Grails Forge UI</a>, developers can enjoy a modern and efficient user 
interface with simplified project creation, intuitive navigation, real-time 
feedback and validation, visual dependenc [...]
 <h2>Enhanced Integration of the Micronaut framework with Grails:</h2>
 <p>The Grails framework has long provided integration with the Micronaut 
framework, fostering seamless collaboration between the two Frameworks. With 
Grails 6, we are proud to announce further improvements in this integration, 
enhancing the developer experience with each major release. Developers can now 
enjoy even better Micronaut integration, promoting code reuse and reducing 
redundancy between Grails and Micronaut components. For instance, developers 
can easily inject Micronaut beans  [...]
 <p>Another example of the improved Micronaut integration is the ability to 
utilize the Framework’s declarative client, allowing Grails applications to 
consume RESTful APIs with minimal boilerplate code. This streamlined approach 
enhances development efficiency and promotes maintainable, efficient 
communication between microservices.</p>
diff --git a/blog/index.html b/blog/index.html
index eda9e463548..d7a89f8b119 100644
--- a/blog/index.html
+++ b/blog/index.html
@@ -265,17 +265,17 @@
     <h2>Grails and the Recent Spring Framework RCE</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><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><div class="threecolumns">
+      <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-2.png)'>
   <a href='https://grails.apache.org/blog/2021-12-15-grails-five-one.html'>
@@ -662,27 +662,27 @@
   </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-4.html'>
+  <a href='https://grails.apache.org/blog/2017-01-20-1.html'>
     <h3>January 20, 2017</h3>
-    <h2>Quickcast #6: Developing Grails® 3 Applicatio...</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-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 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-3.html'>
     <h3>January 20, 2017</h3>
-    <h2>Quickcast #3: Multi-Project Builds</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-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><div class="threecolumns">
       <div class='column'><article class='blogcard' style='background-image: 
url(https://grails.apache.org/images/2016-12-14.jpg)'>
diff --git a/blog/tag/quickcast.html b/blog/tag/quickcast.html
index 3abc45d6d13..963a8340984 100644
--- a/blog/tag/quickcast.html
+++ b/blog/tag/quickcast.html
@@ -127,27 +127,27 @@
   </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-1.html'>
     <h3>January 20, 2017</h3>
-    <h2>Quickcast #6: Developing Grails® 3 Applicatio...</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 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-3.html'>
     <h3>January 20, 2017</h3>
-    <h2>Quickcast #3: Multi-Project Builds</h2>
+    <h2>Quickcast #5: Retrieving Runtime Config Value...</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)'>
diff --git a/foundation/minutes.xml b/foundation/minutes.xml
index 1d41fa63378..10c997db6df 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>Fri, 10 Oct 2025 16:13:10 
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>Fri, 10 Oct 2025 18:16:44 
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 548752b284a..162084f882a 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>Fri, 10 Oct 2025 16:13:13 
GMT</pubDate><item><title>Apache Grails Graduates to Top-Level Project at The 
Apache Software Foundation</title><link>https://grails.apache.or [...]
+<?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>Fri, 10 Oct 2025 18:16:47 
GMT</pubDate><item><title>Apache Grails Graduates to Top-Level Project at The 
Apache Software Foundation</title><link>https://grails.apache.or [...]
 <p>The Apache Grails team is excited to announce that Apache Grails has 
officially graduated from incubation under the Apache Groovy project to become 
a Top-Level Project (TLP) at The Apache Software Foundation (ASF). This 
achievement reflects the dedication of our community and underscores the 
strength of the ASF's open source ecosystems.</p>
 <p><a 
href="https://news.apache.org/foundation/entry/the-apache-software-foundation-announces-new-top-level-projects-2";>Apache
 Software Foundation Press Release</a></p>
 <p>Apache Grails is a powerful Apache Groovy-based web application framework 
for the Java Virtual Machine (JVM) built on top of Spring Boot. It enables 
rapid application development through convention-over-configuration and Don't 
Repeat Yourself (DRY) principles, making it ideal for productively building 
full-stack applications with simplicity. Similar to Ruby on Rails, Grails has a 
nearly 20-year history of evolution and refinement, built on Java Enterprise 
foundations like Spring Frame [...]
@@ -2529,21 +2529,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>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&amp;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 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>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>Grails Framework 5.1 
Released</title><link>https://grails.apache.org/blog/2021-12-15-grails-five-one.html</link><description><![CDATA[</p>
+<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>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&amp;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>
 <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>
@@ -3134,7 +3134,7 @@ apply plugin: 
&quot;io.github.gradle-nexus.publish-plugin&quot;
     }
     &quot;documentationUrl&quot;: 
&quot;https://puneetbehl.github.io/myplugin/&quot;,
     &quot;mavenMetadataUrl&quot;: 
&quot;https://repo1.maven.org/maven2/com/github/puneetbehl/myplugin/maven-metadata.xml&quot;,
-}
+} 
 </code></pre>
 </li>
 <li>
@@ -3797,7 +3797,7 @@ import spock.lang.Specification
 
 class SpySpec extends Specification implements 
ControllerUnitTest&lt;FooController&gt; {
 
-    void &quot;Spy FooService&quot;() {
+    void &quot;Spy FooService&quot;() { 
         given: &quot;the collaborating service is a Spy&quot;
         def fooService = Spy(FooService)
 
@@ -3817,7 +3817,7 @@ class SpySpec extends Specification implements 
ControllerUnitTest&lt;FooControll
 </code></pre>
 <p>The above test creates a Spy on <code>FooService</code> by doing the 
following:</p>
 <pre><code class="language-groovy">def fooService = Spy(FooService)
-{% endhighlight %}
+{% endhighlight %} 
 
 The following code demonstrates how the Spy allows us to verify 
`FooService.doSomething(name)` is called just once and the parameter passed to 
it is equal to a String value of &quot;Sally&quot;:
 Moreover, it changes the method implementation to return a different String.
@@ -3920,7 +3920,7 @@ class AgeService {
 <h2>Use Mockito to Verify Log Events</h2>
 <p>The <a href="https://site.mockito.org/";>Mockito</a> Library can be used to 
verify logs take place. With Mockito, we can create a mock 
<code>Appender</code> class, attach it to the logger, and then use an 
<code>ArgumentCaptor</code> to capture the invocations sent to the logger.</p>
 <p>build.gradle</p>
-<pre><code class="language-groovy">dependencies {
+<pre><code class="language-groovy">dependencies { 
     ...
     testCompile &quot;org.mockito:mockito-core:2.+&quot;
 }
@@ -3952,7 +3952,7 @@ class AgeService {
 <p><a href="https://projects.lidalia.org.uk/slf4j-test/";>Slf4j Test</a> is a 
test implementation of Slf4j that stores log messages in memory and provides 
messages for retrieving them. This works nicely to substitute for the real 
implementation in the test environment of Grails apps.</p>
 <p>In <code>build.gradle</code>, we first need to depend on the jar, and then 
exclude the real implementation from the test environment. It is quite simple 
to check the logging events.</p>
 <p>build.gradle</p>
-<pre><code class="language-groovy">dependencies {
+<pre><code class="language-groovy">dependencies { 
     ...
     testCompile 'uk.org.lidalia:slf4j-test:1.1.0'
 }
@@ -4279,7 +4279,7 @@ class BookDataServiceSpec extends Specification {
         then:
         Book.count() == old(Book.count()) + 1
 
-        cleanup:
+        cleanup: 
         bookDataService.deleteBook(book.id)
     }
 }
@@ -4789,24 +4789,24 @@ class HelloController {
 <pre><code class="language-groovy">buildscript {
     dependencies {
         //Change to &quot;angular-scaffolding:2.0.0.RC1&quot;
-        classpath org.grails.plugins:angular2-scaffolding:1.0.0.RC1
+        classpath org.grails.plugins:angular2-scaffolding:1.0.0.RC1 
     }
 }
 dependencies {
     //Change to &quot;angular-scaffolding:2.0.0.RC1&quot;
-    compile org.grails.plugins:angular2-scaffolding:1.0.0.RC1
+    compile org.grails.plugins:angular2-scaffolding:1.0.0.RC1  
 }
 </code></pre>
 <h3><a 
href="https://github.com/grails-plugins/grails-angularjs-scaffolding";>Angular 
1.x</a></h3>
 <pre><code class="language-groovy">buildscript {
     dependencies {
         //Change to &quot;angularjs-scaffolding:1.0.3&quot;
-        classpath org.grails.plugins:angular-scaffolding:1.0.1
+        classpath org.grails.plugins:angular-scaffolding:1.0.1  
     }
 }
 dependencies {
     //Change to &quot;angularjs-scaffolding:1.0.3&quot;
-    compile org.grails.plugins:angular-scaffolding:1.0.1
+    compile org.grails.plugins:angular-scaffolding:1.0.1  
 }
 </code></pre>
 <h2>Conclusion</h2>
@@ -4914,19 +4914,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 #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>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>
-<p>For this Quickcast, you’ll need no more than a basic understanding of the 
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/Qw5hjwT9EOc"; 
frameborder="0"></iframe>]]></description><author>Jeff Scott 
Brown</author><guid>2017-01-20-3</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>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 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>
@@ -4936,7 +4924,19 @@ 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 #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>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>
+<p>For this Quickcast, you’ll need no more than a basic understanding of the 
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/Qw5hjwT9EOc"; 
frameborder="0"></iframe>]]></description><author>Jeff Scott 
Brown</author><guid>2017-01-20-3</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>
@@ -5194,7 +5194,7 @@ drwxr-xr-x  10 zak  staff    340 Nov  1 13:10 src
     production:
         dataSource:
             jndiName: &quot;java:jboss/datasources/MyDataSource&quot;
-            dbCreate: none
+            dbCreate: none   
 </code></pre>
 <p>Note that you typically do not want the Grails tooling to create the schema 
for you so we set <code>dbCreate</code> to <code>none</code>. You can then run 
<code>grails schema-export</code> to generate a <code>build/ddl.sql</code> file 
that you can use to create the database in your production environment.</p>
 <p>On the JBoss side if you are using standalone deployment, you need to 
modify the <code>standalone/configuration/standalone.xml</code> file to 
configure your JNDI datasource. For example for MySQL adding the following 
section within the <code>&lt;datasources&gt;</code> block will do:</p>
@@ -5406,7 +5406,7 @@ grailsPublish {
     desc = &quot;Full plugin description&quot;
     developers = [johndoe:&quot;John Doe&quot;]
     portalUser = &quot;&quot;
-    portalPassword = &quot;&quot;
+    portalPassword = &quot;&quot;    
 }
 </code></pre>
 <p>As can be seen, some values are not filled in, like credentials and 
<code>githubSlug</code>. Let us add those values in a way where credentials are 
not visible in the public GitHub repository.</p>
@@ -7099,7 +7099,7 @@ class SkillsTestController {
 <p>We had <a 
href="https://grails.io/post/142674392718/deploying-grails-3-to-wildfly-10";>previously</a>
 described how to deploy Grails<sup>®</sup> 3.1 applications to WildFly 10, 
which is where all of the &quot;cutting edge&quot; work happens in the JBoss 
world.</p>
 <p>The process to deploy Grails 3.1 applications to JBoss 6.4 EAP is largely 
similar, with some minor configuration differences.</p>
 <p>Firstly, you have to configure your dependencies in 
<code>build.gradle</code> correctly by marking Tomcat as a provided dependency 
and including JAXB as a runtime dependency:</p>
-<pre><code class="language-groovy">provided 
&quot;org.springframework.boot:spring-boot-starter-tomcat&quot;
+<pre><code class="language-groovy">provided 
&quot;org.springframework.boot:spring-boot-starter-tomcat&quot;    
 runtime 'javax.xml.bind:jaxb-api:2.2.12'
 </code></pre>
 <p>Next you need to create a 
<code>src/main/webapp/WEB-INF/jboss-deployment-structure.xml</code> file with 
the following contents:</p>
@@ -7134,11 +7134,11 @@ runtime 'javax.xml.bind:jaxb-api:2.2.12'
 <p>Luckily Gradle makes this fairly easy to control. Using the following 
snippet you can enforce a particular GORM version within your 
<code>build.gradle</code>:</p>
 <pre><code class="language-groovy">configurations.all {
     resolutionStrategy.eachDependency { DependencyResolveDetails details -&gt;
-        if (details.requested.group == 'org.grails'
+        if (details.requested.group == 'org.grails' 
         &amp;&amp; details.requested.name.startsWith('grails-datastore')) {
             details.useVersion(&quot;5.0.5.RELEASE&quot;)
         }
-    }
+    }        
 }
 </code></pre>
 <p>In this example I’m forcing Gradle to resolve the 
<code>5.0.5.RELEASE</code> version of GORM using the Gradle 
resolutionStrategy.</p>]]></description><author>Graeme 
Rocher</author><guid>2016-04-27</guid><pubDate>Wed, 27 Apr 2016 00:00:00 
GMT</pubDate></item><item><title>JSON 
Views</title><link>https://grails.apache.org/blog/2016-04-13.html</link><description><![CDATA[</p>


Reply via email to