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 758a6ff0ffe Deploying to documentation branch - 04:29:32
758a6ff0ffe is described below
commit 758a6ff0ffec5ce9e4a07e6d4cb46eed0547efee
Author: jdaugherty <[email protected]>
AuthorDate: Sat Feb 21 04:29:35 2026 +0000
Deploying to documentation branch - 04:29:32
---
docs/snapshot/api/index-all.html | 3 +++
.../injection/ApplicationClassInjector.html | 24 ++++++++++++++++++++++
.../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/conf.html | 19 ++++++++++++++++-
.../guide/pages/automaticDatabaseMigration.html | 19 ++++++++++++++++-
docs/snapshot/guide/pages/dataSource.html | 19 ++++++++++++++++-
docs/snapshot/guide/single.html | 19 ++++++++++++++++-
18 files changed, 111 insertions(+), 16 deletions(-)
diff --git a/docs/snapshot/api/index-all.html b/docs/snapshot/api/index-all.html
index 6cd90304502..28462206cb9 100644
--- a/docs/snapshot/api/index-all.html
+++ b/docs/snapshot/api/index-all.html
@@ -5646,6 +5646,9 @@ if (location.href.indexOf('is-external=true') == -1) {
</dt><dd> <div class="block">A closure used for conditioning the method
caching.</div></dd>
<dt><span class="strong"><a
href="grails/plugin/cache/CacheEvict.html#condition" title="Field in
CacheEvict">condition</a></span> - Field in <a
href="grails/plugin/cache/CacheEvict.html">CacheEvict</a>
</dt><dd> <div class="block">A closure used for conditioning the method
caching.</div></dd>
+<dt><span class="strong"><a
href="org/grails/compiler/injection/ApplicationClassInjector.html#CONDITIONAL_EXCLUSIONS"
title="Property in ApplicationClassInjector">CONDITIONAL_EXCLUSIONS</a></span>
- Property in <a
href="org/grails/compiler/injection/ApplicationClassInjector.html">ApplicationClassInjector</a>
+</dt><dd> <div class="block">Auto-configuration classes that are conditionally
excluded when
+ a specific plugin is detected on the classpath. </div></dd>
<dt><span class="strong"><a href="grails/config/Config.html" title="Interface
in grails.config">Config</a></span> - Interface in <a
href="./grails/config/package-summary.html">grails.config</a>
</dt><dd><div class="block">Interface to application configuration</div></dd>
<dt><span class="strong"><a
href="org/grails/core/AbstractGrailsApplication.html#config" title="Field in
AbstractGrailsApplication">config</a></span> - Field in <a
href="org/grails/core/AbstractGrailsApplication.html">AbstractGrailsApplication</a>
diff --git
a/docs/snapshot/api/org/grails/compiler/injection/ApplicationClassInjector.html
b/docs/snapshot/api/org/grails/compiler/injection/ApplicationClassInjector.html
index 100709ecab5..3ba1fc6c346 100644
---
a/docs/snapshot/api/org/grails/compiler/injection/ApplicationClassInjector.html
+++
b/docs/snapshot/api/org/grails/compiler/injection/ApplicationClassInjector.html
@@ -173,6 +173,12 @@ implements <a
href='../../../../grails/compiler/ast/GrailsArtefactClassInjector.
</tr>
<tr class="altColor">
+ <td
class="colFirst"><code><strong>static java.util.List<java.util.Map<java.lang.String,
java.lang.String>></strong></code> </td>
+ <td class="colLast"><code><a
href="#CONDITIONAL_EXCLUSIONS">CONDITIONAL_EXCLUSIONS</a></code><br>Auto-configuration
classes that are conditionally excluded when
+ a specific plugin is detected on the classpath. </td>
+ </tr>
+
+ <tr class="rowColor">
<td class="colFirst"><code><strong><a
href='../../../../org/grails/core/artefact/ApplicationArtefactHandler.html'>ApplicationArtefactHandler</a></strong></code> </td>
<td class="colLast"><code><a
href="#applicationArtefactHandler">applicationArtefactHandler</a></code><br></td>
</tr>
@@ -324,6 +330,24 @@ implements <a
href='../../../../grails/compiler/ast/GrailsArtefactClassInjector.
</a>
<h3>Property Detail</h3>
+ <a name="CONDITIONAL_EXCLUSIONS"><!-- --></a>
+ <ul class="blockListLast">
+ <li class="blockList">
+
<h4>static final java.util.List<java.util.Map<java.lang.String,
java.lang.String>> <strong>CONDITIONAL_EXCLUSIONS</strong></h4>
+ <p> Auto-configuration classes that are
conditionally excluded when
+ a specific plugin is detected on the classpath. Each entry maps a
+ plugin class (checked via ClassUtils#isPresent#isPresent) to the
+ auto-configuration class name to exclude, with an optional system
+ property that can disable the exclusion.
+
+ <p>The system property defaults to <CODE>"true"</CODE> (exclusion enabled).
+ Set it to <CODE>"false"</CODE> in <CODE>gradle.properties</CODE> to opt
out:</p>
+ <pre>
+ systemProp.grails.autoconfigure.exclude.liquibase=false
+ </pre></p>
+ </li>
+ </ul>
+
<a name="applicationArtefactHandler"><!-- --></a>
<ul class="blockListLast">
<li class="blockList">
diff --git a/docs/snapshot/grails-data/developer-manual/gettingStarted.html
b/docs/snapshot/grails-data/developer-manual/gettingStarted.html
index bd110545ab7..751ae0c80e4 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 7.0.8-SNAPSHOT<br>
-Last updated 2026-02-20 17:52:00 UTC
+Last updated 2026-02-21 04:17:22 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 5dac16339cb..be287920418 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 7.0.8-SNAPSHOT<br>
-Last updated 2026-02-20 17:52:00 UTC
+Last updated 2026-02-21 04:17:22 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 38037a2cab8..b0d196ee211 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 7.0.8-SNAPSHOT<br>
-Last updated 2026-02-20 17:52:00 UTC
+Last updated 2026-02-21 04:17:22 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 a53582ba9ac..f075eb91fdc 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 7.0.8-SNAPSHOT<br>
-Last updated 2026-02-20 17:52:00 UTC
+Last updated 2026-02-21 04:17:22 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 79d39cd649a..fd7969f21e0 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 7.0.8-SNAPSHOT<br>
-Last updated 2026-02-20 17:52:00 UTC
+Last updated 2026-02-21 04:17:22 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 b7ce42190e3..10134514c16 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 7.0.8-SNAPSHOT<br>
-Last updated 2026-02-20 17:52:00 UTC
+Last updated 2026-02-21 04:17:22 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 44d2571c47e..16e419e0d8d 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 7.0.8-SNAPSHOT<br>
-Last updated 2026-02-20 17:52:00 UTC
+Last updated 2026-02-21 04:17:22 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 ce05de2a9c8..c28d4c40d5f 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 7.0.8-SNAPSHOT<br>
-Last updated 2026-02-20 17:52:00 UTC
+Last updated 2026-02-21 04:17:22 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 0160c4fb4af..efb3d360fad 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 7.0.8-SNAPSHOT<br>
-Last updated 2026-02-20 17:52:00 UTC
+Last updated 2026-02-21 04:17:22 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 be28c637dce..f30804599ec 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 7.0.8-SNAPSHOT<br>
-Last updated 2026-02-20 17:52:00 UTC
+Last updated 2026-02-21 04:17:22 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 8437a508fd3..a10c7a71abe 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 7.0.8-SNAPSHOT<br>
-Last updated 2026-02-20 17:52:00 UTC
+Last updated 2026-02-21 04:17:22 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 47ccdd9d8ed..4c50d67e290 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 7.0.8-SNAPSHOT<br>
-Last updated 2026-02-20 17:52:00 UTC
+Last updated 2026-02-21 04:17:22 UTC
</div>
</div>
</body>
diff --git a/docs/snapshot/guide/conf.html b/docs/snapshot/guide/conf.html
index 52590fb89d9..b1ab58b1f22 100644
--- a/docs/snapshot/guide/conf.html
+++ b/docs/snapshot/guide/conf.html
@@ -1704,7 +1704,7 @@ environments {
<p>It’s tempting to switch to <code>update</code> so you retain existing
data and only update the schema when your code changes, but Hibernate’s
update support is very conservative. It won’t make any changes that could
result in data loss, and doesn’t detect renamed columns or tables, so
you’ll be left with the old one and will also have the new one.</p>
</div>
<div class="paragraph">
-<p>Grails supports migrations with Liquibase plugin.</p>
+<p>Grails supports migrations with the Liquibase-based Database Migration
plugin.</p>
</div>
<div class="ulist">
<ul>
@@ -1713,6 +1713,23 @@ environments {
</li>
</ul>
</div>
+<div class="sect3">
+<h4 id="_automatic_liquibaseautoconfiguration_exclusion">Automatic
LiquibaseAutoConfiguration Exclusion</h4>
+<div class="paragraph">
+<p>When the Database Migration plugin is on the classpath, Grails
automatically excludes Spring Boot’s
<code>LiquibaseAutoConfiguration</code> to prevent conflicts. The plugin
manages Liquibase through its own lifecycle, and Spring Boot’s
auto-configuration would create duplicate <code>SpringLiquibase</code> beans
that cause lock contention and startup failures.</p>
+</div>
+<div class="paragraph">
+<p>This exclusion is applied at compile time via the
<code>@EnableAutoConfiguration(excludeName=…​)</code> annotation on
your <code>Application</code> class. You no longer need to manually add
<code>spring.liquibase.enabled: false</code> to your
<code>application.yml</code>.</p>
+</div>
+<div class="paragraph">
+<p>To disable the automatic exclusion, add the following to your
project’s <code>gradle.properties</code>:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="CodeRay highlight"><code
data-lang="properties">systemProp.grails.autoconfigure.exclude.liquibase=false</code></pre>
+</div>
+</div>
+</div>
<a name="3.3.4 Transaction-aware DataSource Proxy"><!-- Legacy link --></a>
<h2 id="transactionAwareDataSourceProxy">4.4.3 Transaction-aware DataSource
Proxy</h2>
diff --git a/docs/snapshot/guide/pages/automaticDatabaseMigration.html
b/docs/snapshot/guide/pages/automaticDatabaseMigration.html
index b1ef7657e53..d2101b39fa7 100644
--- a/docs/snapshot/guide/pages/automaticDatabaseMigration.html
+++ b/docs/snapshot/guide/pages/automaticDatabaseMigration.html
@@ -217,7 +217,7 @@ Companies deploy assistants like this [](https://kapa.ai)
on docs via [website w
<p>It’s tempting to switch to <code>update</code> so you retain existing
data and only update the schema when your code changes, but Hibernate’s
update support is very conservative. It won’t make any changes that could
result in data loss, and doesn’t detect renamed columns or tables, so
you’ll be left with the old one and will also have the new one.</p>
</div>
<div class="paragraph">
-<p>Grails supports migrations with Liquibase plugin.</p>
+<p>Grails supports migrations with the Liquibase-based Database Migration
plugin.</p>
</div>
<div class="ulist">
<ul>
@@ -225,6 +225,23 @@ Companies deploy assistants like this [](https://kapa.ai)
on docs via [website w
<p><a href="../grails-data/hibernate5/manual/#databaseMigration">Database
Migration</a></p>
</li>
</ul>
+</div>
+<div class="sect3">
+<h4 id="_automatic_liquibaseautoconfiguration_exclusion">Automatic
LiquibaseAutoConfiguration Exclusion</h4>
+<div class="paragraph">
+<p>When the Database Migration plugin is on the classpath, Grails
automatically excludes Spring Boot’s
<code>LiquibaseAutoConfiguration</code> to prevent conflicts. The plugin
manages Liquibase through its own lifecycle, and Spring Boot’s
auto-configuration would create duplicate <code>SpringLiquibase</code> beans
that cause lock contention and startup failures.</p>
+</div>
+<div class="paragraph">
+<p>This exclusion is applied at compile time via the
<code>@EnableAutoConfiguration(excludeName=…​)</code> annotation on
your <code>Application</code> class. You no longer need to manually add
<code>spring.liquibase.enabled: false</code> to your
<code>application.yml</code>.</p>
+</div>
+<div class="paragraph">
+<p>To disable the automatic exclusion, add the following to your
project’s <code>gradle.properties</code>:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="CodeRay highlight"><code
data-lang="properties">systemProp.grails.autoconfigure.exclude.liquibase=false</code></pre>
+</div>
+</div>
</div>
diff --git a/docs/snapshot/guide/pages/dataSource.html
b/docs/snapshot/guide/pages/dataSource.html
index e920172bf17..b80617e2c14 100644
--- a/docs/snapshot/guide/pages/dataSource.html
+++ b/docs/snapshot/guide/pages/dataSource.html
@@ -516,7 +516,7 @@ environments {
<p>It’s tempting to switch to <code>update</code> so you retain existing
data and only update the schema when your code changes, but Hibernate’s
update support is very conservative. It won’t make any changes that could
result in data loss, and doesn’t detect renamed columns or tables, so
you’ll be left with the old one and will also have the new one.</p>
</div>
<div class="paragraph">
-<p>Grails supports migrations with Liquibase plugin.</p>
+<p>Grails supports migrations with the Liquibase-based Database Migration
plugin.</p>
</div>
<div class="ulist">
<ul>
@@ -525,6 +525,23 @@ environments {
</li>
</ul>
</div>
+<div class="sect3">
+<h4 id="_automatic_liquibaseautoconfiguration_exclusion">Automatic
LiquibaseAutoConfiguration Exclusion</h4>
+<div class="paragraph">
+<p>When the Database Migration plugin is on the classpath, Grails
automatically excludes Spring Boot’s
<code>LiquibaseAutoConfiguration</code> to prevent conflicts. The plugin
manages Liquibase through its own lifecycle, and Spring Boot’s
auto-configuration would create duplicate <code>SpringLiquibase</code> beans
that cause lock contention and startup failures.</p>
+</div>
+<div class="paragraph">
+<p>This exclusion is applied at compile time via the
<code>@EnableAutoConfiguration(excludeName=…​)</code> annotation on
your <code>Application</code> class. You no longer need to manually add
<code>spring.liquibase.enabled: false</code> to your
<code>application.yml</code>.</p>
+</div>
+<div class="paragraph">
+<p>To disable the automatic exclusion, add the following to your
project’s <code>gradle.properties</code>:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="CodeRay highlight"><code
data-lang="properties">systemProp.grails.autoconfigure.exclude.liquibase=false</code></pre>
+</div>
+</div>
+</div>
<a name="3.3.4 Transaction-aware DataSource Proxy"><!-- Legacy link --></a>
<h2 id="transactionAwareDataSourceProxy">4.4.3 Transaction-aware DataSource
Proxy</h2>
diff --git a/docs/snapshot/guide/single.html b/docs/snapshot/guide/single.html
index 489529a5e88..b78f82c768f 100644
--- a/docs/snapshot/guide/single.html
+++ b/docs/snapshot/guide/single.html
@@ -6381,7 +6381,7 @@ environments {
<p>It’s tempting to switch to <code>update</code> so you retain existing
data and only update the schema when your code changes, but Hibernate’s
update support is very conservative. It won’t make any changes that could
result in data loss, and doesn’t detect renamed columns or tables, so
you’ll be left with the old one and will also have the new one.</p>
</div>
<div class="paragraph">
-<p>Grails supports migrations with Liquibase plugin.</p>
+<p>Grails supports migrations with the Liquibase-based Database Migration
plugin.</p>
</div>
<div class="ulist">
<ul>
@@ -6390,6 +6390,23 @@ environments {
</li>
</ul>
</div>
+<div class="sect3">
+<h4 id="_automatic_liquibaseautoconfiguration_exclusion">Automatic
LiquibaseAutoConfiguration Exclusion</h4>
+<div class="paragraph">
+<p>When the Database Migration plugin is on the classpath, Grails
automatically excludes Spring Boot’s
<code>LiquibaseAutoConfiguration</code> to prevent conflicts. The plugin
manages Liquibase through its own lifecycle, and Spring Boot’s
auto-configuration would create duplicate <code>SpringLiquibase</code> beans
that cause lock contention and startup failures.</p>
+</div>
+<div class="paragraph">
+<p>This exclusion is applied at compile time via the
<code>@EnableAutoConfiguration(excludeName=…​)</code> annotation on
your <code>Application</code> class. You no longer need to manually add
<code>spring.liquibase.enabled: false</code> to your
<code>application.yml</code>.</p>
+</div>
+<div class="paragraph">
+<p>To disable the automatic exclusion, add the following to your
project’s <code>gradle.properties</code>:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="CodeRay highlight"><code
data-lang="properties">systemProp.grails.autoconfigure.exclude.liquibase=false</code></pre>
+</div>
+</div>
+</div>
<a name="3.3.4 Transaction-aware DataSource Proxy"><!-- Legacy link --></a>
<h2 id="transactionAwareDataSourceProxy">4.4.3 Transaction-aware DataSource
Proxy</h2>