Skip to content

Releases: graceframework/grace-framework

v2024.1.0-M3

01 May 03:14
8c1ff12

Choose a tag to compare

v2024.1.0-M3 Pre-release
Pre-release

What's Changed

This release is based on Spring Boot 3.5.14 and Spring Framework to 6.2.18.

  • Upgrade to Ant 1.10.17, Maven 3.9.15
  • Upgrade to Jackson Databind 2.21.2, Groovy 4.0.31, SiteMesh 2.7.0, Tomcat 10.1.54

For a complete list of changes made in this release see v2024.1.0-M3 on GitHub.

⭐️ New Features

  • b86cb42 Allow the BuildSettings.APP_DIR directory to not exist #1417
  • a6ea5cf Supports configuring the features directory #1439
  • b61141f Make profiles optional for Grace Shell #1440
  • 6bbadaf Allow some non-Profile commands to be run without initializing the project first #1442
  • bebab63 Support loading and running GroovyScriptCommand without adding a profile in the application #1444
  • 5c5f37b Add support examples to set the description of script command #1463
  • bbf54b6 Provide a built-in database 'migrate' feature which delegate Gradle's dbmUpdate task #1467
  • 6312d9a Provide a built-in 'seeds' feature to add initial data to the database #1466

🛠 Improvements

  • 64d82ba Update README - Update badge versions
  • f50c98b Add release notes for 2024.1.0-M3
  • 1848835 Update README in plugins Add instructions on how to use the plugin
  • 97fd870 Add grace-plugin-dynamic-modules dependency for grace-boot-plugin #1474
  • 22cd15a Add grace-plugin-rest dependency for grace-boot-rest #1478
  • 9d96452 Add .sdkmanrc with latest java version 17.0.19-tem #1477
  • 9b19fa3 Update the grailsVersion of plugins to 2024.0.0 > * #1471
  • 94228f7 Allow Gradle build errors be ignored when running tasks #1469
  • dd5d4b8 Enhance ApplicationTemplateCommand #1443
  • dc31b3c Don't make inherited as a default parameter for CommandRegistry.findCommands(Profile, boolean inherited) #1441
  • 2c375fc Keep the templates consistent between generator and commands with profiles #1438
  • 45747fd Update guides for installation and introduction
  • 992b525 Add more documentation dependencies to refine javadoc links #1419
  • 89b11f1 Keep the templates consistent between script commands and generators in scaffolding plugin #1416
  • 9171b37 Code formatting for scripts in the scaffolding plugin #1415
  • 0e07adf Keep the templates consistent with profiles base and web #1414
  • 868ffbc Grace Shell: Implements About command to show the information of current application #1449
  • 4877482 Grace Shell: Implements Assemble command to create a JAR or WAR archive for production deployment #1450
  • 4048616 Grace Shell: Implements Clean command #1451
  • 1745397 Grace Shell: Implements compile command #1452
  • a8e35af Grace Shell: Implements run-app command #1453
  • 7b611ac Grace Shell: Implements stop-app command #1454
  • 4de4336 Grace Shell: Implements console command #1455
  • 90e5737 Grace Shell: Implements shell command #1456
  • adc3fa1 Grace Shell: Implements stats command #1457
  • 9262f65 Grace Shell: Improves the help description of commands #1458
  • 69a4b36 Remove MarkupViewGrailsPlugin #1473
  • 8595b34 Remove JsonViewGrailsPlugin #1472
  • 82deefb Remove deprecated JSONBuilder #1352
  • e71d071 Remove unused grace-sitemesh module #1409

🐞 Bug Fixes

  • eeb54d9 The generated ServiceSpec.groovy should be in integration-test See gh-1416
  • e7a5484 Clean up non-existent grace-datastore-gorm-mongodb-ext in Gradle versions catalog #1418
  • e5d96c1 GlobalGrailsPluginTransformationSpec run failed on Windows #1437
  • cbcd1aa Display full name of the commands when TAB for completion #1460
  • 734d991 Check the required profile name before executing the command profile-info #1459

🚀 Dependency Upgrades

⚙️ Tasks

  • 8c1ff12 Release v2024.1.0-M3
  • d3f047c Upgrade Release Drafter Gradle Action to v7 #1475
  • bf54131 Upgrade GitHub workflows: migrate java distribution from adopt to temurin #1476

🔌 Plugins

📜Profiles

Full Changelog: v2024.1.0-M2...v2024.1.0-M3

v2024.0.1

24 Apr 03:47
c71d1a4

Choose a tag to compare

What's Changed

🛠 Improvements

  • a2130ad Add release notes for 2024.0.1

🐞 Bug Fixes

  • e5d96c1 GlobalGrailsPluginTransformationSpec run failed on Windows #1437

🚀 Dependency Upgrades

⚙️ Tasks

  • c71d1a4 Release v2024.0.1
  • e13924f Next development version: 2024.0.1-SNAPSHOT

Full Changelog: v2024.0.0...v2024.0.1

v2024.0.0

02 Apr 04:21
169a75d

Choose a tag to compare

What's Changed

This release is based on Spring Boot 3.4.13 and Spring Framework to 6.2.17, SiteMesh 2.6.2.

  • Upgrade to Groovy 4.0.30, Gradle 8.14.4, Tomcat 10.1.53
  • Upgrade to Maven 3.9.14, Maven Resolver 1.9.27

For a complete list of changes made in this release see the projects on GitHub.

⚠️ Noteworthy Changes

  • 4a64a9e Customize Groovy compiler configuration #1170
  • 2ee497b Allow developers to customize the app directory #1157
  • 5821a9c Support configuration of project resources and sources directories #1171
  • 5b594a8 Application type artifacts are supported in both the app/boot and src/main directories #1149
  • 8853c8c Restructure GORM Support #1182
  • 8d780cc Merge async and events plugins into the framework #1183
  • 1d34cd4 Migrate to Spring Framework's Resource API #1195
  • 09ab913 Move artefact Bootstrap.groovy from app\init to app\boot #1148
  • e1b61a4 Rename artefact type BootStrap to Bootstrap #1147

⭐️ New Features

Modularizing the codebase

Spring Boot 4 has refactored its codebase into a more modular structure, I believe this is the right direction for the future.
The Grace framework 2024 & 2025 will also start doing this. Grace's plugins will be independent, more focused, and at the same time, they will integrate better with Spring Boot's modules.

Core plugins have been consolidated into the framework

Others

  • b86cb42 Allow the BuildSettings.APP_DIR directory to not exist #1417
  • 3624a45 Provides binary, sources and docs distributions for Grace framework #1109
  • 0753d87 Update Grace Banner #1108
  • 30df877 Support combined use of MongoDB and Hibernate #1383
  • f760a3a Restore grace-plugin-dynamic-modules #1372
  • 00dc013 Add command group for ApplicationCommand #1354
    • Introduce Command
    • Use command group as the group of Gradle tasks
  • f320b43 Use AdditionalGormEntityTransformation to make GORM Entity injected same as Domain Class See graceframework/grace-data#83 #1349
  • 67eb947 Support Application type artifacts placed in src/main directory to be transformed #1348 #1149
  • a1991df Restore the use of GrailsDomainClass #1351
  • 3fcf0d1 Add project's classes dir to the current thread context classloader and allow CLI to discover project's command in app/commands #1358

🎯 Refactoring

🛠 Improvements

  • fac6d04 Update README - Update README in subprojects
  • 14767e0 Add release notes for 2024.0.0
  • 45747fd Update guides for installation and introduction
  • 992b525 Add more documentation dependencies to refine javadoc links #1419
  • e7a5484 Clean up non-existent grace-datastore-gorm-mongodb-ext in Gradle versions catalog #1418
  • 89b11f1 Keep the templates consistent between script commands and generators in scaffolding plugin #1416
  • 9171b37 Code formatting for scripts in the scaffolding plugin #1415
  • 0e07adf Keep the templates consistent with profiles base and web #1414 See grace-profiles/base#110 and grace-profiles/web#66
  • e71d071 Remove unused grace-sitemesh module #1409
  • 98e54e7 Various improvements related to stack trace logging and exception display #1252

🐞 Bug Fixes

  • eeb54d9 The generated ServiceSpec.groovy should be in integration-test See gh-1416

🚀 Dependency Upgrades

⚙️ Tasks

  • 169a75d Release v2024.0.0
  • bdfe57d Upgrade to actions/checkout@v6
  • 3076af0 Upgrade to actions/setup-java@v5
  • 787a9dc Upgrade to gradle/actions/setup-gradle@v5.0.2

🔌 Plugins

📜Profiles

Full Changelog: v2024.0.0-RC1...v2024.0.0

v2024.1.0-M2

20 Mar 02:50
2121c1a

Choose a tag to compare

v2024.1.0-M2 Pre-release
Pre-release

What's Changed

This release is based on Spring Boot 3.5.12 and Spring Framework to 6.2.17.

  • Upgrade to Groovy 4.0.30, Gradle 8.14.4, Tomcat 10.1.52
  • Upgrade to Maven 3.9.14, Maven Resolver 1.9.27

For a complete list of changes made in this release see this project on GitHub.

⭐️ New Features

🐞 Bug Fixes

  • d8d24c6 Fix many tests run failed on Windows #1353
  • f1d89ad Fix @since javadoc
  • 5527682 Prefer to use GrailsConsole.getInstance().getOut() in ProgressReporter #1350
  • 993542c Fix deprecation warnings due to reporting.file() in Gradle 9 #1317
  • ce7382a Fixes #1315 - executing grace on WSL with error: "bin/grace: 80: [[: not found" #1315
  • af9ad27 Fixes #1314 - executing compileGroovy on Windows with error "PatternSyntaxException: Unexpected internal error near index 1" #1314
  • 0be07e8 EventsAutoConfiguration dose not build EventBus been as expected because missing call factoryBean.afterPropertiesSet() #1310

🛠 Improvements

  • e3eb2e1 Update README - Update badge versions of Spring Boot
  • 6ee03e0 Update links for Grace 2024.0.x and 2024.1.x
  • 0a37f0d Add release notes for 2024.1.0-M2
  • 377ee05 Update README - Update badge versions of Gradle and Groovy badges
  • ba48600 Add release notes for 2024.0.0-RC1
  • 4012b35 Call String.toLowerCase() and .toUppercase() with explicit locale See spring-projects/spring-framework#33708 #1385
  • 9391d28 Change the name of tasks compileGsonViews and compileGmlViews to compileJsonViews and compileMarkupViews #1384
  • 30df877 Support combined use of MongoDB and Hibernate #1383
  • 423d939 Remove HibernateDatastoreSpringInitializerSpec #1382
  • b93a33f Relocate HibernateDatastoreSpringInitializer to grace-data-hibernate See graceframework/grace-data-hibernate#144 #1382
  • 6b83784 Add missing version property to MongodbGrailsPlugin #1381
  • ba069a5 Synchronous update HiddenHttpMethodFilter to Spring implementation #1380
  • aa9abbb Only support running script files relative to the base dir #1376 #287
  • 36bdea5 Move grails.factories from grace-gsp to grace-plugin-gsp #1371
  • fae1782 Improve MigrationGenerator - Allow migration file name contains '-' and A-Z
    • Fix No such property: migrationAction
    • Use 'toSnakeCase()' method
  • 3fcf0d1 Add project's classes dir to the current thread context classloader and allow CLI to discover project's command in app/commands #1358
  • 9eda156 Set group name for command UrlMappingsReport #1357
  • afced62 Set group name for the commands of database-migration plugin #1356
  • 7fa819a Remove dependency on grace-plugin-rest for grace-boot-rest #1344
  • 8c76b16 Improve Grace Doc for generating PDF document #1324
    • Upgrade to Flying Saucer PDF 9.13.3 #1322
    • Doc resources: Upgrade Font Awesome from 4.1.0 to 4.7.0 #1323
    • Update doc templates: update pdf.css and grace.svg
  • 49e758f Using javaVersion for Groovydoc in 4.0.29 to support 'JAVA_17' language level #1319
  • ed19a87 Update ViewCompileOptions: remove the use of deprecated AbstractOptions #1316

🎯 Refactoring

  • d64b7e8 Refactor AbstractGroovyTemplateCompileTask and AbstractGroovyTemplatePlugin #1375

    • Add configDir property for AbstractGroovyTemplateCompileTask, and remove appDir property
    • Refactor AbstractGroovyTemplatePlugin
    • Set group and description of JsonViewCompilerTask and MarkupViewCompilerTask
    • Remove unused SourceSets
  • 18c81e8 Refactor Dynamic Modules #1373

    • Auto-Configure for Dynamic Modules plugin
    • Update the title and description of DynamicModulesGrailsPlugin
  • a422f7d Refactor Taglibs Plugin #1370

    • Relocate TagLibArtefactHandler from grace-taglib to grace-plugin-taglibs
    • Update grails.factories: define TraitInjector and ClassInjector in grace-plugin-taglibs
    • Relocate TagLibArtefactTypeAstTransformationSpec from grace-web-taglib to grace-plugin-taglibs
      • Add src/main/resources to Groovy compile classpath
    • Update TagLibArtefactHandler: change the path of tag libraries to app/taglibs
  • eb16ea7 Refactor Grace Shell #1369

    • Relocate Groovy classes from org.grails.cli.groovy to org.grails.cli.compiler.groovy
    • Relocate Command interactive completers from org.grails.cli.interactive.completers to org.grails.cli.command.completers
  • 8ce539a Enhance Database Migration Generator #1367

    • Enhance MigrationGenerator
      • Provide various ways to create migrations based on conventions and additional arguments
    • Support snake_case migration name
    • Use the current datasource's username as the author of generated changeset
    • Fix missing return false
  • c9b2450 Refactor Grace Database Migration #1366

    • Enhance DatabaseMigrationCommand
      • Move methods from ApplicationContextDatabaseMigrationCommand to DatabaseMigrationCommand
      • Update database migration commands to implement DatabaseMigrationCommand
    • Remove unused ApplicationContextDatabaseMigrationCommand
    • Remove unused commands and scripts
      • Remove src/main/scripts/ dbm-changelog-to-groovy.groovy dbm-create-changelog.groovy
      • Remove unused DbmChangelogToGroovy DbmCreateChangelog ScriptDatabaseMigrationCommand
      • Update build.gradle to remove tasks syncScripts syncTemplates
    • Update GroovyChangeLogParser: use IOUtils instead of SpringIOUtils
    • Update DatabaseMigrationCommand
      • Use DirectoryResourceAccessor instead of deprecated FileSystemResourceAccessor
      • Use DbUrlConnectionArgumentsCommandStep instead of deprecated DbUrlConnectionCommandStep
    • Remove unused ScriptDatabaseMigrationCommandSpec
    • Fix DatabaseMigrationCommandConfigSpec
  • 2576abc Refactor Grace Console #1365

    • Enhance GrailsApplicationCommandRunner
      • Use ApplicationRunner to rewrite GrailsApplicationCommandRunner
      • Support executing GORM methods in the commands
    • Enhance GrailsApplicationScriptRunner
      • Use ApplicationRunner to rewrite GrailsApplicationScriptRunner
  • 9e2d9ee Refactor Grace CLI #1364

    • Rename package name of grace-cli from grails.cli.commands to grails.cli.command
    • Enhance ApplicationCommand
      • Recommend to use ApplicationCommand instead of GrailsApplicationCommand
    • Make GradleTaskCommandAdapter directly adapted with ApplicationCommand
  • bd5a2e5 Refactor Grace Shell #1359

    • Relocate Shell commands from org.grails.cli.profile.commands to org.grails.cli.commands
    • Relocate Ant Tasks from org.grails.cli.profile.tasks to org.grails.cli.ant.tasks
    • Relocate Gradle Commands from org.grails.cli.gradle.commands to org.grails.cli.command.gradle
    • Relocate Command IO from org.grails.cli.commands.io to org.grails.cli.core.io
    • Relocate Command Templates from org.grails.cli.commands.templates to org.grails.cli.core.template
    • Relocate ApplicationTemplateCommand CreateAppCommand from org.grails.cli.commands to org.grails.cli.command.app
    • Relocate CreatePluginCommand ListPluginsCommand PluginInfoCommand from org.grails.cli.commands to org.grails.cli.command.plugin
    • Relocate CreateProfileCommand ListProfilesCommand ProfileInfoCommand from org.grails.cli.commands to org.grails.cli.command.profile
    • Relocate HelpCommand from org.grails.cli.commands to org.grails.cli.command.help
    • Relocate OpenCommand from org.grails.cli.commands to org.grails.cli.command.open
    • Relocate Command APIs from org.grails.cli.commands to org.grails.cli.command
    • GradleTaskCommandAdapter should be ProjectCommand
    • Introduce ProfileCommandFactory and ProfileCommandResourceResolver for profile related commands and resource resolvers
    • CommandFactory.findCommands() no longer requires parameter profile, prefer to use ProfileCommandFactory
    • CommandResourceResolver.findCommandResources() no longer requires parameter profile, prefer to use ProfileCommandResourceResolver
  • 9012e08 Refactor Grace CLI #1354 #1355

    • Relocate CLI commands from grails.dev.commands to grails.cli.commands
    • Relocate CLI IO and Template from grails.cli.commands to grails.cli.core
    • Remove unused CommandLineResourceLoader
    • Add command group for ApplicationCommand
      • Introduce Command
      • Use command group as the group of Gradle tasks
  • 4b9be8f Relocate Controllers API #1346

    • Relocate Controller APIs from grace-plugin-controllers to grace-web-mvc
      • InvalidResponseHandler ValidResponseHandler
      • ControllerExceptionHandlerMetaData DefaultControllerExceptionHandlerMetaData RenderDynamicMethod
      • ControllersDomainBindingApi
  • b016868 Refactor Grace Web Mime #1343

    • Decouple grace-views-core from grace--plugin-domain-class
      • Using ArtefactTypes.DOMAIN_CLASS instead of DomainClassArtefactHandler.TYPE
    • Decouple grace-views-core from grace-plugin-rest
      • DefaultViewRenderer should extends from AbstractRenderer instead of DefaultHtmlRenderer
    • Decouple grace-views-core from grace-plugin-mimetypes
    • Decouple grace-views-json from grace-plugin-rest
    • Decouple grace-views-markup from grace-plugin-rest
  • 96d2582 Refactor Grace Web Mime #1342

    • Relocate AcceptHeaderParser MimeUtility DefaultMimeUtility DefaultAcceptHeaderParser from grace-plugin-mimetypes t...
Read more

v2024.0.0-RC1

14 Mar 06:12
e9c4e3a

Choose a tag to compare

v2024.0.0-RC1 Pre-release
Pre-release

What's Changed

This release is based on Spring Boot 3.4.13 and Spring Framework to 6.2.16.

  • Upgrade to Groovy 4.0.30, Gradle 8.14.4, Tomcat 10.1.52
  • Upgrade to Maven 3.9.14, Maven Resolver 1.9.27

For a complete list of changes made in this release see this project on GitHub.

⭐️ New Features

  • 30df877 Support combined use of MongoDB and Hibernate #1383

  • f760a3a Restore grace-plugin-dynamic-modules #1372

  • 00dc013 Add command group for ApplicationCommand #1354

    • Introduce Command
    • Use command group as the group of Gradle tasks
  • c3b105a Create grace-web-async module #1347

  • f320b43 Use AdditionalGormEntityTransformation to make GORM Entity injected same as Domain Class See graceframework/grace-data#83 #1349

  • 67eb947 Support Application type artifacts placed in src/main directory to be transformed #1348 #1149

  • a1991df Restore the use of GrailsDomainClass #1351

  • 3fcf0d1 Add project's classes dir to the current thread context classloader and allow CLI to discover project's command in app/commands #1358

🛠 Improvements

  • 377ee05 Update README - Update badge versions of Gradle and Groovy badges

  • ba48600 Add release notes for 2024.0.0-RC1

  • 4012b35 Call String.toLowerCase() and .toUppercase() with explicit locale See spring-projects/spring-framework#33708 #1385

  • 9391d28 Change the name of tasks compileGsonViews and compileGmlViews to compileJsonViews and compileMarkupViews #1384

  • 423d939 Remove HibernateDatastoreSpringInitializerSpec #1382

  • b93a33f Relocate HibernateDatastoreSpringInitializer to grace-data-hibernate See graceframework/grace-data-hibernate#144 #1382

  • ba069a5 Synchronous update HiddenHttpMethodFilter to Spring implementation #1380

  • aa9abbb Only support running script files relative to the base dir #1376 #287

  • 36bdea5 Move grails.factories from grace-gsp to grace-plugin-gsp #1371

  • fae1782 Improve MigrationGenerator

    • Allow migration file name contains '-' and A-Z
    • Fix No such property: migrationAction
    • Use 'toSnakeCase()' method
  • 9eda156 Set group name for command UrlMappingsReport #1357

  • afced62 Set group name for the commands of database-migration plugin #1356

  • 7fa819a Remove dependency on grace-plugin-rest for grace-boot-rest #1344

  • 8c76b16 Improve Grace Doc for generating PDF document #1324

    • Upgrade to Flying Saucer PDF 9.13.3
    • Doc resources: Upgrade Font Awesome from 4.1.0 to 4.7.0 #1323
    • Update doc templates: update pdf.css and grace.svg #1324

🐞 Bug Fixes

  • d8d24c6 Fix many tests run failed on Windows #1353
  • f1d89ad Fix @since javadoc
  • 6b83784 Add missing version property to MongodbGrailsPlugin #1381
  • 5527682 Prefer to use GrailsConsole.getInstance().getOut() in ProgressReporter #1350
  • 49e758f Using javaVersion for Groovydoc in 4.0.29 to support 'JAVA_17' language level #1319
  • 993542c Fix deprecation warnings due to reporting.file() in Gradle 9 #1317
  • ed19a87 Update ViewCompileOptions: remove the use of deprecated AbstractOptions #1316
  • ce7382a Fixes #1315 - executing grace on WSL with error: "bin/grace: 80: [[: not found" #1315
  • af9ad27 Fixes #1314 - executing compileGroovy on Windows with error "PatternSyntaxException: Unexpected internal error near index 1" #1314
  • 0be07e8 EventsAutoConfiguration dose not build EventBus been as expected because missing call factoryBean.afterPropertiesSet() #1310

🎯 Refactoring

  • d64b7e8 Refactor AbstractGroovyTemplateCompileTask and AbstractGroovyTemplatePlugin #1375

    • Add configDir property for AbstractGroovyTemplateCompileTask, and remove appDir property
    • Refactor AbstractGroovyTemplatePlugin
    • Set group and description of JsonViewCompilerTask and MarkupViewCompilerTask
    • Remove unused SourceSets
  • 18c81e8 Refactor Dynamic Modules #1373

    • Auto-Configure for Dynamic Modules plugin
    • Update the title and description of DynamicModulesGrailsPlugin
  • a422f7d Refactor Taglibs Plugin #1370

    • Relocate TagLibArtefactHandler from grace-taglib to grace-plugin-taglibs
    • Update grails.factories: define TraitInjector and ClassInjector in grace-plugin-taglibs
    • Relocate TagLibArtefactTypeAstTransformationSpec from grace-web-taglib to grace-plugin-taglibs
      • Add src/main/resources to Groovy compile classpath
    • Update TagLibArtefactHandler: change the path of tag libraries to app/taglibs
  • eb16ea7 Refactor Grace Shell #1369

    • Relocate Groovy classes from org.grails.cli.groovy to org.grails.cli.compiler.groovy
    • Relocate Command interactive completers from org.grails.cli.interactive.completers to org.grails.cli.command.completers
  • 8ce539a Enhance Database Migration Generator #1367

    • Enhance MigrationGenerator
      • Provide various ways to create migrations based on conventions and additional arguments
    • Support snake_case migration name
    • Use the current datasource's username as the author of generated changeset
    • Fix missing return false
  • c9b2450 Refactor Grace Database Migration #1366

    • Enhance DatabaseMigrationCommand
      • Move methods from ApplicationContextDatabaseMigrationCommand to DatabaseMigrationCommand
      • Update database migration commands to implement DatabaseMigrationCommand
    • Remove unused ApplicationContextDatabaseMigrationCommand
    • Remove unused commands and scripts
      • Remove src/main/scripts/ dbm-changelog-to-groovy.groovy dbm-create-changelog.groovy
      • Remove unused DbmChangelogToGroovy DbmCreateChangelog ScriptDatabaseMigrationCommand
      • Update build.gradle to remove tasks syncScripts syncTemplates
    • Update GroovyChangeLogParser: use IOUtils instead of SpringIOUtils
    • Update DatabaseMigrationCommand
      • Use DirectoryResourceAccessor instead of deprecated FileSystemResourceAccessor
      • Use DbUrlConnectionArgumentsCommandStep instead of deprecated DbUrlConnectionCommandStep
    • Remove unused ScriptDatabaseMigrationCommandSpec
    • Fix DatabaseMigrationCommandConfigSpec
  • 2576abc Refactor Grace Console #1365

    • Enhance GrailsApplicationCommandRunner

      • Use ApplicationRunner to rewrite GrailsApplicationCommandRunner
      • Support executing GORM methods in the commands
    • Enhance GrailsApplicationScriptRunner

      • Use ApplicationRunner to rewrite GrailsApplicationScriptRunner
  • 9e2d9ee Refactor Grace CLI #1364

    • Rename package name of grace-cli from grails.cli.commands to grails.cli.command
    • Enhance ApplicationCommand
      • Recommend to use ApplicationCommand instead of GrailsApplicationCommand
    • Make GradleTaskCommandAdapter directly adapted with ApplicationCommand
  • bd5a2e5 Refactor Grace Shell #1359

    • Relocate Shell commands from org.grails.cli.profile.commands to org.grails.cli.commands
    • Relocate Ant Tasks from org.grails.cli.profile.tasks to org.grails.cli.ant.tasks
    • Relocate Gradle Commands from org.grails.cli.gradle.commands to org.grails.cli.command.gradle
    • Relocate Command IO from org.grails.cli.commands.io to org.grails.cli.core.io
    • Relocate Command Templates from org.grails.cli.commands.templates to org.grails.cli.core.template
    • Relocate ApplicationTemplateCommand CreateAppCommand from org.grails.cli.commands to org.grails.cli.command.app
    • Relocate CreatePluginCommand ListPluginsCommand PluginInfoCommand from org.grails.cli.commands to org.grails.cli.command.plugin
    • Relocate CreateProfileCommand ListProfilesCommand ProfileInfoCommand from org.grails.cli.commands to org.grails.cli.command.profile
    • Relocate HelpCommand from org.grails.cli.commands to org.grails.cli.command.help
    • Relocate OpenCommand from org.grails.cli.commands to org.grails.cli.command.open
    • Relocate Command APIs from org.grails.cli.commands to org.grails.cli.command
    • GradleTaskCommandAdapter should be ProjectCommand
    • Introduce ProfileCommandFactory and ProfileCommandResourceResolver for profile related commands and resource resolvers
    • CommandFactory.findCommands() no longer requires parameter profile, prefer to use ProfileCommandFactory
    • CommandResourceResolver.findCommandResources() no longer requires parameter profile, prefer to use ProfileCommandResourceResolver
  • 9012e08 Refactor Grace CLI #1354 #1355

    • Relocate CLI commands from grails.dev.commands to grails.cli.commands
    • Relocate CLI IO and Template from grails.cli.commands to grails.cli.core
    • Remove unused CommandLineResourceLoader
    • Add command group for ApplicationCommand
      • Introduce Command
      • Use command group as the group of Gradle tasks
  • 4b9be8f Relocate Controllers API #1346

Relocate Controller APIs from grace-plugin-controllers to grace-web-mvc

  • InvalidResponseHandler ValidResponseHandler
  • ControllerExceptionHandlerMetaData DefaultControllerExceptionHandlerMetaData RenderDynamicMethod
  • ControllersDomainBindingApi
  • b016868 Refactor Grace Web Mime #1343

    • Decouple grace-views-core from grace-plugin-domain-class
      • Using ArtefactTypes.DOMAIN_CLASS instead of DomainClassArtefactHandler.TYPE
    • Decouple grace-views-core from grace-plugin-rest
      • DefaultViewRenderer should extends from AbstractRenderer instead of DefaultHtmlRenderer
    • Decouple grace-views-core from grace-plugin-mimetypes
    • Decouple grace-views-json from grace-plugin-rest
    • Decouple grace-views-markup from grace-plugin-rest
  • 96d2582 Refactor Grace Web Mime #1342

    • Relocate AcceptHeaderParser MimeUtility DefaultMimeUtility DefaultAcceptHeaderParser from grace-plugin-mimetypes to gra...
Read more

v2024.1.0-M1

04 Jan 00:50
702092c

Choose a tag to compare

v2024.1.0-M1 Pre-release
Pre-release

What's Changed

🛠 Improvements

  • efefe40 Update README
    • Update badge version of Spring Boot badge
  • 7ca2a4a Add release notes for 2024.1.0-M1
  • 2eaeab7 Update doc.properties - switch to 2024.1.x branch
  • cc2212d Add release notes for 2024.0.0-M2
  • 3f39721 Update doc.properties
    • switch to 2024.0.x branch
    • update the copyright year

🚀 Dependency Upgrades

⚙️ Tasks

  • 702092c Release v2024.1.0-M1
  • c65d9df Switch to '2024.1.x' Update github workflows
  • 95b561c Next development version: 2024.1.0-SNAPSHOT

Full Changelog: v2024.0.0-M2...v2024.1.0-M1

v2024.0.0-M2

02 Jan 11:06
ac0a849

Choose a tag to compare

v2024.0.0-M2 Pre-release
Pre-release

What's Changed

⭐️ New Features

Modularizing the codebase

Spring Boot 4 has refactored its codebase into a more modular structure, I believe this is the right direction for the future.
The Grace framework 2024 & 2025 will also start doing this. Grace's plugins will be independent, more focused, and at the same time, they will integrate better with Spring Boot's modules.

Core plugins have been consolidated into the framework

🐞 Bug Fixes

  • 9b924d4 Fix deprecation warnings due to tasks calling getProject() at execution time #1297

  • 2099e41 Fix type cast warnnings in ParameterizedGrailsUnitTest #1292

  • cea4095 Fixes the resources in the app/* not found in development mode #1251

    • ResourceLocator should use BuildSettings.GRAILS_APP_PATH instead of GrailsResourceUtils.GRAILS_APP_DIR
  • 8666cb7 Fixes errors for using project.register(copyAstClasses) #1164

🛠 Improvements

  • 08617b1 Don't include unused jars in the Shell CLI binary #1296

  • c576e84 Decouple grace-web from grace-databinding GrailsParameterMap and PropertyEditorRegistryUtils use DataBinder.DEFAULT_DATE_FORMAT

  • 18de6f8 Restore grace-web-databinding module

  • 807815e Remove explicit dependency on grace-plugin-rest for grace-boot-web #1294

  • ffb12df Add explicit dependency on grace-views-markup for grace-boot-rest #1293

  • f954482 Provide install and help commands for fields plugin #1291

  • f3d12f9 Update StartScriptGenerator templates for Grace Shell #1290

  • 279be59 Exclude the plugins that have been consolidated into framework #1288

  • 12b852d Update CreateAppCommand to support creating a minimal Grace 2024.0 app #1287

  • 00b9d03 Migrate to Maven Central Portal Snapshots when using SNAPSHOT version to generate new project #1286

  • 686e5d7 Provide org.graceframework.grace-app plugin #1285

  • 8df446b Make Gradle dependencies sorted and grouped by scope and dependency #1283

  • badedbe Update autoconfigure compiler for Grace Application #1282

  • 81511cb Provide install command for geb plugin to configure selenium drivers #1281

  • 788f94c Add selenium api and drivers dependencies for geb plugin #1280

  • ac4403c Plugins contain scripts and templates should include these into resources when packaging #1279

    • grace-plugin-database-migration
    • grace-plugin-fields
    • grace-plugin-geb
    • grace-plugin-scaffolding
  • 839ca74 Grace Boot MongoDb: add missing grails-plugin.xml #1278

  • 5b6cfbb Grace Boot Hibernate: add missing grails-plugin.xml #1277

  • 3df9acc Grace Boot Web: Remove unnecessary dependency on grace-plugin-gsp #1276

  • b51fade Grace Boot: Remove unnecessary dependency on grace-web #1275

  • 722515a Cleanup dependency on grace-plugin-api #1274

    • grace-core do not expose grace-plugin-api any more, so all the plugins should explicit depend on it.
    • grace-web only use grace-plugin-api compileOnly now.
  • e551777 Use PropertySourcesPropertyResolver provided by Spring Framework #1273

    • Don't use ConfigurationPropertySources provided by Spring Boot, because some tags do not depend on Spring Boot
  • 5bfd01b Update dependencies for grace-boot-mongodb #1120

  • 16de4f5 Update README - Update the versions of Groovy, Gradle, Spring Boot

  • 99b6884 Remove duplicated grails.factories in grace-web-url-mappings #1245

  • 737b52f Update migration.gdsl in the database-migration plugin #1240

    • Correct the migrationDir to db/migrations
    • Correct the column methods definded in createTable addColumn createIndex insert loadData loadUpdateData update
  • 9226c41 Add missing 'grails.factories' for 'database-migration' plugin

  • 8b9a2e0 Add missing 'grails-plugin.xml' for 'geb' plugin

  • 223744d Add missing 'grails-plugin.xml' for 'database-migration' plugin

  • 8c06e3a Remove unused plugins in the gradle/grails.versions.toml

  • 5e96dfe Rearrange versions and libraries in the gradle/libs.versions.toml

  • aa44851 Code formatting with Checkstyle and Codenarc

  • ff8ab2e Add dependencies to Gradle Version Catalog

    • Add glassfish-expressly
    • Add hibernate-core
    • Add spring-orm
  • 04ae29f Merge hibernate plugin into the framework #1229

    • 4cbe4ae Cleanup build scripts
    • 48f7fad Code formatting
    • 5cece78 Code formatting with Checkstyle and Codenarc
  • 5abdc5e Update the BOM of Grace Dependencies #1220

  • d2638e2 Update Gradle Version Catalog after importing 'cache' 'fields' 'scaffolding' 'views' plugins #1219

  • 05980f8 Rename the package of Grace Views #1218

    • Change the package of grace-views-json from grails.plugin.json.view => org.grails.views.json
    • Change the package of grace-views-markup from grails.plugin.markup.view => org.grails.views.markup
  • 1070acb Refactor Grace Json View API: Use native groovy.json.* API instead #1217

    • Remove grails.plugin.json.builder.StreamingJsonBuilder
    • Remove grails.plugin.json.builder.JsonOutput
    • Remove grails.plugin.json.builder.JsonGenerator
    • Remove grails.plugin.json.builder.DefaultJsonGenerator
    • Add grails.plugin.json.view.api.JsonWritable
    • Add grails.plugin.json.util.JsonToken
  • 6f352e4 Refactor Grace Views Format Java and Groovy source and test code #1216

  • 1095028 Merge grace-views into the framework #1215

    • Merge grace-views-gradle into grace-gradle-plugin
    • Merge grace-views-json-testing-support into grace-test-support
    • Update Gradle build script
    • Update ViewsTransform JsonViewsTransform MarkupViewsTransform MarkupViewTemplateEngine
    • Make tests works
  • 63de64a Refactor Grace Fields Plugin #1214

  • ef9944c Refactor Grace Scaffolding Core and Plugin #1213

  • bdecfc0 Make grace-plugin-fields and grace-plugin-scaffolding works #1211 #1212

    • Add grace-scaffolding-core grace-plugin-fields grace-plugin-scaffolding submodules
    • Update Gradle build script
    • Add grails-plugin.xml for grace-plugin-fields and grace-plugin-scaffolding
    • Add @TagLib to FormFieldsTagLib
    • Update ContextMarkupRenderer ContextMarkupRendererImpl DomainMarkupRendererImpl DelegatingBeanPropertyAccessorImpl
    • Update DomainMarkupRendererSpec and FormFieldsTemplateServiceSpec
  • e0ace00 Refactor Grace Cache Core and Plugin #1210

  • 566f3d2 Make grace-cache-core and grace-plugin-cache works #1209

    • Add grace-cache-core and grace-plugin-cache submodules
    • Update Gradle build script
    • Add grails-plugin.xml
    • Add @TagLib to grails-plugin.xml
    • Migrate some JUnit 4 tests to JUnit 5
    • Remove demo tests
  • 2aa5367 Enhance CodeGenConfig #1201

    • Add method loadDefaultConfig() to simplify usage
  • e0f2608 Relocate CodeGenConfig from grace-api to grace-bootstrap #1200

  • e166042 Rename beans to propertySourcesPlaceholderConfigurer beanPropertyOverrideConfigurer to keep naming consistent with the CoreConfiguration #1198

  • cf01cbf Refine GroovyPagesTemplateRenderer

    • Remove unused codes
    • Decouple grace-web-gsp from grace-plugin-domain-class
  • 60e7962 Move CamelCaseUrlConverterSpec and HyphenatedUrlConverterSpec from grace-core to the grace-web-common #1189

  • f39e5cf BuildSettings.APP_BASE_DIR: rename base.dir to grails.base.dir #1186

  • e7e1257 Improve EntityTraitInjector and GormTransformer #1184

    • Refactor EntityTraitInjector and GormTransformer
    • Add tests
  • 17e7afe Remove the configuration of system properties in GrailsGradlePlugin.configureGrailsBuildSettings() #1173 #1157

  • 7ff8e8b Update GspCompileOptions: remove the use of deprecated AbstractOptions #1166 #1165

  • f7e33da Enhance FindMainClassTask and GrailsGradlePlugin.registerFindMainClassTask() #1163

  • a7a1a54 Add configDir to GroovyPageForkCompileTask And migrate project.buildDir to project.layout.buildDirectory #1162

  • c284a33 Task compileWebappGroovyPages should dependsOn classes #1161

  • 7b7d827 Update Gradle Version Catalog #1145

  • 99554ca Rename grace-gorm to grace-data properties in the Grace BOM #1144

  • c9ff2fc Improve GroovyCompiler to allow Groovy scripts to be recompiled and reloaded after modification #1142

  • 25a6b25 Ensure that Grace Artefact classes are not registered prematurely into the Spring context #1141

  • aeb8b10 Update .gitattributes to ensure the web fonts are treated as binary #1138

  • 452b092 Migrate to Central Portal OSSRH Stagin...

Read more

v2024.0.0-M1

29 Jun 19:22
2bc01be

Choose a tag to compare

v2024.0.0-M1 Pre-release
Pre-release

What's Changed

⭐️ New Features

  • 3624a45 Provides binary, sources and docs distributions for Grace framework #1109
  • 0753d87 Update Grace Banner #1108
  • ab1575a Add a project icon for IntelliJ IDEA

🛠 Improvements

🐞 Bug Fixes

  • ab7f35c Don't publish docs to Maven Central and includes it in the distribution #1104
  • c446022 Update GrailsTests: bannerMode has been bound to properties #1050

🚀 Dependency Upgrades

⚙️ Tasks

  • 2bc01be Release v2024.0.0-M1
  • e5d7245 Update release workflow: remove generating docs step
  • 5cfc699 Update GitHub workflows - Switch to 2024.0.x
  • 5815eee Next development version: 2024.0.0-SNAPSHOT

Full Changelog: v2023.3.0...v2024.0.0-M1

v2023.3.0

22 Jun 23:24
c873bfd

Choose a tag to compare

What's Changed

⭐️ New Features

🛠 Improvements

  • 3e73201 Update README - Add document badge and link - Add logo - Upddate versions of Groovy and Spring Boot badges
  • b144e9c Update documentation - Update release notes
  • e872041 Change to graceVersion of the app info #1085
  • 0439c0c Exclude obsolete gsp plugin from the plugin list #1084
  • d1a11fb Config generate docs step to the release workflow #1080
  • 7c42b9e Enhance IntegrationTestGradlePlugin - Deprecation warning of the IdeaModule.testSourceDirs - Migrate to tasks.register() #1074
  • 0d14765 Only show internal commands and features by using flag only, removing flag all #1073 #1042
  • ae5006d Improve GradleUtil - Use System.in as the standardInput of Gradle's BuildLauncher - It will make shell command work normally #1072
  • a02d3e4 Update github workflows - Upgrade to setup-gradle@v4 - Upgrade to latest ubuntu

🐞 Bug Fixes

  • 330fb0b Fixes groovydoc: error parsing Java source file: org/grails/plugins/datasource/DataSourcePluginConfiguration.java #1082
  • 6364b3d Remove deprecated gradle/actions/wrapper-validation in the release workflow #1075

🚀 Dependency Upgrades

⚙️ Tasks

🔌 Plugins

📜Profiles

📖 Documentation

Full Changelog: v2023.3.0-RC2...v2023.3.0

v2023.3.0-RC2

13 May 08:41
5609f80

Choose a tag to compare

v2023.3.0-RC2 Pre-release
Pre-release

What's Changed

⭐️ New Features

🛠 Improvements

  • 70690a1 Update README
  • 00e9963 Improve the styles for PDF document #1062
  • b873890 Refactor PdfBuilder DocPublisher and PublishPdfTask #1059
  • 1e5ce38 Introduce ResourceChecker to check resources for YamlTocStrategy #1058
  • 4c003c0 Improve the print media styles: hide the nav links and quick reference #1056
  • 1ada0fc Improve the section level as HTML headings #1055
  • f7cd797 Improve guide logo and title for doc templates #1054
  • 1fd00e8 Update docs template's styles #1047
  • 73398f2 Support docs task's default sourceDir may be docs or src/docs #1045
  • 8376453 Command profile-info should show whether the feature is Required or Default #1044
  • e596dcd Command profile-info should show the extended Profiles #1043
  • 7d084a4 Command profile-info support show all the Profile's commands and features included parent Profile's #1041
  • de63aeb Command profile-info should only show the Profile's internal commands and features #1040

🐞 Bug Fixes

  • 4386137 Correct the path of the generated single.html #1061
  • 7fb7408 Fix wrong src of the logo image in doc templates #1060

🚀 Dependency Upgrades

⚙️ Tasks

Full Changelog: v2023.3.0-RC1...v2023.3.0-RC2