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/10/14 13:51:00 UTC
(grails-core) branch 9.0.x updated (1edb825aa8 -> 386e881473)
This is an automated email from the ASF dual-hosted git repository.
jdaugherty pushed a change to branch 9.0.x
in repository https://gitbox.apache.org/repos/asf/grails-core.git
from 1edb825aa8 Merge branch '8.1.x' into 9.0.x
add ba940ec415 Honour grails.native2ascii in a plugin's build script
add e1131ca72e Move the Forge build conventions into build-logic
add 46ff841f4e Make Forge a Grails plugin hosted by a web application and a CLI application
add 50f0f7975d Let a GSP page write no line for its template logic
add b686570349 Render Forge's templates with GSP instead of Rocker
add 6010bed3a4 Keep the Forge API's OpenAPI base document with the web application's configuration
add 27971429e8 Reduce Forge's documentation script to what Groovydoc needs
add 651f2cde15 Trim only the logic lines of a GSP page's text
add 27068cdbbf Leave a GSP page's last line of blanks as it is when trimming logic lines
add a20c6e6402 Merge branch '8.0.x' into feat/forge-grails-composite
add 2d11d0d1c5 Keep build-logic on the Maven 3 compatible plexus-xml
add 0203519866 Merge branch '8.1.x' into feat/forge-grails-composite
add 9f08b0d9af Build the Forge AWS bundle with the configuration cache
add acb868664a Poll status before failing the start in the hidden-details spec
add 1b259afe51 Restore Forge compatibility after the Grails conversion
add 967cb319c5 Merge branch '8.1.x' into feat/forge-grails-composite
add 313f9787b7 Keep hosted Forge API details in the deployment runbook
add 6a14f076e4 Merge branch '8.1.x' into feat/forge-grails-composite
add f64c002d33 Merge pull request #16551 from apache/feat/forge-grails-composite
new 696429eab7 Merge branch '8.1.x' into 9.0.x
new 1c2b6b8cac Copy the streamed renderers before adding the built-in ones
new 386e881473 Give the Forge CLI test fixtures Groovy 6's call-site module
The 3 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:
.agents/skills/gradle-developer/SKILL.md | 4 +-
.github/workflows/forge-deploy-aws.yml | 4 +-
.gitignore | 4 +
AGENTS.md | 2 +-
RELEASE.md | 4 +-
THREAT_MODEL.md | 6 +-
.../gradle/wrapper/gradle-wrapper.properties | 2 +-
build-logic/plugins/build.gradle | 13 +
.../grails/buildsrc/GrailsCodeStylePlugin.groovy | 2 +-
.../buildsrc/WriteGrailsVersionInfoTask.groovy | 12 +-
.../GrailsGroovyExtensionTransformer.groovy | 26 +-
.../shadowjar/GrailsShadowLicenseTransform.groovy | 0
.../shadowjar/GrailsShadowNoticeTransform.groovy | 0
.../internal/tasks/GenerateManpageAsciidoc.java | 0
.../internal/tasks/PicocliBuildCompletionTask.java | 0
.../buildsrc/WriteGrailsVersionInfoTaskSpec.groovy | 122 ++++
.../GrailsGroovyExtensionTransformerSpec.groovy | 125 +++++
gradle.properties | 4 +-
gradle/rat-root-config.gradle | 2 +-
gradle/wrapper/gradle-wrapper.properties | 2 +-
.../web/async/ControllersAsyncGrailsPlugin.groovy | 6 +-
.../theWebLayer/gsp/GSPBasics/pageDirectives.adoc | 40 ++
.../src/en/guide/upgrading/upgrading81x.adoc | 22 +
grails-forge/.gitattributes | 5 -
grails-forge/.gitignore | 20 -
grails-forge/README.md | 61 +-
grails-forge/build.gradle | 5 -
grails-forge/buildSrc/build.gradle | 62 ---
grails-forge/buildSrc/settings.gradle | 35 --
.../forge/rocker/plugin/JavaGeneratorRunnable.java | 166 ------
.../forge/rocker/plugin/RockerConfiguration.java | 99 ----
.../grails/forge/rocker/plugin/RockerPlugin.java | 92 ---
.../rocker/plugin/RockerSourceSetProperty.java | 80 ---
.../org/grails/forge/rocker/plugin/RockerTask.java | 185 -------
.../forge/rocker/plugin/TemplateDirectorySet.java | 124 -----
.../forge/rocker/plugin/WhitespaceProcessor.java | 52 --
grails-forge/config/checkstyle/checkstyle.xml | 227 --------
grails-forge/config/spotless.license.java | 18 -
grails-forge/docs/aws-elastic-beanstalk.md | 18 +-
grails-forge/docs/choose-postgresql.png | Bin 108993 -> 0 bytes
grails-forge/docs/cloud_sql_create_intance.png | Bin 100207 -> 0 bytes
grails-forge/docs/create-database.png | Bin 150843 -> 0 bytes
grails-forge/docs/create-two-databases.png | Bin 175471 -> 0 bytes
grails-forge/docs/dbinstance-options.png | Bin 100921 -> 0 bytes
grails-forge/docs/enable-cloud-sql-admin-api.png | Bin 151032 -> 0 bytes
grails-forge/docs/enable-compute-engine-api.png | Bin 79831 -> 0 bytes
.../etc/bin/generate-build-artifact-hashes.groovy | 79 ---
grails-forge/etc/bin/test-reproducible-builds.sh | 64 ---
grails-forge/gradle.properties | 33 +-
grails-forge/gradle/code-style-config.gradle | 96 ----
grails-forge/gradle/doc-config.gradle | 15 +-
grails-forge/gradle/groovy-version-pin.gradle | 29 -
.../gradle/micronaut-openapi-config.gradle | 53 --
grails-forge/gradle/test-config.gradle | 26 +-
.../gradle/wrapper/gradle-wrapper.properties | 2 +-
grails-forge/grails-cli-shadow/build.gradle | 11 +
grails-forge/grails-cli/build.gradle | 16 +-
.../grails/cli/DelegatingShellApplication.groovy | 2 +-
.../grails-forge-analytics-postgres/build.gradle | 120 ----
.../analytics/postgres/AnalyticsController.java | 98 ----
.../forge/analytics/postgres/Application.java | 140 -----
.../analytics/postgres/ApplicationRepository.java | 53 --
.../grails/forge/analytics/postgres/Feature.java | 79 ---
.../analytics/postgres/FeatureRepository.java | 121 ----
.../org/grails/forge/analytics/postgres/Main.java | 49 --
.../postgres/gcp/GoogleCloudSqlSetup.java | 58 --
.../native-image.properties | 24 -
.../src/main/resources/application-dev.yml | 9 -
.../src/main/resources/application.yml | 14 -
.../resources/databasemigrations/V1__schema.sql | 21 -
.../src/main/resources/logback.xml | 15 -
.../postgres/StoreGeneratedProjectStatsSpec.groovy | 125 -----
grails-forge/grails-forge-api/build.gradle | 83 ---
.../grails/forge/api/ApplicationController.java | 240 --------
.../org/grails/forge/api/ApplicationTypeDTO.java | 129 -----
.../forge/api/ApplicationTypeOperations.java | 75 ---
.../org/grails/forge/api/DevelopmentReloading.java | 50 --
.../grails/forge/api/DevelopmentReloadingDTO.java | 103 ----
.../main/java/org/grails/forge/api/FeatureDTO.java | 153 -----
.../java/org/grails/forge/api/FeatureService.java | 104 ----
.../java/org/grails/forge/api/GormImplDTO.java | 111 ----
.../java/org/grails/forge/api/JdkVersionDTO.java | 110 ----
.../java/org/grails/forge/api/LanguageDTO.java | 124 -----
.../main/java/org/grails/forge/api/LinkDTO.java | 63 ---
.../java/org/grails/forge/api/RequestInfo.java | 139 -----
.../java/org/grails/forge/api/SelectOptionDTO.java | 62 ---
.../java/org/grails/forge/api/ServletImplDTO.java | 100 ----
.../forge/api/analytics/GenerationListener.java | 68 ---
.../forge/api/bind/RequestInfoArgumentBinder.java | 93 ----
.../forge/api/create/AbstractCreateController.java | 117 ----
.../forge/api/create/zip/ZipCreateController.java | 196 -------
.../forge/api/create/zip/ZipCreateOperation.java | 69 ---
.../org/grails/forge/api/diff/DiffController.java | 228 --------
.../org/grails/forge/api/diff/DiffOperations.java | 92 ---
.../api/options/ApplicationTypeSelectOptions.java | 42 --
.../options/DevelopmentReloadingSelectOptions.java | 42 --
.../forge/api/options/GormImplSelectOptions.java | 42 --
.../forge/api/options/JdkVersionSelectOptions.java | 42 --
.../forge/api/options/SelectOptionsController.java | 60 --
.../forge/api/options/SelectOptionsOperations.java | 27 -
.../api/options/ServletImplSelectOptions.java | 42 --
.../forge/api/preview/PreviewController.java | 120 ----
.../forge/api/preview/PreviewOperations.java | 61 --
.../grails-forge-api/reflect-config.json | 52 --
.../grails-forge-api/resource-config.json | 11 -
.../src/main/resources/application.yml | 5 -
.../src/main/resources/select_options.properties | 1 -
.../forge/api/ApplicationControllerSpec.groovy | 111 ----
.../grails/forge/api/ApplicationTypeClient.groovy | 42 --
.../org/grails/forge/api/CreateClient.groovy | 57 --
.../groovy/org/grails/forge/api/DiffClient.groovy | 56 --
.../org/grails/forge/api/DiffControllerSpec.groovy | 85 ---
.../grails/forge/api/FeatureControllerSpec.groovy | 211 -------
.../org/grails/forge/api/PreviewClient.groovy | 42 --
.../grails/forge/api/PreviewControllerSpec.groovy | 62 ---
.../forge/api/ZipCreateControllerSpec.groovy | 145 -----
.../src/test/resources/features_es.properties | 4 -
.../src/test/resources/logback.xml | 17 -
grails-forge/grails-forge-cli/build.gradle | 109 ++--
.../grails-app/conf/application.yml | 28 +
.../init/org/grails/forge/cli/Application.groovy | 84 +++
.../forge/cli/command/templates/controller.gsp} | 23 +-
.../cli/command/templates/controllerSpec.gsp} | 25 +-
.../views/forge/cli/command/templates/domain.gsp} | 25 +-
.../forge/cli/command/templates/domainSpec.gsp} | 27 +-
.../forge/cli/command/templates/interceptor.gsp} | 25 +-
.../cli/command/templates/interceptorSpec.gsp} | 27 +-
.../views/forge/cli/command/templates/job.gsp} | 23 +-
.../views/forge/cli/command/templates/service.gsp} | 27 +-
.../forge/cli/command/templates/serviceSpec.gsp} | 25 +-
.../views/forge/cli/command/templates/taglib.gsp} | 23 +-
.../forge/cli/command/templates/taglibSpec.gsp} | 25 +-
.../org/grails/forge/cli/CodeGenConfig.groovy | 189 +++++++
.../grails/forge/cli/CommonOptionsMixin.groovy} | 28 +-
.../groovy/org/grails/forge/cli/ForgeCli.groovy | 133 +++++
.../org/grails/forge/cli/ForgeCommand.groovy | 67 +++
.../grails/forge/cli/GrailsPicocliFactory.groovy | 59 ++
.../org/grails/forge/cli/InteractiveShell.groovy} | 107 ++--
.../forge/cli/command/AddPropertyCommand.groovy | 169 ++++++
.../grails/forge/cli/command/BaseCommand.groovy | 88 +++
.../grails/forge/cli/command/CodeGenCommand.groovy | 118 ++++
.../forge/cli/command/CreateAppCommand.groovy} | 45 +-
.../grails/forge/cli/command/CreateCommand.groovy | 126 +++++
.../cli/command/CreateControllerCommand.groovy | 84 +++
.../cli/command/CreateDomainClassCommand.groovy | 84 +++
.../cli/command/CreateInterceptorCommand.groovy | 84 +++
.../forge/cli/command/CreateJobCommand.groovy | 85 +++
.../forge/cli/command/CreatePluginCommand.groovy} | 45 +-
.../forge/cli/command/CreateRestApiCommand.groovy} | 45 +-
.../forge/cli/command/CreateServiceCommand.groovy | 84 +++
.../forge/cli/command/CreateTagLibCommand.groovy | 84 +++
.../cli/command/CreateWebPluginCommand.groovy} | 45 +-
.../forge/cli/command/CreateWebappCommand.groovy} | 45 +-
.../command/DevelopmentReloadingCandidates.groovy} | 18 +-
.../command/DevelopmentReloadingConverter.groovy} | 20 +-
.../forge/cli/command/GormImplCandidates.groovy} | 17 +-
.../forge/cli/command/GormImplConverter.groovy} | 22 +-
.../forge/cli/command/LanguageCandidates.groovy} | 17 +-
.../forge/cli/command/LanguageConverter.groovy} | 18 +-
.../grails/forge/cli/command/ListFeatures.groovy | 106 ++++
.../cli/command/ServletImplCandidates.groovy} | 17 +-
.../forge/cli/command/ServletImplConverter.groovy} | 20 +-
.../forge/cli/util/GrailsVersionProvider.groovy} | 28 +-
.../java/org/grails/forge/cli/Application.java | 128 -----
.../java/org/grails/forge/cli/CodeGenConfig.java | 180 ------
.../org/grails/forge/cli/GrailsPicocliFactory.java | 57 --
.../forge/cli/command/AddPropertyCommand.java | 181 ------
.../org/grails/forge/cli/command/BaseCommand.java | 92 ---
.../grails/forge/cli/command/CodeGenCommand.java | 123 -----
.../grails/forge/cli/command/CreateCommand.java | 137 -----
.../forge/cli/command/CreateControllerCommand.java | 88 ---
.../cli/command/CreateDomainClassCommand.java | 88 ---
.../cli/command/CreateInterceptorCommand.java | 88 ---
.../grails/forge/cli/command/CreateJobCommand.java | 87 ---
.../forge/cli/command/CreateServiceCommand.java | 88 ---
.../forge/cli/command/CreateTagLibCommand.java | 88 ---
.../org/grails/forge/cli/command/ListFeatures.java | 111 ----
.../grails-forge-cli/native-image.properties | 2 -
.../grails-forge-cli/resource-config.json | 7 -
.../src/main/resources/simplelogger.properties | 23 +
.../org/grails/forge/cli/ApplicationSpec.groovy | 110 ++++
.../CodeGenConfigDevelopmentReloadingSpec.groovy | 24 +-
.../org/grails/forge/cli/CommandFixture.groovy | 6 +-
.../groovy/org/grails/forge/cli/CommandSpec.groovy | 8 +
.../org/grails/forge/cli/ForgeCliSpec.groovy} | 41 +-
.../cli/command/ApplicationCommandSpec.groovy | 18 +-
.../forge/cli/command/CodeGenCommandSpec.groovy | 21 +-
.../forge/cli/command/CreateAppCommandSpec.groovy | 34 +-
.../cli/command/CreateControllerCommandSpec.groovy | 8 -
.../command/CreateDomainClassCommandSpec.groovy | 7 -
.../command/CreateInterceptorCommandSpec.groovy | 9 -
.../forge/cli/command/CreateJobCommandSpec.groovy | 8 -
.../cli/command/CreateServiceCommandSpec.groovy | 8 -
.../cli/command/CreateTagLibCommandSpec.groovy | 12 -
.../groovy/org/grails/forge/cli/CliRunner.groovy} | 25 +-
grails-forge/grails-forge-core/build.gradle | 80 +--
.../asciidoctor/template/asciidocGradle.gsp} | 17 +-
.../feature/asciidoctor/template/indexAdoc.gsp} | 8 +-
.../views/forge/feature/build/gitignore.gsp} | 6 +-
.../feature/build/gradle/templates/buildGradle.gsp | 140 +++++
.../gradle/templates/buildSrcBuildGradle.gsp} | 56 +-
.../build/gradle/templates/dependencies.gsp} | 34 +-
.../build/gradle/templates/gradleProperties.gsp} | 38 +-
.../gradle/templates/gradleWrapperProperties.gsp} | 33 +-
.../build/gradle/templates/settingsGradle.gsp | 45 +-
.../grails-app/views/forge/feature/cli.gsp | 43 ++
.../plain/templates/plainGithubWorkflow.gsp} | 27 +-
.../github/workflows/templates/javaSetup.gsp} | 24 +-
.../grails/templates/applicationController.gsp} | 14 +-
.../forge/feature/grails/templates/plugin.gsp} | 41 +-
.../feature/grails/templates/urlMappings.gsp} | 29 +-
.../feature/lang/groovy/templates/application.gsp} | 58 +-
.../feature/lang/groovy/templates/bootStrap.gsp} | 37 +-
.../forge/feature/logging/template/logback.gsp} | 12 +-
.../migration/templates/dbMigrationGradle.gsp} | 11 +-
.../forge/feature/other/template/maindocs.gsp} | 23 +-
.../forge/feature/other/template/markdownLink.gsp} | 11 +-
.../views/forge/feature/other/template/readme.gsp} | 45 +-
.../forge/feature/security/template/role.gsp} | 18 +-
.../template/securityApplicationGroovy.gsp} | 31 +-
.../forge/feature/security/template/user.gsp} | 26 +-
.../feature/security/template/userClassic.gsp} | 28 +-
.../security/template/userClassicService.gsp} | 16 +-
.../feature/security/template/userClassicSpec.gsp} | 14 +-
.../feature/security/template/userController.gsp} | 16 +-
.../forge/feature/security/template/userRole.gsp} | 20 +-
.../feature/security/template/userService.gsp} | 20 +-
.../forge/feature/security/template/userSpec.gsp} | 14 +-
.../feature/spring/template/springResources.gsp} | 6 +-
.../feature/test/template/containerGebSpec.gsp} | 25 +-
.../forge/feature/test/template/gebConfig.gsp} | 14 +-
.../views/forge/feature/test/template/gebSpec.gsp} | 25 +-
.../forge/feature/view/json/templates/_errors.gsp} | 6 +-
.../forge/feature/view/json/templates/_object.gsp} | 8 +-
.../forge/feature/view/json/templates/error.gsp} | 6 +-
.../forge/feature/view/json/templates/index.gsp} | 6 +-
.../feature/view/json/templates/notFound.gsp} | 6 +-
.../feature/view/markup/templates/_errors.gsp} | 6 +-
.../feature/view/markup/templates/_object.gsp} | 8 +-
.../forge/feature/view/markup/templates/error.gsp} | 6 +-
.../forge/feature/view/markup/templates/index.gsp} | 6 +-
.../feature/view/markup/templates/notFound.gsp} | 6 +-
.../views/forge/template/api/grailsForgeApi.gsp} | 37 +-
.../org/grails/forge/ForgeCoreConfiguration.groovy | 50 ++
.../org/grails/forge/ForgeGrailsPlugin.groovy | 49 ++
.../forge/application/ApplicationType.groovy} | 44 +-
.../forge/application/ContextFactory.groovy} | 131 +++--
.../forge/application/OperatingSystem.groovy} | 27 +-
.../application/PluginAvailableFeatures.groovy} | 23 +-
.../org/grails/forge/application/Project.groovy | 93 ++++
.../forge/application/ProjectIdentifier.groovy} | 28 +-
.../application/RestApiAvailableFeatures.groovy} | 23 +-
.../forge/application/WebAvailableFeatures.groovy} | 20 +-
.../application/WebPluginAvailableFeatures.groovy} | 29 +-
.../generator/DefaultProjectGenerator.groovy} | 103 ++--
.../application/generator/GeneratorContext.groovy | 397 +++++++++++++
.../application/generator/ProjectGenerator.groovy} | 30 +-
.../org/grails/forge/build/BuildPlugin.groovy} | 28 +-
.../org/grails/forge/build/BuildProperties.groovy} | 36 +-
.../org/grails/forge/build/Comment.groovy} | 15 +-
.../org/grails/forge/build/Property.groovy} | 15 +-
.../forge/build/dependencies/Coordinate.groovy} | 45 +-
.../build/dependencies/CoordinateResolver.groovy} | 10 +-
.../dependencies/DefaultCoordinateResolver.groovy} | 32 +-
.../forge/build/dependencies/Dependency.groovy | 393 +++++++++++++
.../build/dependencies/DependencyContext.groovy} | 41 +-
.../build/dependencies/DependencyCoordinate.groovy | 120 ++++
.../dependencies/LookupFailedException.groovy} | 12 +-
.../grails/forge/build/dependencies/Phase.groovy} | 8 +-
.../PomDependencyVersionResolver.groovy | 150 +++++
.../grails/forge/build/dependencies/Scope.groovy} | 97 ++--
.../grails/forge/build/dependencies/Source.groovy} | 8 +-
.../build/gradle/DefaultGradleRepository.groovy | 141 +++++
.../grails/forge/build/gradle/GradleBuild.groovy | 162 ++++++
.../forge/build/gradle/GradleBuildCreator.groovy} | 58 +-
.../forge/build/gradle/GradleConfiguration.groovy} | 134 ++---
.../forge/build/gradle/GradleDependency.groovy | 123 +++++
.../grails/forge/build/gradle/GradleDsl.groovy} | 8 +-
.../grails/forge/build/gradle/GradlePlugin.groovy | 256 +++++++++
.../forge/build/gradle/GradleRepository.groovy} | 97 ++--
.../build/gradle/MavenCentralRepository.groovy} | 25 +-
.../build/gradle/MavenLocalRepository.groovy} | 25 +-
.../build/gradle/VersionRegexRepoFilter.groovy | 56 ++
.../grails/forge/build/gradle/VersionType.groovy} | 8 +-
.../grails/forge/defaults/HasDefaultBuild.groovy} | 11 +-
.../HasDefaultDevelopmentReloading.groovy} | 12 +-
.../grails/forge/defaults/IncludesDefaults.groovy} | 10 +-
.../grails/forge/defaults/LanguageDefaults.groovy} | 32 +-
.../org/grails/forge/diff/FeatureDiffer.groovy} | 114 ++--
.../forge/feature/ApplicationFeature.groovy} | 14 +-
.../grails/forge/feature/AvailableFeatures.groovy} | 20 +-
.../forge/feature/BaseAvailableFeatures.groovy | 88 +++
.../org/grails/forge/feature/Category.groovy | 65 +++
.../grails/forge/feature/DefaultFeature.groovy} | 14 +-
.../org/grails/forge/feature/Feature.groovy} | 50 +-
.../org/grails/forge/feature/FeatureContext.groovy | 133 +++++
.../org/grails/forge/feature/FeaturePhase.groovy} | 17 +-
.../grails/forge/feature/FeaturePredicate.groovy} | 11 +-
.../grails/forge/feature/FeatureRegistry.groovy | 94 ++++
.../org/grails/forge/feature/Features.groovy | 134 +++++
.../org/grails/forge/feature/OneOfFeature.groovy} | 10 +-
.../grails/forge/feature/ai/GrailsSpringAi.groovy | 87 +++
.../forge/feature/ai/SpringAiAnthropic.groovy} | 35 +-
.../grails/forge/feature/ai/SpringAiOllama.groovy} | 43 +-
.../grails/forge/feature/ai/SpringAiOpenAi.groovy} | 35 +-
.../feature/ai/SpringAiProviderFeature.groovy} | 53 +-
.../org/grails/forge/feature/api/OpenApi.groovy | 87 +++
.../forge/feature/asciidoctor/Asciidoctor.groovy | 83 +++
.../feature/assetPipeline/AssetPipeline.groovy | 159 ++++++
.../forge/feature/build/BuildFeature.groovy} | 18 +-
.../forge/feature/build/gradle/Dockerfile.groovy | 85 +++
.../forge/feature/build/gradle/Gradle.groovy | 100 ++++
.../feature/build/gradle/GradleBuildSrc.groovy | 77 +++
.../build/gradle/GradleBuildSrcFeature.groovy} | 22 +-
.../feature/build/gradle/GradleSettingsFile.groovy | 81 +++
.../build/gradle/GradleSettingsFileFeature.groovy} | 22 +-
.../forge/feature/cache/CacheFeature.groovy} | 18 +-
.../org/grails/forge/feature/cache/EHCache.groovy | 67 +++
.../grails/forge/feature/cache/GrailsCache.groovy | 76 +++
.../config/ApplicationConfiguration.groovy} | 38 +-
.../feature/config/BootstrapConfiguration.groovy} | 24 +-
.../forge/feature/config/Configuration.groovy} | 157 +++---
.../feature/config/ConfigurationFeature.groovy} | 39 +-
.../grails/forge/feature/config/Properties.groovy} | 47 +-
.../org/grails/forge/feature/config/Yaml.groovy} | 54 +-
.../forge/feature/database/AsyncGorm.groovy} | 68 +--
.../DatabaseDriverConfigurationFeature.groovy} | 57 +-
.../feature/database/DatabaseDriverFeature.groovy | 88 +++
.../forge/feature/database/GormFeature.groovy} | 26 +-
.../feature/database/GormOneOfFeature.groovy} | 12 +-
.../feature/database/GrailsDataHibernate5.groovy | 128 +++++
.../feature/database/GrailsDataHibernate7.groovy | 124 +++++
.../database/GrailsDataHibernateValidator.groovy} | 35 +-
.../feature/database/GrailsDataMongoDB.groovy} | 91 ++-
.../forge/feature/database/GraphqlGorm.groovy} | 68 +--
.../org/grails/forge/feature/database/H2.groovy | 106 ++++
.../forge/feature/database/JpaFeature.groovy} | 8 +-
.../feature/database/MongoDBTestingSupport.groovy | 78 +++
.../MongoDBTestingSupportValidator.groovy} | 28 +-
.../forge/feature/database/MongoFeature.groovy} | 30 +-
.../grails/forge/feature/database/MongoSync.groovy | 87 +++
.../org/grails/forge/feature/database/MySQL.groovy | 98 ++++
.../grails/forge/feature/database/Neo4jGorm.groovy | 77 +++
.../forge/feature/database/PostgreSQL.groovy | 99 ++++
.../grails/forge/feature/database/SQLServer.groovy | 98 ++++
.../forge/feature/database/TestContainers.groovy | 134 +++++
.../github/workflows/GitHubWorkflowFeature.groovy} | 33 +-
.../forge/feature/github/workflows/Secret.groovy} | 37 +-
.../plain/PlainGithubWorkflowFeature.groovy | 59 ++
.../grails/forge/feature/grails/GrailsBase.groovy | 117 ++++
.../feature/grails/GrailsCompileStatic.groovy} | 38 +-
.../feature/grails/GrailsDefaultPlugins.groovy | 91 +++
.../forge/feature/grails/GrailsGradlePlugin.groovy | 82 +++
.../forge/feature/grails/GrailsUrlMappings.groovy | 63 +++
.../forge/feature/grails/GrailsWebConsole.groovy | 74 +++
.../feature/grailsProfiles/GrailsProfiles.groovy | 79 +++
.../feature/grailsWrapper/GrailsWrapper.groovy | 81 +++
.../forge/feature/lang/LanguageFeature.groovy} | 22 +-
.../feature/lang/groovy/GrailsApplication.groovy | 88 +++
.../lang/groovy/GrailsApplicationFeature.groovy} | 10 +-
.../grails/forge/feature/logging/Logback.groovy} | 56 +-
.../forge/feature/logging/LogbackConfig.groovy} | 56 +-
.../forge/feature/logging/LoggingFeature.groovy} | 18 +-
.../forge/feature/micronaut/GrailsMicronaut.groovy | 103 ++++
.../micronaut/GrailsMicronautValidator.groovy} | 29 +-
.../feature/micronaut/MicronautHttpClient.groovy | 117 ++++
.../migration/DatabaseMigrationPlugin.groovy | 80 +++
.../feature/migration/MigrationFeature.groovy} | 18 +-
.../org/grails/forge/feature/other/AppName.groovy | 66 +++
.../grails/forge/feature/other/GrailsQuartz.groovy | 74 +++
.../feature/other/GrailsStartupProgress.groovy | 79 +++
.../forge/feature/other/HibernateValidator.groovy | 70 +++
.../org/grails/forge/feature/other/Readme.groovy | 94 ++++
.../grails/forge/feature/other/ShadePlugin.groovy | 77 +++
.../grails/forge/feature/reloading/Jrebel.groovy | 74 +++
.../feature/reloading/ReloadingFeature.groovy} | 26 +-
.../feature/reloading/SpringBootDevTools.groovy | 93 ++++
.../feature/security/GrailsSpringSecurity.groovy | 90 +++
.../feature/security/GrailsSpringSecurityUi.groovy | 97 ++++
.../security/PrimarySecurityFeature.groovy} | 10 +-
.../forge/feature/security/SecurityFeature.groovy | 87 +++
.../security/SpringBootStarterSecurity.groovy | 86 +++
.../forge/feature/sitemesh3/Sitemesh3.groovy} | 54 +-
.../feature/spring/SpringBootAutoconfigure.groovy | 67 +++
.../spring/SpringBootEmbeddedServlet.groovy} | 22 +-
.../feature/spring/SpringBootJettyFeature.groovy | 63 +++
.../feature/spring/SpringBootStarterFeature.groovy | 76 +++
.../feature/spring/SpringBootTomcatFeature.groovy} | 60 +-
.../spring/SpringBootUndertowFeature.groovy} | 54 +-
.../spring/SpringBootVirtualThreads.groovy} | 46 +-
.../forge/feature/spring/SpringResources.groovy | 65 +++
.../feature/spring/SpringThreadingFeature.groovy} | 18 +-
.../grails/forge/feature/test/GebFeature.groovy} | 22 +-
.../forge/feature/test/GebWithLocalBrowsers.groovy | 124 +++++
.../feature/test/GebWithTestcontainers.groovy | 106 ++++
.../forge/feature/test/GormTestingSupport.groovy | 67 +++
.../feature/test/GrailsWebTestingSupport.groovy | 67 +++
.../org/grails/forge/feature/test/Mockito.groovy | 77 +++
.../forge/feature/test/MockitoValidator.groovy} | 25 +-
.../org/grails/forge/feature/test/Spock.groovy | 73 +++
.../feature/test/ViewsJsonTestingSupport.groovy | 67 +++
.../validation/CompositeFeatureValidator.groovy} | 35 +-
.../feature/validation/FeatureValidator.groovy} | 18 +-
.../validation/OneOfFeatureValidator.groovy} | 39 +-
.../org/grails/forge/feature/view/GrailsGsp.groovy | 106 ++++
.../grails/forge/feature/view/GrailsLayout.groovy} | 34 +-
.../grails/forge/feature/view/GrailsViews.groovy | 72 +++
.../grails/forge/feature/view/GspLayout.groovy} | 24 +-
.../grails/forge/feature/view/Scaffolding.groovy | 88 +++
.../grails/forge/feature/view/json/ViewJson.groovy | 93 ++++
.../forge/feature/view/markup/ViewMarkup.groovy | 77 +++
.../org/grails/forge/feature/web/GrailsWeb.groovy} | 36 +-
.../org/grails/forge/io/ConsoleOutput.groovy} | 37 +-
.../grails/forge/io/FileSystemOutputHandler.groovy | 144 +++++
.../org/grails/forge/io/MapOutputHandler.groovy} | 45 +-
.../org/grails/forge/io/OutputHandler.groovy} | 17 +-
.../org/grails/forge/io/OutputUtils.groovy} | 43 +-
.../org/grails/forge/io/ZipOutputHandler.groovy | 146 +++++
.../org/grails/forge/options/BuildTool.groovy | 78 +++
.../forge/options/DefaultTestViewProvider.groovy} | 19 +-
.../forge/options/DevelopmentReloading.groovy} | 48 +-
.../org/grails/forge/options/FeatureFilter.groovy} | 59 +-
.../org/grails/forge/options/GormImpl.groovy} | 52 +-
.../org/grails/forge/options/JdkVersion.groovy} | 29 +-
.../org/grails/forge/options/Language.groovy | 99 ++++
.../groovy/org/grails/forge/options/Options.groovy | 128 +++++
.../org/grails/forge/options/ServletImpl.groovy} | 38 +-
.../org/grails/forge/options/TestFramework.groovy} | 53 +-
.../grails/forge/options/TestViewProvider.groovy} | 22 +-
.../grails/forge/template/BinaryTemplate.groovy} | 19 +-
.../grails/forge/template/Config4kTemplate.groovy} | 43 +-
.../forge/template/DefaultTemplateRenderer.groovy} | 63 ++-
.../org/grails/forge/template/ForgePages.groovy | 109 ++++
.../org/grails/forge/template/GspTemplate.groovy} | 46 +-
.../org/grails/forge/template/GspView.groovy | 69 +++
.../forge/template/PropertiesTemplate.groovy} | 65 +--
.../org/grails/forge/template/RenderResult.groovy} | 69 +--
.../grails/forge/template/StringTemplate.groovy} | 28 +-
.../org/grails/forge/template/Template.groovy} | 13 +-
.../grails/forge/template/TemplateModel.groovy} | 8 +-
.../grails/forge/template/TemplateRenderer.groovy} | 22 +-
.../org/grails/forge/template/URLTemplate.groovy} | 45 +-
.../org/grails/forge/template/Writable.groovy} | 9 +-
.../org/grails/forge/template/YamlTemplate.groovy | 89 +++
.../org/grails/forge/util/IOFeatureUtil.groovy} | 42 +-
.../org/grails/forge/util/NameUtils.groovy} | 471 ++++++++--------
.../org/grails/forge/util/ThrowingSupplier.groovy} | 10 +-
.../org/grails/forge/util/VersionInfo.groovy | 188 +++++++
.../org/grails/forge/util/ZipUtil.groovy} | 72 ++-
.../java/org/grails/forge/analytics/Generated.java | 112 ----
.../grails/forge/analytics/SelectedFeature.java | 38 --
.../forge/application/PluginAvailableFeatures.java | 35 --
.../java/org/grails/forge/application/Project.java | 94 ----
.../application/RestApiAvailableFeatures.java | 34 --
.../forge/application/WebAvailableFeatures.java | 35 --
.../application/WebPluginAvailableFeatures.java | 34 --
.../application/generator/GeneratorContext.java | 387 -------------
.../forge/build/dependencies/Dependency.java | 393 -------------
.../build/dependencies/DependencyCoordinate.java | 121 ----
.../build/dependencies/LookupFailedException.java | 26 -
.../dependencies/PomDependencyVersionResolver.java | 136 -----
.../build/gradle/DefaultGradleRepository.java | 142 -----
.../org/grails/forge/build/gradle/GradleBuild.java | 167 ------
.../forge/build/gradle/GradleDependency.java | 125 -----
.../grails/forge/build/gradle/GradlePlugin.java | 256 ---------
.../forge/build/gradle/VersionRegexRepoFilter.java | 22 -
.../grails/forge/defaults/IncludesDefaults.java | 23 -
.../forge/feature/BaseAvailableFeatures.java | 86 ---
.../java/org/grails/forge/feature/Category.java | 61 --
.../org/grails/forge/feature/FeatureContext.java | 133 -----
.../java/org/grails/forge/feature/Features.java | 137 -----
.../grails/forge/feature/ai/GrailsSpringAi.java | 86 ---
.../java/org/grails/forge/feature/api/OpenApi.java | 87 ---
.../forge/feature/asciidoctor/Asciidoctor.java | 82 ---
.../forge/feature/assetPipeline/AssetPipeline.java | 160 ------
.../forge/feature/build/gradle/Dockerfile.java | 85 ---
.../grails/forge/feature/build/gradle/Gradle.java | 109 ----
.../forge/feature/build/gradle/GradleBuildSrc.java | 81 ---
.../feature/build/gradle/GradleSettingsFile.java | 80 ---
.../build/gradle/templates/buildGradle.rocker.raw | 156 ------
.../gradle/templates/gradleProperties.rocker.raw | 33 --
.../gradle/templates/settingsGradle.rocker.raw | 35 --
.../org/grails/forge/feature/cache/EHCache.java | 67 ---
.../grails/forge/feature/cache/GrailsCache.java | 76 ---
.../java/org/grails/forge/feature/cli.rocker.raw | 48 --
.../feature/config/ApplicationConfiguration.java | 40 --
.../feature/database/DatabaseDriverFeature.java | 89 ---
.../feature/database/GrailsDataHibernate5.java | 129 -----
.../feature/database/GrailsDataHibernate7.java | 125 -----
.../java/org/grails/forge/feature/database/H2.java | 106 ----
.../feature/database/MongoDBTestingSupport.java | 76 ---
.../grails/forge/feature/database/MongoSync.java | 85 ---
.../org/grails/forge/feature/database/MySQL.java | 96 ----
.../grails/forge/feature/database/Neo4jGorm.java | 78 ---
.../grails/forge/feature/database/PostgreSQL.java | 97 ----
.../grails/forge/feature/database/SQLServer.java | 96 ----
.../forge/feature/database/TestContainers.java | 134 -----
.../plain/PlainGithubWorkflowFeature.java | 57 --
.../grails/forge/feature/grails/GrailsBase.java | 117 ----
.../forge/feature/grails/GrailsDefaultPlugins.java | 91 ---
.../forge/feature/grails/GrailsGradlePlugin.java | 82 ---
.../forge/feature/grails/GrailsUrlMappings.java | 63 ---
.../forge/feature/grails/GrailsWebConsole.java | 74 ---
.../feature/grailsProfiles/GrailsProfiles.java | 80 ---
.../forge/feature/grailsWrapper/GrailsWrapper.java | 81 ---
.../feature/lang/groovy/GrailsApplication.java | 89 ---
.../forge/feature/micronaut/GrailsMicronaut.java | 103 ----
.../feature/micronaut/MicronautHttpClient.java | 117 ----
.../feature/migration/DatabaseMigrationPlugin.java | 79 ---
.../org/grails/forge/feature/other/AppName.java | 67 ---
.../grails/forge/feature/other/GrailsQuartz.java | 72 ---
.../forge/feature/other/GrailsStartupProgress.java | 78 ---
.../forge/feature/other/HibernateValidator.java | 68 ---
.../org/grails/forge/feature/other/Readme.java | 99 ----
.../grails/forge/feature/other/ShadePlugin.java | 75 ---
.../forge/feature/other/template/readme.rocker.raw | 41 --
.../org/grails/forge/feature/reloading/Jrebel.java | 74 ---
.../feature/reloading/SpringBootDevTools.java | 94 ----
.../feature/security/GrailsSpringSecurity.java | 91 ---
.../feature/security/GrailsSpringSecurityUi.java | 98 ----
.../forge/feature/security/SecurityFeature.java | 88 ---
.../security/SpringBootStarterSecurity.java | 88 ---
.../feature/spring/SpringBootAutoconfigure.java | 66 ---
.../feature/spring/SpringBootJettyFeature.java | 63 ---
.../feature/spring/SpringBootStarterFeature.java | 76 ---
.../forge/feature/spring/SpringResources.java | 64 ---
.../forge/feature/test/GebWithLocalBrowsers.java | 124 -----
.../forge/feature/test/GebWithTestcontainers.java | 106 ----
.../forge/feature/test/GormTestingSupport.java | 66 ---
.../feature/test/GrailsWebTestingSupport.java | 66 ---
.../org/grails/forge/feature/test/Mockito.java | 77 ---
.../java/org/grails/forge/feature/test/Spock.java | 73 ---
.../feature/test/ViewsJsonTestingSupport.java | 66 ---
.../org/grails/forge/feature/view/GrailsGsp.java | 107 ----
.../org/grails/forge/feature/view/GrailsViews.java | 70 ---
.../org/grails/forge/feature/view/Scaffolding.java | 88 ---
.../grails/forge/feature/view/json/ViewJson.java | 93 ----
.../forge/feature/view/markup/ViewMarkup.java | 75 ---
.../grails/forge/io/FileSystemOutputHandler.java | 149 -----
.../java/org/grails/forge/io/ZipOutputHandler.java | 133 -----
.../java/org/grails/forge/options/BuildTool.java | 79 ---
.../org/grails/forge/options/FeatureFilter.java | 66 ---
.../forge/options/GormImplTypeConverter.java | 47 --
.../java/org/grails/forge/options/Language.java | 100 ----
.../java/org/grails/forge/options/Options.java | 158 ------
.../org/grails/forge/template/RockerWritable.java | 39 --
.../org/grails/forge/template/TemplateModel.java | 22 -
.../org/grails/forge/template/YamlTemplate.java | 93 ----
.../java/org/grails/forge/util/VersionInfo.java | 196 -------
.../grails-forge-core/resource-config.json | 14 -
...rk.boot.autoconfigure.AutoConfiguration.imports | 1 +
.../org/grails/forge/ApplicationContextSpec.groovy | 8 +-
.../groovy/org/grails/forge/BuildBuilder.groovy | 12 +-
...tionContextSpec.groovy => ForgeContexts.groovy} | 30 +-
...ec.groovy => ForgeCoreConfigurationSpec.groovy} | 18 +-
.../org/grails/forge/ForgeGrailsPluginSpec.groovy | 134 +++++
.../PomDependencyVersionResolverSpec.groovy | 10 +-
.../forge/build/gradle/GradleRepositorySpec.groovy | 16 +
.../grails/forge/build/gradle/GradleSpec.groovy | 5 +-
.../forge/feature/BaseAvailableFeaturesSpec.groovy | 6 +-
.../forge/feature/ai/GrailsSpringAiSpec.groovy | 8 +-
.../grails/forge/feature/cache/CacheSpec.groovy | 4 +-
.../forge/feature/config/PropertiesSpec.groovy | 4 +-
.../grails/forge/feature/config/YamlSpec.groovy | 4 +-
.../feature/database/GrailsDataMongoDBSpec.groovy | 2 +-
.../forge/feature/database/MongoSyncSpec.groovy | 16 +
.../grails/forge/feature/database/MySQLSpec.groovy | 2 +-
.../forge/feature/database/Neo4JGormSpec.groovy | 2 +-
.../forge/feature/database/PostgresSpec.groovy | 2 +-
.../forge/feature/database/SQLServerSpec.groovy | 2 +-
.../feature/database/TestContainersSpec.groovy | 6 +-
.../workflows/PlainGithubWorkflowSpec.groovy | 4 +-
.../forge/feature/grails/GrailsBaseSpec.groovy | 4 +-
.../feature/grails/GrailsGradlePluginSpec.groovy | 4 +-
.../feature/grails/GrailsWebConsoleSpec.groovy | 4 +-
.../feature/lang/GrailsApplicationSpec.groovy | 4 +-
.../feature/micronaut/GrailsMicronautSpec.groovy | 4 +-
.../micronaut/MicronautHttpClientSpec.groovy | 4 +-
.../forge/feature/spring/SpringBootSpec.groovy | 4 +-
.../spring/SpringBootVirtualThreadsSpec.groovy | 4 +-
.../forge/fixture/CommandOutputFixture.groovy | 4 +-
.../org/grails/forge/fixture/ContextFixture.groovy | 9 +-
.../org/grails/forge/options/GormImplSpec.groovy | 1 +
...iderSpec.groovy => TestViewProviderSpec.groovy} | 10 +-
.../plugintest/ForgePluginTestApplication.groovy} | 46 +-
.../org/grails/forge/util/VersionInfoSpec.groovy | 6 +-
grails-forge/grails-forge-web-netty/build.gradle | 156 ------
.../java/org/grails/forge/netty/Application.java | 41 --
.../forge/netty/analytics/AnalyticsClient.java | 43 --
.../grails-forge-web-netty/native-image.properties | 18 -
.../grails-forge-web-netty/resource-config.json | 8 -
.../src/main/resources/application-dev.yml | 5 -
.../src/main/resources/application.yml | 37 --
.../src/main/resources/logback.xml | 15 -
.../aws/.platform/nginx/conf.d/proxy.conf | 0
.../aws/Procfile | 0
.../aws/start.sh | 4 +-
grails-forge/grails-forge-web/build.gradle | 124 +++++
.../grails-app/conf/application.yml | 45 ++
.../grails-app/conf/logback.xml} | 24 +-
.../grails-app/conf/openapi-base.yml | 22 +
.../org/grails/forge/web/DiffController.groovy | 142 +++++
.../forge/web/ForgeApplicationController.groovy | 146 +++++
.../org/grails/forge/web/PreviewController.groovy | 102 ++++
.../forge/web/SelectOptionsController.groovy | 52 ++
.../org/grails/forge/web/UrlMappings.groovy | 37 ++
.../grails/forge/web/ZipCreateController.groovy | 132 +++++
.../grails-app/i18n/messages.properties | 19 +
.../init/org/grails/forge/web/Application.groovy} | 36 +-
.../forge/web/ForgeApiIntegrationSpec.groovy | 615 +++++++++++++++++++++
.../resources/api-test-messages_fr.properties} | 9 +-
.../org/grails/forge/api/ApplicationTypeDTO.groovy | 112 ++++
.../grails/forge/api/ApplicationTypeList.groovy} | 30 +-
.../forge/api/ApplicationTypeOperations.groovy} | 24 +-
.../forge/api/DevelopmentReloadingDTO.groovy | 90 +++
.../groovy/org/grails/forge/api/FeatureDTO.groovy | 136 +++++
.../org/grails/forge/api/FeatureList.groovy} | 30 +-
.../org/grails/forge/api/FeatureOperations.groovy} | 22 +-
.../org/grails/forge/api/FeatureService.groovy | 81 +++
.../forge/api/ForgeApplicationService.groovy | 114 ++++
.../org/grails/forge/api/ForgeMessages.groovy} | 19 +-
.../groovy/org/grails/forge/api/GormImplDTO.groovy | 98 ++++
.../forge/api/GrailsForgeConfiguration.groovy} | 78 ++-
.../org/grails/forge/api/JdkVersionDTO.groovy | 97 ++++
.../groovy/org/grails/forge/api/LanguageDTO.groovy | 109 ++++
.../groovy/org/grails/forge/api/LinkDTO.groovy} | 40 +-
.../groovy/org/grails/forge/api/Linkable.groovy} | 34 +-
.../org/grails/forge/api/Relationship.groovy} | 35 +-
.../groovy/org/grails/forge/api/RequestInfo.groovy | 78 +++
.../org/grails/forge/api/SelectOptionDTO.groovy} | 39 +-
.../org/grails/forge/api/SelectOptionsDTO.groovy} | 150 +++--
.../groovy/org/grails/forge/api/Selectable.groovy} | 14 +-
.../org/grails/forge/api/ServletImplDTO.groovy | 86 +++
.../org/grails/forge/api/UserAgentParser.groovy} | 39 +-
.../groovy/org/grails/forge/api/VersionDTO.groovy} | 34 +-
.../forge/api/create/CreateProjectService.groovy | 88 +++
.../options/ApplicationTypeSelectOptions.groovy} | 24 +-
.../DevelopmentReloadingSelectOptions.groovy} | 25 +-
.../api/options/GormImplSelectOptions.groovy} | 24 +-
.../api/options/JdkVersionSelectOptions.groovy} | 24 +-
.../api/options/LanguageSelectOptions.groovy} | 24 +-
.../api/options/SelectOptionsOperations.groovy} | 11 +-
.../api/options/ServletImplSelectOptions.groovy} | 24 +-
.../grails/forge/api/preview/PreviewDTO.groovy} | 33 +-
.../grails/forge/web/ForgeRequestSupport.groovy | 187 +++++++
.../grails/forge/web/GroovyObjectJsonMixin.groovy} | 20 +-
.../forge/web/ForgeRequestSupportSpec.groovy | 162 ++++++
.../forge/web/GrailsForgeConfigurationSpec.groovy | 72 +++
grails-forge/grailsforgearchitecture.jpeg | Bin 218395 -> 0 bytes
grails-forge/infrastructure/README.md | 2 +-
grails-forge/infrastructure/environment.yaml | 9 -
grails-forge/infrastructure/shared.yaml | 2 +-
grails-forge/sam-local.yml | 43 --
grails-forge/settings.gradle | 8 +-
grails-forge/test-core/build.gradle | 39 +-
.../forge/cli/command/CreateControllerSpec.groovy | 6 +-
.../forge/cli/command/CreateInterceptorSpec.groovy | 6 +-
.../forge/cli/command/CreateServiceSpec.groovy | 6 +-
.../forge/cli/command/CreateTagLibSpec.groovy | 6 +-
.../org/grails/forge/utils/CommandSpec.groovy | 13 +-
.../gradle/wrapper/gradle-wrapper.properties | 2 +-
.../plugin/core/GrailsPluginGradlePlugin.groovy | 11 +-
...GrailsPluginGradlePluginNative2AsciiSpec.groovy | 43 ++
.../plugin-native2ascii-off/build.gradle | 8 +
.../gradle.properties | 0
.../grails-app/conf/application.yml | 0
.../plugin-native2ascii-off/settings.gradle | 1 +
.../resources/templates/messages_ru.properties | 19 +
.../org/grails/gsp/compiler/GroovyPageParser.java | 18 +-
.../org/grails/gsp/compiler/LogicLineTrimmer.java | 234 ++++++++
.../org/grails/gsp/GspTrimLogicLinesSpec.groovy | 299 ++++++++++
.../gradle/wrapper/gradle-wrapper.properties | 2 +-
.../gradle/wrapper/gradle-wrapper.properties | 2 +-
threat-model.yaml | 4 +-
674 files changed, 19139 insertions(+), 21871 deletions(-)
rename {grails-forge/buildSrc => build-logic/plugins}/src/main/groovy/org/apache/grails/buildsrc/WriteGrailsVersionInfoTask.groovy (89%)
rename {grails-forge/buildSrc => build-logic/plugins}/src/main/groovy/org/apache/grails/forge/buildlogic/shadowjar/GrailsGroovyExtensionTransformer.groovy (79%)
rename {grails-forge/buildSrc => build-logic/plugins}/src/main/groovy/org/apache/grails/forge/buildlogic/shadowjar/GrailsShadowLicenseTransform.groovy (100%)
rename {grails-forge/buildSrc => build-logic/plugins}/src/main/groovy/org/apache/grails/forge/buildlogic/shadowjar/GrailsShadowNoticeTransform.groovy (100%)
rename {grails-forge/buildSrc => build-logic/plugins}/src/main/groovy/org/grails/forge/internal/tasks/GenerateManpageAsciidoc.java (100%)
rename {grails-forge/buildSrc => build-logic/plugins}/src/main/groovy/org/grails/forge/internal/tasks/PicocliBuildCompletionTask.java (100%)
create mode 100644 build-logic/plugins/src/test/groovy/org/apache/grails/buildsrc/WriteGrailsVersionInfoTaskSpec.groovy
create mode 100644 build-logic/plugins/src/test/groovy/org/apache/grails/forge/buildlogic/shadowjar/GrailsGroovyExtensionTransformerSpec.groovy
delete mode 100644 grails-forge/.gitattributes
delete mode 100644 grails-forge/.gitignore
delete mode 100644 grails-forge/buildSrc/build.gradle
delete mode 100644 grails-forge/buildSrc/settings.gradle
delete mode 100644 grails-forge/buildSrc/src/main/java/org/grails/forge/rocker/plugin/JavaGeneratorRunnable.java
delete mode 100644 grails-forge/buildSrc/src/main/java/org/grails/forge/rocker/plugin/RockerConfiguration.java
delete mode 100644 grails-forge/buildSrc/src/main/java/org/grails/forge/rocker/plugin/RockerPlugin.java
delete mode 100644 grails-forge/buildSrc/src/main/java/org/grails/forge/rocker/plugin/RockerSourceSetProperty.java
delete mode 100644 grails-forge/buildSrc/src/main/java/org/grails/forge/rocker/plugin/RockerTask.java
delete mode 100644 grails-forge/buildSrc/src/main/java/org/grails/forge/rocker/plugin/TemplateDirectorySet.java
delete mode 100644 grails-forge/buildSrc/src/main/java/org/grails/forge/rocker/plugin/WhitespaceProcessor.java
delete mode 100644 grails-forge/config/checkstyle/checkstyle.xml
delete mode 100644 grails-forge/config/spotless.license.java
delete mode 100644 grails-forge/docs/choose-postgresql.png
delete mode 100644 grails-forge/docs/cloud_sql_create_intance.png
delete mode 100644 grails-forge/docs/create-database.png
delete mode 100644 grails-forge/docs/create-two-databases.png
delete mode 100644 grails-forge/docs/dbinstance-options.png
delete mode 100644 grails-forge/docs/enable-cloud-sql-admin-api.png
delete mode 100644 grails-forge/docs/enable-compute-engine-api.png
delete mode 100755 grails-forge/etc/bin/generate-build-artifact-hashes.groovy
delete mode 100755 grails-forge/etc/bin/test-reproducible-builds.sh
delete mode 100644 grails-forge/gradle/code-style-config.gradle
delete mode 100644 grails-forge/gradle/groovy-version-pin.gradle
delete mode 100644 grails-forge/gradle/micronaut-openapi-config.gradle
delete mode 100644 grails-forge/grails-forge-analytics-postgres/build.gradle
delete mode 100644 grails-forge/grails-forge-analytics-postgres/src/main/java/org/grails/forge/analytics/postgres/AnalyticsController.java
delete mode 100644 grails-forge/grails-forge-analytics-postgres/src/main/java/org/grails/forge/analytics/postgres/Application.java
delete mode 100644 grails-forge/grails-forge-analytics-postgres/src/main/java/org/grails/forge/analytics/postgres/ApplicationRepository.java
delete mode 100644 grails-forge/grails-forge-analytics-postgres/src/main/java/org/grails/forge/analytics/postgres/Feature.java
delete mode 100644 grails-forge/grails-forge-analytics-postgres/src/main/java/org/grails/forge/analytics/postgres/FeatureRepository.java
delete mode 100644 grails-forge/grails-forge-analytics-postgres/src/main/java/org/grails/forge/analytics/postgres/Main.java
delete mode 100644 grails-forge/grails-forge-analytics-postgres/src/main/java/org/grails/forge/analytics/postgres/gcp/GoogleCloudSqlSetup.java
delete mode 100644 grails-forge/grails-forge-analytics-postgres/src/main/resources/META-INF/native-image/io.micronaut.starter/micronaut-starter-analytics-postgres/native-image.properties
delete mode 100644 grails-forge/grails-forge-analytics-postgres/src/main/resources/application-dev.yml
delete mode 100644 grails-forge/grails-forge-analytics-postgres/src/main/resources/application.yml
delete mode 100644 grails-forge/grails-forge-analytics-postgres/src/main/resources/databasemigrations/V1__schema.sql
delete mode 100644 grails-forge/grails-forge-analytics-postgres/src/main/resources/logback.xml
delete mode 100644 grails-forge/grails-forge-analytics-postgres/src/test/groovy/org/grails/forge/analytics/postgres/StoreGeneratedProjectStatsSpec.groovy
delete mode 100644 grails-forge/grails-forge-api/build.gradle
delete mode 100644 grails-forge/grails-forge-api/src/main/java/org/grails/forge/api/ApplicationController.java
delete mode 100644 grails-forge/grails-forge-api/src/main/java/org/grails/forge/api/ApplicationTypeDTO.java
delete mode 100644 grails-forge/grails-forge-api/src/main/java/org/grails/forge/api/ApplicationTypeOperations.java
delete mode 100644 grails-forge/grails-forge-api/src/main/java/org/grails/forge/api/DevelopmentReloading.java
delete mode 100644 grails-forge/grails-forge-api/src/main/java/org/grails/forge/api/DevelopmentReloadingDTO.java
delete mode 100644 grails-forge/grails-forge-api/src/main/java/org/grails/forge/api/FeatureDTO.java
delete mode 100644 grails-forge/grails-forge-api/src/main/java/org/grails/forge/api/FeatureService.java
delete mode 100644 grails-forge/grails-forge-api/src/main/java/org/grails/forge/api/GormImplDTO.java
delete mode 100644 grails-forge/grails-forge-api/src/main/java/org/grails/forge/api/JdkVersionDTO.java
delete mode 100644 grails-forge/grails-forge-api/src/main/java/org/grails/forge/api/LanguageDTO.java
delete mode 100644 grails-forge/grails-forge-api/src/main/java/org/grails/forge/api/LinkDTO.java
delete mode 100644 grails-forge/grails-forge-api/src/main/java/org/grails/forge/api/RequestInfo.java
delete mode 100644 grails-forge/grails-forge-api/src/main/java/org/grails/forge/api/SelectOptionDTO.java
delete mode 100644 grails-forge/grails-forge-api/src/main/java/org/grails/forge/api/ServletImplDTO.java
delete mode 100644 grails-forge/grails-forge-api/src/main/java/org/grails/forge/api/analytics/GenerationListener.java
delete mode 100644 grails-forge/grails-forge-api/src/main/java/org/grails/forge/api/bind/RequestInfoArgumentBinder.java
delete mode 100644 grails-forge/grails-forge-api/src/main/java/org/grails/forge/api/create/AbstractCreateController.java
delete mode 100644 grails-forge/grails-forge-api/src/main/java/org/grails/forge/api/create/zip/ZipCreateController.java
delete mode 100644 grails-forge/grails-forge-api/src/main/java/org/grails/forge/api/create/zip/ZipCreateOperation.java
delete mode 100644 grails-forge/grails-forge-api/src/main/java/org/grails/forge/api/diff/DiffController.java
delete mode 100644 grails-forge/grails-forge-api/src/main/java/org/grails/forge/api/diff/DiffOperations.java
delete mode 100644 grails-forge/grails-forge-api/src/main/java/org/grails/forge/api/options/ApplicationTypeSelectOptions.java
delete mode 100644 grails-forge/grails-forge-api/src/main/java/org/grails/forge/api/options/DevelopmentReloadingSelectOptions.java
delete mode 100644 grails-forge/grails-forge-api/src/main/java/org/grails/forge/api/options/GormImplSelectOptions.java
delete mode 100644 grails-forge/grails-forge-api/src/main/java/org/grails/forge/api/options/JdkVersionSelectOptions.java
delete mode 100644 grails-forge/grails-forge-api/src/main/java/org/grails/forge/api/options/SelectOptionsController.java
delete mode 100644 grails-forge/grails-forge-api/src/main/java/org/grails/forge/api/options/SelectOptionsOperations.java
delete mode 100644 grails-forge/grails-forge-api/src/main/java/org/grails/forge/api/options/ServletImplSelectOptions.java
delete mode 100644 grails-forge/grails-forge-api/src/main/java/org/grails/forge/api/preview/PreviewController.java
delete mode 100644 grails-forge/grails-forge-api/src/main/java/org/grails/forge/api/preview/PreviewOperations.java
delete mode 100644 grails-forge/grails-forge-api/src/main/resources/META-INF/native-image/org.grails.forge.api/grails-forge-api/reflect-config.json
delete mode 100644 grails-forge/grails-forge-api/src/main/resources/META-INF/native-image/org.grails.forge.api/grails-forge-api/resource-config.json
delete mode 100644 grails-forge/grails-forge-api/src/main/resources/application.yml
delete mode 100644 grails-forge/grails-forge-api/src/main/resources/select_options.properties
delete mode 100644 grails-forge/grails-forge-api/src/test/groovy/org/grails/forge/api/ApplicationControllerSpec.groovy
delete mode 100644 grails-forge/grails-forge-api/src/test/groovy/org/grails/forge/api/ApplicationTypeClient.groovy
delete mode 100644 grails-forge/grails-forge-api/src/test/groovy/org/grails/forge/api/CreateClient.groovy
delete mode 100644 grails-forge/grails-forge-api/src/test/groovy/org/grails/forge/api/DiffClient.groovy
delete mode 100644 grails-forge/grails-forge-api/src/test/groovy/org/grails/forge/api/DiffControllerSpec.groovy
delete mode 100644 grails-forge/grails-forge-api/src/test/groovy/org/grails/forge/api/FeatureControllerSpec.groovy
delete mode 100644 grails-forge/grails-forge-api/src/test/groovy/org/grails/forge/api/PreviewClient.groovy
delete mode 100644 grails-forge/grails-forge-api/src/test/groovy/org/grails/forge/api/PreviewControllerSpec.groovy
delete mode 100644 grails-forge/grails-forge-api/src/test/groovy/org/grails/forge/api/ZipCreateControllerSpec.groovy
delete mode 100644 grails-forge/grails-forge-api/src/test/resources/features_es.properties
delete mode 100644 grails-forge/grails-forge-api/src/test/resources/logback.xml
create mode 100644 grails-forge/grails-forge-cli/grails-app/conf/application.yml
create mode 100644 grails-forge/grails-forge-cli/grails-app/init/org/grails/forge/cli/Application.groovy
rename grails-forge/grails-forge-cli/{src/main/java/org/grails/forge/cli/command/templates/controller.rocker.raw => grails-app/views/forge/cli/command/templates/controller.gsp} (72%)
rename grails-forge/grails-forge-cli/{src/main/java/org/grails/forge/cli/command/templates/controllerSpec.rocker.raw => grails-app/views/forge/cli/command/templates/controllerSpec.gsp} (71%)
rename grails-forge/grails-forge-cli/{src/main/java/org/grails/forge/cli/command/templates/domain.rocker.raw => grails-app/views/forge/cli/command/templates/domain.gsp} (73%)
copy grails-forge/grails-forge-cli/{src/main/java/org/grails/forge/cli/command/templates/domainSpec.rocker.raw => grails-app/views/forge/cli/command/templates/domainSpec.gsp} (69%)
copy grails-forge/grails-forge-cli/{src/main/java/org/grails/forge/cli/command/templates/interceptor.rocker.raw => grails-app/views/forge/cli/command/templates/interceptor.gsp} (74%)
rename grails-forge/grails-forge-cli/{src/main/java/org/grails/forge/cli/command/templates/interceptorSpec.rocker.raw => grails-app/views/forge/cli/command/templates/interceptorSpec.gsp} (67%)
rename grails-forge/grails-forge-cli/{src/main/java/org/grails/forge/cli/command/templates/job.rocker.raw => grails-app/views/forge/cli/command/templates/job.gsp} (76%)
rename grails-forge/grails-forge-cli/{src/main/java/org/grails/forge/cli/command/templates/service.rocker.raw => grails-app/views/forge/cli/command/templates/service.gsp} (73%)
rename grails-forge/grails-forge-cli/{src/main/java/org/grails/forge/cli/command/templates/serviceSpec.rocker.raw => grails-app/views/forge/cli/command/templates/serviceSpec.gsp} (71%)
rename grails-forge/grails-forge-cli/{src/main/java/org/grails/forge/cli/command/templates/taglib.rocker.raw => grails-app/views/forge/cli/command/templates/taglib.gsp} (73%)
rename grails-forge/grails-forge-cli/{src/main/java/org/grails/forge/cli/command/templates/taglibSpec.rocker.raw => grails-app/views/forge/cli/command/templates/taglibSpec.gsp} (71%)
create mode 100644 grails-forge/grails-forge-cli/src/main/groovy/org/grails/forge/cli/CodeGenConfig.groovy
rename grails-forge/grails-forge-cli/src/main/{java/org/grails/forge/cli/CommonOptionsMixin.java => groovy/org/grails/forge/cli/CommonOptionsMixin.groovy} (64%)
create mode 100644 grails-forge/grails-forge-cli/src/main/groovy/org/grails/forge/cli/ForgeCli.groovy
create mode 100644 grails-forge/grails-forge-cli/src/main/groovy/org/grails/forge/cli/ForgeCommand.groovy
create mode 100644 grails-forge/grails-forge-cli/src/main/groovy/org/grails/forge/cli/GrailsPicocliFactory.groovy
rename grails-forge/grails-forge-cli/src/main/{java/org/grails/forge/cli/InteractiveShell.java => groovy/org/grails/forge/cli/InteractiveShell.groovy} (60%)
create mode 100644 grails-forge/grails-forge-cli/src/main/groovy/org/grails/forge/cli/command/AddPropertyCommand.groovy
create mode 100644 grails-forge/grails-forge-cli/src/main/groovy/org/grails/forge/cli/command/BaseCommand.groovy
create mode 100644 grails-forge/grails-forge-cli/src/main/groovy/org/grails/forge/cli/command/CodeGenCommand.groovy
rename grails-forge/grails-forge-cli/src/main/{java/org/grails/forge/cli/command/CreateAppCommand.java => groovy/org/grails/forge/cli/command/CreateAppCommand.groovy} (52%)
create mode 100644 grails-forge/grails-forge-cli/src/main/groovy/org/grails/forge/cli/command/CreateCommand.groovy
create mode 100644 grails-forge/grails-forge-cli/src/main/groovy/org/grails/forge/cli/command/CreateControllerCommand.groovy
create mode 100644 grails-forge/grails-forge-cli/src/main/groovy/org/grails/forge/cli/command/CreateDomainClassCommand.groovy
create mode 100644 grails-forge/grails-forge-cli/src/main/groovy/org/grails/forge/cli/command/CreateInterceptorCommand.groovy
create mode 100644 grails-forge/grails-forge-cli/src/main/groovy/org/grails/forge/cli/command/CreateJobCommand.groovy
rename grails-forge/grails-forge-cli/src/main/{java/org/grails/forge/cli/command/CreatePluginCommand.java => groovy/org/grails/forge/cli/command/CreatePluginCommand.groovy} (51%)
rename grails-forge/grails-forge-cli/src/main/{java/org/grails/forge/cli/command/CreateRestApiCommand.java => groovy/org/grails/forge/cli/command/CreateRestApiCommand.groovy} (51%)
create mode 100644 grails-forge/grails-forge-cli/src/main/groovy/org/grails/forge/cli/command/CreateServiceCommand.groovy
create mode 100644 grails-forge/grails-forge-cli/src/main/groovy/org/grails/forge/cli/command/CreateTagLibCommand.groovy
rename grails-forge/grails-forge-cli/src/main/{java/org/grails/forge/cli/command/CreateWebPluginCommand.java => groovy/org/grails/forge/cli/command/CreateWebPluginCommand.groovy} (51%)
rename grails-forge/grails-forge-cli/src/main/{java/org/grails/forge/cli/command/CreateWebappCommand.java => groovy/org/grails/forge/cli/command/CreateWebappCommand.groovy} (52%)
rename grails-forge/grails-forge-cli/src/main/{java/org/grails/forge/cli/command/DevelopmentReloadingCandidates.java => groovy/org/grails/forge/cli/command/DevelopmentReloadingCandidates.groovy} (74%)
rename grails-forge/grails-forge-cli/src/main/{java/org/grails/forge/cli/command/DevelopmentReloadingConverter.java => groovy/org/grails/forge/cli/command/DevelopmentReloadingConverter.groovy} (70%)
rename grails-forge/grails-forge-cli/src/main/{java/org/grails/forge/cli/command/GormImplCandidates.java => groovy/org/grails/forge/cli/command/GormImplCandidates.groovy} (73%)
rename grails-forge/grails-forge-cli/src/main/{java/org/grails/forge/cli/command/GormImplConverter.java => groovy/org/grails/forge/cli/command/GormImplConverter.groovy} (63%)
rename grails-forge/grails-forge-cli/src/main/{java/org/grails/forge/cli/command/LanguageCandidates.java => groovy/org/grails/forge/cli/command/LanguageCandidates.groovy} (73%)
rename grails-forge/grails-forge-cli/src/main/{java/org/grails/forge/cli/command/LanguageConverter.java => groovy/org/grails/forge/cli/command/LanguageConverter.groovy} (69%)
create mode 100644 grails-forge/grails-forge-cli/src/main/groovy/org/grails/forge/cli/command/ListFeatures.groovy
rename grails-forge/grails-forge-cli/src/main/{java/org/grails/forge/cli/command/ServletImplCandidates.java => groovy/org/grails/forge/cli/command/ServletImplCandidates.groovy} (72%)
rename grails-forge/grails-forge-cli/src/main/{java/org/grails/forge/cli/command/ServletImplConverter.java => groovy/org/grails/forge/cli/command/ServletImplConverter.groovy} (67%)
rename grails-forge/grails-forge-cli/src/main/{java/org/grails/forge/cli/util/GrailsVersionProvider.java => groovy/org/grails/forge/cli/util/GrailsVersionProvider.groovy} (72%)
delete mode 100644 grails-forge/grails-forge-cli/src/main/java/org/grails/forge/cli/Application.java
delete mode 100644 grails-forge/grails-forge-cli/src/main/java/org/grails/forge/cli/CodeGenConfig.java
delete mode 100644 grails-forge/grails-forge-cli/src/main/java/org/grails/forge/cli/GrailsPicocliFactory.java
delete mode 100644 grails-forge/grails-forge-cli/src/main/java/org/grails/forge/cli/command/AddPropertyCommand.java
delete mode 100644 grails-forge/grails-forge-cli/src/main/java/org/grails/forge/cli/command/BaseCommand.java
delete mode 100644 grails-forge/grails-forge-cli/src/main/java/org/grails/forge/cli/command/CodeGenCommand.java
delete mode 100644 grails-forge/grails-forge-cli/src/main/java/org/grails/forge/cli/command/CreateCommand.java
delete mode 100644 grails-forge/grails-forge-cli/src/main/java/org/grails/forge/cli/command/CreateControllerCommand.java
delete mode 100644 grails-forge/grails-forge-cli/src/main/java/org/grails/forge/cli/command/CreateDomainClassCommand.java
delete mode 100644 grails-forge/grails-forge-cli/src/main/java/org/grails/forge/cli/command/CreateInterceptorCommand.java
delete mode 100644 grails-forge/grails-forge-cli/src/main/java/org/grails/forge/cli/command/CreateJobCommand.java
delete mode 100644 grails-forge/grails-forge-cli/src/main/java/org/grails/forge/cli/command/CreateServiceCommand.java
delete mode 100644 grails-forge/grails-forge-cli/src/main/java/org/grails/forge/cli/command/CreateTagLibCommand.java
delete mode 100644 grails-forge/grails-forge-cli/src/main/java/org/grails/forge/cli/command/ListFeatures.java
delete mode 100644 grails-forge/grails-forge-cli/src/main/resources/META-INF/native-image/org.grails.forge.cli/grails-forge-cli/native-image.properties
delete mode 100644 grails-forge/grails-forge-cli/src/main/resources/META-INF/native-image/org.grails.forge.cli/grails-forge-cli/resource-config.json
create mode 100644 grails-forge/grails-forge-cli/src/main/resources/simplelogger.properties
create mode 100644 grails-forge/grails-forge-cli/src/test/groovy/org/grails/forge/cli/ApplicationSpec.groovy
rename grails-forge/{grails-forge-api/src/test/groovy/org/grails/forge/api/GrailsForgeConfigurationSpec.groovy => grails-forge-cli/src/test/groovy/org/grails/forge/cli/ForgeCliSpec.groovy} (50%)
rename grails-forge/{grails-forge-core/src/main/java/org/grails/forge/application/ProjectIdentifier.java => grails-forge-cli/src/testFixtures/groovy/org/grails/forge/cli/CliRunner.groovy} (60%)
rename grails-forge/grails-forge-core/{src/main/java/org/grails/forge/feature/asciidoctor/template/asciidocGradle.rocker.raw => grails-app/views/forge/feature/asciidoctor/template/asciidocGradle.gsp} (86%)
rename grails-forge/grails-forge-core/{src/main/java/org/grails/forge/feature/asciidoctor/template/indexAdoc.rocker.raw => grails-app/views/forge/feature/asciidoctor/template/indexAdoc.gsp} (94%)
rename grails-forge/grails-forge-core/{src/main/java/org/grails/forge/feature/build/gitignore.rocker.raw => grails-app/views/forge/feature/build/gitignore.gsp} (95%)
create mode 100644 grails-forge/grails-forge-core/grails-app/views/forge/feature/build/gradle/templates/buildGradle.gsp
rename grails-forge/grails-forge-core/{src/main/java/org/grails/forge/feature/build/gradle/templates/buildSrcBuildGradle.rocker.raw => grails-app/views/forge/feature/build/gradle/templates/buildSrcBuildGradle.gsp} (56%)
rename grails-forge/grails-forge-core/{src/main/java/org/grails/forge/feature/build/gradle/templates/dependencies.rocker.raw => grails-app/views/forge/feature/build/gradle/templates/dependencies.gsp} (54%)
rename grails-forge/{grails-forge-cli/src/main/java/org/grails/forge/cli/command/templates/interceptor.rocker.raw => grails-forge-core/grails-app/views/forge/feature/build/gradle/templates/gradleProperties.gsp} (67%)
rename grails-forge/grails-forge-core/{src/main/java/org/grails/forge/feature/build/gradle/templates/gradleWrapperProperties.rocker.raw => grails-app/views/forge/feature/build/gradle/templates/gradleWrapperProperties.gsp} (55%)
copy grails-doc/src/en/guide/theWebLayer/gsp/GSPBasics/pageDirectives.adoc => grails-forge/grails-forge-core/grails-app/views/forge/feature/build/gradle/templates/settingsGradle.gsp (50%)
create mode 100644 grails-forge/grails-forge-core/grails-app/views/forge/feature/cli.gsp
rename grails-forge/grails-forge-core/{src/main/java/org/grails/forge/feature/github/workflows/plain/templates/plainGithubWorkflow.rocker.raw => grails-app/views/forge/feature/github/workflows/plain/templates/plainGithubWorkflow.gsp} (77%)
rename grails-forge/grails-forge-core/{src/main/java/org/grails/forge/feature/github/workflows/templates/javaSetup.rocker.raw => grails-app/views/forge/feature/github/workflows/templates/javaSetup.gsp} (66%)
rename grails-forge/grails-forge-core/{src/main/java/org/grails/forge/feature/grails/templates/applicationController.rocker.raw => grails-app/views/forge/feature/grails/templates/applicationController.gsp} (85%)
rename grails-forge/grails-forge-core/{src/main/java/org/grails/forge/feature/grails/templates/plugin.rocker.raw => grails-app/views/forge/feature/grails/templates/plugin.gsp} (73%)
rename grails-forge/grails-forge-core/{src/main/java/org/grails/forge/feature/grails/templates/urlMappings.rocker.raw => grails-app/views/forge/feature/grails/templates/urlMappings.gsp} (73%)
rename grails-forge/grails-forge-core/{src/main/java/org/grails/forge/feature/lang/groovy/application.rocker.raw => grails-app/views/forge/feature/lang/groovy/templates/application.gsp} (67%)
rename grails-forge/grails-forge-core/{src/main/java/org/grails/forge/feature/lang/groovy/bootStrap.rocker.raw => grails-app/views/forge/feature/lang/groovy/templates/bootStrap.gsp} (78%)
rename grails-forge/grails-forge-core/{src/main/java/org/grails/forge/feature/logging/template/logback.rocker.raw => grails-app/views/forge/feature/logging/template/logback.gsp} (89%)
rename grails-forge/grails-forge-core/{src/main/java/org/grails/forge/feature/migration/templates/dbMigrationGradle.rocker.raw => grails-app/views/forge/feature/migration/templates/dbMigrationGradle.gsp} (85%)
rename grails-forge/grails-forge-core/{src/main/java/org/grails/forge/feature/other/template/maindocs.rocker.raw => grails-app/views/forge/feature/other/template/maindocs.gsp} (66%)
rename grails-forge/grails-forge-core/{src/main/java/org/grails/forge/feature/other/template/markdownLink.rocker.raw => grails-app/views/forge/feature/other/template/markdownLink.gsp} (84%)
rename grails-forge/{grails-forge-cli/src/main/java/org/grails/forge/cli/command/templates/domainSpec.rocker.raw => grails-forge-core/grails-app/views/forge/feature/other/template/readme.gsp} (54%)
rename grails-forge/grails-forge-core/{src/main/java/org/grails/forge/feature/security/template/role.rocker.raw => grails-app/views/forge/feature/security/template/role.gsp} (78%)
rename grails-forge/grails-forge-core/{src/main/java/org/grails/forge/feature/security/template/securityApplicationGroovy.rocker.raw => grails-app/views/forge/feature/security/template/securityApplicationGroovy.gsp} (80%)
rename grails-forge/grails-forge-core/{src/main/java/org/grails/forge/feature/security/template/user.rocker.raw => grails-app/views/forge/feature/security/template/user.gsp} (77%)
rename grails-forge/grails-forge-core/{src/main/java/org/grails/forge/feature/security/template/userClassic.rocker.raw => grails-app/views/forge/feature/security/template/userClassic.gsp} (74%)
rename grails-forge/grails-forge-core/{src/main/java/org/grails/forge/feature/security/template/userClassicService.rocker.raw => grails-app/views/forge/feature/security/template/userClassicService.gsp} (79%)
rename grails-forge/grails-forge-core/{src/main/java/org/grails/forge/feature/security/template/userClassicSpec.rocker.raw => grails-app/views/forge/feature/security/template/userClassicSpec.gsp} (88%)
rename grails-forge/grails-forge-core/{src/main/java/org/grails/forge/feature/security/template/userController.rocker.raw => grails-app/views/forge/feature/security/template/userController.gsp} (79%)
rename grails-forge/grails-forge-core/{src/main/java/org/grails/forge/feature/security/template/userRole.rocker.raw => grails-app/views/forge/feature/security/template/userRole.gsp} (91%)
rename grails-forge/grails-forge-core/{src/main/java/org/grails/forge/feature/security/template/userService.rocker.raw => grails-app/views/forge/feature/security/template/userService.gsp} (83%)
rename grails-forge/grails-forge-core/{src/main/java/org/grails/forge/feature/security/template/userSpec.rocker.raw => grails-app/views/forge/feature/security/template/userSpec.gsp} (91%)
rename grails-forge/grails-forge-core/{src/main/java/org/grails/forge/feature/spring/template/springResources.rocker.raw => grails-app/views/forge/feature/spring/template/springResources.gsp} (92%)
rename grails-forge/grails-forge-core/{src/main/java/org/grails/forge/feature/test/template/containerGebSpec.rocker.raw => grails-app/views/forge/feature/test/template/containerGebSpec.gsp} (79%)
rename grails-forge/grails-forge-core/{src/main/java/org/grails/forge/feature/test/template/gebConfig.rocker.raw => grails-app/views/forge/feature/test/template/gebConfig.gsp} (92%)
rename grails-forge/grails-forge-core/{src/main/java/org/grails/forge/feature/test/template/gebSpec.rocker.raw => grails-app/views/forge/feature/test/template/gebSpec.gsp} (80%)
rename grails-forge/grails-forge-core/{src/main/java/org/grails/forge/feature/view/json/templates/_errors.rocker.raw => grails-app/views/forge/feature/view/json/templates/_errors.gsp} (96%)
rename grails-forge/grails-forge-core/{src/main/java/org/grails/forge/feature/view/json/templates/_object.rocker.raw => grails-app/views/forge/feature/view/json/templates/_object.gsp} (90%)
rename grails-forge/grails-forge-core/{src/main/java/org/grails/forge/feature/view/json/templates/error.rocker.raw => grails-app/views/forge/feature/view/json/templates/error.gsp} (92%)
rename grails-forge/grails-forge-core/{src/main/java/org/grails/forge/feature/view/json/templates/index.rocker.raw => grails-app/views/forge/feature/view/json/templates/index.gsp} (96%)
rename grails-forge/grails-forge-core/{src/main/java/org/grails/forge/feature/view/json/templates/notFound.rocker.raw => grails-app/views/forge/feature/view/json/templates/notFound.gsp} (92%)
rename grails-forge/grails-forge-core/{src/main/java/org/grails/forge/feature/view/markup/templates/_errors.rocker.raw => grails-app/views/forge/feature/view/markup/templates/_errors.gsp} (96%)
rename grails-forge/grails-forge-core/{src/main/java/org/grails/forge/feature/view/markup/templates/_object.rocker.raw => grails-app/views/forge/feature/view/markup/templates/_object.gsp} (90%)
rename grails-forge/grails-forge-core/{src/main/java/org/grails/forge/feature/view/markup/templates/error.rocker.raw => grails-app/views/forge/feature/view/markup/templates/error.gsp} (92%)
rename grails-forge/grails-forge-core/{src/main/java/org/grails/forge/feature/view/markup/templates/index.rocker.raw => grails-app/views/forge/feature/view/markup/templates/index.gsp} (97%)
rename grails-forge/grails-forge-core/{src/main/java/org/grails/forge/feature/view/markup/templates/notFound.rocker.raw => grails-app/views/forge/feature/view/markup/templates/notFound.gsp} (92%)
rename grails-forge/grails-forge-core/{src/main/java/org/grails/forge/template/api/grailsForgeApi.rocker.raw => grails-app/views/forge/template/api/grailsForgeApi.gsp} (72%)
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/ForgeCoreConfiguration.groovy
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/ForgeGrailsPlugin.groovy
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/application/ApplicationType.java => groovy/org/grails/forge/application/ApplicationType.groovy} (54%)
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/application/ContextFactory.java => groovy/org/grails/forge/application/ContextFactory.groovy} (51%)
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/application/OperatingSystem.java => groovy/org/grails/forge/application/OperatingSystem.groovy} (74%)
copy grails-forge/{grails-forge-api/src/test/groovy/org/grails/forge/api/MyEventListener.groovy => grails-forge-core/src/main/groovy/org/grails/forge/application/PluginAvailableFeatures.groovy} (64%)
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/application/Project.groovy
copy grails-forge/{grails-forge-analytics-postgres/src/main/java/org/grails/forge/analytics/postgres/TotalDTO.java => grails-forge-core/src/main/groovy/org/grails/forge/application/ProjectIdentifier.groovy} (67%)
copy grails-forge/{grails-forge-api/src/test/groovy/org/grails/forge/api/MyEventListener.groovy => grails-forge-core/src/main/groovy/org/grails/forge/application/RestApiAvailableFeatures.groovy} (64%)
rename grails-forge/{grails-forge-api/src/test/groovy/org/grails/forge/api/SpanishResourceBundleMessageSource.groovy => grails-forge-core/src/main/groovy/org/grails/forge/application/WebAvailableFeatures.groovy} (65%)
rename grails-forge/{grails-forge-analytics-postgres/src/main/java/org/grails/forge/analytics/postgres/TotalDTO.java => grails-forge-core/src/main/groovy/org/grails/forge/application/WebPluginAvailableFeatures.groovy} (64%)
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/application/generator/DefaultProjectGenerator.java => groovy/org/grails/forge/application/generator/DefaultProjectGenerator.groovy} (50%)
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/application/generator/GeneratorContext.groovy
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/application/generator/ProjectGenerator.java => groovy/org/grails/forge/application/generator/ProjectGenerator.groovy} (67%)
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/build/BuildPlugin.java => groovy/org/grails/forge/build/BuildPlugin.groovy} (60%)
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/build/BuildProperties.java => groovy/org/grails/forge/build/BuildProperties.groovy} (62%)
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/build/Comment.java => groovy/org/grails/forge/build/Comment.groovy} (82%)
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/build/Property.java => groovy/org/grails/forge/build/Property.groovy} (81%)
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/build/dependencies/Coordinate.java => groovy/org/grails/forge/build/dependencies/Coordinate.groovy} (59%)
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/defaults/HasDefaultDevelopmentReloading.java => groovy/org/grails/forge/build/dependencies/CoordinateResolver.groovy} (82%)
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/build/dependencies/DefaultCoordinateResolver.java => groovy/org/grails/forge/build/dependencies/DefaultCoordinateResolver.groovy} (58%)
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/build/dependencies/Dependency.groovy
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/build/dependencies/DependencyContext.java => groovy/org/grails/forge/build/dependencies/DependencyContext.groovy} (51%)
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/build/dependencies/DependencyCoordinate.groovy
copy grails-forge/grails-forge-core/src/main/{java/org/grails/forge/feature/database/GormOneOfFeature.java => groovy/org/grails/forge/build/dependencies/LookupFailedException.groovy} (75%)
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/build/dependencies/Phase.java => groovy/org/grails/forge/build/dependencies/Phase.groovy} (90%)
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/build/dependencies/PomDependencyVersionResolver.groovy
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/build/dependencies/Scope.java => groovy/org/grails/forge/build/dependencies/Scope.groovy} (58%)
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/build/dependencies/Source.java => groovy/org/grails/forge/build/dependencies/Source.groovy} (88%)
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/build/gradle/DefaultGradleRepository.groovy
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/build/gradle/GradleBuild.groovy
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/build/gradle/GradleBuildCreator.java => groovy/org/grails/forge/build/gradle/GradleBuildCreator.groovy} (62%)
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/build/gradle/GradleConfiguration.java => groovy/org/grails/forge/build/gradle/GradleConfiguration.groovy} (61%)
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/build/gradle/GradleDependency.groovy
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/build/gradle/GradleDsl.java => groovy/org/grails/forge/build/gradle/GradleDsl.groovy} (88%)
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/build/gradle/GradlePlugin.groovy
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/build/gradle/GradleRepository.java => groovy/org/grails/forge/build/gradle/GradleRepository.groovy} (68%)
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/build/gradle/MavenCentralRepository.java => groovy/org/grails/forge/build/gradle/MavenCentralRepository.groovy} (67%)
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/build/gradle/MavenLocalRepository.java => groovy/org/grails/forge/build/gradle/MavenLocalRepository.groovy} (68%)
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/build/gradle/VersionRegexRepoFilter.groovy
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/build/gradle/VersionType.java => groovy/org/grails/forge/build/gradle/VersionType.groovy} (88%)
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/template/Writable.java => groovy/org/grails/forge/defaults/HasDefaultBuild.groovy} (81%)
copy grails-forge/grails-forge-core/src/main/{java/org/grails/forge/feature/database/JpaFeature.java => groovy/org/grails/forge/defaults/HasDefaultDevelopmentReloading.groovy} (78%)
copy grails-forge/grails-forge-core/src/main/{java/org/grails/forge/defaults/HasDefaultBuild.java => groovy/org/grails/forge/defaults/IncludesDefaults.groovy} (85%)
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/defaults/LanguageDefaults.java => groovy/org/grails/forge/defaults/LanguageDefaults.groovy} (58%)
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/diff/FeatureDiffer.java => groovy/org/grails/forge/diff/FeatureDiffer.groovy} (66%)
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/feature/ApplicationFeature.java => groovy/org/grails/forge/feature/ApplicationFeature.groovy} (74%)
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/feature/AvailableFeatures.java => groovy/org/grails/forge/feature/AvailableFeatures.groovy} (66%)
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/feature/BaseAvailableFeatures.groovy
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/feature/Category.groovy
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/feature/DefaultFeature.java => groovy/org/grails/forge/feature/DefaultFeature.groovy} (86%)
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/feature/Feature.java => groovy/org/grails/forge/feature/Feature.groovy} (84%)
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/feature/FeatureContext.groovy
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/feature/FeaturePhase.java => groovy/org/grails/forge/feature/FeaturePhase.groovy} (81%)
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/feature/FeaturePredicate.java => groovy/org/grails/forge/feature/FeaturePredicate.groovy} (80%)
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/feature/FeatureRegistry.groovy
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/feature/Features.groovy
copy grails-forge/grails-forge-core/src/main/{java/org/grails/forge/defaults/HasDefaultBuild.java => groovy/org/grails/forge/feature/OneOfFeature.groovy} (83%)
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/feature/ai/GrailsSpringAi.groovy
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/feature/ai/SpringAiAnthropic.java => groovy/org/grails/forge/feature/ai/SpringAiAnthropic.groovy} (61%)
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/feature/ai/SpringAiOllama.java => groovy/org/grails/forge/feature/ai/SpringAiOllama.groovy} (52%)
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/feature/ai/SpringAiOpenAi.java => groovy/org/grails/forge/feature/ai/SpringAiOpenAi.groovy} (59%)
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/feature/ai/SpringAiProviderFeature.java => groovy/org/grails/forge/feature/ai/SpringAiProviderFeature.groovy} (60%)
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/feature/api/OpenApi.groovy
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/feature/asciidoctor/Asciidoctor.groovy
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/feature/assetPipeline/AssetPipeline.groovy
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/feature/build/BuildFeature.java => groovy/org/grails/forge/feature/build/BuildFeature.groovy} (73%)
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/feature/build/gradle/Dockerfile.groovy
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/feature/build/gradle/Gradle.groovy
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/feature/build/gradle/GradleBuildSrc.groovy
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/feature/build/gradle/GradleBuildSrcFeature.java => groovy/org/grails/forge/feature/build/gradle/GradleBuildSrcFeature.groovy} (69%)
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/feature/build/gradle/GradleSettingsFile.groovy
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/feature/build/gradle/GradleSettingsFileFeature.java => groovy/org/grails/forge/feature/build/gradle/GradleSettingsFileFeature.groovy} (69%)
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/feature/logging/LoggingFeature.java => groovy/org/grails/forge/feature/cache/CacheFeature.groovy} (74%)
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/feature/cache/EHCache.groovy
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/feature/cache/GrailsCache.groovy
copy grails-forge/grails-forge-core/src/main/{java/org/grails/forge/feature/github/workflows/Secret.java => groovy/org/grails/forge/feature/config/ApplicationConfiguration.groovy} (55%)
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/feature/config/BootstrapConfiguration.java => groovy/org/grails/forge/feature/config/BootstrapConfiguration.groovy} (56%)
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/feature/config/Configuration.java => groovy/org/grails/forge/feature/config/Configuration.groovy} (50%)
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/feature/config/ConfigurationFeature.java => groovy/org/grails/forge/feature/config/ConfigurationFeature.groovy} (62%)
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/feature/config/Properties.java => groovy/org/grails/forge/feature/config/Properties.groovy} (52%)
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/feature/config/Yaml.java => groovy/org/grails/forge/feature/config/Yaml.groovy} (50%)
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/feature/database/AsyncGorm.java => groovy/org/grails/forge/feature/database/AsyncGorm.groovy} (52%)
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/feature/database/DatabaseDriverConfigurationFeature.java => groovy/org/grails/forge/feature/database/DatabaseDriverConfigurationFeature.groovy} (57%)
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/feature/database/DatabaseDriverFeature.groovy
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/feature/database/GormFeature.java => groovy/org/grails/forge/feature/database/GormFeature.groovy} (67%)
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/feature/database/GormOneOfFeature.java => groovy/org/grails/forge/feature/database/GormOneOfFeature.groovy} (74%)
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/feature/database/GrailsDataHibernate5.groovy
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/feature/database/GrailsDataHibernate7.groovy
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/feature/database/GrailsDataHibernateValidator.java => groovy/org/grails/forge/feature/database/GrailsDataHibernateValidator.groovy} (51%)
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/feature/database/GrailsDataMongoDB.java => groovy/org/grails/forge/feature/database/GrailsDataMongoDB.groovy} (50%)
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/feature/database/GraphqlGorm.java => groovy/org/grails/forge/feature/database/GraphqlGorm.groovy} (52%)
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/feature/database/H2.groovy
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/feature/database/JpaFeature.java => groovy/org/grails/forge/feature/database/JpaFeature.groovy} (83%)
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/feature/database/MongoDBTestingSupport.groovy
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/feature/database/MongoDBTestingSupportValidator.java => groovy/org/grails/forge/feature/database/MongoDBTestingSupportValidator.groovy} (61%)
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/feature/database/MongoFeature.java => groovy/org/grails/forge/feature/database/MongoFeature.groovy} (67%)
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/feature/database/MongoSync.groovy
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/feature/database/MySQL.groovy
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/feature/database/Neo4jGorm.groovy
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/feature/database/PostgreSQL.groovy
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/feature/database/SQLServer.groovy
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/feature/database/TestContainers.groovy
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/feature/github/workflows/GitHubWorkflowFeature.java => groovy/org/grails/forge/feature/github/workflows/GitHubWorkflowFeature.groovy} (58%)
copy grails-forge/grails-forge-core/src/main/{java/org/grails/forge/feature/github/workflows/Secret.java => groovy/org/grails/forge/feature/github/workflows/Secret.groovy} (60%)
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/feature/github/workflows/plain/PlainGithubWorkflowFeature.groovy
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/feature/grails/GrailsBase.groovy
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/feature/grails/GrailsCompileStatic.java => groovy/org/grails/forge/feature/grails/GrailsCompileStatic.groovy} (65%)
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/feature/grails/GrailsDefaultPlugins.groovy
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/feature/grails/GrailsGradlePlugin.groovy
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/feature/grails/GrailsUrlMappings.groovy
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/feature/grails/GrailsWebConsole.groovy
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/feature/grailsProfiles/GrailsProfiles.groovy
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/feature/grailsWrapper/GrailsWrapper.groovy
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/feature/lang/LanguageFeature.java => groovy/org/grails/forge/feature/lang/LanguageFeature.groovy} (72%)
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/feature/lang/groovy/GrailsApplication.groovy
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/defaults/HasDefaultBuild.java => groovy/org/grails/forge/feature/lang/groovy/GrailsApplicationFeature.groovy} (79%)
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/feature/logging/Logback.java => groovy/org/grails/forge/feature/logging/Logback.groovy} (57%)
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/feature/logging/LogbackConfig.java => groovy/org/grails/forge/feature/logging/LogbackConfig.groovy} (62%)
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/feature/migration/MigrationFeature.java => groovy/org/grails/forge/feature/logging/LoggingFeature.groovy} (73%)
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/feature/micronaut/GrailsMicronaut.groovy
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/feature/micronaut/GrailsMicronautValidator.java => groovy/org/grails/forge/feature/micronaut/GrailsMicronautValidator.groovy} (59%)
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/feature/micronaut/MicronautHttpClient.groovy
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/feature/migration/DatabaseMigrationPlugin.groovy
copy grails-forge/grails-forge-core/src/main/{java/org/grails/forge/feature/cache/CacheFeature.java => groovy/org/grails/forge/feature/migration/MigrationFeature.groovy} (73%)
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/feature/other/AppName.groovy
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/feature/other/GrailsQuartz.groovy
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/feature/other/GrailsStartupProgress.groovy
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/feature/other/HibernateValidator.groovy
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/feature/other/Readme.groovy
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/feature/other/ShadePlugin.groovy
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/feature/reloading/Jrebel.groovy
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/feature/reloading/ReloadingFeature.java => groovy/org/grails/forge/feature/reloading/ReloadingFeature.groovy} (66%)
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/feature/reloading/SpringBootDevTools.groovy
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/feature/security/GrailsSpringSecurity.groovy
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/feature/security/GrailsSpringSecurityUi.groovy
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/feature/security/PrimarySecurityFeature.java => groovy/org/grails/forge/feature/security/PrimarySecurityFeature.groovy} (84%)
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/feature/security/SecurityFeature.groovy
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/feature/security/SpringBootStarterSecurity.groovy
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/feature/sitemesh3/Sitemesh3.java => groovy/org/grails/forge/feature/sitemesh3/Sitemesh3.groovy} (54%)
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/feature/spring/SpringBootAutoconfigure.groovy
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/feature/spring/SpringBootEmbeddedServlet.java => groovy/org/grails/forge/feature/spring/SpringBootEmbeddedServlet.groovy} (70%)
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/feature/spring/SpringBootJettyFeature.groovy
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/feature/spring/SpringBootStarterFeature.groovy
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/feature/spring/SpringBootTomcatFeature.java => groovy/org/grails/forge/feature/spring/SpringBootTomcatFeature.groovy} (50%)
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/feature/spring/SpringBootUndertowFeature.java => groovy/org/grails/forge/feature/spring/SpringBootUndertowFeature.groovy} (52%)
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/feature/spring/SpringBootVirtualThreads.java => groovy/org/grails/forge/feature/spring/SpringBootVirtualThreads.groovy} (53%)
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/feature/spring/SpringResources.groovy
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/feature/spring/SpringThreadingFeature.java => groovy/org/grails/forge/feature/spring/SpringThreadingFeature.groovy} (73%)
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/feature/test/GebFeature.java => groovy/org/grails/forge/feature/test/GebFeature.groovy} (71%)
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/feature/test/GebWithLocalBrowsers.groovy
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/feature/test/GebWithTestcontainers.groovy
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/feature/test/GormTestingSupport.groovy
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/feature/test/GrailsWebTestingSupport.groovy
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/feature/test/Mockito.groovy
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/feature/test/MockitoValidator.java => groovy/org/grails/forge/feature/test/MockitoValidator.groovy} (59%)
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/feature/test/Spock.groovy
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/feature/test/ViewsJsonTestingSupport.groovy
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/feature/validation/CompositeFeatureValidator.java => groovy/org/grails/forge/feature/validation/CompositeFeatureValidator.groovy} (57%)
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/feature/validation/FeatureValidator.java => groovy/org/grails/forge/feature/validation/FeatureValidator.groovy} (73%)
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/feature/validation/OneOfFeatureValidator.java => groovy/org/grails/forge/feature/validation/OneOfFeatureValidator.groovy} (61%)
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/feature/view/GrailsGsp.groovy
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/feature/view/GrailsLayout.java => groovy/org/grails/forge/feature/view/GrailsLayout.groovy} (61%)
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/feature/view/GrailsViews.groovy
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/feature/view/GspLayout.java => groovy/org/grails/forge/feature/view/GspLayout.groovy} (72%)
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/feature/view/Scaffolding.groovy
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/feature/view/json/ViewJson.groovy
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/feature/view/markup/ViewMarkup.groovy
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/feature/web/GrailsWeb.java => groovy/org/grails/forge/feature/web/GrailsWeb.groovy} (57%)
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/io/ConsoleOutput.java => groovy/org/grails/forge/io/ConsoleOutput.groovy} (67%)
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/io/FileSystemOutputHandler.groovy
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/io/MapOutputHandler.java => groovy/org/grails/forge/io/MapOutputHandler.groovy} (56%)
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/io/OutputHandler.java => groovy/org/grails/forge/io/OutputHandler.groovy} (78%)
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/io/OutputUtils.java => groovy/org/grails/forge/io/OutputUtils.groovy} (53%)
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/io/ZipOutputHandler.groovy
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/options/BuildTool.groovy
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/options/DefaultTestRockerModelProvider.java => groovy/org/grails/forge/options/DefaultTestViewProvider.groovy} (71%)
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/options/DevelopmentReloading.java => groovy/org/grails/forge/options/DevelopmentReloading.groovy} (57%)
copy grails-forge/grails-forge-core/src/{test/groovy/org/grails/forge/options/GormImplSpec.groovy => main/groovy/org/grails/forge/options/FeatureFilter.groovy} (52%)
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/options/GormImpl.java => groovy/org/grails/forge/options/GormImpl.groovy} (63%)
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/options/JdkVersion.java => groovy/org/grails/forge/options/JdkVersion.groovy} (73%)
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/options/Language.groovy
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/options/Options.groovy
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/options/ServletImpl.java => groovy/org/grails/forge/options/ServletImpl.groovy} (61%)
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/options/TestFramework.java => groovy/org/grails/forge/options/TestFramework.groovy} (54%)
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/options/TestRockerModelProvider.java => groovy/org/grails/forge/options/TestViewProvider.groovy} (66%)
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/template/BinaryTemplate.java => groovy/org/grails/forge/template/BinaryTemplate.groovy} (71%)
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/template/Config4kTemplate.java => groovy/org/grails/forge/template/Config4kTemplate.groovy} (59%)
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/template/DefaultTemplateRenderer.java => groovy/org/grails/forge/template/DefaultTemplateRenderer.groovy} (51%)
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/template/ForgePages.groovy
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/template/RockerTemplate.java => groovy/org/grails/forge/template/GspTemplate.groovy} (53%)
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/template/GspView.groovy
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/template/PropertiesTemplate.java => groovy/org/grails/forge/template/PropertiesTemplate.groovy} (50%)
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/template/RenderResult.java => groovy/org/grails/forge/template/RenderResult.groovy} (60%)
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/template/StringTemplate.java => groovy/org/grails/forge/template/StringTemplate.groovy} (65%)
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/template/Template.java => groovy/org/grails/forge/template/Template.groovy} (82%)
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/feature/OneOfFeature.java => groovy/org/grails/forge/template/TemplateModel.groovy} (87%)
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/template/TemplateRenderer.java => groovy/org/grails/forge/template/TemplateRenderer.groovy} (78%)
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/template/URLTemplate.java => groovy/org/grails/forge/template/URLTemplate.groovy} (53%)
copy grails-forge/grails-forge-core/src/main/{java/org/grails/forge/build/dependencies/CoordinateResolver.java => groovy/org/grails/forge/template/Writable.groovy} (83%)
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/template/YamlTemplate.groovy
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/util/IOFeatureUtil.java => groovy/org/grails/forge/util/IOFeatureUtil.groovy} (72%)
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/util/NameUtils.java => groovy/org/grails/forge/util/NameUtils.groovy} (64%)
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/feature/lang/groovy/GrailsApplicationFeature.java => groovy/org/grails/forge/util/ThrowingSupplier.groovy} (82%)
create mode 100644 grails-forge/grails-forge-core/src/main/groovy/org/grails/forge/util/VersionInfo.groovy
rename grails-forge/grails-forge-core/src/main/{java/org/grails/forge/util/ZipUtil.java => groovy/org/grails/forge/util/ZipUtil.groovy} (59%)
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/analytics/Generated.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/analytics/SelectedFeature.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/application/PluginAvailableFeatures.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/application/Project.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/application/RestApiAvailableFeatures.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/application/WebAvailableFeatures.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/application/WebPluginAvailableFeatures.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/application/generator/GeneratorContext.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/build/dependencies/Dependency.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/build/dependencies/DependencyCoordinate.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/build/dependencies/LookupFailedException.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/build/dependencies/PomDependencyVersionResolver.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/build/gradle/DefaultGradleRepository.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/build/gradle/GradleBuild.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/build/gradle/GradleDependency.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/build/gradle/GradlePlugin.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/build/gradle/VersionRegexRepoFilter.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/defaults/IncludesDefaults.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/BaseAvailableFeatures.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/Category.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/FeatureContext.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/Features.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/ai/GrailsSpringAi.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/api/OpenApi.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/asciidoctor/Asciidoctor.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/assetPipeline/AssetPipeline.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/build/gradle/Dockerfile.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/build/gradle/Gradle.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/build/gradle/GradleBuildSrc.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/build/gradle/GradleSettingsFile.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/build/gradle/templates/buildGradle.rocker.raw
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/build/gradle/templates/gradleProperties.rocker.raw
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/build/gradle/templates/settingsGradle.rocker.raw
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/cache/EHCache.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/cache/GrailsCache.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/cli.rocker.raw
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/config/ApplicationConfiguration.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/database/DatabaseDriverFeature.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/database/GrailsDataHibernate5.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/database/GrailsDataHibernate7.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/database/H2.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/database/MongoDBTestingSupport.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/database/MongoSync.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/database/MySQL.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/database/Neo4jGorm.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/database/PostgreSQL.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/database/SQLServer.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/database/TestContainers.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/github/workflows/plain/PlainGithubWorkflowFeature.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/grails/GrailsBase.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/grails/GrailsDefaultPlugins.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/grails/GrailsGradlePlugin.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/grails/GrailsUrlMappings.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/grails/GrailsWebConsole.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/grailsProfiles/GrailsProfiles.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/grailsWrapper/GrailsWrapper.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/lang/groovy/GrailsApplication.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/micronaut/GrailsMicronaut.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/micronaut/MicronautHttpClient.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/migration/DatabaseMigrationPlugin.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/other/AppName.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/other/GrailsQuartz.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/other/GrailsStartupProgress.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/other/HibernateValidator.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/other/Readme.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/other/ShadePlugin.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/other/template/readme.rocker.raw
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/reloading/Jrebel.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/reloading/SpringBootDevTools.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/security/GrailsSpringSecurity.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/security/GrailsSpringSecurityUi.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/security/SecurityFeature.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/security/SpringBootStarterSecurity.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/spring/SpringBootAutoconfigure.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/spring/SpringBootJettyFeature.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/spring/SpringBootStarterFeature.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/spring/SpringResources.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/test/GebWithLocalBrowsers.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/test/GebWithTestcontainers.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/test/GormTestingSupport.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/test/GrailsWebTestingSupport.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/test/Mockito.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/test/Spock.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/test/ViewsJsonTestingSupport.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/view/GrailsGsp.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/view/GrailsViews.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/view/Scaffolding.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/view/json/ViewJson.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/view/markup/ViewMarkup.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/io/FileSystemOutputHandler.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/io/ZipOutputHandler.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/options/BuildTool.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/options/FeatureFilter.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/options/GormImplTypeConverter.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/options/Language.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/options/Options.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/template/RockerWritable.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/template/TemplateModel.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/template/YamlTemplate.java
delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/util/VersionInfo.java
delete mode 100644 grails-forge/grails-forge-core/src/main/resources/META-INF/native-image/org.grails.forge/grails-forge-core/resource-config.json
create mode 100644 grails-forge/grails-forge-core/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
copy grails-forge/grails-forge-core/src/test/groovy/org/grails/forge/{ApplicationContextSpec.groovy => ForgeContexts.groovy} (54%)
rename grails-forge/grails-forge-core/src/test/groovy/org/grails/forge/{BeanContextSpec.groovy => ForgeCoreConfigurationSpec.groovy} (63%)
create mode 100644 grails-forge/grails-forge-core/src/test/groovy/org/grails/forge/ForgeGrailsPluginSpec.groovy
rename grails-forge/grails-forge-core/src/test/groovy/org/grails/forge/options/{TestRockerModelProviderSpec.groovy => TestViewProviderSpec.groovy} (83%)
rename grails-forge/grails-forge-core/src/{main/java/org/grails/forge/feature/github/workflows/Secret.java => test/groovy/org/grails/forge/plugintest/ForgePluginTestApplication.groovy} (54%)
delete mode 100644 grails-forge/grails-forge-web-netty/build.gradle
delete mode 100644 grails-forge/grails-forge-web-netty/src/main/java/org/grails/forge/netty/Application.java
delete mode 100644 grails-forge/grails-forge-web-netty/src/main/java/org/grails/forge/netty/analytics/AnalyticsClient.java
delete mode 100644 grails-forge/grails-forge-web-netty/src/main/resources/META-INF/native-image/org.grails.forge/grails-forge-web-netty/native-image.properties
delete mode 100644 grails-forge/grails-forge-web-netty/src/main/resources/META-INF/native-image/org.grails.forge/grails-forge-web-netty/resource-config.json
delete mode 100644 grails-forge/grails-forge-web-netty/src/main/resources/application-dev.yml
delete mode 100644 grails-forge/grails-forge-web-netty/src/main/resources/application.yml
delete mode 100644 grails-forge/grails-forge-web-netty/src/main/resources/logback.xml
copy grails-forge/{grails-forge-web-netty => grails-forge-web}/aws/.platform/nginx/conf.d/proxy.conf (100%)
rename grails-forge/{grails-forge-web-netty => grails-forge-web}/aws/Procfile (100%)
rename grails-forge/{grails-forge-web-netty => grails-forge-web}/aws/start.sh (93%)
create mode 100644 grails-forge/grails-forge-web/build.gradle
create mode 100644 grails-forge/grails-forge-web/grails-app/conf/application.yml
rename grails-forge/{config/checkstyle/checkstyle-suppressions.xml => grails-forge-web/grails-app/conf/logback.xml} (60%)
create mode 100644 grails-forge/grails-forge-web/grails-app/conf/openapi-base.yml
create mode 100644 grails-forge/grails-forge-web/grails-app/controllers/org/grails/forge/web/DiffController.groovy
create mode 100644 grails-forge/grails-forge-web/grails-app/controllers/org/grails/forge/web/ForgeApplicationController.groovy
create mode 100644 grails-forge/grails-forge-web/grails-app/controllers/org/grails/forge/web/PreviewController.groovy
create mode 100644 grails-forge/grails-forge-web/grails-app/controllers/org/grails/forge/web/SelectOptionsController.groovy
create mode 100644 grails-forge/grails-forge-web/grails-app/controllers/org/grails/forge/web/UrlMappings.groovy
create mode 100644 grails-forge/grails-forge-web/grails-app/controllers/org/grails/forge/web/ZipCreateController.groovy
create mode 100644 grails-forge/grails-forge-web/grails-app/i18n/messages.properties
rename grails-forge/{grails-forge-api/src/main/java/org/grails/forge/api/event/ApplicationGeneratingEvent.java => grails-forge-web/grails-app/init/org/grails/forge/web/Application.groovy} (52%)
create mode 100644 grails-forge/grails-forge-web/src/integration-test/groovy/org/grails/forge/web/ForgeApiIntegrationSpec.groovy
rename grails-forge/{grails-forge-web-netty/aws/.platform/nginx/conf.d/proxy.conf => grails-forge-web/src/integration-test/resources/api-test-messages_fr.properties} (79%)
create mode 100644 grails-forge/grails-forge-web/src/main/groovy/org/grails/forge/api/ApplicationTypeDTO.groovy
rename grails-forge/{grails-forge-api/src/main/java/org/grails/forge/api/ApplicationTypeList.java => grails-forge-web/src/main/groovy/org/grails/forge/api/ApplicationTypeList.groovy} (64%)
copy grails-forge/{grails-forge-api/src/test/groovy/org/grails/forge/api/FeatureOperationsSpec.groovy => grails-forge-web/src/main/groovy/org/grails/forge/api/ApplicationTypeOperations.groovy} (61%)
create mode 100644 grails-forge/grails-forge-web/src/main/groovy/org/grails/forge/api/DevelopmentReloadingDTO.groovy
create mode 100644 grails-forge/grails-forge-web/src/main/groovy/org/grails/forge/api/FeatureDTO.groovy
rename grails-forge/{grails-forge-api/src/main/java/org/grails/forge/api/FeatureList.java => grails-forge-web/src/main/groovy/org/grails/forge/api/FeatureList.groovy} (65%)
rename grails-forge/{grails-forge-api/src/main/java/org/grails/forge/api/FeatureOperations.java => grails-forge-web/src/main/groovy/org/grails/forge/api/FeatureOperations.groovy} (83%)
create mode 100644 grails-forge/grails-forge-web/src/main/groovy/org/grails/forge/api/FeatureService.groovy
create mode 100644 grails-forge/grails-forge-web/src/main/groovy/org/grails/forge/api/ForgeApplicationService.groovy
rename grails-forge/{grails-forge-api/src/test/groovy/org/grails/forge/api/MyEventListener.groovy => grails-forge-web/src/main/groovy/org/grails/forge/api/ForgeMessages.groovy} (69%)
create mode 100644 grails-forge/grails-forge-web/src/main/groovy/org/grails/forge/api/GormImplDTO.groovy
rename grails-forge/{grails-forge-api/src/main/java/org/grails/forge/api/GrailsForgeConfiguration.java => grails-forge-web/src/main/groovy/org/grails/forge/api/GrailsForgeConfiguration.groovy} (52%)
create mode 100644 grails-forge/grails-forge-web/src/main/groovy/org/grails/forge/api/JdkVersionDTO.groovy
create mode 100644 grails-forge/grails-forge-web/src/main/groovy/org/grails/forge/api/LanguageDTO.groovy
rename grails-forge/{grails-forge-api/src/main/java/org/grails/forge/api/analytics/AnalyticsOperations.java => grails-forge-web/src/main/groovy/org/grails/forge/api/LinkDTO.groovy} (61%)
rename grails-forge/{grails-forge-api/src/main/java/org/grails/forge/api/Linkable.java => grails-forge-web/src/main/groovy/org/grails/forge/api/Linkable.groovy} (64%)
rename grails-forge/{grails-forge-api/src/main/java/org/grails/forge/api/Relationship.java => grails-forge-web/src/main/groovy/org/grails/forge/api/Relationship.groovy} (62%)
create mode 100644 grails-forge/grails-forge-web/src/main/groovy/org/grails/forge/api/RequestInfo.groovy
rename grails-forge/{grails-forge-api/src/test/groovy/org/grails/forge/api/FeatureOperationsSpec.groovy => grails-forge-web/src/main/groovy/org/grails/forge/api/SelectOptionDTO.groovy} (61%)
rename grails-forge/{grails-forge-api/src/main/java/org/grails/forge/api/SelectOptionsDTO.java => grails-forge-web/src/main/groovy/org/grails/forge/api/SelectOptionsDTO.groovy} (51%)
rename grails-forge/{grails-forge-api/src/main/java/org/grails/forge/api/Selectable.java => grails-forge-web/src/main/groovy/org/grails/forge/api/Selectable.groovy} (85%)
create mode 100644 grails-forge/grails-forge-web/src/main/groovy/org/grails/forge/api/ServletImplDTO.groovy
rename grails-forge/{grails-forge-api/src/main/java/org/grails/forge/api/UserAgentParser.java => grails-forge-web/src/main/groovy/org/grails/forge/api/UserAgentParser.groovy} (50%)
rename grails-forge/{grails-forge-api/src/main/java/org/grails/forge/api/VersionDTO.java => grails-forge-web/src/main/groovy/org/grails/forge/api/VersionDTO.groovy} (61%)
create mode 100644 grails-forge/grails-forge-web/src/main/groovy/org/grails/forge/api/create/CreateProjectService.groovy
copy grails-forge/{grails-forge-core/src/main/java/org/grails/forge/feature/cache/CacheFeature.java => grails-forge-web/src/main/groovy/org/grails/forge/api/options/ApplicationTypeSelectOptions.groovy} (60%)
rename grails-forge/{grails-forge-api/src/main/java/org/grails/forge/api/options/LanguageSelectOptions.java => grails-forge-web/src/main/groovy/org/grails/forge/api/options/DevelopmentReloadingSelectOptions.groovy} (59%)
copy grails-forge/{grails-forge-core/src/main/java/org/grails/forge/feature/cache/CacheFeature.java => grails-forge-web/src/main/groovy/org/grails/forge/api/options/GormImplSelectOptions.groovy} (63%)
copy grails-forge/{grails-forge-core/src/main/java/org/grails/forge/feature/cache/CacheFeature.java => grails-forge-web/src/main/groovy/org/grails/forge/api/options/JdkVersionSelectOptions.groovy} (62%)
copy grails-forge/{grails-forge-core/src/main/java/org/grails/forge/feature/cache/CacheFeature.java => grails-forge-web/src/main/groovy/org/grails/forge/api/options/LanguageSelectOptions.groovy} (63%)
rename grails-forge/{grails-forge-core/src/main/java/org/grails/forge/build/dependencies/CoordinateResolver.java => grails-forge-web/src/main/groovy/org/grails/forge/api/options/SelectOptionsOperations.groovy} (75%)
rename grails-forge/{grails-forge-core/src/main/java/org/grails/forge/feature/cache/CacheFeature.java => grails-forge-web/src/main/groovy/org/grails/forge/api/options/ServletImplSelectOptions.groovy} (62%)
rename grails-forge/{grails-forge-api/src/main/java/org/grails/forge/api/preview/PreviewDTO.java => grails-forge-web/src/main/groovy/org/grails/forge/api/preview/PreviewDTO.groovy} (59%)
create mode 100644 grails-forge/grails-forge-web/src/main/groovy/org/grails/forge/web/ForgeRequestSupport.groovy
rename grails-forge/{buildSrc/src/main/java/org/grails/forge/rocker/plugin/RockerGradleException.java => grails-forge-web/src/main/groovy/org/grails/forge/web/GroovyObjectJsonMixin.groovy} (66%)
create mode 100644 grails-forge/grails-forge-web/src/test/groovy/org/grails/forge/web/ForgeRequestSupportSpec.groovy
create mode 100644 grails-forge/grails-forge-web/src/test/groovy/org/grails/forge/web/GrailsForgeConfigurationSpec.groovy
delete mode 100644 grails-forge/grailsforgearchitecture.jpeg
delete mode 100644 grails-forge/sam-local.yml
create mode 100644 grails-gradle/plugins/src/test/groovy/org/grails/gradle/plugin/core/GrailsPluginGradlePluginNative2AsciiSpec.groovy
create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/plugin-native2ascii-off/build.gradle
copy grails-gradle/plugins/src/test/resources/test-projects/{auto-apply-bom-disabled => plugin-native2ascii-off}/gradle.properties (100%)
copy grails-gradle/plugins/src/test/resources/test-projects/{boot-run-pid-web => plugin-native2ascii-off}/grails-app/conf/application.yml (100%)
create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/plugin-native2ascii-off/settings.gradle
create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/plugin-native2ascii-off/src/main/resources/templates/messages_ru.properties
create mode 100644 grails-gsp/core/src/main/groovy/org/grails/gsp/compiler/LogicLineTrimmer.java
create mode 100644 grails-gsp/core/src/test/groovy/org/grails/gsp/GspTrimLogicLinesSpec.groovy
(grails-core) 03/03: Give the Forge CLI test fixtures Groovy 6's call-site module
Posted by jd...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
jdaugherty pushed a commit to branch 9.0.x
in repository https://gitbox.apache.org/repos/asf/grails-core.git
commit 386e881473d26c1ccd58c54120ee98cd065d46eb
Author: James Daugherty <jd...@jdresources.net>
AuthorDate: Wed Oct 14 14:50:50 2026 +0100
Give the Forge CLI test fixtures Groovy 6's call-site module
The Grails Gradle plugin compiles every Groovy source set of the Forge
CLI without invokedynamic, and Groovy 6 generates classic call sites
only with the optional groovy-callsite module on the classpath
(GROOVY-11158). The application's source sets get it through
grails-common, but the java-test-fixtures source set sees none of the
application's implementation dependencies, so compileTestFixturesGroovy
failed on 9.0.x. The fixtures now declare the module themselves.
---
grails-forge/grails-forge-cli/build.gradle | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/grails-forge/grails-forge-cli/build.gradle b/grails-forge/grails-forge-cli/build.gradle
index 7e324417c1..90401b1cd2 100644
--- a/grails-forge/grails-forge-cli/build.gradle
+++ b/grails-forge/grails-forge-cli/build.gradle
@@ -110,6 +110,10 @@ dependencies {
// CliRunner, the fixture the specs run one command bean with
testFixturesImplementation platform("org.apache.grails:grails-bom:$projectVersion")
testFixturesImplementation 'org.apache.groovy:groovy'
+ // GROOVY-11158: the Grails plugin compiles every Groovy source set without invokedynamic, which
+ // Groovy 6 supports only with groovy-callsite on the classpath. The application's own source sets
+ // get it through grails-common; the fixtures see none of the application's implementation dependencies.
+ testFixturesImplementation 'org.apache.groovy:groovy-callsite'
testFixturesImplementation 'org.springframework:spring-context'
testFixturesImplementation "info.picocli:picocli:$picocliVersion"
(grails-core) 01/03: Merge branch '8.1.x' into 9.0.x
Posted by jd...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
jdaugherty pushed a commit to branch 9.0.x
in repository https://gitbox.apache.org/repos/asf/grails-core.git
commit 696429eab7189f53424c1c3eeaa2d9ffa658d221
Merge: 1edb825aa8 f64c002d33
Author: James Daugherty <jd...@jdresources.net>
AuthorDate: Wed Oct 14 14:34:36 2026 +0100
Merge branch '8.1.x' into 9.0.x
.agents/skills/gradle-developer/SKILL.md | 4 +-
.github/workflows/forge-deploy-aws.yml | 4 +-
.gitignore | 4 +
AGENTS.md | 2 +-
RELEASE.md | 4 +-
THREAT_MODEL.md | 6 +-
.../gradle/wrapper/gradle-wrapper.properties | 2 +-
build-logic/plugins/build.gradle | 13 +
.../grails/buildsrc/GrailsCodeStylePlugin.groovy | 2 +-
.../buildsrc/WriteGrailsVersionInfoTask.groovy | 12 +-
.../GrailsGroovyExtensionTransformer.groovy | 26 +-
.../shadowjar/GrailsShadowLicenseTransform.groovy | 0
.../shadowjar/GrailsShadowNoticeTransform.groovy | 0
.../internal/tasks/GenerateManpageAsciidoc.java | 0
.../internal/tasks/PicocliBuildCompletionTask.java | 0
.../buildsrc/WriteGrailsVersionInfoTaskSpec.groovy | 122 ++++
.../GrailsGroovyExtensionTransformerSpec.groovy | 125 +++++
gradle.properties | 4 +-
gradle/rat-root-config.gradle | 2 +-
gradle/wrapper/gradle-wrapper.properties | 2 +-
.../theWebLayer/gsp/GSPBasics/pageDirectives.adoc | 40 ++
.../src/en/guide/upgrading/upgrading81x.adoc | 22 +
grails-forge/.gitattributes | 5 -
grails-forge/.gitignore | 20 -
grails-forge/README.md | 61 +-
grails-forge/build.gradle | 5 -
grails-forge/buildSrc/build.gradle | 62 ---
grails-forge/buildSrc/settings.gradle | 35 --
.../forge/rocker/plugin/JavaGeneratorRunnable.java | 166 ------
.../forge/rocker/plugin/RockerConfiguration.java | 99 ----
.../grails/forge/rocker/plugin/RockerPlugin.java | 92 ---
.../rocker/plugin/RockerSourceSetProperty.java | 80 ---
.../org/grails/forge/rocker/plugin/RockerTask.java | 185 -------
.../forge/rocker/plugin/TemplateDirectorySet.java | 124 -----
.../forge/rocker/plugin/WhitespaceProcessor.java | 52 --
grails-forge/config/checkstyle/checkstyle.xml | 227 --------
grails-forge/config/spotless.license.java | 18 -
grails-forge/docs/aws-elastic-beanstalk.md | 18 +-
grails-forge/docs/choose-postgresql.png | Bin 108993 -> 0 bytes
grails-forge/docs/cloud_sql_create_intance.png | Bin 100207 -> 0 bytes
grails-forge/docs/create-database.png | Bin 150843 -> 0 bytes
grails-forge/docs/create-two-databases.png | Bin 175471 -> 0 bytes
grails-forge/docs/dbinstance-options.png | Bin 100921 -> 0 bytes
grails-forge/docs/enable-cloud-sql-admin-api.png | Bin 151032 -> 0 bytes
grails-forge/docs/enable-compute-engine-api.png | Bin 79831 -> 0 bytes
.../etc/bin/generate-build-artifact-hashes.groovy | 79 ---
grails-forge/etc/bin/test-reproducible-builds.sh | 64 ---
grails-forge/gradle.properties | 33 +-
grails-forge/gradle/code-style-config.gradle | 96 ----
grails-forge/gradle/doc-config.gradle | 15 +-
grails-forge/gradle/groovy-version-pin.gradle | 29 -
.../gradle/micronaut-openapi-config.gradle | 53 --
grails-forge/gradle/test-config.gradle | 26 +-
.../gradle/wrapper/gradle-wrapper.properties | 2 +-
grails-forge/grails-cli-shadow/build.gradle | 11 +
grails-forge/grails-cli/build.gradle | 16 +-
.../grails/cli/DelegatingShellApplication.groovy | 2 +-
.../grails-forge-analytics-postgres/build.gradle | 120 ----
.../analytics/postgres/AnalyticsController.java | 98 ----
.../forge/analytics/postgres/Application.java | 140 -----
.../analytics/postgres/ApplicationRepository.java | 53 --
.../grails/forge/analytics/postgres/Feature.java | 79 ---
.../analytics/postgres/FeatureRepository.java | 121 ----
.../org/grails/forge/analytics/postgres/Main.java | 49 --
.../postgres/gcp/GoogleCloudSqlSetup.java | 58 --
.../native-image.properties | 24 -
.../src/main/resources/application-dev.yml | 9 -
.../src/main/resources/application.yml | 14 -
.../resources/databasemigrations/V1__schema.sql | 21 -
.../src/main/resources/logback.xml | 15 -
.../postgres/StoreGeneratedProjectStatsSpec.groovy | 125 -----
grails-forge/grails-forge-api/build.gradle | 83 ---
.../grails/forge/api/ApplicationController.java | 240 --------
.../org/grails/forge/api/ApplicationTypeDTO.java | 129 -----
.../forge/api/ApplicationTypeOperations.java | 75 ---
.../org/grails/forge/api/DevelopmentReloading.java | 50 --
.../grails/forge/api/DevelopmentReloadingDTO.java | 103 ----
.../main/java/org/grails/forge/api/FeatureDTO.java | 153 -----
.../java/org/grails/forge/api/FeatureService.java | 104 ----
.../java/org/grails/forge/api/GormImplDTO.java | 111 ----
.../java/org/grails/forge/api/JdkVersionDTO.java | 110 ----
.../java/org/grails/forge/api/LanguageDTO.java | 124 -----
.../main/java/org/grails/forge/api/LinkDTO.java | 63 ---
.../java/org/grails/forge/api/RequestInfo.java | 139 -----
.../java/org/grails/forge/api/SelectOptionDTO.java | 62 ---
.../java/org/grails/forge/api/ServletImplDTO.java | 100 ----
.../forge/api/analytics/GenerationListener.java | 68 ---
.../forge/api/bind/RequestInfoArgumentBinder.java | 93 ----
.../forge/api/create/AbstractCreateController.java | 117 ----
.../forge/api/create/zip/ZipCreateController.java | 196 -------
.../forge/api/create/zip/ZipCreateOperation.java | 69 ---
.../org/grails/forge/api/diff/DiffController.java | 228 --------
.../org/grails/forge/api/diff/DiffOperations.java | 92 ---
.../api/options/ApplicationTypeSelectOptions.java | 42 --
.../options/DevelopmentReloadingSelectOptions.java | 42 --
.../forge/api/options/GormImplSelectOptions.java | 42 --
.../forge/api/options/JdkVersionSelectOptions.java | 42 --
.../forge/api/options/SelectOptionsController.java | 60 --
.../forge/api/options/SelectOptionsOperations.java | 27 -
.../api/options/ServletImplSelectOptions.java | 42 --
.../forge/api/preview/PreviewController.java | 120 ----
.../forge/api/preview/PreviewOperations.java | 61 --
.../grails-forge-api/reflect-config.json | 52 --
.../grails-forge-api/resource-config.json | 11 -
.../src/main/resources/application.yml | 5 -
.../src/main/resources/select_options.properties | 1 -
.../forge/api/ApplicationControllerSpec.groovy | 111 ----
.../grails/forge/api/ApplicationTypeClient.groovy | 42 --
.../org/grails/forge/api/CreateClient.groovy | 57 --
.../groovy/org/grails/forge/api/DiffClient.groovy | 56 --
.../org/grails/forge/api/DiffControllerSpec.groovy | 85 ---
.../grails/forge/api/FeatureControllerSpec.groovy | 211 -------
.../org/grails/forge/api/PreviewClient.groovy | 42 --
.../grails/forge/api/PreviewControllerSpec.groovy | 62 ---
.../forge/api/ZipCreateControllerSpec.groovy | 145 -----
.../src/test/resources/features_es.properties | 4 -
.../src/test/resources/logback.xml | 17 -
grails-forge/grails-forge-cli/build.gradle | 103 ++--
.../grails-app/conf/application.yml | 28 +
.../init/org/grails/forge/cli/Application.groovy | 84 +++
.../forge/cli/command/templates/controller.gsp} | 23 +-
.../cli/command/templates/controllerSpec.gsp} | 25 +-
.../views/forge/cli/command/templates/domain.gsp} | 25 +-
.../forge/cli/command/templates/domainSpec.gsp} | 27 +-
.../forge/cli/command/templates/interceptor.gsp} | 25 +-
.../cli/command/templates/interceptorSpec.gsp} | 27 +-
.../views/forge/cli/command/templates/job.gsp} | 23 +-
.../views/forge/cli/command/templates/service.gsp} | 27 +-
.../forge/cli/command/templates/serviceSpec.gsp} | 25 +-
.../views/forge/cli/command/templates/taglib.gsp} | 23 +-
.../forge/cli/command/templates/taglibSpec.gsp} | 25 +-
.../org/grails/forge/cli/CodeGenConfig.groovy | 189 +++++++
.../grails/forge/cli/CommonOptionsMixin.groovy} | 28 +-
.../groovy/org/grails/forge/cli/ForgeCli.groovy | 133 +++++
.../org/grails/forge/cli/ForgeCommand.groovy | 67 +++
.../grails/forge/cli/GrailsPicocliFactory.groovy | 59 ++
.../org/grails/forge/cli/InteractiveShell.groovy} | 107 ++--
.../forge/cli/command/AddPropertyCommand.groovy | 169 ++++++
.../grails/forge/cli/command/BaseCommand.groovy | 88 +++
.../grails/forge/cli/command/CodeGenCommand.groovy | 118 ++++
.../forge/cli/command/CreateAppCommand.groovy} | 45 +-
.../grails/forge/cli/command/CreateCommand.groovy | 126 +++++
.../cli/command/CreateControllerCommand.groovy | 84 +++
.../cli/command/CreateDomainClassCommand.groovy | 84 +++
.../cli/command/CreateInterceptorCommand.groovy | 84 +++
.../forge/cli/command/CreateJobCommand.groovy | 85 +++
.../forge/cli/command/CreatePluginCommand.groovy} | 45 +-
.../forge/cli/command/CreateRestApiCommand.groovy} | 45 +-
.../forge/cli/command/CreateServiceCommand.groovy | 84 +++
.../forge/cli/command/CreateTagLibCommand.groovy | 84 +++
.../cli/command/CreateWebPluginCommand.groovy} | 45 +-
.../forge/cli/command/CreateWebappCommand.groovy} | 45 +-
.../command/DevelopmentReloadingCandidates.groovy} | 18 +-
.../command/DevelopmentReloadingConverter.groovy} | 20 +-
.../forge/cli/command/GormImplCandidates.groovy} | 17 +-
.../forge/cli/command/GormImplConverter.groovy} | 22 +-
.../forge/cli/command/LanguageCandidates.groovy} | 17 +-
.../forge/cli/command/LanguageConverter.groovy} | 18 +-
.../grails/forge/cli/command/ListFeatures.groovy | 106 ++++
.../cli/command/ServletImplCandidates.groovy} | 17 +-
.../forge/cli/command/ServletImplConverter.groovy} | 20 +-
.../forge/cli/util/GrailsVersionProvider.groovy} | 28 +-
.../java/org/grails/forge/cli/Application.java | 128 -----
.../java/org/grails/forge/cli/CodeGenConfig.java | 180 ------
.../org/grails/forge/cli/GrailsPicocliFactory.java | 57 --
.../forge/cli/command/AddPropertyCommand.java | 181 ------
.../org/grails/forge/cli/command/BaseCommand.java | 92 ---
.../grails/forge/cli/command/CodeGenCommand.java | 123 -----
.../grails/forge/cli/command/CreateCommand.java | 137 -----
.../forge/cli/command/CreateControllerCommand.java | 88 ---
.../cli/command/CreateDomainClassCommand.java | 88 ---
.../cli/command/CreateInterceptorCommand.java | 88 ---
.../grails/forge/cli/command/CreateJobCommand.java | 87 ---
.../forge/cli/command/CreateServiceCommand.java | 88 ---
.../forge/cli/command/CreateTagLibCommand.java | 88 ---
.../org/grails/forge/cli/command/ListFeatures.java | 111 ----
.../grails-forge-cli/native-image.properties | 2 -
.../grails-forge-cli/resource-config.json | 7 -
.../src/main/resources/simplelogger.properties | 23 +
.../org/grails/forge/cli/ApplicationSpec.groovy | 110 ++++
.../CodeGenConfigDevelopmentReloadingSpec.groovy | 24 +-
.../org/grails/forge/cli/CommandFixture.groovy | 6 +-
.../groovy/org/grails/forge/cli/CommandSpec.groovy | 8 +
.../org/grails/forge/cli/ForgeCliSpec.groovy} | 41 +-
.../cli/command/ApplicationCommandSpec.groovy | 18 +-
.../forge/cli/command/CodeGenCommandSpec.groovy | 21 +-
.../forge/cli/command/CreateAppCommandSpec.groovy | 34 +-
.../cli/command/CreateControllerCommandSpec.groovy | 8 -
.../command/CreateDomainClassCommandSpec.groovy | 7 -
.../command/CreateInterceptorCommandSpec.groovy | 9 -
.../forge/cli/command/CreateJobCommandSpec.groovy | 8 -
.../cli/command/CreateServiceCommandSpec.groovy | 8 -
.../cli/command/CreateTagLibCommandSpec.groovy | 12 -
.../groovy/org/grails/forge/cli/CliRunner.groovy} | 25 +-
grails-forge/grails-forge-core/build.gradle | 80 +--
.../asciidoctor/template/asciidocGradle.gsp} | 17 +-
.../feature/asciidoctor/template/indexAdoc.gsp} | 8 +-
.../views/forge/feature/build/gitignore.gsp} | 6 +-
.../feature/build/gradle/templates/buildGradle.gsp | 140 +++++
.../gradle/templates/buildSrcBuildGradle.gsp} | 56 +-
.../build/gradle/templates/dependencies.gsp} | 34 +-
.../build/gradle/templates/gradleProperties.gsp} | 38 +-
.../gradle/templates/gradleWrapperProperties.gsp} | 33 +-
.../build/gradle/templates/settingsGradle.gsp | 45 +-
.../grails-app/views/forge/feature/cli.gsp | 43 ++
.../plain/templates/plainGithubWorkflow.gsp} | 27 +-
.../github/workflows/templates/javaSetup.gsp} | 24 +-
.../grails/templates/applicationController.gsp} | 14 +-
.../forge/feature/grails/templates/plugin.gsp} | 41 +-
.../feature/grails/templates/urlMappings.gsp} | 29 +-
.../feature/lang/groovy/templates/application.gsp} | 58 +-
.../feature/lang/groovy/templates/bootStrap.gsp} | 37 +-
.../forge/feature/logging/template/logback.gsp} | 12 +-
.../migration/templates/dbMigrationGradle.gsp} | 11 +-
.../forge/feature/other/template/maindocs.gsp} | 23 +-
.../forge/feature/other/template/markdownLink.gsp} | 11 +-
.../views/forge/feature/other/template/readme.gsp} | 45 +-
.../forge/feature/security/template/role.gsp} | 18 +-
.../template/securityApplicationGroovy.gsp} | 31 +-
.../forge/feature/security/template/user.gsp} | 26 +-
.../feature/security/template/userClassic.gsp} | 28 +-
.../security/template/userClassicService.gsp} | 16 +-
.../feature/security/template/userClassicSpec.gsp} | 14 +-
.../feature/security/template/userController.gsp} | 16 +-
.../forge/feature/security/template/userRole.gsp} | 20 +-
.../feature/security/template/userService.gsp} | 20 +-
.../forge/feature/security/template/userSpec.gsp} | 14 +-
.../feature/spring/template/springResources.gsp} | 6 +-
.../feature/test/template/containerGebSpec.gsp} | 25 +-
.../forge/feature/test/template/gebConfig.gsp} | 14 +-
.../views/forge/feature/test/template/gebSpec.gsp} | 25 +-
.../forge/feature/view/json/templates/_errors.gsp} | 6 +-
.../forge/feature/view/json/templates/_object.gsp} | 8 +-
.../forge/feature/view/json/templates/error.gsp} | 6 +-
.../forge/feature/view/json/templates/index.gsp} | 6 +-
.../feature/view/json/templates/notFound.gsp} | 6 +-
.../feature/view/markup/templates/_errors.gsp} | 6 +-
.../feature/view/markup/templates/_object.gsp} | 8 +-
.../forge/feature/view/markup/templates/error.gsp} | 6 +-
.../forge/feature/view/markup/templates/index.gsp} | 6 +-
.../feature/view/markup/templates/notFound.gsp} | 6 +-
.../views/forge/template/api/grailsForgeApi.gsp} | 37 +-
.../org/grails/forge/ForgeCoreConfiguration.groovy | 50 ++
.../org/grails/forge/ForgeGrailsPlugin.groovy | 49 ++
.../forge/application/ApplicationType.groovy} | 44 +-
.../forge/application/ContextFactory.groovy} | 131 +++--
.../forge/application/OperatingSystem.groovy} | 27 +-
.../application/PluginAvailableFeatures.groovy} | 23 +-
.../org/grails/forge/application/Project.groovy | 93 ++++
.../forge/application/ProjectIdentifier.groovy} | 28 +-
.../application/RestApiAvailableFeatures.groovy} | 23 +-
.../forge/application/WebAvailableFeatures.groovy} | 20 +-
.../application/WebPluginAvailableFeatures.groovy} | 29 +-
.../generator/DefaultProjectGenerator.groovy} | 103 ++--
.../application/generator/GeneratorContext.groovy | 397 +++++++++++++
.../application/generator/ProjectGenerator.groovy} | 30 +-
.../org/grails/forge/build/BuildPlugin.groovy} | 28 +-
.../org/grails/forge/build/BuildProperties.groovy} | 36 +-
.../org/grails/forge/build/Comment.groovy} | 15 +-
.../org/grails/forge/build/Property.groovy} | 15 +-
.../forge/build/dependencies/Coordinate.groovy} | 45 +-
.../build/dependencies/CoordinateResolver.groovy} | 10 +-
.../dependencies/DefaultCoordinateResolver.groovy} | 32 +-
.../forge/build/dependencies/Dependency.groovy | 393 +++++++++++++
.../build/dependencies/DependencyContext.groovy} | 41 +-
.../build/dependencies/DependencyCoordinate.groovy | 120 ++++
.../dependencies/LookupFailedException.groovy} | 12 +-
.../grails/forge/build/dependencies/Phase.groovy} | 8 +-
.../PomDependencyVersionResolver.groovy | 150 +++++
.../grails/forge/build/dependencies/Scope.groovy} | 97 ++--
.../grails/forge/build/dependencies/Source.groovy} | 8 +-
.../build/gradle/DefaultGradleRepository.groovy | 141 +++++
.../grails/forge/build/gradle/GradleBuild.groovy | 162 ++++++
.../forge/build/gradle/GradleBuildCreator.groovy} | 58 +-
.../forge/build/gradle/GradleConfiguration.groovy} | 134 ++---
.../forge/build/gradle/GradleDependency.groovy | 123 +++++
.../grails/forge/build/gradle/GradleDsl.groovy} | 8 +-
.../grails/forge/build/gradle/GradlePlugin.groovy | 256 +++++++++
.../forge/build/gradle/GradleRepository.groovy} | 97 ++--
.../build/gradle/MavenCentralRepository.groovy} | 25 +-
.../build/gradle/MavenLocalRepository.groovy} | 25 +-
.../build/gradle/VersionRegexRepoFilter.groovy | 56 ++
.../grails/forge/build/gradle/VersionType.groovy} | 8 +-
.../grails/forge/defaults/HasDefaultBuild.groovy} | 11 +-
.../HasDefaultDevelopmentReloading.groovy} | 12 +-
.../grails/forge/defaults/IncludesDefaults.groovy} | 10 +-
.../grails/forge/defaults/LanguageDefaults.groovy} | 32 +-
.../org/grails/forge/diff/FeatureDiffer.groovy} | 114 ++--
.../forge/feature/ApplicationFeature.groovy} | 14 +-
.../grails/forge/feature/AvailableFeatures.groovy} | 20 +-
.../forge/feature/BaseAvailableFeatures.groovy | 88 +++
.../org/grails/forge/feature/Category.groovy | 65 +++
.../grails/forge/feature/DefaultFeature.groovy} | 14 +-
.../org/grails/forge/feature/Feature.groovy} | 50 +-
.../org/grails/forge/feature/FeatureContext.groovy | 133 +++++
.../org/grails/forge/feature/FeaturePhase.groovy} | 17 +-
.../grails/forge/feature/FeaturePredicate.groovy} | 11 +-
.../grails/forge/feature/FeatureRegistry.groovy | 94 ++++
.../org/grails/forge/feature/Features.groovy | 134 +++++
.../org/grails/forge/feature/OneOfFeature.groovy} | 10 +-
.../grails/forge/feature/ai/GrailsSpringAi.groovy | 87 +++
.../forge/feature/ai/SpringAiAnthropic.groovy} | 35 +-
.../grails/forge/feature/ai/SpringAiOllama.groovy} | 43 +-
.../grails/forge/feature/ai/SpringAiOpenAi.groovy} | 35 +-
.../feature/ai/SpringAiProviderFeature.groovy} | 53 +-
.../org/grails/forge/feature/api/OpenApi.groovy | 87 +++
.../forge/feature/asciidoctor/Asciidoctor.groovy | 83 +++
.../feature/assetPipeline/AssetPipeline.groovy | 159 ++++++
.../forge/feature/build/BuildFeature.groovy} | 18 +-
.../forge/feature/build/gradle/Dockerfile.groovy | 85 +++
.../forge/feature/build/gradle/Gradle.groovy | 100 ++++
.../feature/build/gradle/GradleBuildSrc.groovy | 77 +++
.../build/gradle/GradleBuildSrcFeature.groovy} | 22 +-
.../feature/build/gradle/GradleSettingsFile.groovy | 81 +++
.../build/gradle/GradleSettingsFileFeature.groovy} | 22 +-
.../forge/feature/cache/CacheFeature.groovy} | 18 +-
.../org/grails/forge/feature/cache/EHCache.groovy | 67 +++
.../grails/forge/feature/cache/GrailsCache.groovy | 76 +++
.../config/ApplicationConfiguration.groovy} | 38 +-
.../feature/config/BootstrapConfiguration.groovy} | 24 +-
.../forge/feature/config/Configuration.groovy} | 157 +++---
.../feature/config/ConfigurationFeature.groovy} | 39 +-
.../grails/forge/feature/config/Properties.groovy} | 47 +-
.../org/grails/forge/feature/config/Yaml.groovy} | 54 +-
.../forge/feature/database/AsyncGorm.groovy} | 68 +--
.../DatabaseDriverConfigurationFeature.groovy} | 57 +-
.../feature/database/DatabaseDriverFeature.groovy | 88 +++
.../forge/feature/database/GormFeature.groovy} | 26 +-
.../feature/database/GormOneOfFeature.groovy} | 12 +-
.../feature/database/GrailsDataHibernate5.groovy | 128 +++++
.../feature/database/GrailsDataHibernate7.groovy | 124 +++++
.../database/GrailsDataHibernateValidator.groovy} | 35 +-
.../feature/database/GrailsDataMongoDB.groovy} | 91 ++-
.../forge/feature/database/GraphqlGorm.groovy} | 68 +--
.../org/grails/forge/feature/database/H2.groovy | 106 ++++
.../forge/feature/database/JpaFeature.groovy} | 8 +-
.../feature/database/MongoDBTestingSupport.groovy | 78 +++
.../MongoDBTestingSupportValidator.groovy} | 28 +-
.../forge/feature/database/MongoFeature.groovy} | 30 +-
.../grails/forge/feature/database/MongoSync.groovy | 87 +++
.../org/grails/forge/feature/database/MySQL.groovy | 98 ++++
.../grails/forge/feature/database/Neo4jGorm.groovy | 77 +++
.../forge/feature/database/PostgreSQL.groovy | 99 ++++
.../grails/forge/feature/database/SQLServer.groovy | 98 ++++
.../forge/feature/database/TestContainers.groovy | 134 +++++
.../github/workflows/GitHubWorkflowFeature.groovy} | 33 +-
.../forge/feature/github/workflows/Secret.groovy} | 37 +-
.../plain/PlainGithubWorkflowFeature.groovy | 59 ++
.../grails/forge/feature/grails/GrailsBase.groovy | 117 ++++
.../feature/grails/GrailsCompileStatic.groovy} | 38 +-
.../feature/grails/GrailsDefaultPlugins.groovy | 91 +++
.../forge/feature/grails/GrailsGradlePlugin.groovy | 82 +++
.../forge/feature/grails/GrailsUrlMappings.groovy | 63 +++
.../forge/feature/grails/GrailsWebConsole.groovy | 74 +++
.../feature/grailsProfiles/GrailsProfiles.groovy | 79 +++
.../feature/grailsWrapper/GrailsWrapper.groovy | 81 +++
.../forge/feature/lang/LanguageFeature.groovy} | 22 +-
.../feature/lang/groovy/GrailsApplication.groovy | 88 +++
.../lang/groovy/GrailsApplicationFeature.groovy} | 10 +-
.../grails/forge/feature/logging/Logback.groovy} | 56 +-
.../forge/feature/logging/LogbackConfig.groovy} | 56 +-
.../forge/feature/logging/LoggingFeature.groovy} | 18 +-
.../forge/feature/micronaut/GrailsMicronaut.groovy | 103 ++++
.../micronaut/GrailsMicronautValidator.groovy} | 29 +-
.../feature/micronaut/MicronautHttpClient.groovy | 117 ++++
.../migration/DatabaseMigrationPlugin.groovy | 80 +++
.../feature/migration/MigrationFeature.groovy} | 18 +-
.../org/grails/forge/feature/other/AppName.groovy | 66 +++
.../grails/forge/feature/other/GrailsQuartz.groovy | 74 +++
.../feature/other/GrailsStartupProgress.groovy | 79 +++
.../forge/feature/other/HibernateValidator.groovy | 70 +++
.../org/grails/forge/feature/other/Readme.groovy | 94 ++++
.../grails/forge/feature/other/ShadePlugin.groovy | 77 +++
.../grails/forge/feature/reloading/Jrebel.groovy | 74 +++
.../feature/reloading/ReloadingFeature.groovy} | 26 +-
.../feature/reloading/SpringBootDevTools.groovy | 93 ++++
.../feature/security/GrailsSpringSecurity.groovy | 90 +++
.../feature/security/GrailsSpringSecurityUi.groovy | 97 ++++
.../security/PrimarySecurityFeature.groovy} | 10 +-
.../forge/feature/security/SecurityFeature.groovy | 87 +++
.../security/SpringBootStarterSecurity.groovy | 86 +++
.../forge/feature/sitemesh3/Sitemesh3.groovy} | 54 +-
.../feature/spring/SpringBootAutoconfigure.groovy | 67 +++
.../spring/SpringBootEmbeddedServlet.groovy} | 22 +-
.../feature/spring/SpringBootJettyFeature.groovy | 63 +++
.../feature/spring/SpringBootStarterFeature.groovy | 76 +++
.../feature/spring/SpringBootTomcatFeature.groovy} | 60 +-
.../spring/SpringBootUndertowFeature.groovy} | 54 +-
.../spring/SpringBootVirtualThreads.groovy} | 46 +-
.../forge/feature/spring/SpringResources.groovy | 65 +++
.../feature/spring/SpringThreadingFeature.groovy} | 18 +-
.../grails/forge/feature/test/GebFeature.groovy} | 22 +-
.../forge/feature/test/GebWithLocalBrowsers.groovy | 124 +++++
.../feature/test/GebWithTestcontainers.groovy | 106 ++++
.../forge/feature/test/GormTestingSupport.groovy | 67 +++
.../feature/test/GrailsWebTestingSupport.groovy | 67 +++
.../org/grails/forge/feature/test/Mockito.groovy | 77 +++
.../forge/feature/test/MockitoValidator.groovy} | 25 +-
.../org/grails/forge/feature/test/Spock.groovy | 73 +++
.../feature/test/ViewsJsonTestingSupport.groovy | 67 +++
.../validation/CompositeFeatureValidator.groovy} | 35 +-
.../feature/validation/FeatureValidator.groovy} | 18 +-
.../validation/OneOfFeatureValidator.groovy} | 39 +-
.../org/grails/forge/feature/view/GrailsGsp.groovy | 106 ++++
.../grails/forge/feature/view/GrailsLayout.groovy} | 34 +-
.../grails/forge/feature/view/GrailsViews.groovy | 72 +++
.../grails/forge/feature/view/GspLayout.groovy} | 24 +-
.../grails/forge/feature/view/Scaffolding.groovy | 88 +++
.../grails/forge/feature/view/json/ViewJson.groovy | 93 ++++
.../forge/feature/view/markup/ViewMarkup.groovy | 77 +++
.../org/grails/forge/feature/web/GrailsWeb.groovy} | 36 +-
.../org/grails/forge/io/ConsoleOutput.groovy} | 37 +-
.../grails/forge/io/FileSystemOutputHandler.groovy | 144 +++++
.../org/grails/forge/io/MapOutputHandler.groovy} | 45 +-
.../org/grails/forge/io/OutputHandler.groovy} | 17 +-
.../org/grails/forge/io/OutputUtils.groovy} | 43 +-
.../org/grails/forge/io/ZipOutputHandler.groovy | 146 +++++
.../org/grails/forge/options/BuildTool.groovy | 78 +++
.../forge/options/DefaultTestViewProvider.groovy} | 19 +-
.../forge/options/DevelopmentReloading.groovy} | 48 +-
.../org/grails/forge/options/FeatureFilter.groovy} | 59 +-
.../org/grails/forge/options/GormImpl.groovy} | 52 +-
.../org/grails/forge/options/JdkVersion.groovy} | 29 +-
.../org/grails/forge/options/Language.groovy | 99 ++++
.../groovy/org/grails/forge/options/Options.groovy | 128 +++++
.../org/grails/forge/options/ServletImpl.groovy} | 38 +-
.../org/grails/forge/options/TestFramework.groovy} | 53 +-
.../grails/forge/options/TestViewProvider.groovy} | 22 +-
.../grails/forge/template/BinaryTemplate.groovy} | 19 +-
.../grails/forge/template/Config4kTemplate.groovy} | 43 +-
.../forge/template/DefaultTemplateRenderer.groovy} | 63 ++-
.../org/grails/forge/template/ForgePages.groovy | 109 ++++
.../org/grails/forge/template/GspTemplate.groovy} | 46 +-
.../org/grails/forge/template/GspView.groovy | 69 +++
.../forge/template/PropertiesTemplate.groovy} | 65 +--
.../org/grails/forge/template/RenderResult.groovy} | 69 +--
.../grails/forge/template/StringTemplate.groovy} | 28 +-
.../org/grails/forge/template/Template.groovy} | 13 +-
.../grails/forge/template/TemplateModel.groovy} | 8 +-
.../grails/forge/template/TemplateRenderer.groovy} | 22 +-
.../org/grails/forge/template/URLTemplate.groovy} | 45 +-
.../org/grails/forge/template/Writable.groovy} | 9 +-
.../org/grails/forge/template/YamlTemplate.groovy | 89 +++
.../org/grails/forge/util/IOFeatureUtil.groovy} | 42 +-
.../org/grails/forge/util/NameUtils.groovy} | 471 ++++++++--------
.../org/grails/forge/util/ThrowingSupplier.groovy} | 10 +-
.../org/grails/forge/util/VersionInfo.groovy | 188 +++++++
.../org/grails/forge/util/ZipUtil.groovy} | 72 ++-
.../java/org/grails/forge/analytics/Generated.java | 112 ----
.../grails/forge/analytics/SelectedFeature.java | 38 --
.../forge/application/PluginAvailableFeatures.java | 35 --
.../java/org/grails/forge/application/Project.java | 94 ----
.../application/RestApiAvailableFeatures.java | 34 --
.../forge/application/WebAvailableFeatures.java | 35 --
.../application/WebPluginAvailableFeatures.java | 34 --
.../application/generator/GeneratorContext.java | 387 -------------
.../forge/build/dependencies/Dependency.java | 393 -------------
.../build/dependencies/DependencyCoordinate.java | 121 ----
.../build/dependencies/LookupFailedException.java | 26 -
.../dependencies/PomDependencyVersionResolver.java | 136 -----
.../build/gradle/DefaultGradleRepository.java | 142 -----
.../org/grails/forge/build/gradle/GradleBuild.java | 167 ------
.../forge/build/gradle/GradleDependency.java | 125 -----
.../grails/forge/build/gradle/GradlePlugin.java | 256 ---------
.../forge/build/gradle/VersionRegexRepoFilter.java | 22 -
.../grails/forge/defaults/IncludesDefaults.java | 23 -
.../forge/feature/BaseAvailableFeatures.java | 86 ---
.../java/org/grails/forge/feature/Category.java | 61 --
.../org/grails/forge/feature/FeatureContext.java | 133 -----
.../java/org/grails/forge/feature/Features.java | 137 -----
.../grails/forge/feature/ai/GrailsSpringAi.java | 86 ---
.../java/org/grails/forge/feature/api/OpenApi.java | 87 ---
.../forge/feature/asciidoctor/Asciidoctor.java | 82 ---
.../forge/feature/assetPipeline/AssetPipeline.java | 160 ------
.../forge/feature/build/gradle/Dockerfile.java | 85 ---
.../grails/forge/feature/build/gradle/Gradle.java | 109 ----
.../forge/feature/build/gradle/GradleBuildSrc.java | 81 ---
.../feature/build/gradle/GradleSettingsFile.java | 80 ---
.../build/gradle/templates/buildGradle.rocker.raw | 156 ------
.../gradle/templates/gradleProperties.rocker.raw | 33 --
.../gradle/templates/settingsGradle.rocker.raw | 35 --
.../org/grails/forge/feature/cache/EHCache.java | 67 ---
.../grails/forge/feature/cache/GrailsCache.java | 76 ---
.../java/org/grails/forge/feature/cli.rocker.raw | 48 --
.../feature/config/ApplicationConfiguration.java | 40 --
.../feature/database/DatabaseDriverFeature.java | 89 ---
.../feature/database/GrailsDataHibernate5.java | 129 -----
.../feature/database/GrailsDataHibernate7.java | 125 -----
.../java/org/grails/forge/feature/database/H2.java | 106 ----
.../feature/database/MongoDBTestingSupport.java | 76 ---
.../grails/forge/feature/database/MongoSync.java | 85 ---
.../org/grails/forge/feature/database/MySQL.java | 96 ----
.../grails/forge/feature/database/Neo4jGorm.java | 78 ---
.../grails/forge/feature/database/PostgreSQL.java | 97 ----
.../grails/forge/feature/database/SQLServer.java | 96 ----
.../forge/feature/database/TestContainers.java | 134 -----
.../plain/PlainGithubWorkflowFeature.java | 57 --
.../grails/forge/feature/grails/GrailsBase.java | 117 ----
.../forge/feature/grails/GrailsDefaultPlugins.java | 91 ---
.../forge/feature/grails/GrailsGradlePlugin.java | 82 ---
.../forge/feature/grails/GrailsUrlMappings.java | 63 ---
.../forge/feature/grails/GrailsWebConsole.java | 74 ---
.../feature/grailsProfiles/GrailsProfiles.java | 80 ---
.../forge/feature/grailsWrapper/GrailsWrapper.java | 81 ---
.../feature/lang/groovy/GrailsApplication.java | 89 ---
.../forge/feature/micronaut/GrailsMicronaut.java | 103 ----
.../feature/micronaut/MicronautHttpClient.java | 117 ----
.../feature/migration/DatabaseMigrationPlugin.java | 79 ---
.../org/grails/forge/feature/other/AppName.java | 67 ---
.../grails/forge/feature/other/GrailsQuartz.java | 72 ---
.../forge/feature/other/GrailsStartupProgress.java | 78 ---
.../forge/feature/other/HibernateValidator.java | 68 ---
.../org/grails/forge/feature/other/Readme.java | 99 ----
.../grails/forge/feature/other/ShadePlugin.java | 75 ---
.../forge/feature/other/template/readme.rocker.raw | 41 --
.../org/grails/forge/feature/reloading/Jrebel.java | 74 ---
.../feature/reloading/SpringBootDevTools.java | 94 ----
.../feature/security/GrailsSpringSecurity.java | 91 ---
.../feature/security/GrailsSpringSecurityUi.java | 98 ----
.../forge/feature/security/SecurityFeature.java | 88 ---
.../security/SpringBootStarterSecurity.java | 88 ---
.../feature/spring/SpringBootAutoconfigure.java | 66 ---
.../feature/spring/SpringBootJettyFeature.java | 63 ---
.../feature/spring/SpringBootStarterFeature.java | 76 ---
.../forge/feature/spring/SpringResources.java | 64 ---
.../forge/feature/test/GebWithLocalBrowsers.java | 124 -----
.../forge/feature/test/GebWithTestcontainers.java | 106 ----
.../forge/feature/test/GormTestingSupport.java | 66 ---
.../feature/test/GrailsWebTestingSupport.java | 66 ---
.../org/grails/forge/feature/test/Mockito.java | 77 ---
.../java/org/grails/forge/feature/test/Spock.java | 73 ---
.../feature/test/ViewsJsonTestingSupport.java | 66 ---
.../org/grails/forge/feature/view/GrailsGsp.java | 107 ----
.../org/grails/forge/feature/view/GrailsViews.java | 70 ---
.../org/grails/forge/feature/view/Scaffolding.java | 88 ---
.../grails/forge/feature/view/json/ViewJson.java | 93 ----
.../forge/feature/view/markup/ViewMarkup.java | 75 ---
.../grails/forge/io/FileSystemOutputHandler.java | 149 -----
.../java/org/grails/forge/io/ZipOutputHandler.java | 133 -----
.../java/org/grails/forge/options/BuildTool.java | 79 ---
.../org/grails/forge/options/FeatureFilter.java | 66 ---
.../forge/options/GormImplTypeConverter.java | 47 --
.../java/org/grails/forge/options/Language.java | 100 ----
.../java/org/grails/forge/options/Options.java | 158 ------
.../org/grails/forge/template/RockerWritable.java | 39 --
.../org/grails/forge/template/TemplateModel.java | 22 -
.../org/grails/forge/template/YamlTemplate.java | 93 ----
.../java/org/grails/forge/util/VersionInfo.java | 196 -------
.../grails-forge-core/resource-config.json | 14 -
...rk.boot.autoconfigure.AutoConfiguration.imports | 1 +
.../org/grails/forge/ApplicationContextSpec.groovy | 8 +-
.../groovy/org/grails/forge/BuildBuilder.groovy | 12 +-
...tionContextSpec.groovy => ForgeContexts.groovy} | 30 +-
...ec.groovy => ForgeCoreConfigurationSpec.groovy} | 18 +-
.../org/grails/forge/ForgeGrailsPluginSpec.groovy | 134 +++++
.../PomDependencyVersionResolverSpec.groovy | 10 +-
.../forge/build/gradle/GradleRepositorySpec.groovy | 16 +
.../grails/forge/build/gradle/GradleSpec.groovy | 5 +-
.../forge/feature/BaseAvailableFeaturesSpec.groovy | 6 +-
.../forge/feature/ai/GrailsSpringAiSpec.groovy | 8 +-
.../grails/forge/feature/cache/CacheSpec.groovy | 4 +-
.../forge/feature/config/PropertiesSpec.groovy | 4 +-
.../grails/forge/feature/config/YamlSpec.groovy | 4 +-
.../feature/database/GrailsDataMongoDBSpec.groovy | 2 +-
.../forge/feature/database/MongoSyncSpec.groovy | 16 +
.../grails/forge/feature/database/MySQLSpec.groovy | 2 +-
.../forge/feature/database/Neo4JGormSpec.groovy | 2 +-
.../forge/feature/database/PostgresSpec.groovy | 2 +-
.../forge/feature/database/SQLServerSpec.groovy | 2 +-
.../feature/database/TestContainersSpec.groovy | 6 +-
.../workflows/PlainGithubWorkflowSpec.groovy | 4 +-
.../forge/feature/grails/GrailsBaseSpec.groovy | 4 +-
.../feature/grails/GrailsGradlePluginSpec.groovy | 4 +-
.../feature/grails/GrailsWebConsoleSpec.groovy | 4 +-
.../feature/lang/GrailsApplicationSpec.groovy | 4 +-
.../feature/micronaut/GrailsMicronautSpec.groovy | 4 +-
.../micronaut/MicronautHttpClientSpec.groovy | 4 +-
.../forge/feature/spring/SpringBootSpec.groovy | 4 +-
.../spring/SpringBootVirtualThreadsSpec.groovy | 4 +-
.../forge/fixture/CommandOutputFixture.groovy | 4 +-
.../org/grails/forge/fixture/ContextFixture.groovy | 9 +-
.../org/grails/forge/options/GormImplSpec.groovy | 1 +
...iderSpec.groovy => TestViewProviderSpec.groovy} | 10 +-
.../plugintest/ForgePluginTestApplication.groovy} | 46 +-
.../org/grails/forge/util/VersionInfoSpec.groovy | 6 +-
grails-forge/grails-forge-web-netty/build.gradle | 156 ------
.../java/org/grails/forge/netty/Application.java | 41 --
.../forge/netty/analytics/AnalyticsClient.java | 43 --
.../grails-forge-web-netty/native-image.properties | 18 -
.../grails-forge-web-netty/resource-config.json | 8 -
.../src/main/resources/application-dev.yml | 5 -
.../src/main/resources/application.yml | 37 --
.../src/main/resources/logback.xml | 15 -
.../aws/.platform/nginx/conf.d/proxy.conf | 0
.../aws/Procfile | 0
.../aws/start.sh | 4 +-
grails-forge/grails-forge-web/build.gradle | 124 +++++
.../grails-app/conf/application.yml | 45 ++
.../grails-app/conf/logback.xml} | 24 +-
.../grails-app/conf/openapi-base.yml | 22 +
.../org/grails/forge/web/DiffController.groovy | 142 +++++
.../forge/web/ForgeApplicationController.groovy | 146 +++++
.../org/grails/forge/web/PreviewController.groovy | 102 ++++
.../forge/web/SelectOptionsController.groovy | 52 ++
.../org/grails/forge/web/UrlMappings.groovy | 37 ++
.../grails/forge/web/ZipCreateController.groovy | 132 +++++
.../grails-app/i18n/messages.properties | 19 +
.../init/org/grails/forge/web/Application.groovy} | 36 +-
.../forge/web/ForgeApiIntegrationSpec.groovy | 615 +++++++++++++++++++++
.../resources/api-test-messages_fr.properties} | 9 +-
.../org/grails/forge/api/ApplicationTypeDTO.groovy | 112 ++++
.../grails/forge/api/ApplicationTypeList.groovy} | 30 +-
.../forge/api/ApplicationTypeOperations.groovy} | 24 +-
.../forge/api/DevelopmentReloadingDTO.groovy | 90 +++
.../groovy/org/grails/forge/api/FeatureDTO.groovy | 136 +++++
.../org/grails/forge/api/FeatureList.groovy} | 30 +-
.../org/grails/forge/api/FeatureOperations.groovy} | 22 +-
.../org/grails/forge/api/FeatureService.groovy | 81 +++
.../forge/api/ForgeApplicationService.groovy | 114 ++++
.../org/grails/forge/api/ForgeMessages.groovy} | 19 +-
.../groovy/org/grails/forge/api/GormImplDTO.groovy | 98 ++++
.../forge/api/GrailsForgeConfiguration.groovy} | 78 ++-
.../org/grails/forge/api/JdkVersionDTO.groovy | 97 ++++
.../groovy/org/grails/forge/api/LanguageDTO.groovy | 109 ++++
.../groovy/org/grails/forge/api/LinkDTO.groovy} | 40 +-
.../groovy/org/grails/forge/api/Linkable.groovy} | 34 +-
.../org/grails/forge/api/Relationship.groovy} | 35 +-
.../groovy/org/grails/forge/api/RequestInfo.groovy | 78 +++
.../org/grails/forge/api/SelectOptionDTO.groovy} | 39 +-
.../org/grails/forge/api/SelectOptionsDTO.groovy} | 150 +++--
.../groovy/org/grails/forge/api/Selectable.groovy} | 14 +-
.../org/grails/forge/api/ServletImplDTO.groovy | 86 +++
.../org/grails/forge/api/UserAgentParser.groovy} | 39 +-
.../groovy/org/grails/forge/api/VersionDTO.groovy} | 34 +-
.../forge/api/create/CreateProjectService.groovy | 88 +++
.../options/ApplicationTypeSelectOptions.groovy} | 24 +-
.../DevelopmentReloadingSelectOptions.groovy} | 25 +-
.../api/options/GormImplSelectOptions.groovy} | 24 +-
.../api/options/JdkVersionSelectOptions.groovy} | 24 +-
.../api/options/LanguageSelectOptions.groovy} | 24 +-
.../api/options/SelectOptionsOperations.groovy} | 11 +-
.../api/options/ServletImplSelectOptions.groovy} | 24 +-
.../grails/forge/api/preview/PreviewDTO.groovy} | 33 +-
.../grails/forge/web/ForgeRequestSupport.groovy | 187 +++++++
.../grails/forge/web/GroovyObjectJsonMixin.groovy} | 20 +-
.../forge/web/ForgeRequestSupportSpec.groovy | 162 ++++++
.../forge/web/GrailsForgeConfigurationSpec.groovy | 72 +++
grails-forge/grailsforgearchitecture.jpeg | Bin 218395 -> 0 bytes
grails-forge/infrastructure/README.md | 2 +-
grails-forge/infrastructure/environment.yaml | 9 -
grails-forge/infrastructure/shared.yaml | 2 +-
grails-forge/sam-local.yml | 43 --
grails-forge/settings.gradle | 8 +-
grails-forge/test-core/build.gradle | 39 +-
.../forge/cli/command/CreateControllerSpec.groovy | 6 +-
.../forge/cli/command/CreateInterceptorSpec.groovy | 6 +-
.../forge/cli/command/CreateServiceSpec.groovy | 6 +-
.../forge/cli/command/CreateTagLibSpec.groovy | 6 +-
.../org/grails/forge/utils/CommandSpec.groovy | 13 +-
.../gradle/wrapper/gradle-wrapper.properties | 2 +-
.../plugin/core/GrailsPluginGradlePlugin.groovy | 11 +-
...GrailsPluginGradlePluginNative2AsciiSpec.groovy | 43 ++
.../plugin-native2ascii-off/build.gradle | 8 +
.../plugin-native2ascii-off/gradle.properties | 1 +
.../grails-app/conf/application.yml | 0
.../plugin-native2ascii-off/settings.gradle | 1 +
.../resources/templates/messages_ru.properties | 19 +
.../org/grails/gsp/compiler/GroovyPageParser.java | 18 +-
.../org/grails/gsp/compiler/LogicLineTrimmer.java | 234 ++++++++
.../org/grails/gsp/GspTrimLogicLinesSpec.groovy | 299 ++++++++++
.../gradle/wrapper/gradle-wrapper.properties | 2 +-
.../gradle/wrapper/gradle-wrapper.properties | 2 +-
threat-model.yaml | 4 +-
673 files changed, 19131 insertions(+), 21868 deletions(-)
(grails-core) 02/03: Copy the streamed renderers before adding the built-in ones
Posted by jd...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
jdaugherty pushed a commit to branch 9.0.x
in repository https://gitbox.apache.org/repos/asf/grails-core.git
commit 1c2b6b8cac6183b7bf2587dd93e2d41597200d54
Author: James Daugherty <jd...@jdresources.net>
AuthorDate: Wed Oct 14 14:48:37 2026 +0100
Copy the streamed renderers before adding the built-in ones
The streaming beans build their renderer list with toList() and then add
the two built-in renderers to it. Groovy 5 resolves that toList() to its
own extension method, which returns a mutable list. Groovy 6 statically
compiles it to the JDK's Stream.toList(), whose list is unmodifiable, so
creating publisherActionResultTransformer threw
UnsupportedOperationException and every web application failed to start
with streaming enabled, which is the default. The list is now copied
before it is extended. ControllersAsyncGrailsPluginSpec failed four
features on 9.0.x without this and passes with it.
---
.../grails/plugins/web/async/ControllersAsyncGrailsPlugin.groovy | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/grails-async/plugin/src/main/groovy/org/grails/plugins/web/async/ControllersAsyncGrailsPlugin.groovy b/grails-async/plugin/src/main/groovy/org/grails/plugins/web/async/ControllersAsyncGrailsPlugin.groovy
index bd28c46cfd..9fca563548 100644
--- a/grails-async/plugin/src/main/groovy/org/grails/plugins/web/async/ControllersAsyncGrailsPlugin.groovy
+++ b/grails-async/plugin/src/main/groovy/org/grails/plugins/web/async/ControllersAsyncGrailsPlugin.groovy
@@ -144,9 +144,11 @@ class ControllersAsyncGrailsPlugin extends Plugin {
if (jackson) {
builtIn << context.bean(JACKSON_RENDERER, StreamItemRenderer)
}
- List<StreamItemRenderer> renderers = context.beanProvider(StreamItemRenderer).orderedStream()
+ // a copy, because the built-in renderers are added to it: Groovy 6 compiles toList() to the
+ // JDK's Stream.toList(), whose list is unmodifiable, where Groovy 5 used its own mutable one
+ List<StreamItemRenderer> renderers = new ArrayList<>(context.beanProvider(StreamItemRenderer).orderedStream()
.filter { StreamItemRenderer renderer -> builtIn.every { StreamItemRenderer own -> renderer !== own } }
- .toList()
+ .toList())
renderers.addAll(builtIn)
new PublisherActionResultTransformer(renderers, timeout)
}