Skip to content

Releases: graceframework/grace-framework

v2024.1.0

13 Jun 21:35
6002119

Choose a tag to compare

What's Changed

This release is based on Spring Boot 3.5.15 and Spring Framework to 6.2.19.

  • Upgrade to Ant 1.10.17, Maven 3.9.16, Gradle 8.14.5
  • Upgrade to Groovy 4.0.32, SiteMesh 2.7.0, Tomcat 10.1.55

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

⭐️ New Features

🛠 Improvements

  • 443045b Add release notes for 2024.1.0
  • b1e1ab7 Update README
    • Update the Spring Boot badget version
    • Update docs for 2024.1.x
    • Update description
  • 5c60c00 Update README - Add DeepWiki badget
  • 315f92c Update guides: introduction and installation
  • 54327ef Update the README.md in all modules #1558
  • 6fb94fe Update the module name and version of Groovy ExtensionModules #1557
  • 2e8feda Changing JVM settings for the build VM by increase Xmx to 4G
  • b770baf Spring Boot 3.4.x is no longer supported #1555
  • 42f215e Replace deprecated Maven Resolver components with new Maven Resolver API RepositorySystemSupplier #1554

🐞 Bug Fixes

🚀 Dependency Upgrades

⚙️ Tasks

🔌 Plugins and Libraries

📜Profiles

Full Changelog: v2024.1.0-RC2...v2024.1.0

v2024.0.2

09 Jun 04:56
a5497d9

Choose a tag to compare

What's Changed

🛠 Improvements

  • 6e5a382 Add release notes for 2024.0.2

🚀 Dependency Upgrades

⚙️ Tasks

  • a5497d9 Release v2024.0.2
  • 5e2198e Next development version: 2024.0.2-SNAPSHOT

Full Changelog: v2024.0.1...v2024.0.2

v2024.1.0-RC2

04 Jun 18:49
f20a418

Choose a tag to compare

v2024.1.0-RC2 Pre-release
Pre-release

What's Changed

Please upgrade to this version, because some artifacts of the previous version 2024.1.0-RC1 was not successfully published to Maven Central Repository.

🛠 Improvements

  • ae077d4 Add release notes for 2024.1.0-RC2
  • a09bd87 Enhance HelpCommand #1529
  • 8224dba Not found migration and scaffold generators when executing destroy command #1527
  • af9a34a Command generate should only list in the project context #1526

⚙️ Tasks

Full Changelog: v2024.1.0-RC1...v2024.1.0-RC2

v2024.1.0-RC1

04 Jun 03:02
03a7fa5

Choose a tag to compare

v2024.1.0-RC1 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 Maven 3.9.16, Gradle 8.14.5
  • Upgrade to Groovy 4.0.32, Liquibase 4.31.1

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

⚠️ Noteworthy Changes

The database-migration plugin dosen't dependent on liquibase-hibernate5 now.

Currently, the latest version of liquibase-core is 4.33.0, the latest version of liquibase-hibernate5 is 4.27.0, and Spring Boot 3.5.x only upgrades to 4.31.1.
To more conveniently synchronize with Spring Boot and integrate liquibase, we have decided to no longer use liquibase-hibernate5 and will no longer provide related commands, such as dbmGenerateGormChangelog, dbmGormDiff, and schemaExport.

GrailsApplicationPidFileWriter and GrailsWebServerPortFileWriter are not active by default.

By default, these writers are not activated, but you can enable them:

In the META-INF/spring.factories file, you can activate the listener (or listeners) that writes a PID file:

org.springframework.context.ApplicationListener=\
org.grails.boot.context.GrailsApplicationPidFileWriter,\
org.grails.boot.context.web.GrailsWebServerPortFileWriter

⭐️ New Features

  • 33c74e3 Add script Generator #1523
  • de2bfa6 Add views Generator #1522
  • 72b8e82 Delegate grailsCacheManager to Spring's CacheManager if provide by user #1519
  • 75d6c64 Add actuator endpoint for exposing the application's URL mappings #1518
  • 2a26f04 Prefer to HikariCP as the default connection pool for its performance and concurrency #1516
  • acde55e Support setting system properties from the command line arguments #1507
  • 12d6196 Auto-configure DatabaseMigration Plugin #1502

🛠 Improvements

  • c46ca45 Add release notes for 2024.1.0-RC1
  • 91692de Update README - Update badget versions of Groovy and Gradle
  • eddf326 Update guides for installation and introduction
  • 4c26cb8 Remove TomcatJDBCPoolMBeanExporter #1521
  • 67ab3a2 Rename CustomCacheKeyGenerator to SimpleCacheKeyGenerator #1520
  • e09be25 Refine AnsiConsoleUrlMappingsRenderer to render url mappings #1517
  • 0ec94af GrailsApplicationPidFileWriter and GrailsWebServerPortFileWriter are not active by default #1515
  • 0c0571a Restore DataBinding as GrailsPlugin grace-plugin-databinding provides grails.compiler.traits.WebDataBindingTraitInjector#1514
  • df81a8f Add some examples to command generate-views #1513
  • 2aa95f9 Add new method invoke to Generator #1512
  • 9cddf54 Raise the minimum supported version of Gradle to 8.4 #1511
  • 12f809b Refactor GrailsCli initializeProfile and buildClasspathDependencies #1510
  • 9498857 Rename AsyncSpec.groovy to AsyncControllerSpec.groovy, Spec.groovy to ControllerSpec.groovy in scaffolding plugin #1509
  • 7fb896b Use TraitInjector.supports() to simplify TraitInjectionUtils #1508
  • 62b3dc0 Add @groovy.transform.Generated annotation to TagLibraryInvoker #1506
  • 234df6b Restore tests in DatabaseMigration Plugin #1503
  • 0fcd34a Remove integration of liquibase-hibernate5 in the database-migration plugin #1500

🐞 Bug Fixes

  • 440a1de Not found migration and scaffold generators when executing generate command #1524
  • 9934969 Don't exclude opencsv dependency of liquibase-core #1499

🚀 Dependency Upgrades

⚙️ Tasks

🔌 Plugins

📜Profiles

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

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