Skip to content

v2024.1.0-M2

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 20 Mar 02:50
2121c1a

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 to grace-web
    • Move utility methods from HttpServletResponseExtension to MimeTypeUtils
  • 83f82bc Refactor Grace Web Rest #1340

    • Relocate Link Linkable from grace-plugin-rest to grace-web-rest
    • Rename package from org.grails.plugins.web.rest.render to org.grails.web.rest.render

🚀 Dependency Upgrades

⚙️ Tasks

  • 2121c1a Release v2024.1.0-M2
  • 3076af0 Upgrade to actions/setup-java@v5
  • bdfe57d Upgrade to actions/checkout@v6
  • 787a9dc Upgrade to gradle/actions/setup-gradle@v5.0.2

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