You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@grails.apache.org by jd...@apache.org on 2026/07/18 19:49:41 UTC

(grails-core) branch 8.0.x updated (76d9f18659 -> d1e4af1162)

This is an automated email from the ASF dual-hosted git repository.

jdaugherty pushed a change to branch 8.0.x
in repository https://gitbox.apache.org/repos/asf/grails-core.git


    from 76d9f18659 Merge pull request #15989 from codeconsole/fix/forge-cli-native-access
     add 36ad682bdf Split CLI dependencies from the runtime classpath
     add 6fdfaf8675 Remove explicit console dependency
     add e1bac4aa61 Adjust test configuration
     add 237cf03945 Move grailsCli related gradle configuration to a single gradle plugin
     add 01ddd85d57 Cleanup code style
     add b4c8828cfa Functional test app was missing functional dependency substitution
     add 45632e28f5 Ensure hibernate5 bom is used consistently for hibernate5 projects
     add 8043852418 Merge branch '8.0.x' into fix/split-cli-dependencies
     add ea3064a5d9 Fix cli gradle capabilities from being published
     add 329cc6a703 CommandFactoriesTransformation should be able to register commands compiled from src/cli sources.
     add c6739f408e Replace ambgious commands
     add 1fd7f7d405 Merge branch '8.0.x' into fix/split-cli-dependencies
     add 42ef1ac1c6 Wire same-build CLI companions via project capability + cover discovery
     add a441ac3132 Fix factories dedup, BOM companion constraints, and companion build identity
     add 82532d4ee8 Support customized cli companion coordinates end to end
     add 773152144d Document the upgrade impact of the CLI split
     add d6d49e85f3 Fix the command arguments example in the custom-commands guide
     new d1e4af1162 Merge pull request #15948 from apache/fix/split-cli-dependencies

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 build.gradle                                       |   7 +
 dependencies.gradle                                |   2 +-
 gradle/cli-companion-bom-constraints.gradle        |  41 ++
 gradle/functional-test-config.gradle               |  11 +
 grails-bom/base/build.gradle                       |  20 +
 grails-bom/default/build.gradle                    |   4 +
 grails-bom/hibernate5-micronaut/build.gradle       |   4 +
 grails-bom/hibernate5/build.gradle                 |   4 +
 grails-bom/hibernate7-micronaut/build.gradle       |   4 +
 grails-bom/hibernate7/build.gradle                 |   4 +
 grails-bom/micronaut/build.gradle                  |   4 +
 .../common/compiler/GroovyTransformOrder.groovy    |   7 +
 grails-console/build.gradle                        |  10 +
 .../GrailsApplicationContextCommandRunner.groovy   |   5 +-
 grails-core/build.gradle                           |  13 +
 .../grails/core/cli}/ApplicationCommand.groovy     |   3 +-
 .../cli}/ApplicationContextCommandRegistry.groovy  |  11 +-
 .../grails/core/cli}/ConfigReportCommand.groovy    |   2 +-
 .../grails/core/cli}/ExecutionContext.groovy       |   3 +-
 .../core/cli}/GrailsApplicationCommand.groovy      |  10 +-
 .../compiler/CommandFactoriesTransformation.groovy | 105 +++++
 .../core/cli}/io/FileSystemInteraction.groovy      |   3 +-
 .../core/cli}/io/FileSystemInteractionImpl.groovy  |   3 +-
 .../core/cli}/template/TemplateException.groovy    |   2 +-
 .../core/cli}/template/TemplateRenderer.groovy     |   2 +-
 .../core/cli}/template/TemplateRendererImpl.groovy |   6 +-
 .../cli/resources/META-INF/grails-cli.factories    |  18 +
 ...org.codehaus.groovy.transform.ASTTransformation |   1 +
 .../compiler/injection/FactoriesFileWriter.groovy  | 140 ++++++
 .../GlobalGrailsClassInjectorTransformation.groovy |  86 +---
 .../core/io/support/GrailsFactoriesLoader.groovy   |  29 +-
 .../core/cli}/ConfigReportCommandSpec.groovy       |   2 +-
 .../CommandFactoriesTransformationSpec.groovy      |  45 ++
 .../injection/FactoriesFileWriterSpec.groovy       | 124 ++++++
 ...balGrailsClassInjectorTransformationSpec.groovy |   4 +-
 grails-data-hibernate5/dbmigration/build.gradle    |  37 +-
 ...plicationContextDatabaseMigrationCommand.groovy |   4 +-
 .../cli}/DatabaseMigrationCommand.groovy           |   2 +-
 .../cli}/DbmChangelogSyncCommand.groovy            |   4 +-
 .../cli}/DbmChangelogSyncSqlCommand.groovy         |   4 +-
 .../dbmigration/cli}/DbmChangelogToGroovy.groovy   |   2 +-
 .../cli}/DbmClearChecksumsCommand.groovy           |   4 +-
 .../dbmigration/cli}/DbmCreateChangelog.groovy     |   2 +-
 .../dbmigration/cli}/DbmDbDocCommand.groovy        |   4 +-
 .../dbmigration/cli}/DbmDiffCommand.groovy         |   4 +-
 .../dbmigration/cli}/DbmDropAllCommand.groovy      |   4 +-
 .../cli}/DbmFutureRollbackCountSqlCommand.groovy   |   4 +-
 .../cli}/DbmFutureRollbackSqlCommand.groovy        |   4 +-
 .../cli}/DbmGenerateChangelogCommand.groovy        |   4 +-
 .../cli}/DbmGenerateGormChangelogCommand.groovy    |   4 +-
 .../dbmigration/cli}/DbmGormDiffCommand.groovy     |   4 +-
 .../dbmigration/cli}/DbmListLocksCommand.groovy    |   4 +-
 .../cli}/DbmMarkNextChangesetRanCommand.groovy     |   4 +-
 .../cli}/DbmMarkNextChangesetRanSqlCommand.groovy  |   4 +-
 .../cli}/DbmPreviousChangesetSqlCommand.groovy     |   4 +-
 .../dbmigration/cli}/DbmReleaseLocksCommand.groovy |   4 +-
 .../dbmigration/cli}/DbmRollbackCommand.groovy     |   4 +-
 .../cli}/DbmRollbackCountCommand.groovy            |   4 +-
 .../cli}/DbmRollbackCountSqlCommand.groovy         |   4 +-
 .../dbmigration/cli}/DbmRollbackSqlCommand.groovy  |   4 +-
 .../cli}/DbmRollbackToDateCommand.groovy           |   4 +-
 .../cli}/DbmRollbackToDateSqlCommand.groovy        |   4 +-
 .../dbmigration/cli}/DbmStatusCommand.groovy       |   4 +-
 .../dbmigration/cli}/DbmTagCommand.groovy          |   4 +-
 .../dbmigration/cli}/DbmUpdateCommand.groovy       |   4 +-
 .../dbmigration/cli}/DbmUpdateCountCommand.groovy  |   4 +-
 .../cli}/DbmUpdateCountSqlCommand.groovy           |   4 +-
 .../dbmigration/cli}/DbmUpdateSqlCommand.groovy    |   4 +-
 .../dbmigration/cli}/DbmValidateCommand.groovy     |   4 +-
 .../cli}/ScriptDatabaseMigrationCommand.groovy     |   2 +-
 .../commands}/dbm-changelog-to-groovy.groovy       |   2 +-
 .../META-INF/commands}/dbm-create-changelog.groovy |   2 +-
 .../databasemigration/DbUpdateCommandSpec.groovy   |   6 +-
 ...ationContextDatabaseMigrationCommandSpec.groovy |   6 +-
 .../cli}/DatabaseMigrationCommandConfigSpec.groovy |   2 +-
 .../cli}/DatabaseMigrationCommandSpec.groovy       |   2 +-
 .../cli}/DbmChangelogSyncCommandSpec.groovy        |   4 +-
 .../cli}/DbmChangelogSyncCommandSqlSpec.groovy     |   4 +-
 .../cli}/DbmClearChecksumsCommandSpec.groovy       |   4 +-
 .../dbmigration/cli}/DbmDiffCommandSpec.groovy     |   4 +-
 .../dbmigration/cli}/DbmDropAllCommandSpec.groovy  |   4 +-
 .../DbmFutureRollbackCountSqlCommandSpec.groovy    |   4 +-
 .../cli}/DbmFutureRollbackSqlCommandSpec.groovy    |   4 +-
 .../cli}/DbmGenerateChangelogCommandSpec.groovy    |   4 +-
 .../DbmGenerateGormChangelogCommandSpec.groovy     |   4 +-
 .../dbmigration/cli}/DbmGormDiffCommandSpec.groovy |   4 +-
 .../cli}/DbmListLocksCommandSpec.groovy            |   4 +-
 .../cli}/DbmMarkNextChangesetRanCommandSpec.groovy |   4 +-
 .../DbmMarkNextChangesetRanSqlCommandSpec.groovy   |   4 +-
 .../cli}/DbmPreviousChangesetSqlCommandSpec.groovy |   4 +-
 .../cli}/DbmReleaseLocksCommandSpec.groovy         |   4 +-
 .../dbmigration/cli}/DbmRollbackCommandSpec.groovy |   4 +-
 .../cli}/DbmRollbackCountCommandSpec.groovy        |   4 +-
 .../cli}/DbmRollbackCountSqlCommandSpec.groovy     |   4 +-
 .../cli}/DbmRollbackSqlCommandSpec.groovy          |   4 +-
 .../cli}/DbmRollbackToDateCommandSpec.groovy       |   4 +-
 .../cli}/DbmRollbackToDateSqlCommandSpec.groovy    |   4 +-
 .../dbmigration/cli}/DbmStatusCommandSpec.groovy   |   4 +-
 .../dbmigration/cli}/DbmUpdateCommandSpec.groovy   |   4 +-
 .../cli}/DbmUpdateCountCommandSpec.groovy          |   4 +-
 .../cli}/DbmUpdateCountSqlCommandSpec.groovy       |   4 +-
 .../cli}/DbmUpdateSqlCommandSpec.groovy            |   4 +-
 .../dbmigration/cli}/DbmValidateCommandSpec.groovy |   4 +-
 .../cli}/ScriptDatabaseMigrationCommandSpec.groovy |   2 +-
 .../liquibase/GroovyChangeLogSpec.groovy           |  12 +-
 .../liquibase/GroovyPreconditionSpec.groovy        |   4 +-
 grails-data-hibernate5/grails-plugin/build.gradle  |  18 +-
 .../hibernate5/cli}/SchemaExportCommand.groovy     |   6 +-
 grails-data-hibernate7/dbmigration/build.gradle    |  24 +-
 ...plicationContextDatabaseMigrationCommand.groovy |   4 +-
 .../cli}/DatabaseMigrationCommand.groovy           |   2 +-
 .../cli}/DbmChangelogSyncCommand.groovy            |   4 +-
 .../cli}/DbmChangelogSyncSqlCommand.groovy         |   4 +-
 .../dbmigration/cli}/DbmChangelogToGroovy.groovy   |   2 +-
 .../cli}/DbmClearChecksumsCommand.groovy           |   4 +-
 .../dbmigration/cli}/DbmCreateChangelog.groovy     |   2 +-
 .../dbmigration/cli}/DbmDbDocCommand.groovy        |   4 +-
 .../dbmigration/cli}/DbmDiffCommand.groovy         |   4 +-
 .../dbmigration/cli}/DbmDropAllCommand.groovy      |   4 +-
 .../cli}/DbmFutureRollbackCountSqlCommand.groovy   |   4 +-
 .../cli}/DbmFutureRollbackSqlCommand.groovy        |   4 +-
 .../cli}/DbmGenerateChangelogCommand.groovy        |   4 +-
 .../cli}/DbmGenerateGormChangelogCommand.groovy    |   4 +-
 .../dbmigration/cli}/DbmGormDiffCommand.groovy     |   4 +-
 .../dbmigration/cli}/DbmListLocksCommand.groovy    |   4 +-
 .../cli}/DbmMarkNextChangesetRanCommand.groovy     |   4 +-
 .../cli}/DbmMarkNextChangesetRanSqlCommand.groovy  |   4 +-
 .../cli}/DbmPreviousChangesetSqlCommand.groovy     |   4 +-
 .../dbmigration/cli}/DbmReleaseLocksCommand.groovy |   4 +-
 .../dbmigration/cli}/DbmRollbackCommand.groovy     |   4 +-
 .../cli}/DbmRollbackCountCommand.groovy            |   4 +-
 .../cli}/DbmRollbackCountSqlCommand.groovy         |   4 +-
 .../dbmigration/cli}/DbmRollbackSqlCommand.groovy  |   4 +-
 .../cli}/DbmRollbackToDateCommand.groovy           |   4 +-
 .../cli}/DbmRollbackToDateSqlCommand.groovy        |   4 +-
 .../dbmigration/cli}/DbmStatusCommand.groovy       |   4 +-
 .../dbmigration/cli}/DbmTagCommand.groovy          |   4 +-
 .../dbmigration/cli}/DbmUpdateCommand.groovy       |   4 +-
 .../dbmigration/cli}/DbmUpdateCountCommand.groovy  |   4 +-
 .../cli}/DbmUpdateCountSqlCommand.groovy           |   4 +-
 .../dbmigration/cli}/DbmUpdateSqlCommand.groovy    |   4 +-
 .../dbmigration/cli}/DbmValidateCommand.groovy     |   4 +-
 .../cli}/ScriptDatabaseMigrationCommand.groovy     |   2 +-
 .../commands}/dbm-changelog-to-groovy.groovy       |   2 +-
 .../META-INF/commands}/dbm-create-changelog.groovy |   2 +-
 .../databasemigration/DbUpdateCommandSpec.groovy   |   6 +-
 ...ationContextDatabaseMigrationCommandSpec.groovy |   6 +-
 .../cli}/DatabaseMigrationCommandConfigSpec.groovy |   2 +-
 .../cli}/DatabaseMigrationCommandSpec.groovy       |   2 +-
 .../cli}/DbmChangelogSyncCommandSpec.groovy        |   4 +-
 .../cli}/DbmChangelogSyncCommandSqlSpec.groovy     |   4 +-
 .../cli}/DbmClearChecksumsCommandSpec.groovy       |   4 +-
 .../dbmigration/cli}/DbmDiffCommandSpec.groovy     |   4 +-
 .../dbmigration/cli}/DbmDropAllCommandSpec.groovy  |   4 +-
 .../DbmFutureRollbackCountSqlCommandSpec.groovy    |   4 +-
 .../cli}/DbmFutureRollbackSqlCommandSpec.groovy    |   4 +-
 .../cli}/DbmGenerateChangelogCommandSpec.groovy    |   4 +-
 .../DbmGenerateGormChangelogCommandSpec.groovy     |   4 +-
 .../dbmigration/cli}/DbmGormDiffCommandSpec.groovy |   4 +-
 .../cli}/DbmListLocksCommandSpec.groovy            |   4 +-
 .../cli}/DbmMarkNextChangesetRanCommandSpec.groovy |   4 +-
 .../DbmMarkNextChangesetRanSqlCommandSpec.groovy   |   4 +-
 .../cli}/DbmPreviousChangesetSqlCommandSpec.groovy |   4 +-
 .../cli}/DbmReleaseLocksCommandSpec.groovy         |   4 +-
 .../dbmigration/cli}/DbmRollbackCommandSpec.groovy |   4 +-
 .../cli}/DbmRollbackCountCommandSpec.groovy        |   4 +-
 .../cli}/DbmRollbackCountSqlCommandSpec.groovy     |   4 +-
 .../cli}/DbmRollbackSqlCommandSpec.groovy          |   4 +-
 .../cli}/DbmRollbackToDateCommandSpec.groovy       |   4 +-
 .../cli}/DbmRollbackToDateSqlCommandSpec.groovy    |   4 +-
 .../dbmigration/cli}/DbmStatusCommandSpec.groovy   |   4 +-
 .../dbmigration/cli}/DbmUpdateCommandSpec.groovy   |   4 +-
 .../cli}/DbmUpdateCountCommandSpec.groovy          |   4 +-
 .../cli}/DbmUpdateCountSqlCommandSpec.groovy       |   4 +-
 .../cli}/DbmUpdateSqlCommandSpec.groovy            |   4 +-
 .../dbmigration/cli}/DbmValidateCommandSpec.groovy |   4 +-
 .../cli}/ScriptDatabaseMigrationCommandSpec.groovy |   2 +-
 .../liquibase/GroovyChangeLogSpec.groovy           |  12 +-
 .../liquibase/GroovyPreconditionSpec.groovy        |   4 +-
 grails-data-hibernate7/grails-plugin/build.gradle  |  18 +
 .../hibernate7/cli}/SchemaExportCommand.groovy     |   7 +-
 .../guide/commandLine/creatingCustomCommands.adoc  | 178 ++++++--
 .../gradleBuild/gradleDependencies.adoc            |   1 -
 .../commandLine/gradleBuild/gradlePlugins.adoc     |   2 +
 grails-doc/src/en/guide/introduction/whatsNew.adoc |  52 +++
 .../en/guide/plugins/providingBasicArtefacts.adoc  |  46 +-
 .../src/en/guide/upgrading/upgrading80x.adoc       | 122 +++++
 .../src/en/ref/Command Line/create-command.adoc    |  19 +-
 .../command/CreateDomainClassCommandSpec.groovy    |   2 +-
 .../grails/forge/feature/grails/GrailsConsole.java |  66 ---
 .../feature/migration/DatabaseMigrationPlugin.java |  12 +-
 .../forge/feature/grails/GrailsConsoleSpec.groovy  |  36 --
 .../migration/DatabaseMigrationPluginSpec.groovy   |  13 +-
 .../org/grails/forge/create/CreateAppSpec.groovy   |   2 +-
 .../io/support/FactoriesLoaderSupport.groovy       |  23 +-
 grails-gradle/plugins/build.gradle                 |  18 +
 .../plugin/commands/CliArtifactExtension.groovy    |  53 +++
 .../plugin/commands/CliPublishingSupport.groovy    | 166 +++++++
 .../commands/GrailsCliArtifactGradlePlugin.groovy  | 229 ++++++++++
 .../plugin/commands/GrailsCliGradlePlugin.groovy   | 490 +++++++++++++++++++++
 .../commands/GrailsCliLibraryGradlePlugin.groovy   |  50 +++
 .../gradle/plugin/core/GrailsExtension.groovy      |  18 +-
 .../gradle/plugin/core/GrailsGradlePlugin.groovy   | 191 +-------
 .../gradle/plugin/util/ClasspathUtils.groovy       |  60 +++
 .../gradle/plugin/web/GrailsWebGradlePlugin.groovy |   6 +-
 .../plugin/commands/CliAutoDiscoverySpec.groovy    |  95 ++++
 .../commands/CliCompanionPublishingSpec.groovy     |  93 ++++
 .../cli-companion-autodiscovery/app/build.gradle   |  57 +++
 .../cli-companion-autodiscovery/gradle.properties  |   2 +
 .../my-plugin/build.gradle                         |  12 +
 .../cli/java/com/example/HelloWorldCommand.java    |   6 +
 .../cli/resources/META-INF/grails-cli.factories    |   1 +
 .../renamed-plugin/build.gradle                    |  13 +
 .../src/cli/java/com/acme/AcmeCommand.java         |   5 +
 .../cli-companion-autodiscovery/settings.gradle    |   3 +
 .../console-lib/build.gradle                       |  28 ++
 .../custom-owner/build.gradle                      |  30 ++
 .../cli-companion-publishing/gradle.properties     |   1 +
 .../cli-companion-publishing/owner/build.gradle    |  27 ++
 .../cli-companion-publishing/plugin-a/build.gradle |  32 ++
 .../cli-companion-publishing/plugin-b/build.gradle |  34 ++
 .../cli-companion-publishing/resolver/build.gradle |  27 ++
 .../cli-companion-publishing/settings.gradle       |   3 +
 grails-profiles/base/profile.yml                   |   2 -
 .../base/templates/artifacts/Command.groovy        |   2 +-
 grails-scaffolding/build.gradle                    |  20 +
 .../scaffolding/cli}/CommandLineHelper.groovy      |   4 +-
 .../cli}/CreateScaffoldControllerCommand.groovy    |   6 +-
 .../cli}/CreateScaffoldServiceCommand.groovy       |   6 +-
 .../scaffolding/cli}/GenerateAllCommand.groovy     |   6 +-
 .../cli}/GenerateAsyncControllerCommand.groovy     |   6 +-
 .../cli}/GenerateControllerCommand.groovy          |   6 +-
 .../cli}/GenerateScaffoldAllCommand.groovy         |   6 +-
 .../scaffolding/cli}/GenerateServiceCommand.groovy |   6 +-
 .../scaffolding/cli}/GenerateViewsCommand.groovy   |   6 +-
 .../cli}/InstallTemplatesCommand.groovy            |   6 +-
 .../grails/scaffolding/cli}/SkipBootstrap.groovy   |   2 +-
 .../ApplicationContextCommandFactory.groovy        |   4 +-
 grails-spring-security/oauth2/plugin/build.gradle  |  20 +
 .../security/oauth2/cli}/CommandLineHelper.groovy  |   2 +-
 .../security/oauth2/cli}/InitOAuth2Command.groovy  |   5 +-
 grails-spring-security/plugin/build.gradle         |  20 +
 .../grails/security/cli}/CommandLineHelper.groovy  |   4 +-
 .../cli}/S2CreatePersistentTokenCommand.groovy     |   5 +-
 .../cli}/S2CreateRoleHierarchyEntryCommand.groovy  |   5 +-
 .../security/cli}/S2QuickstartCommand.groovy       |   5 +-
 .../grails/security/cli}/SkipBootstrap.groovy      |   2 +-
 grails-test-examples/app1/build.gradle             |   1 -
 grails-test-examples/app2/build.gradle             |   1 -
 grails-test-examples/app3/build.gradle             |   1 -
 grails-test-examples/cache/build.gradle            |   1 -
 .../ConfigReportCommandIntegrationSpec.groovy      |   4 +-
 grails-test-examples/datasources/build.gradle      |   1 -
 grails-test-examples/exploded/build.gradle         |   1 -
 grails-test-examples/gorm/build.gradle             |   1 -
 .../graphql/grails-docs-app/build.gradle           |   1 -
 .../grails-multi-datastore-app/build.gradle        |   1 -
 .../graphql/grails-tenant-app/build.gradle         |   1 -
 .../graphql/grails-test-app/build.gradle           |   1 -
 grails-test-examples/hibernate7/app1/build.gradle  |   1 -
 .../hibernate7/datasources/build.gradle            |   1 -
 grails-test-examples/hibernate7/gorm/build.gradle  |   1 -
 .../issue-698-domain-save-npe/build.gradle         |   1 -
 .../hibernate7/scaffolding-fields/build.gradle     |   1 -
 grails-test-examples/hyphenated/build.gradle       |   1 -
 grails-test-examples/issue-11102/build.gradle      |   1 -
 .../issue-698-domain-save-npe/build.gradle         |   1 -
 grails-test-examples/issue-views-182/build.gradle  |   1 -
 grails-test-examples/namespaces/build.gradle       |   1 -
 grails-test-examples/plugins/exploded/build.gradle |   1 -
 .../plugins/issue11005/build.gradle                |   1 -
 .../plugins/loadafter/build.gradle                 |   1 -
 .../plugins/loadfirst/build.gradle                 |   1 -
 .../plugins/loadsecond/build.gradle                |   1 -
 .../plugins/micronaut-singleton/build.gradle       |   1 +
 .../scaffolding-fields/build.gradle                |   1 -
 grails-test-examples/scaffolding/build.gradle      |   1 -
 grails-web-url-mappings/build.gradle               |  16 +
 .../mapping/cli}/UrlMappingsReportCommand.groovy   |   7 +-
 279 files changed, 3064 insertions(+), 869 deletions(-)
 create mode 100644 gradle/cli-companion-bom-constraints.gradle
 rename grails-core/src/{main/groovy/grails/dev/commands => cli/groovy/org/apache/grails/core/cli}/ApplicationCommand.groovy (97%)
 rename grails-core/src/{main/groovy/grails/dev/commands => cli/groovy/org/apache/grails/core/cli}/ApplicationContextCommandRegistry.groovy (78%)
 rename grails-core/src/{main/groovy/grails/dev/commands => cli/groovy/org/apache/grails/core/cli}/ConfigReportCommand.groovy (99%)
 rename grails-core/src/{main/groovy/grails/dev/commands => cli/groovy/org/apache/grails/core/cli}/ExecutionContext.groovy (96%)
 rename grails-core/src/{main/groovy/grails/dev/commands => cli/groovy/org/apache/grails/core/cli}/GrailsApplicationCommand.groovy (84%)
 create mode 100644 grails-core/src/cli/groovy/org/apache/grails/core/cli/compiler/CommandFactoriesTransformation.groovy
 rename grails-core/src/{main/groovy/grails/dev/commands => cli/groovy/org/apache/grails/core/cli}/io/FileSystemInteraction.groovy (98%)
 rename grails-core/src/{main/groovy/grails/dev/commands => cli/groovy/org/apache/grails/core/cli}/io/FileSystemInteractionImpl.groovy (99%)
 rename grails-core/src/{main/groovy/grails/dev/commands => cli/groovy/org/apache/grails/core/cli}/template/TemplateException.groovy (95%)
 rename grails-core/src/{main/groovy/grails/dev/commands => cli/groovy/org/apache/grails/core/cli}/template/TemplateRenderer.groovy (99%)
 rename grails-core/src/{main/groovy/grails/dev/commands => cli/groovy/org/apache/grails/core/cli}/template/TemplateRendererImpl.groovy (98%)
 create mode 100644 grails-core/src/cli/resources/META-INF/grails-cli.factories
 create mode 100644 grails-core/src/cli/resources/META-INF/services/org.codehaus.groovy.transform.ASTTransformation
 create mode 100644 grails-core/src/main/groovy/org/grails/compiler/injection/FactoriesFileWriter.groovy
 rename grails-core/src/test/groovy/{grails/dev/commands => org/apache/grails/core/cli}/ConfigReportCommandSpec.groovy (99%)
 create mode 100644 grails-core/src/test/groovy/org/apache/grails/core/cli/compiler/CommandFactoriesTransformationSpec.groovy
 create mode 100644 grails-core/src/test/groovy/org/grails/compiler/injection/FactoriesFileWriterSpec.groovy
 rename grails-data-hibernate5/dbmigration/src/{main/groovy/org/grails/plugins/databasemigration/command => cli/groovy/org/apache/grails/data/hibernate5/dbmigration/cli}/ApplicationContextDatabaseMigrationCommand.groovy (97%)
 rename grails-data-hibernate5/dbmigration/src/{main/groovy/org/grails/plugins/databasemigration/command => cli/groovy/org/apache/grails/data/hibernate5/dbmigration/cli}/DatabaseMigrationCommand.groovy (99%)
 rename grails-data-hibernate5/dbmigration/{grails-app/commands/org/grails/plugins/databasemigration/command => src/cli/groovy/org/apache/grails/data/hibernate5/dbmigration/cli}/DbmChangelogSyncCommand.groovy (91%)
 rename {grails-data-hibernate7/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command => grails-data-hibernate5/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate5/dbmigration/cli}/DbmChangelogSyncSqlCommand.groovy (92%)
 rename grails-data-hibernate5/dbmigration/src/{main/groovy/org/grails/plugins/databasemigration/command => cli/groovy/org/apache/grails/data/hibernate5/dbmigration/cli}/DbmChangelogToGroovy.groovy (98%)
 rename {grails-data-hibernate7/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command => grails-data-hibernate5/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate5/dbmigration/cli}/DbmClearChecksumsCommand.groovy (91%)
 rename {grails-data-hibernate7/dbmigration/src/main/groovy/org/grails/plugins/databasemigration/command => grails-data-hibernate5/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate5/dbmigration/cli}/DbmCreateChangelog.groovy (97%)
 rename {grails-data-hibernate7/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command => grails-data-hibernate5/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate5/dbmigration/cli}/DbmDbDocCommand.groovy (92%)
 rename grails-data-hibernate5/dbmigration/{grails-app/commands/org/grails/plugins/databasemigration/command => src/cli/groovy/org/apache/grails/data/hibernate5/dbmigration/cli}/DbmDiffCommand.groovy (96%)
 rename grails-data-hibernate5/dbmigration/{grails-app/commands/org/grails/plugins/databasemigration/command => src/cli/groovy/org/apache/grails/data/hibernate5/dbmigration/cli}/DbmDropAllCommand.groovy (93%)
 rename {grails-data-hibernate7/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command => grails-data-hibernate5/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate5/dbmigration/cli}/DbmFutureRollbackCountSqlCommand.groovy (94%)
 rename grails-data-hibernate5/dbmigration/{grails-app/commands/org/grails/plugins/databasemigration/command => src/cli/groovy/org/apache/grails/data/hibernate5/dbmigration/cli}/DbmFutureRollbackSqlCommand.groovy (92%)
 rename {grails-data-hibernate7/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command => grails-data-hibernate5/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate5/dbmigration/cli}/DbmGenerateChangelogCommand.groovy (94%)
 rename grails-data-hibernate5/dbmigration/{grails-app/commands/org/grails/plugins/databasemigration/command => src/cli/groovy/org/apache/grails/data/hibernate5/dbmigration/cli}/DbmGenerateGormChangelogCommand.groovy (95%)
 rename {grails-data-hibernate7/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command => grails-data-hibernate5/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate5/dbmigration/cli}/DbmGormDiffCommand.groovy (95%)
 rename grails-data-hibernate5/dbmigration/{grails-app/commands/org/grails/plugins/databasemigration/command => src/cli/groovy/org/apache/grails/data/hibernate5/dbmigration/cli}/DbmListLocksCommand.groovy (94%)
 rename {grails-data-hibernate7/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command => grails-data-hibernate5/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate5/dbmigration/cli}/DbmMarkNextChangesetRanCommand.groovy (91%)
 rename {grails-data-hibernate7/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command => grails-data-hibernate5/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate5/dbmigration/cli}/DbmMarkNextChangesetRanSqlCommand.groovy (92%)
 rename {grails-data-hibernate7/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command => grails-data-hibernate5/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate5/dbmigration/cli}/DbmPreviousChangesetSqlCommand.groovy (95%)
 rename grails-data-hibernate5/dbmigration/{grails-app/commands/org/grails/plugins/databasemigration/command => src/cli/groovy/org/apache/grails/data/hibernate5/dbmigration/cli}/DbmReleaseLocksCommand.groovy (91%)
 rename {grails-data-hibernate7/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command => grails-data-hibernate5/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate5/dbmigration/cli}/DbmRollbackCommand.groovy (93%)
 rename grails-data-hibernate5/dbmigration/{grails-app/commands/org/grails/plugins/databasemigration/command => src/cli/groovy/org/apache/grails/data/hibernate5/dbmigration/cli}/DbmRollbackCountCommand.groovy (93%)
 rename grails-data-hibernate5/dbmigration/{grails-app/commands/org/grails/plugins/databasemigration/command => src/cli/groovy/org/apache/grails/data/hibernate5/dbmigration/cli}/DbmRollbackCountSqlCommand.groovy (94%)
 rename {grails-data-hibernate7/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command => grails-data-hibernate5/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate5/dbmigration/cli}/DbmRollbackSqlCommand.groovy (93%)
 rename grails-data-hibernate5/dbmigration/{grails-app/commands/org/grails/plugins/databasemigration/command => src/cli/groovy/org/apache/grails/data/hibernate5/dbmigration/cli}/DbmRollbackToDateCommand.groovy (94%)
 rename {grails-data-hibernate7/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command => grails-data-hibernate5/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate5/dbmigration/cli}/DbmRollbackToDateSqlCommand.groovy (95%)
 rename {grails-data-hibernate7/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command => grails-data-hibernate5/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate5/dbmigration/cli}/DbmStatusCommand.groovy (93%)
 rename {grails-data-hibernate7/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command => grails-data-hibernate5/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate5/dbmigration/cli}/DbmTagCommand.groovy (92%)
 rename grails-data-hibernate5/dbmigration/{grails-app/commands/org/grails/plugins/databasemigration/command => src/cli/groovy/org/apache/grails/data/hibernate5/dbmigration/cli}/DbmUpdateCommand.groovy (91%)
 rename grails-data-hibernate5/dbmigration/{grails-app/commands/org/grails/plugins/databasemigration/command => src/cli/groovy/org/apache/grails/data/hibernate5/dbmigration/cli}/DbmUpdateCountCommand.groovy (93%)
 rename grails-data-hibernate5/dbmigration/{grails-app/commands/org/grails/plugins/databasemigration/command => src/cli/groovy/org/apache/grails/data/hibernate5/dbmigration/cli}/DbmUpdateCountSqlCommand.groovy (94%)
 rename {grails-data-hibernate7/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command => grails-data-hibernate5/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate5/dbmigration/cli}/DbmUpdateSqlCommand.groovy (92%)
 rename {grails-data-hibernate7/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command => grails-data-hibernate5/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate5/dbmigration/cli}/DbmValidateCommand.groovy (91%)
 rename grails-data-hibernate5/dbmigration/src/{main/groovy/org/grails/plugins/databasemigration/command => cli/groovy/org/apache/grails/data/hibernate5/dbmigration/cli}/ScriptDatabaseMigrationCommand.groovy (97%)
 rename grails-data-hibernate5/dbmigration/src/{main/scripts => cli/resources/META-INF/commands}/dbm-changelog-to-groovy.groovy (95%)
 rename grails-data-hibernate5/dbmigration/src/{main/scripts => cli/resources/META-INF/commands}/dbm-create-changelog.groovy (95%)
 rename grails-data-hibernate5/dbmigration/src/test/groovy/org/{grails/plugins/databasemigration/command => apache/grails/data/hibernate5/dbmigration/cli}/ApplicationContextDatabaseMigrationCommandSpec.groovy (96%)
 rename {grails-data-hibernate7/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command => grails-data-hibernate5/dbmigration/src/test/groovy/org/apache/grails/data/hibernate5/dbmigration/cli}/DatabaseMigrationCommandConfigSpec.groovy (98%)
 rename grails-data-hibernate5/dbmigration/src/test/groovy/org/{grails/plugins/databasemigration/command => apache/grails/data/hibernate5/dbmigration/cli}/DatabaseMigrationCommandSpec.groovy (96%)
 rename {grails-data-hibernate7/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command => grails-data-hibernate5/dbmigration/src/test/groovy/org/apache/grails/data/hibernate5/dbmigration/cli}/DbmChangelogSyncCommandSpec.groovy (93%)
 rename {grails-data-hibernate7/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command => grails-data-hibernate5/dbmigration/src/test/groovy/org/apache/grails/data/hibernate5/dbmigration/cli}/DbmChangelogSyncCommandSqlSpec.groovy (95%)
 rename {grails-data-hibernate7/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command => grails-data-hibernate5/dbmigration/src/test/groovy/org/apache/grails/data/hibernate5/dbmigration/cli}/DbmClearChecksumsCommandSpec.groovy (95%)
 rename grails-data-hibernate5/dbmigration/src/test/groovy/org/{grails/plugins/databasemigration/command => apache/grails/data/hibernate5/dbmigration/cli}/DbmDiffCommandSpec.groovy (97%)
 rename grails-data-hibernate5/dbmigration/src/test/groovy/org/{grails/plugins/databasemigration/command => apache/grails/data/hibernate5/dbmigration/cli}/DbmDropAllCommandSpec.groovy (93%)
 rename grails-data-hibernate5/dbmigration/src/test/groovy/org/{grails/plugins/databasemigration/command => apache/grails/data/hibernate5/dbmigration/cli}/DbmFutureRollbackCountSqlCommandSpec.groovy (97%)
 rename {grails-data-hibernate7/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command => grails-data-hibernate5/dbmigration/src/test/groovy/org/apache/grails/data/hibernate5/dbmigration/cli}/DbmFutureRollbackSqlCommandSpec.groovy (97%)
 rename grails-data-hibernate5/dbmigration/src/test/groovy/org/{grails/plugins/databasemigration/command => apache/grails/data/hibernate5/dbmigration/cli}/DbmGenerateChangelogCommandSpec.groovy (97%)
 rename grails-data-hibernate5/dbmigration/src/test/groovy/org/{grails/plugins/databasemigration/command => apache/grails/data/hibernate5/dbmigration/cli}/DbmGenerateGormChangelogCommandSpec.groovy (98%)
 rename grails-data-hibernate5/dbmigration/src/test/groovy/org/{grails/plugins/databasemigration/command => apache/grails/data/hibernate5/dbmigration/cli}/DbmGormDiffCommandSpec.groovy (97%)
 rename grails-data-hibernate5/dbmigration/src/test/groovy/org/{grails/plugins/databasemigration/command => apache/grails/data/hibernate5/dbmigration/cli}/DbmListLocksCommandSpec.groovy (95%)
 rename {grails-data-hibernate7/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command => grails-data-hibernate5/dbmigration/src/test/groovy/org/apache/grails/data/hibernate5/dbmigration/cli}/DbmMarkNextChangesetRanCommandSpec.groovy (93%)
 rename {grails-data-hibernate7/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command => grails-data-hibernate5/dbmigration/src/test/groovy/org/apache/grails/data/hibernate5/dbmigration/cli}/DbmMarkNextChangesetRanSqlCommandSpec.groovy (95%)
 rename grails-data-hibernate5/dbmigration/src/test/groovy/org/{grails/plugins/databasemigration/command => apache/grails/data/hibernate5/dbmigration/cli}/DbmPreviousChangesetSqlCommandSpec.groovy (97%)
 rename grails-data-hibernate5/dbmigration/src/test/groovy/org/{grails/plugins/databasemigration/command => apache/grails/data/hibernate5/dbmigration/cli}/DbmReleaseLocksCommandSpec.groovy (93%)
 rename {grails-data-hibernate7/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command => grails-data-hibernate5/dbmigration/src/test/groovy/org/apache/grails/data/hibernate5/dbmigration/cli}/DbmRollbackCommandSpec.groovy (97%)
 rename grails-data-hibernate5/dbmigration/src/test/groovy/org/{grails/plugins/databasemigration/command => apache/grails/data/hibernate5/dbmigration/cli}/DbmRollbackCountCommandSpec.groovy (97%)
 rename {grails-data-hibernate7/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command => grails-data-hibernate5/dbmigration/src/test/groovy/org/apache/grails/data/hibernate5/dbmigration/cli}/DbmRollbackCountSqlCommandSpec.groovy (97%)
 rename {grails-data-hibernate7/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command => grails-data-hibernate5/dbmigration/src/test/groovy/org/apache/grails/data/hibernate5/dbmigration/cli}/DbmRollbackSqlCommandSpec.groovy (97%)
 rename grails-data-hibernate5/dbmigration/src/test/groovy/org/{grails/plugins/databasemigration/command => apache/grails/data/hibernate5/dbmigration/cli}/DbmRollbackToDateCommandSpec.groovy (97%)
 rename grails-data-hibernate5/dbmigration/src/test/groovy/org/{grails/plugins/databasemigration/command => apache/grails/data/hibernate5/dbmigration/cli}/DbmRollbackToDateSqlCommandSpec.groovy (97%)
 rename grails-data-hibernate5/dbmigration/src/test/groovy/org/{grails/plugins/databasemigration/command => apache/grails/data/hibernate5/dbmigration/cli}/DbmStatusCommandSpec.groovy (94%)
 rename {grails-data-hibernate7/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command => grails-data-hibernate5/dbmigration/src/test/groovy/org/apache/grails/data/hibernate5/dbmigration/cli}/DbmUpdateCommandSpec.groovy (97%)
 rename grails-data-hibernate5/dbmigration/src/test/groovy/org/{grails/plugins/databasemigration/command => apache/grails/data/hibernate5/dbmigration/cli}/DbmUpdateCountCommandSpec.groovy (96%)
 rename {grails-data-hibernate7/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command => grails-data-hibernate5/dbmigration/src/test/groovy/org/apache/grails/data/hibernate5/dbmigration/cli}/DbmUpdateCountSqlCommandSpec.groovy (97%)
 rename {grails-data-hibernate7/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command => grails-data-hibernate5/dbmigration/src/test/groovy/org/apache/grails/data/hibernate5/dbmigration/cli}/DbmUpdateSqlCommandSpec.groovy (98%)
 rename grails-data-hibernate5/dbmigration/src/test/groovy/org/{grails/plugins/databasemigration/command => apache/grails/data/hibernate5/dbmigration/cli}/DbmValidateCommandSpec.groovy (96%)
 rename grails-data-hibernate5/dbmigration/src/test/groovy/org/{grails/plugins/databasemigration/command => apache/grails/data/hibernate5/dbmigration/cli}/ScriptDatabaseMigrationCommandSpec.groovy (97%)
 rename grails-data-hibernate5/grails-plugin/src/{main/groovy/grails/plugin/hibernate/commands => cli/groovy/org/apache/grails/data/hibernate5/cli}/SchemaExportCommand.groovy (96%)
 rename grails-data-hibernate7/dbmigration/src/{main/groovy/org/grails/plugins/databasemigration/command => cli/groovy/org/apache/grails/data/hibernate7/dbmigration/cli}/ApplicationContextDatabaseMigrationCommand.groovy (97%)
 rename grails-data-hibernate7/dbmigration/src/{main/groovy/org/grails/plugins/databasemigration/command => cli/groovy/org/apache/grails/data/hibernate7/dbmigration/cli}/DatabaseMigrationCommand.groovy (99%)
 rename grails-data-hibernate7/dbmigration/{grails-app/commands/org/grails/plugins/databasemigration/command => src/cli/groovy/org/apache/grails/data/hibernate7/dbmigration/cli}/DbmChangelogSyncCommand.groovy (91%)
 rename {grails-data-hibernate5/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command => grails-data-hibernate7/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate7/dbmigration/cli}/DbmChangelogSyncSqlCommand.groovy (92%)
 rename grails-data-hibernate7/dbmigration/src/{main/groovy/org/grails/plugins/databasemigration/command => cli/groovy/org/apache/grails/data/hibernate7/dbmigration/cli}/DbmChangelogToGroovy.groovy (98%)
 rename {grails-data-hibernate5/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command => grails-data-hibernate7/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate7/dbmigration/cli}/DbmClearChecksumsCommand.groovy (91%)
 rename {grails-data-hibernate5/dbmigration/src/main/groovy/org/grails/plugins/databasemigration/command => grails-data-hibernate7/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate7/dbmigration/cli}/DbmCreateChangelog.groovy (97%)
 rename {grails-data-hibernate5/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command => grails-data-hibernate7/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate7/dbmigration/cli}/DbmDbDocCommand.groovy (92%)
 rename grails-data-hibernate7/dbmigration/{grails-app/commands/org/grails/plugins/databasemigration/command => src/cli/groovy/org/apache/grails/data/hibernate7/dbmigration/cli}/DbmDiffCommand.groovy (96%)
 rename grails-data-hibernate7/dbmigration/{grails-app/commands/org/grails/plugins/databasemigration/command => src/cli/groovy/org/apache/grails/data/hibernate7/dbmigration/cli}/DbmDropAllCommand.groovy (93%)
 rename {grails-data-hibernate5/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command => grails-data-hibernate7/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate7/dbmigration/cli}/DbmFutureRollbackCountSqlCommand.groovy (94%)
 rename grails-data-hibernate7/dbmigration/{grails-app/commands/org/grails/plugins/databasemigration/command => src/cli/groovy/org/apache/grails/data/hibernate7/dbmigration/cli}/DbmFutureRollbackSqlCommand.groovy (92%)
 rename {grails-data-hibernate5/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command => grails-data-hibernate7/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate7/dbmigration/cli}/DbmGenerateChangelogCommand.groovy (94%)
 rename grails-data-hibernate7/dbmigration/{grails-app/commands/org/grails/plugins/databasemigration/command => src/cli/groovy/org/apache/grails/data/hibernate7/dbmigration/cli}/DbmGenerateGormChangelogCommand.groovy (95%)
 rename {grails-data-hibernate5/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command => grails-data-hibernate7/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate7/dbmigration/cli}/DbmGormDiffCommand.groovy (95%)
 rename grails-data-hibernate7/dbmigration/{grails-app/commands/org/grails/plugins/databasemigration/command => src/cli/groovy/org/apache/grails/data/hibernate7/dbmigration/cli}/DbmListLocksCommand.groovy (94%)
 rename {grails-data-hibernate5/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command => grails-data-hibernate7/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate7/dbmigration/cli}/DbmMarkNextChangesetRanCommand.groovy (91%)
 rename {grails-data-hibernate5/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command => grails-data-hibernate7/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate7/dbmigration/cli}/DbmMarkNextChangesetRanSqlCommand.groovy (92%)
 rename {grails-data-hibernate5/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command => grails-data-hibernate7/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate7/dbmigration/cli}/DbmPreviousChangesetSqlCommand.groovy (95%)
 rename grails-data-hibernate7/dbmigration/{grails-app/commands/org/grails/plugins/databasemigration/command => src/cli/groovy/org/apache/grails/data/hibernate7/dbmigration/cli}/DbmReleaseLocksCommand.groovy (91%)
 rename {grails-data-hibernate5/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command => grails-data-hibernate7/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate7/dbmigration/cli}/DbmRollbackCommand.groovy (93%)
 rename grails-data-hibernate7/dbmigration/{grails-app/commands/org/grails/plugins/databasemigration/command => src/cli/groovy/org/apache/grails/data/hibernate7/dbmigration/cli}/DbmRollbackCountCommand.groovy (93%)
 rename grails-data-hibernate7/dbmigration/{grails-app/commands/org/grails/plugins/databasemigration/command => src/cli/groovy/org/apache/grails/data/hibernate7/dbmigration/cli}/DbmRollbackCountSqlCommand.groovy (94%)
 rename {grails-data-hibernate5/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command => grails-data-hibernate7/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate7/dbmigration/cli}/DbmRollbackSqlCommand.groovy (93%)
 rename grails-data-hibernate7/dbmigration/{grails-app/commands/org/grails/plugins/databasemigration/command => src/cli/groovy/org/apache/grails/data/hibernate7/dbmigration/cli}/DbmRollbackToDateCommand.groovy (94%)
 rename {grails-data-hibernate5/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command => grails-data-hibernate7/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate7/dbmigration/cli}/DbmRollbackToDateSqlCommand.groovy (95%)
 rename {grails-data-hibernate5/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command => grails-data-hibernate7/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate7/dbmigration/cli}/DbmStatusCommand.groovy (93%)
 rename {grails-data-hibernate5/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command => grails-data-hibernate7/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate7/dbmigration/cli}/DbmTagCommand.groovy (92%)
 rename grails-data-hibernate7/dbmigration/{grails-app/commands/org/grails/plugins/databasemigration/command => src/cli/groovy/org/apache/grails/data/hibernate7/dbmigration/cli}/DbmUpdateCommand.groovy (91%)
 rename grails-data-hibernate7/dbmigration/{grails-app/commands/org/grails/plugins/databasemigration/command => src/cli/groovy/org/apache/grails/data/hibernate7/dbmigration/cli}/DbmUpdateCountCommand.groovy (93%)
 rename grails-data-hibernate7/dbmigration/{grails-app/commands/org/grails/plugins/databasemigration/command => src/cli/groovy/org/apache/grails/data/hibernate7/dbmigration/cli}/DbmUpdateCountSqlCommand.groovy (94%)
 rename {grails-data-hibernate5/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command => grails-data-hibernate7/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate7/dbmigration/cli}/DbmUpdateSqlCommand.groovy (92%)
 rename {grails-data-hibernate5/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command => grails-data-hibernate7/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate7/dbmigration/cli}/DbmValidateCommand.groovy (91%)
 rename grails-data-hibernate7/dbmigration/src/{main/groovy/org/grails/plugins/databasemigration/command => cli/groovy/org/apache/grails/data/hibernate7/dbmigration/cli}/ScriptDatabaseMigrationCommand.groovy (97%)
 rename grails-data-hibernate7/dbmigration/src/{main/scripts => cli/resources/META-INF/commands}/dbm-changelog-to-groovy.groovy (95%)
 rename grails-data-hibernate7/dbmigration/src/{main/scripts => cli/resources/META-INF/commands}/dbm-create-changelog.groovy (95%)
 rename grails-data-hibernate7/dbmigration/src/test/groovy/org/{grails/plugins/databasemigration/command => apache/grails/data/hibernate7/dbmigration/cli}/ApplicationContextDatabaseMigrationCommandSpec.groovy (96%)
 rename {grails-data-hibernate5/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command => grails-data-hibernate7/dbmigration/src/test/groovy/org/apache/grails/data/hibernate7/dbmigration/cli}/DatabaseMigrationCommandConfigSpec.groovy (98%)
 rename grails-data-hibernate7/dbmigration/src/test/groovy/org/{grails/plugins/databasemigration/command => apache/grails/data/hibernate7/dbmigration/cli}/DatabaseMigrationCommandSpec.groovy (97%)
 rename {grails-data-hibernate5/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command => grails-data-hibernate7/dbmigration/src/test/groovy/org/apache/grails/data/hibernate7/dbmigration/cli}/DbmChangelogSyncCommandSpec.groovy (93%)
 rename {grails-data-hibernate5/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command => grails-data-hibernate7/dbmigration/src/test/groovy/org/apache/grails/data/hibernate7/dbmigration/cli}/DbmChangelogSyncCommandSqlSpec.groovy (95%)
 rename {grails-data-hibernate5/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command => grails-data-hibernate7/dbmigration/src/test/groovy/org/apache/grails/data/hibernate7/dbmigration/cli}/DbmClearChecksumsCommandSpec.groovy (95%)
 rename grails-data-hibernate7/dbmigration/src/test/groovy/org/{grails/plugins/databasemigration/command => apache/grails/data/hibernate7/dbmigration/cli}/DbmDiffCommandSpec.groovy (97%)
 rename grails-data-hibernate7/dbmigration/src/test/groovy/org/{grails/plugins/databasemigration/command => apache/grails/data/hibernate7/dbmigration/cli}/DbmDropAllCommandSpec.groovy (93%)
 rename grails-data-hibernate7/dbmigration/src/test/groovy/org/{grails/plugins/databasemigration/command => apache/grails/data/hibernate7/dbmigration/cli}/DbmFutureRollbackCountSqlCommandSpec.groovy (97%)
 rename {grails-data-hibernate5/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command => grails-data-hibernate7/dbmigration/src/test/groovy/org/apache/grails/data/hibernate7/dbmigration/cli}/DbmFutureRollbackSqlCommandSpec.groovy (97%)
 rename grails-data-hibernate7/dbmigration/src/test/groovy/org/{grails/plugins/databasemigration/command => apache/grails/data/hibernate7/dbmigration/cli}/DbmGenerateChangelogCommandSpec.groovy (97%)
 rename grails-data-hibernate7/dbmigration/src/test/groovy/org/{grails/plugins/databasemigration/command => apache/grails/data/hibernate7/dbmigration/cli}/DbmGenerateGormChangelogCommandSpec.groovy (98%)
 rename grails-data-hibernate7/dbmigration/src/test/groovy/org/{grails/plugins/databasemigration/command => apache/grails/data/hibernate7/dbmigration/cli}/DbmGormDiffCommandSpec.groovy (97%)
 rename grails-data-hibernate7/dbmigration/src/test/groovy/org/{grails/plugins/databasemigration/command => apache/grails/data/hibernate7/dbmigration/cli}/DbmListLocksCommandSpec.groovy (95%)
 rename {grails-data-hibernate5/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command => grails-data-hibernate7/dbmigration/src/test/groovy/org/apache/grails/data/hibernate7/dbmigration/cli}/DbmMarkNextChangesetRanCommandSpec.groovy (93%)
 rename {grails-data-hibernate5/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command => grails-data-hibernate7/dbmigration/src/test/groovy/org/apache/grails/data/hibernate7/dbmigration/cli}/DbmMarkNextChangesetRanSqlCommandSpec.groovy (95%)
 rename grails-data-hibernate7/dbmigration/src/test/groovy/org/{grails/plugins/databasemigration/command => apache/grails/data/hibernate7/dbmigration/cli}/DbmPreviousChangesetSqlCommandSpec.groovy (97%)
 rename grails-data-hibernate7/dbmigration/src/test/groovy/org/{grails/plugins/databasemigration/command => apache/grails/data/hibernate7/dbmigration/cli}/DbmReleaseLocksCommandSpec.groovy (93%)
 rename {grails-data-hibernate5/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command => grails-data-hibernate7/dbmigration/src/test/groovy/org/apache/grails/data/hibernate7/dbmigration/cli}/DbmRollbackCommandSpec.groovy (97%)
 rename grails-data-hibernate7/dbmigration/src/test/groovy/org/{grails/plugins/databasemigration/command => apache/grails/data/hibernate7/dbmigration/cli}/DbmRollbackCountCommandSpec.groovy (97%)
 rename {grails-data-hibernate5/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command => grails-data-hibernate7/dbmigration/src/test/groovy/org/apache/grails/data/hibernate7/dbmigration/cli}/DbmRollbackCountSqlCommandSpec.groovy (97%)
 rename {grails-data-hibernate5/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command => grails-data-hibernate7/dbmigration/src/test/groovy/org/apache/grails/data/hibernate7/dbmigration/cli}/DbmRollbackSqlCommandSpec.groovy (97%)
 rename grails-data-hibernate7/dbmigration/src/test/groovy/org/{grails/plugins/databasemigration/command => apache/grails/data/hibernate7/dbmigration/cli}/DbmRollbackToDateCommandSpec.groovy (97%)
 rename grails-data-hibernate7/dbmigration/src/test/groovy/org/{grails/plugins/databasemigration/command => apache/grails/data/hibernate7/dbmigration/cli}/DbmRollbackToDateSqlCommandSpec.groovy (97%)
 rename grails-data-hibernate7/dbmigration/src/test/groovy/org/{grails/plugins/databasemigration/command => apache/grails/data/hibernate7/dbmigration/cli}/DbmStatusCommandSpec.groovy (94%)
 rename {grails-data-hibernate5/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command => grails-data-hibernate7/dbmigration/src/test/groovy/org/apache/grails/data/hibernate7/dbmigration/cli}/DbmUpdateCommandSpec.groovy (97%)
 rename grails-data-hibernate7/dbmigration/src/test/groovy/org/{grails/plugins/databasemigration/command => apache/grails/data/hibernate7/dbmigration/cli}/DbmUpdateCountCommandSpec.groovy (96%)
 rename {grails-data-hibernate5/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command => grails-data-hibernate7/dbmigration/src/test/groovy/org/apache/grails/data/hibernate7/dbmigration/cli}/DbmUpdateCountSqlCommandSpec.groovy (97%)
 rename {grails-data-hibernate5/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command => grails-data-hibernate7/dbmigration/src/test/groovy/org/apache/grails/data/hibernate7/dbmigration/cli}/DbmUpdateSqlCommandSpec.groovy (98%)
 rename grails-data-hibernate7/dbmigration/src/test/groovy/org/{grails/plugins/databasemigration/command => apache/grails/data/hibernate7/dbmigration/cli}/DbmValidateCommandSpec.groovy (96%)
 rename grails-data-hibernate7/dbmigration/src/test/groovy/org/{grails/plugins/databasemigration/command => apache/grails/data/hibernate7/dbmigration/cli}/ScriptDatabaseMigrationCommandSpec.groovy (97%)
 rename grails-data-hibernate7/grails-plugin/src/{main/groovy/grails/plugin/hibernate/commands => cli/groovy/org/apache/grails/data/hibernate7/cli}/SchemaExportCommand.groovy (95%)
 delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/grails/GrailsConsole.java
 delete mode 100644 grails-forge/grails-forge-core/src/test/groovy/org/grails/forge/feature/grails/GrailsConsoleSpec.groovy
 create mode 100644 grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/commands/CliArtifactExtension.groovy
 create mode 100644 grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/commands/CliPublishingSupport.groovy
 create mode 100644 grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/commands/GrailsCliArtifactGradlePlugin.groovy
 create mode 100644 grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/commands/GrailsCliGradlePlugin.groovy
 create mode 100644 grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/commands/GrailsCliLibraryGradlePlugin.groovy
 create mode 100644 grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/util/ClasspathUtils.groovy
 create mode 100644 grails-gradle/plugins/src/test/groovy/org/grails/gradle/plugin/commands/CliAutoDiscoverySpec.groovy
 create mode 100644 grails-gradle/plugins/src/test/groovy/org/grails/gradle/plugin/commands/CliCompanionPublishingSpec.groovy
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/cli-companion-autodiscovery/app/build.gradle
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/cli-companion-autodiscovery/gradle.properties
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/cli-companion-autodiscovery/my-plugin/build.gradle
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/cli-companion-autodiscovery/my-plugin/src/cli/java/com/example/HelloWorldCommand.java
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/cli-companion-autodiscovery/my-plugin/src/cli/resources/META-INF/grails-cli.factories
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/cli-companion-autodiscovery/renamed-plugin/build.gradle
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/cli-companion-autodiscovery/renamed-plugin/src/cli/java/com/acme/AcmeCommand.java
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/cli-companion-autodiscovery/settings.gradle
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/cli-companion-publishing/console-lib/build.gradle
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/cli-companion-publishing/custom-owner/build.gradle
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/cli-companion-publishing/gradle.properties
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/cli-companion-publishing/owner/build.gradle
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/cli-companion-publishing/plugin-a/build.gradle
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/cli-companion-publishing/plugin-b/build.gradle
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/cli-companion-publishing/resolver/build.gradle
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/cli-companion-publishing/settings.gradle
 rename grails-scaffolding/src/{main/groovy/grails/plugin/scaffolding => cli/groovy/org/apache/grails/scaffolding/cli}/CommandLineHelper.groovy (94%)
 rename grails-scaffolding/{grails-app/commands/scaffolding => src/cli/groovy/org/apache/grails/scaffolding/cli}/CreateScaffoldControllerCommand.groovy (94%)
 rename grails-scaffolding/{grails-app/commands/scaffolding => src/cli/groovy/org/apache/grails/scaffolding/cli}/CreateScaffoldServiceCommand.groovy (93%)
 rename grails-scaffolding/{grails-app/commands/scaffolding => src/cli/groovy/org/apache/grails/scaffolding/cli}/GenerateAllCommand.groovy (91%)
 rename grails-scaffolding/{grails-app/commands/scaffolding => src/cli/groovy/org/apache/grails/scaffolding/cli}/GenerateAsyncControllerCommand.groovy (94%)
 rename grails-scaffolding/{grails-app/commands/scaffolding => src/cli/groovy/org/apache/grails/scaffolding/cli}/GenerateControllerCommand.groovy (95%)
 rename grails-scaffolding/{grails-app/commands/scaffolding => src/cli/groovy/org/apache/grails/scaffolding/cli}/GenerateScaffoldAllCommand.groovy (95%)
 rename grails-scaffolding/{grails-app/commands/scaffolding => src/cli/groovy/org/apache/grails/scaffolding/cli}/GenerateServiceCommand.groovy (93%)
 rename grails-scaffolding/{grails-app/commands/scaffolding => src/cli/groovy/org/apache/grails/scaffolding/cli}/GenerateViewsCommand.groovy (94%)
 rename grails-scaffolding/{grails-app/commands/scaffolding => src/cli/groovy/org/apache/grails/scaffolding/cli}/InstallTemplatesCommand.groovy (93%)
 rename {grails-spring-security/plugin/grails-app/commands/grails.plugin.springsecurity => grails-scaffolding/src/cli/groovy/org/apache/grails/scaffolding/cli}/SkipBootstrap.groovy (95%)
 rename grails-spring-security/oauth2/plugin/{grails-app/commands/grails/plugin/springsecurity/oauth2 => src/cli/groovy/org/apache/grails/security/oauth2/cli}/CommandLineHelper.groovy (95%)
 rename grails-spring-security/oauth2/plugin/{grails-app/commands/grails/plugin/springsecurity/oauth2 => src/cli/groovy/org/apache/grails/security/oauth2/cli}/InitOAuth2Command.groovy (97%)
 rename grails-spring-security/plugin/{grails-app/commands/grails.plugin.springsecurity => src/cli/groovy/org/apache/grails/security/cli}/CommandLineHelper.groovy (95%)
 rename grails-spring-security/plugin/{grails-app/commands/grails.plugin.springsecurity => src/cli/groovy/org/apache/grails/security/cli}/S2CreatePersistentTokenCommand.groovy (95%)
 rename grails-spring-security/plugin/{grails-app/commands/grails.plugin.springsecurity => src/cli/groovy/org/apache/grails/security/cli}/S2CreateRoleHierarchyEntryCommand.groovy (95%)
 rename grails-spring-security/plugin/{grails-app/commands/grails.plugin.springsecurity => src/cli/groovy/org/apache/grails/security/cli}/S2QuickstartCommand.groovy (99%)
 rename {grails-scaffolding/src/main/groovy/grails/plugin/scaffolding => grails-spring-security/plugin/src/cli/groovy/org/apache/grails/security/cli}/SkipBootstrap.groovy (95%)
 rename grails-web-url-mappings/src/{main/groovy/org/grails/web/mapping/reporting => cli/groovy/org/apache/grails/web/mapping/cli}/UrlMappingsReportCommand.groovy (89%)


(grails-core) 01/01: Merge pull request #15948 from apache/fix/split-cli-dependencies

Posted by jd...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

jdaugherty pushed a commit to branch 8.0.x
in repository https://gitbox.apache.org/repos/asf/grails-core.git

commit d1e4af1162331c072c981fbdb12dc9319460f16a
Merge: 76d9f18659 d6d49e85f3
Author: James Daugherty <jd...@jdresources.net>
AuthorDate: Sat Jul 18 15:49:36 2026 -0400

    Merge pull request #15948 from apache/fix/split-cli-dependencies
    
    Split CLI dependencies from the runtime classpath

 build.gradle                                       |   7 +
 dependencies.gradle                                |   2 +-
 gradle/cli-companion-bom-constraints.gradle        |  41 ++
 gradle/functional-test-config.gradle               |  11 +
 grails-bom/base/build.gradle                       |  20 +
 grails-bom/default/build.gradle                    |   4 +
 grails-bom/hibernate5-micronaut/build.gradle       |   4 +
 grails-bom/hibernate5/build.gradle                 |   4 +
 grails-bom/hibernate7-micronaut/build.gradle       |   4 +
 grails-bom/hibernate7/build.gradle                 |   4 +
 grails-bom/micronaut/build.gradle                  |   4 +
 .../common/compiler/GroovyTransformOrder.groovy    |   7 +
 grails-console/build.gradle                        |  10 +
 .../GrailsApplicationContextCommandRunner.groovy   |   5 +-
 grails-core/build.gradle                           |  13 +
 .../grails/core/cli}/ApplicationCommand.groovy     |   3 +-
 .../cli}/ApplicationContextCommandRegistry.groovy  |  11 +-
 .../grails/core/cli}/ConfigReportCommand.groovy    |   2 +-
 .../grails/core/cli}/ExecutionContext.groovy       |   3 +-
 .../core/cli}/GrailsApplicationCommand.groovy      |  10 +-
 .../compiler/CommandFactoriesTransformation.groovy | 105 +++++
 .../core/cli}/io/FileSystemInteraction.groovy      |   3 +-
 .../core/cli}/io/FileSystemInteractionImpl.groovy  |   3 +-
 .../core/cli}/template/TemplateException.groovy    |   2 +-
 .../core/cli}/template/TemplateRenderer.groovy     |   2 +-
 .../core/cli}/template/TemplateRendererImpl.groovy |   6 +-
 .../cli/resources/META-INF/grails-cli.factories    |  18 +
 ...org.codehaus.groovy.transform.ASTTransformation |   1 +
 .../compiler/injection/FactoriesFileWriter.groovy  | 140 ++++++
 .../GlobalGrailsClassInjectorTransformation.groovy |  86 +---
 .../core/io/support/GrailsFactoriesLoader.groovy   |  29 +-
 .../core/cli}/ConfigReportCommandSpec.groovy       |   2 +-
 .../CommandFactoriesTransformationSpec.groovy      |  45 ++
 .../injection/FactoriesFileWriterSpec.groovy       | 124 ++++++
 ...balGrailsClassInjectorTransformationSpec.groovy |   4 +-
 grails-data-hibernate5/dbmigration/build.gradle    |  37 +-
 ...plicationContextDatabaseMigrationCommand.groovy |   4 +-
 .../cli}/DatabaseMigrationCommand.groovy           |   2 +-
 .../cli}/DbmChangelogSyncCommand.groovy            |   4 +-
 .../cli}/DbmChangelogSyncSqlCommand.groovy         |   4 +-
 .../dbmigration/cli}/DbmChangelogToGroovy.groovy   |   2 +-
 .../cli}/DbmClearChecksumsCommand.groovy           |   4 +-
 .../dbmigration/cli}/DbmCreateChangelog.groovy     |   2 +-
 .../dbmigration/cli}/DbmDbDocCommand.groovy        |   4 +-
 .../dbmigration/cli}/DbmDiffCommand.groovy         |   4 +-
 .../dbmigration/cli}/DbmDropAllCommand.groovy      |   4 +-
 .../cli}/DbmFutureRollbackCountSqlCommand.groovy   |   4 +-
 .../cli}/DbmFutureRollbackSqlCommand.groovy        |   4 +-
 .../cli}/DbmGenerateChangelogCommand.groovy        |   4 +-
 .../cli}/DbmGenerateGormChangelogCommand.groovy    |   4 +-
 .../dbmigration/cli}/DbmGormDiffCommand.groovy     |   4 +-
 .../dbmigration/cli}/DbmListLocksCommand.groovy    |   4 +-
 .../cli}/DbmMarkNextChangesetRanCommand.groovy     |   4 +-
 .../cli}/DbmMarkNextChangesetRanSqlCommand.groovy  |   4 +-
 .../cli}/DbmPreviousChangesetSqlCommand.groovy     |   4 +-
 .../dbmigration/cli}/DbmReleaseLocksCommand.groovy |   4 +-
 .../dbmigration/cli}/DbmRollbackCommand.groovy     |   4 +-
 .../cli}/DbmRollbackCountCommand.groovy            |   4 +-
 .../cli}/DbmRollbackCountSqlCommand.groovy         |   4 +-
 .../dbmigration/cli}/DbmRollbackSqlCommand.groovy  |   4 +-
 .../cli}/DbmRollbackToDateCommand.groovy           |   4 +-
 .../cli}/DbmRollbackToDateSqlCommand.groovy        |   4 +-
 .../dbmigration/cli}/DbmStatusCommand.groovy       |   4 +-
 .../dbmigration/cli}/DbmTagCommand.groovy          |   4 +-
 .../dbmigration/cli}/DbmUpdateCommand.groovy       |   4 +-
 .../dbmigration/cli}/DbmUpdateCountCommand.groovy  |   4 +-
 .../cli}/DbmUpdateCountSqlCommand.groovy           |   4 +-
 .../dbmigration/cli}/DbmUpdateSqlCommand.groovy    |   4 +-
 .../dbmigration/cli}/DbmValidateCommand.groovy     |   4 +-
 .../cli}/ScriptDatabaseMigrationCommand.groovy     |   2 +-
 .../commands}/dbm-changelog-to-groovy.groovy       |   2 +-
 .../META-INF/commands}/dbm-create-changelog.groovy |   2 +-
 .../databasemigration/DbUpdateCommandSpec.groovy   |   6 +-
 ...ationContextDatabaseMigrationCommandSpec.groovy |   6 +-
 .../cli}/DatabaseMigrationCommandConfigSpec.groovy |   2 +-
 .../cli}/DatabaseMigrationCommandSpec.groovy       |   2 +-
 .../cli}/DbmChangelogSyncCommandSpec.groovy        |   4 +-
 .../cli}/DbmChangelogSyncCommandSqlSpec.groovy     |   4 +-
 .../cli}/DbmClearChecksumsCommandSpec.groovy       |   4 +-
 .../dbmigration/cli}/DbmDiffCommandSpec.groovy     |   4 +-
 .../dbmigration/cli}/DbmDropAllCommandSpec.groovy  |   4 +-
 .../DbmFutureRollbackCountSqlCommandSpec.groovy    |   4 +-
 .../cli}/DbmFutureRollbackSqlCommandSpec.groovy    |   4 +-
 .../cli}/DbmGenerateChangelogCommandSpec.groovy    |   4 +-
 .../DbmGenerateGormChangelogCommandSpec.groovy     |   4 +-
 .../dbmigration/cli}/DbmGormDiffCommandSpec.groovy |   4 +-
 .../cli}/DbmListLocksCommandSpec.groovy            |   4 +-
 .../cli}/DbmMarkNextChangesetRanCommandSpec.groovy |   4 +-
 .../DbmMarkNextChangesetRanSqlCommandSpec.groovy   |   4 +-
 .../cli}/DbmPreviousChangesetSqlCommandSpec.groovy |   4 +-
 .../cli}/DbmReleaseLocksCommandSpec.groovy         |   4 +-
 .../dbmigration/cli}/DbmRollbackCommandSpec.groovy |   4 +-
 .../cli}/DbmRollbackCountCommandSpec.groovy        |   4 +-
 .../cli}/DbmRollbackCountSqlCommandSpec.groovy     |   4 +-
 .../cli}/DbmRollbackSqlCommandSpec.groovy          |   4 +-
 .../cli}/DbmRollbackToDateCommandSpec.groovy       |   4 +-
 .../cli}/DbmRollbackToDateSqlCommandSpec.groovy    |   4 +-
 .../dbmigration/cli}/DbmStatusCommandSpec.groovy   |   4 +-
 .../dbmigration/cli}/DbmUpdateCommandSpec.groovy   |   4 +-
 .../cli}/DbmUpdateCountCommandSpec.groovy          |   4 +-
 .../cli}/DbmUpdateCountSqlCommandSpec.groovy       |   4 +-
 .../cli}/DbmUpdateSqlCommandSpec.groovy            |   4 +-
 .../dbmigration/cli}/DbmValidateCommandSpec.groovy |   4 +-
 .../cli}/ScriptDatabaseMigrationCommandSpec.groovy |   2 +-
 .../liquibase/GroovyChangeLogSpec.groovy           |  12 +-
 .../liquibase/GroovyPreconditionSpec.groovy        |   4 +-
 grails-data-hibernate5/grails-plugin/build.gradle  |  18 +-
 .../hibernate5/cli}/SchemaExportCommand.groovy     |   6 +-
 grails-data-hibernate7/dbmigration/build.gradle    |  24 +-
 ...plicationContextDatabaseMigrationCommand.groovy |   4 +-
 .../cli}/DatabaseMigrationCommand.groovy           |   2 +-
 .../cli}/DbmChangelogSyncCommand.groovy            |   4 +-
 .../cli}/DbmChangelogSyncSqlCommand.groovy         |   4 +-
 .../dbmigration/cli}/DbmChangelogToGroovy.groovy   |   2 +-
 .../cli}/DbmClearChecksumsCommand.groovy           |   4 +-
 .../dbmigration/cli}/DbmCreateChangelog.groovy     |   2 +-
 .../dbmigration/cli}/DbmDbDocCommand.groovy        |   4 +-
 .../dbmigration/cli}/DbmDiffCommand.groovy         |   4 +-
 .../dbmigration/cli}/DbmDropAllCommand.groovy      |   4 +-
 .../cli}/DbmFutureRollbackCountSqlCommand.groovy   |   4 +-
 .../cli}/DbmFutureRollbackSqlCommand.groovy        |   4 +-
 .../cli}/DbmGenerateChangelogCommand.groovy        |   4 +-
 .../cli}/DbmGenerateGormChangelogCommand.groovy    |   4 +-
 .../dbmigration/cli}/DbmGormDiffCommand.groovy     |   4 +-
 .../dbmigration/cli}/DbmListLocksCommand.groovy    |   4 +-
 .../cli}/DbmMarkNextChangesetRanCommand.groovy     |   4 +-
 .../cli}/DbmMarkNextChangesetRanSqlCommand.groovy  |   4 +-
 .../cli}/DbmPreviousChangesetSqlCommand.groovy     |   4 +-
 .../dbmigration/cli}/DbmReleaseLocksCommand.groovy |   4 +-
 .../dbmigration/cli}/DbmRollbackCommand.groovy     |   4 +-
 .../cli}/DbmRollbackCountCommand.groovy            |   4 +-
 .../cli}/DbmRollbackCountSqlCommand.groovy         |   4 +-
 .../dbmigration/cli}/DbmRollbackSqlCommand.groovy  |   4 +-
 .../cli}/DbmRollbackToDateCommand.groovy           |   4 +-
 .../cli}/DbmRollbackToDateSqlCommand.groovy        |   4 +-
 .../dbmigration/cli}/DbmStatusCommand.groovy       |   4 +-
 .../dbmigration/cli}/DbmTagCommand.groovy          |   4 +-
 .../dbmigration/cli}/DbmUpdateCommand.groovy       |   4 +-
 .../dbmigration/cli}/DbmUpdateCountCommand.groovy  |   4 +-
 .../cli}/DbmUpdateCountSqlCommand.groovy           |   4 +-
 .../dbmigration/cli}/DbmUpdateSqlCommand.groovy    |   4 +-
 .../dbmigration/cli}/DbmValidateCommand.groovy     |   4 +-
 .../cli}/ScriptDatabaseMigrationCommand.groovy     |   2 +-
 .../commands}/dbm-changelog-to-groovy.groovy       |   2 +-
 .../META-INF/commands}/dbm-create-changelog.groovy |   2 +-
 .../databasemigration/DbUpdateCommandSpec.groovy   |   6 +-
 ...ationContextDatabaseMigrationCommandSpec.groovy |   6 +-
 .../cli}/DatabaseMigrationCommandConfigSpec.groovy |   2 +-
 .../cli}/DatabaseMigrationCommandSpec.groovy       |   2 +-
 .../cli}/DbmChangelogSyncCommandSpec.groovy        |   4 +-
 .../cli}/DbmChangelogSyncCommandSqlSpec.groovy     |   4 +-
 .../cli}/DbmClearChecksumsCommandSpec.groovy       |   4 +-
 .../dbmigration/cli}/DbmDiffCommandSpec.groovy     |   4 +-
 .../dbmigration/cli}/DbmDropAllCommandSpec.groovy  |   4 +-
 .../DbmFutureRollbackCountSqlCommandSpec.groovy    |   4 +-
 .../cli}/DbmFutureRollbackSqlCommandSpec.groovy    |   4 +-
 .../cli}/DbmGenerateChangelogCommandSpec.groovy    |   4 +-
 .../DbmGenerateGormChangelogCommandSpec.groovy     |   4 +-
 .../dbmigration/cli}/DbmGormDiffCommandSpec.groovy |   4 +-
 .../cli}/DbmListLocksCommandSpec.groovy            |   4 +-
 .../cli}/DbmMarkNextChangesetRanCommandSpec.groovy |   4 +-
 .../DbmMarkNextChangesetRanSqlCommandSpec.groovy   |   4 +-
 .../cli}/DbmPreviousChangesetSqlCommandSpec.groovy |   4 +-
 .../cli}/DbmReleaseLocksCommandSpec.groovy         |   4 +-
 .../dbmigration/cli}/DbmRollbackCommandSpec.groovy |   4 +-
 .../cli}/DbmRollbackCountCommandSpec.groovy        |   4 +-
 .../cli}/DbmRollbackCountSqlCommandSpec.groovy     |   4 +-
 .../cli}/DbmRollbackSqlCommandSpec.groovy          |   4 +-
 .../cli}/DbmRollbackToDateCommandSpec.groovy       |   4 +-
 .../cli}/DbmRollbackToDateSqlCommandSpec.groovy    |   4 +-
 .../dbmigration/cli}/DbmStatusCommandSpec.groovy   |   4 +-
 .../dbmigration/cli}/DbmUpdateCommandSpec.groovy   |   4 +-
 .../cli}/DbmUpdateCountCommandSpec.groovy          |   4 +-
 .../cli}/DbmUpdateCountSqlCommandSpec.groovy       |   4 +-
 .../cli}/DbmUpdateSqlCommandSpec.groovy            |   4 +-
 .../dbmigration/cli}/DbmValidateCommandSpec.groovy |   4 +-
 .../cli}/ScriptDatabaseMigrationCommandSpec.groovy |   2 +-
 .../liquibase/GroovyChangeLogSpec.groovy           |  12 +-
 .../liquibase/GroovyPreconditionSpec.groovy        |   4 +-
 grails-data-hibernate7/grails-plugin/build.gradle  |  18 +
 .../hibernate7/cli}/SchemaExportCommand.groovy     |   7 +-
 .../guide/commandLine/creatingCustomCommands.adoc  | 178 ++++++--
 .../gradleBuild/gradleDependencies.adoc            |   1 -
 .../commandLine/gradleBuild/gradlePlugins.adoc     |   2 +
 grails-doc/src/en/guide/introduction/whatsNew.adoc |  52 +++
 .../en/guide/plugins/providingBasicArtefacts.adoc  |  46 +-
 .../src/en/guide/upgrading/upgrading80x.adoc       | 122 +++++
 .../src/en/ref/Command Line/create-command.adoc    |  19 +-
 .../command/CreateDomainClassCommandSpec.groovy    |   2 +-
 .../grails/forge/feature/grails/GrailsConsole.java |  66 ---
 .../feature/migration/DatabaseMigrationPlugin.java |  12 +-
 .../forge/feature/grails/GrailsConsoleSpec.groovy  |  36 --
 .../migration/DatabaseMigrationPluginSpec.groovy   |  13 +-
 .../org/grails/forge/create/CreateAppSpec.groovy   |   2 +-
 .../io/support/FactoriesLoaderSupport.groovy       |  23 +-
 grails-gradle/plugins/build.gradle                 |  18 +
 .../plugin/commands/CliArtifactExtension.groovy    |  53 +++
 .../plugin/commands/CliPublishingSupport.groovy    | 166 +++++++
 .../commands/GrailsCliArtifactGradlePlugin.groovy  | 229 ++++++++++
 .../plugin/commands/GrailsCliGradlePlugin.groovy   | 490 +++++++++++++++++++++
 .../commands/GrailsCliLibraryGradlePlugin.groovy   |  50 +++
 .../gradle/plugin/core/GrailsExtension.groovy      |  18 +-
 .../gradle/plugin/core/GrailsGradlePlugin.groovy   | 191 +-------
 .../gradle/plugin/util/ClasspathUtils.groovy       |  60 +++
 .../gradle/plugin/web/GrailsWebGradlePlugin.groovy |   6 +-
 .../plugin/commands/CliAutoDiscoverySpec.groovy    |  95 ++++
 .../commands/CliCompanionPublishingSpec.groovy     |  93 ++++
 .../cli-companion-autodiscovery/app/build.gradle   |  57 +++
 .../cli-companion-autodiscovery/gradle.properties  |   2 +
 .../my-plugin/build.gradle                         |  12 +
 .../cli/java/com/example/HelloWorldCommand.java    |   6 +
 .../cli/resources/META-INF/grails-cli.factories    |   1 +
 .../renamed-plugin/build.gradle                    |  13 +
 .../src/cli/java/com/acme/AcmeCommand.java         |   5 +
 .../cli-companion-autodiscovery/settings.gradle    |   3 +
 .../console-lib/build.gradle                       |  28 ++
 .../custom-owner/build.gradle                      |  30 ++
 .../cli-companion-publishing/gradle.properties     |   1 +
 .../cli-companion-publishing/owner/build.gradle    |  27 ++
 .../cli-companion-publishing/plugin-a/build.gradle |  32 ++
 .../cli-companion-publishing/plugin-b/build.gradle |  34 ++
 .../cli-companion-publishing/resolver/build.gradle |  27 ++
 .../cli-companion-publishing/settings.gradle       |   3 +
 grails-profiles/base/profile.yml                   |   2 -
 .../base/templates/artifacts/Command.groovy        |   2 +-
 grails-scaffolding/build.gradle                    |  20 +
 .../scaffolding/cli}/CommandLineHelper.groovy      |   4 +-
 .../cli}/CreateScaffoldControllerCommand.groovy    |   6 +-
 .../cli}/CreateScaffoldServiceCommand.groovy       |   6 +-
 .../scaffolding/cli}/GenerateAllCommand.groovy     |   6 +-
 .../cli}/GenerateAsyncControllerCommand.groovy     |   6 +-
 .../cli}/GenerateControllerCommand.groovy          |   6 +-
 .../cli}/GenerateScaffoldAllCommand.groovy         |   6 +-
 .../scaffolding/cli}/GenerateServiceCommand.groovy |   6 +-
 .../scaffolding/cli}/GenerateViewsCommand.groovy   |   6 +-
 .../cli}/InstallTemplatesCommand.groovy            |   6 +-
 .../grails/scaffolding/cli}/SkipBootstrap.groovy   |   2 +-
 .../ApplicationContextCommandFactory.groovy        |   4 +-
 grails-spring-security/oauth2/plugin/build.gradle  |  20 +
 .../security/oauth2/cli}/CommandLineHelper.groovy  |   2 +-
 .../security/oauth2/cli}/InitOAuth2Command.groovy  |   5 +-
 grails-spring-security/plugin/build.gradle         |  20 +
 .../grails/security/cli}/CommandLineHelper.groovy  |   4 +-
 .../cli}/S2CreatePersistentTokenCommand.groovy     |   5 +-
 .../cli}/S2CreateRoleHierarchyEntryCommand.groovy  |   5 +-
 .../security/cli}/S2QuickstartCommand.groovy       |   5 +-
 .../grails/security/cli}/SkipBootstrap.groovy      |   2 +-
 grails-test-examples/app1/build.gradle             |   1 -
 grails-test-examples/app2/build.gradle             |   1 -
 grails-test-examples/app3/build.gradle             |   1 -
 grails-test-examples/cache/build.gradle            |   1 -
 .../ConfigReportCommandIntegrationSpec.groovy      |   4 +-
 grails-test-examples/datasources/build.gradle      |   1 -
 grails-test-examples/exploded/build.gradle         |   1 -
 grails-test-examples/gorm/build.gradle             |   1 -
 .../graphql/grails-docs-app/build.gradle           |   1 -
 .../grails-multi-datastore-app/build.gradle        |   1 -
 .../graphql/grails-tenant-app/build.gradle         |   1 -
 .../graphql/grails-test-app/build.gradle           |   1 -
 grails-test-examples/hibernate7/app1/build.gradle  |   1 -
 .../hibernate7/datasources/build.gradle            |   1 -
 grails-test-examples/hibernate7/gorm/build.gradle  |   1 -
 .../issue-698-domain-save-npe/build.gradle         |   1 -
 .../hibernate7/scaffolding-fields/build.gradle     |   1 -
 grails-test-examples/hyphenated/build.gradle       |   1 -
 grails-test-examples/issue-11102/build.gradle      |   1 -
 .../issue-698-domain-save-npe/build.gradle         |   1 -
 grails-test-examples/issue-views-182/build.gradle  |   1 -
 grails-test-examples/namespaces/build.gradle       |   1 -
 grails-test-examples/plugins/exploded/build.gradle |   1 -
 .../plugins/issue11005/build.gradle                |   1 -
 .../plugins/loadafter/build.gradle                 |   1 -
 .../plugins/loadfirst/build.gradle                 |   1 -
 .../plugins/loadsecond/build.gradle                |   1 -
 .../plugins/micronaut-singleton/build.gradle       |   1 +
 .../scaffolding-fields/build.gradle                |   1 -
 grails-test-examples/scaffolding/build.gradle      |   1 -
 grails-web-url-mappings/build.gradle               |  16 +
 .../mapping/cli}/UrlMappingsReportCommand.groovy   |   7 +-
 279 files changed, 3064 insertions(+), 869 deletions(-)