Skip to content

Upgrade Grails Cache Redis Plugin and Prepare for New Grails 6.x Release #9

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 10 commits into from
Jun 11, 2025

Conversation

sbglasius
Copy link
Contributor

This PR includes a series of updates and improvements to the Grails Cache Redis plugin in preparation for a new release. Key changes:

🛠️ Framework and Dependency Updates
Upgraded Grails to 6.2.x

Updated Gradle and associated build dependencies to align with newer Grails versions

✅ Functional Improvements
Implemented get() method to satisfy the Cache interface

Allowed cache-redis to be disabled independently of grails-cache

Replaced deprecated JedisShardInfo with RedisStandaloneConfiguration for better compatibility with newer Redis clients

📘 Documentation
Updated plugin documentation to reflect recent changes and usage patterns

erik-h and others added 7 commits March 9, 2021 18:12
These are the versions we're using for most of our Spieker Point applications.
I assume that the `get(String, Callable<T>)` method signature was added to
Spring Framework's Cache interface sometime after this cache-redis plugin was
originally developed. For now we'll just ignore the Callable argument, since
it isn't having an impact on our usage.
There is now a separate `grails.cache.redis.enabled` config option to allow the
cache-redis plugin to be disabled while still having the grails-cache plugin
enabled. The change is based off of grails-plugins#8
* All functional tests now uses Micronaut Http Client
* Using test-containers for Redis instance
* Updating documentation
@sbglasius sbglasius requested a review from matrei June 11, 2025 08:01
@sbglasius sbglasius requested a review from Copilot June 11, 2025 09:02
@sbglasius sbglasius self-assigned this Jun 11, 2025
Copy link

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR upgrades the Grails Cache Redis plugin and its test suite for Grails 6.x by modernizing build scripts, configs, documentation, and CI/CD.

  • Replace Groovy-based logging with XML Logback config and adjust application YAML.
  • Revamp Gradle wrapper scripts (gradlew, gradlew.bat) and bump to Gradle 7.6.4; update plugin/dependency versions.
  • Add Apache 2.0 license, update README, and introduce GitHub Actions workflows (CI, release, release notes, Renovate).

Reviewed Changes

Copilot reviewed 77 out of 77 changed files in this pull request and generated no comments.

Show a summary per file
File Description
functional-tests/grails-app/conf/logback.xml Added XML logging config for functional tests
functional-tests/grails-app/conf/logback.groovy Removed old Groovy logging config
functional-tests/grails-app/conf/application.yml Updated datasource settings for all environments
functional-tests/grails-app/conf/TestCacheConfig.groovy Removed test cache configuration
functional-tests/gradlew.bat Revamped Windows Gradle wrapper script
functional-tests/gradlew Revamped Unix Gradle wrapper script
functional-tests/gradle/wrapper/gradle-wrapper.properties Bumped Gradle distribution to 7.6.4
functional-tests/gradle.properties Updated Grails and Gradle plugin versions
functional-tests/build.gradle Migrated build script to modern Gradle DSL
functional-tests/.gitignore Added /bin/ to ignore list
buildSrc/settings.gradle Configured version catalogs for buildSrc
buildSrc/build.gradle Added buildSrc plugin dependencies
README.md Updated badges, documentation links, and contributing
LICENSE Added Apache 2.0 license text
.travis.yml Removed Travis CI config
.github/workflows/release.yml Added release GitHub Action workflow
.github/workflows/release-notes.yml Added release-drafter workflow
.github/workflows/gradle.yml Added Java CI workflow
.github/renovate.json Added Renovate bot configuration
.github/release-drafter.yml Added release drafter configuration
Comments suppressed due to low confidence (3)

functional-tests/grails-app/conf/TestCacheConfig.groovy:1

  • The test cache configuration was removed entirely; ensure that critical cache behaviors (e.g., eviction and persistence settings) are still covered by existing tests or add new ones.
config = {

functional-tests/grails-app/conf/application.yml:45

  • [nitpick] Using a magic number (2) for isolation level is unclear; consider re-adding or updating the comment (e.g., # TRANSACTION_READ_COMMITTED) for readability.
defaultTransactionIsolation: 2

functional-tests/gradlew.bat:74

  • The original %CMD_LINE_ARGS% was replaced with %*, but the -Dorg.gradle.appname JVM arg and potentially other options may not be applied correctly on Windows; please verify argument propagation and restore missing flags if needed.
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*

@sbglasius sbglasius merged commit 0ea3bbd into grails-plugins:6.x Jun 11, 2025
@sbglasius
Copy link
Contributor Author

@matrei any chance you have time to look at this so that I can release a RC1 or perhaps even a GA?

Comment on lines 58 to +61
* @param name cache name
* @param prefix
* @param template
* @param ttl
* @param prefix prefix to use
* @param template Spring template
* @param ttl time to live for cache
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we align the space usage for all the @params?

@@ -0,0 +1,9 @@
[versions]
grails-gradle-plugin = '6.2.0'
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Update to 6.2.4?

@@ -0,0 +1,9 @@
[versions]
grails-gradle-plugin = '6.2.0'
nexus-publish-gradle-plugin = '1.3.0'
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Update to 2.0.0?

[versions]
grails-gradle-plugin = '6.2.0'
nexus-publish-gradle-plugin = '1.3.0'
asciidoctor-gradle-plugin = '4.0.2'
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Update to 4.0.4?

tasks.named('jar', Jar) {
enabled = true // Enable the jar task again, as the bootJar task has been disabled
archiveClassifier = '' // Remove '-plain' suffix from jar file name
exclude('_testemails', 'messages*.properties')
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove? (This looks like leftover from copying from grails-mail)

gradleWrapperVersion=2.13
projectVersion=6.0.0-SNAPSHOT
grailsVersion=6.2.3
javaVersion=17
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove? This seems unused and also has the wrong value.

projectVersion=6.0.0-SNAPSHOT
grailsVersion=6.2.3
javaVersion=17
asciidoctorGradlePluginVersion=4.0.4
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove? This seems unused and the value is set in buildsrc.libs.versions.toml.

javaVersion=17
asciidoctorGradlePluginVersion=4.0.4

grailsGradlePluginVersion=6.2.4
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove? This seems unused and the value is set in buildsrc.libs.versions.toml.

asciidoctorGradlePluginVersion=4.0.4

grailsGradlePluginVersion=6.2.4
version=0.1
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove? This seems unused and also has the wrong value.

publications {
register('grailsMailPlugin', MavenPublication) {
from javaComponent.get()
versionMapping {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we can remove this versionMapping block.

@sbglasius
Copy link
Contributor Author

@matrei see #13 for post-review fixes

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.

4 participants