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 abb107d5d32 Deploying to documentation branch - 18:48:05
abb107d5d32 is described below

commit abb107d5d3279fff899a3246cfb387c0d7a99801
Author: jdaugherty <[email protected]>
AuthorDate: Fri Aug 21 18:48:08 2026 +0000

    Deploying to documentation branch - 18:48:05
---
 .../developer-manual/gettingStarted.html           |  2 +-
 .../grails-data/developer-manual/introduction.html |  2 +-
 .../grails-data/developer-manual/stepByStep.html   |  2 +-
 .../grails-data/developer-manual/testing.html      |  2 +-
 .../developer-manual/understandingApi.html         |  2 +-
 .../understandingApi/datastoreBasics.html          |  2 +-
 .../understandingApi/gormApis.html                 |  2 +-
 .../understandingApi/gormEnhancer.html             |  2 +-
 .../understandingApi/implementingCrud.html         |  2 +-
 .../understandingApi/implementingQueries.html      |  2 +-
 .../understandingApi/secondaryIndexes.html         |  2 +-
 .../grails-data/whats-new-manual/index.html        |  2 +-
 docs/snapshot/guide/index.html                     |  2 +
 docs/snapshot/guide/single.html                    | 98 +++++++++++++++++++++
 docs/snapshot/guide/testing.html                   | 99 ++++++++++++++++++++++
 docs/snapshot/index.html                           |  2 +
 16 files changed, 213 insertions(+), 12 deletions(-)

diff --git a/docs/snapshot/grails-data/developer-manual/gettingStarted.html 
b/docs/snapshot/grails-data/developer-manual/gettingStarted.html
index 6c50c9e2710..f05ada6df74 100644
--- a/docs/snapshot/grails-data/developer-manual/gettingStarted.html
+++ b/docs/snapshot/grails-data/developer-manual/gettingStarted.html
@@ -523,7 +523,7 @@ cd grails-core</pre>
 <div id="footer">
 <div id="footer-text">
 Version 8.0.0-SNAPSHOT<br>
-Last updated 2026-08-21 13:34:32 UTC
+Last updated 2026-08-21 18:25:12 UTC
 </div>
 </div>
 </body>
diff --git a/docs/snapshot/grails-data/developer-manual/introduction.html 
b/docs/snapshot/grails-data/developer-manual/introduction.html
index c346e9e346e..ec5e4a76b4d 100644
--- a/docs/snapshot/grails-data/developer-manual/introduction.html
+++ b/docs/snapshot/grails-data/developer-manual/introduction.html
@@ -476,7 +476,7 @@ body.book #toc,body.book #preamble,body.book 
h1.sect0,body.book .sect1>h2{page-b
 <div id="footer">
 <div id="footer-text">
 Version 8.0.0-SNAPSHOT<br>
-Last updated 2026-08-21 13:34:32 UTC
+Last updated 2026-08-21 18:25:12 UTC
 </div>
 </div>
 </body>
diff --git a/docs/snapshot/grails-data/developer-manual/stepByStep.html 
b/docs/snapshot/grails-data/developer-manual/stepByStep.html
index d39184b76eb..975de3616d6 100644
--- a/docs/snapshot/grails-data/developer-manual/stepByStep.html
+++ b/docs/snapshot/grails-data/developer-manual/stepByStep.html
@@ -621,7 +621,7 @@ class XyzTestSuite {
 <div id="footer">
 <div id="footer-text">
 Version 8.0.0-SNAPSHOT<br>
-Last updated 2026-08-21 13:34:32 UTC
+Last updated 2026-08-21 18:25:12 UTC
 </div>
 </div>
 </body>
diff --git a/docs/snapshot/grails-data/developer-manual/testing.html 
b/docs/snapshot/grails-data/developer-manual/testing.html
index bafbfbdaded..c628ba973ba 100644
--- a/docs/snapshot/grails-data/developer-manual/testing.html
+++ b/docs/snapshot/grails-data/developer-manual/testing.html
@@ -511,7 +511,7 @@ class PagedResultSpec extends GormDatastoreSpec{
 <div id="footer">
 <div id="footer-text">
 Version 8.0.0-SNAPSHOT<br>
-Last updated 2026-08-21 13:34:32 UTC
+Last updated 2026-08-21 18:25:12 UTC
 </div>
 </div>
 </body>
diff --git a/docs/snapshot/grails-data/developer-manual/understandingApi.html 
b/docs/snapshot/grails-data/developer-manual/understandingApi.html
index 3a8e21e732c..b8158826dd2 100644
--- a/docs/snapshot/grails-data/developer-manual/understandingApi.html
+++ b/docs/snapshot/grails-data/developer-manual/understandingApi.html
@@ -454,7 +454,7 @@ body.book #toc,body.book #preamble,body.book 
h1.sect0,body.book .sect1>h2{page-b
 <div id="footer">
 <div id="footer-text">
 Version 8.0.0-SNAPSHOT<br>
-Last updated 2026-08-21 13:34:32 UTC
+Last updated 2026-08-21 18:25:12 UTC
 </div>
 </div>
 </body>
diff --git 
a/docs/snapshot/grails-data/developer-manual/understandingApi/datastoreBasics.html
 
b/docs/snapshot/grails-data/developer-manual/understandingApi/datastoreBasics.html
index b8163c1a8ef..5b61b02a7e6 100644
--- 
a/docs/snapshot/grails-data/developer-manual/understandingApi/datastoreBasics.html
+++ 
b/docs/snapshot/grails-data/developer-manual/understandingApi/datastoreBasics.html
@@ -561,7 +561,7 @@ protected Session createSession(PropertyResolver 
connDetails) {
 <div id="footer">
 <div id="footer-text">
 Version 8.0.0-SNAPSHOT<br>
-Last updated 2026-08-21 13:34:32 UTC
+Last updated 2026-08-21 18:25:12 UTC
 </div>
 </div>
 </body>
diff --git 
a/docs/snapshot/grails-data/developer-manual/understandingApi/gormApis.html 
b/docs/snapshot/grails-data/developer-manual/understandingApi/gormApis.html
index c1e1eaddd15..2cface1c5a5 100644
--- a/docs/snapshot/grails-data/developer-manual/understandingApi/gormApis.html
+++ b/docs/snapshot/grails-data/developer-manual/understandingApi/gormApis.html
@@ -496,7 +496,7 @@ class Neo4jEntityTraitProvider implements 
GormEntityTraitProvider {
 <div id="footer">
 <div id="footer-text">
 Version 8.0.0-SNAPSHOT<br>
-Last updated 2026-08-21 13:34:32 UTC
+Last updated 2026-08-21 18:25:12 UTC
 </div>
 </div>
 </body>
diff --git 
a/docs/snapshot/grails-data/developer-manual/understandingApi/gormEnhancer.html 
b/docs/snapshot/grails-data/developer-manual/understandingApi/gormEnhancer.html
index fffaeef1cd1..0f6abf51548 100644
--- 
a/docs/snapshot/grails-data/developer-manual/understandingApi/gormEnhancer.html
+++ 
b/docs/snapshot/grails-data/developer-manual/understandingApi/gormEnhancer.html
@@ -488,7 +488,7 @@ enhancer.enhance()</code></pre>
 <div id="footer">
 <div id="footer-text">
 Version 8.0.0-SNAPSHOT<br>
-Last updated 2026-08-21 13:34:32 UTC
+Last updated 2026-08-21 18:25:12 UTC
 </div>
 </div>
 </body>
diff --git 
a/docs/snapshot/grails-data/developer-manual/understandingApi/implementingCrud.html
 
b/docs/snapshot/grails-data/developer-manual/understandingApi/implementingCrud.html
index ffe5f5c6ca8..646297abbd1 100644
--- 
a/docs/snapshot/grails-data/developer-manual/understandingApi/implementingCrud.html
+++ 
b/docs/snapshot/grails-data/developer-manual/understandingApi/implementingCrud.html
@@ -673,7 +673,7 @@ protected void deleteEntry(String family, final Object key, 
final Object entry)
 <div id="footer">
 <div id="footer-text">
 Version 8.0.0-SNAPSHOT<br>
-Last updated 2026-08-21 13:34:32 UTC
+Last updated 2026-08-21 18:25:12 UTC
 </div>
 </div>
 </body>
diff --git 
a/docs/snapshot/grails-data/developer-manual/understandingApi/implementingQueries.html
 
b/docs/snapshot/grails-data/developer-manual/understandingApi/implementingQueries.html
index c336273f3ad..076f646bfd1 100644
--- 
a/docs/snapshot/grails-data/developer-manual/understandingApi/implementingQueries.html
+++ 
b/docs/snapshot/grails-data/developer-manual/understandingApi/implementingQueries.html
@@ -588,7 +588,7 @@ If, for instance, the underlying datastore does not support 
the calculation of a
 <div id="footer">
 <div id="footer-text">
 Version 8.0.0-SNAPSHOT<br>
-Last updated 2026-08-21 13:34:32 UTC
+Last updated 2026-08-21 18:25:12 UTC
 </div>
 </div>
 </body>
diff --git 
a/docs/snapshot/grails-data/developer-manual/understandingApi/secondaryIndexes.html
 
b/docs/snapshot/grails-data/developer-manual/understandingApi/secondaryIndexes.html
index 73028c30daf..455c8b4a654 100644
--- 
a/docs/snapshot/grails-data/developer-manual/understandingApi/secondaryIndexes.html
+++ 
b/docs/snapshot/grails-data/developer-manual/understandingApi/secondaryIndexes.html
@@ -526,7 +526,7 @@ If the underlying datastore supports secondary indexes then 
it is ok to just ret
 <div id="footer">
 <div id="footer-text">
 Version 8.0.0-SNAPSHOT<br>
-Last updated 2026-08-21 13:34:32 UTC
+Last updated 2026-08-21 18:25:12 UTC
 </div>
 </div>
 </body>
diff --git a/docs/snapshot/grails-data/whats-new-manual/index.html 
b/docs/snapshot/grails-data/whats-new-manual/index.html
index c10acf605c3..3da0d6d83ed 100644
--- a/docs/snapshot/grails-data/whats-new-manual/index.html
+++ b/docs/snapshot/grails-data/whats-new-manual/index.html
@@ -527,7 +527,7 @@ body.book #toc,body.book #preamble,body.book 
h1.sect0,body.book .sect1>h2{page-b
 <div id="footer">
 <div id="footer-text">
 Version 8.0.0-SNAPSHOT<br>
-Last updated 2026-08-21 13:34:32 UTC
+Last updated 2026-08-21 18:25:12 UTC
 </div>
 </div>
 </body>
diff --git a/docs/snapshot/guide/index.html b/docs/snapshot/guide/index.html
index 79cfce51d25..6f6a45d618e 100644
--- a/docs/snapshot/guide/index.html
+++ b/docs/snapshot/guide/index.html
@@ -652,6 +652,8 @@ Companies deploy assistants like this [](https://kapa.ai) 
on docs via [website w
                             
                             <div class="toc-item" style="margin-left:10px"><a 
href="../guide/testing.html#testPhases"><strong>15.6</strong><span>Custom Test 
Phases</span></a></div>
                             
+                            <div class="toc-item" style="margin-left:10px"><a 
href="../guide/testing.html#testingMongodb"><strong>15.7</strong><span>Testing 
GORM for MongoDB</span></a></div>
+                            
                             <div class="toc-item" style="margin-left:0px"><a 
href="../guide/bestPractices.html"><strong>16</strong><span>Building a 
Successful Application</span></a></div>
                             
                             <div class="toc-item" style="margin-left:10px"><a 
href="../guide/bestPractices.html#codeAnalysisGroovy"><strong>16.1</strong><span>Code
 Analysis and Styling for Groovy</span></a></div>
diff --git a/docs/snapshot/guide/single.html b/docs/snapshot/guide/single.html
index 936dc54ef84..1e8cd471d9c 100644
--- a/docs/snapshot/guide/single.html
+++ b/docs/snapshot/guide/single.html
@@ -652,6 +652,8 @@ Companies deploy assistants like this [](https://kapa.ai) 
on docs via [website w
                             
                             <div class="toc-item" style="margin-left:10px"><a 
href="#testPhases"><strong>15.6</strong><span>Custom Test 
Phases</span></a></div>
                             
+                            <div class="toc-item" style="margin-left:10px"><a 
href="#testingMongodb"><strong>15.7</strong><span>Testing GORM for 
MongoDB</span></a></div>
+                            
                             <div class="toc-item" style="margin-left:0px"><a 
href="#bestPractices"><strong>16</strong><span>Building a Successful 
Application</span></a></div>
                             
                             <div class="toc-item" style="margin-left:10px"><a 
href="#codeAnalysisGroovy"><strong>16.1</strong><span>Code Analysis and Styling 
for Groovy</span></a></div>
@@ -37789,6 +37791,102 @@ dependencies {
 </div>
 
 
+<h2 id="testingMongodb">15.7 Testing GORM for MongoDB</h2>
+
+<div class='contribute-btn'>
+    <button type='button' class='btn btn-default' 
onclick='window.location.href="https://github.com/apache/grails-core/edit/8.0.x/grails-doc/src/en/guide/testing/testingMongodb.adoc";'>
+        <i class='fa fa-pencil-square-o'></i> Improve this doc
+    </button>
+</div>
+
+
+<div class="paragraph">
+<p>The <code>grails-testing-support-mongodb</code> library provides 
Testcontainers-based MongoDB support for both unit and integration tests.</p>
+</div>
+<div class="paragraph">
+<p>When creating an application with <a href="https://start.grails.org";>Grails 
Forge</a>, select the <code>mongodb-testing-support</code> feature together 
with <code>gorm-mongodb</code> or <code>mongo-sync</code> to include this 
dependency automatically.</p>
+</div>
+<div class="sect1">
+<h2 id="_installation">Installation</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Add the following dependency to your <code>build.gradle</code>:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="CodeRay highlight"><code data-lang="groovy">testImplementation 
"org.apache.grails.testing:grails-testing-support-mongodb"</code></pre>
+</div>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+Docker must be available for Testcontainers to start a MongoDB container.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_unit_testing">Unit Testing</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Extend <code>org.apache.grails.testing.mongo.AutoStartedMongoSpec</code> in 
unit tests. A MongoDB Testcontainers instance is started automatically and 
injected into the specification.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="CodeRay highlight"><code data-lang="groovy"><span 
class="keyword">import</span> <span 
class="include">org.apache.grails.testing.mongo.AutoStartedMongoSpec</span>
+<span class="keyword">import</span> <span 
class="include">org.grails.datastore.mapping.mongo.MongoDatastore</span>
+<span class="keyword">import</span> <span 
class="include">spock.lang.Shared</span>
+
+<span class="type">class</span> <span class="class">BookSpec</span> <span 
class="directive">extends</span> AutoStartedMongoSpec {
+
+    <span class="annotation">@Shared</span>
+    MongoDatastore mongoDatastore
+
+    <span class="type">void</span> <span class="string"><span 
class="delimiter">&quot;</span><span class="content">test mongo 
connection</span><span class="delimiter">&quot;</span></span>() {
+        <span class="key">expect</span>:
+        mongoHost
+        mongoPort
+        dbContainer.running
+    }
+}</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>If a shared <code>MongoDatastore</code> field is declared and 
<code>shouldInitializeDatastore()</code> returns <code>true</code> (the 
default), the datastore is bootstrapped against domain classes in the packages 
returned by <code>getMongoPackages()</code> (defaults to the package of the 
specification).</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_integration_testing">Integration Testing</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>For integration tests, Spock global extensions start a single MongoDB 
container for the test run when MongoDB is not already listening on port 
<code>27017</code>. Connection details are exposed via system properties such 
as <code>grails.mongodb.url</code>, <code>grails.mongodb.host</code>, and 
<code>grails.mongodb.port</code>.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_mongodb_container_version">MongoDB Container Version</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The MongoDB image version defaults to <code>7.0.19</code>. Override it with 
the <code>mongodbContainerVersion</code> system property:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="CodeRay highlight"><code 
data-lang="groovy">tasks.withType(Test).configureEach {
+    systemProperty <span class="string"><span 
class="delimiter">&quot;</span><span 
class="content">mongodbContainerVersion</span><span 
class="delimiter">&quot;</span></span>, <span class="string"><span 
class="delimiter">&quot;</span><span class="content">7.0.25</span><span 
class="delimiter">&quot;</span></span>
+}</code></pre>
+</div>
+</div>
+</div>
+</div>
+
+
 <h1 id="bestPractices">16 Building a Successful Application</h1>
 
 <div class='contribute-btn'>
diff --git a/docs/snapshot/guide/testing.html b/docs/snapshot/guide/testing.html
index 3683db1195a..648151271c9 100644
--- a/docs/snapshot/guide/testing.html
+++ b/docs/snapshot/guide/testing.html
@@ -239,6 +239,9 @@ Companies deploy assistants like this [](https://kapa.ai) 
on docs via [website w
                     <div class="toc-item" style="margin-left:0px"><a 
href="#testPhases"><strong>15.6</strong><span>Custom Test Phases</span></a>
                     </div>
                     
+                    <div class="toc-item" style="margin-left:0px"><a 
href="#testingMongodb"><strong>15.7</strong><span>Testing GORM for 
MongoDB</span></a>
+                    </div>
+                    
                 </div>
                 
 
@@ -3514,6 +3517,102 @@ dependencies {
 </div>
 
 
+<h2 id="testingMongodb">15.7 Testing GORM for MongoDB</h2>
+
+<div class='contribute-btn'>
+    <button type='button' class='btn btn-default' 
onclick='window.location.href="https://github.com/apache/grails-core/edit/8.0.x/grails-doc/src/en/guide/testing/testingMongodb.adoc";'>
+        <i class='fa fa-pencil-square-o'></i> Improve this doc
+    </button>
+</div>
+
+
+<div class="paragraph">
+<p>The <code>grails-testing-support-mongodb</code> library provides 
Testcontainers-based MongoDB support for both unit and integration tests.</p>
+</div>
+<div class="paragraph">
+<p>When creating an application with <a href="https://start.grails.org";>Grails 
Forge</a>, select the <code>mongodb-testing-support</code> feature together 
with <code>gorm-mongodb</code> or <code>mongo-sync</code> to include this 
dependency automatically.</p>
+</div>
+<div class="sect1">
+<h2 id="_installation">Installation</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Add the following dependency to your <code>build.gradle</code>:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="CodeRay highlight"><code data-lang="groovy">testImplementation 
"org.apache.grails.testing:grails-testing-support-mongodb"</code></pre>
+</div>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+Docker must be available for Testcontainers to start a MongoDB container.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_unit_testing">Unit Testing</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Extend <code>org.apache.grails.testing.mongo.AutoStartedMongoSpec</code> in 
unit tests. A MongoDB Testcontainers instance is started automatically and 
injected into the specification.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="CodeRay highlight"><code data-lang="groovy"><span 
class="keyword">import</span> <span 
class="include">org.apache.grails.testing.mongo.AutoStartedMongoSpec</span>
+<span class="keyword">import</span> <span 
class="include">org.grails.datastore.mapping.mongo.MongoDatastore</span>
+<span class="keyword">import</span> <span 
class="include">spock.lang.Shared</span>
+
+<span class="type">class</span> <span class="class">BookSpec</span> <span 
class="directive">extends</span> AutoStartedMongoSpec {
+
+    <span class="annotation">@Shared</span>
+    MongoDatastore mongoDatastore
+
+    <span class="type">void</span> <span class="string"><span 
class="delimiter">&quot;</span><span class="content">test mongo 
connection</span><span class="delimiter">&quot;</span></span>() {
+        <span class="key">expect</span>:
+        mongoHost
+        mongoPort
+        dbContainer.running
+    }
+}</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>If a shared <code>MongoDatastore</code> field is declared and 
<code>shouldInitializeDatastore()</code> returns <code>true</code> (the 
default), the datastore is bootstrapped against domain classes in the packages 
returned by <code>getMongoPackages()</code> (defaults to the package of the 
specification).</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_integration_testing">Integration Testing</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>For integration tests, Spock global extensions start a single MongoDB 
container for the test run when MongoDB is not already listening on port 
<code>27017</code>. Connection details are exposed via system properties such 
as <code>grails.mongodb.url</code>, <code>grails.mongodb.host</code>, and 
<code>grails.mongodb.port</code>.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_mongodb_container_version">MongoDB Container Version</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The MongoDB image version defaults to <code>7.0.19</code>. Override it with 
the <code>mongodbContainerVersion</code> system property:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="CodeRay highlight"><code 
data-lang="groovy">tasks.withType(Test).configureEach {
+    systemProperty <span class="string"><span 
class="delimiter">&quot;</span><span 
class="content">mongodbContainerVersion</span><span 
class="delimiter">&quot;</span></span>, <span class="string"><span 
class="delimiter">&quot;</span><span class="content">7.0.25</span><span 
class="delimiter">&quot;</span></span>
+}</code></pre>
+</div>
+</div>
+</div>
+</div>
+
+
                 <div style="clear:both;margin-top:15px;"></div>
                 
                     <div class="toc-item prev-left"><a 
href="../guide/staticTypeCheckingAndCompilation.html">&lt;&lt; 
<strong>14</strong><span>Static Type Checking And Compilation</span></a></div>
diff --git a/docs/snapshot/index.html b/docs/snapshot/index.html
index 82e9a528a44..6ae95f73e85 100644
--- a/docs/snapshot/index.html
+++ b/docs/snapshot/index.html
@@ -652,6 +652,8 @@ Companies deploy assistants like this [](https://kapa.ai) 
on docs via [website w
                             
                             <div class="toc-item" style="margin-left:10px"><a 
href="./guide/testing.html#testPhases"><strong>15.6</strong><span>Custom Test 
Phases</span></a></div>
                             
+                            <div class="toc-item" style="margin-left:10px"><a 
href="./guide/testing.html#testingMongodb"><strong>15.7</strong><span>Testing 
GORM for MongoDB</span></a></div>
+                            
                             <div class="toc-item" style="margin-left:0px"><a 
href="./guide/bestPractices.html"><strong>16</strong><span>Building a 
Successful Application</span></a></div>
                             
                             <div class="toc-item" style="margin-left:10px"><a 
href="./guide/bestPractices.html#codeAnalysisGroovy"><strong>16.1</strong><span>Code
 Analysis and Styling for Groovy</span></a></div>

Reply via email to