Skip to content

Added Grails 7.x.x support#20

Open
curd0 wants to merge 1 commit intogpc:6.x.xfrom
curd0:7.x.x-support
Open

Added Grails 7.x.x support#20
curd0 wants to merge 1 commit intogpc:6.x.xfrom
curd0:7.x.x-support

Conversation

@curd0
Copy link

@curd0 curd0 commented Feb 2, 2026

1. Version Upgrades

  • Grails: Updated from 6.2.3 to 7.0.7.
  • Java: The minimum version increased from 11 to 17.
  • Gradle: Wrapper upgraded from 7.6.6 to 8.14.4.
  • Plugin Version: Incremented from 4.0.1-SNAPSHOT to 5.0.0-SNAPSHOT.

2. Dependency Management & Repositories

  • Repositories: Switched from https://repo.grails.org/grails/core to https://repo.grails.org/grails/restricted.
  • BOM Usage: Introduced the Grails Bill of Materials (grails-bom) for consistent dependency management.
  • Updated Plugins:
    • asset-pipeline moved to cloud.wondrify:asset-pipeline-gradle.
    • grails-mail updated to 5.0.3.
    • grails-quartz updated to 4.0.0 (group changed from org.grails.plugins to org.apache.grails).
    • Removed explicit micronaut-inject-groovy dependencies.

3. Namespace Migration (Jakarta EE)

  • The plugin has migrated from javax.* to jakarta.* namespaces, which is required for Grails 7/Spring Boot 3 compatibility:
    • javax.annotation.Resourcejakarta.annotation.Resource
    • javax.activation.*jakarta.activation.*
    • javax.mail.*jakarta.mail.*

4. Code Improvements & Refactoring

  • AsynchronousMailMessage.groovy: Replaced org.apache.commons.lang.StringUtils.isBlank() with with Java/Groovy's native APIs, reducing dependency on Apache Commons Lang.
  • Validator.java: Added Javadoc to the isMailbox method to eliminate compiler warnings.
  • Plugin Definition: Updated grailsVersion constraint in AsynchronousMailGrailsPlugin.groovy to "7.0.0 > *".

5. Documentation

  • Updated README.md to include installation instructions for Grails 7.x using version 5.0.0 of the plugin.

Summary of Changes

1. Version Upgrades
 - Grails: Updated from '6.2.3' to '7.0.7'.
 - Java: The Minimum version increased from '11' to '17'.
 - Gradle: Wrapper upgraded from '7.6.6' to '8.14.4'.
 - Plugin Version: Incremented from '4.0.1-SNAPSHOT' to '5.0.0-SNAPSHOT'.

2. Dependency Management & Repositories
 - Repositories: Switched from 'https://repo.grails.org/grails/core' to 'https://repo.grails.org/grails/restricted'.
 - BOM Usage: Introduced the Grails Bill of Materials ('grails-bom') for consistent dependency management.
 - Updated Plugins:
    - 'asset-pipeline' moved to 'cloud.wondrify:asset-pipeline-gradle'.
    - 'grails-mail' updated to '5.0.3'.
    - 'grails-quartz' updated to '4.0.0' (group changed from 'org.grails.plugins' to 'org.apache.grails').
    - Removed explicit 'micronaut-inject-groovy' dependencies.

3. Namespace Migration (Jakarta EE)
 - The plugin has migrated from 'javax.*' to 'jakarta.*' namespaces, which is required for Grails 7/Spring Boot 3 compatibility:
    - 'javax.annotation.Resource' → 'jakarta.annotation.Resource'
    - 'javax.activation.*' → 'jakarta.activation.*'
    - 'javax.mail.*' → 'jakarta.mail.*'

4. Code Improvements & Refactoring
 - 'AsynchronousMailMessage.groovy': Replaced 'org.apache.commons.lang.StringUtils.isBlank()' with Java/Groovy's native APIs, reducing dependency on Apache Commons Lang.
 - 'Validator.java': Added Javadoc to the 'isMailbox' method to eliminate compiler warnings.
 - Plugin Definition: Updated 'grailsVersion' constraint in 'AsynchronousMailGrailsPlugin.groovy' to '"7.0.0 > *"'.

5. Documentation
 - Updated 'README.md' to include installation instructions for Grails 7.x using version '5.0.0' of the plugin.
@curd0
Copy link
Author

curd0 commented Feb 2, 2026

I’ve been happily using the grails-asynchronous-mail
plugin for many years in my Grails applications and have successfully upgraded alongside Grails version changes over time. Thank you for maintaining it.

While upgrading my application from Grails 6.2.3 to 7.0.7, I discovered that io.github.gpc:asynchronous-mail:4.0.0 is no longer compatible with Grails 7.

To unblock my upgrade, I forked the project and made a set of changes to bring the plugin in line with Grails 7.x. I’ve tested the updated plugin with Grails 7.0.6 and 7.0.7, and it’s now successfully integrated and running in my application.

I’d like to share these changes with the community by contributing them back to the project.

I’m happy to adjust the implementation based on any feedback or suggestions.

@curd0 curd0 mentioned this pull request Feb 2, 2026
@matrei
Copy link
Collaborator

matrei commented Feb 3, 2026

Thanks @curd0!
I have an update coming for Grails 7 that includes several long-standing refactorings to the plugin.
If you’re able to continue using your fork until the release is out, that would be much appreciated.

@curd0
Copy link
Author

curd0 commented Feb 3, 2026

Sure, no problem, I can live with a fork for a while. Looking forward for the official release!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants