You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@grails.apache.org by bo...@apache.org on 2026/07/19 20:42:59 UTC

(grails-core) branch test/gorm-registry-core-tests updated (1b3c96f53a -> 9e0d87ef48)

This is an automated email from the ASF dual-hosted git repository.

borinquenkid pushed a change to branch test/gorm-registry-core-tests
in repository https://gitbox.apache.org/repos/asf/grails-core.git


 discard 1b3c96f53a fix: update ServiceTransformSpec for current Groovy MethodNode.typeDescriptor format
 discard a6ade491a7 fix: address Copilot review findings on PR #15790
 discard 3c25b87ece test: add core-class unit tests for the GormRegistry O(M+N) rewrite
    omit 3914546f43 test: verify @Service+@CurrentTenant routing in DATABASE multi-tenancy mode
    omit 4d31ebdf40 fix: address Copilot review findings on PR #15780
    omit a78fe6ec42 chore: strip scope-creep config noise from the GormRegistry PR
    omit 978a161ede fix: resolve GORM regressions surfaced by the registry refactor
    omit d2999816bf test: @PendingFeature the pre-existing Mongo count-over-OR disjunction bug
    omit 39b725bfc7 fix: @CurrentTenant data services resolve the primary datastore for tenant management
    omit a2af31a55d test: isolate Mongo multi-tenancy specs from singleton GormRegistry pollution
    omit c14288989e fix: MultiTenant.eachTenant must not force current-tenant resolution
    omit 4d0b284291 fix: H7 disjunction/conjunction/negation operate on detachedCriteria
    omit ce7353732d test: align H7 core tests with the GormRegistry rewrite
    omit fa04725110 fix: H7 first/last(Map) inherit core's order-aware implementation
    omit 7ae28ec978 fix: implement find/findAll-by-example via findWhere/findAllWhere delegation
    omit 4643a360bc fix: apply pagination args before Query.list() in findAll-by-example
    omit 974dac2db5 fix: register MongoGormApiFactory so Mongo entities resolve a MongoStaticApi
    omit 5bf650c1d9 fix: honor getAll id order, null slots, and id conversion in Hibernate retrieveAll (H5 core 3→0)
    omit d394976e9c fix: resolve multi-tenant dynamic finder dispatch and tenant session passing (H5 core 6→3)
    omit 868db10ec8 fix: clear GormRegistry core-impl regressions (H5 core 42→6)
    omit cbf6453146 fix: restore null-tolerant service/datastore contracts in GormRegistry core
    omit 0b1f8e0c6c Fix MongoDB functional tests: fall back to enhancer API factory when no GormApiFactory registered
    omit 3ac4bd6390 fix: remove redundant this.datastore assignment in HibernateGormStaticApi
    omit f703035cb5 fix: resolve null datastore in H5/H7 validation and dynamic finder dispatch
    omit bd2751c584 fix: restore deprecated setDatastore and persistentEntity for H7 adapter compat
    omit d84e500734 fix: restore deprecated backward-compat API surface for adapter modules
    omit 8563416bd6 fix: restore deprecated GormEnhancer extension points for backward compatibility
    omit 0d10151426 style: remove unused ConnectionSource import and fix consecutive blank lines in HibernateGormEnhancer
    omit 53480dab5c fix: register HibernateGormApiFactory in registerConstraints; update affected tests
    omit 909bad4888 fix: mode-aware tenant lookup and bound DatastoreResolvers in GormRegistry
    omit d9b5d91664 fix: distinguish datasource connection qualifier from tenant ID in AbstractGormApi.execute()
    omit 702b21e05f fix: restore registerConstraints hook and fix MongoStaticApi fields dropped by scaling refactor
    omit a959465ef4 fix: restore registerConstraints to GormEnhancer dropped in scaling refactor
    omit a3adf3b71e feat: GORM O(M+N) scaling — GormRegistry, GormEnhancer, and core API refactor
    omit 0f8e6c6572 fix: address Copilot review findings on PR #15779
    omit f94a7727fd fix: widen MongoMappingContext.initialize visibility to public
    omit 63612dad77 fix: restore concrete Service trait methods to fix @CompileStatic compilation
    omit be356158f5 feat: add SessionResolver infrastructure and extend core datastore APIs
     add dfe1234cf6 Add opt-in MongoDB multi-document transactions to GORM for MongoDB
     add 59d51fdea4 Merge branch '8.0.x' into feat/mongo-server-transactions
     add 7adbb2af64 Address review: explicit transaction abort on commit failure and native Long id tests
     add 9993091d76 Document that the Mongo session's ClientSession is single-thread confined
     add 51fe9ae81a Merge branch '8.0.x' into feat/mongo-server-transactions
     add 5348e14c32 Address review feedback on MongoDB server-side transactions
     add 90e5103ea9 Frame TransientTransactionError retry as an application concern
     add 134146a4e6 Rename MongoStaticApi session variable to mongoSession for consistency
     add 973747bdff Document transaction retry semantics in the MongoDB user guide
     add 82946a2ca8 ci: raise publish retry timeout to give slow Nexus uploads headroom
     add 9702f0056f Merge pull request #15826 from apache/ci/publish-timeout-headroom
     add 2c325ffc29 [skip ci] Release v7.2.0
     add 83783b1356 [skip ci] Bump version to 7.2.1-SNAPSHOT
     add 479b673f50 Merge pull request #15822 from apache/merge-back-7.2.0
     add f9d3a53c84 [skip ci] Release v7.1.3
     add a1fca2a1de [skip ci] Bump version to 7.1.4-SNAPSHOT
     add 63522e26cc Merge pull request #15821 from apache/merge-back-7.1.3
     add ef1202fc70 Fix inheritance of bindable:true on abstract classes annotated with `@DirtyCheck`
     add b38bd689be Add multi-level test per feedback & update references to PR / issue
     add ed9fdef602 Merge pull request #15796 from apache/id-binding-isuee
     add 9be489620d [skip ci] Release v7.0.13
     add e4d38ab34a [skip ci] Bump version to 7.0.14-SNAPSHOT
     add 861cbf45d8 Merge pull request #15820 from apache/merge-back-7.0.13
     add f6ff53cc4a Add prevent_self_review: false so releases can be approved again
     add b778627ecf Merge branch '7.0.x' into 7.1.x
     add b6cb5650fc Merge branch '7.1.x' into 7.2.x
     add 05d410074e Merge branch '7.2.x' into 8.0.x
     add f537785bfb [skip ci] Release v8.0.0-M2
     add 1e797d5802 [skip ci] Bump version to 8.0.0-SNAPSHOT
     add 119b7d649f Merge pull request #15831 from apache/merge-back-8.0.0-M2
     add 7cf190d371 Merge branch '8.0.x' into feat/mongo-server-transactions
     add 6c76333ea9 Fix test for Windows race condition
     add 2266429dd1 Grails 8 - httpClient api changes
     add 2e99bba3b0 Merge branch '8.0.x' into feat/mongo-server-transactions
     add 3df75d1626 Merge pull request #15744 from codeconsole/feat/mongo-server-transactions
     add 029aa5e437 Add method-based doWithSpring(BeanBuilder) plugin hook
     add 4bc7f5c267 Various fixes for not unwrapping Hibernate proxies
     add 1642084d68 Fix code style violation
     add ff727b9747 Update Micronaut platform to 5.0.3
     add d7a84ac186 Update Forge Micronaut platform metadata to 4.10.16
     add 19a8f596eb Pin Forge publish plugin to 1.0.0-M1
     add 94662c63cb initial commit
     add 8be93f56b7 initial code
     add d9de56e47f mostly minor updates that came out of writing docs and doing testing; also finished Ajax login support
     add 51ab2249a0 more minor updates that came out of writing docs and doing testing
     add 313854137b plugin docs
     add 152f060679 a few small tweaks in the init script and login controller
     add c7cb90b2c0 fixed merge conflict
     add f86302f85a more tests, plus a few config name tweaks
     add 5dfd291853 changed to not include docs or doc source in plugin zip
     add 405e3aa021 functional tests - creates test apps and runs functional tests testing various features of the plugin
     add 185bf1e5d9 extracted target initialization to make it easy to configure the app for a test mode for manual testing
     add c48f7362a5 made it easier to customize redirect page and/or error message for account disable/lock/expire/ or password expiration, in particular to help with SOX compliance
     add 280e3d37dc implemented Digest auth; added clientRegisterFilter utility method to register one filter in the filter chain in the specified position
     add f645769cb3 documentation updates and also added an option to configure a LoggerListener
     add 8b532d2c6b typos
     add a04d03414e added a discussion about removing support for "domainClass"
     add ddcfd16f26 0.2 release
     add 2da0d4b60a new history subsection
     add 55015d0502 fixed required Grails version, won't work in 1.2 or 1.2.1 due to grailsCentral
     add 33799f6c4e updated taglibs and other isAllGranted-type logic to include inferred roles based on role hierarchy
     add 51d05c3ac3 reworked logout filter configuration
     add de07b7716e small logouthandler bug fix
     add 893d13f618 GRAILSPLUGINS-2155 changed id type from long to Object to be more flexible
     add 46da16d974 GRAILSPLUGINS-2155 changed id type from long to Object to be more flexible
     add fa13913cff Changed useSessionFixation to useSessionFixationPrevention
     add e50676377a Renamed sessionFixation to sessionFixationPrevention
     add 3dd2d70ae7 GRAILSPLUGINS-2160 fixed element name
     add 7f08930c72 documented the SystemWideSaltSource class
     add c5e35ade7f added ability to annotate methods
     add f1eff1bd7d added support for SpEL in request mappings
     add 97c6545495 0.3 release update
     add 5cfb7b38e7 GRAILSPLUGINS-2166
     add 9d1125b5e7 0.3.1 release
     add 59fc336f3c GRAILSPLUGINS-2168 fixed name
     add 87278794b9 GRAILSPLUGINS-2160 fixed element name
     add 3b2a11a54e documented the SystemWideSaltSource class
     add 61ddb1d6ef added ability to annotate methods
     add 0042da3ae5 added support for SpEL in request mappings
     add a53d9eb6d8 Merge remote branch 'colin/master' into grails
     add ab96bd60c9 0.3 release update
     add 811f1f7784 GRAILSPLUGINS-2166
     add c2597c7134 0.3.1 release
     add 13968659eb GRAILSPLUGINS-2168 fixed name
     add 60410c67a5 Updated Documentation (and a comment) to reflect the Session Fixation -> Session Fixation Prevention rename.
     add 2082b19ca4 Merge branch 'SessionFixationPreventionDocumentation' of ../../grails-spring-security-core
     add 9a149b4c27 renamed
     add f7c50e42cf removed files
     add 73a3dd78a9 edits, file renaming
     add feb8613649 renamed plug-in to plugin per graeme
     add bce4923e96 edits, fixed link
     add 3295470253 edits, renamed files/sections
     add d2e599a910 fixed link, edits per burt
     add 193ef3a862 edits
     add 5dd19d129c edits
     add 05e80ead48 Merge branch 'master' into 06branch02
     add 2f508608ff added check for misconfigured class name
     add 42d37a91cd typo fix
     add ea08b558b6 adding domain class name to config
     add 5710143620 made transactional property static
     add e0b9b30622 update to 1.3.1
     add ff177953ec Merge branch 'master' of github.com:grails-plugins/grails-spring-security-core
     add 639b43037e more edits
     add d1d29ddb76 capitalized Plugin
     add 4073a69122 capitalized Configuring
     add c4d5e26c65 Merge branch 'master' into 06branch07
     add ba5489e995 restored file and added text (original file had no text)
     add eb3d0a4daa clarified docs for getPrincipal() and getAuthentication()
     add 826d3c6241 cleanup
     add 46f326bb61 renamed project in STS
     add fa4052f6ce reworked functional tests to work in 1.3
     add 7e09546b6e GRAILSPLUGINS-2236 registering a no-op runAsManager bean so the ACL plugin can register a real implementation
     add 5396929fc8 reworked functional tests to work in 1.3
     add 7cfb50dd1f Added access and noAccess expression-based tags
     add b77268c894 updated version in docs
     add f3080b29f5 fixed conflict
     add c2b1917cb4 reorganization, renaming sections, edits
     add a9cab6e6a6 resolving conflict I think
     add 1817eb5950 minor doc tweaks
     add 3797f82b30 bug fix - need to order providers, voters, and logout handlers
     add d5dbe2fa79 minor doc tweaks
     add 60882b898b GRAILSPLUGINS-2248 and GRAILSPLUGINS-2241
     add 7a864b9273 GRAILSPLUGINS-2147 switched securityConfigType to allow String value or enum constant
     add df12a86dd1 getting ready for 0.4.1 release
     add ea614fcf5c added Beverley Talbott as second author
     add fc9669b89f added Beverley as an author and updated the title
     add a8c44a2db0 added a config option for hideUserNotFoundExceptions for DaoAuthenticationProvider
     add 6c889b3d19 Merge branch 'master' into 06branch30
     add 18998464b2 minor tweak
     add 5dc3e2e77a javadoc
     add dcfc2b95a1 fixed broken url option for <sec:access/> tag and documented it
     add f7a7ece7c0 GRAILSPLUGINS-2278
     add 3156c3f63e escaped [ and ] that were being removed since they look like links
     add ab909f1b77 ignoring STS prefs files
     add a142427f90 small fix
     add c706c6e846 GRAILSPLUGINS-2277
     add 29ea804059 updated docs for GRAILSPLUGINS-2277
     add 1370335393 escaped * that were being removed
     add 766a586fe9 0.4.2 release
     add 383b1b8c95 update to Grails 1.3.3 and STS fixes
     add b5ccb012d1 fixing STS warnings, cleanup
     add 062847e738 GRAILSPLUGINS-2305 new method doWithAuth; also moved reauthenticate to SpringSecurityUtils
     add bbbed8f052 clarified example UserDetailsService
     add e70c0f8378 misc fixes and clarifications
     add 665896dbff added new tutorial based on user-submitted upgrade instructions
     add 4d26e9677b typo
     add 1f39674d22 fixed request map bug with expressions that contain a comma
     add f11fe12066 GRAILSPLUGINS-2319
     add 3f951fd319 deprecation fix needed after upgrade to 3.0.3
     add 7d45a45410 deprecation fix needed after upgrade to 3.0.3; also added registerLogoutHandler() and registerVoter()
     add 4643674a8b moved from OpenID plugin since it's usable by other plugins
     add 2b6938d4d5 1.0 release
     add 0ac43afa97 docs for doWithAuth()
     add f0a2ece2e6 1.0 release
     add 4d91b1e385 Merge branch 'master' of github.com:grails-plugins/grails-spring-security-core into grails
     add 4c6a1567f3 added links to the UI plugin
     add f953552b2b removed @Override annotations on interface methods that caused compilation errors in jdk 5
     add 6f60ac7bc2 1.0.1 release
     add 1464bb7b74 cleanup
     add 3b214ed0ef GRAILSPLUGINS-2366
     add 4aea105a6f replaced deprecated constant
     add 29ac7387df GRAILSPLUGINS-2365
     add d113fae6b9 GRAILSPLUGINS-2373
     add 161e8b7fef GRAILSPLUGINS-2354
     add 690efabb82 xss fix for 3 tags
     add dc6a8373fa GRAILSPLUGINS-2389
     add f27ec28a23 change to use the string value of SecurityConfigType since the enum causes problems when upgrading
     add edec0116d0 GRAILSPLUGINS-2397
     add f5801dcf20 GRAILSPLUGINS-2397
     add 6fce78041c GRAILSPLUGINS-2404. Also added tests for <sec:access url="..."/>
     add e2c3296cc1 GRAILSPLUGINS-2413
     add 011ae7ecbd GRAILSPLUGINS-2470
     add 755011ba67 clarified event publishing docs
     add fb400f894c clarified the docs about use of domain classes for user/role lookup
     add b4827a611b GRAILSPLUGINS-2604
     add 7fd38470d0 GRAILSPLUGINS-2643
     add 72155b6d84 GRAILSPLUGINS-2571
     add ed68a563aa GRAILSPLUGINS-2758
     add b893a96993 GRAILSPLUGINS-2368
     add 1440427fec GRAILSPLUGINS-2759
     add a5f3f4a5c7 IpAddressMatcher behavior changed, no longer throws IllegalArgumentException when comparing IPV4 and IPV6, just returns false
     add e12b791468 GRAILSPLUGINS-2505
     add 4ec8932b65 GRAILSPLUGINS-2823
     add 7f7af4e9fb reworked targets
     add dbbb956e7f GRAILSPLUGINS-2824
     add 8df1028a96 added ignore
     add 10593b863f GRAILSPLUGINS-2499
     add aa2a66df3c GRAILSPLUGINS-2896
     add 1a71210a52 removed @Override that causes problems in Java 5
     add ec907a4ccd 1.1.2 release
     add 35a5d14e0b example for reset password
     add 9af167b0f0 added example usage for systemWideSaltSource
     add ae7b868505 Fix for GPSPRINGSECURITYCORE-79 and also removed usage of holders
     add 1ef1372f95 whitespace
     add 080521bb83 reworked dummy request and response as dynamic proxies to work with 1.4/Tomcat 7
     add 2df9860c4c reduced usage of holders
     add 4acf3b183f 1.1.3 release
     add ffa770f7af 1.1.3 release
     add ecebeb7933 GPSPRINGSECURITYCORE-88
     add a79b9e9d32 cleanup
     add 0a75e00f6d Fixed URL processing order for InterceptUrlMap.
     add e9a1a5dc50 Merge pull request #5 from daniel-lima/master
     add 4c2b088ae2 changed from using SecurityConfigType enum values to string values to avoid people having issues with upgrades, plugin installs, etc. where Config.groovy won't parse because the plugin classes aren't in the classpath yet
     add 21ee010734 GPSPRINGSECURITYCORE-81
     add af1ebf5145 cleanup
     add 4952533928 updated password handling based on suggestion from Søren Berg Glasius
     add a66c212502 GPSPRINGSECURITYCORE-29
     add ec25cbeecc GPSPRINGSECURITYCORE-60
     add 28188e9a35 GRAILSPLUGINS-2839 I18n for login error messages
     add 6191937f33 Documentation added for i18n
     add 25d9f27c52 GRAILSPLUGINS-2839 All i18n messages are now in the i18n folder. Error messages removed from DefaultSecurityConfig. Auth and denied GSP use i18n messages
     add 7872c8c168 Merge pull request #2 from cyrilruel/master
     add 4686b01002 no reason for GrailsUser to be a groovy class; also added serialVersionUID as suggested by https://github.com/grails-plugins/grails-spring-security-core/pull/3
     add 2de1549bc9 GPSPRINGSECURITYCORE-83 restored use of ApplicationHolder because of timing issues when running in war
     add 63bfadcd13 cleanup
     add 23478d7758 GPSPRINGSECURITYCORE-95 moved web.xml updating to _Events.groovy to have control over filter mapping position
     add 74d8695845 reworked the logic to ensure that the charEncodingFilter, hiddenHttpMethod, and grailsWebRequest filter mappings are first, then the security filter, then the rest
     add f5450fc94b changed to encrypting password in the user domain class
     add 44f8d59166 cleanup
     add fae0d1eaa2 GPSPRINGSECURITYCORE-89 converted ant.echo to event('StatusUpdate', [message])
     add c106c76889 GPSPRINGSECURITYCORE-52 documented multiple values in requestmaps, and fixed hasAnyRole typo
     add 6f80dac496 GPSPRINGSECURITYCORE-76 fixed filter names
     add 71da2104c8 GPSPRINGSECURITYCORE-91
     add c582e4fba9 GPSPRINGSECURITYCORE-77 added error dispatcher to filter-mapping
     add 3b7a06a6e8 cleanup
     add 3536aa4968 updates for Grails 2.0 and the new approach for password encryption
     add 59e7ffd714 workaround for missing isDirty method in 1.2.x
     add 3fbbfd8219 fixes for 1.2 which uses an older version of Groovy
     add 296310f00a calling deepSanitize() for logged exceptions
     add 3b38e52476 logging a warning for 1.2 and 2.0 for ignorable exception at startup
     add e1f7fcd42c don't delete localization files
     add 4537a702a6 whitespace
     add a2242bde24 ensuring that the unit tests clean up after running
     add 59d9052b9c uninstalled code-coverage plugin
     add 64f9ca3859 BCrypt implementation from Oliver Severin Tynes (https://github.com/oteren/grails-spring-security-core)
     add 85aa284eef 1.2 release
     add f40ec57578 using release plugin
     add b38c00de43 import cleanup
     add 834f3ea755 GPSPRINGSECURITYCORE-105 fixed i18n messages
     add ef44b11112 unit test for BCryptPasswordEncoder
     add 7741915e12 minor fixes
     add 2ed7b3acb0 fixed arg order to be consistent with method signature
     add e8e9eecb2d GPSPRINGSECURITYCORE-102 added helpful error message when domain class name is incorrect
     add adcd6ea590 Improved the appearance default login page (auth.gsp); it's more soothing, the labels are better aligned, and the error message appears in a more appropriate place.
     add bc131baf96 Improved the default labels that appear on the login page very slightly.
     add c6bb951ee0 Merge pull request #6 from phillco/master
     add cfbd74db2c Return error code from s2-quick-start if configuration fails.
     add 1138553e5d All redirects to actions in LoginController template now use a string for the action rather than the property. This means you can change the actions to methods without breaking the controller redirects.
     add 7042dd811e cleanup
     add 5c040402a7 whitespace
     add ae6e16fb57 GPSPRINGSECURITYCORE-106 added support for annotated controller methods in 2.0
     add cfc7bf18aa update to Grails 2 and release plugin
     add cc8f13c912 1.2.1 release
     add 5ab3bc23f0 update doc location for 2.0
     add d71db2ed4b added a clarifying bit about the new domain class password code and salted passwords
     add 624447f6d4 STS warnings
     add 67367c4e9c removed use of ServletContextHolder
     add c1a81429ab added eraseCredentialsAfterAuthentication attribute for ProviderManager
     add 8f26ff6386 update to 2.0 M2
     add 6fef799cfb GPSPRINGSECURITYCORE-123 use uri from the urlmapping if it's set
     add 1648426def 1.2.2 release
     add 56dbba86e0 test fix
     add ccf289a78c svn plugin from the release plugin
     add e5a3de9b23 don't use echo - doesn't work in 2.0
     add e5eaf15a99 reverted change to use request.getServletContext() since it's only available in the 3.0 API
     add dccef6f06d removed generics from Closure since it's only in 1.8
     add 08430131f4 1.2.3 release
     add 440c2e6704 switched back to ServletContextHolder since it will be un-deprecated in 2.0
     add 9559c1dfc9 1.2.4 release
     add 74a5f7731d Replace org.apache.log4j.Logger with slf4j.
     add 71acfe2826 updated to spring security 3.0.7
     add e3db7243c5 using webxml plugin to avoid filter order issues with resources plugin ( GPRESOURCES-111 )
     add 181056613d restored filter-mapping positioning logic; in 1.3 and 2.0 it's not needed since the webxml plugin reorders all of them, but it's needed for 1.2 since the webxml plugin isn't in dependsOn, so it doesn't get installed; this is fine since resources is 1.3+
     add 9f294998ab changed to use target as the work dir - simpler since everything ends up in one folder
     add f7a298dbcc v1.2.5 release
     add 2d19d92a28 update to 2.0 RC1
     add 6344674f8a GPSPRINGSECURITYCORE-136 updated to version 1.4 of webxml plugin which doesn't auto-create WebXmlConfig.groovy
     add 393c7a62a4 1.2.6 release
     add 8b8fc54b97 update to grails 2.0 and clarified dependencies
     add a13469f658 GPSPRINGSECURITYCORE-146 added support for org.springframework.security.access.annotation.Secured
     add b86a5a7db8 commented out testLoadRequestmaps since accessing TestRequestmap is causing a weird VerifyError
     add e5de6f5d0b dom4j is needed in 1.3 but crashes 2.0, so added version check
     add 8a015e216f 1.2.7 release
     add 3f69346e7e 1.2.7 doc update
     add 6a4ac190e8 GPSPRINGSECURITYCORE-156 reworked the Hibernate dependency that broke 1.3 apps deployed as a war
     add 2d4fc1aeab v1.2.7.1 release
     add 4d55a83ff5 updated release notes for v1.2.7.1
     add a9de1436be moved release plugin to application.properties since export=false is broken
     add 7c912cccc9 license update
     add 72c1ff2016 fixes to get the PDF working again
     add 3bc45f7c56 added warning about actionSubmit
     add 23393d639e GPSPRINGSECURITYCORE-164 added support for header check to determine whether to redirect to http or https as described in http://stackoverflow.com/questions/6732453/spring-security-requires-channel-https-behind-ssl-accelerator
     add a92f920b9c 1.2.7.2 release
     add 6d45aa876a fixed release notes url
     add eae8aa1853 Fixed a broken link to Spring Security docs
     add f01fe5b2e0 Update documentation on default values for i18n to reflect current resource bundle
     add ea780b9086 Merge pull request #14 from rlovtangen/docfix
     add a76e697488 Merge remote-tracking branch 'upstream/master'
     add c3f864487a Merge pull request #7 from dsklyut/master
     add 28d167564e add german i18n and fix i18n doc
     add bfcd280a96 Merge pull request #11 from mauk81/master
     add 6f78ada9fe GPSPRINGSECURITYCORE-175 removed 'dispatcher'('FORWARD')
     add b0d9dbbc83 1.2.7.3 release
     add a26501ec18 fixed release notes url
     add dca7b0f1a2 Missing a comma in config example for secureChannel.definition
     add 78591c2535 Merge pull request #17 from rlovtangen/channel_security_missing_comma
     add ea8493f58b license updates
     add 259d1fefa9 added default serialVersionUID
     add 34737a939f fixed omission of webExpressionVoter
     add c7413560b6 clarification
     add dbd62aae70 update to Grails 2.0.4
     add ee24289270 fixed a failing test due to lack of flushing
     add 4b86d003a2 Merge pull request #22 from nobeans/fixed/test
     add 1a7ebdddc6 made the securityContextPersistenceFilter bean more configurable
     add 004a361d1b removed unnecessary code; 2.0.4 lets you install from a zip again
     add 4464528145 added note about bcrypt log rounds value range
     add 0ff854e297 reworked packages to be consistent, start with grails.plugin.springsecurity, and line up with associated Spring Security packages
     add b7800c012f license updates
     add 078f54b9c7 deleted unused files
     add 7a76787feb converted Secured annotation to Groovy to support using closures
     add efa6f0fcdd changed to include LoginController, LogoutController, auth.gsp, and denied.gsp in the plugin since it's easy to override in the application and often the default files are sufficient
     add c6e9287275 upgraded to Spring Security 3.2 and the latest release plugin
     add 96d7462a1d new lightweight exception that doesn't unnecessarily build up the stack frames
     add 598b6edfb1 using compile scope for webxml plugin since Grails 2.2+ won't transitively resolve a "provided" plugin
     add 4f3ca406a9 changed to not use HQL, plus general persistence and transaction improvements
     add d64db51f1d cleanup, deprecation fixes, converted private to protected, etc.
     add 11bcf75a75 GPSPRINGSECURITYCORE-185 and GPSPRINGSECURITYCORE-206 - added support for specifying HTTP method when guarding urls, and also added support for using a closure to do security checks
     add 2982d8798d GPSPRINGSECURITYCORE-197
     add bb63ff31c8 GPSPRINGSECURITYCORE-233
     add 2de2e8c81f GPSPRINGSECURITYCORE-234
     add 3bed2082f6 changed to use BCrypt from org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder
     add c0f5b0121a added DebugFilter based on org.springframework.security.config.debug.DebugFilter
     add 2299afbd20 GPSPRINGSECURITYCORE-205
     add 0ecff27808 GPSPRINGSECURITYCORE-200
     add 70d1248307 GPSPRINGSECURITYCORE-172
     add 80d3d44262 GPSPRINGSECURITYCORE-130
     add 08cf7f2920 GPSPRINGSECURITYCORE-181
     add 20a0a7e71c GPSPRINGSECURITYCORE-121
     add fbb2888c7c changed to forward to the denied page instead of redirect, but added config option to revert to old behavior
     add 1909f5a115 reworked anonymous auth to not use a String for the principal
     add 62509133ea GPSPRINGSECURITYCORE-48
     add 8e9f01cae0 GPSPRINGSECURITYCORE-72
     add 79bac1800f reworked script to add support for 2.3 and use maven-install instead of install-plugin
     add 5dcd01f23c doc updates
     add 6ac3e80df3 update to use InterceptedUrl
     add a599ef80b4 updated with new and changed config settings, and formatted using nesting
     add 6e45161477 updates from upgrade to Spring Security 3.2, plus config changes
     add ddd3a09e49 only Grails 2.0+ is supported now
     add 9ba9d30449 test updates
     add 9fb9d3d6a1 cleanup
     add 32d730fee6 doc link updates
     add e8aa987f16 reworked docs to use the new toc.yml approach
     add f159d3170b tweaks to keep the PDF from clipping on the right
     add b2f82a5f79 updates for new attributes in 3.2 plus some bean cleanup
     add 841c800eab default enabled to true
     add 034c032b0d added bean for PBKDF2PasswordEncoder
     add f9c2a54dd2 reworked how rejectIfNoRule works - rather than return an empty collection, return one config that can't succeed to let the voters deny
     add 588e185990 cleanup
     add aafe8df782 added scripts
     add 8c39131fbe config updates
     add 9743e96cda cleanup
     add 9011c5d2e4 additional tests
     add a2e9b2038b doc updates
     add 92e6ffedfc manually applied change from https://github.com/grails-plugins/grails-spring-security-core/pull/28
     add 3c9acc130b Added a messages file in Russian for the login page.
     add 38203993bb Name too long
     add 5ef735f3be Merge pull request #25 from Konstantin-Surzhin/master
     add 34647c6a3e 2.0-RC1 release
     add 2b35959a72 doc updates
     add 669663f976 doc tweaks
     add 2d42dd13fd typos
     add 79ca56393e also need to add a rule for /index
     add 757ec4fc87 test fix
     add 4dc63218ea RC2 release
     add 39342fd05f fixes GPSPRINGSECURITYCORE-238
     add 80f7d1e976 Merge pull request #30 from zyro23/GPSPRINGSECURITYCORE-238
     add 0a0b9f33ca package and property name fixes
     add dcc2065643 added option to ignore failure to work around the functional-test pluging failing to compile the first time
     add 6f16b6de70 docs for GPSPRINGSECURITYCORE-241
     add c3715c28ff no need to soft-load grails.plugin.webxml.FilterManager
     add 80611d82aa added testapp config file
     add 81a7f1281a cleanup
     add 5e6e78aa46 GPSPRINGSECURITYCORE-243
     add 87be56922e ifAllGranted, ifNotGranted and ifAnyGranted methods now support in parameter collection of GrantedAuthority objects.
     add fb376309fe Merge pull request #31 from donbeave/master
     add 2152b94527 GPSPRINGSECURITYCORE-249
     add 78268f3db2 had the wrong default value in the comment
     add 81cca18c04 GPSPRINGSECURITYCORE-248
     add 25b3c21f28 GPSPRINGSECURITYCORE-250
     add afee17a102 GPSPRINGSECURITYCORE-250
     add 098ae757a0 GPSPRINGSECURITYCORE-247
     add 7ca691840c cleanup
     add 0b02420c7d updated request mapping docs
     add 47a51897b4 fixing very-easy-to-miss typos
     add 1868ce2597 Merge pull request #33 from danveloper/master
     add 8488c5fc14 forward instead of redirect to avoid a round trip
     add e9a7d8b2f5 added ids
     add 1fe0607ddc bug fix
     add 225dde3b6b converted functional tests to Geb
     add bce253facb deal with null currentConfig
     add 48e320f039 Merge pull request #34 from mgkimsal/patch-1
     add 7f689503f7 run each app's tests on a different port to allow them to run concurrently
     add 3e32063a7c use 2.3.3
     add 90a0c68bd3 small fixes - for some reason some tests were failing only in 2.3
     add 24102d3b0c manual merge of https://github.com/grails-plugins/grails-spring-security-core/pull/32
     add 96edbfe2b9 cleanup
     add bbef2c0ac7 update to 3.2.0.RELEASE
     add 1c20eaa8b7 Added functionality and configuration options for a user > groups > roles authority configuration.
     add fc490b19d4 Added a script and templates for working with security groups.
     add 8cc140f8d0 Some fixes to the templates and script for group
     add 1156798a1d Merge branch 'permission-groups' of /git/grails-spring-security-core/
     add f68ebc685f A few spacing issues cleaned up as well as usage updates to the scripts.
     add 4ab5cb5086 Merge pull request #36 from th3morg/master
     add 9f4216ced3 Added documentation for groups functionality
     add d61835c170 Merge pull request #37 from th3morg/master
     add bd1e859c31 deleted RC maven repo
     add 3fe642fbe9 no need for "org.grails.plugins"
     add 63d7649e11 cleanup
     add 050dfdcfb4 GPSPRINGSECURITYCORE-265
     add 825804f332 bug fix, found at http://stackoverflow.com/questions/21026832/java-lang-nullpointerexception-with-spring-security-cas
     add 78f3e2c4de merged s2-quickstart-groups into s2-quickstart with the --groupClassName flag
     add 2a5e160bb0 reworked the role/group code: - added exists() method to all join table classes - added custom validator to all join table classes - changed custom validators to use exists(), and run in a new session to avoid flushing the current during validation - added missing hashCode() method where needed - changed the create() methods to return the validated instance and not null in case there are errors - made method/field/arg names consistent (removed 'permission' names since  [...]
     add 35b733e2f0 whitespace, cleanup, minor fixes
     add 790bf1ebaa added config settings to revert password hashing to 1.2.x approach
     add b7728c864e use get() if the UserDetails is a GrailsUser and the id is available, otherwise use username
     add cdf51937d0 GPSPRINGSECURITYCORE-267
     add 98c963ff36 GPSPRINGSECURITYCORE-268 Make ROLE_ more prominent
     add 429b2e9702 Update authorityClass.gdoc
     add 31c9c721da Merge pull request #38 from timyates/patch-1
     add 5948440be6 support spring security oauth 2 default ScopeVoter prefix
     add d3af267ca8 Merge pull request #39 from kwongpan/scopeVoter
     add 301050e7ff bug fix, and changed from using <% out << ... %> to ${ ... }
     add fdd00b6cf6 update Spring Security to 3.2.1.RELEASE
     add ef3aab05bf use grails.util.Holders instead of org.codehaus.groovy.grails.commons.ApplicationHolder which was removed in 2.4
     add 7cd5b4de93 http://jira.grails.org/browse/GPSPRINGSECURITYCORE-276
     add f04dd7abde license updates
     add 37115147db update to Spring Security version 3.2.2.RELEASE
     add 461ace80dd changed forward back to redirect - it's better to redirect to ensure that cookies are deleted/updated/etc.
     add 559c379510 update to Spring Security 3.2.3.RELEASE
     add 0775112ed9 added clarification about where to put the class
     add c582fb729b http://jira.grails.org/browse/GPSPRINGSECURITYCORE-271
     add 6561b0c607 GPSPRINGSECURITYCORE-157 manually merged https://github.com/grails-plugins/grails-spring-security-core/pull/12
     add 8731a7fe55 GPSPRINGSECURITYCORE-260
     add edc6e0beff http://jira.grails.org/browse/GPSPRINGSECURITYCORE-90
     add ba720d59e4 upgrade to Grails 2.3.8, use Travis CI to build
     add 069c9150f2 updated README
     add f8d6328c04 remove references to deprecated classes
     add 15d1f9e061 add grails wrapper
     add e61c34a931 Revert "remove references to deprecated classes"
     add 6dae47f249 cleanup, fix broken travis build
     add cd8a65519f Fixed SLF4J logging placeholders to actually display variable values.
     add 11bb36c012 Merge pull request #40 from jdpgrailsdev/feature/fix-logging-placeholders
     add 2247aa45a4 attempt to run functional tests on Travis
     add 90032d937d another attempt to run functional tests on Travis
     add aa87c3179e Travis: take 3
     add 7c974ff7ca Revert "Travis: take 3"
     add eab5a02e7f Revert "another attempt to run functional tests on Travis"
     add bdd3733404 disable running functional tests in Travis
     add 6d3a2ab74c only run on oracle jdk
     add c1a14594df Release RC3 to support Grails 2.4
     add dd66f66c0f fix path to docs
     add cc9e4c0382 add github tokens
     add 745ee6c58a Back to snapshot
     add 7551671ba1 fix path to docs in build
     add ad9fa4087e GPSPRINGSECURITYCORE-281 change encoding to UTF-8 in i18n message files
     add ed67c3a846 GPSPRINGSECURITYCORE-278 use CopyOnWriteArrayList to prevent concurrency issues in AbstractFilterInvocationDefinition
     add 9c0e6e6a27 GPSPRINGSECURITYCORE-246 fix namespace support with Secured annotation
     add 6986fe2769 Make the minimum Grails version 2.3
     add 0d749b5df3 GPSPRINGSECURITYCORE-286 Fix @Secured annotation inheritance
     add 0b3b5b40fb added sec:link taglib method; added associated integration tests
     add 5ed4e57208 updated docs for sec:link taglib method
     add a689e74c94 Merge branch 'master' of github.com:asoftwareguy/grails-spring-security-core into asoftwareguy-master
     add 9b80794d18 Merge branch 'asoftwareguy-master'
     add 395d99cfd8 Update 9.4 Ajax Authentication.gdoc
     add 40a8d12850 Merge branch 'master' of github.com:lavandowska/grails-spring-security-core into lavandowska-master
     add e5a21dfa1e Merge branch 'lavandowska-master'
     add c14d4e47d1 fix <sec:link> with expression, mark <sec:link> with URL as not implemented
     add ef1aa3de0f Static rules for assets (asset-pipeline plugin)
     add a42800f1c9 Merge pull request #43 from tcrossland/master
     add a15ace1765 updated refs for grails-2.4.0 eg (grails.util.Holders)
     add 4352cf7f50 fixed references to grails.Holders application and servletContext in unit and integration tests
     add 7e7ebd3d98 Merge pull request #45 from Omasiri/master
     add a57ade9068 remove eclipse files from git
     add fff7570cea update gitignore
     add 3f152f75bc move functional test-app from webtest to actual app in functional-test-app dir
     add 4b343d112b add script for running functional tests
     add dc6059e827 update functional test app dependencies
     add 2fc1d08c68 run functional tests in travis build
     add 9bf4ee6baf rename enabled -> userEnabled in geb specs - fixes error "Value of 'disabled' attribute can only be checked for the following elements: button, input, option, select, textarea."
     add b87edb01aa improve test script
     add a815fa6e3a Allow running Geb tests from IDE
     add 6d8495a623 fix functional test
     add bf2d384db1 add README.md file for functional tests
     add fafa0e5ade prevent NPE
     add b36d95b73e fix NPE in test
     add e17164cd82 fix db config
     add dea637c6ec move integration tests to separate project
     add 71eb90eaf0 Add integration tests to travis-build.sh
     add 0be6f8a646 fix integration tests
     add eab2995ccd fix unit test
     add 81133354e2 fix integration test: cleanup test users
     add a0e6e17642 add quitCachedDriverOnShutdown option for Geb tests executed in IDE
     add 44efc73709 move test data handling to own service
     add af7e7ff5e9 enable H2 dbconsole
     add aa27f06ea9 Reset database to initial state before running a test class
     add 01a82e7ccb add script for upgrading app
     add db5144a255 update to Grails 2.4.2
     add 381e6ebae7 add script for installing recent grails version that's not yet in gvm
     add 0a33b16675 fix upgrade_app.sh - append app specific config to BuildConfig.groovy
     add 33904e8c6a use grails 2.3.11 for running Grails 2.3.x functional tests
     add 6c9d764d65 run functional tests with Grails 2.3.11 and 2.4.2
     add 26ec45ad75 use correct execution mode for scripts
     add 31d19620f8 tests fail with Grails 2.4.x and Hibernate4 without flush:true in save
     add c216040882 permit assets for all
     add d947a8d9de run tests with Grails 2.4.x by default
     add dd4146f1d3 don't install Grails 2.3.x for Travis build
     add b7d6c89163 fix script - running tests with multiple Grails versions
     add 19451ff70f simplify TestUserController - remove hack
     add 6e894eb0c7 remove ant build
     add 767fd47e9b tests for GPSPRINGSECURITYCORE-246
     add f6b1423a0e GPSPRINGSECURITYCORE-286 add test for @Secured annotation inheritance
     add be1db2a76a reuse grails wrapper version for gvm
     add 13e5c52365 GPSPRINGSECURITYCORE-210 merge filter added with SpringSecurityUtils.clientRegisterFilter to existing filterChain.chainMap - solution based on code by Sergey Chunayev published in Jira issue comment
     add 3ed1e3f46b unit test for GPSPRINGSECURITYCORE-210
     add d25027fb16 improve unit tests for GPSPRINGSECURITYCORE-210
     add d575339e32 handle hibernate4 in the same way as hibernate plugin in loadAfter
     add 933830f4be Release 2.0-RC4
     add 0fc9fd02a4 Added method to get current UserObject in View
     add e96ec76bbb Merge pull request #46 from micronax/patch-1
     add 63027adb33 Back to snapshot
     add a8313d6ce2 update to Spring Security 3.2.4
     add 9d90812a74 restored deleted GGTS project files
     add 81ab11fd3f https://jira.grails.org/browse/GPSPRINGSECURITYCORE-311
     add 3988ee6b22 Add ja i18n
     add ea51d81ff5 Merge pull request #50 from nobeans/i18n-ja
     add a38a460416 Update GormPersistentTokenRepository.groovy
     add ff66364f67 Merge pull request #48 from tcrossland/patch-1
     add 96a0125772 Added information about closures within @Secured
     add e07b0aefe5 Merge pull request #49 from joshua-moore/master
     add 3d1a439e97 Added support for loading external Hibernate classes to spring secure core.
     add 518ae1629a Merge pull request #52 from mikert/master
     add 59c03b14fb update to Spring Security 3.2.5.RELEASE and latest rest-client-builder plugin
     add 677bae81b2 update to Grails 2.4.4
     add 6548694de1 whitespace, cleanup
     add 5759b0ef4d copyright updates
     add fddb87bca1 updated domain class templates, adding hashCode, equals, and toString methods, optional parameterized constructors, and implementing Serializable
     add 144b235e1c cleanup
     add 487dbff33a GPSPRINGSECURITYCORE-289
     add 286927b109 GPSPRINGSECURITYCORE-299
     add 4d05b2d140 cleanup
     add fc02dbad3d update to 3.2.6.RELEASE
     add 2ff94e71c6 test fixes
     add 2764dec0a3 typo fix
     add 41d4fbfe85 cleanup
     add 7a53fdf7cd test fixes
     add f53291e7d6 GPSPRINGSECURITYCORE-319 Change from net.sf.ehcache:ehcache-core to net.sf.ehcache:ehcache to align with dependency used by Grails 2.4.5 and newer
     add ca7428b159 Merge pull request #53 from rlovtangen/GPSPRINGSECURITYCORE-319
     add 7055490566 Ajax login fix. Upon a successful ajax login, if there is a html page in the request cache from a previous unauthorized html page, the html for that page will be sent back instead of the ajax response. Also, there is no need to access the super methods when request is ajax.
     add 3dfa945e47 Remove no longer needed test
     add ffca58c36e Ignore target and IDE files
     add 964a7574ab went back to primitive boolean since the properties aren't nullable, so Boolean isn't needed
     add dee746d765 cleanup
     add 23c5e9de0b https://jira.grails.org/browse/GPSPRINGSECURITYCORE-259
     add a7a2f514f7 GPSPRINGSECURITYCORE-296
     add 071d59a837 GPSPRINGSECURITYCORE-288
     add 523dbe2a85 removed docs for migrating from the Acegi plugin
     add b0e95b6d3f cleanup
     add 53e0c438fe update to Spring Security 3.2.7.RELEASE
     add bf8624269f doc updates
     add f63eb9973d added @ToString for domain class templates that don't have an explicit toString method
     add 667ba639c3 removed unnecessary use of load()
     add 2ff9a12a53 Merge branch 'master' of https://github.com/grails-plugins/grails-spring-security-core
     add 4308dcb934 Fixes GPSPRINGSECURITYCORE-312, GPSPRINGSECURITYCORE-321
     add 8ad35d8b2f Test apps should test current plugin version (currently 2.0-SNAPSHOT)
     add 12e06934b7 Add reminder to update test app versions
     add f7c741e650 Merge pull request #57 from tcrossland/master
     add a28072cb5d Merged changes
     add a92d395780 Correct bad merge
     add c52e6ea8b1 Fix spacing
     add c586c61213 Add unit tests
     add 3fb2019236 Merge pull request #55 from codeconsole/ajax-fix
     add faf891104d Migrate JIRA -> Github Issues
     add 1aab915f6b https://jira.grails.org/browse/GPSPRINGSECURITYCORE-197
     add fef4349077 Merge pull request #54 from mifi/master
     add a4faba73f0 AjaxAwareAccessDeniedHandler now respects grails.serverURL when redirecting
     add 9cc313992b Merge pull request #358 from JacobAae/master
     add 9b44a0113b added  template
     add 8c18fa2d10 added  script
     add 9d3df8e9b7 extend roleHierarchy bean configuration.
     add 2c4178d06e added utility method to reload the hierarchy from  the database
     add 67c2fa4ce9 Merge pull request #359 from fpape/GPSPRINGSECURITYCORE-163
     add 37f51a2b12 test app cleanup
     add c758974374 update to 2.4.5
     add cf2e13a55b cleanup
     add c69ff89cb1 GPSPRINGSECURITYCORE-321 restored the efficient deletion code; converted the "where" query to a DetachedCriteria
     add bbf370a30d template cleanup and minor fixes, and also fixed get() and exists() in the three join table classes which were failing because the generated critera referenced non-existent tables; fixed by restoring use of load() instead of comparing ids
     add c6db431ea3 deprecated RequestHolderAuthenticationFilter, will be creating a new filter for holders that will be at the start of the chain
     add e2da882ad3 cleanup
     add f84446017d made consistent with the other generated classes (Serializable, hashCode/equals, etc.)
     add 551279c3e7 reverted changes that broke the build
     add 08b9f257c9 manually made changes from https://github.com/grails-plugins/grails-spring-security-core/pull/47
     add ad2b0849b9 Adding spanish translation
     add 86484d032e Merge pull request #51 from frangarcia/master
     add dff59e55a1 turned off debug SQL logging in functional test app
     add 8e2f9813e1 Set unique Ehcache manager name; fixes https://github.com/grails-plugins/grails-spring-security-core/issues/152
     add 5a2234c0a6 RC5 release
     add 5212bc02c7  upgraded to grails 3... todays rebase
     add 18bd1689ff removed webxml
     add 0037bb2161 stashing before merge
     add 91c44547c5 Fixed hibernate dep in build.gradle and copied plugin to grails.plugin.springsecurity package.
     add ae0e16077f Converted to a gradle eclipse project. Removed the plugin copy in the default package.
     add 57c1ad1b3d ...
     add 14d008201d put old scripts in scripts_old
     add 89b6ece542 added nb-gradle to gitignore
     add 62ab9045a8 Merge pull request #361 from Novadge/grails3
     add b3125b0343 license updates
     add e6fc142577 cleanup
     add da06fa44d8 converted all Java classes to Groovy with @CompileStatic
     add 16484f44fe converted the scripts from Gant to the new Grails 3 format
     add 399adb5b16 added trace level logging to help with debugging
     add 7a01de3f2e updated config parsing to work with the new approach in Grails 3
     add 6bcf93923f If a controller doesn't have a class-scope annotation and the default action isn't 'index', register the same security config on the blank action as the default
     add cfec0922b6 cleaned up the plugin descriptor and added logging
     add 1a8ccb310a Gradle updates
     add b9fd1ff568 test fixes and cleanup, and converted everything to Spock
     add 55e2fc3184 config updates
     add b2a3477aaf Restored Application class deleted in an earlier commit
     add ced4c539db cleanup
     add d2a9dd65d5 updated the integration test app to Grails 3, did some cleanup, and converted the tests to Spock
     add 4e79567748 updated the functional test app to Grails 3 and did some cleanup
     add bf145cfbc2 test fix
     add daa8218716 doc updates
     add 8c74fdf440 updated error message to remove reference to web.xml and the webxml plugin
     add 603f7f156a added 'permitAll' mappings for /error and /shutdown urls (/error will be hit in certain Spring Boot error scenarios and /shutdown is used by the stop-app Grails script) in the initial configuration created by the s2-quickstart script and also in the docs and recommended settings for non-annotation mapping approaches
     add 8fa0bc2954 3.0.0.M1 release
     add b3b11eb032 added project name override to retain the old repo and directory name but build artifacts with the correct name
     add f97c5db67c using a local modified bintrayPublishing.gradle so the issueTrackerUrl and vcsUrl properties are correct
     add edcaf83aa5 updated to Grails 3.0.9 and Gradle 2.8
     add 05954f3704 cleanup
     add bb773ace5c using EqualsAndHashCode and ToString annotations instead of custom methods
     add be34a07c9a use the map constructor in case the generated parameterized constructor is removed
     add 107a006e9d using the standard applied remote plugin files with override values in gradle.properties instead of custom local bintrayPublishing.gradle
     add 4421748952 moved plugin version to version.txt
     add 39db765cce update to Spring Security 3.2.9.RELEASE
     add a222b47b7f use the -all distro so source is available
     add d614536148 changed controllerAnnotations.staticRules and interceptUrlMap to require the List of Maps syntax instead of the simpler Map syntax to avoid config parsing issues
     add 97c0847127 #247 manual merge from 2.x branch:
     add 1926f30b35 "Better trace info" manual merge from 2.x branch:
     add 76e36828d5 #176 manual merge from 2.x branch:
     add 2753e19d6d "This was working... I swear!" manual merge from 2.x branch:
     add ee5ea40d74 Test for #102 (manual merge from 2.x branch):
     add 32502232aa Fixes #181 (manual merge from 2.x branch):
     add d35487e6fd Fix for #363 (manual merge from 2.x branch):
     add f56e6d7618 simple "Hello, world" app
     add c9d639d2d1 Trying to make the build green again
     add d9b47cdeac Assume yes for SDKMAN
     add 5fd1d5bba5 Showing exceptions output
     add 26177306b1 Using Java 8
     add d59278599b Using new Travis container infra
     add 4f65f0d3bc Publishing only when a tag is present
     add 5869e1bb08 authAjax currently returns a status 200 with authAjax with Grails 3. This is a fix to make it compatible with Grails 3 and return the correct status code for UNAUTHORIZED.
     add d3c7ec4e5a Merge pull request #383 from codeconsole/ajax-status-code-fix
     add e294a3e02b added note about dependency resolution issue in Grails 3.1
     add 8601028b29 converted to Asciidoc
     add 670307786c updated generated classes based on script updates
     add f68dd94a63 changed IP restrictions config to use fixed keys to avoid conf parsing issues
     add abec6fdcfe changed failureHandler.exceptionMappings config to use fixed keys to avoid conf parsing issues
     add 520225e98e asciidoc monospace fixes
     add 837e359f88 changed secureChannel.definition config to use fixed keys to avoid conf parsing issues
     add 7a6b37fd63 asciidoc quote fixes
     add 0337d0fafc asciidoc list fixes
     add e53bb234f5 converted note to Asciidoc note
     add dc6aab8a41 changed filterChain.chainMap config to use fixed keys to avoid conf parsing issues
     add df0ffefb36 added note about map-value config changes
     add c76f1140fd integration test cleanup
     add 98395ac4ba misc fixes
     add 2249c9d4ad fixes for domain classes annotated with @Resource
     add 709749cb77 functional test updates and fixes
     add 28d0732063 cleanup
     add 0436498d4a inlined the single call to ReflectionUtils.isRedirect()
     add c5d3d0a40a fixed namespace support, and a few other small fixes
     add 5b378a4222 workaround for issue #9431 to get the tests running
     add 7406f2eade Changed unit tests to have a mixin for ControllerUnitTestMixin in the base class and no GrailsUnitTestMixin
     add 711c13a963 updates for integration and functional tests
     add ebc449dbe3 added hibernate5
     add eb1813028c version 3.0.0.M2
     add 8bdcb0a0c5 disabling driver caching, primarily because of a false negative when testing Basic auth due to Authentication header being 'remembered' across tests
     add 88772620fe added --stacktrace to all Gradle calls
     add e748accb7f default to annotation
     add efbdb95a75 3.0.0.M2 release
     add f0da461a67 moved the functional and integration test apps to the root dir
     add abab9a5e72 upgraded to Spring Security 4.0.3
     add d6042c25b1 make sure the build fails if any set of tests fails
     add 22b9386b69 made the layout configurable in the GSPs
     add 134fca8a0d fixed the docs link
     add 645c2f0dbd configured Travis caching
     add f85ce9ae1b fix for issue #138
     add b808cb4647 doc updates
     add f85f5889d6 no need for full assemble
     add 30696263c7 added publishing
     add 103a7b595a Asciidoc fixes
     add c691910561 added spring-boot-starter-logging for the integration test app
     add 295f139817 cleanup, minor updates
     add 86df018f5c doc fixes - passwords are hashed, not encrypted
     add d36ac9bed9 log the security config at startup in key order
     add 550146b044 added a default filterChain.chainMap to disable all filters for static resources
     add b159a1a632 cleanup and minor updates
     add 88e018274b removed unnecessary check
     add 7feabffb21 updated the Ajax login docs to use asset-pipeline
     add 8f1add8158 Added SecurityRequestHolderFilter which is registered as the first filter.
     add 94ca412cdd Issue #395
     add e793c4e973 HeaderCheckInsecureChannelProcessor and HeaderCheckSecureChannelProcessor are no longer needed since SecurityRequestHolderFilter wraps the request in a wrapper that is aware of the X-Forwarded-Proto header and returns the correct value from isSecure(), getScheme(), and getServerPort() if the header is present.
     add 4db5b90e29 Spring Boot automatically registers all Spring Beans that are filters in the ServletContext unless there's an associated FilterRegistrationBean. Updated to register a FilterRegistrationBean with enabled set to false for each filter in the filter chain so they're not registered twice. Related to issue #138
     add 1685785116 fixed some issues in the Ajax authentication docs
     add 5cee5ff5ef updated to use a subclass of ConsoleAppender to prevent logging stacktraces from Boot's ErrorPageFilter, and from ExceptionTranslationFilter that are logged at the debug level, which clutter the output when testing
     add 2a440e01ae logout fixes in the Ajax docs
     add 800f0c3afa added docs about changed urls and parameters in Spring Security 4
     add 6480928c03 The filter chain has to be after grailsWebRequestFilter, but its order changed in 3.1
     add 9d5056fccd 3.0.0 release
     add 45f9decc05 cleanup
     add d628bf2373 now testing with Grails 3.0.10 and 3.1.M3
     add 7410e5825d functional test app cleanup
     add e8e20e257d temporary workaround until https://github.com/grails/grails-data-mapping/issues/602 is fixed
     add 00571b7fa8 Restored the default value for rejectIfNoRule to true.
     add c2819fb148 updated the readme
     add a1b54420e8 changed quitCachedDriverOnShutdown to true
     add 63dab75a84 bumped the version to 3.1.0-SNAPSHOT
     add c110aad3d1 cleanup, minor updates and fixes
     add a210f34f56 test fix - in 3.1 the class name doesn't appear in JSON output
     add e2b2b11003 Fix for issue #401
     add d582800e71 standardized .gitignore, build.gradle, and gradle.properties across plugins using common includes updated to Grails v3.0.11, Gradle 2.10 minor build cleanup
     add 2304e7d740 added note about ehcache/ehcache-core
     add 718babe553 removed warning about Grails 3.1
     add 84eb858a11 3.0.1 release
     add 32839eaaaf build fix
     add 27786f2507 fixed build property setting; fixes #407
     add 0bbd4c7a34 3.0.2 release
     add 7c24484ee8 added .mobi generation
     add 9be6acef62 doc tweaks
     add bc267434fd minor cleanup
     add 6f03799fab javadoc fix
     add 589ddcf07b moved de-registering FilterRegistrationBean creation to the post-processor so filters registered by other plugins also get de-registered. Fixes #409
     add 4862a20120 license updates
     add 6428fd9897 3.0.3 release
     add da3c9b63e8 Fix for #410
     add d43d78d131 overriding the 'trustResolver' property in the 'webExpressionHandler' now that it's configurable
     add f8ddeb251d cleanup
     add ba1f70cc83 fix for #416
     add d687a106cf fix for #412
     add 244e5e3df4 fix for #419
     add 63e7309a1d set the custom trustResolver in securityContextRepository
     add 5ca9f3e63f added password:true for the password property to trigger creation of an input with asterisks in GSPs
     add 11c8d2a18f 3.0.4 release
     add dfe1070d62 updated to Spring Security 4.0.4.RELEASE, and updated functional tests to use Grails 3.0.15 and 3.1.4
     add 07e1287e61 removed parameterized constructors
     add 9d29850c40 update to Spring Security 4.1.0.RELEASE
     add dc57faf20c merged application.yml into applicataion.groovy
     add f69b5d8686 removed flushing from generated domain classes and updated the generated classes in the test apps to be consistent with the templates
     add 57369b8b2e test cleanup
     add 4cceaf74ec using Grails versions 3.0.17 and 3.1.6
     add 335c688a66 use the class instead of the name to avoid an unnecessary lookup
     add 1c5c23eec5 made overriding the class of a Spring bean configurable
     add 2b497667fe using a trait with @Enhances instead of adding controller metaclass methods
     add b7add879e0 removed hyphenated url workaround since the fix has been in Grails since 3.0.10
     add 00159d99f9 exclude net.sf.ehcache:ehcache-core:2.4.3 from hibernate-ehcache which conflicts with newer net.sf.ehcache:ehcache:2.9.0 used by the plugin
     add 3c434dcafa updated names based on metaclass -> trait change
     add b1a1fbd735 added logic to replace the current GrailsWebRequest with another using the request and response from the filter chain. the request and response get wrapped multiple times using HttpServletRequestWrapper and HttpServletResponseWrapper but as of Grails 3, controllers access the original unproxied request and response because of this bug: https://github.com/grails/grails-core/issues/9924 - fixes #414
     add be81e419f0 fix for pattern generation when the index action is annotated; fixes #403
     add b318903dba made a few more bean properties configurable
     add d0b28fedab added missing headers
     add 1405fc4397 doc updates
     add 4b1ef3046b 3.1.0 release
     add 4372c66014 fix for #428
     add dc53b0b1e2 3.1.1 release
     add ae13532ef1 cleanup
     add 2a70dd97b5 updated the docs to be consistent with how the domain classes are generated by the scripts
     add 31b32f3d30 a couple more doc fixes
     add 3046903b1d updated 'secured' sample app to Grails 3.1.9
     add 2d12117206 Added Traditional Chinese translation
     add 7f09c528be Merge pull request #442 from bestlong/Added-Traditional-Chinese-translation
     add e8fee159f3 Add option to ignore case when searching for the username property
     add 1a1fa25fc6 Only hibernate datasources support the 3 parameter eq()
     add 4d88404182 Merge pull request #450 from erichelgeson/eric/usernameIgnoreCase
     add daeeb700b7 getCurrentUser() is a misleading name and many users don't realize that it involves a database request. deprecating now and will remove soon, but will add docs explaining how to access principal/authentication data and how to retrieve the User domain class instance in application code when that is actually needed
     add 583e2d548b Upgrade Geb to latest version
     add 89d0c29544 Set Geb reportsDir in Gradle integrationTest task
     add 8bb66431cb configure htmlUnit and latest phantomJs
     add 10d38f57ac Ignore tests in htmlUnit
     add d1ad8db668 execute test by default with htmlUnit, allow other drivers
     add e34ba43d97 Add script ro run all tests
     add b4e0ac06f9 Use messageSource in controllers
     add 3a04ff5e35 Replace HashCodeBuilder with HashCodeHelper
     add bc1302029b Improve Kindlegen
     add d58fbb071f add an additional task call docsMobi
     add c43caa8a41 Replace gradle docs task by docsMobi task
     add b96248342e Ignore tests if system property is not set
     add 71d90de647 flush:true save
     add c895a368cc Extract salt method
     add 5335ec289c Reference the list size instead of harcoded number
     add d3d79ddd9e Remove baseUrl from GebConfig
     add 14c36cfe3c Remove datasource configuration from template application.yml
     add f1c93ba7b7 Move TestDataService to package
     add 9fe6b88594 Move Bootstrap to package
     add 56b881576d Add geb.gradle file
     add 8b4811a1fd add ssc.gradle with spring security core dependency
     add 32eff295e4 Use service to return to initial state
     add 481d9df4d3 Use a system property instead of a file
     add 9ad7ee1299 Remove unnecessary imports
     add 517c3e5584 Fixes errors in chrome tests
     add 2526e65e0e Set different Geb baseUrls depending whether serverPort property exists
     add cf1f748d7b Add Grails 3_0_17
     add d1d7df1f4d Add Grails 3_1_17 structure to run functional tests
     add 01b9f51f95 Add Add Grails 3_2_8 with GORM 6.0.9 structure to run functional tests
     add d70c598df3 Add Grails 3_2_8 with GORM 6.1.1 structure to run functional tests
     add fa258e3ce1 ignore copied files into grails folders
     add 4b7141036c Add default flush parameter
     add ae7c13d10d Change s2-quickstart script
     add 6995cf76fe Reference gradle/integrationTest.gradle
     add 99981b9425 Change functional test script
     add e5c6506875 Add readme file to integration-test-app
     add 97f5acd5a7 Set threshold to 6.0.10
     add 839417ff9c Add compile static or Grails compile static to s2-quickstart domain classes
     add 55b657caaa Replace mention Config.groovy with application.yml
     add 85a01e7e92 Replace suffix with preffix
     add 0d779d294b Add GORM autowire configuration to docs
     add 1641f9f912 Add debugging section to docs
     add 51745d660a Added documentation about `RoleHierarchyEntry` updates A call to `grails.plugin.springsecurity.SpringSecurityService#reloadDBRoleHierarchy` is needed to use new/updated/deleted `RoleHierarchyEntity` instances.
     add d8eb4fedb9 Merge branch 'master' into remove-injection-domainclass
     add c87ce0bfb8 Merge pull request #478 from grails-plugins/remove-injection-domainclass
     add c70f838c02 add missing import statement in template
     add b867d05a05 Add misc functional tests tests
     add ff51e8cac5 Fix scripts
     add cfd7235f69 Add script to execute misc functional tests
     add 0f49db440c Revert "getCurrentUser() is a misleading name and many users don't realize that it involves a database request. deprecating now and will remove soon, but will add docs explaining how to access principal/authentication data and how to retrieve the User domain class instance in application code when that is actually needed"
     add 302053bf0e 3.1.2 release
     add ebda506d48 Improve travis-build.sh script
     add e7ff0fbcd5 echo TRAVIS_PULL_REQUEST
     add 1c2c81a28c Add debug statements to build deployment script
     add 272ca30801 deploy version 3.1.2
     add e70bec9a6b Deploy only if tag
     add e519536884 publish docs
     add 97cec296db executeable permission to publish-docs.sh
     add ed12b9e076 Comment out .mobi version
     add 4bc77097ac call run-all-tests.sh script
     add 797bf189b9 Fix publish-docs
     add 10fce9698a travis should trigger travis-build script
     add b62e6ac2f0 Fixes spelling error in i18n spanish properties
     add 47d279b62a Bump grails to 3.2.9
     add ab1e43643c Bump grails to 3.2.9
     add 68905ac7d9 Docs reference real code from asciidoc
     add ed2acab9c8 Include 3.1.2 release in release history
     add b2087c790a Merge branch 'master' of github.com:grails-plugins/grails-spring-security-core
     add 60b8167a12 Remove echo statements
     add 9045de2bfc Fix typo: replace bcryp with bcrypt
     add 29ca796a27 Fix ssc.gradle
     add b1b73cf834 Upgrade to 3.3.0.M1
     add 87a89564ed integration tests
     add e33d9a6ee1 Remove withNewSession validation
     add f8351f7529 nullable: false constraint to s2-quickstart script
     add 178296a8c7 Add Grails 3.3 functional test
     add 0c59e56bc6 Upgrade to Grails 3.3
     add 3bf17f4792 Set websiteUrl before applying plugins
     add 8f08850124 setting target compatiblity after applying plugins
     add 30325dbb71 Add websiteUrl and issueTrackerUrl to gradle.properties
     add c7e79d8943 Add grailsPublish.gradle
     add daaed5d9fd Run misc tests
     add 6b7156224d Run misc test
     add 1dce89cfbe update travis encrypt
     add fbbe0e6fcb run by default in htmlUnit
     add de9552a397 Run misc-functional tests first
     add adea3762c6 Run gradle tasks separately to see if travis likes it
     add 2aa95ba32d Add v3.3 docs
     add a49f793426 Bump up version number to 3.3.0.M1
     add 4f68e7025a deploy 3.3.0.M1
     add 8b55b18969 deploy only if tag
     add f7c82da71c Don’t generate code for misc functional tests
     add e2aa21f9be Fix tests
     add 98b01e9e60 Revert "Add v3.3 docs"
     add eeb6faba69 republish documentation to clarify installation
     add abcdadd8eb Replace log property with @Slf4j annotation
     add 4259ff7b2a Publish snapshot documentation
     add b263b5be79 Add to main documentation links to 3.1 and 3.2
     add b09e5053f4 Add @Slf4j annotations
     add acbde8a349 Add logging for integration-test-app tests
     add 0cfc23afb5 Mention mongoDatastore
     add 277d2a69e4 Bump up grails version from 3.2.0.M1 to 3.2.0.M2
     add e286c0f2a1 Add missing @Slf4j annotation
     add 09cfe34206 Run travis-build.sh
     add ddde532f88 Move spring securityVersion to gradle.properties
     add 4edc27cb8b Publish BUILD-SNAPSHOT to OJO
     add b10b097ca7 More verbose travis-build
     add ce06ef58be Add @Slf4j annotation
     add 3f9742ead6 Move versions to gradle.properties
     add 571cfe7a9f Move to Grails 3.3.0.RC1 and new testing framework
     add 0c5b145fd0 Bump up Spring Security version to 4.2.3
     add 492dd4de30 don’t link to the https version for v2
     add 2010486532 Unsupported voters should be skipped
     add c61969f61a Merge pull request #504 from tkvw/master
     add 38a31b0206 Lower bcrypt values for faster tests #498 - Switch default bcrypt value based on Environment.current - Updated doc Not done: - Unit/integration test - changelog?
     add cbd382d1c4 Lower bcrypt values for faster tests #498 - Shorter wording in the documentation
     add 2cc84c90ac Merge pull request #500 from YouriAckx/bcrypt-values-for-tests-498
     add ced5a3ae87 Support all link attributes for access tag
     add e926c63ca7 Merge pull request #487 from joemccall86/add-attributes-taglib
     add c62ab9c77a war deployment NPE problem
     add 8f25485f90 Merge pull request #484 from tyagiakhilesh/patch-3
     add 01a63853e1 Remove fragment at lowercaseAndStripQuerystring
     add 80b28b607f Upgrade to 3.3.0 from 3.3.0.RC1
     add 58293001fb Issue #514: Modify functional test scripts to be more generic
     add 59e55e65b5 Set iterations to 1 to match DefaultSecurityConfig
     add 5d7caab767 Simplify build
     add 47e0162967 3.2.0
     add e0141c5016 Back to BUILD-SNAPSHOT
     add 622f01ff03 Define testing support version in gradle.properties
     add b93a6283ec Fix javaxServletApi definition
     add 2b3de893e3 Issue #519: Create a new sample section in the docs with links to examples
     add 672d66fab5 Added the new examples section to `index.adoc` so that it will be included when documentation is generated Issue #519: Create a new sample section in the docs with links to examples
     add b84d2ded7e Updated the description of the `grails-spring-security-params` example to be more accurate Issue #519: Create a new sample section in the docs with links to examples
     add e3924932e1 Remove unused file run_functional_tests.sh
     add 3f5b6f1f3c don’t deploy to OJO
     add ba1f6c11bb Issue #516: Change default SecurityContextHolderStrategy to MODE_INHERITABLETHREADLOCAL to make using the plugin in new threads easier
     add 2758a60578 Fixed tests which broke after modifying contents of `DefaultSecurityConfig` from `SecurityContextHolder.MODE_THREADLOCAL` to `SecurityContextHolder.MODE_INHERITABLETHREADLOCAL`
     add 08aecb5ad3 Issue #521: Informational messages are logged with level "WARN"
     add b2a4e4eb9a Fixes #526.
     add 602de8539e Adding unit tests for stripping off context path returned by linkGenerator.
     add 3edec64bd3 Merge pull request #530 from dustindclark/master
     add a5ee63d3a1 Fixes issue#531, updating spring-security to 4.2.4
     add 374209ff1b Fixes issue#532, updating spring-security to 4.2.4
     add f7516dd259 Fixes issue#531, updating spring-security to 4.2.4
     add fb69f1b8cd Upgrade functional tests to 2.1
     add 93ddfd1850 Refactor Remove htmlUnit ignoreif conditions
     add 6923525dc4 Doc clearCachedRequestmaps to RequestMap samples
     add 0ae4f2e219 Bump up version to 3.2.1
     add cd34d7fc09 Doc Replace 3.2.0.M1 with 3.2.x
     add ed2220b3ce Back to BUILD-SNAPSHOT
     add 0a5cc69f27 Bump up webdriver binaries versions
     add 3dce5c671d Def selenium and geb versions in gradle.properties
     add 4b859ddf59 apply testVerbose to functional module
     add 7c58ce0d3b Add geb.env firefoxHeadless
     add 8f460bc56c Issue #540: `sec.access` taglib is not resolving correctly on a .war deployed on tomcat
     add 2d820d15ca Issue 548: Configuration "filterNames" not working as expected: removal of filters not possible
     add 397ceda47a Issue 546: Create an issue template similar to what is used in the grails-data-mapping plugin
     add ef07c8e579 Bump up Spring Security version to 4.2.7.RELEASE
     add d232e3405b Issue 541: SessionAuthenticationException is not handled in `LoginController.authfail`
     add 30fe53a158 Issue 541: SessionAuthenticationException is not handled in `LoginController.authfail`
     add 763961b35e asciidocMobi,docs,docsMobi to group documentation
     add 2c982772a5 Fix Stable version in asciidoc
     add de8bb3f53e add 3.2.1 release to history
     add a81e6df4c8 Docs how to use snapshot
     add fbcf96d33c publish to OJO
     add 14626e74b8 Bump up version to 3.2.2
     add e489ddc1c2 Back to BUILD-SNAPSHOT
     add 60f8fe70cd Add 3.2.2 release to history
     add 6c47535a5b Issue #503: Registering filter breaks the chain map
     add 89a870edf6 - modified to honor URL patterns to which no filters are applied when registering custom filters
     add ef4ff1d854 Use a constant for `none
     add 5482450c7c Simplify and test noFilterIsApplied
     add dc8ed193ae More exact as casting
     add 527f1aaaa7 add missing new
     add 41fdfa59a6 most verbosity of tests
     add cf4db83d8a Unnecessary serverPort inject
     add 1ff3338d99 don’t throw NPE for /error or /hack/blankPage
     add be91f75b1a Grails params missing values with PUT and PATCH after add spring security core
     add fb37cac7a6 Release 3.2.3
     add 001395462a Back to BUILD-SNAPSHOT
     add 5b843e6a13 Documentation typo: unnecessary word "be"
     add 81a28c83a8 Merge pull request #565 from Qhorin/patch-2
     add f6355de1d6 Change ROLE_USER to ROLE_ADMIN
     add 07d2780bd8 Merge pull request #564 from Qhorin/patch-1
     add 7d94fb78b0 bump up chrome driver to 2.45
     add ae2b17dc94 bump up gecko driver to 0.23
     add 9f48db1a08 Enable caching of downloaded artifacts
     add ec21350233 Simplify travis-build.sh
     add bfb08ee50c clarify Branch structure
     add b2f042678c remove gradleWrapperVersion
     add f039346c35 Bump up Grails version to 4.0.0.BUILD-SNAPSHOT
     add 5c186deabd compatible grailsVersion = '4.0.0 > *'
     add aafb491402 bump up geb version to 2.2
     add 24c3cbcc92 Bump GORM version to 7.0.0.BUILD-SNAPSHOT
     add 0b64ffb90c Bump up spring security core version to 5.1.2.RELEASE
     add 4d7a824c11 Bump up grails testing support to 2.0.0.BUILD-SNAPSHOT
     add 8624122589 boot gradle plugin no longer contains addResources
     add 4290572aca bump up asset-pipeline to 3.0.7
     add 0bee26db62 Bump up Hibernate Core to 5.3.7.Final
     add 4ba4faefc7 bump up hibernate-ehcache to 5.3.7.Final
     add 7f9fb12e3d fix include subprojects
     add 1c70ac9daa bump up to gradle 5
     add 77132c1b56 remove email from Javadoc author
     add aac7ac146d Update @Rollback import
     add da2893869d Update Transactional import
     add 0d7ff0c86e Update ClassPropertyFetcherImport
     add 0f311ad9c5 replace RestBuilder with Micronaut HttpClient
     add 8fe280bf66 remove email from java doc
     add 4c1dc46496 Add as Casts
     add 7bf1ff8503 remove non property access to @EqualsAndHashCode
     add 6e04f6617b replace GrailsParameterMap << with putAll
     add 2407a3426b Update Geb
     add 6dce7e4932 add applicationClass to @Integration annotation
     add d825ac4c3f remove duplicated asciidoctor-gradle-plugin dependency
     add 8768362173 set source and target compatibility to 1.8
     add d4e39bbf9b remove grails.spring.transactionManagement.proxies false
     add d3f897d2e6 remove gradle wrapper of non root projects
     add 41177cb75d remove grails wrapper
     add bba4815f0c wrap boostrap gorm logic in a transaction
     add 68a81402a3 Use Gorm Data service,def dataSource not injected
     add 9d16d9eafb replace PasswordEncoder
     add 77b494e934 Use type
     add 3b2db8244e Use spock’s Unroll
     add 849cc217d2 Temporary ignore tests engaging RestfulController
     add eeca1d60e2 PendingFeature until @Resource its fixed
     add 6387d326b8 workaround truncate tables with domain classes
     add 6391f4ff65 replace final with shared to avoid JDK 11 complain
     add 598be38b80 add open jdk 11
     add 97cb029ecc don’t output standardOut and standardError
     add d13145cacc echo statements to travis-build
     add 259383f1a3 chromeHeadless for every tests run in travis
     add 530c3f200a bump up version to 4.0.0.BUILD-SNAPSHOT
     add f262522979 Revert "PendingFeature until @Resource its fixed"
     add 696d6253f6 Revert "Temporary ignore tests engaging RestfulController"
     add 93c447adda fix tests for Grails 4
     add de759614cf prep for m1 release
     add cf8665791c Merge pull request #570 from grails-plugins/grails4testfixes
     add aadbbe6ba4 v4.0.0.M1
     add 59ed40d639 Revert "fix tests for Grails 4"
     add bc0f99d989 Back to snapshot. Use RC2 of gorm. Revert test fixes
     add fde8c562cf upgrade from grails snapshot to RC1
     add 1f5f788fed upgrade from grails snapshot to RC1 - update docs
     add bc26d99953 back to snapshot, fix root doc template
     add fa7d2282fd 4.0.0.RC1 Release
     add 63c9df951b 4.0.0.RC1 Release - updated chromeDriverVersion to support running on Travis CI - Travis CI build was failing with the message:
     add f6e135b49c 4.0.0.RC1 Release - Travis CI build for 4.0.0.RC1 Release was successful.  Reverting back to `BUILD-SNAPSHOT`
     add 74796e5cff Add fallback attribute to link tag
     add 728af3a44e Incorporate suggestions from ddelponte
     add 11d0ac3317 Remove try/catch from fallback attribute parsing
     add 0a995081a0 Merge pull request #563 from dpcasady/fallback-link
     add 6ad3fd2cec issue-575: UserPasswordEncoderListener not generated by s2-quickstart script in Grails 4
     add 660bc0a70c Issue-579: Some mild improvement to the included login.gsp • adds support for viewing/hiding the password • input fields made slightly wider
     add 4c684e45e3 Release 4.0.0.RC2
     add a44be302cc Issue-574: isFullyAuthenticated() vs IS_AUTHENTICATED_FULLY
     add d8757fa1b2 Issue 566: isFullyAuthenticated() leads to redirect-loop in Grails 3.3.x
     add d2dba81391 Update to Spring Security 5.1.6
     add 326e883e5b Switch to RC1 release for testing support libraries
     add 796c66216c • applied IntelliJ code formatting before fixing tests
     add 1019e521d6 • fixed failing tests • the order of filters has changed and tests were updated to reflect the new order
     add ffcd574aa3 Update Chrome Driver version to fix build error
     add 68ef244b94 Merge pull request #597 from bobbywarner/bobbywarner/fix-tests
     add 202be54f68 Fix ReflectionUtils when configs come from .properties files and need explicit conversion to boolean.
     add 19638f24a0 Merge pull request #581 from sjrd218/fix-ReflectionUtils
     add 9d58621d0c Revert "Issue 566: isFullyAuthenticated() leads to redirect-loop in Grails 3.3.x"
     add d461abcda6 Fix 'Could not find matching constructor ' error when httpMethod is not configured in intercept URL map.
     add 89bf7ac091 Revert "• fixed failing tests"
     add 1e6d4e5f2c use unique anchor
     add c267c48b2d Merge pull request #590 from mauk81/patch-1
     add 6fbf07b933 Use List<String> and as HttpMethod
     add cef0652baf back to BUILD-SNAPSHOT
     add e9fdd2f5bc Parallel test execution
     add 7496c4a2cd Adjust daemon heap size
     add 1a4135e0d8 Enable gradle caching
     add 87d8670c91 remove dist:trusty
     add d8b69bca50 use openjdk8
     add 5a7f626ad0 Update webdriver-binaries gradle plugin
     add 16712ea087 bump up geb to 3.2
     add 99e62efdde bump up selenium to 3.141.59
     add 32e1dc2ce9 bum up geckodriverVersion to 0.26.0
     add c3386b56e1 Set chrome driver 78.0.3904.105
     add 56751010a8 enable gradle daemon
     add d40783c52e bump up grailsVersion to 4.0.1
     add 72a72197dd Use gorm version 7.0.2.RELEASE
     add a39228f608 Set grails hibernate gradle plugin to 7.0.0
     add 69cf4b2e0e bum up asset pipeline to 3.0.11
     add 52788daf69 Set hibernate core to 5.4.0.Final
     add dc6300a0c6 Issue-588: Read messages from injected properties in Authentication Checks
     add 120b2233ea Issue-588: Read messages in X509 closure principal extractor
     add c81ed28cc6 extract variables
     add f5bda5e602 replace RestBuilder with Micronaut HttpClient
     add 20711ecaa9 Merge branch '3.3.x'
     add 4f943341ff Release 4.0.0.RC3
     add 497a6ec684 Back to snapshot
     add 34c43cf75c updated chrome driver to 79.0.3945.36
     add bced6d74b4 Merge pull request #611 from mcroteau/master
     add 6d212240c1 Release 4.0.0
     add bdcfa546b0 back to snapshot
     add d8b16d1438 Fix bootstrap for required tx in hibernate 5.2+
     add e95cbd6bb4 Merge pull request #613 from erichelgeson/master
     add 9150967392 Add change in default strategy to docs
     add 9dab384b34 Merge pull request #608 from grails-plugins/584
     add 3e027dbad6 Update chromeDriverVersion to supported version for TravisCI
     add 2257c7b6df Another attempt at fixing chromeDriverVersion for TravisCI
     add 59e13d8fa0 Fixes #587 switch back to THREADLOCAL as more secure default
     add de758f838d Release 4.0.1
     add 51de2e2bd1 Back to snapshot
     add fcb2ed9892 Remove custom filter that used deprecated class and replace with formContentFilter (#621)
     add 4ab9ad86b0 Release 4.0.2
     add 60e85d004d Back to snapshot
     add 7d5ad1d9d3 add config for switchUserMatcher and exitUserMatcher (#623)
     add be53166633 Update to Spring Security 5.1.13
     add 76d622db9f Fix chromeDriverVersion for TravisCI
     add 40af0a233e Release 4.0.3
     add a15c3d5fe3 Back to snapshot
     add 65223b4992 Avoid tripping the GenericTypeAwarePropertyDescriptor by default (#626)
     add 3698d6a20b Fix chromeDriverVersion for TravisCI
     add 95438c8b49 Fix chromeDriverVersion for TravisCI again
     add 071b036101 Update webdriverBinaries and change chromeDriver to use stable version
     add 3199df414e Add index to username for deletion (#631)
     add e7b8a19725 Remove the usage of version.txt from Gradle build (#633)
     add a28701ad07 Version 4 uses Spring Security 5 now (#636)
     add ff89145c7f Configure Java CI workflow
     add cbe1ac7d05 Remove javaci from branch trigger
     add 5728c2be55 Merge pull request #642 from grails-plugins/javaci
     add aacebabff7 Use chromeDriver versionRegexp instead of hardcoded version
     add b1cbbc4d24 Merge pull request #644 from grails-plugins/chromeDriverVersion
     add de37fbf5e5 Fix directory path for Github Workflow files (#643)
     add 2b867c8dc3 Delete gradle.yml workflow file from actions folder (#645)
     add 10dcfc2862 Setup Changelog workflow to generate release notes (#646)
     add 07609172e7 Update Build Status Badge in README (#647)
     add 82ded00de7 Delete .travis.yml (#648)
     add f107d5387e Delete travis-build.sh (#649)
     add 98c446685a Configure Renovate for automating dependency upgrades (#651)
     add 00782fdefa Rename snapshot from BUILD-SNAPSHOT to SNAPSHOT (#652)
     add a69bab3757 Delete version.txt (#653)
     add fea2c50428 Configure Github Workflow for doing a New Release (#654)
     add 9eba86eb47 Update to Gradle 6.9 and Grails 4.0.13 (#657)
     add 4d7545f407 Publish Artifacts to Maven Central (#658)
     add 299f6b1ce6 [skip ci] Release v4.0.4
     add 5d4f80efd8 Back to 4.0.5-SNAPSHOT
     add 58d10808db Update to 5.0.0-SNAPSHOT
     add 9c558423bf New Improved Issue Template for Github (#671)
     add b776770768 Update dependency net.sf.ehcache:ehcache to v2.10.9.2 (#667)
     add 59f74f957b Update dependency net.sourceforge.htmlunit:htmlunit to v2.56.0 (#668)
     add 02ba9d0b26 Update dependency org.asciidoctor:asciidoctor-gradle-plugin to v1.6.1 (#669)
     add f75cfb3693 Update assetPipelineVersion to v3.3.6 (#663)
     add 8d869f02d9 Restructure example project together (#670)
     add 33ede9996d Update dependency org.asciidoctor:asciidoctorj-pdf to v1.6.2 (#672)
     add 6a1c0e29d7 Revert "Update assetPipelineVersion to v3.3.6 (#663)" (#674)
     add 1a2fa9dd3e Update dependency org.gebish:geb-spock to v3.4.1 (#675)
     add 7417dd9f41 Update dependency org.grails.plugins:spring-security-core to v3.3.1 (#676)
     add 8bd1bd2d3d Update dependency org.seleniumhq.selenium:selenium-htmlunit-driver to v2.52.0 (#677)
     add c714537385 Update dependency org.seleniumhq.selenium:selenium-safari-driver to v3.141.59 (#678)
     add 6dd45f97ca Update references to new repository location (#680)
     add 8a910067d1 Downgrade asset-pipeline to 3.2.4 (#686)
     add 37133c6f34 Update hibernate core to v5.6.4.Final (#682)
     add 0017b21e37 Update to Grails 5 (#687)
     add 11357ac904 Configure Gradle Enterprise (#692)
     add 769a7bb4a8 Update dependency org.grails:grails-gradle-plugin to v5.1.1 (#689)
     add c481003578 Fix Java CI workflow (#694)
     add b536a45dd9 Update spring security to v5.6.1 (#684)
     add 74a8d61783 Update dependency org.gebish:geb-spock to v5 (#690)
     add 2a201faf8d Update dependency cglib:cglib-nodep to v3.3.0 (#664)
     add bf30a59c72 Update dependency gradle to v6.9.2 (#659)
     add f2536e8828 Update dependency org.asciidoctor:asciidoctorj-epub3 to v1.5.1 (#660)
     add b5939b7b0b Update dependency org.seleniumhq.selenium:selenium-safari-driver to v4 (#693)
     add b3d81c1aec Update README.md
     add 84b04abafc Update release-drafter to v5.17.5 (#696)
     add 3199ed586e Update seleniumVersion to v4 (#695)
     add 9b6c4735a9 Update release-drafter/release-drafter action to v5.17.6 (#697)
     add 1077a109f8 Update dependency net.sourceforge.htmlunit:htmlunit to v2.57.0 (#698)
     add 0597b7674b Downgrade Asciidoc (#699)
     add de18ce1692 [skip ci] Release v5.0.0-RC1
     add de7c1567b5 Customize docs build for beta releases (#701)
     add 480aa0b8ae Smart Execute Release Post Build Step (#702)
     add dfdfc3a1e0 Update dependency org.hibernate:hibernate-core to v5.6.5.Final (#700)
     add 7cccbde294 [skip ci] Release v5.0.0-RC1
     add 181b1b05d3 Back to 5.0.0-SNAPSHOT
     add e7a29843e8 Access plguin configuration using getProperty instead of dot-navigation (#704)
     add bc771edf8a Update dependency org.hibernate:hibernate-ehcache to v5.6.5.Final (#703)
     add fb705aa0a8 Update what's new section (#705)
     add b13776bea5 Update seleniumVersion to v4.1.2 (#708)
     add 5598658628 Update dependency org.seleniumhq.selenium:selenium-safari-driver to v4.1.2 (#707)
     add 7e8062111f Update dependency net.sourceforge.htmlunit:htmlunit to v2.58.0 (#711)
     add 938f986a81 Update release-drafter/release-drafter action to v5.18.1 (#710)
     add b1d9837b7c  Fixed "replaced rule for" warning for parameterized controller actions (#452) (#709)
     add 24e1253db7 Update assetPipelineVersion to v3.4.3 (#713)
     add 7c371a4326 Update dependency org.grails:grails-gradle-plugin to v5.1.2 (#712)
     add f678ccd90b Update release-drafter/release-drafter action to v5.19.0 (#721)
     add c07c7f4ee0 Update dependency net.sourceforge.htmlunit:htmlunit to v2.59.0 (#720)
     add 095d56d05d Update grailsTestingSupportVersion to v2.4.1 (#719)
     add 7f1e4b69f9 Update dependency org.grails:grails-gradle-plugin to v5.1.3 (#718)
     add a3846440d9 Update actions/checkout action to v3 (#717)
     add cb03418db4 Update actions/setup-java action to v3 (#716)
     add dff6ee00fb Update spring security to v5.6.2 (#715)
     add abd71e8a85 Update plugin com.gradle.common-custom-user-data-gradle-plugin to v1.6.3 (#714)
     add e44a77de23 Revert "Update assetPipelineVersion to v3.4.3 (#713)"
     add 70f20e594a Use HTTPS links
     add d67e05902f [skip ci] Release v5.0.0
     add 9be5ad6bc1 Back to 5.0.1-SNAPSHOT
     add 039600da10 [skip ci] Release v5.0.0
     add e01f778286 Update dependency org.hibernate:hibernate-ehcache to v5.6.6.Final (#726)
     add 8e08d25039 Fix Java CI Workflow Publish Guide Step (#722)
     add 1ad4e9793a Update dependency org.grails.plugins:spring-security-core to v5 (#723)
     add d6e2aa879c back to snapshot
     add 4fc9ca8b36 Update dependency org.hibernate:hibernate-core to v5.6.7.Final (#727)
     add 20fe76ede8 Update dependency org.hibernate:hibernate-ehcache to v5.6.7.Final (#729)
     add 7fc5596968 Update plugin com.gradle.common-custom-user-data-gradle-plugin to v1.6.4 (#728)
     add c2ab0e8efe Update seleniumVersion to v4.1.3 (#736)
     add 391b6abcf7 Update plugin com.gradle.common-custom-user-data-gradle-plugin to v1.6.5 (#734)
     add a2d7d32254 Update dependency org.seleniumhq.selenium:selenium-safari-driver to v4.1.3 (#735)
     add 499aa3d002 Update assetPipelineVersion (#733)
     add 43f6d28d44 Update dependency net.sourceforge.htmlunit:htmlunit to v2.60.0 (#732)
     add e410168a24 Update plugin com.gradle.enterprise to v3.9 (#731)
     add 6ab4722231 Update assetPipelineVersion to v3.4.6 (#741)
     add 04da22f41b Update hibernate core to v5.6.8.Final (#742)
     add 6cbe5ef3c4 Update seleniumVersion to v4.1.4 (#748)
     add 86f9d1c098 Update dependency org.grails:grails-gradle-plugin to v5.1.4 (#745)
     add 289f397784 Update dependency net.sourceforge.htmlunit:htmlunit to v2.61.0 (#746)
     add 7f25e88e24 Update release-drafter/release-drafter action to v5.20.0 (#749)
     add 0c2358a0f1 Update dependency org.seleniumhq.selenium:selenium-safari-driver to v4.1.4 (#747)
     add e56bc700f0 Update plugin com.gradle.enterprise to v3.10.1 (#744)
     add c03d2fc174 Update hibernate core to v5.6.9.Final (#750)
     add a5fbe12c93 Cleanup build
     add cb6fcd9fde Clean up build
     add 6733a6b159 Fixed Changelog workflow
     add 34ffacd4e0 Update plugin com.gradle.common-custom-user-data-gradle-plugin to v1.7 (#752)
     add 41ae39c348 Update dependency org.asciidoctor:asciidoctorj-pdf to v2 (#753)
     add f30d5d7cfe Update spring security to v5.7.1 (#743)
     add 59d2ee7235 Update Asciidoc plugins (#754)
     add 2258c02d97 Update seleniumVersion to v4.2.0 (#757)
     add 5b599bee23 Update dependency org.asciidoctor:asciidoctor-gradle-jvm to v3.3.2 (#758)
     add 8909e5c26e Update dependency org.seleniumhq.selenium:selenium-safari-driver to v4.2.0 (#756)
     add 7b2c07d199 Update dependency org.seleniumhq.selenium:selenium-safari-driver to v4.2.1 (#759)
     add 1530a5ae83 Update seleniumVersion to v4.2.1 (#760)
     add 369e51570b Update seleniumVersion to v4.2.2 (#766)
     add 944a7002b5 Update plugin com.gradle.enterprise to v3.10.2 (#765)
     add 3fcab0f93f Update dependency org.seleniumhq.selenium:selenium-safari-driver to v4.2.2 (#764)
     add 9c5404eddd Update plugin com.gradle.common-custom-user-data-gradle-plugin to v1.7.2 (#762)
     add b0631d67d7 Update dependency net.sourceforge.htmlunit:htmlunit to v2.62.0 (#761)
     add 9752a7601f Update seleniumVersion to v4.3.0 (#771)
     add 50b2857a66 Update spring security to v5.7.2 (#768)
     add a6de815a41 Update dependency org.seleniumhq.selenium:selenium-safari-driver to v4.3.0 (#770)
     add 50fc234ff6 Update Release Drafter YAML
     add 4ad2696a62 [skip ci] Release v5.1.0
     add 4d05ad7cd0 Back to 5.1.1-SNAPSHOT
     add 6437cbb9e8 Update hibernate core to v5.6.10.Final (#774)
     add 4c3fd33f86 Update spring security to v5.7.3 (#780)
     add e68afbcf0b Update plugin com.gradle.common-custom-user-data-gradle-plugin to v1.8.1 (#779)
     add 8fa6ea888b Update seleniumVersion to v4.4.0 (#777)
     add ab23eb1599 Update dependency net.sourceforge.htmlunit:htmlunit to v2.64.0 (#775)
     add bd036ce4cc Update dependency org.seleniumhq.selenium:selenium-safari-driver to v4.4.0 (#778)
     add d36e7e2243 Update seleniumVersion to v4.5.0 (#784)
     add ea825ede95 Update hibernate core to v5.6.12.Final (#783)
     add cf594c9311 Update dependency net.sourceforge.htmlunit:htmlunit to v2.65.1 (#782)
     add 189809c59f Update plugin com.gradle.enterprise to v3.11.2 (#776)
     add 9940550365 Update plugin com.gradle.common-custom-user-data-gradle-plugin to v1.8.2 (#788)
     add 607b66d072 Update dependency gradle to v6.9.3 (#787)
     add cff6a42db2 Update release-drafter/release-drafter action to v5.21.1 (#785)
     add e09a0e8696 Update dependency org.gebish:geb-spock to v6 (#786)
     add 60114394c8 Update assetPipelineVersion to v3.4.7 (#781)
     add 83c0a21401 Update dependency org.grails.plugins:spring-security-core to v5.1.0 (#773)
     add b22aa6e35a Update spring security to v5.7.4 (#789)
     add 2715a511e0 Update dependency org.seleniumhq.selenium:selenium-safari-driver to v4.5.3 (#791)
     add 0fd5fe106f Update seleniumVersion to v4.5.3 (#790)
     add c2e9d14e01 Update dependency net.sourceforge.htmlunit:htmlunit to v2.66.0 (#792)
     add 56f4d2f607 Update spring security to v5.7.5 (#797)
     add 3d3934df65 Update plugin com.gradle.enterprise to v3.11.3 (#796)
     add cb22eaf5cd Update dependency org.hibernate:hibernate-ehcache to v5.6.13.Final (#799)
     add 19a7b5581a Make testsuits run again (#794)
     add 19eced6479 Use UrlPathHelper to resolve request URI (#806)
     add d3a0835fd6 Update plugin com.gradle.enterprise to v3.11.4 (#805)
     add d175d72384 Update seleniumVersion to v4.6.0 (#802)
     add d23ff9d760 Update hibernate core to v5.6.14.Final (#800)
     add bb87027475 Update dependency org.seleniumhq.selenium:selenium-safari-driver to v4.6.0 (#801)
     add ab1f837dc7 Update AbstractFilterInvocationDefinition - To strip context-path from request URI (#807)
     add 3cdbff78d4 Upgrade to Grails 5.2.5 (#808)
     add 5fe64c76ab [skip ci] Release v5.1.1
     add b3fd54fdfa Back to 5.1.2-SNAPSHOT
     add 717fc71401 Update dependency org.grails.plugins:spring-security-core to v5.1.1 (#811)
     add dceb7b5b00 Update dependency gradle to v7.5.1 (#803)
     add 5b034f0520 Update dependency org.hibernate:hibernate-core to v5.6.14.Final (#809)
     add 1a58b7339e Update dependency org.seleniumhq.selenium:selenium-api to v4.6.0 (#812)
     add c454a6cfce Update dependency org.seleniumhq.selenium:selenium-chrome-driver to v4.6.0 (#813)
     add f2098c940a Configure dependabot patch upgrades
     add b651237b61 Update dependency org.seleniumhq.selenium:selenium-support to v4.6.0 (#816)
     add 2738b3d247 Update dependency org.seleniumhq.selenium:selenium-remote-driver to v4.6.0 (#815)
     add 8032c1be99 Update dependency org.seleniumhq.selenium:selenium-firefox-driver to v4.6.0 (#814)
     add d2682beadf Update dependency org.grails:grails-gradle-plugin to v5 (#823)
     add 59772236e2 Trigger Java CI Workflow for 3.3.x branch
     add b53e0b773c Update dependency net.sourceforge.htmlunit:htmlunit to v2.67.0 (#841)
     add 3573a69909 Update spring security to v5.8.0 (#842)
     add fba4e6babe #838 Use grails-bom to get deps and hide internal deps from users (#855)
     add 0a7cd27bcf Update dependency gradle to v7.6 (#846)
     add dbfa39f9d4 Update dependency org.seleniumhq.selenium:selenium-api to v4.7.2 (#847)
     add f5a8f033f3 Update dependency org.seleniumhq.selenium:selenium-chrome-driver to v4.7.2 (#848)
     add b123982efb i18n: Update zh_TW (#840)
     add e4c3f4f5f4 Update dependency org.grails.plugins:hibernate5 to v7.3.1 (#857)
     add e610b9f5ab Update spring security to v5.8.1 (#858)
     add 2d0c09b1a1 Update dependency org.seleniumhq.selenium:selenium-firefox-driver to v4.7.2 (#850)
     add 678927cd7a Update dependency org.seleniumhq.selenium:selenium-remote-driver to v4.7.2 (#851)
     add 4bd46befee [skip ci] Release v5.2.0
     add eb59ea1ad2 Back to 5.2.1-SNAPSHOT
     add b84fe0b841 Update plugin com.gradle.enterprise to v3.12.1 (#863)
     add ebd99741a4 Update seleniumVersion to v4.7.2 (#864)
     add ae620cb9ad Update dependency org.grails.plugins:spring-security-core to v5.2.0 (#860)
     add 73398e0024 Update dependabot.yml
     add eaa335e1df Update renovate.json
     add 462706484c Update selenium monorepo to v4.7.2 (#877)
     add 2f424ec382 Update plugin com.gradle.enterprise to v3.12.2 (#881)
     add d9f3e88188 Update release-drafter/release-drafter action to v5.22.0 (#880)
     add ab72165e22 Update dependency net.sourceforge.htmlunit:htmlunit to v2.69.0 (#878)
     add c2614ef343 Update dependency org.grails:grails-gradle-plugin to v5.2.5 (#889)
     add c3f1c2b6a6 Update dependency org.grails:grails-gradle-plugin to v5.2.5 (#888)
     add 14f9752ada Update hibernate core to v5.6.15.Final (#886)
     add fc05ad1553 Update plugin com.gradle.enterprise to v3.12.3 (#885)
     add 7cad833fdd Update selenium monorepo to v4.8.0 (#884)
     add 909ff5dfed Update dependency net.sourceforge.htmlunit:htmlunit to v2.70.0 (#883)
     add c5c9397d21 [skip ci] Release v5.2.1
     add 32ac6b351d Back to 5.2.2-SNAPSHOT
     add 141b44ef83 Update dependency org.grails.plugins:spring-security-core to v5.2.1 (#893)
     add ebce56d4e7 Update dependency org.grails:grails-gradle-plugin to v5.3.0 (#892)
     add 890ebacf10 Update dependency org.grails:grails-bom to v5.3.2 (#887)
     add b2b61a4b2d Fix typo (#899)
     add 5d35434434 Update dependency io.github.gradle-nexus:publish-plugin to v1.3.0 (#897)
     add 4e05e9e245 Update webdriver settings (#906)
     add 855f51a2c4 Update plugin com.gradle.common-custom-user-data-gradle-plugin to v1.11.1 (#904)
     add 4e75cbef9a Update spring security to v5.8.5 (#896)
     add 1ddfa6fd7e Update release-drafter/release-drafter action to v5.24.0 (#895)
     add f31965ca6d Update plugin com.gradle.enterprise to v3.14.1 (#900)
     add d2c8fed46d Update dependency gradle to v7.6.2 (#898)
     add e6d1673544 Update selenium monorepo to v4.11.0 (#894)
     add 99dca1b511 Update dependency org.grails:grails-bom to v5.3.3 (#908)
     add 48398c2360 Added support for new Argon2PasswordEncoder (#902)
     add 09c822e28d [skip ci] Release v5.3.0
     add 818517c109 Back to 5.3.1-SNAPSHOT
     add 6d40f3f96d Publish build-scan when CI flag is present
     add 121f0cadcb Improvements to Java CI Workflow (#914)
     add 6348425078 Update to 6.0.0-SNAPSHOT
     add c561d9d12e Update Minimum Source Compatibility to Java 11
     add d0e3c2d4df Update Java CI Workflow to use Java 11
     add 1f3fa36d0c Update Release Workflow
     add 084ebfcbc5 Update release-notes.yml
     add fa9a6a69b2 Update README.md
     add e1bd084291 Update to Grails 6 (#915)
     add 3f954eecb2 Update plugin io.spring.dependency-management to v1.1.3 (#917)
     add 561fd017c4 Update dependency org.grails:grails-gradle-plugin to v6 (#912)
     add fe4e997afb Update plugin com.github.erdi.webdriver-binaries to v3.2 (#918)
     add 53896ac040 Update dependency org.grails:grails-gradle-plugin to v6 (#913)
     add d697a18851 Update dependency org.grails.plugins:spring-security-core to v5.3.0 (#911)
     add b032d6e4bd Update dependency org.grails.plugins:hibernate5 to v8 (#909)
     add ea800412e0 Update build.gradle (#919)
     add 8d248e701e Improve Gradle docs task (#923)
     add 68e3a01bce Update spring security to v5.8.6 (#921)
     add 2d6d5b67e1 Re-write plugin scripts as ApplicationCommand (#920)
     add 044d886db5 Update documentation
     add a0b3ecd470 Update documentation to use the new way to run scripts
     add ea6b7a082d Update documentation
     add 7e6a34eddf Update CreateReleaseDropDownTask.groovy
     add afe616d081 Update Gradle asciidoctor-gradle-jvm plugin to 4.0.0-alpha.1 (#924)
     add 951ccb83c7 Use GitHub Root index.html
     add c068ed0c29 Update gradle.yml
     add edc363af4b Update gradle.yml
     add 02384fa1ba Update CreateReleaseDropDownTask.groovy
     add f944ef718b [skip ci] Release v6.0.0
     add 5fd200aec0 Back to 6.0.1-SNAPSHOT
     add dfaf04efd5 Update dependency org.grails.plugins:spring-security-core to v6 (#925)
     add a9c562f566 Update docs.gradle
     add 629cf9a169 Update selenium monorepo to v4.12.1 (#926)
     add 9c698f6fc1 Update selenium monorepo to v4.13.0 (#932)
     add 289a3e3484 Update spring security to v5.8.7 (#931)
     add 129fefb928 Update plugin com.gradle.enterprise to v3.15 (#930)
     add 89c92045d5 Remove the 'logback.xml' file from this plugin, as it gets included in the package and unintentionally gets used by applications. (#928)
     add 3d28ca97fd Update plugin com.bertramlabs.asset-pipeline to v4.4.0 (#935)
     add 4b972277f1 Update plugin com.gradle.common-custom-user-data-gradle-plugin to v1.11.2 (#929)
     add 9e1966f4c5 Update dependency com.bertramlabs.plugins:asset-pipeline-gradle to v4.4.0 (#934)
     add 7d14cfa654 [skip ci] Release v6.0.1
     add bb685a14f6 Back to 6.0.2-SNAPSHOT
     add 37710ae724 Update dependency org.grails.plugins:spring-security-core to v6.0.1 (#936)
     add 451091a445 Update dependency org.grails.plugins:hibernate5 to v8.0.1 (#941)
     add 724a67e0ef Update plugin com.gradle.enterprise to v3.15.1 (#940)
     add fbbfdfd843 Update dependency gradle to v7.6.3 (#939)
     add ede417d230 Update grailsTestingSupportVersion to v3.1.0 (#937)
     add 908679f92c Update plugin com.gradle.common-custom-user-data-gradle-plugin to v1.11.3 (#938)
     add faeacd9796 Update S2QuickstartCommand.groovy (#942)
     add 934f446221 Update actions/checkout action to v4 (#927)
     add 10cbbe4b01 Update actions/checkout to v4 (#944)
     add fc00f0fec2 [skip ci] Release v6.0.2
     add 4edd0cc6e6 Back to 6.0.3-SNAPSHOT
     add 2d43a76de7 Update selenium monorepo to v4.14.0 (#946)
     add c0391b7a34 Update dependency org.grails.plugins:spring-security-core to v6.0.2 (#945)
     add a1af4ef7a9 Update spring security to v5.8.8 (#948)
     add 9360fc26af Update release-drafter/release-drafter action to v5.25.0 (#949)
     add 7e702c8789 Update selenium monorepo to v4.14.1 (#947)
     add ccf2e9355e Update Email Address
     add 2e8eba1ceb [skip ci] Release v6.0.3
     add bc8de0b7ce Back to 6.0.4-SNAPSHOT
     add ce09d6c2af Update plugin com.gradle.common-custom-user-data-gradle-plugin to v1.12 (#953)
     add 4c90e23128 Update dependency org.jsoup:jsoup to v1.16.2 (#952)
     add 9c33cdf672 Update dependency org.grails.plugins:spring-security-core to v6.0.3 (#951)
     add 7708ccdb46 Update selenium monorepo to v4.15.0 (#955)
     add d9824d5bb1 Update plugin org.grails.grails-web to v6.1.0 (#961)
     add 68e1794f59 Update dependency org.grails:grails-gradle-plugin to v6.1.0 (#960)
     add 62def91e8f Update dependency org.grails:grails-gradle-plugin to v6.1.0 (#959)
     add 80841a8d51 Update grailsGradlePluginVersion to v6.1.0 (#958)
     add 57f7933d00 Update plugin org.grails.grails-gsp to v6.1.0 (#957)
     add 5e458dfedf Update dependency org.grails:grails-bom to v6.1.0 (#956)
     add b091005bd0 Add version 5.x.x and 6.x.x to docs landing page. (#965)
     add a97bc0a694 Remove VERSION from documentation landing page template as it's only replaced on releases, but docs are sometimes published without a release which results in broken links. (#966)
     add 9eaef1e9a1 Add implementation scoped dependency on org.grails.plugins:async as grails.async.web.AsyncGrailsWebRequest is used in the project. (#967)
     add e4672f7a47 Change to get a clean jar artifact filename without the -plain suffix. (#963)
     add 5c5411f2d6 Fix that the wrong version is declared in the grails-plugin.xml file. (#962)
     add 4298166a44 Move the java version compatibility declaration inside the java task. (#964)
     add a7bdbcc3f9 Update gradle.properties
     add 021ffa91a6 [skip ci] Release v6.1.0
     add 6d6af50eb1 Back to 6.1.1-SNAPSHOT
     add ccb1ba2d15 Fix documentation (#973)
     add 40d2b921a8 Update actions/setup-java action to v4 (#975)
     add 7e3e318898 Update dependency org.jsoup:jsoup to v1.17.1 (#974)
     add 3bec108242 Update plugin io.spring.dependency-management to v1.1.4 (#969)
     add 00004e4118 Update dependency org.grails.plugins:spring-security-core to v6.1.0 (#968)
     add eb7c832042 Update selenium monorepo to v4.16.0 (#978)
     add d59481d8ba Update plugin com.gradle.common-custom-user-data-gradle-plugin to v1.12.1 (#977)
     add 69231a40fd Update selenium monorepo to v4.16.1 (#979)
     add 5b4812a626 Update plugin com.gradle.enterprise to v3.16 (#976)
     add 1f24a51e27 Update dependency org.grails.plugins:hibernate5 to v8.0.2 (#981)
     add 62c052d378 Update grailsTestingSupportVersion to v3.1.1 (#980)
     add 97d885edf1 Update plugin org.grails.grails-plugin to v6.1.1 (#984)
     add f1d0d20189 Update dependency org.grails:grails-bom to v6.1.1 (#983)
     add f2bb17f426 Groovy 3.0.19 compatibility (#982)
     add dfe008db15 fix: add generic types to return value to allow static compilation (this class was missed in #982) (#991)
     add fd62d2781e Update plugin com.gradle.enterprise to v3.16.1 (#990)
     add 3352d37de9 Update plugin org.grails.grails-web to v6.1.1 (#989)
     add 57c0cef46e Update spring security to v5.8.9 (#992)
     add 555e2ee4c7 Update plugin org.grails.grails-gsp to v6.1.1 (#988)
     add 26e3626a2b [skip ci] Release v6.1.1
     add a75648a380 Back to 6.1.2-SNAPSHOT
     add a5991a5d21 fix(deps): update dependency com.bertramlabs.plugins:asset-pipeline-grails to v4 (#993)
     add cb17006871 Remove deprecated usage of `NavigableMap.NullSafeNavigator` (#999)
     add 61894cc058 chore(deps): update dependency org.grails.plugins:hibernate5 to v8.0.3 (#998)
     add 47b2991039 fix(deps): update dependency org.grails:grails-gradle-plugin to v6.1.2 (#986)
     add 8786567e45 fix(build): Update Build and CI (#1005)
     add ac5162f22a Change version
     add 5818336b4f Grails 7
     add 4525970461 Merge pull request #1015 from bkoehm/bkoehm.7.0.x
     add fb92b0d0ef Restore shell scripts
     add 6c3a43a0ff Merge pull request #1019 from codeconsole/7.0.x-restore-scripts
     add 27ae7c1113 HashCodeHelper in groovy 4 is still in org.codehaus namespace
     add 82b9e94f3d Merge pull request #1020 from codeconsole/7.0.x-fix-scripts
     add 75f5e19bde --refresh-dependencies
     add cfcdbd8cc5 Temporarily ignore test
     add 90ff8b921f Merge pull request #1021 from codeconsole/7.0.x-fix-tests
     add de4b8d31dd --refresh-dependencies
     add 5ee8c340ce Merge pull request #1022 from codeconsole/7.0.x-fix-tests-2
     add fa10e4a482 Fix locale for authfail to be consistant with g:message FormatTagLib.resolveLocale
     add 0314580b16 Merge pull request #1024 from codeconsole/7.0.x-fix-authfail-locale
     add 3af0337b90 Restore shell scripts
     add 0b8ef6d324 Merge pull request #1023 from codeconsole/6.1.x-restore-scripts
     add 523bd5666b Allow setting of FilterRegistrationBean according to documentation. Fixes #1027
     add 202c59a432 Merge branch '6.1.x' into 7.0.x
     add e5594b48df Register SiteMesh 3 filter on security chain if detected.
     add 18115e14c6 set username to grails-build
     add d387583627 Merge pull request #1028 from codeconsole/6.1.x-workflow
     add f768c26710 Merge pull request #1029 from grails/6.1.x
     add 0959844573 Move sitemesh registration location
     add 31c525f3f4 Fix locale for authfail to be consistant with g:message FormatTagLib.resolveLocale
     add c94ca5d1d4 Merge pull request #1025 from codeconsole/6.1.x-fix-authfail-locale
     add 6ac0d9986b Filter order is completely different in Spring Security 5
     add 99e2d2ed8a Fix integration test
     add cb8251d1da Merge pull request #1031 from codeconsole/6.1.x-fix-filter-order
     add cc4e5d2f39 add sdkmanrc
     add a74684c663 Merge branch '6.1.x' into 7.0.x-6.1.x-merge
     add d5748a3f32 Java 17
     add 5ae99b3a14 Spring Security 6
     add b0af3761b4 Ensure sitemesh 3 is in correct place in filter chain
     add 84fac4c608 Merge pull request #1032 from codeconsole/7.0.x-6.1.x-merge
     add a00c1a4746 Temporarily disable javadoc
     add ddd8347f22 Temporarily disable javadoc
     add d88550cf52 Use containsBean in case sitemesh is not installed
     add 5fbe185638 remove commons-lang
     add 5f1ded31e1 commons-text 1.12.0
     add 896ec4b5da remove unnecessary configuration
     add d27a57fa59 Reuse existing sitemesh filter for decoration
     add 0a79bd9acc add jline for shell commands
     add 5b20efd936 change jline to compileOnly
     add c7e7725cf7 Set filterChain position to match default position used by Spring Security. Fixes #1033
     add e3accd924c Update README.md
     add d586c81805 Always run the tests
     add 14f6164b2a Use grails-bom
     add 704bf817da cleanup
     add ce3e10b518 Update SecurityFilterPosition.java to match Spring Security 6.1
     add 1f87d94531 fix: Make `SecurityFilterPosition` a public class (#1037)
     add 165551f5ea [skip ci] Release v6.1.2
     add 9f69106606 set nexusUrl directly like in grails-core
     add ec85a0df66 Merge pull request #1040 from grails/update-nexus-url
     add 44e316c9f3 set nexusURL to string which is later converted to URI
     add 59d2e14462 Merge pull request #1041 from grails/adjust-nexusURL
     add c00cc04a92 chore: back to snapshot version after failed release
     add f8c732a7a0 ci: change github account in workflow
     add 8ed9c61a89 fix(deps): update dependencies for release
     add 282acd3e8e Merge pull request #1043 from grails/pre-release-6.1.2
     add b6011d1112 build: fix sonatype nexusUrl problem (#1042)
     add c5be7940a2 [skip ci] Release v6.1.2
     add efd1e60485 chore: Bump version to 6.1.3-SNAPSHOT
     add 020d16d2aa Merge branch '6.1.x' into merge-6.1.x-into-7.0.x-12-6-2024
     add 7d6cfc531f add bytebuddy version
     add 091859eb61 Merge pull request #1044 from grails/merge-6.1.x-into-7.0.x-12-6-2024
     add 7b39b36729 Merge branch '7.0.x' into 7.0.x-grails-bom
     add 5bda9c42f8 Merge remote-tracking branch 'codeconsole/7.0.x-grails-bom' into 7.0.x
     add bf3f0e32e7 Use `compileJava.options.release` to set the java version
     add 2fde71fd25 Use asset plugin version 5.0.4
     add d4bb98b050 Switch to `ContainerGebSpec`
     add a1da663ae4 Remove GebConfig.groovy files
     add 891308ef15 Remove ReportingGebSpec
     add dc24f94612 add `--continue` so test runs don't immediately fail.
     add ea3efe30d9 Do not fail-fast if one of the gradle checks fails
     add b6de3cb0fc Fix layout name
     add 1d1ec55aae Adding missing events plugin
     add 212dd3a0e4 Test reset cleanup
     add 4ae969c365 Change connection init to download()
     add 720d9c3815 remove geb.env
     add 5c69edc635 Update url for ContainerGebSpec
     add 624e84bd37 Apply sitemesh filter after the FormContentFilter
     add 360eaf280d Ensure data is built and not rolled back
     add 9c90a445be Remove going to index
     add 62c063af23 fix(deps): remove all `micronaut-inject-groovy dependencies`
     add 2b6313d039 fix(deps): add `gsp` dependency to test app
     add 8129ef1a74 fix: add default 'main' layout to plugin
     add d3ce67412a test: use `setup()` fixture method in test
     add 04c5c872a2 test: add views in test app
     add 81a805fe02 Merge pull request #1046 from grails/matrei/jdaugherty-7.0.x
     add eaa0ca6445 sdkmanrc
     add 838aa58587 Switch to grails/github-actions
     add fa5fd1c30c Switch to grails/github-actions
     add 6bf9af6869 Switch to grails/github-actions
     add e9789a7e67 [skip ci] pre release 7.0.0-M1
     add 19f440f816 [skip ci] Release v7.0.0-M1
     add 285cb3bb8d [skip ci] fix java version
     add 1b79aef14d [skip ci] force publish to update dependencies
     add 2e73201b37 chore: Bump version to 7.0.0-SNAPSHOT
     add ebb578276f build: remove version catalog usage (#1053)
     add 34aa90fe34 build: rename root project to `grails-spring-security`
     add 345b734f3c build: rename `plugin` directory to `plugin-core`
     add 76818c11ba initial checkin
     add 74d3de230a STS project fixes
     add 794534517a STS project fixes
     add 0b619e517b upgrade to 1.3.3 and installed functional test plugin to allow editing functional tests as Groovy source
     add f64f17bbbd more functional tests and a few fixes found running them
     add 6040cf9e2b made private methods protected for subclassing
     add 6f0b22c8f1 bug fix for checkbox - image wasn't resolving when using application-override controller
     add 431dc1cf01 STS project updates
     add 622aed01e7 not used
     add 490644258b jQuery dataTables plugin
     add 4f830c4f8f plugin docs
     add 0c35fadfb5 a few last fixes and updates
     add e6589fc0dd override script and templates
     add 97d5b7f24f bug fix - wasn't setting packageDeclaration in the template attributes
     add 5367cc41ec it's "s2ui-override auth" not "s2ui-override login"
     add 763ad29757 bug fix for 'hidden' button rendering issue on Mac
     add 0bb0896328 v0.1.1 release
     add a1f3a72908 GRAILSPLUGINS-2479
     add 511d3fa2fc v0.1.2 release
     add 97978db255 Fixing issue with account still being locked after successful validation by flushing the save of the user object
     add 02500d22bf Merge pull request #4 from PeterBell/master
     add 3299d2d498 BugFix for GRAILSPLUGINS-2358 - dynamic finder and property access are generated by the springsecurity entries in Config.groovy
     add 36c5f66592 Merge pull request #2 from kosta-grails/master
     add e3446da6d6 small cleanup
     add 62261c4e96 not using Maven for dumbster jar
     add d5e0308637 Proposed changes in order to allow s2-ui users to customize password strength configuration. I took care of backward compatibility. If no configurations are made in Config.groovy, then the original behavior will prevail. But if one wants to change, it can be made by adding these few lines to Config.groovy, filling up properties to acomplish their needs :  grails.plugins.springsecurity.ui.password.minLength=6  grails.plugins.springsecurity.ui.password.maxLength=10  grai [...]
     add 3914f6c58a Merge pull request #5 from tdsis/patch-1
     add 55cd302de5 cleanup
     add 3ad184f01e update to 2.0
     add 59980e6f58 displaying output using events to be consistent with 2.0
     add 850dc6dc8d GPSPRINGSECURITYUI-19 added plugin attribute
     add 3f06543dec GPSPRINGSECURITYUI-27 added option to not encrypt password
     add ab4b201d68 GPSPRINGSECURITYUI-24 removed unnecessary 'def grailsApplication'
     add 615e96f24e .classpath and .project updates
     add 2773f4e2a2 GPSPRINGSECURITYUI-25 some refactoring and also added tests and docs
     add 0068a93840 GPSPRINGSECURITYUI-39 don't use System.exit()
     add bc6b3b8b46 license update
     add b590ebad48 using Integer instead of int to avoid autoboxing NPEs
     add d5e0378788 GPSPRINGSECURITYUI-8 removed explicit dependencies and changed to just being documented
     add c04f9559ff GPSPRINGSECURITYUI-28 changed GET of register action to return 405 error using allowedMethods; also reworked workflow to be transactional and have better error handling
     add bfb4456edb cleanup
     add 4602de6134 looking up class and property names instead of hard-coding the defaults
     add 67b3db50bd added docs and .settings folders
     add a083030f5e GPSPRINGSECURITYUI-16 and GPSPRINGSECURITYUI-41 - fixed GSPs to work with the resources plugin if it's installed
     add 76a74afcae make sure there's no space between words in non-html emails
     add d9d479d2c0 v0.2 release
     add 16b818d188 doc updates for v0.2 release
     add e967c48be2 license updates
     add bb8fe5b72c updated to use spring-security-core 2.0
     add e9247c3252 unused
     add 6c4d06665a updated packages to be consistent with the core plugin
     add f7b40df558 added scripts
     add 38af613ff4 cleanup
     add db0a30597b not used
     add e61c1448e3 removed stacktrace file
     add d4595018d2 JS and CSS updates
     add fd5c1cc71b UI tweaks
     add 6c04fac80d fixed doc url
     add f88973d821 updated to use spring-security-core 2.0
     add b7474d9293 test updates
     add 2e46f97332 converted to new toc.yml format
     add 426263e98c updated plugin versions
     add ec62ee7812 updates for encodePassword default value change to false
     add 55bf627452 GPSPRINGSECURITYUI-46
     add 61499d82c6 manual merge of https://github.com/grails-plugins/grails-spring-security-ui/pull/16
     add 099d5de325 1.0-RC1 release
     add ca24a8cba8 Fix for deprecated classes in Grails 2.0+
     add 45de068baa Merge pull request #25 from cesarizu/master
     add ab6a58ddfb Create README.md
     add d9e86dbae4 fix link
     add 906517d5dc upgrade dependencies to more recent versions
     add 474b35c4e7 add Travis build
     add cbeb1e7c72 add Grails wrapper
     add 9d017cefcd Add travis build status
     add 9ef9e2448e Merge branch 'master' of github.com:grails-plugins/grails-spring-security-ui
     add 42b4d7b5d9 add grails repo credentials config for travis
     add 5fff2d41a2 fix path to docs
     add 194482d848 Update jquery version
     add 62d3e79de2 Merge branch 'master' of github.com:grails-plugins/grails-spring-security-ui
     add 7ace9348e6 Release 1.0 RC2 compatible with Grails 2.4
     add 1d89f0357b Fix Quieries to use Criteria
     add ba0b57599f Merge remote-tracking branch 'origin/GPSPRINGSECURITYUI-23'
     add 58831fae00 Fix some bugs after code review with head branch
     add d4960fca75 Fixed some bugs after code review with latest diff.
     add 12fb145a9c Minor fix to use the var max instead of the param value which has already been converted
     add a0494e9ab3 Merge remote-tracking branch 'origin/GPSPRINGSECURITYUI-23'
     add f1cc481acd Fix casing and add a comment around nested Domain obj queries
     add 0671fec0b2 Merge remote-tracking branch 'origin/GPSPRINGSECURITYUI-23'
     add af3845aa6d Merge pull request #31 from amondel2/master
     add 734b70587b license updates
     add 42157d587d updated issueManagement url
     add 2586761ae3 passwords are hashed, not encrypted
     add 15631f2e9f update to Grails 2.4.5
     add 0e1ec6bd6b cleanup
     add 06876dc33c cleanup
     add ea7cd7512c removed support for OpenID
     add b8d37e9fee updated plugin dependencies, and using spring-security-core 2.0.0
     add 8f95d8a214 moved resources to grails-app/assets to work with asset-pipeline
     add a57a2ad627 renamed to ensure unique
     add 47df115137 removed famfamfam plugin and included the images that were used
     add dab67c1843 updated DataTables to v1.10.10
     add 8fcd9c886a updated jQuery Form plugin to v3.51.0-2014.06.20
     add f18c8e47fc updated jGrowl to v1.4.3
     add 8f8e310d5c using non-styled checkboxes
     add 1ab48c223b removed old jQuery Date Input plugin, using jQuery UI instead
     add 0d07bef04d removed the jquery and jquery-ui plugins, including the .js files instead
     add 6b61250359 converted to using asset-pipeline instead of resources
     add 316cfb9ad2 CSS updates
     add 5e8094ad70 moved all of the Ajax login code from the layout to _ajaxLogin.gsp and updated logout to use post instead of get
     add 9e56419e46 redisplaying the config after merging to display all of the values
     add 482e62ef37 cleaned up the s2-ui-override script
     add 953176f88b made the layout configurable in the GSPs
     add c8546ad138 made the switch-user role name configurable
     add 8bab3f8672 updated SecurityInfoController. implemented the secureChannel page, made pluralization consistent
     add f411fd7fc6 added 'strategy' interfaces that the service implements to allow for more fine-grained overriding of functionality. added default implementations of each strategy that are registered as Spring beans and which simply delegate to the service (with the exception of MailPluginMailStrategy which delegates to the mail plugin's mailService)
     add ca4ec0a62c refactored the controllers to be much more DRY
     add 18d557b6da refactored the GSPs to be much more DRY
     add da4f3f99dd reworked the service to implement the strategy interfaces and handle most of the business and persistence logic
     add 74ff66c4d6 converted to Spock
     add f313c2c584 changed from using a script to build test apps to including a real test app
     add d0303e437d fixes and updated for the register workflows, plus some minor updates
     add 9d8db76f1c changed version to 1.0-SNAPSHOT
     add 005d3dd011 updated the Travis build
     add 4290de0e75 updated the security info GSPs
     add ceff58f234 it doesn't make sense to make the layout configurable in auth.gsp since it's only used when copied to the application
     add 5dcbd16637 minor GSP updates
     add 7b9ba05806 doc updates
     add 779a9d5124 test fix
     add 23f844a373 typo
     add bcc1f89f54 test fix
     add cf356ca633 oops
     add c0487ee74c cleanup
     add b38ef7b98d tests are failing due to a bug in the acl plugin; released 2.0.1 and updated to use it
     add 29d3a3efb5 test fix
     add 3de23e0d80 don't delete the whole target directory between runs, need to retain the previous run's test reports
     add 8bd1c072a0 updated to Grails 3
     add f16c2415b6 test fix
     add 4fa0668a5f 3.0.0.M1 release
     add 988dfe9145 cleanup
     add 4d2652726e using CompileStatic
     add f3b0dacf3d standardized .gitignore, build.gradle, and gradle.properties across plugins using common includes updated to Grails v3.0.11, Gradle 2.10 minor build cleanup
     add c5819a77f9 fixed build property setting
     add 0848bfb96c added .mobi generation
     add 60492d0380 license updates
     add 5190771df9 converted SpringSecurityUiInterceptor from a Grails interceptor to a regular HandlerInterceptor bean to avoid having to deal with breaking binary compatibility changes in 3.0.15/3.1.x - fixes #45
     add f5a3aa9d14 cleanup
     add 4f3e1c098d updated to latest spring-security-core and asset-pipeline
     add 44efce3b13 explicitly using 5.0.x versions of hibernate4 plugin and grails-datastore-* dependencies so the compiled RegistrationCode domain class works in 3.0 and 3.1; fixes #41
     add e5a1d086d5 cleanup
     add 744604c78d small fix - call rollbackAndDiscard regardless of log level
     add 882bc6f360 3.0.0.M2 release
     add c8bff7f90b Fixed https://github.com/grails-plugins/grails-spring-security-ui/issues/37 - Error Processing GString Template Engine .
     add 0669d9a185 Fixed "No such property: grails for class: groovy.lang.Binding" in jquery-ui.css.
     add c87650401c Merge pull request #40 from donbeave/assets_fix
     add 81db5e98f5 Update README.md
     add e9bf56647f don’t generate .mobi file
     add 87cca1a6ac publish-docs.sh with travis
     add 6a2c49831c Commit images
     add ef2c83d8ae create folder acls
     add 43677ea98d uncomment git rm
     add 9a6b804b21 add mkdir
     add 3f62ceb725 Travis build deploy only if tag
     add 0739243877 Release to OJO
     add c98ad4ce16 travis encrypt
     add dddc7f7a62 Fix indentation
     add ed4621e125 Add OJO repository
     add 78d5bdc558 Add settings.gradle and gradle-all instead of -bin
     add a70c40da57 Use rootProject in settings.gradle instead of project
     add 74c180f915 Bump up asset pipeline version
     add 4aea8ba3de Reference OJO repositories in functional-test-app
     add c549424a79 Add link to documentation
     add 7724b61894 Link docs to latest
     add 308ab2c6fc s/asset-pipeline/com.bertramlabs.asset-pipeline/
     add 6da87e3e2e Set version to 3.1.0.BUILD-SNAPHOST
     add abd7656e50 Multi-project build
     add c12b0815ee Add installation instructions
     add 2236195ad2 Back to BUILD-SNAPSHOT
     add 7b0f3f78bd Use Asset Pipeline version defined in gradle.properties
     add 5f8de623a8 Remove docs from build of plugin
     add 92ffb0fc06 Replace asset-pipeline with com.bertramlabs.asset-pipeline
     add f397686328 Use assetPipelineVersion defined in gradleProperties
     add 9ca3b5dfad Use Grails 3.3.0 and GORM 6.1.7.RELEASE
     add a799f04238 Simplify build
     add c3a357f863 Use Slf4j parameterized logging
     add b65532b97f Return different code due to password length error
     add 11d90a2aec Fix s2ui-override script
     add d1f93fbe6e replace integrationTest with task.withType(Test)
     add 31446a3e00 3.1.1
     add 4e2c2cd2d3 Back to BUILD-SNAPSHOT
     add b6d6d88efd Issue-60: postResetUrl not working
     add 687c322557 Issue #56: Error with Grails Spring Security UI Plugin when creating new user - Error Processing GroovyPageView
     add d35939f3c5 Issue #79: Refactor UserController as demonstrated in PR 13
     add a6f4517099 Issue #79: Refactor UserController as demonstrated in PR 13
     add c9f2b4a387 Back to original two map implementation
     add 469ffcff79 Add misssing param to buildRoleMap call
     add f12bd39e36 Issue #9: All pages vulnerable to CSRF
     add e2f66896d7 • added comments
     add 1c55d916b3 Use GrailsConfigurationAware to retrieve properties
     add b41c154dfb run tests in chrome headless travis
     add e73db786b4 issue 43: email i18n files
     add 26bb585420 added a test that verifies the registration email subject will be loaded first from `DefaultUiSecurityConfig` and, if it doesn't exist in config, then it will be loaded from `messages.properties`. this was done to ensure backwards compatibility
     add 84f3774eb5 • implemented loading of forgot password email subject from config if it exists (for legacy support) else it will load from `messages.properties` • wrote a test
     add 137d2e0b11 • implemented loading of forgot password email subject from config if it exists (for legacy support) else it will load from `messages.properties` • wrote a test
     add 9364ffa13a • modified `s2ui-override` script to copy email templates and layout when a type of `register` is targeted • modified documentation to reflect the additional templates and layout now beign copied when targeting `register` override
     add f87d31bbfe Add default value for spring.security.ui.forgotPassword.email.subject
     add fdea872059 change echo message
     add 9f27faa6a5 return EXIT_STATUS variable in travis-build.sh script
     add b05efccc4e add default ‘New Account’
     add 9fdd01e28f remove quitCacheDriverOnShutdown
     add c5e96caae9 Bump up Grails Spring security core version to 3.2.1
     add 26ab7ae1a5 Set travis sudo:required
     add c48e2291a0 upgrade to geb-spock 2.1
     add 9865aa12b8 Use webdriver-binaries plugin to simple project
     add 535bb198f4 Bump up version to 3.1.2
     add 06329e8d0c Back to BUILD-SNAPSHOT
     add 0783a27613 Doc replace 3.1.0 with 3.1.x
     add 732364066c Back to snapshot
     add 5543b3259e Doc add entries to history
     add 6b8670d05c Bump up chrome driver to 2.40 and gecko driver to 0.21.0
     add 8bbf8b2e54 Bump spring security core to 3.2.2
     add 17e658de7a Issue 98: Create an issue template similar to what is used in the grails-data-mapping plugin
     add 2efc28f686 issue 98: auth.gsp does not support `grails.plugin.springsecurity.ui.gsp.layoutUi` config setting
     add f40a18f38e Issue 101: bump up spring security core Version to 3.2.3
     add 7ccb9b62e1 issue 89: User update removes all user roles
     add ae3ab28c54 • updated chromedriver and geckodriver to more recent versions
     add cebd9d22ff • updated chromedriver and geckodriver to more recent versions
     add ede09b1900 chrome and gecko driver in gradle.properties
     add 84f4e78523 don’t use User static methods, use @Transactional
     add 9d2a43310b Merge branch 'master' into issue_89
     add 9b648e3d97 Issue 89: User update removes all user roles
     add 57281a052e - reverted name change made to `UserSpec`
     add 50c7702bdd - fixed a bug uncovered by the new test
     add 0b982d46a9 - improved the test to also verify the correct roles are enabled
     add 9e4e275473 Add Feature #49 - Pull Request (#94)
     add 351cf949a9 • updated chromedriver and geckodriver to more recent versions
     add a8c8481f98 • updated chromedriver and geckodriver to more recent versions
     add 70680913bf Add Feature #49 - Pull Request (#94)
     add a4173e8f2b Merge branch 'master' into issue_89
     add 9f7dc550b9 Merge pull request #95 from grails-plugins/issue_89
     add 5e4a81b885 Merge remote-tracking branch 'origin/master' into issue101
     add b11d8b5d52 Merge pull request #102 from grails-plugins/issue101
     add 40d8dd9006 Grails 4/Spring Security 5 Support
     add 535e29ba5f Grails 4/Spring Security 5 Support - fix password matching for security questions
     add 048e97b508 Grails 4/Spring Security 5 Support - test release
     add b7c5996f42 Grails 4/Spring Security 5 Support - 4.0.0.M1 release
     add b055244b38 Grails 4/Spring Security 5 Support - 4.0.0.M2 release
     add be9c5214c8 back to snapshot
     add 7451917547 Configure Changelog workflow
     add 4684729666 Merge pull request #128 from grails/ghworkflow
     add facf8cc06b Delete .travis.yml
     add 1fdc550002 Merge pull request #129 from grails/puneetbehl-patch-1
     add 81de58b127 Delete travis-build.sh
     add 03b72acc17 Merge pull request #130 from grails/puneetbehl-patch-1
     add 5b38e85027 Update Github Issue Template
     add cf0eb925c2 Merge pull request #131 from grails/issuetemplate
     add 0b9f7d1977 Configure Java CI Workflow
     add a836b2509e Merge pull request #133 from grails/ghworkflow
     add ae6462397a Upgrade to Grails 4.1.2
     add a186ade130 Correct tests arguments
     add 3ba6ff7aed Merge pull request #132 from grails/upgrade/grails4_1
     add 8143dabc77 Fix for issue "Add/Remove Role from an User gives error when SpringSecurityCore classes are customized" https://github.com/grails-plugins/grails-spring-security-ui/issues/124
     add f39beb08cf Merge pull request #125 from tadeubas/master
     add 0158cdf319 Configure Release Workflow
     add 85d9c5a635 Merge pull request #134 from grails/ghworkflow-release
     add 2843fe0d63 Issue 106: Removing a Role throws an exception - fixed bug so roles may be deleted without exception - added an integration - added `.java-version` to `.gitignore` so that `jenv` config files are ignored
     add 1abb2e7297 Issue 106: Removing a Role throws an exception - fixed the new test that was passing when run in isolation with the annotation `@IgnoreRest` but failing when run along with other tests in the `Spec`
     add 475c1656e3 Merge branch '4.0.x' into issue106
     add fc7d475b9b Merge pull request #113 from grails/issue106
     add 772ec0a368 add autofocus + required html attrs to username input in login form
     add 57d79cf217 Merge pull request #115 from aeischeid/improveLoginForm
     add fae8bb7944 [skip ci] Release v4.0.0-RC1
     add bc74d19c0a [skip ci] Fixed Gradle Release Process
     add d98fcb4eee Update POM information and new links to grails org
     add 7dd71e4a72 Merge pull request #135 from grails/update/pominfo
     add 42678cde0b [skip ci] Release v4.0.0-RC1
     add b592f4cb48 Back to 4.0.0-SNAPSHOT
     add 6724f77069 Add renovate.json
     add d0713c3997 Merge pull request #136 from grails/renovate/configure
     add 460a7e2d06 Update dependency org.asciidoctor:asciidoctorj-epub3 to v1.5.1
     add f661ea81ad Merge pull request #137 from grails/renovate/org.asciidoctor-asciidoctorj-epub3-1.x
     add 064894b5e1 Update release-drafter/release-drafter action to v5.21.1
     add e71f47abe9 Merge pull request #138 from grails/renovate/release-drafter-release-drafter-5.x
     add 6533509cbd Update assetPipelineVersion to v3.4.7
     add ba51546448 Merge pull request #140 from grails/renovate/assetpipelineversion
     add 5cd7470a5a Update dependency org.grails.plugins:spring-security-core to v4.0.5
     add de1fb725af Merge pull request #149 from grails/renovate/springsecuritycoreversion
     add bc6fad6be7 Update dependency io.github.gradle-nexus:publish-plugin to v1.3.0
     add 9f8c4d4ea5 Merge pull request #150 from grails/renovate/io.github.gradle-nexus-publish-plugin-1.x
     add 135272ae6b Update dependency org.asciidoctor:asciidoctorj-pdf to v2
     add 84e81ada17 Merge pull request #145 from grails/renovate/org.asciidoctor-asciidoctorj-pdf-2.x
     add a1b67e37f0 Update release-drafter/release-drafter action to v5.24.0
     add 23bccf38fa Merge pull request #152 from grails/renovate/release-drafter-release-drafter-5.x
     add f32f30f327 Update to 5.0.0-SNAPSHOT
     add 80175f6542 Grails 7: grails-spring-security-ui
     add da8f0c4e9e Grails 7: convert to liberica
     add 20f0c1f220 Grails 7: use ContainerGebSpec
     add 739bc78529 Grails 7: remove uneeded versions from build configuration
     add 58f479cbaf Grails 7: update HashCodeBuilder package
     add 6d49a5913d Grails 7: update mail plugin version
     add 322e811dd6 Grails 7: initial work on tests
     add cf47434909 Grails 7: add layoutTitle to layouts
     add 2fce2373f2 Fix setting the non-container url on the browser
     add a42eb51bd2 Grails 7: Update usercache page to display statistics for a JSR-107 Cache
     add ee9bc1aa64 Grails 7: upgrade to asset-pipeline 5.0.5
     add 728c732401 Grails 7: upgrade gradle wrapper to 8.12
     add 108e9f7932 Grails 7: ignore failing testRegisterAndForgotPassword
     add 4caec3138b Grails 7: For examples/simple, fix setting the non-container url on the browser
     add b799669102 Grails 7: RoleSpec needs @Integration
     add da5edc3d4a Grails 7: add Stepwise to tests
     add aec0709a77 Grails 7: Change plugin grailsVersion requirement to 7.0.0-SNAPSHOT > *
     add 804724a3be Grails 7: remove setting geb.env in build workflow
     add fd3b824e04 ci: enhance workflows with build scans and caching
     add f4ad8b0034 ci: try another key for build scan auth
     add defb9357ee Switch to grails/github-actions
     add 69254cccb5 Switch to grails/github-actions
     add 9b2cae5fc6 Switch to grails/github-actions
     add 6d0f33f2cc Merge remote-tracking branch 'origin/5.0.x' into bkoehm.5.0.x
     add 268a892d3d Merge pull request #160 from bkoehm/bkoehm.5.0.x
     add bd9c6ea62a Fix test suites (#164)
     add 541b161612 ci: Fix and cleanup Github workflows
     add 69403cfaef refactor: remove dependency on `commons-lang3`
     add 45e50aeca4 build: cleanup build files
     add 7052d4c41b ci: remove unused environment variable
     add 29b88b19f6 docs: update documentation
     add 3c3116a1d0 Merge pull request #165 from grails/matrei/fix-ci-workflows
     add 5fb4d0bc2e More updates for 7.0.0-M1 (#170)
     add 0b775e7b98 ci: fix condition for doc publishing step (#171)
     add b4aee64e08 ci: set correct docs output folder (#172)
     add 3b00072484 Imported grails-spring-security-ui
     add 7d0361d2ad Initial commit
     add 2b2d419be5 Cleanup, dependencies added
     add 20516d02e1 First cut of all the Spring Security shit. It's there, it does something, but not as expected :)
     add cf6d49bf0d Create README.md
     add a4c9494cf0 Authentication works. Still needs cleanup, but it's a good start.
     add 0b61017fcb Fuck yeah! Authorization works!
     add 37f69be88b Generalized token generator strategies
     add 07f9e0d555 Spock and Grails wrapper added
     add 88ff521271 First test added
     add ba7535f251 Update README.md
     add b41e630c79 Refactoring and documentation updated
     add cb7cdddcf7 Using UserDetailsService to fetch user details
     add 04346b05a2 Will use a real auth provider in the sample app
     add 1b181e20dc Fixed compilation issues
     add a7a07c82cc Fixed compilation issues
     add aafeef29f3 Added test app using memcached
     add 521487157f Refactor
     add 5873542468 Wiring more pieces
     add 8f6b4f2a14 Defaulting back to the Gorm implementation. Need to investigate how to deal with the dependency in the unit test phase.
     add 6aa1af1705 Added tests
     add a6958fcefd You can only use CompileStatic if you limit the plugin to Grails 2.2+ since older apps will have pre-2.0 versions of Groovy
     add 619d93a3ca You need to export the spymemcached to compile all of the plugin source. Even if it was just a runtime dependency, you would still need to export it because BuildConfig.groovy is only used at plugin build time to create plugin.xml and the POM files. Client apps resolve dependencies using the POM, not BuildConfig
     add 515c5a2590 cleanup
     add ccab13abbf Merge pull request #1 from burtbeckwith/master
     add 8b623a738c Cleanup
     add 6ad15ab951 Tokens didn't had 32 chars always. Now they will
     add 50aba02ca4 Make auth failure status code configurable
     add cd419c053a Adding PhantomJS in the test app
     add 5347ce6439 First cut of tests (not working yet)
     add 0bb6114a1e Add a Bitdeli badge to README
     add 64ad8996eb Merge pull request #3 from bitdeli-chef/master
     add 8f324cc875 Update README.md
     add e5623e2eff The authentication filter is now correctly applied. Tests passing
     add 36b283e4fe Authentication filter mostly finished. Only pending: more documentation and few additional tests
     add 68d838114b Fixed test
     add c74de2fc98 Added initial doc
     add 4b82847e77 Added documentation links
     add a46edc0545 Added doc script
     add db8d59f17f Added doc script
     add cc40f539de Docs updated
     add 83cf0164e5 Using a different strategy
     add 687b724dce Documentation updated
     add 2667afbf5c Updated doc script
     add 2ece12fb5d Documentation updated
     add c1a652f99b Initial doc
     add 5447c48d39 Script updated
     add 72d0af85bf Documentation updated
     add ca2dfd22ab cleanup
     add 09fee89f1b cleanup
     add 130905cb27 add waffle.io badge
     add e9fc0e8b3d Merge pull request #5 from waffleio/master
     add b090ce75ac Documentation updated
     add 812386555f Badge
     add 71f22bdb73 Introduction completed
     add 3d61a0b7ad Authentication chapter
     add 59ca0c1555 Token generation section
     add a850381779 Token validation section
     add 0bf1531144 Documentation updated
     add 5d01e9c36a Removed docs
     add eab0a0a535 Removed docs
     add 8dbfc337ab Playing with Travis CI
     add 4b7b246a2b Switched to Travis CI
     add d2f440e41d Trying to publish docs automatically at the end of the build
     add b37a13c16f Fixed path
     add 79a998aab7 Steps to publish doc automatically
     add b518a3d548 Steps to publish doc automatically
     add 9725e82fa8 Steps to publish doc automatically
     add a4a071c9f8 Test
     add d3fb6a244d Test
     add ef550329c1 Some echos
     add 3463043cc9 Changes for Linux
     add a6497af099 Moving to 1.0.0.M3
     add 6555a9871b GORM warning
     add 6ee7805cfa We don't need a full browser for them
     add 8940495b11 Enabling validation filter
     add 104986515a Added missing Javadoc
     add 98ae36f08f Properly configuring logging
     add c91b8eb480 Using the appropriate in memory implementation
     add 20f93dec09 Warning about the UserDetails stored in the security context.
     add 3b3e03c33a Properly continuing the filter chain
     add 109a7f459e Clarification
     add 21a51bd011 Reusable testing script
     add c46b841bad #10: clarifying in the user guide how to provide additional user details.
     add 8874f26740 Merge branch 'feature/generalize_token_storage' into develop
     add b7b6803ecf Added gitflow init script
     add f377740f57 #2: first cut of credentials extraction from JSON request
     add 03a0cdfc8c #2: missing dependency
     add 8fe490c1ed Made executable
     add ef6e9d5d88 #3: Extracting credentials from request params still works. All green.
     add 5f6d850773 Try to run all branches
     add 00ee412521 #2: package refactor
     add 2f2621bf6a #2: unit tests for credentials extraction
     add 42ed2769d4 #2: Enabling multiple configuration files
     add 7a82d45297 Stopping if something goes wrong
     add a59ac78e0e #2: generalised tests so they send parameters or JSON depending on the configuration
     add fb21fd1d94 Cleanup
     add a5e9b37fd6 #2: documentation updated
     add af1f44c85c Merge branch 'feature/json-payload' into develop
     add 7848b7ecac Bumped version to 1.0.0.RC2
     add d7d0d17163 Merge branch 'release/1.0.0.RC2'
     add 97db0d499f Controlling when the builds are run
     add 32d6ebc40f Merge tag '1.0.0.RC2' into develop
     add 7b19d92689 #4: first test demonstrating failure
     add 87d0ef4636 #4: yipiii! CORS filter applied (in progress)
     add 33e6e7c48e Controlling when the builds are run
     add 3a65e3d068 #4: it's better to support CORS via the existing Grails plugin
     add 2dd4a089d0 #4: documentation updated
     add 9d9249a583 Merge branch 'feature/cors-support' into develop
     add dccaae1767 typo
     add 58ccf3385a Release 1.0.0
     add 69e1ed6bc7 Merge branch 'release/1.0.0'
     add 99b98fac2b Only on master
     add 63848bb508 Merge tag '1.0.0' into develop
     add 41d5d683ba Fix for #11: "The SecureRandom seldom generator generates non-alphanumeric tokens"
     add 4b124d297a Release 1.0.1
     add 5ce8fd3597 Merge branch 'release/1.0.1'
     add 8a92b6efcd Merge tag '1.0.1' into develop
     add 009fba3005 #9: added a validate endpoint
     add 3f783186a1 #8: first cut of the logout filter
     add 50d6b338fd #8: applying the filter to the filter chain
     add 110e9a916b #8: added tests
     add 641f64853a #8: cleanup
     add ca37d1bd97 #8: added documentation and cleanup
     add 1071a81f05 Merge branch 'feature/logout-endpoint' into develop
     add 92dc686bcd Release 1.1.0
     add 157db4467e Merge branch 'release/1.1.0'
     add 7c1c55dc20 Merge tag '1.1.0' into develop
     add a8646ba92f #12: quick and dirty (nasty) way to get OAuth working
     add d1c9ce48c8 #12: yay! OAuth support made generic! \o/
     add f2d8c579e2 #12: cleanup and documentation
     add 314deaf2b9 #12: supporting default roles and Facebook fields
     add 0ada0ffb23 #12: Allowing OAuth 1.0 as well
     add 528b9fc1f2 #12: Changes to support buggy Twitter API (not yet working)
     add a837f5ef74 #12: It was an error due to yesterday's Twitter API change
     add f11f953564 #12: Added documentation
     add 8280da52b0 #12: Made the user details building overridable.
     add e8beef3d44 Missing TOC entries
     add 9e02088e1a #12: fixed small bug
     add b77d5d2af1 Merge branch 'feature/oauth-support' into develop
     add 2de8fb1cc0 Release 1.2.0
     add 6a0462b596 Merge branch 'release/1.2.0'
     add f564f2705c Merge tag '1.2.0' into develop
     add 54453f014c Added FAQ
     add d839892f1a #14: documentation updated to reflect the need to add Spring Security Core as well.
     add 7719b463ce Allowing all branches to be built
     add 4f6a21ee8c Fixed javadoc url typo
     add a1eb34af77 Merge pull request #17 from mgdelacroix/master
     add 0c0181796f #14: modified tests to cover this issue
     add a705229889 Bogus change to trigger Travis build
     add f0dc3f96a2 Bogus change to trigger Travis build
     add b404056167 #14: let's see if this helps
     add 5b06546085 #14: let's see if this helps
     add 3dfd6c7b8a #14: let's see if this helps
     add 2d32db3edb #14: Bumped version
     add 92cc0536ef #14: Snapshot
     add fa25b5fc45 #14: just in case?
     add 4491fd6db6 #14: (╯°□°)╯︵ ┻━┻)
     add b1306c7d11 #14: (╯°□°)╯︵ ┻━┻)
     add 5ffe785c99 #14: okay... this probably works \o/
     add 8f7d7c68ad #14: maybe with this as well...
     add e35784c2b4 #14: and this as well...
     add 30b337e61c Added OAuth settings for testing
     add f9da503569 Merge branch 'feature/dependency-fix' into develop
     add 92a6ff356e Release 1.2.2
     add 927b2f8b2a Merge branch 'release/1.2.2'
     add 961b1582f5 Merge tag '1.2.2' into develop
     add bc5ece5a53 Modify Travis branches
     add e1fcd45556 Merge branch 'develop'
     add fe109a97d0 Fix for #18: storing non-UserDetails objects
     add 8393a6de98 Release 1.2.3
     add 2d3a8e36ca Merge branch 'release/1.2.3'
     add 49ec85fe0a Merge tag '1.2.3' into develop
     add 0f906adf80 #19: Support OAuth callback URL to be defined as request parameter
     add 054ed80669 #19: added documentation
     add a677adebc0 Merge branch 'feature/oauth-callback-url' into develop
     add f563303f2c #20: Document all the packages that can be used for debug
     add e8e17c3dd2 Using latest.release for dependency check
     add 762228abba 1.2.4
     add 939dbaf4d0 Merge branch 'release/1.2.4'
     add 1dd5bb9bac Fix for fetching domain class in GORM service
     add 93750635bf Merge pull request #24 from conalllaverty/master
     add 41cbc22733 Added some logging
     add 2615751c75 Merge tag '1.2.4' into develop
     add 0706c00d48 Merge branch 'develop' of github.com:alvarosanchez/grails-spring-security-rest into develop
     add 33593551ea Fix for #21: The GORM storage implementation is out of sync with the documentation
     add c38b8c7b74 Release 1.2.5
     add cf3e290b42 Merge branch 'release/1.2.5'
     add 09e6aeab91 Merge tag '1.2.5' into develop
     add c90afa99f4 Fixes #26: OauthUserDetailsService should check if the user is valid based on the UserProfile
     add e87e8300b0 Fixes #28: If the OAuth authentication fails, it needs to redirect back to the frontend callback URL anyway
     add 212f46e3cd Merge branch 'feature/oauth-validate-user' into develop
     add 186ed9f2e5 Fix for #22: The first time a user grants access though Google OAuth, the profile ID is null
     add 2659382631 Fix for #27: Use @Slf4j instead of @Log4j directly
     add d77255e795 #31: Listening by default on /api/login, /api/logout and /api/validate to avoid clashing with Spring Security Core LoginController and LogoutController
     add 1fefcc1524 Warning users about SSC 2.x dependency.
     add 182f4bba73 #31: /api/validate as well
     add 35bae95931 Merge branch 'feature/support-ss-core' into develop
     add 57755db8ff Only publishing docs of master builds
     add 6c42d8c430 Fix incorrect encoding issue: Output to response by authenticationSuccessHandler make character encoding fix to ISO-8859-1.
     add cce8ffd784 Trying to fix Travis doc build
     add 945d6db2cf Update OauthController.groovy
     add e8ac379340 Update OauthService.groovy
     add ad2d545b76 Merge pull request #41 from Schlogen/develop
     add 3977f23950 Removed spock framework from dependencies
     add 96bc639187 Added configuration for JSON on login request
     add 3f4d45b976 Merge pull request #43 from Alotor/develop
     add 89f9c05ce7 #43: standarized the property names. Added documentation
     add 03d5546c51 Featuring contributors
     add 9e5600077d Featuring contributors
     add afcc4cec68 #37: clarified documentation, and a more reasonable default value.
     add f746618a21 Fix incorrect encoding issue: Output to response by authenticationSuccessHandler make character encoding fix to ISO-8859-1.
     add 291a5eda03 Merge pull request #34 from pphetra/master
     add 81e3d68510 First RC
     add 553233c703 #30: avoid more clashes with Spring Security Core.
     add 4630524616 1.3.0.RC2
     add eee7bff83e Trying to fix Travis doc build
     add f41c7d27a4 Update OauthController.groovy
     add bda52e32d4 Update OauthService.groovy
     add 3f9520f9da Removed spock framework from dependencies
     add df53d90ccf Added configuration for JSON on login request
     add 28f1238269 #43: standarized the property names. Added documentation
     add fee6a42401 Featuring contributors
     add 62e455b9df Featuring contributors
     add 2bcebe6065 #37: clarified documentation, and a more reasonable default value.
     add 3c1b2e0eb6 Release 1.3.0
     add 88863e9fd5 Merge branch 'release/1.3.0'
     add d8b87595c2 Merge tag '1.3.0' into develop
     add 0ecd24f99d Update authentication.gdoc
     add f21bf2dde8 Merge pull request #44 from andrew-wharton/patch-1
     add 30f08fc525 Token response customization
     add 63bd98adcf Merge pull request #45 from Alotor/develop
     add 6aaabbde2b #33: Improve DefaultRestAuthenticationTokenJsonRenderer so that it renders OAuth profile information
     add 6d14f88708 #45: consistent configuration keys
     add 9922f880c7 #45: added documentation
     add ee3c47b5d1 #49: plugin does read properly grails.plugin.springsecurity.rest.login.failureStatusCode
     add cb71a3b535 #49: warning about when the authentication filter is applied
     add 883e3b8c4b 1.3.1
     add 25aee837c1 Merge branch 'release/1.3.1'
     add 9f78b26383 Merge tag '1.3.1' into develop
     add 5a63fb6384 Forcing a new Travis build
     add e5d624262d Merge branch 'master' into develop
     add de190d3784 Fix for #53
     add 2cf215a857 1.3.2
     add 100df2655d Merge branch 'release/1.3.2'
     add b650e9adb0 Merge tag '1.3.2' into develop
     add 6f3f3fa1cf Fix for #55: 401 status code is now the default one
     add cc7e835834 Fix for #56: Setting the content type in the response when generating a JSON payload.
     add ba0560602d Upgraded to stable Pac4J
     add a98c91cfd4 1.3.3
     add d641a85442 Merge branch 'release/1.3.3'
     add 67dfb11a5b Merge tag '1.3.3' into develop
     add 2e1a4d23e9 Added new implementation of TokenStorageService for grails cache plugin
     add ba5e23fc5b Updated docs for PR#57
     add 5f7ae6d38d Merge pull request #57 from bgawel/develop
     add 7aa8df0aa2 Update README.md
     add 4ebd2cd131 Update README.md
     add e5220e5cf6 #57: small changes in the cache token storage implementation
     add 4d2dd4c36e Explicitly checking if a token storage strategy has been specified
     add 9d4f25dd6f 1.3.4
     add 804278223d Merge branch 'release/1.3.4'
     add 6329ef5b2f Merge tag '1.3.4' into develop
     add dd37717f93 Allow disabling of login and token validation
     add 573f495294 Allow disabling of login and token validation
     add 52f17fa296 Merge pull request #61 from vsaar/disable-login-validation
     add b18e06be5d Featuring @vsaar
     add 631d72ed3a Bumped Grails version
     add c152fed649 #61: renaming to active for consistency
     add 147bf69d08 Bumped Grails version
     add 9a87cb5b4f #62: using JSON credentials by default
     add 695763e9f0 Bumped plugin versions
     add 0e3b7c0449 No Geb is required
     add 4bdec4e619 #62: fixed test
     add 0954adba97 Upgrade to Grails 2.3.9
     add 53d3fe7291 #62: fixed test
     add 0d1d0f6d07 #51 and #60: enabling traditional and REST filters to coexist
     add c44e8bb85d #46: explicitly adding pac4j-core
     add 7806351875 #51 and #60: added a new chapter with documentation
     add c166011ea9 Update README.md
     add bfb9230672 Update README.md
     add 2cf7d77afd Update README.md
     add f6d06945b7 Add support for RFC6750 Bearer Tokens.
     add 10b725e73c Add correct token rendering and failure response when using bearer tokens.
     add 08171def2e Update tests to support new token JSON output format.
     add f507e9630f Merge pull request #73 from ajbrown/bearer-token-support
     add fcd1f6f1ad Encode callback url parameter as Base64
     add 318f8b2c60 Optional encode callback url parameter as Base64
     add c37fc3c7e9 Merge pull request #84 from jladenfors/Base64EncodeCallbackUrl
     add 7ba4ce9f90 First 1.4 milestone
     add 87513520dd CI changes
     add a1543f4094 CI changes
     add 836aacf94f CI changes
     add 6a7980306f CI changes
     add 9c8bc29259 #67: test to verify that the cookie is not created at all.
     add 7bf00f6629 Imports optimized
     add a41f4c08e2 #67: clarifying how to configure the filter chains properly.
     add 575b7b4984 Removing warning message as per #65. The fallback mechanism has to remain to allow tests to run properly.
     add 318841f5af Fixes #68: When the token header is missing, make configurable the HTTP response code sent
     add 83bb686484 1.4.0.M2
     add 9ef652e746 #67: extending the test to include the next request
     add 54e283ebc6 Missed one ignore not needed
     add 9d45e5b7e6 #71: fixed documentation
     add 305d4b6ab5 Fix for #69
     add bece5d4697 Updated Spring Security version
     add 39288e1041 #66: unified settings under usernamePropertyName and passwordPropertyName
     add 3350e91322 #74: first cut of anonymous access
     add b88d7f3fe6 #74: added test and documentation
     add 76500442b0 1.4.0.M3
     add f7c9b8d92c Trying Gitter
     add ec888a3d95 New doc chapter on what's new on 1.4
     add 1c2103ae43 Bearer tokens behaviour by default
     add ac3dc591d1 #73: added functional tests
     add 672c226280 Fix for #75
     add af6619ac06 #73: checking request preconditions accordingly as per the spec
     add 585dd77fe1 #73: fixed tests
     add 6cd94c36d0 #73: complete support for RFC 6750.
     add 738b4f06e6 #73: documentation refactor.
     add cfabfc4cc1 1.4.0.RC1
     add 4b9b6244cf Fix for #79
     add a23d53657f 1.4.0.RC2
     add 6f21e22930 Fix for #81
     add d31dc12c6a 1.4.0.RC3
     add f62dd51f33 Allow anonymous access to be enabled while using bearer tokens.
     add e0be9dfabf Update docs for bearer token anonymous support.
     add 5dd7f9ff8e Remove bad reference to AbstractRestFilter.
     add 91b05e5945 Fix for #86
     add 43f2097d42 Making sure its serializable and deserializable across several JVM executions
     add 79bb56ef60 Merge branch 'release/1.4.0' into bearer-token-anonymous-access
     add 12a41b6653 #87: RestLogoutFilter has to be a javax.servlet.Filter
     add 0055221d86 #87: changes to make tests passing
     add 4dd33e5590 Clarification on TTL using Grails cache.
     add 54ab616499 #87: cleanup
     add 2d99a15c21 #87: explaining the new TokenReader interface
     add 0880cdbec9 Merge pull request #87 from alvarosanchez/bearer-token-anonymous-access
     add 5a93076f92 1.4.0.RC4
     add 47b58314d6 Fixed doc link
     add 4d27f5e47e Hardcoding Log4j is a very very bad idea. Switching to agnostic slf4j
     add df508e30b7 #90: Hardcoding Log4j is a very very bad idea. Switching to agnostic slf4j
     add 2849a2b15c Fix for #40
     add d613c45bec 1.4.0.RC5
     add bf339b7465 Added license
     add 5e81c5e42b Upgrading to latest SS Core
     add a7e86d19b9 Upgrading contributor list
     add 939485f83a 1.4.0
     add 5cc89ea72b Merge branch 'release/1.4.0'
     add 3c67d139eb Merge tag '1.4.0' into develop
     add bc4eba5e3c Correct memcached deserialization errors
     add 1b1244f720 Merge pull request #113 from giboow/develop
     add 336282adcf Added contributor
     add b251c44f5f Fixed exception thrown when there was not mimetype present
     add 64f0d9f96d Merge pull request #109 from Alotor/develop
     add 5a1f32ad20 If request does not contain correct authentication, then use authentication already in SecurityContext.
     add 5340bced2f Removed nullpointer when authenticate() got AuthenticationException.
     add 2f8f2368de Merge pull request #103 from MayGo/feature/rest-login-to-accept-cas-authentication
     add d3908378ea Fix for #92
     add bb9cdbfdd4 Fix for #99
     add ae74be67c1 fix couple of links to spring securtiy code docs in gdoc files
     add 7390a4346d Merge pull request #123 from aeischeid/develop
     add 991a60d53a Add support for the CasOAuthWrapperClient
     add 4185093dd7 #127: refactoring
     add 9b7e780046 #127: giving credits to author
     add 1f0474cc7c Merge branch 'srohlin-fix-for-issue-126' into develop
     add 8598052dd5 add the subtraction of rememberMeAuthenticationFilter to config docs
     add f72f7aecfd Merge branch 'develop' of github.com:aeischeid/grails-spring-security-rest into aeischeid-develop
     add 5f906e1153 #124: fixed typo and changed test configuration
     add 5bbd12135b #124: giving credits to author
     add 6012bce320 Merge branch 'aeischeid-develop' into develop
     add 0f72daaed1 #89: updating the documentation pointing the user to use the latest cache plugin version
     add b475af06aa Fix for #119
     add 5ee4160f25 Fixed misleading debug line
     add aac4994c63 usually only need token for read purposes.
     add 24af2562e4 Merge pull request #129 from aeischeid/readOnlyGorm
     add 434212f5b8 Wrapped token delete with a transaction to fix Hibernate session exception
     add bd37c25810 Merge pull request #136 from bobbywarner/develop
     add e056ecbd56 Update README.md
     add 90dc5e3fe5 Add bit of documenttion on memcached token expiration
     add 53eea303c6 some examples in docs of token expiration when using GORM
     add 937a5cd8ac gormTokenStoage withTransaction chokes on readOnly - remove for now.
     add 146657ccdc Fixes the "java.lang.IllegalStateException: Cannot forward after response has been committed" issue when an anonymous user is accessing an anonymous endpoint, without a token
     add 50ad87a36d Giving credits to contributor
     add d5f9fd97d9 Major overhaul to be less aggressive when handling bearer tokens.
     add 4bce451910 Merge branch 'sbrady-develop' into develop
     add 8b14bc4f0a changes the 403 responses to 401
     add e0c56139b7 Merge pull request #150 from sbrady/fix_149
     add a70419650a Adds insufficient_scope error for bearer tokens when forbidden, as suggested in RFC 6750
     add c6aeecea5a Merge pull request #152 from sbrady/correct_header_on_403
     add 951f14bad3 Version bump
     add ef8a52d9d9 Merge branch 'develop' into release/1.4.1
     add 6c20a744de Cleanup
     add 9c13ad1085 1.4.1.RC2
     add 82dc489a53 Fixes #119. Really. Now it does
     add d3338c7ae0 Fix for #154
     add ed800e8000 Release 1.4.1
     add b11871bf63 Merge branch 'release/1.4.1'
     add 108bedb3b8 Merge tag '1.4.1' into develop
     add af2d6b363d #54: initial support for JWT
     add 0b39aac09e Forcing a first compile for Travis
     add 873a6a45b2 Not needed anymore
     add 4a013d4ec4 Added missing files
     add 20a4d21e6a Making room for another JWT strategy
     add 7fa00f49e4 #54: working support for encrypted JWT's
     add def5291e4d #54: revamped documentation
     add cba4689aab Merge branch 'feature/jwt' into develop
     add 8df253f1d7 added RedisRokenStorageService
     add 231aaaabdc fixed wrong package name
     add 0ebcdcc6cf and fixed another wrong package
     add 4341e4be39 fixed typo in default config
     add 035c48e5ac added some documentation
     add 7f247e078b changed RedisTokenStorageService to not require redis to be build
     add 117d411ae4 Adding a test application for Redis, including #179
     add 3f1ac4c9d9 Release 1.5.0.M1
     add 0bc2aea691 Updated version
     add ed3dbed41a Fix for #167, including a functional test to cover OAuth delegation flow.
     add 4208c18021 Change for Travis build
     add c9c2e7943a Upgrade to Grails 2.4.4 and Java 8
     add eeedd7da78 Upgrade to Grails 2.4.4 and Java 8
     add f586ae1744 Fix for #165
     add 46585d3e1b Ensure JWT Token signatures are verified. Fixes #172
     add efa996abf1 Merge pull request #177 from marcos-carceles/bug-jwt-signature
     add ff5e4e98f0 Massive refactor to introduce the concept of access tokens with refresh tokens
     add 89ef187249 Storing the already generated access token
     add 104cb6e32a Improved toString()
     add 5eb4f2342f Featuring latest contributors
     add 26201c608b Merge branch 'release/1.5.0' into peh-develop
     add ebfa2161c3 #179: upgrading RedisTokenStorageService to latest interface version
     add de49c4a391 #179: crediting author
     add b0cb63d9ad Documentation changes
     add 30380f62af Referencing plugin project in test apps
     add 71c56bba80 Documentation process change
     add 116b35c60f Ignoring gradle
     add 365217d5ee Change for Travis documentation build
     add 2ab9eedd2e Fixes #183
     add c3eb0caea8 #54: tests for JWT generation and parsing
     add ef84d95e2a Fixing build
     add 7ae61e710c Fixing build
     add 0ba4e7e257 Publishing test results to Divshot
     add e4736360dc Publishing test results to Divshot
     add 09e1cde8c9 Publishing test results to Divshot
     add 97fd150909 Publishing test results to Divshot
     add c6f0213137 Publishing test results to Divshot
     add ebd96d761b Publishing test results to Divshot
     add 1697392814 Publishing test results to Divshot
     add 1945704c60 Publishing test results to Divshot
     add 3b4c289f2a Fixing test
     add 14f0eeb221 Fixing test?
     add 2f2673e0b5 Test result publishing refinement
     add 687f45ab25 Test result publishing refinement
     add 98bddf551c Trying to fix the build for the nth time
     add 6fa5f754d1 Trying to fix the build for the nth time
     add 6e671fbf89 Trying to fix the build for the nth time
     add 9e54e4b43d Trying to fix the build for the nth time
     add dbf383a206 Attempt to automate releases to GitHub
     add c7ded4831c Attempt to publish documentation
     add aeb0fd6b97 Automating plugin publishing
     add 3d33a0d196 Dummy commit to force a travis build
     add 8b447c84ca Made executable
     add 4f7f9121fd Debug output
     add bc21606d5f Damn you copy paste
     add baac686b16 Fixes to documentation build
     add dc0e07adfa Only one build with Java 8. Fixes to the documentation process.
     add 519bdc333c Only one build with Java 8. Fixes to the documentation process.
     add c4dc114d21 Fixes to the publication process.
     add e1f2b74d6b Moving the tag list to the main script to see if it makes any difference
     add 7de7c4020a Another way of getting the tag list
     add 818135cb20 Finally, another milestone was published [skip ci]
     add 7c45a44840 Listing companies using this plugin [skip ci]
     add c506ecf357 Added missing Javadoc [skip ci]
     add 6089dcd74f Generating latest documentation folder
     add be622cc35c Refactoring to new package base of grails.plugin.springsecurity.rest
     add cc13024f7f Fixed refactor mistake
     add d6d5e8f2d4 Added license headers, and license check included in the build process
     add 6fd2e173be Telling users to enable debug output
     add 76cc9190bf 1.5.0.RC1
     add a85771f4c0 Fix for the latest documentation publishing [skip ci]
     add fddce04a29 Fix again for the latest documentation publishing
     add 61d0747cad Putting latest docs in the same place as the versioned docs
     add a96c66cf16 Fixed broken links
     add 5b53bc787e First cut of the refresh token functionality
     add 8f9d938cc6 Using a header, for consistency
     add 03c33ac6fe Handled more cases
     add 18b7d0c79b Switched back to form POST as per the spec.
     add 93bbef491f Documentation
     add 94f9958b91 Fixed type
     add 318f28c585 Release 1.5.0.RC2
     add cc2833ba9a The principal got from the authentication provider is serialized into the JWT, for later deserialization. Fixes #192
     add c8cd8edfcd Release 1.5.0.RC3
     add 30b7640276 #192: fixed issue with class loaders
     add 8083a104d8 #192: compressing the principal before encoding it, to achieve shorter JWT's
     add 9cf3c3c7d9 #192: restored a GrailsApplication classloader aware serialization
     add b58c1330a3 Small change to make it more efficient by skipping redundant calls
     add 201ae56a03 Fixed typo
     add 94d558b687 Allowing to pass a custom expiration for token generation
     add e2f01643a3 Release 1.5.0.RC4
     add b609cb7ddb Update documentation around accessTokenJsonRenderer fixes issue #197
     add f8730db017 Merge pull request #198 from nllarson/release/1.5.0
     add 7fba156647 Performance testing of JWT parsing options
     add 4dcfce5c73 Fix for #196
     add d31fc8cfc0 Fix for #194
     add 04b409e36c Release 1.5.0
     add 5709f2d519 Merge branch 'release/1.5.0'
     add e6349e08a8 Merge tag '1.5.0' into develop
     add 721deb31fe Fix for #203
     add c710b9119f Release 1.5.1
     add d681aaef8c Merge branch 'release/1.5.1'
     add 4675627655 Merge tag '1.5.1' into develop
     add dad23d8ce5 Only defining a key provider if needed
     add 57ffd76e99 Fixes #212
     add b4e9191f0e Fixing FB test
     add 553ebdee73 Fix for #215
     add 6c3bc89dec First cut of #214
     add e6b3980954 #214: added tests
     add 78bc15ff00 #214: added missing header
     add d4c2b88419 Added Handling for rest authentication events while following the standards of the spring security core plugin as well as core spring security
     add e7a036109d Create events.gdoc
     add e4014f7784 Update toc.yml
     add 99a4cbf6da Add events docs
     add ea83336cd3 Modify documentation from SSC
     add fd39773d15 Add note for existing event being fired
     add 162d56f22b Merge pull request #208 from Schlogen/develop
     add a47d4d17cc Add support for CAS authentication using OAuth flow
     add ddcd302abb Merge pull request #220 from rbfinch/cas-support
     add e2fcfb5cee Fix for #222
     add 966877eab0 Attempt to use new Travis capabilities
     add c34740be3d Dummy change to see if the build runs faster
     add 3a3c014408 This really should speed the build up
     add ae87b0184e Fixing tests
     add af5b608c35 Relase 1.5.2
     add 0933b01c3c Merge branch 'release/1.5.2'
     add 9c8e2593c7 Merge tag '1.5.2' into develop
     add e325d5d207 Fixed doc link
     add 1c13cad23e Merge branch 'release/1.5.2' into develop
     add ae293fce5f #237 tests and docs still outstanding
     add 67d768ca2c #237 added first test
     add 4bad48350a #237 added another test
     add c9e9792306 #237 fixed failing test
     add 7f9853fde3 #237 added more tests
     add d2ed1ed448 #237 refactored duplicate code into private method
     add 58d6305c91 #237 allow front-end callback URL to be defined in Config.groovy as a String. A Closure is also supported for backwards compatibility
     add b76b1d926f #237 fixed NPE when entire test suite is run
     add 6b37a78891 #237 converted integration test to unit test
     add b1ed55a35d #237 replaced literals with enum constants
     add 40846f07df #237 tidied up test class
     add b582a6acf4 #237 reformatted
     add a24e7be0f3 #237 added test
     add f22e4f6c64 #237 updated docs
     add d1fcccc5c5 #237 added license header
     add 3faca3f773 Merge pull request #238 from domurtag/develop
     add 8fed9dabe4 Fixed URL to older documentation
     add d1a801eb1b Merge pull request #228 from rvargas/patch-1
     add d5ec8f206e SNAPSHOT version
     add e3aca8b04c Fixes 234
     add 687c9dc253 Fixes #235
     add 18a96d0f5b Fixes #236
     add 3fe972dd3a Fixes #241
     add c6da3de258 Release 1.5.3
     add 271f89fb8b Merge branch 'release/1.5.3'
     add 44781035e9 Merge tag '1.5.3' into develop
     add 1943e0cae7 Fix inconsistency with error handling
     add e902ad25a2 Merge pull request #248 from stlhrt/no_error_handling_in_jboss
     add 0188f78a17 Listing Lukasz
     add 0e33cbc409 Bumped versions
     add da5246caba Initial upgrade pass. App is running TODO: Convert test "apps" to Grails 3 Run/Update tests
     add 822b8d01d7 Fix build.gradle and integration test
     add 72cf4254a0 Unit tests are now passing
     add 5167e7f536 Up SSC version
     add abb4b37c2a Misc updates
     add 425473395b Update to use SS-core release
     add 8ed76e66c5 Using a smaller key size by default to avoid users having to install cryptographic extensions in their JRE.
     add 91b38c7225 Cleanup
     add 54c021dc90 Added JWT test app
     add 3b85e084fa Stabilising the build until test apps are fully working
     add 57f70e155b First cut of functional tests migrated
     add 2642dd7365 Initial import of jwt test app, converted to 3.1.M3
     add dced0b8db6 JWT test app - Fix chain map config to work with new version of ss-core
     add b86d1017e1 Remove accidental addition in chainMap config
     add a2e5fa59de Replaced by James' version
     add 3cf43644d5 Made executable
     add a7a6aeece0 Merge branch 'develop' of https://github.com/alvarosanchez/grails-spring-security-rest into develop
     add ae699c5496 Fixed tests
     add 2fc5c89f2c Full build process restored
     add 9c6b0cc24d Trying to get the test reports published somewhere
     add e332fcc1b4 Added missing reports dir
     add 9540f8d38f Ignoring reports dir for now
     add f3a86f3a4f Adding debug output for tests
     add e467a593da Fixed test
     add 5353b91549 Updated README
     add 131332bcf6 Added documentation in Asciidoctor format
     add e534c7eb85 Publishing build snapshots to Artifactory OSS
     add 4f4578348b Publishing build snapshots to Artifactory OSS. Round #2
     add 35490162d6 Updated documentation
     add 031b8f9e13 Updated documentation script
     add cff767a2e0 Adding comments about CORS
     add 0663f84393 This should make the shit get published automatically. But all my faith is lost and it wont't work. Likely.
     add d49ae02e31 Build improvements
     add 787378c26f Build improvements
     add bc7780727c Skipping license check
     add f0e9a71bb0 Skipping license check
     add 99fb9d64ae Skipping license check
     add 563c8171fd Doc publishing changes
     add 0308331bc4 Doh!
     add 820da992f8 Update RestOauthController.groovy
     add f2151c3d29 Update RestOauthService.groovy
     add 3661b616c8 Merge pull request #250 from Schlogen/Schlogen-patch-1
     add 6dde760304 Develop branch should always have non-release versions
     add cd49837f51 Documenting how to grab the build snapshots
     add 40a220c266 First cut of the modularisation
     add 5ffed77235 Initial version of the Memcached plugin
     add 01bb3884c1 Foundation for modularisation
     add 6fa0da2d02 Fixes for publishing
     add 678a2f33b0 Missing plugin
     add d6b319fd24 Added Memcached autoconfiguration
     add 1548a754e0 Adding tests
     add 125bb26c8d Upgrade to latest Grails version
     add 958db8a61c Converted Memcached library into a subplugin
     add 4b6228f138 Added Redis subplugin
     add c6499867f8 Added Redis test app
     add c98ba9d9e4 Refactoring build into common parts
     add 31e06bee3e Bumped versions
     add 529d08f589 Added a profile to generate the test apps
     add b38dfe9787 Using the new profile to generate and test apps
     add a75363463a Fixed problem where some tests weren't executed
     add 66d6bf755f Changes in Travis build
     add a1089e55bd Damn executable file
     add 637faa1360 Reenabled cache
     add 6723e5a911 Changes in Travis build
     add 317ad2e8fd Changes in Travis build
     add b95562d278 Changes in Travis build
     add e8d01033b8 Upgraded dependencies to workaround https://github.com/detro/ghostdriver/issues/397
     add 183233b50c Added Firefox driver to troubleshoot tests
     add e53b12e7d6 Added Memcached test apps
     add 70e7011d4d Added Redis apps
     add ac1fb9f26b Added Grails cache modules
     add 75d7b6a16c Extracted documentation to its own module
     add 456b982819 Attempt to reduce build log size
     add 5c27c2e305 Reducing log level
     add ef05c6c49c Update README.md
     add 9d873c8b9a Update README.md
     add f163143a6c Merge pull request #255 from tonyerskine/patch-1
     add c1f178b29d Merge branch 'develop' into modularisation
     add d2fbe7b459 Fixes #247
     add e6ec561192 Revert "Fixes #247"
     add 79095900e6 Using variable version in YML's
     add 84135dcfb4 Printing plugin version at startup
     add ddf73848f3 Variable list of test apps
     add 0764274110 Upgrade to Gradle 2.10
     add be137854b5 Fixes to the documentation generation process
     add b6b78938a5 Added spock-reports
     add 531c351a41 Cleanup
     add f25acb4b91 Forgot this
     add 1f11ffc1dd Fixed paths in docs generation
     add 3533807eea Documenting the new modules
     add 9de86a13ce Adding the GORM module
     add e2cb7bd0ad Update build.gradle
     add 62911fd448 Merge pull request #257 from alvarosanchez/Schlogen-patch-1
     add 92f11e3d9f Build improvements
     add 82772c305f No more useXXX properties
     add f390c8e005 Using a reporting spec
     add 3412940bd9 Update to latest s-s-core
     add f7e49b44fa Release 2.0.0.M2
     add 72cd460692 Updates in the documentation process
     add dbe76caf0c Attempting to publish test reports on build failure
     add 1e11fc1fe2 Publishing on Grails Bintray repo
     add 4ae1aca4a1 For the next time
     add 98d83a92b7 Updated Bintray org
     add b78b7bda19 Temporary workaround while https://github.com/grails/grails-core/pull/9541 gets released
     add 1fdd3b7d2c Fixed Travis build file
     add f055dcd201 Fixed Travis build file
     add 4ff98d5051 Update README.md
     add 38cb634943 Merge pull request #269 from majkelo/patch-1
     add bf025b735c Update oauth.adoc
     add 82fe3a9cc8 Merge pull request #271 from jagedn/develop
     add b47c093bc5 Update oauth.adoc
     add 29272f3c61 Merge pull request #272 from jagedn/patch-1
     add e31e677fbf add images directory
     add 80cd2492c6 Merge pull request #273 from jagedn/develop
     add 8759bfc295 Typo in tokenStorage.adoc
     add f17c4b134b Merge pull request #289 from majkelo/patch-2
     add 77c8d98ec0 Adapting to the new Facebook login page
     add 4b305acd62 Versions bump
     add 75a20c3ad2 Manually applying #286. Fixes #284.
     add 6642f7f349 Applying #286 onto 1.x. Fixes #284
     add 4039398a16 Release 1.5.4
     add 4ea4d5e083 Merge branch 'hotfix/1.5.4'
     add 1f7e777415 Merge tag '1.5.4' into develop
     add a7e101ba3e Decreasing publishing plugins versions
     add 2fb4854cbd Updated documentation
     add 3aec3977b8 Updated README, including all contributors
     add 4b10a34712 Allowing JWT's with no expiration. Fixes #276
     add 7e943accc6 Uploading test reports for Travis build: https://travis-ci.org//builds/
     add 33f2abcd5b Not uploading test reports
     add 8b6eb9d293 Revert "Uploading test reports for Travis build: https://travis-ci.org//builds/"
     add fc550fb479 Revert "Revert "Uploading test reports for Travis build: https://travis-ci.org//builds/""
     add 4764b76345 Putting back a necessary attribute
     add 40b54ab521 Cosmetic changes
     add bbbca26fee Fix for #295
     add 6a5e37615b Including the JWT objects inside the AccessToken.
     add a732fba19c Making the JWT available to the controller
     add 7ddcdc1404 Not publishing the testapp profile
     add 80ab300957 Bumping to latest Grails 3.1.x version
     add df6d7be849 Adapting to new Facebook login page
     add 6fdb46de4f Fixing the port to 8080 so facebook tests don't break
     add 393adb73e0 Screw you Facebook login page!
     add 2722df533e Build improvements to attempt to get pull requests built
     add ef2723c4a6 Added HealthReveal to README
     add 07a8b78a1b Merge pull request #303 from healthreveal/hrv
     add 397dd2c3a0 Upgrade to a newer Guava version. Fixes #302
     add c3a6ad6494 Build improvements
     add e46ed076ff Adding "WWW-Authenticate: Bearer" on failed login attempts. Fixes #275
     add 3e2ed8d790 JWT secret is null by default. Fixes #293
     add 229b35159e RestLogoutFilter was not registered in the gorm plugin. Fixes #304.
     add 27bee51a63 #294: upgrading to latest Nimbus JWT
     add 92bbb87ff9 #294: allowing to specify multiple claim providers
     add 270bd38a96 #294: allowing to specify multiple claim providers
     add e3d2342a9a #294: making the algorithms configurable
     add f027fc33a4 #294: fixed tests
     add f72bd88399 Build improvements
     add 490ea244db Fixed doc generation
     add 832dec823e Added documentation. Fixes #294
     add d8c6cafc89 Bumping versions
     add 4389184139 Upgrading to the latest Grails version
     add 4f010dd57c Versions bump
     add ceba8b9f74 Including missing dependency
     add c4646cf15e Attempt to fix the build
     add c3f4beda73 Attempt to fix the build
     add 29a9cc562a #292: pointing to the Grails docs
     add 11ba579739 #292: liking articles
     add 53f4d4e1f8 Downgrading pac4j until https://github.com/pac4j/pac4j/issues/762 gets resolved
     add 84cf34181b Downgrading pac4j until https://github.com/pac4j/pac4j/issues/762 gets resolved
     add 911444acfc RSA token signature verification support
     add 942c32471b Bug fixing and further development of RSA key support feature
     add c62665c739 Add missing null checking
     add 062b0ad6fb Signing with RSA keys. Support of multiple key issuers.
     add feda1cbbdf Fix empty issuer keys case
     add 919b7dac2c Add support for keys without correct begin and end. Key can be provided in one line.
     add db23dcde67 updated filter chain code snippet in config doc
     add 2085a1e7dc Merge pull request #309 from tonyerskine/patch-2
     add e3ab5deebb Update README.md
     add 997c4570bf Upgrade Spring security core version
     add 008f252f2a Merge pull request #332 from sdelamo/develop
     add 750536d960 Fix issue where a bean does not exist if plugin is disabled
     add a07d9a74b9 Merge pull request #348 from bobbywarner/bean-fix
     add fa9c526639 Ignore failing Facebook test as credentials need to be updated
     add d91c751cec Merge pull request #349 from bobbywarner/disable-test
     add 61eb550dd5 Migrate to Pac4J 2.0.0
     add 6d555e732c Merge pull request #329 from Prototik/pac4j-2.0.0
     add d22804e252 Giving credit for author of PR #329
     add c53afb6e0a Merge branch 'develop' into rsa_signature_support
     add 45cdd97126 Merge pull request #315 from Lingaro/rsa_signature_support
     add 9a3f26404a Revert "Rsa signature support"
     add cc2b87fb2a Merge pull request #356 from alvarosanchez/revert-315-rsa_signature_support
     add cb79c05d3b Giving credit for author of PR #315
     add 5efeddd033 Added check with userDetailsService if the principal is still valid for the supplied refresh_token.
     add 6308465808 Added test
     add 8c76c6cd28 Merge branch 'issue-jwt-refresh-token-invalid' of https://github.com/tkvw/grails-spring-security-rest into tkvw-issue-jwt-refresh-token-invalid
     add de63ee61f2 #344: adding more checks, and functional tests
     add b54dc8f832 Merge branch 'tkvw-issue-jwt-refresh-token-invalid' into develop
     add 5c19966e7b Update README.md
     add 3aea27434b Merge pull request #359 from zaccak/patch-1
     add 00e2559d82 if userDomainClassName not set, don’t look for user
     add 90057ddde3 Merge pull request #363 from sdelamo/oauth-user-details-service
     add 9e2d842173 Build improvements
     add 70bdd73ba1 Version bump
     add ba46545b98 Fixing other vulnerabilities reported by Snyk
     add 743f156f8f Updating badges
     add e20dc39832 Setting GH_TOKEN through Travis UI
     add 75d026f928 Upgrading to the latest versions of Grails and Spring Security Core
     add 3b884f768d Improvements to the publication process
     add be4e50882d Going back to BUILD-SNAPSHOT
     add c138316785 Clarifying about the lack of default secret
     add 2915e134bc replace link with RFC7519 link
     add 677bc7cc0e Merge pull request #368 from sdelamo/patch-1
     add 61e8de0aac replace ar with are
     add ffecc525b1 Merge pull request #369 from sdelamo/patch-2
     add d5c3d02729 Update README.md
     add 5b85f1a6db Merge pull request #374 from 1Mr-Styler/patch-1
     add f43e4c36da Random serialVersionUID. Fixes #311
     add aad41c5003 Removing Facebook test as it causes too much trouble with password expiration
     add a06d53eadd Publishing RestTokenCreationEvent from RestOauthController. Fixes #312
     add 67862a606a Caching parsed JSON object in the request (using Grails JSON) so that it can be reused later.
     add a846613355 Adding to contributors & companies using this plugin.
     add 5c2ff3447d Merge pull request #377 from wizpanda/json-cache
     add 8c1b863dee bump up spring security core Version to 3.2.2
     add da8d13b6c0 Merge pull request #380 from sdelamo/patch-4
     add 6ee5d3ea22 Reflect the new way of configuring CAS client in docs
     add 81432668a8 Redefine CAS client configuration explanation
     add 2033419fa0 Add user to README contributors
     add ffa848c9c6 Merge pull request #381 from tcrespog/new_cas_docs
     add 69a913a527 fix for Grails 4 / Spring Security 5 based Spring-Security-Core plugin
     add 76959e08ed fix for Grails 4 / Spring Security 5 based Spring-Security-Core plugin - fixes for integration tests and deps
     add 5fe628cdaa fix for Grails 4 / Spring Security 5 based Spring-Security-Core plugin - fixes for integration tests and deps - using Grails 4.0.0.RC1 now
     add d4df1045a3 fix for Grails 4 / Spring Security 5 based Spring-Security-Core plugin - fixes for integration tests and deps - fix build files for artifactory deploy issue
     add e9240530fc use m2 of grails-ss-core
     add d18ffefdc7 use grails-datastore-rest-client 6.1.12.RELEASE to prep for release
     add 68c3a6d94b Merge pull request #397 from alvarosanchez/grails4upgrade
     add 50846f0342 Fixing build
     add fb4df5bde5 Fixing configuration setting name for jwt secret key
     add 9c586d3853 made a mistake and deleted "grails"
     add 33c4059d6c made a mistake and deleted "grails" from name
     add 8401f68caa Merge pull request #398 from daninus14/develop
     add 3a1b69a5d0 Version 3.0.0.RC1
     add 7c32101808 Update README.md
     add d5940921b4 Merge pull request #404 from abrahaj/patch-1
     add e1de8779d2 Updated README links for CloudCard and Sharptop
     add e1abd3c172 Merge pull request #407 from tonyerskine/patch-3
     add 1f9306736c Bumping versions for Grails, Gradle, etc. Reducing the ridiculously long build output.
     add 05de2f44b5 Using OpenJDK
     add 04d42fab1b Explicitly installing the version
     add cf13dbf4cd Fixing build
     add dd91407323 Bump pac4jVersion from 2.2.1 to 3.8.3
     add aee67242f5 Merge pull request #416 from alvarosanchez/dependabot/gradle/pac4jVersion-3.8.3
     add 64be2f270f Bump commons-codec from 1.11 to 1.14
     add 715e7b750d Merge pull request #417 from alvarosanchez/dependabot/gradle/commons-codec-commons-codec-1.14
     add 3c60a462b4 Bump commons-fileupload from 1.3.3 to 1.4
     add 3a086b9cf8 Merge pull request #418 from alvarosanchez/dependabot/gradle/commons-fileupload-commons-fileupload-1.4
     add 2c30726a02 Bump org.asciidoctor.convert from 1.5.7 to 2.4.0
     add cf60a227ab Merge pull request #415 from alvarosanchez/dependabot/gradle/org.asciidoctor.convert-2.4.0
     add fe27078904 Update Nimbus JOSE JWT
     add 16f64cc7b2 Update Nimbus JOSE JWT
     add 11bef72420 Gradle test retry plugin
     add 7c4421ddbc Update Nimbus JOSE JWT
     add 6466e4d781 Update Nimbus JOSE JWT
     add c204b56fc4 Bump guava from 20.0 to 23.0
     add 45304ee542 Merge pull request #412 from alvarosanchez/dependabot/gradle/com.google.guava-guava-23.0
     add 92a74f0e4b Bump build-info-extractor-gradle from latest.release to 4.13.0
     add 3bf4db2788 Merge pull request #411 from alvarosanchez/dependabot/gradle/org.jfrog.buildinfo-build-info-extractor-gradle-4.13.0
     add b821848b99 Bump jackson-databind from 2.8.11.1 to 2.10.2
     add 586ebe8c2e Merge pull request #409 from alvarosanchez/dependabot/gradle/com.fasterxml.jackson.core-jackson-databind-2.10.2
     add f10a8ca9a6 Update org.bouncycastle:bcprov-jdk15on
     add 8750f0a2aa Fix for #389
     add 0b28eb482c Merge pull request #419 from alvarosanchez/feature/issue-389
     add 671fc023d1 Fixes: #322
     add cb89644e49 Back to snapshot
     add 63ca60f00c Bump byte-buddy from 1.7.11 to 1.10.7
     add ebe4da31b1 Merge pull request #421 from alvarosanchez/dependabot/gradle/net.bytebuddy-byte-buddy-1.10.7
     add 22d5b23294 Bump spock-reports from 1.2.13 to 1.6.3
     add fffda0b4a8 Merge pull request #420 from alvarosanchez/dependabot/gradle/com.athaydes-spock-reports-1.6.3
     add 6d060ac87c Bump byte-buddy from 1.10.7 to 1.10.8
     add 7969c2fd2b Merge pull request #422 from alvarosanchez/dependabot/gradle/net.bytebuddy-byte-buddy-1.10.8
     add 25478ff827 Bump build-info-extractor-gradle from 4.13.0 to 4.14.1
     add c80ed4c8b7 Merge pull request #423 from alvarosanchez/dependabot/gradle/org.jfrog.buildinfo-build-info-extractor-gradle-4.14.1
     add 49572530cf Bump spock-reports from 1.6.3 to 1.7.1
     add ada72e1512 Merge pull request #424 from alvarosanchez/dependabot/gradle/com.athaydes-spock-reports-1.7.1
     add 47a2d39e1e Bump build-info-extractor-gradle from 4.14.1 to 4.15.0
     add 4af7f55428 Merge pull request #425 from alvarosanchez/dependabot/gradle/org.jfrog.buildinfo-build-info-extractor-gradle-4.15.0
     add 0334a0f5b9 Bump byte-buddy from 1.10.8 to 1.10.9
     add 5d2f951a03 Merge pull request #430 from alvarosanchez/dependabot/gradle/net.bytebuddy-byte-buddy-1.10.9
     add 9dc9afbf21 Bump nimbus-jose-jwt from 8.6 to 8.11
     add b0755fe25e Merge pull request #429 from alvarosanchez/dependabot/gradle/com.nimbusds-nimbus-jose-jwt-8.11
     add 4ee11df1da Bump build-info-extractor-gradle from 4.15.0 to 4.15.1
     add b83a32f3e9 Merge pull request #428 from alvarosanchez/dependabot/gradle/org.jfrog.buildinfo-build-info-extractor-gradle-4.15.1
     add 1dc1eccca3 Bump jackson-databind from 2.10.2 to 2.10.3
     add 4708dadc48 Merge pull request #426 from alvarosanchez/dependabot/gradle/com.fasterxml.jackson.core-jackson-databind-2.10.3
     add 94b500e60b Bump nimbus-jose-jwt from 8.11 to 8.12
     add 3346f530df Merge pull request #433 from alvarosanchez/dependabot/gradle/com.nimbusds-nimbus-jose-jwt-8.12
     add 0c0f164472 Issue #391 - Don't allow refresh_token for auth; Add refreshExpiration
     add e8e00bcd5b Split refresh and access load method for easier customization
     add 62618e024e Switch travis to openjdk8 since oracle is not available
     add c3bdadebd7 Publishing RestTokenCreationEvent from RestOauthController. Fixes #312
     add 8217aa4d42 Merge pull request #401 from longwa/issue-400
     add 0d6304fbf1 Attempt to fix failing tests
     add 14f625753a Merge remote-tracking branch 'upstream/2.x' into issue-391
     add 6bb9b8df65 Still treat null expiration as refresh token for backwards compat
     add c6aa5b19ed Merge pull request #402 from longwa/issue-391
     add acddc17d66 Merge branch '2.x' into develop
     add a266d18ef7 Merge pull request #432 from longwa/develop
     add 4ff6d77077 v3.0.0
     add 28f61991b6 Merge branch 'release/3.0.0' into develop
     add a3a714c977 Release 3.0.1
     add 4e6b2fc1d4 Merge branch 'release/3.0.1' into develop
     add 3a761c37f7 Attempt to fix Travis release process
     add bf91d59150 Bump nimbus-jose-jwt from 8.12 to 8.14
     add df60cbe23c Merge pull request #436 from alvarosanchez/dependabot/gradle/com.nimbusds-nimbus-jose-jwt-8.14
     add bbb2f9de0a Bump bcprov-jdk15on from 1.64 to 1.65
     add 982471bdcf Merge pull request #435 from alvarosanchez/dependabot/gradle/org.bouncycastle-bcprov-jdk15on-1.65
     add 18996ed215 Bump gradle-bintray-plugin from 1.8.4 to 1.8.5
     add d323c086c7 Merge pull request #434 from alvarosanchez/dependabot/gradle/com.jfrog.bintray.gradle-gradle-bintray-plugin-1.8.5
     add 1e8d67e990 Bump build-info-extractor-gradle from 4.15.1 to 4.15.2
     add 9b7b3a0caf Merge pull request #438 from alvarosanchez/dependabot/gradle/org.jfrog.buildinfo-build-info-extractor-gradle-4.15.2
     add b45730a56f Bump byte-buddy from 1.10.9 to 1.10.10
     add 78aef8a475 Merge pull request #439 from alvarosanchez/dependabot/gradle/net.bytebuddy-byte-buddy-1.10.10
     add f5624c8aba Bump pac4jVersion from 3.8.3 to 4.0.0
     add c324ddad09 Merge pull request #442 from alvarosanchez/dependabot/gradle/pac4jVersion-4.0.0
     add 9c3e1cffe2 Bump nimbus-jose-jwt from 8.14 to 8.17
     add 6fb9cc1ebc Merge pull request #443 from alvarosanchez/dependabot/gradle/com.nimbusds-nimbus-jose-jwt-8.17
     add b89dccc12c Bump jackson-databind from 2.10.3 to 2.11.0
     add fdb3622e2c Merge pull request #440 from alvarosanchez/dependabot/gradle/com.fasterxml.jackson.core-jackson-databind-2.11.0
     add ead08213ad Bump pac4jVersion from 4.0.0 to 4.0.1
     add daa6d1aab4 Merge pull request #444 from alvarosanchez/dependabot/gradle/pac4jVersion-4.0.1
     add 5a78c55fad Update README.md
     add 8b2d9b7f0f Update tokenGeneration.adoc
     add f5bb59a1fb Merge pull request #491 from andrewcanby-finocomp/patch-1
     add 029a66f384 Bump commons-codec from 1.14 to 1.15
     add 6c3fae4f00 Merge pull request #467 from grails-plugins/dependabot/gradle/commons-codec-commons-codec-1.15
     add 81d718124d Create gradle.yml
     add 511645f57d Merge pull request #498 from grails/ghworkflow
     add 38a53c2515 Upgrade Gradle wrapper to version 7.6.3
     add c449a596be Fix dependency scopes
     add add126ebc0 Upgrade pac4j to version 4.5.7
     add 5ab80a2d5f Clean up build scripts
     add 5b49988a92 Stop publishing artifacts to JCenter
     add 3ac31f2bd7 Fix test platform
     add 48e0288c81 Fix typo
     add c74eca5c3c Upgrade dependencies
     add d2797e3560 Fix CI workflow
     add 22500393b2 Replace `implementation` and `compileOnly` dependency scopes with `api`
     add 17556f8a4d Merge pull request #499 from grails/grails6-update
     add 0de5d7c3b5 Delete .travis.yml
     add 8850cd5c2e Delete publish-plugin.sh
     add 672d92b1b7 Publish to Maven Central (#501)
     add 303a36a6b5 Delete install-sdkman.sh (#503)
     add 08290438a7 Add renovate.json (#502)
     add 71b26a0a52 change to 6.0.0-SNAPSHOT
     add d67cb07ac0 Issue #437 - Expanded API for store token
     add 47ded85a92 Issue #437 - Call storeToken for new access token on refresh
     add 20e3e673a1 Upgrade to Grails 6.6.1
     add a5f330bdff Run gradle check on all eligible branches
     add 7540e31423 Do not require the project to be built to detect subprojects
     add 2caf405fef Support publishing to maven central
     add 94cee2be29 Change to 5.0.0-SNAPSHOT
     add f2951d2fab Merge remote-tracking branch 'upstream/5.0.x' into 5.0.x
     add fd77408272 Switch back to grails namespace
     add 1e86795e78 Switch to JVM that matches other grails plugins
     add 4afb875ab6 Update documentation for 5.0.0 release.
     add 80ec07bef0 Copy issue templates from spring-security-core plugin
     add d79552798a Copy renovate & dependabot configuration from spring-security-core
     add 856fb653eb Update redis to latest version to support grails 6
     add cd9427315b Update license to the same value as spring security core since it's the same license
     add 491be69663 Setup gradle enterprise similar to spring security core
     add ea4d599dc7 Updating documentation to have the correct API urls & general cleanup
     add b57ae0c4da Initial workflow updates based on the spring security core plugin
     add ca3a98713a Remove old testapp-profile project since it's no longer used
     add eb0f78d497 Set authorEmail to empty
     add 6b8665d821 Revert "Remove old testapp-profile project since it's no longer used"
     add cb1cbfa591 Leave test-app commented out with reference to PR.
     add 9eb588d876 Exclude PR's from build status
     add a102a6f647 Remove --refresh-dependencies
     add 10e3be3705 Remove version catalogs
     add 990f6df50f Update license
     add 8f970e7868 Merge pull request #521 from jdaugherty/5.0.x
     add ec29b1a7eb use grails-gradle-plugin:6.2.1 for testapp profile extra variable will be removed for 6.0.x branch which will use grails-gradle-plugin:7.0.0-SNAPSHOT
     add 8ec6ae6c0a Initial publishing configuration for repo.grails.org
     add 71e7cbaa0d Remove equals to fix pom developer
     add e5d060e1c4 Merge pull request #523 from grails/restore-testapp-profile
     add d7d3b4ce9e Initial publishing configuration for repo.grails.org
     add 2be16d8489 Initial publishing configuration for repo.grails.org
     add 21920c761a Merge remote-tracking branch 'upstream/5.0.x' into 5.0.x
     add d7655c400e Merge pull request #524 from jdaugherty/5.0.x
     add 9035a48eab Merge remote-tracking branch 'upstream/5.0.x' into 5.0.x
     add 3cc12f9a31 Fix doc location
     add 8e8afcd163 Rename index page
     add f376106684 Place ghpages in docs folder
     add 5073e902d2 Fix old version references
     add f059a4f627 Merge branch '5.0.x' into 6.0.x
     add 16f103e6fb Update dependency com.nimbusds:nimbus-jose-jwt to v9.41.2
     add c08c053311 Merge pull request #526 from grails/renovate/com.nimbusds-nimbus-jose-jwt-9.x
     add af3a3bdd21 Update pac4jVersion to v5.7.7
     add ba7ea80dcb Merge pull request #525 from grails/renovate/pac4jversion
     add 46503c25f7 Update dependabot
     add f3b23a4f9f Grails 7 support
     add e2a043cb53 Bump commons-codec:commons-codec from 1.16.0 to 1.16.1
     add 068fc7e542 Merge pull request #528 from grails/dependabot/gradle/6.0.x/commons-codec-commons-codec-1.16.1
     add 3220be450e Update dependency com.google.guava:guava to v33.3.1-jre
     add 32b04156de Merge pull request #510 from grails/renovate/guava-monorepo
     add 0234c0748b Update dependency gradle to v7.6.4
     add f3dd5643b7 Merge pull request #505 from grails/renovate/gradle-7.x
     add 9068506d64 Bump net.bytebuddy:byte-buddy from 1.14.11 to 1.14.19
     add 92e5b8933a Merge pull request #531 from grails/dependabot/gradle/6.0.x/net.bytebuddy-byte-buddy-1.14.19
     add 03f759b581 Update dependency commons-codec:commons-codec to v1.17.1
     add a9685071f1 Merge pull request #512 from grails/renovate/commons-codec-commons-codec-1.x
     add c47fadc143 Merge remote-tracking branch 'upstream/6.0.x' into 6.0.x
     add ce7c2b7f7f Back porting changes from Grails 7 upgrade
     add 3b9f83f85e Merge branch '5.0.x' into 6.0.x
     add 3a2609146b Update github action to use java 17
     add 07ab34e224 Update documentation links for groovy api & user guide
     add c178dc307f Merge branch '5.0.x' into 6.0.x
     add ff4ddcd536 Update plugin com.gradle.common-custom-user-data-gradle-plugin to v2
     add 90d2bba0f1 Merge pull request #543 from grails/renovate/com.gradle.common-custom-user-data-gradle-plugin-2.x
     add ca5888be65 Update plugin com.github.ben-manes.versions to v0.51.0
     add 139829a9c4 Merge pull request #534 from grails/renovate/com.github.ben-manes.versions-0.x
     add db9673e84d fix docs for ascii doc upgrade
     add 5ebae31c85 fix #515 - only allow refresh jwt tokens to be used on refresh
     add 78cba8118e update redis version in docs
     add 664475b708 Update gradle/wrapper-validation-action action to v3
     add 87297b8507 Merge pull request #538 from grails/renovate/gradle-wrapper-validation-action-3.x
     add 33186cfbee Update dependency com.nimbusds:nimbus-jose-jwt to v9.42
     add 83bea122ef Merge pull request #547 from grails/renovate/com.nimbusds-nimbus-jose-jwt-9.x
     add fcc9394d5d Update dependency org.bouncycastle:bcprov-jdk18on to v1.79
     add 7643af6d32 Merge pull request #549 from grails/renovate/org.bouncycastle-bcprov-jdk18on-1.x
     add 7856e6a4b5 Bump commons-codec:commons-codec from 1.16.0 to 1.16.1
     add d5decabf39 Merge pull request #527 from grails/dependabot/gradle/5.0.x/commons-codec-commons-codec-1.16.1
     add 53f6b1dfac Merge pull request #540 from jdaugherty/5.0.x
     add 9072b61a9b build - add release publishing back
     add e3d405f325 build - release 5.0.0
     add d056b02508 build - remove nexusPublishing since it's included with the grails gradle plugin
     add 2770520ffa build - switch to grailsPublish
     add 00479609f1 build - add io.spring.dependency-management plugin to match other profile projects
     add 75f95da13c build - add dependency to ensure the profile.yml is generated
     add 42dbf886a8 build - release 5.0.0
     add f62d1f82b4 build - apply the nexus publish plugin so that grails publish works
     add 5f1430c07b build - remove sign configuration
     add 3b1fe22cf3 build - remove grails publish - it does support nested projects
     add c8692daf7c build - revert to snapshot to ensure snapshot is still working
     add 35441f57b0 build - fix version check
     add 4939a874af build - release 5.0.0
     add 6ff32eb3f9 build - cleanup for release
     add 3137a5e39f build - add back snapshot
     add 6af9e631b9 build - fix release workflow
     add e7b1c9fc80 [skip ci] Release v5.0.0
     add 786e824d36 [skip ci] - fix release workflow
     add 622da5030c [skip ci] - set nexus url directly instead of using organizational secret
     add bfe1c25f3a [skip ci] Release v5.0.0
     add 3d1a796384 [skip ci] - add group to workaround https://github.com/gradle-nexus/publish-plugin/issues/310
     add acccb6b8ce Merge branch '5.0.x' into feature/mergeTo6
     add 0eee69555a Merge pull request #559 from jdaugherty/feature/mergeTo6
     add 0daa39edfb Fix #551 - add missing argon2 & defaults for scrypt & pbkdf2 algorithms
     add f9ade38a28 Merge pull request #553 from jdaugherty/6.0.x
     add 7fe25b745b Update to use new grails publish plugins
     add 8e9a4100c3 switch to grails-publish
     add 7b3c5acdcc Merge pull request #561 from jdaugherty/6.0.x
     add 7082b0d126 Remove nexusPublishing customizations
     add 6dadf69497 Merge pull request #562 from jdaugherty/6.0.x
     add 3900a1c23c Fix NEXUS_PUBLISH_URL
     add 5e83ccd0d3 [skip ci] pre-release 6.0.0-M1
     add 7f3099212a [skip ci] Release v6.0.0-M1
     add 11b2825244 chore: Bump version to 6.0.0-SNAPSHOT
     add cf5dd4707f Imported grails-spring-security-rest
     add 174e3cf419 * initial commit
     add 724f274ab5 * modified readme
     add 9593481ada * fixed build status url
     add 4cdb6e3823 permission access for travis
     add ad43d51023 * removed java7 test as asynchttpclient wont work with java < 8
     add 046e78335c * cleaned up * fixed an error in the controller that prevents from adding role to user when role does not exist * foreced reauthentication of user after account creation
     add ca10676c23 * release v1.0.0
     add 644385e18d * property fixes * gitignore fixes
     add 55053bff69 * fix in build.gradle
     add a564bfc01b * fix in build.gradle
     add 723518f495 * fixed issue with customizable scopes * added scopeSeparator getter to the abstractservice to compile the scope string in the correct way (some need " ", some need ",")
     add 04adc8ee42 Update README.md
     add fbf2e19c35 Update README.md
     add 75947cd4f4 Update README.md
     add 9a77a10388 dependency injection fixes in OAuth2TagLib
     add 8d44d49586 removed redundant "def" keyword
     add 1c785d6606 fixes to tests and additional safeguard fix to taglib
     add 00179806b2 Merge pull request #3 from aitmanas/master
     add 63bef81d28 Fix bug when using redis for session store because JSONObject is not serializable.
     add 4845cd167e Fix bug when using redis for session store because JSONObject is not serializable.
     add d716c5d199 Travis integration
     add 53c1e876c6 Moved to build snapshot for testing purpose
     add 5091eac786 Load Bintray user and key from system properties
     add f746cd0e93 Moved to 1.2.1.BUILD-SNAPSHOT
     add 1e8e51d5fc Upgrade plugin to grails 3.3.8
     add 67710eac56 Fix integration tests for Grails 3.3.8
     add e7cc02da8f add log and replace transactional annotation with replacement
     add 1b2f985e9f Merge pull request #1 from kappamax/grails-3.3.8
     add dfe1867d25 Updated to 1.3.0.BUILD-SNAPSHOT
     add 5144cbb4f7 Fix TravisCI builds by changing the JDK used to openjdk8
     add 387af004d6 Merge pull request #4 from tylervz/fixTravis
     add 5eebdc81fd remove gradle.properties from .gitignore
     add caf33c38fa comment out plugin logger at trace level
     add a7380896b0 upgrade to last version of scribejava-apis (6.8.1)
     add 9dac62d2c9 replace deprecated (removed in Grails 4) class org.grails.validation.routines.UrlValidator with class org.apache.commons.validator.routines.UrlValidator
     add 6459edf5ed fix server base URL generation to make it contain context path, if any configured in local environment.
     add 1633199686 explicitly type injected dependency
     add aafc300fdd clean up redundant def keywords
     add d4bea4a8da relax OAuth2SpringToken#principal field access right
     add 961ec1af6a fix Travis CI using openjdk8 instead of oraclejdk8
     add 9d6698311c add missing URL mapping for authenticate action
     add cc7914388d Merge pull request #6 from yohannrub/grails-4-compatible
     add 3a85c597e8 Configure Github Workflows (#8)
     add ea46587e47 Change Github Workflow branch pattern
     add 9536db4f84 Fix docs build step in the Github workflow
     add 2d247abb6c [skip ci] Update README
     add b32fbbbcfd [skip ci] Delete .travis.yml
     add 59cc624744 [skip ci] Delete travis-build.sh
     add f486216ad4 Upgrade to Grails 5 (#9)
     add a8db17d6ab Update plugin version and other metadata
     add ef56db813b Fix groovydoc task configuration
     add cf88a89c2d [skip ci] Release v2.0.0-RC1
     add 5514ebd6da Back to 2.0.0-SNAPSHOT
     add c4746b67ba Fix Gradle docs task
     add 571b5b95fc Gradle Improvements (#13)
     add 2243f842e9 Update dependency com.bertramlabs.plugins:asset-pipeline-grails to v3.4.3 (#11)
     add 7da73b57f8 Update index.tmpl (#16)
     add e614f94a76 Update plugin com.gradle.common-custom-user-data-gradle-plugin to v1.6.4 (#14)
     add fa4f846a10 Update plugin com.gradle.enterprise to v3.13.4 (#18)
     add 05339f6d7f Update dependency gradle to v6.9.4 (#26)
     add 1790093752 Update dependency org.grails:grails-gradle-plugin to v5.3.0 (#24)
     add 88d3609583 Update plugin com.gradle.common-custom-user-data-gradle-plugin to v1.11 (#23)
     add 0ac858925d Update dependency com.bertramlabs.plugins:asset-pipeline-grails to v3.4.7 (#22)
     add 6c8a0a7b5d Update dependency org.grails.plugins:spring-security-core to v5.2.1 (#27)
     add 3e0b328af2 Update dependency com.github.scribejava:scribejava-apis to v8 (#20)
     add bc9c7a195f Update release-drafter/release-drafter action to v5.24.0 (#28)
     add 56139224ae Update GitHub Workflows (#37)
     add 2948579ab0 Update dependency org.grails.plugins:spring-security-core to v5.3.0 (#35)
     add 8c9c4e9284 Update plugin com.gradle.enterprise to v3.15.1 (#33)
     add b01a8d880f Update plugin com.gradle.common-custom-user-data-gradle-plugin to v1.11.3 (#32)
     add 1605b4bede Update actions/checkout action to v4 (#38)
     add 12f8f2c797 Upgrading to Grails 5.3.2 eliminating conflict with logback-config.
     add 116d5758e5 Don't understand why this breaks without the @Slf4j
     add 06d2787ea2 Added execute permission to gradlew
     add 8dbd558395 Merge pull request #36 from tucker-bluesage/3.0.x
     add 26c79e0f1e Back to snapshot
     add e6029bf530 Update dependency gradle to v7.6.3
     add 76f4ef3dc3 Merge pull request #40 from grails/renovate/gradle-7.x
     add 9eecb8b192 Update plugin io.github.gradle-nexus.publish-plugin to v1.3.0
     add 46adea9e67 Merge pull request #41 from grails/renovate/io.github.gradle-nexus.publish-plugin-1.x
     add 400fc67e99 Update publishing configurations
     add 493486a2ac [skip ci] Release v2.0.0-RC2
     add 5df432e008 Fixed sign artifacts
     add abd0ce8d45 [skip ci] Release v2.0.0-RC2
     add 1d22cd48a2 Back to 2.0.0-SNAPSHOT
     add 6de82c2b79 Update release-drafter/release-drafter action to v5.25.0
     add 322dda176b Merge pull request #42 from grails/renovate/release-drafter-release-drafter-5.x
     add afbb12bce7 [skip ci] Release v2.0.0
     add 7755d6e4d7 Back to 2.0.1-SNAPSHOT
     add da69354a75 Update plugin com.gradle.common-custom-user-data-gradle-plugin to v1.12
     add afb3dd9b1d Merge pull request #43 from grails/renovate/com.gradle.common-custom-user-data-gradle-plugin-1.x
     add ab2d7e374d Adding more documentation on how to create an extension.
     add 5d1cfd4c66 Merge pull request #44 from tucker-bluesage/2.0.x
     add ce34a66fef Update dependency org.grails.plugins:spring-security-core to v6
     add d4dc3eda56 Drop JDK8 in favor of JDK11
     add 8b0d93c446 Update release history
     add d1d264fd5a Update dependency org.grails:grails-gradle-plugin to v6
     add 02b6e003c0 Update release history
     add 3a694a0ba8 Merge pull request #45 from grails/upgrade-org.grails.plugins-spring-security-core-6.x
     add db57a52b6c Update to 3.0.0-SNAPSHOT
     add f059523868 Remove usage to deprecated 'set-output' command
     add 0c823ed813 Update release-notes.yml
     add 5d8bcfcfb3 Update to Grails 6.1.0
     add b4dd9808ee Merge pull request #48 from grails/grails6
     add 07492f72f5 Update GitHub Workflows
     add 68d576009d Merge pull request #49 from grails/ghworkflow
     add 231774d2a5 Add InitOAuth2Command ApplicationCommand
     add 11d00aecdb Merge pull request #50 from grails/app-cmd
     add 68dc46b0ae Update README.md
     add fcaa35ed96 Update dependency cglib:cglib-nodep to v3
     add e0a295200d Merge pull request #19 from grails/renovate/cglib-cglib-nodep-3.x
     add caa224da74 [skip ci] Release v3.0.0
     add 8f107ef51d back to snapshot
     add e0f5d4484b Update release.yml
     add 8ab1c7d20b Update dependency com.github.javaparser:javaparser-core to v3.25.6
     add 28bc8f4e85 Merge pull request #15 from grails/renovate/com.github.javaparser-javaparser-core-3.x
     add 079f8f70a5 Update plugin com.gradle.common-custom-user-data-gradle-plugin to v1.12.1 (#54)
     add 310a275948 Update dependency com.github.javaparser:javaparser-core to v3.25.7 (#52)
     add 8b5e85b145 Update actions/setup-java action to v4 (#51)
     add 7b8fcf772b Update plugin com.gradle.enterprise to v3.16 (#53)
     add 0ef84ba094 Update dependency org.grails.plugins:spring-security-core to v6.1.1 (#57)
     add 940a30ebcf Update plugin com.gradle.enterprise to v3.16.1 (#56)
     add 9898ce4415 Update dependency org.grails:grails-gradle-plugin to v6.1.1 (#55)
     add 12982eea89 Update dependency org.asciidoctor:asciidoctor-gradle-jvm to v4 (#59)
     add 06ed7c9030 Update dependency com.github.javaparser:javaparser-core to v3.25.8 (#58)
     add 1975437df3 Breakdown release workflow into multiple jobs (#60)
     add f0db0492fe use GrailsUserDetailsService get authorities. (#25)
     add 6c42cfc418 Remove plain classifier from the JAR (#62)
     add 5751bc5f8c Revert "Remove plain classifier from the JAR" (#63)
     add c5b441efeb Disable publishing to Gradle Enterprise for local (#64)
     add 521bdef5ea Remove step to upload artifact to GitHub Release (#65)
     add a5a3ec308d Use correct task name 'findSonatypeStagingRepository' (#66)
     add b92784121b [skip ci] Release v3.0.1
     add 34fa4377c8 Back to 3.0.2-SNAPSHOT
     add 8cea159c38 Fixed build documentation step (#67)
     add 5e70bca3ab Add Workflow to Publish Docs (#68)
     add 87546dfbc8 Update plugin com.gradle.enterprise to v3.16.2 (#70)
     add fa940a6e9c Migrate to Develocity build cache connector (#81)
     add c1c0183206 Update to 4.0.0-SNAPSHOT
     add 515d8d1d7d Merge pull request #86 from grails/update-4.0.0-SNAPSHOT
     add b92c90999e Update release.yml
     add a4f942b3e3 Switch to grails/github-actions
     add 2262633c91 Switch to grails/github-actions
     add 373677c291 Switch to grails/github-actions
     add 4f4824bf3d Readme cleanups
     add 859fb03161 Merge pull request #87 from gsartori/4.0.x
     add 85973effc2 Imported grails-spring-security-oauth2
     add d46aa6c1c0 initial commit
     add badf74d2a5 a few small adjustments
     add 59c13db6e5 test application - this is a Grails port of the Spring Security Contacts app
     add 6aad1b358a didn't mean to comment out the @Transactional annotations
     add 7a5c51d99f typo
     add 2a29de5200 tweaked error handling
     add 0f05ef5ff3 documentation
     add 2805c3d0e0 license
     add f7f50511c8 ignoring logs
     add ad016efa44 updated folder delete list
     add 074aed159d update to support multiple test apps
     add 8069fad7c7 added exception mapping for AccessDeniedException - not needed for 1.2 but needed for 1.3
     add f51e914a5d GString issue in Groovy 1.7
     add 5d7850e1aa update
     add 3c46e1140a documentation updates for minor Grails 1.3 issues
     add 59905fa6a6 added constraints
     add ead4c07c38 changed from positional params to named
     add 010b7ed2fc new permitted/notPermitted tags
     add aa71298ec7 GRAILSPLUGINS-2236 implemented run-as
     add b141e4cc23 update to Grails 1.3.3 and STS fixes
     add 5dd765c373 STS warnings
     add 6f6df9ce99 GRAILSPLUGINS-2320
     add fa366bf80e upgrade to core 1.0 and 1.0 release
     add 5a2d14a221 removed @Override annotations on interface methods that caused compilation errors in jdk 5
     add 55192aa9b2 First stab at fixing GRAILSPLUGINS-2793 SecurityAclTagLib permitted and notPermitted should behave the same as SpEL hasPermission when not using Acl Permissions
     add 8594fb13cf GRAILSPLUGINS-2796
     add 99cba3f028 whitespace
     add cf3cc1c946 GRAILSPLUGINS-2315
     add 8835130595 update docs for 1.0.2 release
     add 69bd6ba5f8 cleanup
     add a42d2ad239 GRAILSPLUGINS-2846
     add 4146ff976d GRAILSPLUGINS-2863
     add 1edb9b6f5b doc updates for 1.1 release
     add 2c8e7b9145 doc updates for 1.1 release
     add a7279dc98a GPSPRINGSECURITYACL-14
     add f688143dba cleanup
     add 4b7deef0e7 update to Grails 2.0.4, latest release plugin, and spring-security-acl 3.0.7 from Maven Central instead of ebr
     add b04e8b52ec license updates
     add b0615cede3 fixed deprecation warnings
     add fc7ff476ca don't use ant.echo
     add 0ac3681d2e removed use of ApplicationHolder
     add 0777ecb850 replaced dependsOn with loadAfter
     add 93c1cfb865 updated 'Configuring' message
     add 19bd8012e4 cleanup
     add 1f2f0d71b5 doc updates to get the PDF working, and new section 2.6 on custom permissions
     add 752ff5e59e made it easier to specify a custom Permission class with the grails.plugins.springsecurity.acl.permissionClass config attribute
     add 84074b43aa test app updates
     add f69937cbfd 1.1.1 release
     add 45d268153b cleanup
     add e6294acc34 updated optional metadata
     add a376ea1e67 update to use spring-security-core 2.0 and Spring Security ACL 3.2
     add fb500dc9a7 updated packages to be consistent with the core plugin
     add c2b0f5458b changed from using Log4j directly to Slf4j
     add 60334d3abd removing HQL since it's non-portable
     add c0c606f438 cleanup
     add 73cfd71f04 using protected for subclasses
     add 8c3abeff7d added scripts
     add 812502835a license updates
     add 8989b8ecfe wrong name
     add 360a30bf37 test fixes
     add 0fdff40525 updated to new toc.yml approach
     add 8407c9db94 doc updates
     add fb8f8c15f5 manually applying changes from https://github.com/grails-plugins/grails-spring-security-acl/pull/4
     add 0fcf7735fd renamed ClassLoaderPerProxyBeanNameAutoProxyCreator to AclAutoProxyCreator
     add 0d5b8c95ec Manually merged https://github.com/grails-plugins/grails-spring-security-acl/pull/8
     add 7848517374 updates from https://github.com/grails-plugins/grails-spring-security-acl/pull/3
     add 982f51058f manually applied proxy change from https://github.com/grails-plugins/grails-spring-security-acl/pull/5
     add 1d5fc9c204 don't proxy controllers
     add 0bf22b9b6b doc updates
     add b1e56b865c 2.0-RC1 release
     add 0a05625e2a updated the sample app
     add 5888d918fa pdf doc tweaks
     add 0ff7d6f500 GPSPRINGSECURITYACL-36
     add f92aeaa410 unproxy Javassist-proxied domain class instances to get the correct class name
     add 311bc0f108 Updated the Spring Security version to 3.2.3.RELEASE
     add bd251a7f23 Merge pull request #10 from cesarizu/master
     add 067fb06f19 GrailsClassLoader deprecated
     add e0f90bd69e import GrailsAwareClassLoader
     add 8698ad3c3c Merge pull request #11 from farko88/patch-1
     add 2721fe209c Allow configuration of permission granting strategy
     add 76e66b208f Inject permissionGrantingStrategy
     add a4e5267b89 Use injected permissionGrantingStrategy when instantiating AclImpl objects
     add 77b3736677 Merge pull request #9 from tcrossland/patch-1
     add e2a9132037 cleanup
     add e731862aff updated to spring-security-core RC4 and Grails 2.4.3
     add 9713658cae license update
     add 45f73b4470 using import aliases
     add 4fc3c35481 update to Grails 2.4.4
     add 372785d3b1 reworked tests as Spock tests
     add eab9b9e295 2.0-RC2 release
     add a18a123fe8 [GPSPRINGSECURITYACL-40] Changes to AclAutoProxy
     add b7b9e4746f Merge pull request #13 from beckje01/exploringProxy
     add 75ede15928 cleanup
     add 78df10aacb converted to Grails 3
     add 135fc33bee moved integration tests into test app
     add 2fa2dc7eba converted script that builds a test app for functional tests to a test app in the source
     add 7185f7a7f4 cleanup
     add 9dcb75f27f doc updates
     add 2661cbebb9 removed zipped sample app and put it online at https://github.com/burtbeckwith/grails-contacts
     add 5fc6f0de10 3.0.0.M1 release
     add 5d94f2fd60 converted to Asciidoc
     add adce60355b build updates
     add b59ea7ce47 Set unique Ehcache manager name
     add 52b4b465c0 Merge pull request #17 from treble-snake/fix-unnamed-cache-manager-error
     add cb6ec354e4 cleanup
     add 2caa1a20f4 added types where practical
     add 0b919f89dc GPSPRINGSECURITYACL-50
     add c31c144b01 Asciidoc fix
     add 991ed5ea86 log pattern updates
     add 25a4ce10ae added CompileStatic
     add 619b3158e0 GPSPRINGSECURITYACL-39
     add e5b2fe6204 GPSPRINGSECURITYACL-36?
     add aae95d275a GPSPRINGSECURITYACL-17
     add e90120f7a3 Manually applied changes from https://github.com/grails-plugins/grails-spring-security-acl/pull/16
     add e6294f4a67 cleanup
     add dd6114bd3b cleanup
     add fd5e211647 Slf4j fix
     add ba745255d7 update to Spring Security 4.0.3.RELEASE
     add 2dd9940073 cleanup
     add c44eeec6a8 added @EqualsAndHashCode to the domain classes
     add 86eafa538c minor fixes
     add 1eab53b7b5 using load() instead of get() since it's just used for the FK
     add a3edc0af64 updated controllerAnnotations.staticRules to the new format
     add b1c60ef238 moved ReportService and TestDataService to a package
     add a4c4106412 cleanup, minor tweaks
     add 0c43f7a52d updated parameter names to use the defaults in Spring Security 4
     add 37f903ba77 restored default values for fii.rejectPublicInvocations and rejectIfNoRule
     add fc7dfa8245 the ids are different for each test suite because the data is deleted and recreated, so the taglib tests need to be based on report number
     add 2c3430dceb finished migrating AbstractAclMappedServiceSpec to Spock
     add 0967b7ca74 added test for GPSPRINGSECURITYACL-23
     add 3172002336 licence updates
     add 4abddfd1e0 converted to Groovy
     add d980a6a4be fixed issues url
     add c21faca8fc cleanup
     add 5f6e27c567 removed static resources for the test app
     add d7aaa35a6f docs fixes
     add 99b0acfd75 updated to use a subclass of ConsoleAppender to prevent logging stacktraces from Boot's ErrorPageFilter, and from ExceptionTranslationFilter that are logged at the debug level, which clutter the output when testing
     add 4b2f512f9d 3.0.0 release
     add 6b1ac66d07 bug fix
     add 503dea3aa9 cleanup
     add 698eb8d888 cleanup
     add 653bc985ac using ClassUtils instead of AopUtils since there's no need to support older Spring versions
     add 043da2999d using LocaleContextHolder to use the browser's locale if running in the context of a web request
     add addc6363f3 added a flush call to the other deleteEntries method just in case it's needed
     add ee099a92c8 3.0.1 release
     add b6c8c67487 standardized .gitignore, build.gradle, and gradle.properties across plugins using common includes updated to Grails v3.0.11, Gradle 2.10 minor build cleanup
     add df3a0ca009 grails 3.1 compatibility (addresses issue #22)
     add 53e8b187c3 Merge pull request #23 from helgew/master
     add 4c71250fac Changes for compatibility with Grails 3.2
     add 12a06538c7 Fix extra import
     add 5f850873a1 Update templates and script
     add 4a43a6e9d7 Merge pull request #27 from grails-plugins/create_acl_domains_fix
     add 2d3c0a1e45 adding travis config files
     add 24dcb11468 3.1.0.BUILD-SNAPSHOT
     add 2577c58ceb Start filling in Travis build
     add 8aea2acb84 uncomment bintrayUpload
     add 2767daae24 Fix hibernate error and integration tests
     add a6aae27b53 Add README.md file with link to docs
     add 265de7429f Upgarde Spring Security Core Dependency Version
     add 7f7ee7ed03 reference code snippets from asciidoc
     add 122cbd2629 Fix functional tests setup
     add 619f35b036 Bump up docs to 3.1.1
     add 33b64caad7 Add echo statement to travis-build
     add b3168ea049 Deploy
     add 7a16ba79e6 Deploy only if tag
     add ab3b916bbd Update @Integration import
     add fc7abd41ae Update @Transactional annotation
     add abc464366a Move src/docs to docs module
     add 69346b57c4 Move to plugin module
     add d0eef534eb ignore Geb tests if geb.env not present
     add 6e6393c68c Extract GORMServices
     add 176d97778b Use Slf4j
     add 4d53a885c0 multi-project build
     add 46b1965c3a travis creds
     add bcce094316 publish archives to bintray and OJO
     add 816d42ecb7 Back to BUILD-SNAPSHOT
     add d87f2ac1d3 Attempt to fix travis build
     add 0ce07e3189 apply artifactory Gradle plugin
     add d32d7f3826 Set correct group and version
     add 0998d17c93 Set version 3.2.0.BUILD-SNAPSHOT
     add 3863690ba7 Improve docs
     add 86584c116e travis creds
     add e0d9c805b2 Update links to sample app
     add 99b8c947b5 Link to latest and snapshot
     add b4a2ca460d Set version to 3.2.0
     add df4afa940c Back to BUILD-SNAPSHOT
     add a5d6fbd6e7 Don't roll back the transaction if a NotFoundException is thrown
     add 0b130388e0 Attempt to use a different chrome
     add 77e3019244 Bump up webdriver-binaries-gradle-plugin to 1.3.
     add e8ea6f2456 Bump up chromedriver to 2.35
     add 0529462441 Document how to run the tests locally
     add 8e5d336311 Merge branch 'master' of https://github.com/grails-plugins/grails-spring-security-acl
     add 1f0aa45a8d Try sudo required
     add 2f2341171b Bump up springSecurityCoreVersion to 3.2.1
     add 9f9d08331a Remove gradle.plugin.com.energizedwork:idea-gradle-plugins
     add b70ece969d Bump up webdriver-binaries-gradle-plugin 1.4
     add 7a8f4078d7 Add 3.2.1 to history
     add bf138747ba Bump up version to 3.2.1
     add e5a5e67fbf Back to BUILD-SNAPSHOT
     add 366c537a22 Upgrade to Grails 4/ Spring Security 5
     add f6420b2cdd upgrade to Grails 4 - test release
     add ea970974ee upgrade to Grails 4 - test release
     add 38246dd2d9 upgrade to Grails 4 - test release
     add bae1976d7c upgrade to Grails 4 - M1 release
     add 265b85c5d8 upgrade to Grails 4 - M2 release
     add b5b6a46e06 upgrade to Grails 4 - M2 release
     add 0ec312e611 back to snapshot
     add ad71fc4aa2 Update to 5.0.0-SNAPSHOT
     add 46411bda8b Grails 7: grails-spring-security-acl
     add 68c96cac54 Update ProxyAwareParameterNameDiscoverer.groovy
     add 1e03dd7bc7 Grails 7: Remove artifactoryPublish.gradle and grailsPublish.gradle
     add 775f6148c1 Grails 7: further work and get tests working
     add 4eea4a48d6 Grails 7: Publishing
     add e05310b33a Grails 7: remove unneeded asset-pipeline plugin from the functional-test-app
     add 60f869fa9c Merge pull request #44 from bkoehm/bkoehm.5.0.x
     add d5c417ace7 Merge remote-tracking branch 'origin/5.0.x' into bkoehm.5.0.x
     add 8722ce0ff5 Merge pull request #47 from bkoehm/bkoehm.5.0.x
     add 30df7dee6d Grails 7 - build cleanup related to grails-publish update
     add 4b706e49dd Merge pull request #48 from jdaugherty/5.0.x
     add 0884dd7c59 Add missing url
     add 67f313d45a Merge pull request #49 from jdaugherty/5.0.x
     add 8d81f9a24e Grails 7: (#46) add notable changes to README.md for the 5.0.x version of the plugin
     add ce29a75a5f Grails 7: (#46) Update documentation with updated links and add @P annotation to examples
     add e05481a08f Grails 7: Per PR review, change 'compile' in Gradle examples to 'implementation'
     add 52a62c4c5a Grails 7: Per PR review, change source,java to source,groovy and source,html to source,xml
     add 2303302027 Grails 7: Per PR review, change Spring Security document links to point to 6.4.x
     add 91457514c3 Grails 7: Per PR review, get rid of asciidoctor warnings
     add dfc67763f0 Merge pull request #50 from bkoehm/bkoehm.5.0.x
     add af6bd29950 build: cleanup and standardize docs build file (#52)
     add 406a821c02 Fix NEXUS_PUBLISH_URL
     add 142eafb797 Switch to grails/github-actions
     add 793550e4f9 Switch to grails/github-actions
     add 08116bc6e5 Imported grails-spring-security-acl
     add 315b5495c5 initial commit
     add 95d35335ec added license
     add e98509d5e7 fixed loginUrl -> loginUri
     add 3e288bd5d3 cleanup
     add 6a84604ece new docs
     add 02cedf8aa1 ugprade to 1.3.2
     add 48234c5d17 updated single signout docs
     add fb9d943b7e update to Grails 1.3.3 and STS fixes
     add 0695973645 STS warnings
     add 2eff49eb00 GRAILSPLUGINS-2321
     add ee0c7b950e upgrade to core 1.0 and 1.0 release
     add 1742099799 removed @Override annotations on interface methods that caused compilation errors in jdk 5
     add 7af7be5860 1.0.1 release
     add 42feb323c5 GRAILSPLUGINS-2847
     add a68d67ef16 GRAILSPLUGINS-2848
     add a0463ce850 bug fix, wasn't overwriting existing BootStrap.groovy
     add 6a219e25a3 func test doc update
     add 7d17358c49 GRAILSPLUGINS-2848
     add a2f0d366bc GRAILSPLUGINS-2848 fixed property name
     add c5367de86a GRAILSPLUGINS-2318
     add d4ae156428 1.0.2 release
     add 120d99ffef Fix for cas.active
     add e8cdc3a13b Merge pull request #1 from smakela/master
     add 7b444f8b9f upgrade to Grails 2.0.4 for dev
     add b3eeb97d5f cleanup
     add 2ea39c873b licence updates
     add de7337da14 added release script
     add 2a05f14798 1.0.3 release
     add 2e9f1ed4b4 updated metadata
     add 6d07bc420d fixed plugin name
     add d5ed8afce6 fixed plugin name
     add 7c36b7f118 1.0.3 release
     add b1d80847c2 ignore docs in master
     add f033679907 GPSPRINGSECURITYCAS-14 added missing encoding parameter and overrideable default value
     add beadcad2f5 1.0.4 release
     add 7311140b66 1.0.4 release
     add 1f3a576715 fixed load order
     add 56721b6609 v1.0.5 release
     add 9d4828e70f license update
     add 83681ad092 updated to use Spring Security 3.2 and v2.0 of the core plugin
     add 4388656dbd updated package names to be consistent with the core plugin
     add afbab8c501 test app updates
     add 004415b9bc added script
     add dc6576c466 minor updates
     add bdb06b8920 fixed doc link
     add 76bd5d9a33 converted to new toc.yml format
     add 454ba9af08 PDF doc fixes
     add 11279aca1b 2.0-RC1 release
     add f6ff2b0244 Fix the multiple 'CAS Single Sign Out Filter' in web.xml
     add b6793b6629 Merge pull request #2 from provirus/fix-multiple-signout
     add a4e05054f1 Update dependencies
     add 9f1b541b6d Update plugin version
     add aedfa929ae Use maven for dependency resolution
     add c1c7feabb9 Merge pull request #6 from tcrossland/develop
     add 264b415c1f Convert to Grails 3 plugin
     add 9f1cbf7a9f Upgrade Spring and CAS dependencies
     add 70e0fd43ee Merge pull request #7 from dpcasady/grails3
     add 3b50d20b6a cleanup
     add d8a6af6066 converted test app script to real test apps, and updated Tomcat to 8.0.26
     add 862f0fa6f3 converted docs to Asciidoc
     add c206ffaa9f 3.0.0.M1 release
     add 2ed1c5e06e Fix typo
     add 415594250c Merge pull request #8 from dpcasady/cleanup
     add 6908fa07ff added installation notes
     add 66d9328041 doc updates
     add 681a373772 build updates
     add f311faef05 update to Spring Security 4.0.3.RELEASE
     add 84336fea65 updated issues url
     add 664215224e cleanup, logging updates
     add b756e52142 added Gradle wrapper
     add 7d14e56f41 manually applied https://github.com/grails-plugins/grails-spring-security-cas/pull/5
     add 945fbb1816 updated to use a subclass of ConsoleAppender to prevent logging stacktraces from Boot's ErrorPageFilter, and from ExceptionTranslationFilter that are logged at the debug level, which clutter the output when testing
     add 0a221822dc 3.0.0 release
     add ecad9f828d standardized .gitignore, build.gradle, and gradle.properties across plugins using common includes updated to Grails v3.0.11, Gradle 2.10 minor build cleanup
     add 700c97c12c Add README with link to documentation
     add d5a20414ad Merge pull request #18 from sdelamo/README
     add 0c6e447ae8 Upgrade Spring Security Core Version
     add 79a221f5b3 Add travis
     add 44511a3316 Bump up build number to 3.0.1
     add 9dfedf5b16 improve travis-build script
     add 50569d1949 Add release to version history
     add 9100077159 release only if tagged
     add 6ec8fc769e Multi project build
     add 458b4a9674 Remove publish-docs.sh, version.txt
     add 904add62be travis creds
     add 308587f98f 3.1.0
     add 042cd6bb90 Link to snapshot
     add d812c9d94a Apply artifactoryPublish y grailsPublish
     add 30ae94f4ec Back to BUILD-SNAPSHOT
     add 75bcfff18f get it working with Grails 5 (#31)
     add 49a2bef56b Delete .travis.yml
     add c4acac8101 Publish artefacts to Sonatype OSSRH (#32)
     add 05e9c11913 Delete travis-build.sh
     add 03493053ad Configure Github Workflows (#33)
     add 849c47d279 back to snapshot
     add ff0cd69774 Update dependency net.sourceforge.htmlunit:htmlunit to v2.59.0 (#41)
     add 23626f001a Update dependency org.springframework.security:spring-security-cas to v5.6.2 (#40)
     add 41fdd85da6 Update documentation (#43)
     add f0a73b5488 Update dependency org.seleniumhq.selenium:selenium-htmlunit-driver to v2.52.0 (#49)
     add 2847aa938e Update dependency org.jasig.cas.client:cas-client-core to v3.6.4 (#48)
     add a768c5b604 Update dependency org.hibernate:hibernate-core to v5.6.5.Final (#47)
     add 7518427027 Update dependency org.glassfish.web:el-impl to v2.2 (#46)
     add b44757dd58 Update dependency org.asciidoctor:asciidoctorj-pdf to v1.6.2 (#45)
     add 35d9a1921c Update dependency org.asciidoctor:asciidoctor-gradle-plugin to v1.6.1 (#44)
     add b57d3fe7f7 Revert "Update dependency org.asciidoctor:asciidoctorj-pdf to v1.6.2 (#45)"
     add 80f51ac045 Update dependency org.grails:grails-gradle-plugin to v5.1.3 (#39)
     add 566dd168f8 Update dependency org.grails.plugins:spring-security-core to v5.0.0 (#38)
     add d89d8b3a70 Update dependency org.hibernate:hibernate-core to v5.6.6.Final (#51)
     add 88657276fa Update dependency org.hibernate:hibernate-core to v5.6.7.Final (#52)
     add aa041850c3 Update plugin com.gradle.common-custom-user-data-gradle-plugin to v1.6.4 (#53)
     add 78d8a81f04 Update dependency net.sourceforge.htmlunit:htmlunit to v2.60.0 (#55)
     add becff29fe4 Update plugin com.gradle.enterprise to v3.9 (#54)
     add 7a4e3d5e52 Update plugin com.gradle.enterprise to v3.10 (#61)
     add ab60a7e3d3 Update dependency org.grails:grails-gradle-plugin to v5.1.4 (#62)
     add 7f516a7b5a Update dependency org.hibernate:hibernate-core to v5.6.8.Final (#59)
     add 077f5a3e14 Update dependency org.springframework.security:spring-security-cas to v5.6.3 (#60)
     add 9e0dbe24e1 Update dependency gradle to v3.5.1 (#35)
     add 2bbcade486 Update dependency org.asciidoctor:asciidoctorj-epub3 to v1.5.1 (#36)
     add bbac6727d2 Update assetPipelineVersion to v3.4.6 (#56)
     add 31e0bdaaab Update plugin com.gradle.enterprise to v3.15.1 (#67)
     add ac659dcbed Update plugin com.gradle.common-custom-user-data-gradle-plugin to v1.12.1 (#57)
     add 2303630df8 Update dependency gradle to v6.9.4 (#72)
     add 15c237d824 Update assetPipelineVersion to v3.4.7 (#71)
     add d528dd00b5 Update dependency org.grails:grails-gradle-plugin to v5.3.1 (#69)
     add 3906004b80 Update dependency org.springframework.security:spring-security-cas to v5.8.8 (#66)
     add 76c9d3e2fd Update release-drafter/release-drafter action to v5.25.0 (#64)
     add 850aa90450 Update dependency net.sourceforge.htmlunit:htmlunit to v2.70.0 (#63)
     add de1c376871 Update dependency org.hibernate:hibernate-core to v5.6.15.Final (#65)
     add b67076883b Update dependency io.github.gradle-nexus:publish-plugin to v1.3.0 (#73)
     add f928288778 Update dependency org.asciidoctor:asciidoctor-gradle-plugin to v1.6.1 (#74)
     add 740faf3fdb Update dependency org.asciidoctor:asciidoctorj-pdf to v2 (#68)
     add 2bf6b2fc7a Update actions/checkout action to v4 (#77)
     add 1cf209a3f9 Update plugin com.gradle.enterprise to v3.16 (#76)
     add 54a405cd6b Update dependency org.grails.plugins:spring-security-core to v5.3.0 (#75)
     add b0bb976dbc Update dependency org.asciidoctor:asciidoctorj-pdf to v2.3.10 (#86)
     add 0288f31e57 Update dependency org.springframework.security:spring-security-cas to v5.8.9 (#85)
     add 81f9595dce Update plugin com.gradle.enterprise to v3.16.1 (#84)
     add dd1408e228 Update actions/setup-java action to v4 (#78)
     add 1220067b8b Update dependency org.asciidoctor:asciidoctorj-epub3 to v2 (#88)
     add 86cedfdb43 Fixed groovydoc task (#89)
     add b9aa99841a Fix build documentation (#91)
     add c2bdeea85d Update index.tmpl (#94)
     add a9f75eb1c5 Update Publish to GitHub Pages step (#95)
     add 7015c4b110 Update Release Workflow (#96)
     add a5f3a15753 Fixed path for upload distribution step (#97)
     add d1ef34bd5e Rename rootProjectName (#98)
     add 85a91b21ad [skip ci] Release v4.0.0
     add 0beca63de4 Update to 4.0.1-SNAPSHOT
     add 4666292a06 Update renovate.json
     add fdb423f147 Update assetPipelineVersion to v4 (#79)
     add 681f892507 upgrde to grails 6
     add 0af06f4471 Merge pull request #102 from grails/grails-6-update
     add 4a9489dbea Update to 5.0.0-SNAPSHOT
     add 859d6e06e9 chore(build): Migrate to Develocity build cache connector (#105)
     add c189d83a0e Update to 6.0.0-SNAPSHOT
     add 545d30b342 fix github workflow
     add cf87e49398 Grails 7
     add 2c1b6ff210 Grails 7: switch GitHub workflow to use temurin JDK
     add 22d8f135fa Grails 7: Upgrade to Gradle 8.10.2
     add 7d2ee772cb Grails 7 testapps and remove testapps gradle wrappers
     add a428ec20be Grails 7: Don't force groovyVersion in build.gradle
     add 0b43518692 Grails 7: Upgrade to CAS client v4.0.4
     add c69975a29b Grails 7: testapps fixes
     add aeff460e16 Grails 7: Bundling a CAS server in the testapps directory is not realistically maintainable.  Remove the very old CAS server from the testapps directory and also remove spring-security-cas-test2.  The latter was a duplicate of spring-security-cas-test1 with the only difference being 'test2' was configured to run on a different port.
     add e33904f49f Grails 7: no need for the javax excludes
     add e9af5ba62b Merge pull request #107 from bkoehm/bkoehm.6.0.x
     add 5fefc2a78e Grails 7: Fix package name for HashCodeBuilder in the testapp
     add 703d3fa4ed Merge pull request #108 from bkoehm/bkoehm.6.0.x
     add 107a0693b8 Update to asset-pipeline 5.0.3
     add 6bd0894f45 remove hibernate-core-jakarta dependency which is transitive from hibernate5 plugin
     add 43bbae6e3b Update gradle.properties
     add 6332ddd15c Merge pull request #109 from grails/update-asset-pipeline-5.0.3
     add 5679a87d23 Update release.yml
     add 7b7b9ca7a4 Switch to grails/github-actions
     add ea1e429906 Switch to grails/github-actions
     add 92b8001aa2 Imported grails-spring-security-cas
     add 2b21297e0e initial commit
     add 05d149a768 upgrade to 1.3.2
     add a0f7df5792 renamed STS project
     add d8aa7a0a4e 0.1.1 release
     add fbd0f080d1 new docs
     add c6bf663392 escaped [ and ]
     add 8afee840dc fixed clipping in PDF
     add 7c5b169ec6 update to Grails 1.3.3 and STS fixes
     add 068a348669 STS warnings
     add ac01e70fc1 GRAILSPLUGINS-2322
     add 06790d2939 1.0 release
     add 1db1616830 removed @Override annotations on interface methods that caused compilation errors in jdk 5
     add c77f18d3da 1.0.1 release
     add d15c080071 GRAILSPLUGINS-2850
     add 19737c3594 cleanup
     add d826cc701d GRAILSPLUGINS-2530
     add 170aad1b31 GRAILSPLUGINS-2531
     add 5801605ea1 GRAILSPLUGINS-2540
     add e64de0881e added an ignore
     add df6ab0098a GRAILSPLUGINS-2362
     add a6e8eb8b27 GRAILSPLUGINS-2247
     add 0eeb393d7b 1.0.2 release
     add 0b62ec4405 removed unnecessary @Override that causes problems in 1.5
     add 59b8964845 1.0.3 release
     add 588ebae305 1.0.3 release
     add b7fcd118e4 GPSPRINGSECURITYLDAP-10
     add 7eeea0f99b bug fix to work with latest Spring Security Core plugin
     add a2984405b0 cleanup
     add 57da9bc6b5 1.0.4 release
     add 3cf811cd54 updated LDAP authority population to convert spaces to _
     add 731fbf3585 added more documentation for usage with active directory
     add 63f3218123 Merge pull request #1 from asharif/master
     add 4a95ea8503 cleanup for the Active Directory examples
     add 1a4f7ffdbe classpath update
     add d90d865541 update to grails 2.0 locally, updated to latest jar dependencies, updated to release plugin 2.0.2
     add 1eabbacaff cleanup
     add 69581e0e18 license update
     add 3612853443 1.0.6.BUILD-SNAPSHOT release
     add a2409a84a1 adding active directory example for recursive group membership support
     add 8c36521e5c Merge pull request #3 from aaronzirbes/active-directory-recursion
     add 778299500f adding role name manipulation support for pulling roles from LDAP groups
     add 9be505125c Merge remote-tracking branch 'aaronzirbes/role-customization'
     add 0a239ffa0c cleanup
     add e61e5f89f6 removed dependsOn, need loadAfter
     add f6669946a3 updated test app creation script
     add 61dc90affa 1.0.6 release
     add b1f062e3a6 converted to new toc.yml approach
     add 83f6bb448f update to use spring-security-core:2.0-RC2
     add 3569969282 updates for spring-security-core 2.0-RC2 and Spring Security 3.2
     add 1eabd1ec94 updated package names to be consistent with the core plugin
     add d8cdc3ba9b added license, organization, issueManagement, scm
     add 21d1534ea8 updated spring-ldap-core to version 1.3.2.RELEASE
     add 4a63228780 using protected instead of private for subclassing
     add ccb7a96451 license
     add 5af3d5a3a0 updates for Spring Security LDAP v3.2
     add 8566c56ed0 cleanup
     add a5f26bb110 test updates
     add 1cd3320e69 package fixes
     add d275787209 GPSPRINGSECURITYLDAP-12
     add 8b64fefea4 GPSPRINGSECURITYLDAP-19
     add b33901d623 doc tweaks
     add 783441eac7 added scripts
     add f2b6d6a7e4 2.0-RC2 release
     add 890ec91ab7 doc url fix
     add d3bbb88b08  * Update to Spring LDAP 2.0 [GPSPRINGSECURITYLDAP-25]
     add 190ac833ff Merge pull request #5 from tcrossland/master
     add 35d814a68a license updates
     add e0674e68ef updated to Grails 2.4.4, core plugin RC4, and latest jar dependencies
     add aa1236d943 converted to Groovy
     add ea9cccdb41 cleanup
     add 167bebd1ee Release version 2.0-RC3
     add dfb555f3a4 Fixed dependency error with ehcache-core being renamed to ehcache
     add 30fa716c97 converted to Grails 3
     add c417b84c54 converted docs to Asciidoc
     add 89ceebcd2e converted test app script into a real test app
     add 8c49853972 cleanup
     add 5f8897276c update to Grails 3.0.9 and Gradle 2.8
     add 75a4ddf6e1 moved version to version.txt
     add cf849ca241 update Spring Security to 3.2.9.RELEASE
     add 8985ebbacb config fixes
     add 1759a053a8 3.0.0.M1 release
     add 2c6acaaaf7 cleanup
     add 5f43a981b0 upgrade dependencies to stay in step with spring-security-core plugin
     add ed5d1baea9 Merge pull request #7 from dsklyut/upgrade-core
     add 9af7dac1d7 added Travis CI
     add ef533bd914 cleanup
     add 78e81e77ca doc updates
     add c043ba6282 Travis cache fix
     add d8a3affe78 Travis cache fix
     add 5c70fea015 no need for full assemble
     add 619ccfc037 cleanup, minor updates
     add 6c116b64fa license updates
     add 9086f5bc05 updated the issues url
     add 1c770c4859 passwords are hashed, not encrypted
     add e4a5ef6b08 removed static resources for the test app
     add 36067fda89 updated to use a subclass of ConsoleAppender to prevent logging stacktraces from Boot's ErrorPageFilter, and from ExceptionTranslationFilter that are logged at the debug level, which clutter the output when testing
     add cf76dc5239 updates for the functional test app
     add d4419bed12 3.0.0 release
     add a8b43bf953 cleanup
     add 9def43ba89 bug fix - the getter in the subclass is final, but there's already a setter and the default is "ROLE_" so no need for a property, setter or getter here
     add d0fe59e3fe v3.0.1 release
     add 945ed0c996 Update build.gradle
     add 5b5ae16997 Merge pull request #9 from Schlogen/patch-1
     add cf28d710ec Update custom UserDetailsContextMapper docs
     add 36642fe4a0 Merge pull request #10 from zoran119/master
     add e46fb49bae Bump up spring security core version to 3.1.2
     add 51325aa067 Bump up spring security core version to 3.1.2
     add 1a3de59dd3 Add  functional tests
     add ccc3c30225 Improve travis script
     add 028fa6af65 retrieveGroupRoles
     add 6d198660f9 Add tests for retrieveGroupRoles = false
     add 10a735b353 add functional tests to custom user details context mapper
     add aa9c6b55ee Add realease
     add 5b8959cc16 Reference code snippets from asciidoc
     add 65f2fa20a6 Bump up version to 3.0.2
     add d3f8db42b4 Correct project name
     add 5ee5a19dd8 Merge branch 'master' of github.com:grails-plugins/grails-spring-security-ldap
     add e62dec96b0 Fix travis encrypt
     add 10c8d9f2de Correct release date typo
     add cda0949caa For DatabaseOnlyLdap authorities return defaultRole even if user does not exists in DB
     add 3811f4960a Update DatabaseOnlyLdapAuthoritiesPopulator.groovy
     add dacb7708a0 Set version to 4.0.0.BUILD-SNAPSHOT
     add 57134b346a Update grails spring security core to 4.0.0
     add fdab2154ad Update gradle to 5.0
     add 2cb18409ff update gradle to 5.0
     add 0ea70f5659 Update spring security verison to 5.1.6.RELEASE
     add a2ddc79d26 Update grailsVersion to 4.0.2
     add 9ce7e22954 remove spring-boot gradle plugin
     add 5f66ac6fd9 remove gradle wrapper version at gradle.properties
     add c4229173e9 remove gradle maven-publish plugin
     add fe722ac89c bump up source and target compatibility to 1.8
     add 1526686d9c add Gradle grails-plugin-publish plugin
     add 6e37f88e61 add local grailsPublish gradle file
     add ca2745e214 add local artifactoryPublish gradle file
     add a4d0b67a11 bump up asciidoc versions
     add 5d68f611f7 use doLast instead of left shift
     add 05fa860c97 In Grails Plugin file grailsVersion = '4.0.0 > *'
     add 1535cfca39 bump up spring ldap core to 2.3.2.RELEASE
     add ae58a68ba7 replace grails-plugin-testing to grails-web-testing-support
     add 347c2e4ce1 Update retrieve-db-roles app to grails 4
     add 4b34746a71 Update @Integration import
     add 17452b6eed remove unused imports
     add d4042de50f Update retrieve-group-rules to Grails 4
     add e43e2086a0 Use gorm dataservies in bootstrap
     add 732dff9480 update custom_user_details_context_mapper to Grails 4
     add 41d959566c define springLdapCoreVersion in gradle.properties
     add 2c1361a98c Add test verbose to builds
     add f51b1c9007 move to com.test
     add e6c8220c76 run gradle tasks with console=plain
     add 0d1b9c2476 Use Gorm Data services at BootStrap
     add 767a4a6d89 Update functional-test-app to Grails 4
     add 0cd79aba7c test verbose in functional-test-app
     add dc3c76ba48 run functional-test-app tests in travis
     add 462d841f6c use gradle wrapper in docs script
     add 18b57a3a6c release v4 documentation
     add ec1fbafc7f add logging to travis-build.sh
     add 16f6686d1a remove epub docs output
     add 0ebbff939f remove pdf output
     add c59d2aa49b update asciidoc configuration
     add 05834a52cd use revnumber
     add 4bc36faabd Link to Github releases
     add 4d54eceb79 Instructions about release number for Grails versions
     add aff169a423 Add repository branch strucutre info to README.md
     add 68350cc74d merge docs publishing script to travis-build.sh
     add 1e10d51895 use openjdk8
     add f841573c5a attempt to fix docs publishing
     add afd11ecd4f remove env.global.secure
     add 387151521a Link to Snapshot documentation
     add bf1bcfd536 release 4.0.0.M1
     add 5c6b4711b3 git rm -rf snapshot/
     add a39c115b54 Doc how to control spring security core version
     add ad52218e05 Grails 7
     add 6e4c50536d Grails 7: further work, including getting tests working
     add 563ca953f6 Grails 7: GitHub Actions workflow
     add 6e9782d673 Grails 7: Publish artifacts
     add ee46d46265 Merge pull request #27 from bkoehm/bkoehm.grails7
     add 979a4c5f1a Merge branch 'grails-plugins:5.0.x' into bkoehm.grails7
     add 4295343028 Merge pull request #28 from bkoehm/bkoehm.grails7
     add 1d1d35bd7c Grails 7: fix publishing
     add 77a9489aec Merge pull request #29 from bkoehm/bkoehm.grails7
     add a1a9419f44 Reorganization project, fix tests so they run, and standardize publishing
     add 345e7a7171 Merge pull request #30 from grails-plugins/action-standardization
     add 42b509aaba Switch back to the root when generating documentation
     add d4b3f3ee17 Merge pull request #31 from grails-plugins/action-standardization
     add 63ca81052f Fix docs
     add cfdc3f88b9 Fix FOLDER
     add 4abb629401 Remove unneeded COMMIT info
     add 768b885aa6 Pre release 5.0.0-M1
     add 1b6938ea2c Pre release 5.0.0-M1
     add cf237938c1 Fix docs workflow
     add 0acbadd5ae [skip ci] Release v5.0.0-M1
     add 2bb53f0721 [skip ci] add group to workaround gradle-nexus/publish-plugin#310
     add 972f5ca904 [skip ci] Release v5.0.0-M2
     add e0d5fccd48 chore: Bump version to 5.0.0-SNAPSHOT
     add e705697e82 Imported grails-spring-security-ldap
     add cf46dda897 build: restructure `spring-security-core`
     add dc41bd477d build: use `org.grails.grails-publish` Gradle plugin
     add 9a4c6239c1 build: remove `grails-plugin-config.gradle`
     add 79308b8d69 build: rename `docs.gradle` to `docs-config.gradle`
     add 72822317ca build: extract java version to `gradle.properties`
     add 553cad4dd8 build: rename root project for clarity
     add 2096ce2633 build: rename core plugin project for clarity
     add aa82845819 build: extract core plugin docs to a separate project
     add 49a54f0774 build: update core project references in example projects
     add 58b13ae4f4 build: add `grails-bom` to core example projects
     add a5407fe229 build: back to Grails 7.0.0-SNAPSHOT
     add 626c48cdeb build: remove `maven-publish` and `signing` plugins
     add a4e76d5c1f test: remove `getPageSource()` method
     add f4d5b99967 build: clean up root build file
     add 43542db3a1 build: resolve `asset-pipeline-gradle` from `grails-bom`
     add d2983515c1 build: add general version property to all subprojects
     add 6296de2daf build: enable `acl` projects
     add 94abd94fee build: move `acl` example projects to `examples` directory
     add 030b329830 build: clean up Gradle plugin usage
     add b253fb4be9 build: enable the `cas` projects
     add 6d803c8ad8 build: consolidate test configuration into a single file
     add 2cc591405e build: remove `cleanBuild.gradle`
     add 3bdec4c79c build: update Gradle Wrapper to 8.12.1
     add 293de9034e build: cleanup dependencies
     add 8a49861be0 test(acl): migrate to `ContainerGebSpec`
     add bafb1f84d3 test(core): change `@Ignore` to `@PendingFeature`
     add bc61f90f26 chore: cleanup
     add d376332bbd fix: migrate to `jakarta` in `error.gsp`
     add 4eef34efbc build: enable `ldap` projects
     add a60d3e4803 build(acl): set the hibernate core version
     add c24a62dc96 build: enable `oauth2` plugin
     add ccd3efd98d build: disable parallel execution for `ldap-examples` projects
     add c597582ba8 build: enable `rest` plugin
     add 84982380c0 build: enable `rest-testapp-profile`
     add 3debea400a build: declare direct dependencies in `rest` projects
     add 1cd85d244e build: set the snapshot repo for the test profile
     add 79e451312b build: add test dependency for Gradle 9 compatibility
     add ad3dac94d6 build: enable `ui-plugin`
     add 6c3a8190f6 fix: update `ContainerGebSpec`s
     add 5bca26f488 build: remove old ui `build.gradle`
     add acdc46ec8e build: increase Gradle memory
     add 7cd6d7e531 fix: update Grails Plugin definitions
     add d85257a771 Update s2 quickstart to set hibernate-ehcache dependency
     add dc959402c6 Merge pull request #1055 from grails/hibernate-ehcache-breaking-change
     add 9f3d1d8278 Merge remote-tracking branch 'matrei/7.0.x' into matrei/merge-security-repos
     add 96a7b74fbc ci: set correct project name for functional tests
     add 4ed6f33c1c build: add json mapper implementation to functional tests
     add 1360c38aaa test: fix `getWithAuth()` error
     add d0350b81c3 test: fix another `getWithAuth()` error
     add 20f339a619 build: add group to `rest-testapp-profile` project
     add fb4c43e07d build: fix `core-docs` generation
     add cbb624dd8e ci: update `gradle.yml`
     add 219742ce71 ci: Update build scan and build cache config
     add f4b40f8ac2 build: disable some test output
     add e5b0471936 ci: set `--max-workers=2`
     add 90a687d2d4 build(docs): fix guide docs generation
     add 7ab635b502 refactor: remove individual LICENSE files
     add 81094c794b docs: remove unused `index.tmpl` files
     add 9afaa98aba build: remove unused import in root `build.gradle`
     add d05d4ff026 build: add `clean` task to root project
     add 32e5e12051 docs: update all README files
     add af1e1fabf1 docs: aggregate all docs for publishing
     add c535f4af08 build: cleanup commented code
     add 90ab3e7981 ci: update workflows of aggregated docs
     add 0f7feef700 build: remove `hibernateVersion`
     add 0a30930bd3 docs: remove author from cas guide
     add 270ccd4b5f Merge pull request #1057 from matrei/matrei/merge-security-repos
     add 7fe350e632 [skip ci] fix release workflow to be able to create tags
     add 6d0950af93 update to Grails 7.0.0-M3
     add ac2ac55d65 [skip ci] Release v7.0.0-M3
     add 7985d20ff9 fix grails-publish
     add e6eeec7f5d chore: Bump version to 7.0.0-SNAPSHOT
     add 8a14931fb9 chore: adapt to new repo name (#1097)
     add 5247410477 Switch to grails/grails-github-actions/deploy-github-pages@main
     add c650861dfb Fixes #1098
     add 7f605f8693 #1098 - Update test
     add 8b874f0965 Merge pull request #1099 from lynchie14/fix_filter_order
     add 8e231d677b Update URLs to https://, https://github.com/apache/, grails-spring-security and https://apache.github.io/
     add 49c4302172 Update to apache github action URLs
     add c3ad59fa1c Use currently approved version
     add a373b70306 fix urls
     add 06b354e8db Merge pull request #1102 from apache/adjust-gradle-workflow
     add 87bc0e2dc8 Merge branch '7.0.x' into bulk-url-cleanup
     add 3c2f7b46dc fix more action URLs
     add ff1616c53d remove if: success() which is redundant
     add 3aafab03a4 Merge pull request #1103 from apache/adjust-gradle-workflow
     add c7bbfba3b7 Merge branch '7.0.x' into bulk-url-cleanup
     add d5590ebda1 Merge pull request #1101 from apache/bulk-url-cleanup
     add f139db5f58 build: Apache artifact rename
     add a5529cd815 test: fix username typo so test passes
     add fdb69dc9d1 build: remove temporary `grailsCacheVersion`
     add bbc3c31dbf Merge pull request #1105 from matrei/apache-coords-change
     add 4942e44442 build: fix publishing by adding back platform
     add aa0111136a Merge pull request #1106 from matrei/publishing-fix
     add 8d36ecf074 ci: set correct env var `GRAILS_PUBLISH_RELEASE` (#1107)
     add 4012be13cb build: switch develocity instance (#1108)
     add fbde279ea6 build: remove workaround for `asset-pipeline` (#1109)
     add 1354f88eba build: update develocity auth
     add 5127691a9f build: remove unused build config
     add 24c41ff9a7 Merge pull request #1110 from matrei/develocity-apache
     add 3d8246d772 fix gradle build error for plugin-rest/spring-security-rest-testapp-profile
     add c2c7877ff4 Merge pull request #1111 from bkoehm/bkoehm.7.0.x
     add a8a58f364f grails-web-boot artifact group has changed
     add 0e98788170 Merge pull request #1112 from bkoehm/grails-web-boot.renamed
     add 5ba1d6d560 build: add Apache RAT plugin and clean up Groovy version handling
     add cbdfb7e353 build: update `.sdkmanrc`
     add 9bc7b932b7 build: add license header scripts
     add 5ad074676a chore: add license headers to Asciidoc files
     add d92a8b682d docs(acl): remove the code project form acl docs
     add 969c6e4cda docs(core): remove the code project form core docs
     add eb626a6948 test: revert `xmlns` to `http` in SVG
     add ac49e7a0b3 docs: revert `xmlns` to `http` in template
     add 0a4874d8e2 fix(log): replace deprecated `converterClass` with `class`
     add 033bd8eb09 chore: clean up unused plugin `Application` classes
     add 24a58be84a chore: clean up unused `grails-app` directories
     add a506bdcc2f chore: add license headers to `yml` and `yaml` files
     add b019cecd04 chore: add license headers to `gradle` files
     add 3f4b537a74 chore: build file updates
     add 6bd8354a69 chore: add license header to `settings.gradle`
     add a9629df52d chore: add license header to `gsp` files
     add 207b02c1eb chore: remove unused xlink namespace from svg files
     add 8987245bc9 fix: revert DTD http->https change
     add b8ea6d1e8e chore: add license header to `properties` files
     add 06efe254e2 build: add webjar dependencies
     add 06453d21c1 chore: add license header to `css` files
     add ecf7acd708 chore: add license header to `js` files
     add 8811255dbd fix: use webjars
     add db0767aa0a chore: add license header to `md` files
     add 16503932bf fix: adapt `SecurityFilterPosition` to Spring Security 6.5.0
     add 6b8dcc28c5 chore: add `LICENSE` file to `ui-plugin` project
     add 48bcc7559e chore: add `NOTICE` file
     add c7781589e4 test: update `spring-security-cas-test1` layout
     add 5b176519ac chore: add license header template
     add 9be38978b8 chore: add DISCLAIMER
     add 7104a94f1c chore: update / add standard copyright
     add c4a53913f3 chore: add rat workflow
     add dd95523e31 chore: add code of conduct
     add f334db93cf chore: add build instructions & gradle bootstrap project
     add c5ad4c6e14 chore: reproducible build date configuration
     add 781e539b73 chore: support skipping tests
     add eca91d3997 chore: update ci to match grails-core configuration
     add 55666ff100 chore: update release create workflow for ASF process
     add 4f7e53c258 chore: add reproducible build scripts
     add e5c856a65e chore: reproducible configuration
     add fa6289a0a5 chore: add checkums & artifact listing for build verification
     add e5a0499395 add positionBy.js and jdMenu.js to NOTICE and LICENSE files
     add 155284b643 fix typo
     add edffe32332 Add org.gradle.crypto.checksum gradle plugin
     add 8b3a97085d Add missing s
     add 70bbc89ac7 Add CODE_OF_CONDUCT.md to rat excludes
     add 6230389b69 Fix assetcompile issues with webjars
     add 6618b7da0f fix: use requestURI instead of servletPath since the switch to PathPatternRequestMatcher requires a parsed path instead of AntPathRequestMatcher which requires only the servletPath
     add 6f9d2aee09 chore: ignore generated views
     add a81b364ac5 chore: update reproducible build script
     add 0e2e9fcf8b chore: reproducible build fixes
     add 4fca875beb chore: ignore update asset cache file name
     add 252e3993e1 chore: exclude build directories
     add 20d1ae4a89 fix: turn off dependency management plugin to ensure we build with local projects & dependency exclusions are honored
     add 36b44429ba chore: remove metaspace size since in later JVMs it's unlimited
     add 24a5fb7b44 Merge pull request #1115 from matrei/license-headers
     add f7102d6022 use webjar path to datatables.js
     add 6b1cca8904 fix ldap tests to not depend on external services
     add b9e5c3ecfd Add waitFor to pages to ensure titles load before validating
     add bb44d672e6 fix test for 14 -> 15
     add 855395d83a add waitFor for page checks
     add 1c459e64bf remove reporting from previous debug
     add e9de328fbb downgrade to selenium 4.25.0 until we can properly add waits throughout our test cases
     add 3f75b35b70 reverse skip test logic
     add f0770a027c Use org.apache.grails:grails-redis:5.0.0-SNAPSHOT
     add bd695cab60 Reorder README
     add 0ab120a95f port release workflow from grails-core & setup environments for delayed approvals
     add b522cc6f1d fix licensing order
     add 9fc63ba4bd remove unnecessary parallel limit
     add e3fd31db52 fix mismatches in sdkmanrc
     add 935934065c publish builds on manual kick offs
     add 3b86b2ac3f grailsVersion -> 7.0.0-M4
     add 6c8bc06129 Merge pull request #1116 from jdaugherty/7.0.x
     add 309d7f669f fix docs config
     add a5e63af622 Merge pull request #1117 from jdaugherty/7.0.x
     add adfdf84272 move license generation to grails-core
     add d7f3517131 add verification scripts
     add 86ebb7ddbd Merge pull request #1118 from jdaugherty/7.0.x
     add 6e17eab11f remove google analytics
     add 209206372a update documentation
     add 656027752c Merge pull request #1120 from jdaugherty/7.0.x
     add bffbe90275 reduce load on RAO
     add 7978bf528e Merge pull request #1121 from jdaugherty/7.0.x
     add a1ab9956dc Add workaround for https://github.com/softprops/action-gh-release/issues/628
     add 3654a74c47 Merge pull request #1122 from jdaugherty/7.0.x
     add e7cc5a5444 Add workaround for environment approvals
     add ac8b972c49 Merge pull request #1123 from jdaugherty/7.0.x
     add b7dff09a8e Add release artifact download helper
     add 6cb48b7d2b update from grails-core
     add 17c5e038e4 verify using KEYS from dist.apache.org
     add 12a69f327d update release workflow for redis testing
     add a8959ce209 remove contributing requirement
     add cb3d1f2e1d allow specifying extract location
     add e270ad60e2 Match java version in sdkmanrc
     add f902e90290 filter empty lines
     add ac33e9df8f do not write empty diff lines
     add e7957da4f9 Merge pull request #1124 from jdaugherty/7.0.x
     add 5d53363c01 set redis to 5.0.0-M4
     add a3f1927777 clarify publish workflow name
     add 98341a3670 update grails-mail plugin
     add e810a1e530 Merge pull request #1125 from jdaugherty/7.0.x
     add 05c6fb07b1 adjust rat root config to work correctly with the source distribution
     add 5df9e57f84 Merge pull request #1126 from jdaugherty/7.0.x
     add ac3ec97f69 rename the last release step to reflect its purpose
     add 0cbc964cce Merge pull request #1127 from jdaugherty/7.0.x
     add f425ea6749 remove .bat file
     add 01af0efdc4 update verification script to be runnable from anywhere
     add 6022fe5362 include js & css from license in notice
     add 602a57a61f Merge pull request #1128 from jdaugherty/7.0.x
     add 63f6814b61 #14787 - reduce RAO load
     add b0f9350b3d Merge pull request #1129 from jdaugherty/7.0.x
     add 2dc34a6765 Add release version for debugging
     add f4aadfe6ce Merge pull request #1130 from jdaugherty/7.0.x
     add b252fba3cb verification fixes
     add 13133fd00a Merge pull request #1131 from jdaugherty/7.0.x
     add dc1bbb9035 Update NOTICE
     add 04ea326a39 Merge pull request #1132 from apache/shrink-notice-1
     add 671c25e912 Add missing permission pull-requests: write
     add 7a9d7a3617 Merge pull request #1134 from jdaugherty/7.0.x
     add e7028fb904 [skip ci] Release v7.0.0-M4
     add e4f8af9481 [skip ci] Bump version to 7.0.0-SNAPSHOT
     add 759de5c8dd Merge pull request #1135 from apache/merge-back-7.0.0-M4
     add 31195f0944 Fix a nit in the plugin-rest oauth.doc
     add 3b1758eff2 Merge pull request #1136 from gandharvas/nit-fix
     add 5c0481c30d Back to Grails 7.0.0-SNAPSHOT
     add 37be326dd7 Update to Gradle 8.14.2
     add a8164b4efd Update asset-pipeline to cloud.wondrify groupid
     add 0992b4bff2 Adjust includeVersionByRegex and includeGroupRegex to use parenthesis
     add f2168ab292 Merge pull request #1137 from apache/wondrify-groupid
     add 97c09814a1 Add links to plugin documentation on README.md
     add 8df805902d Update README.md
     add 7320e1bc98 Merge pull request #1140 from apache/plugin-docs-readme
     add d1499cb0fe Fix typo in `spring-security-core_de.properties`
     add d954c428d1 Merge pull request #1141 from felixscheinost/patch-1
     add e22cbe1a11 1183 Move the configuration of the SecurityContextHolder to before the beans are defined.
     add 9a63a8e207 Merge pull request #1139 from lynchie14/issue_1138
     add 5a7b964fdc test: remove unnecessary `waitFor` in Geb `at` checks
     add 119dd6e6ed test: workaround issue in `buildSrc` test dependencies
     add 0123503ebe fix: back to Sitemesh 2
     add 6f10819b7a chore: update to Grails 7.0.0-M5
     add 25f02550f6 chore: use `grails-bom` for `grails-layout`
     add d8bcc63eed chore: remove workaround for Groovy version
     add 9304b37822 test: add in-memory ldap server to test app
     add 94831e55c8 build: make buildSrc testing Gradle 9 compatible
     add 3a8c1c6167 chore(build): clean up `skipTests` condition
     add 90917e41f0 build: turn off `springDependencyManagement` for test apps
     add 06d0f664c6 build: add Geb debug settings
     add 5815ce2834 build: update develocity plugins
     add c7c86db369 Merge pull request #1144 from matrei/sitemesh2revert
     add 999a66d13d ci: updates to the release workflow from the grails-core release process
     add 90bfa23467 Merge pull request #1146 from jdaugherty/7.0.x
     add 3527ce7920 dep: bump grails-redis to 5.0.0-M5
     add 64d89245d8 Merge pull request #1147 from jdaugherty/7.0.x
     add 71a1b96a72 [skip ci] Release v7.0.0-M5
     add eff69aa547 Reuse CreateReleaseDropDownTask from grails-docs-core Remove duplicative code from buildSrc
     add e5c893b5b8 Merge branch '7.0.x' into release-dropdown
     add 8227b45c82 Remove docsVersionSelectorInclude
     add 0b9fe964ec Fetch tags when generating docs in GitHub workflows
     add a04bd8c9a8 Update ghpages.html to include links to documentation for all 7 plugins
     add 20e4bf54b9 Simplify list by removing duplicate text and using nested list, fix references to CORE only
     add 0b052c31d6 Simplify list by removing duplicate text and using nested list
     add 98e84ab5f5 Adjust title tag
     add c2adfa6198 Merge pull request #1148 from apache/ghpages-html-update
     add b1004020ef Merge branch '7.0.x' into release-dropdown
     add dd48b4da65 Add fetch-depth: 1
     add f9b6defc7f Merge pull request #1145 from apache/release-dropdown
     add 8d4b448bcc [skip ci] chore: add actions permission to allow merges of releases that update a workflow
     add bbcecff336 [skip ci] Merge pull request #1150 from jdaugherty/7.0.x
     add eefea1e7e8 Back to grails 7.0.0-SNAPSHOT
     add dfe5cc92c9 Fix grails-layout groupid
     add a7130ac6ea Merge branch '7.0.x' into merge-7.0.0-M5-tag
     add 5c1c5fb069 Merge pull request #1151 from apache/merge-7.0.0-M5-tag
     add 89bd3f9863 Add grails-layout dependency to test projects
     add 6b504dd2d5 Merge pull request #1152 from apache/add-grails-layout
     add 56df5cd749 chore: update for grails publish move
     add 0e822fb51f Update Docs to use Apache Grails Maven Groupid
     add 11f9ab3022 Remove plugins from maven groupid
     add a61b186d7e Change artifact ids to start with grails-spring-
     add 2cc687cfa6 Fix references to grails-spring-security (to not include -core)
     add 649468f955 Merge pull request #1155 from apache/apache-maven-groupid-docs
     add 49f3978598 Fix documentation link
     add 03f9659e40 Update documentation link to point to location updated by snapshot
     add 4011ce6993 ACL Plugin 7.0.x fixes (#1154)
     add 147afc6d78 ci: update release drafter
     add 93dab4ab61 chore: update rat config
     add 6d21f1e773 feature: upgrade to Grails 7.0.0-RC2 & Redis 5.0.0-RC2
     add d2a2a3ec0b ci: release auto-upload
     add 75625be568 ci: switch to release drafter only
     add 875b187926 Merge pull request #1158 from jdaugherty/7.0.x
     add 4605a3348d Merge branch '7.0.x' into update-release-drafter
     add 1b11f776e2 Merge pull request #1157 from matrei/update-release-drafter
     add aaef8460c1 ci: add commit hash for vote templates
     add 5ddf8edf2f Merge pull request #1159 from jdaugherty/7.0.x
     add 2ea1aeaf15 ci: add release abort workflow & update verification script to check svn artifacts
     add c7502f6dbd Merge pull request #1161 from jdaugherty/7.0.x
     add 75d01c6102 chore: adjust verification script to not error when no differences remain
     add 3987890351 Merge pull request #1162 from jdaugherty/7.0.x
     add 46a1d8c02e remove references to Grails 3 from CAS plugin documentation
     add 64795cd7fb Merge pull request #1163 from bkoehm/bkoehm.7.0.x.casdoc
     add ee3482e266 throw a more descriptive exception when required CAS configuration values are not set (issue #1079) (#1164)
     add 480ea4cbf4 test: fix logging in example apps (#1168)
     add e0ab3ad99c [skip ci] Release v7.0.0-RC2
     add 48761154a0 [skip ci] Bump version to 7.0.0-SNAPSHOT
     add 3c2a93d1d4 Merge pull request #1169 from apache/merge-back-7.0.0-RC2
     add cba01bf922 chore: post release scripts
     add 5ec3d0b0c7 Merge pull request #1170 from jdaugherty/7.0.x
     add ac7f1b7df4 chore: update annoucement template after release
     add 2da6ccef7d chore: fix announcement links
     add 3cd12d7868 Update installation.adoc
     add 3d8c90fcc8 Update installation instructions for Spring Security Plugin
     add 5de214c90a Merge pull request #1171 from arjangch/patch-2
     add c749429a2f Fixed usage of client.getRedirectAction by adding CallContext
     add 93be60c9c7 Merge pull request #1166 from apache/7.0.x
     add 4dbe6048af Merge pull request #1167 from apache/fix/plugin-rest_pac4j_JEESessionStore
     add f9d3c3eae6 Update documentation and commands to use ./grailsw
     add ae5942ad10 Merge pull request #1175 from apache/grailsw-s2-commands
     add 8db22f47c3 Removed traces of incubation, DISCLAIMER and PPMC
     add 4875b327cf Merge pull request #1176 from apache/chore/issue-1174
     add d05390fe90 Disable Spring dependency management in plugins
     add 01ee69250f Refactor dependencies to use version variables
     add db7e038d92 Merge pull request #1180 from apache/published-dependency-cleanup
     add ae1acf9f59 docs: use correct config for static mapping rules (#1182)
     add 8ab0d1b8f5 enhance gradle s2-quickstart to handle running in a web-plugin profile
     add 99999b02ea Update plugin-core/plugin/grails-app/commands/grails.plugin.springsecurity/S2QuickstartCommand.groovy
     add 3499549412 Update plugin-core/docs/src/docs/introduction/gettingStarted.adoc
     add 7c7dc22b18 detect if we are using application.yml vs groovy and inject spring configuration in the yml instead
     add 7ecf9c5bd8 feedback: spelling fixes
     add f7cea3078a Merge pull request #1177 from apache/patch-quickstart-plugin
     add c7dcbcf051 Inline guide release-dropdown task from core (#1185)
     add 252c47710b fix: release prep 1/2
     add 7d73123072 fix: make tests run with Grails 7.0.0
     add 23c946ab6b fix(deps): update dependencies before release
     add e220c4a0b8 build: fix and cleanup
     add fd6d4337f4 fix: release prep 2/2
     add 667c92551e build: make tests more resilient in ci
     add 604c64eccb test: cleanup
     add 4eb60bcc79 test: more cleanup
     add 062a032671 test: cleanup & add longer wait for test to pass in ci
     add 95eca77b52 test: more test cleanup
     add dc0bac4215 test: try changing test settings
     add 5abd557e39 test: add more waitFor
     add ff97dafe44 test: wait for slow CI environments
     add 7343428e27 test: add --no-parallel for ci check
     add fa3ad3f463 test: downgrade to selenium 4.25.0
     add e7588dda1f test: revert timeout changes
     add 08ddb189bc Merge pull request #1186 from apache/fix-tests
     add 9f90f67e7d docs: specify a domain class name when securityConfigType is Requestmap (#1179)
     add 0bc8358fe3 docs: update requestmap docs
     add b6b79eadf4 Merge pull request #1 from matrei/docs-requestmap-suggestion
     add 4e90cdfbd8 docs: link to the example request map domain class in the request mappings section (#1179)
     add cdf0cb659f Merge pull request #1187 from bkoehm/bkoehm.7.0.x.1179
     add db781f5b21 [skip ci] Release v7.0.0
     add 41368e0c51 [skip ci] Bump version to 7.0.1-SNAPSHOT
     add 8b6ee8a59d Merge pull request #1190 from apache/merge-back-7.0.0
     add dbcd070da7 [skip ci] post 7.0.0 release adjustments
     add 55b24d03ab [skip ci] Add additional required reviewers for GitHub environments
     add 87c4dad5e9 #1191 - use the jakarta version of ehcache
     add 83759103f7 Merge pull request #1192 from jdaugherty/7.0.x
     add 54a8b8e52f #1195
     add 1d87d45007 #1195
     add 5b89c592e1 Merge pull request #1196 from billgonemad/documentation-fix-1195
     add c8bcd8cc37 Update develocity server URL to Apache
     add 708cd9a913 Merge pull request #1199 from apache/develocity-apache-org
     add 45f10fb57c Update gradle to 8.14.4, update to Grails 7.0.7, & update java version to 17.0.17
     add 59c8972c5b Merge pull request #1200 from jdaugherty/7.0.x
     add 49e5709b55 restore the testapp profile creator
     add 95c0fba6ed Merge pull request #1201 from jdaugherty/7.0.x
     add da8457d78c #1172 - Update s2-quickstart command examples
     add c070ee9b62 Merge pull request #1202 from jdaugherty/7.0.x
     add 469c6b3a72 Update to redis 5.0.1
     add 0cad208055 Update release note pipeline to prevent running with release pipeline
     add 60d49dc0bc Add concurrency settings to release workflow
     add 85c22d9669 chore: remove unessecary dialect in application.yml
     add 87f641ecf6 Merge pull request #1203 from apache/cleanup
     add 866b91dba6 [skip ci] Release v7.0.1
     add 85e347c8ec [skip ci] Bump version to 7.0.2-SNAPSHOT
     add f899ecd70c Merge pull request #1204 from apache/merge-back-7.0.1
     add 561c14fe61 Add YAML examples for staticRules and interceptUrlMap configuration
     add 9cc31a29f8 Fix URL case for SomePluginController and add full config path to IMPORTANT example
     add 31c110163a Merge pull request #1206 from jamesfredley/docs/add-yaml-examples-for-static-rules
     add e8a9cb2adc Document springSecurityService null in BootStrap and password encoding workaround
     add 4087faae3e Fix documentation wording for beforeInsert and double-encoding guidance
     add 0ebd00abaa Merge pull request #1207 from jamesfredley/docs/bootstrap-password-encoding
     add a783a429c2 Auto-exclude conflicting Spring Boot security auto-configurations
     add db38e2c99a feat: add opt-out property for auto-configuration exclusion filter
     add d9e4337d80 docs: update README with auto-exclusion opt-out instructions
     add 6588157840 docs: add auto-configuration section to installation guide
     add 9656c94853 test: add integration test and document excludeSpringSecurityAutoConfiguration property
     add 2e17b1d23f build: clean up and sort dependencies
     add e2d33f9e5e style: groovify autoconfiguration exclusion logic
     add b1341f5e44 test: clean up and more readable
     add 8da9c2b233 Merge pull request #1205 from jamesfredley/fix/auto-exclude-security-autoconfig
     add a6e8acfde3 Fix ehcache jakarta classifier missing from published POM
     add d8b8a730a6 fix: move ehcache classifier logic to pomCustomization
     add 0f83030b90 Merge pull request #1209 from apache/fix/ehcache-jakarta-pom-classifier
     add f1d6bed5d9 docs: add configuration metadata reference
     add 27113f2853 fix: exclude spring-configuration-metadata.json from RAT audit
     add 00536a1f61 Add Apache license header to generated configurationProperties.adoc
     add 0ee54a4b2a Address Copilot review: fix defaults, grammar, heading levels, and empty string handling
     add be43a9d6f7 Remove generated configurationProperties.adoc from source control
     add 5fab3c6fd0 Add 62 missing config properties and 5 new groups to metadata
     add 95612678a3 Combine spring security docs into a single guide
     add b7d6b71970 Link to groovydoc
     add 4b6bad7c67 Update stale Spring Security API links to use resolved versions
     add b5cb5ff98d Remove duplicate reproducible-config.gradle applies from plugin docs
     add 4c120c75a0 Replace em dashes with hyphens in whatsNew.adoc
     add ada84bf864 Fix duplicate ids in combined doc
     add f62a679776 Fix anchors & remaining nesting problems
     add 02110a75d7 Merge pull request #1211 from jdaugherty/doc-combination
     add 7c436c99ba Pin GitHub Actions to Apache-approved commit hashes
     add 57192676e8 Merge pull request #1213 from apache/pin-workflow-actions-to-approved-hashes
     add 345b841d9a Merge branch '7.0.x' into docs/spring-configuration-metadata
     add 4cd98ac062 Merge pull request #1210 from apache/docs/spring-configuration-metadata
     add 5eb25bb91b Update pac4j version to 6.4.3
     add 7782f5a5f6 Merge pull request #1217 from jdaugherty/7.0.x
     add 82630c6575 Update to Grails 7.0.10
     add 9773011d1b Merge pull request #1218 from apache/grails7010
     add a245b6f406 [skip ci] update to Grails 7.0.11
     add 297c967fc3 [skip ci] Release v7.0.2
     add 016cfb6c49 [skip ci] Bump version to 7.0.3-SNAPSHOT
     add b5e93416de Merge pull request #1219 from apache/merge-back-7.0.2
     add d9fc216cf7 refactor(test): share UI functional test fixtures
     add 71fcae7295 build: add script for running all tests
     add b6cae9fb05 chore: add missing license headers
     add 9cbf91b3e2 Merge pull request #1222 from apache/simplify-tests
     add 09c196cf0a ci: audit and update GitHub Actions to ASF-approved versions
     add 9ea4e217eb Merge pull request #1225 from apache/ci/setup-gradle-v6-basic-cache
     add 6d06f6c84f Initial import of Grails Spring Security Repository
     add fd1939a7e2 Spring Security Merge - Initial Moves
     add f31b650ce4 Spring Security Merge - Integrating projects
     add 0086e806e7 Spring Security Merge - migrate documentation
     add 872d7b6d25 Spring Security Merge - reference projects directly now that they're imported
     add 332e65e0bb Spring Security Merge - update project name references
     add a86cb5f504 Spring Security Merge - switch to grails testing httpclient instead of micronaut
     add 0e2c4bdcf7 Spring Security Merge - update property name to match existing style
     add c8d9896c2e Spring Security Merge - fix testapp profile to match other profile plugins
     add 30d68b68b5 Spring Security Merge - fix project references to shared test project
     add 33692c5f0d Spring Security Merge - update source documentation
     add 75c5f9577f Spring Security Merge - remove release history / authors
     add bcb722c888 Spring Security Merge - update docs to take advantage of bom syntax
     add 39f0654b78 Spring Security Merge - remove hard coded url references to project documentation
     add ddb54e551c Spring Security Merge - clean up documentation properties & ensure they reference the published guide version where possible
     add 27a1f6cca0 initial commit of README
     add 28001def04 Refactoring code to be base redis plugin instead of redis-cache plugin
     add d639eac782 adding test project that exercises domain caching methods
     add 0fc06248d7 modified plugin to use grails.redis config location, and sample config in default test project
     add a113a89d4a updated to jedis 2.0.0 with modification to withPipeline for new syntax
     add fd3ffd7b17 added withTransaction that takes a closure
     add dfeb20054e added propertyMissing getter/setter on service to delegate out to a jedis instance
     add 93dc3e9071 adding methodMissing to service to delegate to Jedis instance
     add 12612c6ee4 reorganized service methods
     add bd875c3191 adding optional expire versions to all memoize methods
     add 00508efd50 updated string memoize to use atomic setex if expire is set
     add 21b06dbd22 modifying plugin version number so it works to replace old redis plugin (now redis-gorm)
     add 85d134b09f ignore intellij files
     add 2db75b0db5 modified methods to use options map instead of individual items, moved expire command over and made convenience method as expire will be used often
     add 41c76f4d2b renaming package from org.grails.redis to grails.redis to match current plugin packaging standards
     add bc0686fbff Initial version of README documentation going over most of the plugin functionality
     add 4f2d75e330 oops, meant to do grails.plugin.redis, not just grails.redis, fixed
     add ca0bf742a5 added initial (unreleased) release notes section to readme, still need to decide on actual revision #
     add 6166bf64eb STS project files
     add 7c34570b38 whitespace, cleanup
     add e1037e1c8c added license
     add 7ceac744ca moving Redis/JedisTemplate and supporting files here from the gorm plugin
     add f6e6ed3c36 Allow configuration of pool with timeout and password
     add 8dce73a74a Update readme with new config options
     add 645d93a5c5 Merge pull request #1 from michaelcameron/master
     add ee81731347 adding release plugin to prepare for release
     add c31288ea0f typo
     add c8d81f6765 updated to denote that plugin has been released, added to release notes method to install redis-gorm plugin
     add e4b95fde11 added instructions for installing old redis plugin to top
     add e2945926e3 Merge branch 'master' of github.com:grails-plugins/grails-redis
     add de9608a731 adding missing authors to show credit for original contributors
     add bf352ad2d6 ported a few transaction fixes from the other plugin
     add f23a9bc8c5 incrementing version number for release
     add 2cdac09073 updated release notes for 1.0.0.M8
     add 17f39b06e9 bug fix for case where config map isn't declared
     add 2feed112f6 update to use Grails 2.0 so the pom files are generated correctly by the release plugin
     add 498522003c a few other things to get tests passing in 2.0.0.M1 with hibernate
     add fa4549d0dd removal of files per Burt as they're needed in redis-gorm and relied on by grails-datastore-redis which can't rely on a plugin
     add 9c3e72bc9a added to release notes for 1.0.0.M9
     add 7e59fe1928 updated readme to reflect that redis-gorm has been released
     add eb646ba58c adding issue management flag in plugin
     add c1498d669d upgraded to 2.0.0.RC1
     add 0e9128bd00 Adding convenience memoize methods for sadd/smembers
     add 3e3de816ca Adding tests for memoizeSet with and without expiration
     add fa26d90c45 adding set based integration tests
     add d3fbd6d986 fixing whitespace and tab issues
     add 037355e79f still working on fixing sts whitespace
     add 2e60492e52 updating some whitespace issues
     add 9125df4ada fixing whitespace
     add 9c8b3da82e fixing whitespace
     add 19b2e99e08 Merge pull request #2 from stlcubsfan/grails-redis
     add 318fdca0f9 Merge pull request #2 from stlcubsfan/master
     add c59259b3cc Merge branch 'master' of github.com:grails-plugins/grails-redis
     add ac500b9b95 added a memoizeList method to complete the basic types we've already got (sets, hashes, sorted sets)
     add 87138bfa05 refactored methods to tie up red is connections for much less time, added memoizeDomainObject and deleteKeysWithPattern
     add fc812a0c6a Updating version number to prepare for release of 1.1
     add cbf6009788 removal of tomcat and hibernate plugin dependencies, update of read me help notes
     add ef869548e1 removal of release and svn plugin, hate how release plugin auto installs svn though we never want it, I'll add it and revert manually when I want to release
     add feb0dc7d37 typo in readme
     add 7b0c411eb1 attempting to add Memoize ast transformation... not quite working yet.
     add 39c73bc629 attempting to add Memoize ast transformation... not quite working yet.
     add 993605b7c4 making some progress... just need to solve the issue with getting variables scoped into the closure
     add f7aff29d5a making some progress... just need to solve the issue with getting variables scoped into the closure
     add 33a7946934 trying a bunch of things to get the variableScope to work....
     add d9f6a54ea4 looked at using the VariableScopeVisitor to no avail.  still produces NPE
     add bcb18d7c08 I think it is working finally...
     add 86ad25c819 adding spock and integration specs for testing simple and complex string keys
     add 00c3fe6d2e adding spock and integration specs for testing simple and complex string keys
     add bfbaa331e4 adding ability to use closure or params also added expire to usable params
     add c07d513d7a appending the method name to the key automatically
     add a3b6e510a7 fixing key generation string
     add 701cc0433b fixing key generation string
     add f405e1c8bf removing the method name from cache key
     add 4c7accafcf moving some folders and adding codenarc and coverage and tests to main line
     add 709aaf8ea8 adding AST tests to the mainline code and adding ignore for files in plugin desc
     add a5c66d5802 adding AST tests to the mainline code and adding ignore for files in plugin desc
     add 828213091f missed adding AST when I moved :)
     add e035485451 still having trouble parsing the gstrings
     add 59838ccfa8 still having trouble parsing the gstrings
     add c9fa260457 finally got the gstrings to work and added list and has support.  have a few more tests to write to exercise expire with list and hash.  also still need to add hashfield, set and score.
     add cc51b448c0 added remaining ASTs
     add 52fe31f0b2 doing a bunch of cleanup and adding detection and auto injection of the redisService if is missing.
     add 882bf9ea4e starting to update documentation, doing a bunch of cleanup and adding detection and auto injection of the redisService if is missing
     add 5130aa4e65 updating documentation
     add 48358df6b8 updating documentation
     add f8fef5adfb updating documentation
     add 6ad5f7ccec updating documentation
     add fe5eef539e updating documentation
     add 2f8b498d72 updating documentation
     add 00309fc245 updating documentation
     add a29a3ea5b7 updating documentation
     add bf481da501 updating documentation
     add a0d147c85c adding domain and service for test and adding the files in plugin excludes.  Using non-exported versions of spock, coverage, narc and BTD.
     add 159c9a355b codenarc cleanup a bit of the service code
     add 3de6f9d9bf codenarc cleanup
     add 43247ba57f codenarc cleanup
     add 01242f5561 codenarc report naming
     add a987081442 codenarc report naming
     add ff9515cc65 codenarc cleanup
     add 1e8a928ee4 codenarc cleanup
     add 405c8b9dfe fixing build for default project
     add 50bdef7f7f fixing build for default project
     add 4d4f0bf6b7 fixing build for default project
     add 020deb2b0b codenarc cleanup
     add 05c08d9740 codenarc cleanup
     add 649f6037bb codenarc cleanup
     add b23a6e22a5 codenarc cleanup
     add f11c7faa0e codenarc cleanup
     add 32aea5faa7 codenarc cleanup
     add bec3497130 codenarc cleanup
     add a306006bce codenarc cleanup
     add 46f862554d removal of tomcat/hibernate from application.properties.
     add 73802b926e Merge pull request #4 from ctoestreich/master
     add 0294a8b54d fixed typo, thanks to pledbrook for pointing it out
     add 52bcb7b7a9 fixed error in docs where ms should really be seconds
     add c295a66749 removing unnecessary variable scope copy.  non-breaking and non-functional change.  code cleanup
     add d8d5164dbb Adding ability to specify multiple connections to use against the redis service
     add 27cde1df0d removing resources groovy from previous change
     add 4924231df5 Added a few additional clarifications for the new multiple connection work, upgrade to grails 2.0.3
     add 825a54e4f5 Merge branch 'refs/heads/multiple-connections'
     add 757226a5c8 adding grails release plugin to follow new way of publishing
     add 9c0f52593d Update to jedis 2.1.0, add support for the database property in config and pass it to the JedisPool bean, update supported Grails to 2.x since the new annotations need Groovy 1.8
     add b9c14b30af Fix Typo in doWithSpring closure.
     add d9ab91f383 Merge pull request #12 from johnrengelman/master
     add 38340345da getting ready for 1.3.1 release
     add acc08de6dd adding helpful error message to test to remind user to run on ports 6380 and 6381
     add da1055ca50 Update README.md
     add dc5c423e64 Update README.md
     add e7ad15a091 Invalidate Jedis resources on JedisConnectionExceptions in the RedisService
     add 46a6a15aed Whoops.  Revert some accidental degroovification.
     add 09bf68a70f Merge pull request #13 from david-seiler/master
     add acde69a215 prep for next dot release
     add 3ba51fcdba updated readme with release note for 1.3.2
     add dc041eac9b Fixing docs to reflect proper withRedis call
     add 94fb726fa3 Merge pull request #14 from Spantree/master
     add abbead5d9d Discard transaction if an exception occurs
     add 940da1c52b Merge pull request #17 from michaelcameron/master
     add acb0e5179e increment release number
     add 0f9f9d9632 Update README.md
     add faf30fcc61 Adding support for using redis-sentinel clusters to achieve redis HA
     add 329a999525 Adding documentation examples to config for sentinels cluster to README
     add f1e65b1a7d Removing repositories that was test publishing to
     add 4415b11416 remove additional plugins redis does not depend on but grails upgrade adds
     add c908345176 changing plugin version and adding Jordon as an author
     add cc2ab3d872 Update README.md
     add d524b97ffe fix memoizeDomainObject() by delegating to the correct method
     add a4db1faf9b Merge pull request #21 from bp-FLN/master
     add d4b294ec5f check log level for logging statements, fixes #19
     add b7952d5e9a bump version for release
     add 7c0f04927a release 1.4.1 version notes
     add 50d8557743 added a returnAll parameter in withPipeline allowing to return all the results of the pipeline in order (syncAndReturnAll) or only those assigned to variables (sync). The latter remains the default
     add d433322284 Merge pull request #22 from germanSancho/patch-1
     add 7d5f256703 prep for 1.4.2. release
     add fd9f3f911f Modified memoization methods to succeed in the event of redis server unavailable and treat as just a cache miss
     add 480252504e Merge pull request #23 from jsaardchit/master
     add bd2f8bf6b1 Update README.md
     add e480fdb397 Generalize the inject service method
     add 0e73f3557d Allow for the 'expire' field to optionally be a variable instead of constant string only. It should now work similar to how the 'key' works
     add f2fa7d0da2 Added test for 'expire' field being dynamic
     add d593ff7623 Updated injectService method to protected
     add 8bbc57bd59 Merge pull request #25 from glynlyon/master
     add 63c5bed76e fix tests that don't work in java 7 because test order isn't guaranteed
     add 5b3ba1e143 add John Mulhern to developers
     add 0414685102 fix broken test so that it creates the mock
     add 930ce07e76 ignore this test by default, only want to run when we want to test multiple connections
     add e760ead881 bump plugin version number
     add dea2220928 added notes for 1.4.4
     add d71c0672aa Fixed integration test for MemoizeAnnotation
     add d8ab35e0ed Merge pull request #26 from glynlyon/master
     add 40bc377bac Merge pull request #1 from grails-plugins/master
     add 1257e0548e Disable Redis server which defaults to the cache miss behavior through config
     add b5000dc0b3 Added test for bypassServer config
     add 202b29461e Initial checkin of MemoizeObject annotation
     add 81141b9571 Add gson plugin and update version
     add 46e66132e6 Fixed issue with .classpath and .project files
     add d378530c1e Fixed weird character in documentation
     add e79ad776eb Added integration tests for MemoizeObject annotation
     add 2d259e2490 Update documentation to include MemoizeObject
     add 0c296088cb Removed dependency of gson grails plugin and replaced with calling the gson library directly
     add 462c44416f Merge remote-tracking branch 'github/master' into dev-memoize-object
     add c3a47e82ad Merge pull request #27 from glynlyon/dev-memoize-object
     add 38feb74de3 Merge pull request #2 from grails-plugins/master
     add d3c51c4155 Removed bypassServer config property in favor of reducing the logging level when the Redis server is not found
     add 591bb5cba8 Removed bypassRedis method from RedisService
     add e7c8e1ef56 Removed unused grailsApplication variable from RedisIntegrationTests
     add b738fe34f0 Merge pull request #28 from glynlyon/master
     add ebcf698110 Convert grails.redis.port to an Integer if it is a String in the Config.groovy
     add 921609d5ff Merge pull request #29 from glynlyon/master
     add 90319a69f8 bump version number for release
     add 552e3affbd update readme with 1.5.0 release notes
     add 5648d503d0 Use Jedis 2.4.2 (latest) / make integration test compatible to Redis 2.8.x or upper
     add ba5b928480 Merge pull request #30 from HeartSaVioR/master
     add 1d87244e23 updated release note for 1.5.1
     add ed2c18f3d9 prep for release
     add c55baa7261 Warn instead of failing hard on bad poolConfig parameters
     add 9fa65f8755 Merge branch 'michaelcameron-warn-on-bad-pool-config'
     add f88cc8d180 prepare for release
     add 54f137968e Fix the implementation on soft setting the poolConfig parameters
     add 22826902e9 Add comment about leaving in config values for the plugin
     add 245ab64f77 Merge pull request #32 from michaelcameron/fix-bad-pool-config-implementation
     add 7de72c9a50 remove println
     add c94f08adec bump version
     add 8cfae3de20 fix tests that broke with redis 2.8
     add 727b9873a4 update test project to 2.3.7, add test for serializing long values
     add 5695191a60 upgrade plugin to 2.3.7
     add 394c91afc9 fix indentation
     add d3aa8fc271 upgrade to grails 2.3.8
     add 297f46c660 add memoizeObject method to RedisService, fixes #34
     add 7a8e91cf30 Merge pull request #36 from grails-plugins/34_service_missing_memoizeObject
     add b1f27a14a2 add  option to , fixes #35
     add e1dcdb01bb Merge pull request #37 from grails-plugins/35_cache_null_flag
     add 54fb452c12 prepare for 1.5.5 release
     add 303edba8a4 upgrade release plugin version
     add 7dc6588671 Update README.md
     add 7ccbfb84a7 typo fixe in readme
     add 7645de9a4b upgrading to grails 2.4.4
     add 2d3e7cc729 Record and rollback keys in a test
     add 7c5f1387d4 Added comments to RedisConfigurationUtil
     add 4a5c347772 Removing dead import
     add fe1b4e5b5a Merge branch 'sjurgemeyer-wiringRefactor'
     add 4bca6d57a2 prepare for 1.6.0 release
     add 14b02ceb9f Update README.md
     add d904d4a7c4 fixes #47 switch to Holders.grailsApplication
     add 155bd04105 External properties file timeout is treated as string and throws NFE.
     add b98bfa97ee Merge pull request #48 from Grails-Plugin-Consortium/master
     add dd418ee281 tweak to how we load config values
     add 859bcd204b fixes #49 can't use isSet on grails 2.3
     add 3579fb48e6 Resolves issue with transaction exception being masked by an error that is thrown from a catch block.
     add 0e93b98f0c Merge pull request #51 from coyotesqrl/master
     add 2b554de35a prepare for 1.6.4 release
     add d51909d7dc Most of the heavy lifting is done.  Need to re-add tests for taglib (not working as expected on 3 branch) and add test project.
     add d48779eb38 Adding travis yaml file
     add 2e8e8dc5ff Adding readme
     add ad9d9e5de4 adding redis server
     add e58d58fe52 Adding build status image to readme
     add ac08fc5788 Got the anonymous property binding working for the pool object
     add 0ef7b2e5dd Adding grails 3.0 section to the readme
     add 27a98278f7 Adding sample project and fighting with hibernate failing tests for "Could not obtain current Hibernate Session; nested exception is org.hibernate.HibernateException: No Session found for current thread"
     add 2dcbffbc44 Adding sample project and fighting with hibernate failing tests for "Could not obtain current Hibernate Session; nested exception is org.hibernate.HibernateException: No Session found for current thread"
     add 6cbb80933f Still struggling with the ast transform for the service injection with grails 3
     add 75f330b279 Added quick script and comments that domain class and object ASTs are not working
     add 7eb67bae27 Updating for grails 3.0.0.RC1
     add b3299a5f04 Adding clarity for grails 3 issues to docs
     add f6824d88dc Removing the asset-pipeline which snuck in from copy paste from changes in 3.0.0.RC1 build requirements
     add cd455fd7c8 Adding back apache license file
     add 4eebe41e5f Code cleanup and removing comments
     add b3318f807e Attemptinf to add back pool config closure
     add ab6699367d Upgrading all gradle properties to RC1 and removing domain object annotation as these aren't working in grails 3
     add c6acba7b9f Merge pull request #52 from Grails-Plugin-Consortium/grails-3
     add e4fcc3d0fd change so that grails test-app will pull from right .m2 directory
     add ea8b637a4e fix broken tests to not use dynamic finders
     add 57b8086af6 upgrading to 3.0.0.RC2
     add d9412244e7 upgrade subproject to RC2
     add 75889b2eed Merge branch 'grails3'
     add ad292220d8 Update README.md
     add 973e85a603 Update README.md
     add 47c0f45925 Update README.md
     add d947098d71 Exclude web-app folder from plugin.
     add b9fffd868c Merge pull request #54 from kevana/master
     add 1782ab4f61 Update README.md
     add 5719a4831f Allow sentinels to be defined in external properties config
     add a5bfab6f6b Merge pull request #60 from Grails-Plugin-Consortium/master
     add faeb3b4e31 cleanup
     add e7e5e9995f the plugin is on Bintray as grails-redis because Gradle defaults the project name to the directory name; changed the values to be independent of the project name. alternately you can create a settings.gradle file with "rootProject.name = 'redis'"
     add f32363478a Merge pull request #62 from burtbeckwith/master
     add f635d233f8 Change ms to seconds
     add b6d05dec78 Merge pull request #63 from davidsawyer/x1000
     add cda9dd52e5 Remove the explicit build dependency
     add 07206214a8 Merge pull request #64 from ctoestreich/patch-1
     add 9611c0dd43 Update version and name
     add 9c65bd3f5b Merge pull request #65 from ctoestreich/patch-2
     add 0427ccd7f0 Updating build.gradle
     add 2f2a38face Merge pull request #68 from ctoestreich/patch-5
     add f246bc0d83 Create settings.gradle
     add e06399433c Merge pull request #67 from ctoestreich/patch-4
     add 202e262fee Update gradle.properties
     add af1d6cfd45 Merge pull request #66 from ctoestreich/patch-3
     add 6224212b3a Moving to grails 3.1.0, gradle 2.9 and wrapper and getting the sample project pointed to the latest version of the plugin
     add c51374d260 Trying to get the travis build to run the test app tests
     add da928cdcc2 Updating the readme with the new release details
     add 48c1da273b travis build went buffer overflow!?
     add 5e917f0eab Update the readme with links to travis and bintray
     add bf972be442 Merge remote-tracking branch 'origin/master'
     add 212c255530 Just run test on main project for now
     add 72e3eb4b68 Simplifying the test command for now
     add 78e78819d1 Adding finally block with simplified close, upgrading jedis to 2.9.0
     add 4390f68762 jdk8
     add 2f4901fde6 jdk8
     add 12a646aaad Update README.md (#75)
     add 512341fb2a Adding useSSL option (#77)
     add af6bb04980 Adding useSSL to config readme
     add 09d0246667 Update to openjdk8
     add 8f21e85055 Upgrade to Grails 4
     add 5ccbf4ada5 [skip ci] Update to 3.0.0-SNAPSHOT
     add 873a0eb612 Merge branch '3.0.x' into master
     add 336e00b996 Merge pull request #85 from tucker-bluesage/master
     add b692d80c89 Configure Changelog Workflow
     add 0b0bff873d Merge pull request #86 from grails/githubworkflow/changelog
     add aab64d8ba6 Configure Java CI Workflow
     add 15eb51fea1 Merge pull request #87 from grails/githubworkflow/javaci
     add 3dd17e6d86 Fix Java CI Workflow
     add e61a783aab Delete .travis.yml
     add 986df943aa Merge pull request #88 from grails/cleanup/travis-yaml
     add d14a4992e8 Delete travis-build.sh
     add 10832ad0d3 Merge pull request #89 from grails/cleanup/travis-build
     add 94ae87879b Delete .project
     add c0c59e632d Merge pull request #90 from grails/cleanup/idea-project
     add 81b86753e4 Delete .classpath
     add 6bd2563156 Merge pull request #91 from grails/cleanup/project-classpath
     add 296a0b9a10 Fixed Gradle build configurations
     add f5d7cb0f84 Fixing tests
     add 66e1484149 Adding a delete key method.
     add f457002c2a Merge pull request #92 from tucker-bluesage/master
     add 18f0ab26f8 Moved sample project to subfolder example
     add 029d3d14a1 Moved plugin source to subfolder plugin
     add 79511042ec Update to Grails 5
     add 3a4a317a83 Merge pull request #94 from grails/grailsupgarde
     add 6b5729d1de Update Publishing Configurations
     add 36a67173ef Merge pull request #95 from grails/fixPublishing
     add 781b98accf Fix groovydoc classpath
     add 6800a32ef3 Merge pull request #97 from grails/96-execution-failed-for-task-grails-redisgroovydoc
     add ea1ef0f043 Enable Gradle Caching
     add 4661282859 Merge pull request #98 from grails/enableGradleCaching
     add a1a6548f86 Update gradle.yml
     add fd442e33ce Merge pull request #99 from grails/updateBuildDocsStep
     add f87988154e Create release.yml
     add b73aa8937d Merge pull request #100 from grails/releaseWorkflow
     add 2d806830a9 Add renovate.json
     add 64c9e653fb Moved renovate.json to folder .github/
     add 3a61fc35fb Merge pull request #101 from grails/renovate/configure
     add e7d15b7494 Update README.md
     add f60852c1be Update Artifact ID to grails-redis
     add ddbc86f9b1 Merge pull request #105 from grails/artifactId
     add 1829f62073 Update Node.js to v10.22 (#103)
     add 49f20b2b2c Update dependency gradle to v6.9.3 (#102)
     add 8e4714c045 Update plugin com.gradle.enterprise to v3.12.3 (#108)
     add 3d54a69525 Update release-drafter/release-drafter action to v5.22.0 (#109)
     add 8818e7c08f Update dependency com.google.code.gson:gson to v2.10.1 (#107)
     add 2c76df9b5e Fix Gradle Signing Plugin Configuration
     add 5cae4fc9ee Fix Artifacts Signing
     add cbd5067ef3 [skip ci] Release v3.0.0
     add fbeba04e18 Back to 3.0.1-SNAPSHOT
     add 46ab27ab0f Update dependency gradle to v6.9.4 (#113)
     add 9fd7fff3e7 Update plugin io.github.gradle-nexus.publish-plugin to v1.2.0 (#112)
     add eaee07b31a Update release-drafter/release-drafter action to v5.23.0 (#111)
     add 438cee0cfc Update release-drafter/release-drafter action to v5.24.0 (#118)
     add 47eac7f431 Update plugin com.gradle.enterprise to v3.15 (#114)
     add 3aa4558681 Update dependency org.grails:grails-bom to v5.3.3 (#119)
     add 75d48344cf Update dependency org.apache.commons:commons-pool2 to v2.12.0 (#122)
     add 1e2d17c5b7 Update gradle.properties
     add 91e8adf7a4 Update dependency redis.clients:jedis to v4.4.5 (#117)
     add 549630e410 Update plugin io.github.gradle-nexus.publish-plugin to v1.3.0 (#116)
     add 2516b793c7 Update to 4.0.0-SNAPSHOT
     add 45345bdd71 Update plugin com.gradle.common-custom-user-data-gradle-plugin to v1.11.3 (#115)
     add 952d8972dd Update plugin com.gradle.common-custom-user-data-gradle-plugin to v1.12 (#128)
     add 8aae833596 Update dependency redis.clients:jedis to v4.4.6 (#127)
     add fa6c935f30 Update release-drafter/release-drafter action to v5.25.0 (#126)
     add aa6826a87f Update plugin com.gradle.enterprise to v3.15.1 (#125)
     add 7a8d001da3 [skip ci] Release v3.1.0
     add 4318324fc8 Back to 3.1.1-SNAPSHOT
     add 1cbd608267 Merge remote-tracking branch 'origin/3.1.x' into 4.0.x
     add 49dbe24e96 Update dependency redis.clients:jedis to v5 (#124)
     add b00a95d7f0 Set Java 11 as baseline (#129)
     add 41bcc1b142 Update dependency org.grails:grails-bom to v6 (#120)
     add 4a5e1467f5 Update dependency redis.clients:jedis to v5.1.0 (#130)
     add 73d28ac0e6 Update Java CI Workflow
     add 1f9ef0c018 Update gradle.yml
     add 5446e93eee Use supercharge/redis-github-action (#131)
     add ade4915158 Update gradle.yml
     add 7664bb4779 Update actions/checkout action to v4 (#123)
     add 6f1b1b1715 [skip ci] Release v4.0.0
     add 09d02c71ca Back to 4.0.1-SNAPSHOT
     add add5262e0b Update plugin com.gradle.enterprise to v3.16.1 (#134)
     add ff00fb9347 Update dependency org.grails:grails-bom to v6.1.1 (#137)
     add bdbdb38c6f Update supercharge/redis-github-action action to v1.8.0 (#136)
     add d2c0efcb04 Update actions/setup-java action to v4 (#132)
     add 52f10d97d1 Update dependency com.github.javaparser:javaparser-core to v3.25.7 (#106)
     add eb31309fe6 Update plugin com.gradle.common-custom-user-data-gradle-plugin to v1.12.1 (#135)
     add 3faf960256 Fix groovydoc task classpath (#139)
     add e79cac34ce Update dependency org.grails:grails-gradle-plugin to v5.3.1 (#133)
     add 47795c2024 Update gradle.yml (#143)
     add 2861a0639f Update asset-pipeline to 4.3.0 (#142)
     add 07dce1b533 Upgrade to Gradle 7.6.3 (#141)
     add aecd22ff1e Update dependency org.grails:grails-gradle-plugin to v6 (#121)
     add 39cb80873a [skip ci] Release v4.0.1
     add c6ea3334b8 Back to 4.0.2-SNAPSHOT
     add 12da0fbba3 Migrate to Develocity build cache connector (#153)
     add 57df4723c9 Update to 5.0.0-SNAPSHOT for Grails 7
     add 80f6c1482d Grails-156:  Update to Grails Redis  Plugin to be compatible with Grails 7.x.x (#158)
     add ba8014ea60 Update gradle/gradle-build-action action to v3 (#154)
     add 1fd2c3fb48 Update dependency com.github.javaparser:javaparser-core to v3.26.2 (#159)
     add 5f4874e54c * #160 and #156: Fix Publishing (#161)
     add a5c1a111a1 Updating for grails-publish changes
     add 458bcbe461 Merge pull request #164 from jdaugherty/5.0.x
     add 7789eeb287 Update to asset-pipeline 5.0.4 (#166)
     add 6d3d569c6b Fix NEXUS_PUBLISH_URL
     add a4eb0e5f13 Switch to grails/github-actions
     add cc390ff541 Switch to grails/github-actions
     add b7417bf496 Clean-up for grails M1 release
     add f061d81f42 Only apply nexus publish when publishing a release
     add 0afb919e6a Fix pipeline to not cache
     add 3c75147923 Merge pull request #168 from jdaugherty/5.0.x
     add 6a9118f36a Include the bom in buildSrc to prevent snapshot resolution
     add 11ab818338 Merge pull request #170 from jdaugherty/5.0.x
     add 3e8bee3f5a [skip ci] Release v5.0.0-M1
     add b0e9a27d91 [skip ci] - fix release publish
     add ba4991730a [skip ci] - fix release publish
     add efa25c6344 [skip ci] - fix release publish
     add 21c2805537 chore: Bump version to 5.0.0-SNAPSHOT
     add 4253dd6b4b Use grails-bom where possible
     add 220a89ab80 Merge pull request #176 from jdaugherty/5.0.x
     add 5885083321 grails 7.0.0-M3
     add 2975ef8788 [skip ci] Release v5.0.0-M3
     add 1df65ede29 chore: Bump version to 5.0.0-SNAPSHOT
     add aa285959da Switch to grails/grails-github-actions/deploy-github-pages@main
     add 82eca7d5c9 Merge pull request #177 from jdaugherty/5.0.x
     add 5710efd73e fix: switch from `@Commons` to `@Slf4j`
     add a430e84389 build: add `.sdkmanrc` file
     add 5e17a86592 test: add missing `jquery.js` file
     add aa5101f5ab build: Apache artifact rename
     add 61009b86da build: add dependency for taglib compilation
     add 89fe918c08 ci: temp disable tests as redis action is disallowed
     add 80678a8797 build: remove explicit versions declarations
     add 6225774e60 ci: try replacing `supercharge/redis` actions
     add 4ce1ab5215 Merge pull request #178 from matrei/apache-coords-change
     add 918cc622d4 ci: set correct env var `GRAILS_PUBLISH_RELEASE` (#179)
     add 7374dddd15 Switch develocity instance (#180)
     add b566937d14 build: update develocity auth (#181)
     add 1963dd192e Update to Gradle 8.14.2
     add 96c4ec8007 Initial Apache RAT config
     add f0ffb87ddb Add ASF required files
     add 5fb9b38435 Add license header to .gradle files
     add 162460094b Add license header to .yml files
     add 42a75ccca4 Add license header to .groovy files
     add aef02cdf66 Add license header to .properties files
     add 715b9aa034 Add license header to .xml files
     add c6d78b6a99 Add license header to .gsp files
     add e2a7e33451 Add license header to .md files
     add 6597eef1ba Use webjars jquery version
     add 40fbd15bc4 Fix maven groupid
     add 49cef32810 Add license header to .js files
     add 3edd184c46 Add license header to .css files
     add c7b35b1348 Add Apache RAT GitHub workflow
     add a53db43cc4 Add add-license scripts
     add 385941ff8a Initial work for reproducible builds & ASF release process
     add d79c0277b0 Merge branch '5.0.x' into licence-updates
     add dde02b0969 Resolve Merge Conflict
     add e4f60db4b5 Remove unused section header
     add f589b46030 Merge pull request #184 from apache/licence-updates
     add ad65e61075 add instructions on how to run redis in docker for development
     add c5ad5a5cb0 add guaranteed order for AST transforms
     add 38236724d8 add workaround for reproducible builds
     add 2937a656bb add missing license header
     add 2584ba0d17 update readme
     add 7b0bf1eebc Add build verification
     add 93082acf20 Merge pull request #185 from jdaugherty/5.0.x
     add dea6a78e70 update workflow to checkout & update tag
     add a5cc5b061e Merge pull request #186 from jdaugherty/5.0.x
     add dde7781d2f update release workflow to place docs where expected
     add 5e6fae7a39 Merge pull request #187 from jdaugherty/5.0.x
     add 6a60329665 fix release_version extract in release workflow
     add 2b51e12f8b Restrict repos to reduce load on RAO
     add cbfc925f19 Add workaround for https://github.com/softprops/action-gh-release/issues/628
     add 12188ae7cc add workaround for environment approvals
     add 607953d089 verification script updates
     add f634838216 Use the KEYS file from dist.apache.org
     add cb8783f599 generate a source zip of grails-redis instead of project
     add aa72db0206 remove contributing requirement
     add 52f235e25e allow specifying extract location
     add eadef3a7e7 match java version in sdkmanrc
     add cb2f590c3b filter empty lines
     add b7e47112f0 do not write empty diff lines
     add 50a9a8adde rename publish to reflect it's purpose
     add 77783190a9 rename the last release step to reflect its purpose
     add 0b3adbd960 Fix copyright
     add 556a4a491d remove .bat file
     add df96933a71 update verification script to be runnable from anywhere
     add 7c86b6ddd2 #14787 - reduce RAO load
     add 04067c4ecc add debug for release version
     add d1d3afa638 minor verification fixes
     add 1c606b5842 support either gradlew or gradle on the path
     add f02c0786a5 Add missing permission pull-requests: write
     add d45b4339e0 [skip ci] Release v5.0.0-M4
     add d860b78b94 [skip ci] Bump version to 5.0.0-SNAPSHOT
     add f1f5bdc50d Merge pull request #188 from apache/merge-back-5.0.0-M4
     add 4ae79cdcb4 style: add parentheses and correct spacing
     add 32a52ecff4 build: use `grails-gradle-bom` in buildSrc
     add 6d6142cb16 chore: update to Grails 7.0.0-M5
     add 6735fc73c2 chore: remove workaround for Groovy version
     add 9152851f81 fix: migrate to new `asset-pipeline` coords
     add 312a98431f test: add `SpringBootTest` to integration tests
     add c6249a0db4 build: make provided dependencies `compileOnly`
     add f9689ccd73 build: disable Spring Dependency Management
     add 0e08ee5c21 Merge pull request #190 from matrei/m5-another-take
     add b8bacf83df ci: correct release key file location
     add 9e74276ee8 Merge pull request #191 from jdaugherty/5.0.x
     add d329b72cc1 ci: update release workflow for grails release process changes
     add f2f9596ee7 Merge pull request #192 from jdaugherty/5.0.x
     add 3cda7938d4 [skip ci] Release v5.0.0-M5
     add 303ceb23e0 [skip ci] Bump version to 5.0.0-SNAPSHOT
     add 7da1f17d60 Merge pull request #193 from apache/merge-back-5.0.0-M5
     add 2556a093a8 Back to Grails 7.0.0-SNAPSHOT
     add d4fef19bd4 Update publishing config for grails-publish
     add 190af61971 Merge pull request #194 from apache/update-publishing
     add af03afa91c README.md updated with correct links
     add 7b4495a9b8 Merge pull request #195 from dauer/readme-update-links
     add 1f2cc42e1f chore: upload workflow for releases
     add c633f40972 feature: update to Grails 7.0.0-RC2
     add 3b150777e5 Fix config retrieval to use get('grails.redis', Map) for compatibility with newer Grails versions 备注:RedisGrailsPlugin 获取 grails.redis 总是返回[:],因为升级后的grails中getProperty只支持返回string。
     add 5d6bb864d4 Merge pull request #183 from huangyucaigit/fix-config-getProperty
     add 58862d5698 feature: update to Grails 7.0.0-RC2
     add 01e1675b19 chore: update rat config
     add 39692086a2 ci: fix formatting
     add f6796c9ea3 ci: run in container
     add 3fa9db027e chore: add commit hash to release workflow for templates
     add 484db2294a ci: add release abort workflow & update verification script to check svn artifacts
     add ae850f74e1 ci: add release abort workflow & update verification script to check svn artifacts
     add 9f160e6bc1 chore: fix diff script for when differences are resolved via individual comparison
     add f38f2c3043 Update groovy_pmc.txt
     add 6e1b63002a chore: add post release scripts
     add 271a71dfd0 [skip ci] Release v5.0.0-RC2
     add 169dafb3d5 [skip ci] Bump version to 5.0.0-SNAPSHOT
     add 36efbd648a Merge pull request #197 from apache/merge-back-5.0.0-RC2
     add d1062a6f1f chore: correct name
     add c04e50ec75 chore: grant access to actions in case there are pending changes
     add 7c8b973b43 chore: update announce.txt to not refer to external, invalid documentation
     add 7db493d699 chore: update links
     add 49fa7fd6a9 Upgrade Gradle to version 8.14.3
     add b0a18d14bb chore: Removed traces of incubation, DISCLAIMER and PPMC
     add cad29c1d0f Merge pull request #200 from apache/chore/issue_199
     add 3a3a519a77 Refactor dependencies to use Grails starter bundles
     add a413ec18f7 Merge pull request #201 from apache/adjust-published-dependencies
     add 373d1bf939 [skip ci] Update required reviewers in .asf.yaml
     add 7a6b4a5ada [skip ci] prep for 5.0.0 release
     add 62583e1d7c [skip ci] Release v5.0.0
     add 406f3d72a4 [skip ci] Bump version to 5.0.1-SNAPSHOT
     add 6eb9964981 Merge pull request #202 from apache/merge-back-5.0.0
     add 4a312df416 [skip ci] post 5.0.0 release adjustments
     add 29e69945d4 Update develocity server URL to Apache
     add 158aa8292a Merge pull request #203 from apache/develocity-apache-org
     add a984e2f00f chore: update to Grails 7.0.7, project sdk to 17.0.17, and gradle to 8.14.4
     add 5dc4b46cdc Merge pull request #204 from jdaugherty/5.0.x
     add 79bfbc6ac0 [skip ci] Release v5.0.1
     add c4cb9fae6e [skip ci] Bump version to 5.0.2-SNAPSHOT
     add 0ad510dc9f Merge pull request #205 from apache/merge-back-5.0.1
     add c9caf15cf9 Pin GitHub Actions to Apache-approved commit hashes
     add 997385cd0a Merge pull request #206 from apache/pin-workflow-actions-to-approved-hashes
     add 65cee35819 ci: audit and update GitHub Actions to ASF-approved versions
     add b18dfe86b7 ci: tolerate release-drafter create-release failure on pull_request runs
     add c6b736f9eb Merge pull request #208 from apache/ci/setup-gradle-v6-basic-cache
     add 4fff5c1c5c Initial import of Grails Redis Repository
     add b2878a4b0a Add skill file for mono-repo integration process
     add bd5b845c83 Redis Merge - Initial Moves
     add 158a353c78 Redis Merge - Collapse plugin source to root and relocate examples to grails-test-examples
     add f0fe9d6b8f Redis Merge - Add support for testing redis without a local running copy
     add 11ae1fd5d6 Redis Merge - Integrate Build
     add 80dbb19ca2 Redis Merge - Integrate Docs
     add e103800950 Redis Merge - Integrate test app
     add db8c6bc3d3 Redis Merge - Ensure license compliance
     add b5ad26220c Redis Merge - Reformat code that mismatches our code style
     add 40517d2340 Redis Merge - Ignore reformat code commit
     add bad187ade4 Redis Merge - Make doc names unique & include in TOC
     add 7a0261c050 Redis Merge - Update skill file for lessons learned
     add af0de594b6 Creating structure
     add d1dace1fd0 First commit of empty project
     add 51a343cb15 added IntelliJ proj files
     add a28bbb91fb a very naive first step
     add 7603093612 ignore some resources
     add 20705f1969 first cut of a basic mail plug-in, need to make it more flexible in the future
     add a13c0604e3 in version of a simple mail plugin
     add de47d657c6 Added logging of mail sending at trace() level, and support for grails.mail.default.from config parameter, used if no from supplied on an email.
     add 9660050fc6 fix problem that was causing the 'from' field to be overwritten
     add f511a2668f GRAILSPLUGINS-384 fix reloading issue
     add 8c1fe10f2a ignore test/reports dir
     add 94d027931d release 0.1 of mail plugin
     add bd0e041462 re-running, nothing changed just testing release-plugin script!
     add 3dc19e0ced y
     add 4484223fcc Added basic rendering of GSP views as body content
     add 06fcd579fc Fixes to GSP view body rendering, support for plugin: attribute in body to indicate which plugin to load view from. Tag libs in GSP bodies should work now.
     add e86e1a87f0 Added taglib that provides mail:newLine tag for working around line break problems in GSP body views with Grails 1.0.3 or earlier
     add f235443565 0.3 Grails-mail release with GSP view body support
     add 5fecfa85b9 Added more tests for content type bits and bug fix for broken test.
     add f1d0c90b35 Fix for previous DOA release which had a bug in HTML code breaking unit tests. New unit tests
     add 8e3e6ada4c Fixed problem with not thread bound request when sending mail outside of a controller (eg from a job or service)
     add 58883eadec Removing the old plugin packages - they're just using up space unnecessarily.
     add e079fbdce2 Added support for specifying custom mail headers in the DSL.
     add 4c2300b70b Added Apache licence headers to a couple of the files.
     add 1c07daa1ed Updated version to 0.6-SNAPSHOT.
     add aa10faedbc Little tidy up.
     add cd4deb0c74 Added integration tests for the new headers feature.
     add eaaf39c287 My module file.
     add b15c24588e Packaging 0.6-SNAPSHOT with custom header support.
     add ed7755bcdf Revert "My module file."
     add 6b21c97933 ignore stacktrace.log
     add fa9d46c854 Removed reference to non-existent property controllerName
     add d38f956653 fix for GRAILSPLUGINS-411 and GRAILSPLUGINS-512
     add a003126880 fix for GRAILSPLUGINS-954
     add 1b9392913d fix for GRAILSPLUGINS-913
     add 5d3b79b78e fix for GRAILSPLUGINS-416
     add cffbcc8dee fix for GRAILSPLUGINS-750
     add f83f58a1ad fix for GRAILSPLUGINS-749
     add 6395e27fc2 attachment support
     add f6586e015c merged all recent patches from JIRA
     add 271b1fda65 release updates to mail plugin
     add cab50a8ab8 Fixed issues with casting on some JVM's caused by using property setter on overridden property. Also corrected casting from List to Array and uninitialised variable.
     add 9eac3036dd Ready for release of 0.7 - bumped version
     add 4aa13d2151 release v0.7 fixes cast exceptions on some jvms
     add d4732765e2 Plugin view GSPS resolve correctly now. GRAILSPLUGINS-1274
     add a9dc283a19 resolving view for body works in this version
     add c77f620967 Improved error messages when body not found. Fix for GRAILSPLUGINS-1291
     add 534ab940fd fixed attachements, added support for Grails 1.2
     add a086de9510 Fix for GRAILSPLUGINS-1885: spring-test (which provides the MockHttpServletRequest we use) is now a runtime dependency. I added a functional test for this feature but it has to be run in WAR mode to be valid.
     add df505c5341 upgrade to grails-1.3.5
     add 73160fc44d Allow specifying the locale in the closure, to set the locale used to look up mmessages foe i18n
     add 73c0cf760f Allow creating an attachment from an InputStream.
     add 3925fc08ef integration tests for i18n extension and for attachments
     add 96a7057331 Added an integration test for adding multiple attachments to a mail. This is also a chance to explain that attachStream() was removed because it doesn't work: Spring's mail support complains that open streams can't be used for attachments.
     add 525167e8d4 whitespace
     add 76585fb388 whitespace
     add 4fce681621 Install greenmail plugin so we can test actually sending the email.
     add c64689ef3d minor groovification.
     add 1c65d18150 Refactored the way configuration is read to remove duplication.
     add 5a2e62d6b6 Refactored the rendering of GSPs out into a separate class to more clearly separate concerns.
     add 18d0fe8036 More refactoring to separate concerns.
     add b1068b8704 Improved detection/handling of mime capabilities.
     add 84c4ad8bd5 formatting.
     add 0f443fba4b formatting
     add 7cab8c1979 Refactor to make the message builder responsible for sending the message it built.
     add a7633f237e Renamed “org.grails.mail” to “grails.plugin.mail”
     add 65d2510eb6 formatting.
     add c6192fa932 cleaned up/simplified some code in the builder.
     add 2d9f69392e Improved use of GrailsMailException.
     add 94d51d0dc1 Made locale support variant aware.
     add ffe4e6400a Added exception if attempt is made to render html without a mime capable sender.
     add b4b1634892 fixed typo re export of greenmail test dependency.
     add ccdb35ea4f Added default from.
     add 65f4c08f4b Cleaned up view template resolution to use newer API.
     add 0c8603cba7 Refactored the environment setup out into a inner class.
     add 9cd3911b44 Changed authorship to GPC.
     add b242148cdf reformat
     add eb4c2f27e0 reformat.
     add 6f63b8fa7c updated comment.
     add 92e59201d1 Reinstate deleted import.
     add c6e45f60f4 Added new, preferred, overloaded attach() method instead of attach«x»()
     add 674c69623b Removed IDE metadata.
     add 359d408715 GRAILSPLUGINS-2309 - support for inline attachments
     add ed7618b85b GRAILSPLUGINS-2412 - Added support for specifying a default to address
     add f607163984 GRAILSPLUGINS-2606 - support for html and plain text email by specifying both html and plain text parts.
     add bb61d67090 Added html(Map params) and text(Map params) methods for rendering views.
     add dc51f0e02b Support passing the multipart mode constants from MimeMessageHelper to the multipart() DSL method.
     add 1140d41f81 GRAILSPLUGINS-2232 - Always bind a mock request environment (and response) when rendering email.
     add 9f427edf6e removed unneeded import.
     add fae65b1679 GRAILSPLUGINS-2054 - encode attachment names.
     add a69290c0a0 GRAILSPLUGINS-2150 - support InputStreamSource's as attachments.
     add 7ef4b1c93e GRAILSPLUGINS-1970 - don't set any connection defaults if connection comes from JNDI.
     add 7eb3fb332c GRAILSPLUGINS-1794 - add support for attach files with optional content types and filenames (values are inferred if not given)
     add 88cdd9575f Validate that DSL parameters are not null.
     add 4e554d52ee GRAILSPLUGINS-2330 - support hot reloading mail config.
     add 32f0bfca40 Added tomcat plugin here so Grails stops crying.
     add 73fd70b803 beginning of docs.
     add 7779cf376a removing more IDE metadata
     add 6ad1ef8570 Readme.
     add 59d175396b ignores
     add 9cb7e3c97a Added extra docs info.
     add 5301f986eb Auto generated API stub.
     add a6fd7d00d3 updated app.name to conventional ‘grails-mail’
     add 3d2442b4dd Fixed view resolution for plugin views and added test for this.
     add 4dfd93e5ba Fleshed out some of the docs regarding configuration.
     add 7aa6c9295f Use a foreach loop when adding the “sendMail” method to controllers and services to avoid unnecessary list creation.
     add 1db9694950 Removed redundant safe navigation where objects have already been checked for nullity.
     add ac1d35b749 Beef up the DSL method parameter assertions.
     add 37a7c74457 removed unused variable.
     add 49913cc22a remove unused install/uninstall scripts
     add 2be48ea972 Added variant of RequestEnvironment.with() without explicit locale.
     add 4418986726 Inherit the request locale if there is a current request and a specific locale was not given when rendering.
     add eaefc49b39 Fix bug with html content type not being set for html only email.
     add 87acff95f2 Copy plugin docs from grails.org plugin page
     add d51a4ca348 remove outdated warning about using to(List addrs)
     add 3dfb03eb30 correct docs re: content-type in GSP's
     add b4d99ff482 remove outdated troubleshooting tips
     add f83528acfa Fix inconsistent doc formatting
     add 81610ff6fd Merge documentation contributions from Dana Berke
     add 4a3577d682 Minor doc work on the recipients aspect of sending mail.
     add 8a195041c2 Added some docs about the sendMail method.
     add 575d46c43f Reworked the section on mail content.
     add e1fbf5beb5 Split docs out over several pages.
     add 9659d9b7a7 Some docs on from() method in DSL.
     add 61e3b0632f Added empty stub for section on testing.
     add 8dcc5ab317 Fixed bug caused by attempting to set a null from address due to the default from address being null.
     add 44bf0547fc Remove redundant conditional block.
     add 585bb681c0 GRAILSPLUGINS-2730 - upgraded to javamail 1.4.3
     add bed73f2af7 GRAILSPLUGINS-2792 - use the artifact name of spring-test as it is in maven repos and not in $GRAILS_HOME/lib
     add d72321deda doc improvements.
     add dba4fe3331 removed redundant comment.
     add ae61041238 doc improvements.
     add 3efe8c1e20 Added note on override address
     add 8ec74582b1 Filled out section on attachments.
     add 4f733479aa Added notes on testing.
     add a8ecb8c6b5 remove skeletal ref doc
     add 7f4aa646d4 Now defaults to env var SMTP_HOST if no mail.host config and no jndiName. Falls back to localhost still.
     add dd3b12b5c2 Upgraded to Grails 1.3.7 and incorporating partial spring-test dependency fix for Grails 1.3.7 and 2.0
     add 90ed98c790 Updated with more Grails versions' spring release numbers and new mech from Luke for post-Grails 2.0
     add c3857953a3 Docs for the new SMTP_HOST env var
     add 336a92505d update Geb
     add a6545ebced updates
     add bf5a3f3a08 some improvements to spring-test dependency handling
     add 088970b3e7 Always use spring-test 3.1.0
     add 8937d44cb3 Got the test app into shape
     add 2cc0dbc492 Updated metadata for version and plugin portal
     add b183b8fa70 Fixed bogus Tomcat version
     add 380f9a1586 Moved tomcat dep to BuildConfig so Grails 2 doesn't try to resolve it while publishing
     add 61f0898543 GPMAIL-71 deleted unused web-app contents
     add 29bcbef037 added STS project files
     add 06c97b3695 cleanup, whitespace
     add 4d2605661b removed use of ConfigurationHolder
     add 379a905838 Fix for GPMAIL-61 - StackOverflowError when trying to send message...
     add 752b463b9d Fix for http://jira.grails.org/browse/GPMAIL-60
     add 4bde82a06d Merge pull request #11 from nwwells/master
     add 06f3a3fe93 Bump version to 1.0.1-SNAPSHOT.
     add 780f11ec64 Update the plugins used in this build.
     add 11a8ab2fd9 1.0.1 final.
     add f40e42d4dd 1.0.2-SNAPSHOT
     add 191cc7c00d should use Slf4j, not Commons Logging
     add b584359a29 update mail.jar to version 1.4.5 and use Maven Central
     add 29e29a21dc cleanup
     add 0f38e7779e Update .gitignore to ignore common IDE files and other generated files Delete Eclipse project files
     add 51f44fc227 Add travis configuration
     add d9dbc0199a Enable auto publishing of new versions to Grails Central
     add 43506bbc02 allow using closure argument in sendMail method
     add 84eb0ea3ab Merge pull request #13 from toy/master
     add 3809b3cd49 Fixed wrong path to Config.groovy in docs
     add 172f5149b5 Merge pull request #12 from lundvall/master
     add 84c0e22c00 Update the documentation URL
     add c56eecb053 Use grails instead of grailsw
     add 2d88b78c17 Add the Travis CI build status indicator to README.md
     add 7c450b7ee3 Use grails, not ./grails
     add a730c2bef0 Set the grailsCentral credentials based on the environment variables
     add e186bbf722 Also check the repo slug before attempting to publish
     add cef1bcf110 Upgrade to Grails 2.2.5
     add 9524341197 Use more strong typing to improve readability
     add 67a6fd42e7 Use the grails wrapper instead of relying on the PPA (which is very out of date)
     add ff250e7aae Add UrlMappings.groovy as it's required for the integration tests to work
     add 683da43d04 Remove spring-test dependency - it's not used and not necessary
     add 764501e980 More strong typing, and fix errors introduced by my earlier strong typing commit
     add 95111192f3 Upgrade to JavaMail 1.5.1
     add 5e012dee40 Compile time depend on the JavaMail API, runtime depend on the Sun implementation
     add c07be8c70a Add myself as a developer
     add 68c7eb5ec3 More strong typing
     add adaa053683 Add async option for sending mail asynchronously
     add 1a04b823e9 Log when sending an email asynchronously fails
     add 63ea46c968 Release version 1.0.2
     add 6a25e37a5a Set version to 1.0.3-SNAPSHOT
     add 347689ff6b "executorService" is the name used by bean provided by another plugin, which can cause a conflict.
     add 66376e5e3f Set the version to 1.0.3
     add 79a33ecf23 Set to the version to 1.0.4-SNAPSHOT
     add e09c73dc11 Travis CI update gh-pages
     add 62b3ea383a Move shopt -s extglob up - it doesn't take effect until the next block
     add 57f6ec53e5 set GIT_NAME and GIT_EMAIL
     add 8ab16960a0 Travis environment variables that contains spaces must be quoted
     add e512a93081 Simply do "git -rf ." do delete everything
     add 73e61bd285 Fixes
     add a8c4d2f050 Correctly use the standard Grails doc location
     add 845945e53b Fix invalid markup in docs
     add 01cf90b4e8 Always generate the docs
     add b61c16d9a6 Move docs.sh content into .travis.yml
     add 8a28947b5b Do not use tabs
     add cc2f8306f7 Move the Travis script to a separate file
     add c3c958a5e0 Revert "Remove spring-test dependency - it's not used and not necessary"
     add fec9a9c8c6 Explicitly list spring-test dependency exclusions
     add 1c4a418f4c Use spring-test 3.1.4 which matches the version of Grails used to build this plugin
     add 13a52c6997 Set the version to 1.0.4
     add fb5566d34e Set the version to 1.0.5-SNAPSHOT
     add 46022dfb7a Removed deprecated usage of org.codehaus.groovy.grails.plugins.PluginManagerHolder in order to compile with Grails 2.4 (and above)
     add 4a487df488 Upgraded to greenmail 1.3.4
     add 776fe52653 Merge pull request #19 from saw303/master
     add c77e27993e Don't try to publish docs or push new versions for pull requests
     add 4020ef538f Fixed integration test. Autowiring by name did not work because of wrong field name
     add 4e2f17f82e Merge pull request #20 from saw303/master
     add e057fc2694 Update mailservice to take config.
     add 80425c814b Merge remote-tracking branch 'upstream/master'
     add 8fc087ec91 Merge pull request #17 from jameswwarner/master
     add 0f1042e7c3 Update version to 1.0.5
     add 79df4d61e7 upgrade to 2.3.x
     add 536b650b51 Remove dependency on spring-test by using a similar technique to PageRenderer (can't use PageRenderer itself because it doesn't support locale customisation)
     add 60ba0afc66 Refactoring of envelope from setting, to fit with other code updates and to enable setting via sendMail closure: sendMail {     envelopeFrom '...' }
     add 110ea1983c Add simple unit test for envelopeFrom
     add 882612070d Object to using envelopeFrom without JavaMailSender
     add b6605acf8b Integration tests to cover envelopeFrom use
     add 1635d7ce06 Tabs not spaces for consistency. Stronger typing of GreenMail
     add c819e45887 Merge branch 'master' of github.com:spither/grails-mail into spither-master
     add 419da46361 Merge branch 'spither-master'
     add 0c4b51a683 Update to 1.0.6 snapshot
     add 0bbddb30a8 Merge branch 'master' of github.com:gpc/grails-mail
     add d289e04773 Add missing "$" for TRAVIS_PULL_REQUEST
     add 58d6751f29 Allowing getting the scheme, serverPort, and serverName
     add ca50013249 Set the version to 1.0.6
     add 89c1590e7b Set the version to 1.0.7-SNAPSHOT
     add 3229d0559f Fix the getScheme, getServerName, and getServerPort implementations
     add eb06d5a517 Set the version to 1.0.7
     add 11b69b0b5c Set the version to 1.0.8-SNAPSHOT
     add 9703850ff9 porting to grails3
     add f7d4f6222f correcting package refactor
     add b30683775c removed basic project
     add 8e5ce1c33c fixing trait injection
     add 4d63df068b sweet we now have integration tests running (failing)
     add 485ae01ad9 working on spec
     add 5056f4db1c fix failing integration test
     add b0d1906cda progression
     add 523d37c30d tweaking plugin spec to match 3.0 Plugin class
     add 3077d9aa1f update travis environment
     add 81681b819a Use Grails 3.0.0.BUILD-SNAPSHOT
     add 72005123e5 update TraitInjector
     add 97203e0e1d remove greenmail references for now
     add eb924718ea autowire GrailsApplication
     add ffa7e280aa Use Grails 3.0.0.RC2
     add 2f37ba1478 update build.gradle
     add 13cd8fb94b remove Grails 1.2 test
     add cc7c00ec75 Update Gradle wrapper
     add 3ffb53005d woohooo integration tests are working\!
     add 88100fb2a2 Step up to Grails v3.0.0
     add 1265850ecf fixing conflicts
     add e25d04656f build stats update
     add 559131746c version bump in gradle file
     add a34eb1d1ba Update MailGrailsPlugin.groovy
     add 61a20611b2 Merge pull request #5 from timaebi/patch-1
     add c6b5440d57 2.0.0.RC2
     add a8fee77f8b Update application.yml
     add 2be1b349ff Merge pull request #7 from Schlogen/patch-1
     add b608886a9b Using latest stable version of Grails 3.0.9
     add b3d3c5d9e3 Merge pull request #8 from sbglasius/master
     add 568b2128a3 Updated build.gradle to latest versions plugins
     add 94ffee9f50 Merge pull request #9 from sbglasius/master
     add bef59d7604 back to snapshot
     add b92625077f 2.0.0.RC4
     add 02d074981c fix typo in gdoc
     add 2bcf080674 Merge pull request #11 from xhkz/master
     add ce08901835 Updated to Grails 3.0.14
     add bbaf0d3ba8 Updated plugin descriptor
     add 2309725e96 Fixed #32 (https://github.com/gpc/grails-mail/issues/32)
     add f2c7a81473 MailMessageBuilderTest converted to Spock: MailMessageBuilderSpec
     add 715d85c1ab Execute integration tests on travis too
     add 53d02bedb6 CompileStatic overhaul. Using GrailsConfigurationAware in MailService, Using DelegatesTo(MailMessageBuilder) for better IDE support, Uses @Enhances instead of SendMailTraitInjector
     add 3716c372ed SendMail applicationContext bug. MailService read wrong config values
     add 1ecd1bca1c Merge pull request #13 from grails3-plugins/prepare-2.0.0
     add 4b62b0c95f v2.0.0.RC5
     add 7c4580a3d6 v2.0.0.RC6
     add 7a7ce2cd4d 2.0.0.BUILD-SNAPSHOT
     add f66d03479c Fix travis badge
     add 8d13c1d5c7 Merge pull request #15 from erichelgeson/eric/fixbadge
     add 810eee0e18 Fixed application-wide rendering issues caused by mail rendering environment: https://github.com/grails3-plugins/mail/issues/23
     add b80346178d Merge pull request #26 from davidkron/master
     add 6988594111 In a none request enviroment the serverBaseURL can be null. Simply check for this and act accordingly.
     add c4269062ed Fixed typo
     add fa1f3edc3d Merge pull request #24 from tkvw/master
     add a25e83eedb 2.0.0
     add 31d5fe52d3 update credentials
     add 4b287a2016 update gradlew url
     add 1b7834b497 use openjdk8
     add 2b1dc60a78 Re-order ThreadPool settings so that the maximum pool size is set before the core pool size. Fixes an exception in JDK 10.
     add 9435b0ac77 Merge pull request #32 from double16/threadpool-jdk-10-fix
     add 93308e3f46 migration to grails 4
     add 920c36502e provided deps
     add ae752970b6 Add jdk11 tests
     add a9268432be Minor formatting cleanup, bump gradle version
     add 32b89cece9 3.0.0.BUILD-SNAPSHOT
     add 77912ff8ab Add back publish config
     add 132fc1108a Include publish gradle files
     add 515c6e9406 Add vcsUrl - update artifactory plugin
     add 201e2b3b90 Release 3.0.0
     add 134d3e342a Back to snapshot
     add 7b63276c91 Add note on version compatibility
     add 373b2bdbd4 Only run publish tasks for jdk8
     add 7b5499a9df Define exit status before using
     add 0d6b7246e9 Fixed broken links
     add 48d2865b2e Merge pull request #50 from grails3-plugins/puneetbehl-patch-1
     add c005a35347 fixing Grails 5 config access (Accessing config through dot notation is deprecated)
     add 67f9a69a61 using @ConfigurationProperties for configuration access
     add 7648784a85 Merge pull request #48 from davidkron/grails5-config-without-dot-access
     add 11083f2d1e Update README.md
     add 0b4b1a51b9 Merge pull request #54 from matrei/patch-1
     add 417a1efd12 feat!: Upgrade to Grails 6 (#57)
     add 47030320b6 build(ci): Replace deprecated setup-gradle usage (#59)
     add b67376ab84 build(ci): Fix problem with multi-line run commands (#60)
     add 023656ef61 build(docs): Fix docs generation
     add 97ab528ea4 Merge pull request #61 from matrei/matrei/fix-docs
     add e6b62a4856 [skip ci] Release v4.0.0
     add 8b34b220dc chore: Bump version to 4.0.1-SNAPSHOT
     add 8d4e13f570 Gradle 8.10.2
     add 5c70dff5ff Grails 7
     add 7bd2507a5e Update README.md
     add d16a00cbf2 fix(deps): set compileOnly dependencies
     add da501c8b73 Merge pull request #56 from gpc/matrei/add-servlet-api
     add c0a82ec33e ci: Change keys (#55)
     add 97b67b85d5 Use dependency versions from the `grails-bom` where available (#57)
     add 4885f0672b build: Remove `slf4j-simple` from `testRuntimeClasspath` (#59)
     add e9ebd9f42a Fix CI workflows (#60) (#61)
     add 03062859e3 Update github workflows (#58)
     add c2ac4650e9 Fix CI workflows (#60)
     add 6fcf00485f ci: Use correct signing secret name (#62)
     add 460e139ba1 Merge branch '4.0.x' into matrei/merge-4.0.x-into-5.0.x
     add 08595e9e08 Merge pull request #63 from gpc/matrei/merge-4.0.x-into-5.0.x
     add 3c6855697e Switch to grails/github-actions
     add c9f8fd09bf Switch to grails/github-actions
     add 6359fc51b9 docs: convert from `gdoc` to `asciidoc`
     add a0c1e66e51 ci: update release-notes.yml authentication and permissions
     add 6080f34e33 Merge pull request #64 from gpc/matrei/convert-docs
     add 3b64c3843d ci: switch git user
     add 4c2de6b293 Update README links and text (#65)
     add 6bb8c07dbc Switch CI git user again (#66)
     add 9b09ceffeb fix(deps): set Grails version `7.0.0-M1`
     add 5cb1f99248 fix(deps): upgrade `greenmail` to `2.1.2`
     add 8e457902e9 chore: add `.sdkmanrc`
     add 7f572025bc build(deps): upgrade Gradle wrapper to `8.12`
     add 76cc434023 fix: add `@CompileStatic` to `Application`
     add 1cd374ccc3 build(deps): upgrade `asciidoctor` Gradle plugin to `4.0.4`
     add f62add2c26 build: change repository order
     add 2d111a0136 build: rename `publishing.gradle` file
     add df4e1f2bd7 fix: update `MailGrailsPlugin`
     add 45c660f92c build: update `publish-config.gradle`
     add 2e5d2fc2f1 build: remove `buildSrc` and version catalog
     add 73ca06e24b build: switch to `grails-publish`
     add f4b99204ab ci: pin GitHub workflows to `ubuntu-24.04`
     add a2048afac4 chore(ci): place `java-version` first in `setup-java` action
     add e46f16eb47 build: re-order dependencies by scope
     add 8e923dfa87 build: redo build composition
     add 19219cd3bb build: remove unused properties
     add f2102da60d build(deps): update Gradle plugins for build scans
     add 99c410430d build: add tags to the build scans
     add 6f2cd0cf8a build: add `buildSrc` for `asciidoctor` plugin
     add c545232926 build: update `groovydoc` settings
     add 81404b02ba build: extract integration tests to separate app
     add 78775807fb build: update test logging events
     add c5a47941d7 build: add test dependency `junit-platform-launcher`
     add dbabf3e046 docs: improve documentation generation process
     add 78bef73e87 fix!: update Maven coordinates
     add 7d49537567 fix(deps): update `develocity` gradle plugin
     add e5b57d4101 fix(deps): update `grailsVersion` to `7.0.0-M3`
     add f6333be9e8 chore: cleanup
     add 9c3f219872 build: clarify dependency usage and scope
     add 96773d6197 refactor: Use Spring Boot `@AutoConfiguration`
     add 2161bf8e82 refactor: move classes out of `grails-app`
     add 779463aef1 chore: cleanup
     add 9e969021c1 test: update tests
     add 81b9230b21 build: update documentation generation
     add 02388384cb test: add taglib tests
     add 807eec49a4 fix: set `PlainTextMailTagLib` as provided artefact
     add 08e1bf232f ci: update CI
     add 1bc98ba9ce ci: set permissions at job level
     add ab13857c81 ci: set correct permission attributes
     add 2663d741c7 build: update java version in `.sdkmanrc`
     add 56fb5035b9 build: update gradle wrapper version to 8.13
     add b7d02ba14d ci: fix typo in `release.yml`
     add fecf06ac3f ci: remove obsolete permissions block `release-notes.yml`
     add 28105e81f2 ci: update build scan plugin versions and tags in testapp1
     add 429a0ca859 test: remove used `resources.groovy`
     add 7f3df9576c chore: cleanup tab -> spaces
     add ef8ffaba55 ci: pr feedback
     add e1092b1762 ci: pr feedback
     add e7d55f4589 ci: pr feedback
     add 3e9c087b70 build(testapp1): allow overriding version properties
     add d2b6aea771 chore: clarify test dependency usage
     add 4ffb21ddb9 chore: prepare for move to `grails-plugins` GitHub org
     add 565b14e4ad ci: set correct env var `GRAILS_PUBLISH_RELEASE`
     add fac9989b50 ci: publish snapshots to `repo.grails.org`
     add 8cd8de2298 build: switch to grails at apache coordinates
     add 5a9d45da3d build: update testapp1 to use grails at apache coordinates
     add 1073c0b9b5 build: update develocity
     add 24d1b57b9a Merge pull request #67 from grails-plugins/prep-5.0.0-M1
     add e34200ad6d fix: correctly handle different mail message types during casting (#70)
     add 8336abbc47 Merge branch '4.0.x' into merge-4.0.x-into-5.0.x
     add aec6ecfebe Merge pull request #71 from grails-plugins/merge-4.0.x-into-5.0.x
     add d498053928 use grails-bom versions
     add ae86d7eb34 Use grails:7.0.0-M4
     add 026e99d23c Merge pull request #75 from grails-plugins/release-5.0.0-prep
     add b1d23c1152 fix SIGNING_KEY
     add 1041b295c2 [skip ci] Release v5.0.0
     add 847d699314 Merge commit '1041b295c29748767cda96291ad8570d22d35b62' into 5.0.x
     add 05f313e5c3 back to snapshot
     add 62073062a1 Update to 5.0.1-SNAPSHOT
     add cc89acda22 feat: update to Grails 7.0.0-M5 and setup project for forward compatibility
     add 1574415133 Merge pull request #80 from grails-plugins/grails7m5
     add d0842094e1 [skip ci] update release workflow for new maven central requirements
     add d949629e34 [skip ci] fix environment reference
     add b3419a4ae0 [skip ci] attempting to fix secret resolution
     add 1506a440af [skip ci] attempting to fix secring extraction
     add 85609c44cb [skip ci] add workaround for upstream gradle plugin bug
     add 6aba5379cf [skip ci] Release v5.0.1
     add 3e746220e4 [skip ci] Bump version to 5.0.2-SNAPSHOT
     add 673b719c29 Merge pull request #81 from grails-plugins/merge-back-5.0.1
     add 599162597a Update to Grails 7.0.0-RC2
     add c445ffb40c [skip ci] Release v5.0.2
     add ae48ae1f18 [skip ci] Bump version to 5.0.3-SNAPSHOT
     add 1b51230c6d Merge pull request #82 from grails-plugins/merge-back-5.0.2
     add 4f8f15c7df Grails 7.0.0 has been released
     add 25cbaeac9a Merge pull request #83 from grails-plugins/grails-7.0.0-update
     add 3c7a6bbe07 [skip ci] Release v5.0.3
     add 2a1b66d855 [skip ci] Bump version to 5.0.4-SNAPSHOT
     add e32380f02b Merge pull request #84 from grails-plugins/merge-back-5.0.3
     add ba622cc8e2 Add installation section to README
     add 7bb5e77abc Update develocity server URL to Apache
     add 317981af41 Update Develocity server URL to Apache version
     add 6d2bf93e2e Initial import of Grails Mail Repository
     add 899178f9c0 Mail Merge - update skill for coordinate changes
     add 92e4eeeed3 Mail Merge - update coordinate changes
     add 87735a58d7 Mail Merge - remove linux line endings
     add b9e2c65325 Mail Merge - initial moves
     add 70546b4b6b Mail Merge - integrate build
     add 595f64d4ef Mail Merge - integrate documentation
     add 726d1b1036 Mail Merge - styling fixes
     add fd971e6577 Mail Merge - Ignore mailing reformatting in history
     add e210c062a0 Mail Merge - add license headers
     add efc07392f3 Mail Merge - update merge skill for ASF header requirement
     add 25841e1bd4 Mail Merge - switch to new coordinates for spring security usages of mail
     add a2eacfeec5 Merge branch '7.0.x' into merge-mail-redis-security
     add 6c1c13859b Spring Security Merge - remove selenium workaround
     add 70ebcb4638 Spring Security Merge - move guava into the base bom
     add fac6f9d20f Spring Security Merge - ignore ldif test data files
     add d00de61926 Spring Security Merge - update published artifact name
     add 486e2783e7 Spring Security Merge - update test app profile to reference the correct project
     add bb3598523c Spring Security Merge - fix rest grailscache artifact name
     add a367bafc1f Spring Security Merge - map MIT since ACL uses MIT licensed libraries
     add b74a979fc0 Spring Security Merge - fix core rename to match naming patterns of other plugins
     add abfe945dc8 Spring Security Merge - fix test structure for migrated security apps
     add f87db10d64 Spring Security Merge - do not use spring boot dependency management plugin
     add ef1112a57f Spring Security Merge - replace transitive dependency on commons-lang with commons-lang3
     add 2144560a4f Spring Security Merge - bump codec version
     add 824362eb6c Spring Security Merge - reformat to meet code style requirements
     add ec9ce0c768 Spring Security Merge - fix flaky test exposed by selenium upgrade
     add 47f96da9e2 Spring Security Merge - ignore reformatting commit
     add fae2576f34 Mail Merge - revert new line additions due to license header
     add 868e188bd0 Fix license references in jar files & in source
     add d8f4bc921d Ensure referenced license files always exist under META-INF
     add 4c4e55d840 Merge branch '7.0.x' into merge-mail-redis-security
     add 0b72d0ba66 Update build file to reference redis project now that it's imported
     add 43912b2de6 Replace CC 2.5 licensed files
     add ee2b4817da Add security tests to publish requirement & update skill for missed migration
     add b30b80a55f Fix race condition in spring security tests
     add 3daf2aa30a Merge pull request #15792 from apache/merge-mail-redis-security
     add 69553fcf30 cherry-pick scratch ignore back to 7.x
     add d89e3ff950 Merge branch '7.0.x' into 7.1.x
     add 27c040f2a8 Merge branch '7.1.x' into 7.2.x
     add e6146e39e2 Merge branch '7.2.x' into mail-security-redis-8-merge
     add 33ccb41faf Pull forward Grails Spring Security 8.x changes & integrate into branch
     add 3960ee2830 Update Spring Security to Groovy 5
     add 10ecd0d7bf Remove Java 17 workflows from 7.x merge
     add 5a74f62c74 Bump dependencies to match transitive versions
     add a299c597c6 CAS 4.x upgrades from jdk15 -> jdk18 bouncycastle libraries
     add fc86a9f725 GROOVY-12134 - assign current (seems to not have been needed before)
     add 41349b9d45 GROOVY-12134 - exclude current request/response
     add 18edd83f38 GROOVY-12134 - exclude params
     add 92e60a0be0 fix inverted logic for redis/security tests
     add a31aec59c7 Add missing onlyHibernate7Tests flag to new projects
     add fd487c9d74 Grails 8 - add nullable:false to new test apps
     add a4878be99a Groovy 5 - updated exception format
     add ff7239723b Grails 8 - httpClient api changes
     add a13c38c3fd Fix test for Windows race condition
     add 9979d69e8f GROOVY-12134 - exclude other final methods until groovy is fixed
     add 1814270829 Use grails Rollback annotation
     add c0fa7687a2 Groovy 5 - use method syntax
     add 23f89c51a0 Fix flaky scaffolding tests
     add 9ebdac5787 Always use atCheckWaiting to ensure non-flaky tests
     add 025f04dc1c Harden the directory watcher so if files disappear mid walk, we don't fail.
     add 9735ba928d Fix test pollution - use a different directory so tests don't conflict
     add 5822938291 Increase timeouts for CI
     add a41bca8f0e Remove specific waits, use configuration of the CI pipeline
     add 16c0472763 Add geb reporting for debugging flaky tests in CI
     add 0263bd55e9 Add waitFor to ensure table has rendered
     add a297334685 Adding waitFor so exceptions retry
     add 19ac8b2757 Handle slow page transitions
     add dfa75b0c0b Merge pull request #15834 from apache/mail-security-redis-8-merge
     add 8414ab883a Vulnerability scanning for grails-core
     add 19caafc78a Bump vulnerable versions & add suppressions
     add 377c31b8e3 Only do vulnerability scanning on end grails app libraries & set initial exceptions
     add 7c523336f8 Update asm version
     add d1e8460ca0 Update ASM versions
     add 484aa24af7 Update vulnerability scanning tool to 3.1.6
     add ee8cec7e49 Merge branch '7.0.x' into vulnerabilityScanning
     add a2e28b9ee6 Add missing version
     add d46f9d2248 Update bom management instructions
     add f5a9fbaaa1 Fix ASM version conflicts
     add e43fbacf02 Merge remote-tracking branch 'origin/7.0.x' into vulnerabilityScanning
     add e722c690f0 Merge branch '7.0.x' into vulnerabilityScanning
     add c6f7212b3a feedback - update documentation & remove unneeded permission
     add c54d2675de fix - parallel gradle does not behave with the sonatype ossIndex scanner
     add 4df633172c Update dependencies
     add cd9170b8dc Merge pull request #15631 from apache/vulnerabilityScanning
     add edc60cdd4d Merge branch '7.0.x' into 7.1.x
     add 13f74c8ebd Merge branch '7.1.x' into 7.2.x
     add c2791f1498 Merge branch '7.2.x' into 8.0.x
     add 2650b8c9df Merge branch '8.0.x' into deps/update-micronaut-versions
     add 29c6b29632 Merge pull request #15825 from apache/deps/update-micronaut-versions
     add 3ee8f5a232 Bump asset pipeline to 5.2.0-M1
     add 2989956d66 Update agent guides for Grails 8 versions
     add fed290e555 Refresh Micronaut BOM Jackson comments
     add 243a516577 Align Forge picocli with root version pin
     add b8ca6c1e12 Remove stale Hibernate 7 packaging TODOs
     add 4746b6e0c3 Clarify Hibernate 7 core session comments
     add 92ddb78021 Clarify Hibernate 7 domain binding comments
     add 2b8e05411f Remove stale Hibernate 7 utility TODOs
     add a9d3243bf8 Clarify Hibernate 7 query comments
     add fc0e31b3f3 Remove stale Hibernate 7 query spec TODOs
     add 38e037834f Remove stale Hibernate 7 service spec TODOs
     add 12aa6e7b85 Remove stale Hibernate 7 dbmigration TODO
     add 7eb91ade85 Address dbmigration Groovy exclusion comment
     add 12867f8d6b Merge pull request #15829 from apache/cleanup/8.0-h7-todo-doc-cleanup
     add ed99402b20 Infer controller namespace for link generation when unambiguous
     add a52e874a1b Fix GroovyDoc link reference to getDefaultNamespace signature
     add 2a8727c577 Centralize namespace resolution for link generation
     add 1a3ea791ba Preserve explicit include namespace opt-out
     add 114e515503 Clarify static namespace fixture scope
     add b8122e36a1 Merge pull request #15791 from apache/fix/namespace-aware-link-generation
     add c5b374247f Fix flaky scaffolding tests
     add 26edba83d7 Always use atCheckWaiting to ensure non-flaky tests
     add 34af1ad454 Harden the directory watcher so if files disappear mid walk, we don't fail.
     add 57d3bdc4ed Fix test pollution - use a different directory so tests don't conflict
     add 98db3ccd24 Increase timeouts for CI
     add d37a66b202 Remove specific waits, use configuration of the CI pipeline
     add cc3f4e4c67 Add geb reporting for debugging flaky tests in CI
     add 1cb0d4042f Add waitFor to ensure table has rendered
     add 35a79b367a Adding waitFor so exceptions retry
     add eb3ff43ec4 Handle slow page transitions
     add d0743ba588 Remove indy from backported code
     add 16d8cb38cc Merge branch '7.0.x' into 7.1.x
     add 332a836939 Add missing asm version
     add 0546163f3d Fix setup-gradle version
     add 1d0e9a8e92 Merge branch '7.0.x' into 7.1.x
     add 982efb87fc Merge branch '7.1.x' into 7.2.x
     add 1885758f07 Merge branch '7.2.x' into 8.0.x
     add 5dfd4e2008 Backport redis fix so tests don't fail
     add c7cd28b477 Merge branch '7.0.x' into 7.1.x
     add 4ce1673fa8 Merge branch '7.1.x' into 7.2.x
     add 5831dda2ce Merge branch '7.2.x' into 8.0.x
     add 22edf55263 Update plexus version used for merge
     add 53ded00672 Add plexus-xml since it was split from plexus-utils
     add 17de77cb49 Merge branch '7.0.x' into 7.1.x
     add df6db0a0e0 Merge branch '7.1.x' into 7.2.x
     add 5e561da6f8 Merge branch '7.2.x' into 8.0.x
     add f9b47e9a05 Merge branch '8.0.x' into hibernateProxyFix
     add 2fe90aad52 Address review feedback: remove author tag, add GroovyProxyInterceptorLogicSpec
     add 8a16363ba7 Completely remove org.yakworks:hibernate-groovy-proxy
     add 96c0aedc35 Ensure toString() unwraps proxy like it did historically and allow opt in to not
     add bbfccce149 Ensure the same version of the develocity plugin is used
     add fce34e9bc4 test flakiness - Add waitFor around pageSource
     add ff13b59956 Merge branch '7.0.x' into 7.1.x
     add 4118e840da Merge branch '7.1.x' into 7.2.x
     add 23045cd5ee Merge branch '7.2.x' into 8.0.x
     add 76401d04d2 Stop @EnableWebMvc from being automatically added to Grails Applications
     add b05894e5e7 Keep Grails' GrailsWebRequest bound once WebMvcAutoConfiguration is active
     add 0a49d580a0 Remove Boot's defaultViewResolver for all Grails servlet web apps
     add 04622e3a9c Consolidate defaultViewResolver removal into one place
     add 25a4f2da2c docs: document @EnableWebMvc removal in 8.0.x upgrade notes
     add c312c449cc test: guard GrailsWebRequestFilter is a RequestContextFilter so Boot backs off
     add 7692dbc571 test: prove Boot WebMvcAutoConfiguration backs off its RequestContextFilter for Grails apps
     add 341699382d Merge apache/8.0.x into 7.0.x-remove-EnableWebMvc
     add 12505aaa6e Address review feedback: remove dependency comments, simplify filter comment
     add 8f14cb40fa Merge remote-tracking branch 'upstream/8.0.x' into 7.0.x-remove-EnableWebMvc
     add 7c778321d3 Harden the @EnableWebMvc removal: legacy flag fallback + overridable beans
     add 7a914eca2e Make i18n and URL-mappings framework beans overridable
     add a1f40131b1 Merge branch '8.0.x' into 7.0.x-remove-EnableWebMvc
     add 84ea8179b8 Declare grails.web.removeDefaultViewResolverBean in Settings
     add d79fedaae7 Merge branch '7.0.x-remove-EnableWebMvc' into feat/overridable-i18n-urlmappings-beans
     add 6cd34fa691 Address review feedback
     add 232b14b025 Merge branch '8.0.x' into feat/overridable-i18n-urlmappings-beans
     add 7ff1cb3918 Merge branch 'feat/overridable-i18n-urlmappings-beans' of https://github.com/codeconsole/grails-core into feat/overridable-i18n-urlmappings-beans
     add f00f89a6f4 Merge branch '8.0.x' into feat/overridable-i18n-urlmappings-beans
     add 1ea2031942 Merge branch '8.0.x' into feat/overridable-i18n-urlmappings-beans
     add 87a4afd8bb Merge pull request #15916 from codeconsole/feat/overridable-i18n-urlmappings-beans
     add a1a2214f34 Test flakiness - increased time outs and adding waits
     add 95308377fe Merge branch '7.0.x' into 7.1.x
     add 59250d8f94 Merge branch '7.1.x' into 7.2.x
     add 60b602c45f Merge branch '7.2.x' into 8.0.x
     add 1ae1c83405 Merge branch '8.0.x' into hibernateProxyFix
     add 4a8769ebd4 Test flakiness - switch from dumbster to greenmail
     add ddcc901644 Merge branch '7.0.x' into 7.1.x
     add f6aa252dbf Merge branch '7.1.x' into 7.2.x
     add acc277dcc0 Merge branch '7.2.x' into 8.0.x
     add 375dde8aef Merge branch '8.0.x' into hibernateProxyFix
     add 66475c356a Merge pull request #15841 from apache/hibernateProxyFix
     add 6daf2d1903 Adjust caching so we do not overload the 10 gig limit that GitHub provides
     add 9e381f5c41 Pin upload/download artifacts to same version
     add c3ba64122a Merge branch '7.0.x' into ci/branch-keyed-dependency-cache
     add 71208cf975 Fix nonexistent download-artifact v7.0.1 tag in groovy joint workflow
     add 72529bcdf0 Merge pull request #15935 from apache/ci/branch-keyed-dependency-cache
     add efeae71f73 Merge branch '7.0.x' into 7.1.x
     add 057424f529 Merge branch '7.1.x' into 7.2.x
     add 05f71e6624 Merge branch '7.2.x' into 8.0.x
     add 036d34d194 Detect web applications without relying on the dispatcherServlet bean
     add 1722002425 Merge branch '8.0.x' into fix/neo4j-web-application-detection
     add 769028450c Merge branch '8.0.x' into fix/neo4j-web-application-detection
     add 9b01a07f2c Merge pull request #15936 from codeconsole/fix/neo4j-web-application-detection
     add cdc967acc0 ci: raise publish retry timeout to give slow Nexus uploads headroom
     add dc40351aba Merge pull request #15945 from apache/ci/publish-retry-timeout-7.0.x
     add 9536eac725 ci: free runner disk space before the joint validation Grails build
     add 401187c12c Merge pull request #15946 from apache/ci/joint-build-disk-space-7.0.x
     add c964b9328f Merge branch '7.0.x' into 7.1.x
     add 1b15ce40ca Merge branch '7.1.x' into 7.2.x
     add 05393b335a Merge branch '7.2.x' into 8.0.x
     add 5baf4bf287 Merge branch '8.0.x' into 7.0.x-remove-EnableWebMvc
     add 6e438c55a0 Merge branch '8.0.x' into 7.0.x-remove-EnableWebMvc
     add d63f30aa5c Prevent grailsWebRequest double-registration; document Boot MVC side effects
     add bda03969de Address review nits: drop dependency comment, simplify filter comment
     add 7089adbb9c Tighten the filter-chain helper comment
     add 574470e1a1 Add test to show feature changes with EnableWebMvc
     add 0caf8825f2 Clarify §31.3 form-content note: DELETE is the net-new parsed method
     add 2090dcb7f4 Suppress Boot's default static-resource and welcome-page handling
     add 1c42111eba Make the form-content filter the single request-body parser for non-POST
     add 1d405c9cb5 Guarantee the form-content filter for @EnableWebMvc applications
     add c23e1c63b7 Make the i18n locale resolver strategy configurable
     add 2950804d72 Let Grails' locale resolver win under @EnableWebMvc and handle read-only resolvers
     add 18bf407db3 Merge branch '8.0.x' into 7.0.x-remove-EnableWebMvc
     add 966e83f2f8 Retire grails-spring-security's own FormContentFilter; warn when parsing is disabled
     add 5c4974389b Address review: docs, config metadata, and functional coverage for form parsing
     add 4e458f662a Fix checkstyle OperatorWrap: put string-concatenation + at end of line
     add 1ede3f3c07 Merge pull request #13863 from codeconsole/7.0.x-remove-EnableWebMvc
     add eb78d1b612 Inherit Spring Boot managed dependency versions in grails-bom
     add 6797b26cf8 Merge branch '8.0.x' into deps/grails-bom-inherit-spring-managed
     add 635df22118 Make GrailsDependencyVersions spec version-agnostic
     add f57df79d46 Merge branch '8.0.x' into deps/grails-bom-inherit-spring-managed
     add 791565333e Harden grails-bom Spring Boot inheritance with test and docs
     add 0221c21569 Merge branch '8.0.x' into deps/grails-bom-inherit-spring-managed
     add 4b8bd8bc3e Merge branch '8.0.x' into deps/grails-bom-inherit-spring-managed
     add 187be612dd Merge branch '8.0.x' into deps/grails-bom-inherit-spring-managed
     add a5a70ec91b Fail fast on unresolved imported BOMs
     add 1ec5bb468d Merge branch '8.0.x' into deps/grails-bom-inherit-spring-managed
     add a9b7df18b4 Merge branch '8.0.x' into deps/grails-bom-inherit-spring-managed
     add 1d3caa16be Merge branch '8.0.x' into deps/grails-bom-inherit-spring-managed
     add b18a036167 Use Maven model builder for Grails dependency versions
     add d829c6fcd9 Merge branch '8.0.x' into deps/grails-bom-inherit-spring-managed
     add 7b43c0ec14 Merge pull request #15730 from apache/deps/grails-bom-inherit-spring-managed
     add f56a43c627 Add a light/dark/auto theme selector to the create-app layout
     add 7260b17e18 Drop the fixed light background on the plugins table header
     add ae0572ed9f Polish the controllers namespace section on the home page
     add c4754b59fa Merge pull request #15941 from codeconsole/feat/create-app-theme-selector
     add 342579f60c Add grails-data-mongodb-spring-data interop module
     add fc36b954db Merge branch '8.0.x' into feat/mongo-spring-data-interop
     add bc4bfced01 Address review: fix auto-config discovery path and document @Primary tx manager
     add 5887adb615 Add a Spring Boot context test for the interop auto-configuration
     add 25ec5becef Merge remote-tracking branch 'apache/8.0.x' into pr-15745
     add 8c496e6a13 Address review feedback on MongoDB server-side transactions
     add 216970ff0d Verify the unified transaction manager rejects a per-transaction timeout
     add 6a3d280e6d Frame TransientTransactionError retry as an application concern
     add a2217c9048 Sync MongoDB transaction internals with reviewed #15744
     add 156867a5c5 Merge remote-tracking branch 'upstream/8.0.x' into feat/mongo-spring-data-interop
     add 89e4ab127f Document GORM / Spring Data MongoDB interop in the What's New guide
     add 7863ae33e9 Merge pull request #15745 from codeconsole/feat/mongo-spring-data-interop
     add 35084d19b8 Merge branch '8.0.x' into feat/plugin-dowithspring-method
     add 8f99511820 Restore commons codec version that's non-vulnerable
     add b5e583a6bf Bump jackson3
     add 13bc85c8da Merge branch '8.0.x' into feat/plugin-dowithspring-method
     add 30979e722d Merge pull request #15939 from codeconsole/feat/plugin-dowithspring-method
     add 565f438322 address test flakiness
     add a853ddaf6f Retime plugin doWithSpring to run before Spring Boot auto-configuration
     add de3dd940f2 Add BeanRegistrar plugin hook and deprecate the doWithSpring bean DSL
     add 12ffe36cbe Verify application bean overriding and add end-to-end early plugin phase coverage
     add eb798493ec Resolve application classes for early artefact discovery via classes()
     add 0a84ee57d8 Detect web applications without relying on the dispatcherServlet bean
     add e16f609f68 Merge branch '8.0.x' into feat/plugin-beans-before-autoconfig
     add 4a30a7deb5 Merge branch '8.0.x' into feat/plugin-beans-before-autoconfig
     add dd5ac78797 Remove the duplicate annotation handler mapping and adapter beans
     add a1a6a20379 Merge remote-tracking branch 'upstream/8.0.x' into feat/plugin-beans-before-autoconfig
     add c082a42299 Merge branch '8.0.x' into feat/plugin-beans-before-autoconfig
     add 78b225e7e8 Address review feedback on the plugin lifecycle change
     add e73705204e Add test coverage for review-audit gaps
     add 1af592c933 Replace the mongo OSIV integration test with a unit test of the shared check
     add d054328fe1 test(grails-data-mongodb): add unit-testable Mongo OSIV coverage
     add 193eb458ac Merge remote-tracking branch 'origin/feat/plugin-beans-before-autoconfig' into feat/plugin-beans-before-autoconfig
     add 1dea040f65 Merge remote-tracking branch 'upstream/8.0.x' into feat/plugin-beans-before-autoconfig
     add c1cb74846c Merge branch '8.0.x' into feat/plugin-beans-before-autoconfig
     add c825ffe718 Merge remote-tracking branch 'origin/feat/plugin-beans-before-autoconfig' into feat/plugin-beans-before-autoconfig
     add ef09bcd228 Merge pull request #15934 from codeconsole/feat/plugin-beans-before-autoconfig
     add d175d24533 Mask exception request parameters case-insensitively
     add 55beb5e258 Address exception masking review feedback
     add fef6e81876 Adjust exception masking tests for 7.0.x
     add 0f4eae9959 Merge pull request #15810 from apache/fix/exception-masking-case-insensitive
     add ba8156e51f Clarify exception resolver request logging metadata
     add 642bcd5006 Merge pull request #15811 from apache/fix/request-logging-metadata-default
     add 796d6b3d55 Merge branch '7.0.x' into 7.1.x
     add af71689aa2 Merge branch '7.1.x' into 7.2.x
     add bb5cecae76 Merge branch '7.2.x' into 8.0.x
     add 7e4d087e57 Add Hibernate 7 Forge Feature
     add 4d81ad43af updating command switches, renaming Gorm => Grails Data, & renaming Hibernate => Hibernate5
     add 3b39d9c313 Add what's new
     add d8b7b61d9e Merge remote-tracking branch 'upstream/8.0.x' into feat/addHibernate7ForgeFeature
     add 3d10537b86 Address review feedback
     add eb8fc5480c Update analytics spec for the GormImpl.HIBERNATE to HIBERNATE5 rename
     add c68ab8410f Update command line docs for the gorm-hibernate7 feature and Grails Data terminology
     add e738e8fe3f Move the datasource prefix constant to DatabaseDriverConfigurationFeature
     add e5bd4d1b9c Reject invalid Grails Data implementation values on the create endpoints
     add b668d64db4 Address review feedback: restore Hibernate 5 auto-add for SQL drivers with MongoDB, use ConversionContext#reject, remove unused imports
     add 003f13890e Merge branch '8.0.x' into feat/addHibernate7ForgeFeature
     add 3fcb6054a2 Merge pull request #15944 from apache/feat/addHibernate7ForgeFeature
     add fa25f0a442 Merge remote-tracking branch 'upstream/8.0.x' into 8.0.x
     add c3289a8722 Make AutoTimestampEventListener temporary disabling thread-safe
     add 18e9fa3a8a docs, multi-thread documentation, and removing dead code
     add d62ae0a41a Add available-locale discovery and a language selector to i18n
     add b756b53538 Include plugin-contributed locales in available-locale discovery
     add 081acf99e3 Merge remote-tracking branch 'upstream/8.0.x' into feat/i18n-available-locale-selector
     add 8f9d7aa2bc Merge branch '8.0.x' into feat/i18n-available-locale-selector
     add 170ae02d0f Cover available-locale wiring, plugin lifecycle and taglib branches
     add 9d79f67d09 Address review: type-based resolver lookup, consistent default locale, stricter suffix validation
     add 49ca3b9e6f Merge pull request #15940 from codeconsole/feat/i18n-available-locale-selector
     add 40be754c68 Restore lenient config handling for Spring configuration
     add 58b73a8bb8 Merge branch '7.0.x' into worktree-fix-15818-conversion-service
     add c08999b0df feedback - update comment
     add 105ab336fa Merge pull request #15949 from apache/worktree-fix-15818-conversion-service
     add 7a0d91199b Merge branch '7.0.x' into 7.1.x
     add 45f6722c13 Merge branch '7.1.x' into 7.2.x
     add 60f10a6369 Merge branch '7.2.x' into 8.0.x
     add d7b393ca72 Exclude the Spring DM example from reproducible (release) builds
     add dcb0c95080 Add CI workflow for verification (must still verify locally)
     add 3c68c8e374 Merge remote-tracking branch 'upstream/7.0.x' into 7.1.x
     add 8f96086a0f Merge branch '7.1.x' into 7.2.x
     add b00e83e6d7 Merge branch '7.2.x' into 8.0.x
     add e18c874abd remove missed custom pomDevelopers
     add 2d43860d11 Fix test app reproducibility
     add 7ba62aa93e Fix ui plugin reproducibility
     add 733d8ce85a Handle already generated profile.yml to support build reproducibility
     add 4f4f5b8f9b Do not publish the testapp profile, its internal only
     add 12ef4a9675 Merge branch '7.0.x' into 7.1.x
     add 3a3d98aaa5 Merge branch '7.1.x' into 7.2.x
     add c317eef8e9 Merge branch '7.2.x' into 8.0.x
     add c841b4f932 Merge branch '8.0.x' into fix/autotimestamp-thread-safety-8.0.x
     add 43e59b4593 Cover the codecov-flagged branches in AutoTimestampEventListener
     add 81aa7c2c3b Merge pull request #15954 from codeconsole/fix/autotimestamp-thread-safety-8.0.x
     add f2c1244436 Add workaround for GROOVY-12146
     add 06f5567bf6 Merge pull request #15963 from jdaugherty/8.0.x
     add 7d85988e8a Register the scaffolding view resolver without the bean DSL
     add 2c69b675bd Convert the scaffolding definition post-processor to Java
     add 85c05b4260 Rely on implicit SAM coercion for the bean registrar
     add 23a83ed176 Derive the post-processor order from GroovyPagesPostProcessor.ORDER
     add be023f8e42 Pin the pipeline ordering contract to the collaborators' constants
     add f40b21bf4d Convert to groovy
     add 10960ba19c Merge pull request #15966 from codeconsole/refactor/scaffolding-static-descriptor
     add 440c26cd00 Apply SiteMesh 3 decoration at the bean-definition level
     add 321033c3f8 Compile the SiteMesh 3 plugin descriptor statically
     add 31a229e323 Tighten the SiteMesh 3 plugin description and registration site
     add 84b5428237 Satisfy checkstyle operator-wrap rule
     add db9d18f4f4 Rely on implicit SAM coercion for the bean registrar
     add 6935b3e23a Merge branch '8.0.x' into fix/sitemesh3-viewresolver-definition-wrap
     add 65b8710a29 Suppress the upstream zero-wrap warning when the definition wrap is in place
     add ccbc50c6c7 Implement the definition wrap as upstream's bean-definition mode
     add d1cda68bbf Fix GspAutoConfiguration's use of the relocated property defaults
     add ba2c2ec223 Enforce mutual exclusion with grails-layout instead of accommodating it
     add 32bb99760f Tolerate a combined SiteMesh 2/3 classpath with a loud warning
     add eb50ef7f0c Simplify against SiteMesh 3.3.0-M2
     add 9513a718a0 Groovy conversion & fix sitemesh 2 apps from transitively including sitemesh3
     add d3d445da01 Merge pull request #15964 from codeconsole/fix/sitemesh3-viewresolver-definition-wrap
     add f3e9baa5c7 Fix domainClass plugin being registered and loaded twice
     add 856e5b2a09 Merge pull request #15970 from codeconsole/fix/duplicate-plugin-registration
     add 8f75d23ad6 Add testing support option to introduce latency
     add 75605d7db1 feedback: abandon request on interrupt, reject non-finite probability, deflake timing assertions, doc caveats
     add 8a86bed606 Merge pull request #15937 from apache/feat/latency-testing
     add 8f39bb74f2 Fix normalization script
     add 1711851a16 Log plugin loaded successfully messages at DEBUG instead of INFO
     add cd79d14ecc Add a single INFO summary listing loaded plugins in load order
     add 1d5e58f990 Merge pull request #15969 from codeconsole/fix/plugin-loaded-log-level
     add 33964e780e Make the spring security acl jar reproducible
     add d090dedf08 Fix flaky tests
     add a5ef5459d8 Fix generated logback-spring.xml hiding WARN and INFO messages
     add f69ce63dea Merge pull request #15973 from codeconsole/fix/simplify-logback-spring-xml
     add 08bd0bfbeb Use unique names so tests do not overlap
     add 1c00628f90 Upgrade SiteMesh to 3.3.0-M3
     add 221e4f61c3 Merge pull request #15975 from codeconsole/deps/sitemesh-3.3.0-M3
     add aaf840c6b9 Fix embedded where queries
     add c179aacdc0 Address flaky test
     add acbf185125 Expand test coverage & fix scenarios found from expansion
     add 8e7bab6b3c Move duplicated specs to the tck
     add 385d24631d More fixes for where queries
     add bc37a58337 Merge branch '8.0.x' into fix/where-queries-embedded
     add c8bc797642 Expanding test coverage
     add 6f4a112db5 Standardize on the tck properties to be in the same location (gradle)
     add eaf194dfae Address review feedback on embedded where-query fix
     add 7dd44ccf24 Merge pull request #15962 from apache/fix/where-queries-embedded
     add ff450b503d Internationalize the default welcome page
     add e4a74bbda8 Localize two labels flagged in translation review
     add 6154a2f016 Backfill missing i18n keys and repair broken MessageFormat patterns
     add 4d455f6013 Bring back the Grails cups on a redesigned welcome page
     add 2a4a04ea85 Add a controllers dropdown to the default layout navbar
     add 36811fde72 Internationalize the default layout chrome
     add 4ea1109540 Add status, artefacts, actuators and plugins navigation; pin the default language
     add bcc0e43a9a Keep the navbar minimal; list actuator endpoints on the welcome page
     add ae1440e477 Report the Spring Security version when the dependency is present
     add e83c0a5c1d Mirror the welcome templates into the profile skeleton
     add dc98332ce4 Remove translator attribution headers from the message bundles
     add e03e68c5ff Address review feedback on the welcome page templates
     add c03073e51a Merge pull request #15974 from codeconsole/feat/forge-welcome-page-i18n
     add 937f5b3bff Include the charset when DefaultHtmlRenderer sets the content type
     add 814b384df6 Make the renderer encoding configurable via grails.converters.encoding
     add bb78ee0197 Resolve grails.converters.encoding from the environment via @Value
     add 0a45f47908 Deduplicate the grails.converters.encoding config metadata
     add d12538cd18 Merge pull request #15976 from codeconsole/fix/html-renderer-charset
     add 56d081a856 Fix normalization script
     add 89ff899024 Improve the verification process
     add e43a03e878 Fix command ordering in profile.yml
     add 082f834c4d Merge pull request #15978 from apache/fix/profile-reproducibility
     add 69139fa99e [skip ci] Release v8.0.0-M3
     add c0ed9f6252 [skip ci] Bump version to 8.0.0-SNAPSHOT
     add 9b81874e91 Merge pull request #15983 from apache/merge-back-8.0.0-M3
     add 16c17edee5 Document Grails 8 API compatibility breaks
     add 3793e0ad59 Address Copilot feedback on compatibility docs
     add 00d0bc9359 Fix malformed guide anchor references
     add d861fdf3ce Fix cross-page guide links
     add d05d4d773d Remove stale Shiro guide metadata
     add da2131c71c Preserve profile placeholder in command paths
     add 2f58a2429e Address guide rendering review findings
     add 90d4430b21 Merge branch '8.0.x' into docs/grails-8-api-compat-notes
     add 075ee48b6a Merge branch '8.0.x' into docs/grails-8-api-compat-notes
     add 71cad03519 Merge 8.0.x into docs/grails-8-api-compat-notes
     add 47152e2e76 Merge pull request #15823 from apache/docs/grails-8-api-compat-notes
     add 2acc785e57 Stabilize recurring CI flaky tests in functional/example apps
     add 5eaf9edbcf fix: apply Page Object pattern to GreetingControllerFunctionalSpec
     add 45eed86868 fix: drop redundant @Retry backstop from GreetingControllerFunctionalSpec
     add 7e1fd8cf84 Merge branch '8.0.x' into fix/flaky-tests
     add e500f19a9c fix: drop @Retry backstop from UserControllerSpec/UserCommunityControllerSpec
     add 1b22095503 Merge branch '8.0.x' into fix/flaky-tests
     add 0bed2fb34a Merge 8.0.x into fix/flaky-tests
     add 21670d3d86 Use configured Geb wait timeout in scaffolding login/logout pages
     add 0dad092042 Merge pull request #15793 from apache/fix/flaky-tests
     add e27a4a0322 Add back undertow support
     add 4ea125a1eb Repackage undertow classes for JPMS compatibility
     add 3e40c9b104 Revert documentation changes
     add 77723a6baf Update javadoc for class package changes
     add 532f94c7d5 Merge pull request #15985 from apache/feature/undertow
     add c1a579b2ad Fix forge reproducibility issues
     add b980413820 Merge pull request #15986 from apache/fix/forge-groovy-reproducibility
     add b7ceb5375d Grant native access in CLI and wrapper start scripts
     add 0a726c6500 Replace local StringBuffer usage with StringBuilder
     add ba15d890b5 correcting old javadoc problem
     add 0c63c26a3a Merge pull request #15990 from apache/refactor/legacy-jdk-types
     add d1a3f69dc7 Declare processResources ReplaceTokens values as task inputs
     add eed1e36d0d Merge pull request #16006 from codeconsole/processresources-token-inputs
     add 52bf74ee81 Merge branch '8.0.x' into fix/forge-cli-native-access
     add 76d9f18659 Merge pull request #15989 from codeconsole/fix/forge-cli-native-access
     add 36ad682bdf Split CLI dependencies from the runtime classpath
     add 6fdfaf8675 Remove explicit console dependency
     add e1bac4aa61 Adjust test configuration
     add 237cf03945 Move grailsCli related gradle configuration to a single gradle plugin
     add 01ddd85d57 Cleanup code style
     add b4c8828cfa Functional test app was missing functional dependency substitution
     add 45632e28f5 Ensure hibernate5 bom is used consistently for hibernate5 projects
     add 8043852418 Merge branch '8.0.x' into fix/split-cli-dependencies
     add ea3064a5d9 Fix cli gradle capabilities from being published
     add 329cc6a703 CommandFactoriesTransformation should be able to register commands compiled from src/cli sources.
     add c6739f408e Replace ambgious commands
     add 1fd7f7d405 Merge branch '8.0.x' into fix/split-cli-dependencies
     add 42ef1ac1c6 Wire same-build CLI companions via project capability + cover discovery
     add a441ac3132 Fix factories dedup, BOM companion constraints, and companion build identity
     add 82532d4ee8 Support customized cli companion coordinates end to end
     add 773152144d Document the upgrade impact of the CLI split
     add d6d49e85f3 Fix the command arguments example in the custom-commands guide
     add d1e4af1162 Merge pull request #15948 from apache/fix/split-cli-dependencies
     add e64bd9d80e Enforce HTTPS for wrapper remote repositories
     add fecd1172b3 Address wrapper redirect review feedback
     add ac9bbc91e0 Address wrapper repository review feedback
     add 6689ebf5eb Align wrapper and Forge repository HTTPS validation
     add 2ee817429e Merge remote-tracking branch 'origin/8.0.x' into fix/wrapper-https-enforcement
     add e8ce969643 Harden wrapper HTTPS enforcement per review feedback
     add d42672802c Reject malformed remote wrapper repository overrides
     add a1ea4c8e9f Preserve repository fallback and drive-relative local repos
     add 8be73fd71f Align Forge Windows repository path handling with the wrapper
     add 6704c1d56b Fix OperatorWrap style in GrailsWrapperRepo
     add 6723a29349 feedback - simplify wrapper windows handling, support alises, adding tests, and making sure all implementations work the same
     add 26d1c1036b Merge pull request #15809 from apache/fix/wrapper-https-enforcement
     add 38902374f6 Convert remaining plugin descriptors from doWithSpring() to beanRegistrar()
     add 373528b3b7 Fix functional-test regressions in the bean-registrar conversions
     add f80b1cf8fe Address review feedback on the bean-registrar conversions
     add 3dc84a7b17 Auto-configure the controllers exceptionHandler default
     add 285a4f31d1 Auto-configure the cache plugin's default cache manager and key generator
     add 6cf1eacf9e Merge branch '8.0.x' into refactor/bean-registrars
     add fc6ac88995 Address review feedback: mirror boot order in defineBeans, gate cache auto-config, guard redis definitions
     add 7977c93ed7 Merge branch '8.0.x' into refactor/bean-registrars
     add 76bdd8c079 Address matrei review feedback
     add 3a1a6f82d8 Merge pull request #15994 from codeconsole/refactor/bean-registrars
     add bee4a4b1b0 Bump managed jQuery webjar to 4.0.0 in the BOM
     add ae8fcdcfb0 Add show-by-id and navbar controller filter to the create-app welcome page
     add ea78cf8bb9 Document the jQuery 4.0.0 webjar upgrade in the Grails 8 upgrade guide
     add 0e28a4d59f Fix welcome-page spinner ajax binding and touch autofocus
     add 638e9871dc Sort the welcome-page language selector by autonym
     add bdcb488a36 Use a fixed ROOT collator for the language selector ordering
     add f1cfb19bf4 Sort available locales with a ROOT collator in AvailableLocaleResolver
     add 18268189fe Add render modes and a body form to g:localeSelect
     add 485ff7a452 Use the g:localeSelect body form in the create-app welcome page
     add 3af80d727e Simplify the jQuery pin-back note in the 8.0.x upgrade guide
     add 81a9f3f4e0 Make the create-app welcome page artefact list switchable
     add 4174b63ebe Surface runtime internals on the create-app welcome page
     add cb95eb5f59 Show the request filter pipeline on the create-app welcome page
     add d18ca672f8 Stack the welcome-page cards in two columns to remove dead space
     add 0223d138a0 Restyle the spring-security login and denied pages with Bootstrap
     add cc06c5dca7 Bring spring-security i18n to locale parity with create-app
     add d7b4932afa Add Traditional Chinese (zh_TW) create-app welcome translations
     add a056c21434 Rewrite the spring-security-ui plugin on jQuery 4 and Bootstrap 5
     add a350e53822 Convert the remaining spring-security views and templates to Bootstrap
     add b506a5b067 Integrate the spring-security-ui screens into the host application layout
     add a1d5f25f4c Respect allowedMethods on the create-app controller listings
     add dce86c62d0 Show POST-only controllers disabled in the navbar dropdown
     add dbedd0108d Invoke POST-only controllers through a form in the listings
     add 1fa628162f Document the spring-security-ui Bootstrap rewrite in the upgrade guide
     add ebcf71697e Update the spring-security test apps and fixtures for the Bootstrap rewrite
     add c312e5e9df Fix spring-security-ui functional tests after Bootstrap rewrite
     add 7750a3c81a Remove legacy main.css from spring-security-ui test apps
     add 94993c8701 Fix locale selection, active matching, zh_TW forge wiring and missing i18n keys
     add ae336d9aab Add a URL Mappings panel with an interactive resolver to the welcome page
     add 80f26ff334 Merge branch '8.0.x' into feat/create-app-ui
     add 94e3f4bc18 Link framework tag libraries to their groovydoc on the welcome page
     add 041c889826 Group welcome-page domains by plugin with opt-in row counts
     add e99e27139b Merge branch '8.0.x' into feat/create-app-ui
     add 47e8ebe933 Address review feedback on localeSelect, welcome diagnostics and s2ui buttons
     add 88814b4c5d Merge remote-tracking branch 'upstream/8.0.x' into feat/create-app-ui
     add 8a8d5c114f Add a dual-mode sign-in affordance to the create-app navbar
     add 4e348c3949 Add a Spring Boot Starter Security feature to Grails Forge
     add cbfce2fc93 Show full values as tooltips on the welcome status cards
     add 47da75f9fa Add Grails Spring Security plugin and UI plugin features to Grails Forge
     add e2d83f7ba2 Align the Grails Spring Security plugin feature with the UI flavor's domain model
     add 9aca8df30f Harden the security features' generated runtime after live verification
     add 97df5387b8 Make the Spring Security UI feature supplemental to the core plugin feature
     add b21c25d753 Replace the login password-toggle emoji with Bootstrap icon toggles on every login UI
     add f648df7b53 Render navActions after language and theme in the navbar
     add d98fe6573b Expose feature relationship metadata through the Forge API
     add 89338b9227 Merge pull request #15987 from codeconsole/feat/create-app-ui
     add 7f5c8675bb Fix afterEvaluate race between applyGrailsBom and GrailsCliGradlePlugin
     add 9f751d16be Fix review feedback: preserve plugin identity/idempotency, add regression test
     add 7804f4b011 Merge pull request #16009 from codeconsole/fix/bom-cli-afterEvaluate-ordering
     add 2a32b9661e Simplify forge deployments to speed up release times
     add 2a9adf8619 Remove TestLens setup from forge deploy workflows since they run no tests
     add 5c285ef03a Merge pull request #15984 from apache/ci/faster-forge-deploys
     add fced1db76c Update the grails-gradle-publish plugin to the staged 1.0.0-M2 version
     add ce1884f8f7 Merge pull request #16012 from apache/chore/update-publish-plugin
     add ab50c393a5 feat: add SessionResolver infrastructure and extend core datastore APIs
     add eea98724a3 fix: restore concrete Service trait methods to fix @CompileStatic compilation
     add 9d11da0814 fix: widen MongoMappingContext.initialize visibility to public
     add c382eed135 fix: address Copilot review findings on PR #15779
     add 20966b0380 fix: address review feedback on SessionResolver/AbstractDatastore architecture
     add 8374bc80e9 fix: guard getTenantId() DISCRIMINATOR mode and close review-flagged coverage gaps
     add 36179ebc7d fix: address jdaugherty's follow-up review on SessionResolver/AbstractDatastore
     add 7e50a21785 test(grails-datastore-core): close Codecov patch-coverage gap on getTenantId()'s lazy fallback
     add a5d5d311e7 feat: GORM O(M+N) scaling — GormRegistry, GormEnhancer, and core API refactor
     add ea2918717c fix: restore registerConstraints to GormEnhancer dropped in scaling refactor
     add ab58259ece fix: restore registerConstraints hook and fix MongoStaticApi fields dropped by scaling refactor
     add 30e08c99e3 fix: distinguish datasource connection qualifier from tenant ID in AbstractGormApi.execute()
     add 974eb55700 fix: mode-aware tenant lookup and bound DatastoreResolvers in GormRegistry
     add 6ac608bfe2 fix: register HibernateGormApiFactory in registerConstraints; update affected tests
     add 93ffb0dee3 style: remove unused ConnectionSource import and fix consecutive blank lines in HibernateGormEnhancer
     add 96d8e6f986 fix: restore deprecated GormEnhancer extension points for backward compatibility
     add 7db88ca741 fix: restore deprecated backward-compat API surface for adapter modules
     add 6c7fab8f4c fix: restore deprecated setDatastore and persistentEntity for H7 adapter compat
     add 54e1b4d408 fix: resolve null datastore in H5/H7 validation and dynamic finder dispatch
     add 76f800dcc4 fix: remove redundant this.datastore assignment in HibernateGormStaticApi
     add 18133aa76f Fix MongoDB functional tests: fall back to enhancer API factory when no GormApiFactory registered
     add 606ef97cae fix: restore null-tolerant service/datastore contracts in GormRegistry core
     add a6b1691bd4 fix: clear GormRegistry core-impl regressions (H5 core 42→6)
     add 0afca8b287 fix: resolve multi-tenant dynamic finder dispatch and tenant session passing (H5 core 6→3)
     add 1937163907 fix: honor getAll id order, null slots, and id conversion in Hibernate retrieveAll (H5 core 3→0)
     add 1da63f2e69 fix: register MongoGormApiFactory so Mongo entities resolve a MongoStaticApi
     add 5d1df27928 fix: apply pagination args before Query.list() in findAll-by-example
     add 3628b0d118 fix: implement find/findAll-by-example via findWhere/findAllWhere delegation
     add 7acb40fae7 fix: H7 first/last(Map) inherit core's order-aware implementation
     add 09b0a539cb test: align H7 core tests with the GormRegistry rewrite
     add 76da056195 fix: H7 disjunction/conjunction/negation operate on detachedCriteria
     add 0f78b71b1e fix: MultiTenant.eachTenant must not force current-tenant resolution
     add efbf76cde3 test: isolate Mongo multi-tenancy specs from singleton GormRegistry pollution
     add 325f167212 fix: @CurrentTenant data services resolve the primary datastore for tenant management
     add ca3e87e7ba test: @PendingFeature the pre-existing Mongo count-over-OR disjunction bug
     add 9b2ab9c06e fix: resolve GORM regressions surfaced by the registry refactor
     add ca5d6e77db chore: strip scope-creep config noise from the GormRegistry PR
     add a330c41ee7 fix: address Copilot review findings on PR #15780
     add 41d533c51b test: verify @Service+@CurrentTenant routing in DATABASE multi-tenancy mode
     add a8585dbfba fix: restore copyAnnotations dedup guard needed by ServiceTransformation
     add 713b29290b test(grails-datamapping-core): add GormApiResolverSpec closing PR #15780 coverage gap
     add 24c8518819 fix(grails-datamapping-core): restore saveAll's persisted-id return value; add GormStaticApiSpec
     add 621efb88dc test(grails-datamapping-core): add GormRegistryCoverageSpec closing PR #15780 coverage gap
     add b878c85a85 test(grails-datamapping-core): add GormEnhancerCoverageSpec closing PR #15780 coverage gap
     add dbf1708317 test(grails-datamapping-core): add GormValidationApiCoverageSpec closing PR #15780 coverage gap
     add 75ceaa4444 test(grails-datamapping-core): add GormInstanceApiSpec closing PR #15780 coverage gap
     add 0e1cb948d5 test(grails-datamapping-core): add AbstractGormApiSpec closing PR #15780 coverage gap
     add a0667f9316 test(grails-datamapping-core): add TenantsSpec closing PR #15780 coverage gap
     add e5aec81dc0 test(grails-datamapping-core): add DynamicFinderCoverageSpec closing PR #15780 coverage gap
     add 4e224360b2 test(grails-datamapping-core): add ServiceTransformationCoverageSpec closing PR #15780 coverage gap
     add cbe8e1b9b4 test(grails-datamapping-core): add MultiTenantEventListenerSpec closing PR #15780 coverage gap
     add e0e9c1fd93 test(grails-datamapping-core): add AbstractStringQueryImplementerCoverageSpec closing PR #15780 coverage gap
     add 045740a725 test(grails-datamapping-core): add DefaultTenantServiceSpec closing PR #15780 coverage gap
     add e8e15d7005 test(grails-datamapping-core): add CurrentTenantHolderSpec closing PR #15780 coverage gap
     add d7efddc398 test(grails-datamapping-core): add TenantDelegatingGormOperationsSpec closing PR #15780 coverage gap
     add 938bea4dc0 test(grails-datamapping-core): add GrailsTransactionTemplateSpec closing PR #15780 coverage gap
     add 7d5809f0ca fix(grails-datamapping-core): guard CriteriaBuilder's cache/join/select against a null query
     add 372604de53 test(grails-datamapping-core): add GormStaticApiRegistrySpec closing PR #15780 coverage gap
     add 14ec1762f2 test(grails-datamapping-core): add ConnectionSourceNameResolverSpec closing PR #15780 coverage gap
     add feeb017850 test(grails-datamapping-core): add GormValidationApiRegistrySpec and GormInstanceApiRegistrySpec closing PR #15780 coverage gap
     add 9180ddec8a test(grails-datamapping-core): add AbstractFinderSpec closing PR #15780 coverage gap
     add 2d05bf1e49 test(grails-datamapping-core): add FindAllByImplementerCoverageSpec closing PR #15780 coverage gap
     add 163a9a5dd2 test(grails-datamapping-core): add FindOrSaveByFinderSpec closing PR #15780 coverage gap
     add e71f238e24 test(grails-datamapping-core): add AbstractDatastoreApiSpec closing PR #15780 coverage gap
     add 1ce31b5e94 test(grails-data-simple): add SimpleMapDatastoreSpec closing PR #15780 coverage gap
     add 0c2816bfdc test(grails-datamapping-core): add AbstractServiceImplementerCoverageSpec closing PR #15780 coverage gap
     add c5f3841388 test(grails-data-hibernate5-core): add GrailsDataTckManagerSpec closing PR #15780 coverage gap
     add 13b03398d2 test(grails-datamapping-core): extend MappingContextTraversableResolverSpec closing PR #15780 coverage gap
     add 560086aac6 test(grails-datamapping-core): add DefaultTransactionServiceSpec closing PR #15780 coverage gap
     add 3e13f3a8bf test(grails-datamapping-core): add DefaultTransactionTemplateFactorySpec closing PR #15780 coverage gap
     add 83ea657576 test(grails-datamapping-core): extend TransactionalTransformSpec closing PR #15780 coverage gap
     add e049502377 test(grails-data-mongodb-core): add MongoStaticApiSpec closing PR #15780 coverage gap
     add dc28e61126 test: add core-class unit tests for the GormRegistry O(M+N) rewrite
     add df1e68a179 fix: address Copilot review findings on PR #15790
     add 9e0d87ef48 fix: update ServiceTransformSpec for current Groovy MethodNode.typeDescriptor format

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (1b3c96f53a)
            \
             N -- N -- N   refs/heads/test/gorm-registry-core-tests (9e0d87ef48)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

No new revisions were added by this update.

Summary of changes:
 .agents/skills/grails-developer/SKILL.md           |   14 +-
 .agents/skills/groovy-developer/SKILL.md           |   14 +-
 .agents/skills/java-developer/SKILL.md             |   20 +-
 .agents/skills/mono-repo-integration/SKILL.md      |  167 +++
 .asf.yaml                                          |    4 +
 .claude/settings.json                              |   13 +
 .git-blame-ignore-revs                             |    8 +-
 .github/workflows/forge-deploy-next.yml            |   45 +-
 .github/workflows/forge-deploy-prev-snapshot.yml   |   45 +-
 .github/workflows/forge-deploy-prev.yml            |   45 +-
 .github/workflows/forge-deploy-release.yml         |   65 +-
 .github/workflows/forge-deploy-snapshot.yml        |   45 +-
 .github/workflows/gradle.yml                       |  295 ++++-
 .github/workflows/groovy-joint-workflow.yml        |   41 +-
 .github/workflows/release-verify.yml               |  129 ++
 .github/workflows/sitemesh2.yml                    |    1 -
 .github/workflows/vulnerability-scan.yml           |   84 ++
 AGENTS.md                                          |   26 +-
 DEVELOPMENT.md                                     |    4 +
 INSTALL                                            |    3 +-
 LICENSE                                            |   13 +-
 NOTICE                                             |   10 +
 RENAME.md                                          |    3 +-
 build-logic/docs-core/build.gradle                 |    2 +
 build-logic/plugins/build.gradle                   |    5 +
 .../apache/grails/buildsrc/CompilePlugin.groovy    |    7 +
 .../grails/buildsrc/OssIndexAuditThrottle.groovy   |   41 +
 .../apache/grails/buildsrc/PublishPlugin.groovy    |   12 +
 .../org/apache/grails/buildsrc/SbomPlugin.groovy   |   14 +
 .../grails/buildsrc/VulnerabilityScanPlugin.groovy |   99 ++
 build.gradle                                       |    7 +
 dependencies.gradle                                |  120 +-
 etc/bin/normalize_annotations.groovy               |  154 +++
 etc/bin/rename_gradle_artifacts.sh                 |   11 +-
 etc/bin/verify-jar-artifacts.sh                    |   24 +
 etc/bin/verify-reproducible.sh                     |    6 +
 etc/bin/verify-source-distribution.sh              |   21 +
 etc/bin/verify.sh                                  |  123 +-
 gradle.properties                                  |    7 +-
 gradle/cli-companion-bom-constraints.gradle        |   41 +
 gradle/functional-test-config.gradle               |   50 +-
 gradle/grails-data-tck-config.gradle               |    8 +
 gradle/groovy-compile-configscript.groovy          |   73 ++
 gradle/hibernate5-test-config.gradle               |    7 +-
 gradle/hibernate7-test-config.gradle               |    7 +-
 gradle/mongodb-forked-test-config.gradle           |    2 +
 gradle/mongodb-test-config.gradle                  |    2 +
 gradle/publish-root-config.gradle                  |   18 +
 gradle/rat-root-config.gradle                      |   16 +
 gradle/redis-test-config.gradle                    |   52 +
 gradle/spring-security-test-config.gradle          |   65 +
 gradle/test-config.gradle                          |    2 +
 grails-async/core/build.gradle                     |    1 +
 grails-async/gpars/build.gradle                    |    1 +
 grails-async/plugin/build.gradle                   |    1 +
 .../web/async/ControllersAsyncGrailsPlugin.groovy  |   19 +-
 .../async/ControllersAsyncGrailsPluginSpec.groovy  |   44 +
 grails-async/rxjava/build.gradle                   |    1 +
 grails-async/rxjava2/build.gradle                  |    1 +
 grails-async/rxjava3/build.gradle                  |    1 +
 grails-bom/base/build.gradle                       |   22 +-
 grails-bom/default/build.gradle                    |    4 +
 grails-bom/hibernate5-micronaut/build.gradle       |   12 +-
 grails-bom/hibernate5/build.gradle                 |    4 +
 grails-bom/hibernate7-micronaut/build.gradle       |   12 +-
 grails-bom/hibernate7/build.gradle                 |    4 +
 grails-bom/micronaut/build.gradle                  |    4 +
 grails-bootstrap/build.gradle                      |    1 +
 .../io/watch/WatchServiceDirectoryWatcher.java     |    9 +
 grails-cache/build.gradle                          |    1 +
 .../grails/plugin/cache/CacheGrailsPlugin.groovy   |   28 +-
 .../cache/GrailsCacheAutoConfiguration.groovy      |   69 ++
 ...rk.boot.autoconfigure.AutoConfiguration.imports |    1 +
 .../plugin/cache/CacheGrailsPluginSpec.groovy      |   73 ++
 .../cache/GrailsCacheAutoConfigurationSpec.groovy  |  108 ++
 grails-codecs-core/build.gradle                    |    1 +
 grails-codecs/build.gradle                         |    1 +
 grails-common/build.gradle                         |    1 +
 .../common/compiler/GroovyTransformOrder.groovy    |    7 +
 grails-console/build.gradle                        |   11 +
 .../GrailsApplicationContextCommandRunner.groovy   |    5 +-
 grails-controllers/build.gradle                    |    7 +-
 .../controller/support/ResponseRedirector.groovy   |    3 +-
 .../ControllerBeanDefinitionsPostProcessor.groovy  |  100 ++
 .../controllers/ControllersAutoConfiguration.java  |   33 +-
 .../web/controllers/ControllersGrailsPlugin.groovy |   61 +-
 .../GrailsFormContentFilterAutoConfiguration.java  |   87 ++
 .../GrailsViewResolverAutoConfiguration.java       |   85 ++
 ...GrailsWebResourcesEnvironmentPostProcessor.java |   51 +
 .../GrailsWelcomePageAutoConfiguration.java        |   81 ++
 .../src/main/resources/META-INF/spring.factories   |   19 +
 ...rk.boot.autoconfigure.AutoConfiguration.imports |    3 +
 ...ntrollerBeanDefinitionsPostProcessorSpec.groovy |   99 ++
 .../ControllersAutoConfigurationSpec.groovy        |  222 ++++
 .../controllers/ControllersGrailsPluginSpec.groovy |   61 +
 ...lsFormContentFilterAutoConfigurationSpec.groovy |   97 ++
 .../GrailsViewResolverAutoConfigurationSpec.groovy |   79 ++
 ...WebResourcesEnvironmentPostProcessorSpec.groovy |   55 +
 .../GrailsWelcomePageAutoConfigurationSpec.groovy  |   60 +
 grails-converters/build.gradle                     |    1 +
 .../converters/ConvertersGrailsPlugin.groovy       |   37 +-
 .../converters/ConvertersGrailsPluginSpec.groovy   |   65 +
 grails-core/build.gradle                           |   14 +
 .../grails/core/cli/ApplicationCommand.groovy      |   74 ++
 .../cli/ApplicationContextCommandRegistry.groovy   |   58 +
 .../grails/core/cli/ConfigReportCommand.groovy     |  371 ++++++
 .../apache/grails/core/cli/ExecutionContext.groovy |   52 +
 .../core/cli/GrailsApplicationCommand.groovy       |   46 +
 .../compiler/CommandFactoriesTransformation.groovy |  105 ++
 .../core/cli/io/FileSystemInteraction.groovy       |  143 +++
 .../core/cli/io/FileSystemInteractionImpl.groovy   |  281 +++++
 .../core/cli/template/TemplateException.groovy     |   30 +
 .../core/cli/template/TemplateRenderer.groovy      |  172 +++
 .../core/cli/template/TemplateRendererImpl.groovy  |  234 ++++
 .../cli/resources/META-INF/grails-cli.factories    |   18 +
 ...org.codehaus.groovy.transform.ASTTransformation |    1 +
 .../src/main/groovy/grails/boot/GrailsApp.groovy   |   44 +-
 .../boot/config/ApplicationArtefactScanner.groovy  |   85 ++
 .../config/GrailsApplicationPostProcessor.groovy   |  117 +-
 .../boot/config/GrailsAutoConfiguration.groovy     |   21 +-
 ...GrailsEarlyPluginRegistrationPostProcessor.java |  301 +++++
 .../config/GrailsPluginLifecycleInitializer.java   |   40 +
 .../src/main/groovy/grails/config/Settings.groovy  |   20 +
 .../grails/core/DefaultGrailsApplication.java      |   17 +
 .../grails/core/GrailsApplicationLifeCycle.groovy  |   23 +-
 .../grails/dev/commands/ApplicationCommand.groovy  |   75 --
 .../ApplicationContextCommandRegistry.groovy       |   57 -
 .../grails/dev/commands/ConfigReportCommand.groovy |  371 ------
 .../grails/dev/commands/ExecutionContext.groovy    |   53 -
 .../dev/commands/GrailsApplicationCommand.groovy   |   46 -
 .../dev/commands/io/FileSystemInteraction.groovy   |  144 ---
 .../commands/io/FileSystemInteractionImpl.groovy   |  282 -----
 .../dev/commands/template/TemplateException.groovy |   30 -
 .../dev/commands/template/TemplateRenderer.groovy  |  172 ---
 .../commands/template/TemplateRendererImpl.groovy  |  234 ----
 .../grails/plugins/DefaultGrailsPluginManager.java |   13 +-
 .../main/groovy/grails/plugins/GrailsPlugin.java   |   15 +
 .../src/main/groovy/grails/plugins/Plugin.groovy   |   35 +
 .../core/plugins/DefaultPluginDiscovery.java       |   22 +-
 .../injection/ApplicationClassInjector.groovy      |    1 -
 .../compiler/injection/FactoriesFileWriter.groovy  |  140 +++
 .../GlobalGrailsClassInjectorTransformation.groovy |   86 +-
 .../core/io/support/GrailsFactoriesLoader.groovy   |   29 +-
 .../org/grails/plugins/DefaultGrailsPlugin.java    |   45 +-
 .../additional-spring-configuration-metadata.json  |   29 +
 .../src/main/resources/META-INF/grails-plugin.xml  |    1 -
 .../src/main/resources/META-INF/spring.factories   |    3 +-
 .../grails/boot/DevelopmentModeWatchSpec.groovy    |   29 +-
 .../boot/GrailsAppEnvironmentConversionSpec.groovy |   67 +
 .../EarlyPluginRegistrationOrderingSpec.groovy     |  396 ++++++
 .../core/DefaultGrailsApplicationSpec.groovy       |   51 +
 .../dev/commands/ConfigReportCommandSpec.groovy    |  425 -------
 .../plugins/DefaultGrailsPluginManagerSpec.groovy  |   53 +
 .../plugins/PluginDoWithSpringMethodSpec.groovy    |  153 +++
 .../grails/core/cli/ConfigReportCommandSpec.groovy |  430 +++++++
 .../CommandFactoriesTransformationSpec.groovy      |   45 +
 .../grails/core/plugins/PluginDiscoverySpec.groovy |   72 ++
 .../injection/FactoriesFileWriterSpec.groovy       |  124 ++
 ...balGrailsClassInjectorTransformationSpec.groovy |    4 +-
 .../graphql/plugin/GormGraphqlGrailsPlugin.groovy  |  138 ++-
 .../plugin/GormGraphqlGrailsPluginSpec.groovy      |   82 ++
 grails-data-hibernate5/boot-plugin/build.gradle    |    1 +
 grails-data-hibernate5/core/build.gradle           |    6 +-
 .../cfg/HibernateMappingContextConfiguration.java  |    9 +
 .../proxy/ByteBuddyGroovyInterceptor.java          |   88 ++
 .../proxy/ByteBuddyGroovyProxyFactory.java         |  120 ++
 .../hibernate/proxy/GrailsBytecodeProvider.java    |   38 +
 .../hibernate/proxy/GrailsProxyFactoryFactory.java |   70 ++
 .../proxy/GroovyProxyInterceptorLogic.java         |  137 ++
 .../orm/hibernate/proxy/HibernateProxyHandler.java |    6 +
 .../query/AbstractHibernateCriterionAdapter.java   |   20 +
 .../hibernate/query/AbstractHibernateQuery.java    |    8 +-
 .../META-INF/spring-configuration-metadata.json    |   10 +
 .../grails/gorm/tests/DeleteAllWhereSpec.groovy    |   57 -
 .../grails/gorm/tests/WhereQueryBugFixSpec.groovy  |  106 --
 .../WhereQueryOldIssueVerificationSpec.groovy      |  371 ------
 .../gorm/tests/proxy/ByteBuddyProxySpec.groovy     |   69 +-
 .../proxy/LazyToStringByteBuddyProxySpec.groovy    |   67 +
 .../core/GrailsDataHibernate5TckManager.groovy     |    1 -
 .../tck/base/GrailsDataTckManagerSpec.groovy       |   70 ++
 .../proxy/GroovyProxyInterceptorLogicSpec.groovy   |  156 +++
 .../HibernateProxyHandlerMetaClassProbeSpec.groovy |  109 ++
 grails-data-hibernate5/dbmigration/build.gradle    |   38 +-
 .../command/DbmChangelogSyncCommand.groovy         |   37 -
 .../command/DbmChangelogSyncSqlCommand.groovy      |   41 -
 .../command/DbmClearChecksumsCommand.groovy        |   37 -
 .../command/DbmDbDocCommand.groovy                 |   38 -
 .../command/DbmDiffCommand.groovy                  |   69 --
 .../command/DbmDropAllCommand.groovy               |   45 -
 .../DbmFutureRollbackCountSqlCommand.groovy        |   51 -
 .../command/DbmFutureRollbackSqlCommand.groovy     |   42 -
 .../command/DbmGenerateChangelogCommand.groovy     |   58 -
 .../command/DbmGenerateGormChangelogCommand.groovy |   59 -
 .../command/DbmGormDiffCommand.groovy              |   60 -
 .../command/DbmListLocksCommand.groovy             |   58 -
 .../command/DbmMarkNextChangesetRanCommand.groovy  |   37 -
 .../DbmMarkNextChangesetRanSqlCommand.groovy       |   41 -
 .../command/DbmPreviousChangesetSqlCommand.groovy  |   63 -
 .../command/DbmReleaseLocksCommand.groovy          |   37 -
 .../command/DbmRollbackCommand.groovy              |   44 -
 .../command/DbmRollbackCountCommand.groovy         |   47 -
 .../command/DbmRollbackCountSqlCommand.groovy      |   51 -
 .../command/DbmRollbackSqlCommand.groovy           |   48 -
 .../command/DbmRollbackToDateCommand.groovy        |   55 -
 .../command/DbmRollbackToDateSqlCommand.groovy     |   67 -
 .../command/DbmStatusCommand.groovy                |   42 -
 .../databasemigration/command/DbmTagCommand.groovy |   43 -
 .../command/DbmUpdateCommand.groovy                |   40 -
 .../command/DbmUpdateCountCommand.groovy           |   47 -
 .../command/DbmUpdateCountSqlCommand.groovy        |   50 -
 .../command/DbmUpdateSqlCommand.groovy             |   42 -
 .../command/DbmValidateCommand.groovy              |   37 -
 ...plicationContextDatabaseMigrationCommand.groovy |  129 ++
 .../cli/DatabaseMigrationCommand.groovy            |  429 +++++++
 .../dbmigration/cli/DbmChangelogSyncCommand.groovy |   37 +
 .../cli/DbmChangelogSyncSqlCommand.groovy          |   41 +
 .../dbmigration/cli/DbmChangelogToGroovy.groovy    |   83 ++
 .../cli/DbmClearChecksumsCommand.groovy            |   37 +
 .../dbmigration/cli/DbmCreateChangelog.groovy      |   60 +
 .../dbmigration/cli/DbmDbDocCommand.groovy         |   38 +
 .../dbmigration/cli/DbmDiffCommand.groovy          |   69 ++
 .../dbmigration/cli/DbmDropAllCommand.groovy       |   45 +
 .../cli/DbmFutureRollbackCountSqlCommand.groovy    |   51 +
 .../cli/DbmFutureRollbackSqlCommand.groovy         |   42 +
 .../cli/DbmGenerateChangelogCommand.groovy         |   58 +
 .../cli/DbmGenerateGormChangelogCommand.groovy     |   59 +
 .../dbmigration/cli/DbmGormDiffCommand.groovy      |   60 +
 .../dbmigration/cli/DbmListLocksCommand.groovy     |   58 +
 .../cli/DbmMarkNextChangesetRanCommand.groovy      |   37 +
 .../cli/DbmMarkNextChangesetRanSqlCommand.groovy   |   41 +
 .../cli/DbmPreviousChangesetSqlCommand.groovy      |   63 +
 .../dbmigration/cli/DbmReleaseLocksCommand.groovy  |   37 +
 .../dbmigration/cli/DbmRollbackCommand.groovy      |   44 +
 .../dbmigration/cli/DbmRollbackCountCommand.groovy |   47 +
 .../cli/DbmRollbackCountSqlCommand.groovy          |   51 +
 .../dbmigration/cli/DbmRollbackSqlCommand.groovy   |   48 +
 .../cli/DbmRollbackToDateCommand.groovy            |   55 +
 .../cli/DbmRollbackToDateSqlCommand.groovy         |   67 +
 .../dbmigration/cli/DbmStatusCommand.groovy        |   42 +
 .../dbmigration/cli/DbmTagCommand.groovy           |   43 +
 .../dbmigration/cli/DbmUpdateCommand.groovy        |   40 +
 .../dbmigration/cli/DbmUpdateCountCommand.groovy   |   47 +
 .../cli/DbmUpdateCountSqlCommand.groovy            |   50 +
 .../dbmigration/cli/DbmUpdateSqlCommand.groovy     |   42 +
 .../dbmigration/cli/DbmValidateCommand.groovy      |   37 +
 .../cli/ScriptDatabaseMigrationCommand.groovy      |   71 ++
 .../commands/dbm-changelog-to-groovy.groovy        |   36 +
 .../META-INF/commands/dbm-create-changelog.groovy  |   35 +
 .../databasemigration/DbUpdateCommandSpec.groovy   |    6 +-
 .../DatabaseMigrationGrailsPlugin.groovy           |   17 +-
 ...plicationContextDatabaseMigrationCommand.groovy |  129 --
 .../command/DatabaseMigrationCommand.groovy        |  429 -------
 .../command/DbmChangelogToGroovy.groovy            |   83 --
 .../command/DbmCreateChangelog.groovy              |   60 -
 .../command/ScriptDatabaseMigrationCommand.groovy  |   71 --
 .../main/scripts/dbm-changelog-to-groovy.groovy    |   36 -
 .../src/main/scripts/dbm-create-changelog.groovy   |   35 -
 ...ationContextDatabaseMigrationCommandSpec.groovy |  127 ++
 .../cli/DatabaseMigrationCommandConfigSpec.groovy  |  112 ++
 .../cli/DatabaseMigrationCommandSpec.groovy        |   60 +
 .../cli/DbmChangelogSyncCommandSpec.groovy         |   50 +
 .../cli/DbmChangelogSyncCommandSqlSpec.groovy      |   68 +
 .../cli/DbmClearChecksumsCommandSpec.groovy        |   46 +
 .../dbmigration/cli/DbmDiffCommandSpec.groovy      |  140 +++
 .../dbmigration/cli/DbmDropAllCommandSpec.groovy   |   43 +
 .../DbmFutureRollbackCountSqlCommandSpec.groovy    |  135 ++
 .../cli/DbmFutureRollbackSqlCommandSpec.groovy     |  106 ++
 .../cli/DbmGenerateChangelogCommandSpec.groovy     |  117 ++
 .../cli/DbmGenerateGormChangelogCommandSpec.groovy |  155 +++
 .../dbmigration/cli/DbmGormDiffCommandSpec.groovy  |  127 ++
 .../dbmigration/cli/DbmListLocksCommandSpec.groovy |   61 +
 .../cli/DbmMarkNextChangesetRanCommandSpec.groovy  |   51 +
 .../DbmMarkNextChangesetRanSqlCommandSpec.groovy   |   68 +
 .../cli/DbmPreviousChangesetSqlCommandSpec.groovy  |  134 ++
 .../cli/DbmReleaseLocksCommandSpec.groovy          |   41 +
 .../dbmigration/cli/DbmRollbackCommandSpec.groovy  |  100 ++
 .../cli/DbmRollbackCountCommandSpec.groovy         |  107 ++
 .../cli/DbmRollbackCountSqlCommandSpec.groovy      |  123 ++
 .../cli/DbmRollbackSqlCommandSpec.groovy           |  116 ++
 .../cli/DbmRollbackToDateCommandSpec.groovy        |  114 ++
 .../cli/DbmRollbackToDateSqlCommandSpec.groovy     |  132 ++
 .../dbmigration/cli/DbmStatusCommandSpec.groovy    |   64 +
 .../dbmigration/cli/DbmUpdateCommandSpec.groovy    |  120 ++
 .../cli/DbmUpdateCountCommandSpec.groovy           |  101 ++
 .../cli/DbmUpdateCountSqlCommandSpec.groovy        |  137 ++
 .../dbmigration/cli/DbmUpdateSqlCommandSpec.groovy |  140 +++
 .../dbmigration/cli/DbmValidateCommandSpec.groovy  |   90 ++
 .../cli/ScriptDatabaseMigrationCommandSpec.groovy  |   59 +
 .../DatabaseMigrationGrailsPluginSpec.groovy       |  174 +++
 ...ationContextDatabaseMigrationCommandSpec.groovy |  127 --
 .../DatabaseMigrationCommandConfigSpec.groovy      |  112 --
 .../command/DatabaseMigrationCommandSpec.groovy    |   60 -
 .../command/DbmChangelogSyncCommandSpec.groovy     |   50 -
 .../command/DbmChangelogSyncCommandSqlSpec.groovy  |   68 -
 .../command/DbmClearChecksumsCommandSpec.groovy    |   46 -
 .../command/DbmDiffCommandSpec.groovy              |  140 ---
 .../command/DbmDropAllCommandSpec.groovy           |   43 -
 .../DbmFutureRollbackCountSqlCommandSpec.groovy    |  135 --
 .../command/DbmFutureRollbackSqlCommandSpec.groovy |  106 --
 .../command/DbmGenerateChangelogCommandSpec.groovy |  117 --
 .../DbmGenerateGormChangelogCommandSpec.groovy     |  155 ---
 .../command/DbmGormDiffCommandSpec.groovy          |  127 --
 .../command/DbmListLocksCommandSpec.groovy         |   61 -
 .../DbmMarkNextChangesetRanCommandSpec.groovy      |   51 -
 .../DbmMarkNextChangesetRanSqlCommandSpec.groovy   |   68 -
 .../DbmPreviousChangesetSqlCommandSpec.groovy      |  134 --
 .../command/DbmReleaseLocksCommandSpec.groovy      |   41 -
 .../command/DbmRollbackCommandSpec.groovy          |  100 --
 .../command/DbmRollbackCountCommandSpec.groovy     |  107 --
 .../command/DbmRollbackCountSqlCommandSpec.groovy  |  123 --
 .../command/DbmRollbackSqlCommandSpec.groovy       |  116 --
 .../command/DbmRollbackToDateCommandSpec.groovy    |  114 --
 .../command/DbmRollbackToDateSqlCommandSpec.groovy |  132 --
 .../command/DbmStatusCommandSpec.groovy            |   64 -
 .../command/DbmUpdateCommandSpec.groovy            |  120 --
 .../command/DbmUpdateCountCommandSpec.groovy       |  101 --
 .../command/DbmUpdateCountSqlCommandSpec.groovy    |  137 --
 .../command/DbmUpdateSqlCommandSpec.groovy         |  140 ---
 .../command/DbmValidateCommandSpec.groovy          |   90 --
 .../ScriptDatabaseMigrationCommandSpec.groovy      |   59 -
 .../liquibase/GroovyChangeLogSpec.groovy           |   12 +-
 .../liquibase/GroovyPreconditionSpec.groovy        |    4 +-
 .../eventsAutoTimestamping.adoc                    |   18 +
 .../configuration/configurationReference.adoc      |   19 +
 grails-data-hibernate5/grails-plugin/build.gradle  |   19 +-
 .../data/hibernate5/cli/SchemaExportCommand.groovy |  103 ++
 .../HibernateDatastoreSpringInitializer.groovy     |    2 +-
 .../hibernate/commands/SchemaExportCommand.groovy  |  103 --
 grails-data-hibernate7/boot-plugin/build.gradle    |    1 -
 grails-data-hibernate7/core/build.gradle           |    6 -
 .../groovy/grails/orm/CriteriaMethodInvoker.java   |   31 +-
 .../grails/orm/hibernate/GrailsSessionContext.java |    2 +-
 .../grails/orm/hibernate/HibernateDatastore.java   |    4 +-
 .../orm/hibernate/HibernateGormStaticApi.groovy    |    1 -
 .../org/grails/orm/hibernate/HibernateSession.java |    6 -
 .../cfg/domainbinding/binder/ComponentBinder.java  |    8 +-
 .../cfg/domainbinding/binder/PropertyBinder.java   |    1 -
 .../generator/GrailsNativeGenerator.java           |    1 -
 .../secondpass/CollectionSecondPassBinder.java     |    8 +-
 .../domainbinding/util/NamingStrategyProvider.java |    1 -
 .../domainbinding/util/TableForManyCalculator.java |    1 -
 .../proxy/ByteBuddyGroovyInterceptor.java          |    8 +-
 .../proxy/ByteBuddyGroovyProxyFactory.java         |    9 +-
 .../hibernate/proxy/GrailsProxyFactoryFactory.java |    8 +-
 .../proxy/GroovyProxyInterceptorLogic.java         |   17 +-
 .../orm/hibernate/proxy/HibernateProxyHandler.java |   19 +-
 .../orm/hibernate/query/AliasMapEntryFunction.java |    2 +-
 .../orm/hibernate/query/HqlListQueryBuilder.java   |    1 -
 .../orm/hibernate/query/HqlQueryContext.java       |    1 -
 .../orm/hibernate/query/JpaQueryContext.java       |    4 +-
 .../META-INF/spring-configuration-metadata.json    |   10 +
 .../grails/gorm/tests/DeleteAllWhereSpec.groovy    |   57 -
 .../tests/ExecuteQueryWithinValidatorSpec.groovy   |    1 -
 .../grails/gorm/tests/WhereQueryBugFixSpec.groovy  |  106 --
 .../WhereQueryOldIssueVerificationSpec.groovy      |  371 ------
 .../tests/WhereQueryWithAssociationSortSpec.groovy |    1 -
 .../GlobalConstraintWithCompositeIdSpec.groovy     |    1 -
 .../DetachedCriteriaJoinSpec.groovy                |    3 -
 .../tests/hasmany/HasManyWithInQuerySpec.groovy    |    1 -
 .../gorm/tests/proxy/ByteBuddyProxySpec.groovy     |   65 +-
 .../proxy/LazyToStringByteBuddyProxySpec.groovy    |   65 +
 .../gorm/tests/services/DataServiceSpec.groovy     |    3 +-
 .../core/GrailsDataHibernate7TckManager.groovy     |    1 -
 .../hibernate/HibernateGormStaticApiSpec.groovy    |    1 -
 .../proxy/ByteBuddyGroovyInterceptorSpec.groovy    |   11 +-
 .../proxy/GroovyProxyInterceptorLogicSpec.groovy   |   22 +-
 .../HibernateProxyHandlerMetaClassProbeSpec.groovy |  111 ++
 .../test/java/liquibase/harness/diff/Posts.java    |    2 +-
 grails-data-hibernate7/dbmigration/build.gradle    |   29 +-
 .../command/DbmChangelogSyncCommand.groovy         |   37 -
 .../command/DbmChangelogSyncSqlCommand.groovy      |   41 -
 .../command/DbmClearChecksumsCommand.groovy        |   37 -
 .../command/DbmDbDocCommand.groovy                 |   38 -
 .../command/DbmDiffCommand.groovy                  |   69 --
 .../command/DbmDropAllCommand.groovy               |   45 -
 .../DbmFutureRollbackCountSqlCommand.groovy        |   51 -
 .../command/DbmFutureRollbackSqlCommand.groovy     |   42 -
 .../command/DbmGenerateChangelogCommand.groovy     |   58 -
 .../command/DbmGenerateGormChangelogCommand.groovy |   59 -
 .../command/DbmGormDiffCommand.groovy              |   60 -
 .../command/DbmListLocksCommand.groovy             |   58 -
 .../command/DbmMarkNextChangesetRanCommand.groovy  |   37 -
 .../DbmMarkNextChangesetRanSqlCommand.groovy       |   41 -
 .../command/DbmPreviousChangesetSqlCommand.groovy  |   63 -
 .../command/DbmReleaseLocksCommand.groovy          |   37 -
 .../command/DbmRollbackCommand.groovy              |   44 -
 .../command/DbmRollbackCountCommand.groovy         |   47 -
 .../command/DbmRollbackCountSqlCommand.groovy      |   51 -
 .../command/DbmRollbackSqlCommand.groovy           |   48 -
 .../command/DbmRollbackToDateCommand.groovy        |   55 -
 .../command/DbmRollbackToDateSqlCommand.groovy     |   67 -
 .../command/DbmStatusCommand.groovy                |   42 -
 .../databasemigration/command/DbmTagCommand.groovy |   43 -
 .../command/DbmUpdateCommand.groovy                |   40 -
 .../command/DbmUpdateCountCommand.groovy           |   47 -
 .../command/DbmUpdateCountSqlCommand.groovy        |   50 -
 .../command/DbmUpdateSqlCommand.groovy             |   42 -
 .../command/DbmValidateCommand.groovy              |   37 -
 ...plicationContextDatabaseMigrationCommand.groovy |  129 ++
 .../cli/DatabaseMigrationCommand.groovy            |  433 +++++++
 .../dbmigration/cli/DbmChangelogSyncCommand.groovy |   37 +
 .../cli/DbmChangelogSyncSqlCommand.groovy          |   41 +
 .../dbmigration/cli/DbmChangelogToGroovy.groovy    |   83 ++
 .../cli/DbmClearChecksumsCommand.groovy            |   37 +
 .../dbmigration/cli/DbmCreateChangelog.groovy      |   60 +
 .../dbmigration/cli/DbmDbDocCommand.groovy         |   38 +
 .../dbmigration/cli/DbmDiffCommand.groovy          |   69 ++
 .../dbmigration/cli/DbmDropAllCommand.groovy       |   45 +
 .../cli/DbmFutureRollbackCountSqlCommand.groovy    |   51 +
 .../cli/DbmFutureRollbackSqlCommand.groovy         |   42 +
 .../cli/DbmGenerateChangelogCommand.groovy         |   58 +
 .../cli/DbmGenerateGormChangelogCommand.groovy     |   59 +
 .../dbmigration/cli/DbmGormDiffCommand.groovy      |   60 +
 .../dbmigration/cli/DbmListLocksCommand.groovy     |   58 +
 .../cli/DbmMarkNextChangesetRanCommand.groovy      |   37 +
 .../cli/DbmMarkNextChangesetRanSqlCommand.groovy   |   41 +
 .../cli/DbmPreviousChangesetSqlCommand.groovy      |   63 +
 .../dbmigration/cli/DbmReleaseLocksCommand.groovy  |   37 +
 .../dbmigration/cli/DbmRollbackCommand.groovy      |   44 +
 .../dbmigration/cli/DbmRollbackCountCommand.groovy |   47 +
 .../cli/DbmRollbackCountSqlCommand.groovy          |   51 +
 .../dbmigration/cli/DbmRollbackSqlCommand.groovy   |   48 +
 .../cli/DbmRollbackToDateCommand.groovy            |   55 +
 .../cli/DbmRollbackToDateSqlCommand.groovy         |   67 +
 .../dbmigration/cli/DbmStatusCommand.groovy        |   42 +
 .../dbmigration/cli/DbmTagCommand.groovy           |   43 +
 .../dbmigration/cli/DbmUpdateCommand.groovy        |   40 +
 .../dbmigration/cli/DbmUpdateCountCommand.groovy   |   47 +
 .../cli/DbmUpdateCountSqlCommand.groovy            |   50 +
 .../dbmigration/cli/DbmUpdateSqlCommand.groovy     |   42 +
 .../dbmigration/cli/DbmValidateCommand.groovy      |   37 +
 .../cli/ScriptDatabaseMigrationCommand.groovy      |   71 ++
 .../commands/dbm-changelog-to-groovy.groovy        |   36 +
 .../META-INF/commands/dbm-create-changelog.groovy  |   35 +
 .../databasemigration/DbUpdateCommandSpec.groovy   |    6 +-
 .../DatabaseMigrationGrailsPlugin.groovy           |   17 +-
 ...plicationContextDatabaseMigrationCommand.groovy |  129 --
 .../command/DatabaseMigrationCommand.groovy        |  433 -------
 .../command/DbmChangelogToGroovy.groovy            |   83 --
 .../command/DbmCreateChangelog.groovy              |   60 -
 .../command/ScriptDatabaseMigrationCommand.groovy  |   71 --
 .../main/scripts/dbm-changelog-to-groovy.groovy    |   36 -
 .../src/main/scripts/dbm-create-changelog.groovy   |   35 -
 ...ationContextDatabaseMigrationCommandSpec.groovy |  132 ++
 .../cli/DatabaseMigrationCommandConfigSpec.groovy  |  112 ++
 .../cli/DatabaseMigrationCommandSpec.groovy        |   66 +
 .../cli/DbmChangelogSyncCommandSpec.groovy         |   50 +
 .../cli/DbmChangelogSyncCommandSqlSpec.groovy      |   68 +
 .../cli/DbmClearChecksumsCommandSpec.groovy        |   46 +
 .../dbmigration/cli/DbmDiffCommandSpec.groovy      |  140 +++
 .../dbmigration/cli/DbmDropAllCommandSpec.groovy   |   43 +
 .../DbmFutureRollbackCountSqlCommandSpec.groovy    |  135 ++
 .../cli/DbmFutureRollbackSqlCommandSpec.groovy     |  106 ++
 .../cli/DbmGenerateChangelogCommandSpec.groovy     |  117 ++
 .../cli/DbmGenerateGormChangelogCommandSpec.groovy |  155 +++
 .../dbmigration/cli/DbmGormDiffCommandSpec.groovy  |  127 ++
 .../dbmigration/cli/DbmListLocksCommandSpec.groovy |   61 +
 .../cli/DbmMarkNextChangesetRanCommandSpec.groovy  |   51 +
 .../DbmMarkNextChangesetRanSqlCommandSpec.groovy   |   68 +
 .../cli/DbmPreviousChangesetSqlCommandSpec.groovy  |  134 ++
 .../cli/DbmReleaseLocksCommandSpec.groovy          |   41 +
 .../dbmigration/cli/DbmRollbackCommandSpec.groovy  |  100 ++
 .../cli/DbmRollbackCountCommandSpec.groovy         |  107 ++
 .../cli/DbmRollbackCountSqlCommandSpec.groovy      |  123 ++
 .../cli/DbmRollbackSqlCommandSpec.groovy           |  116 ++
 .../cli/DbmRollbackToDateCommandSpec.groovy        |  114 ++
 .../cli/DbmRollbackToDateSqlCommandSpec.groovy     |  132 ++
 .../dbmigration/cli/DbmStatusCommandSpec.groovy    |   64 +
 .../dbmigration/cli/DbmUpdateCommandSpec.groovy    |  120 ++
 .../cli/DbmUpdateCountCommandSpec.groovy           |  101 ++
 .../cli/DbmUpdateCountSqlCommandSpec.groovy        |  137 ++
 .../dbmigration/cli/DbmUpdateSqlCommandSpec.groovy |  140 +++
 .../dbmigration/cli/DbmValidateCommandSpec.groovy  |   90 ++
 .../cli/ScriptDatabaseMigrationCommandSpec.groovy  |   59 +
 .../DatabaseMigrationGrailsPluginSpec.groovy       |   48 +-
 ...ationContextDatabaseMigrationCommandSpec.groovy |  132 --
 .../DatabaseMigrationCommandConfigSpec.groovy      |  112 --
 .../command/DatabaseMigrationCommandSpec.groovy    |   66 -
 .../command/DbmChangelogSyncCommandSpec.groovy     |   50 -
 .../command/DbmChangelogSyncCommandSqlSpec.groovy  |   68 -
 .../command/DbmClearChecksumsCommandSpec.groovy    |   46 -
 .../command/DbmDiffCommandSpec.groovy              |  140 ---
 .../command/DbmDropAllCommandSpec.groovy           |   43 -
 .../DbmFutureRollbackCountSqlCommandSpec.groovy    |  135 --
 .../command/DbmFutureRollbackSqlCommandSpec.groovy |  106 --
 .../command/DbmGenerateChangelogCommandSpec.groovy |  117 --
 .../DbmGenerateGormChangelogCommandSpec.groovy     |  155 ---
 .../command/DbmGormDiffCommandSpec.groovy          |  127 --
 .../command/DbmListLocksCommandSpec.groovy         |   61 -
 .../DbmMarkNextChangesetRanCommandSpec.groovy      |   51 -
 .../DbmMarkNextChangesetRanSqlCommandSpec.groovy   |   68 -
 .../DbmPreviousChangesetSqlCommandSpec.groovy      |  134 --
 .../command/DbmReleaseLocksCommandSpec.groovy      |   41 -
 .../command/DbmRollbackCommandSpec.groovy          |  100 --
 .../command/DbmRollbackCountCommandSpec.groovy     |  107 --
 .../command/DbmRollbackCountSqlCommandSpec.groovy  |  123 --
 .../command/DbmRollbackSqlCommandSpec.groovy       |  116 --
 .../command/DbmRollbackToDateCommandSpec.groovy    |  114 --
 .../command/DbmRollbackToDateSqlCommandSpec.groovy |  132 --
 .../command/DbmStatusCommandSpec.groovy            |   64 -
 .../command/DbmUpdateCommandSpec.groovy            |  120 --
 .../command/DbmUpdateCountCommandSpec.groovy       |  101 --
 .../command/DbmUpdateCountSqlCommandSpec.groovy    |  137 --
 .../command/DbmUpdateSqlCommandSpec.groovy         |  140 ---
 .../command/DbmValidateCommandSpec.groovy          |   90 --
 .../ScriptDatabaseMigrationCommandSpec.groovy      |   59 -
 .../liquibase/GroovyChangeLogSpec.groovy           |   12 +-
 .../liquibase/GroovyPreconditionSpec.groovy        |    4 +-
 .../eventsAutoTimestamping.adoc                    |   18 +
 .../configuration/configurationReference.adoc      |   19 +
 grails-data-hibernate7/grails-plugin/build.gradle  |   18 +
 .../data/hibernate7/cli/SchemaExportCommand.groovy |  102 ++
 .../HibernateDatastoreSpringInitializer.groovy     |    2 +-
 .../plugin/hibernate/HibernateGrailsPlugin.groovy  |    2 +-
 .../hibernate/commands/SchemaExportCommand.groovy  |  103 --
 grails-data-mongodb/boot-plugin/build.gradle       |    1 +
 grails-data-mongodb/bson/build.gradle              |    1 +
 grails-data-mongodb/core/build.gradle              |   11 +
 .../MongoDbDataStoreSpringInitializer.groovy       |    2 +-
 .../datastore/gorm/mongo/api/MongoStaticApi.groovy |  131 +-
 .../mapping/mongo/AbstractMongoSession.java        |  130 ++
 .../mapping/mongo/MongoCodecSession.groovy         |   14 +-
 .../datastore/mapping/mongo/MongoDatastore.java    |   53 +
 .../datastore/mapping/mongo/MongoSession.java      |   21 +-
 .../datastore/mapping/mongo/MongoTransaction.java  |  174 +++
 .../mapping/mongo/config/MongoMappingContext.java  |    2 +-
 .../AbstractMongoConnectionSourceSettings.groovy   |   10 +
 .../mongo/engine/MongoCodecEntityPersister.groovy  |    5 +-
 .../mapping/mongo/engine/MongoEntityPersister.java |    4 +-
 .../datastore/mapping/mongo/query/MongoQuery.java  |   49 +-
 .../bootstrap/MongoOpenSessionInViewSpec.groovy    |   82 ++
 .../gorm/mongo/EmbeddedAssociationSpec.groovy      |   18 +
 .../gorm/mongo/api/MongoStaticApiSpec.groovy       |   55 +
 .../MongoTransactionDisabledSpec.groovy            |   76 ++
 .../mongo/transactions/MongoTransactionSpec.groovy |  225 ++++
 .../asciidoc/gettingStarted/advancedConfig.adoc    |   66 +
 .../asciidoc/gettingStarted/springDataInterop.adoc |   72 ++
 .../docs/src/docs/asciidoc/index.adoc              |    3 +
 grails-data-mongodb/ext/build.gradle               |    1 +
 grails-data-mongodb/grails-plugin/build.gradle     |    1 +
 grails-data-mongodb/gson-templates/build.gradle    |    1 +
 grails-data-mongodb/spring-data/README.md          |   43 +
 grails-data-mongodb/spring-data/build.gradle       |   80 ++
 ...GormSharedSessionMongoTransactionManager.groovy |   90 ++
 .../SpringDataMongoGormAutoConfiguration.groovy    |  109 ++
 .../data/mongodb/GormSpringDataSessionSupport.java |   64 +
 ...rk.boot.autoconfigure.AutoConfiguration.imports |    1 +
 .../springdata/AutoConfigurationImportsSpec.groovy |   44 +
 ...ataMongoGormAutoConfigurationContextSpec.groovy |   93 ++
 .../springdata/UnifiedMongoTransactionSpec.groovy  |  255 ++++
 .../GormSpringDataSessionSupportSpec.groovy        |   73 ++
 .../Neo4jDataStoreSpringInitializer.groovy         |   28 +-
 grails-data-simple/build.gradle                    |    3 +
 .../mapping/simple/query/SimpleMapQuery.groovy     |    9 +-
 .../mapping/simple/SimpleMapDatastoreSpec.groovy   |   66 +
 grails-databinding-core/build.gradle               |    1 +
 grails-databinding/build.gradle                    |    1 +
 grails-datamapping-async/build.gradle              |    1 +
 grails-datamapping-core-test/build.gradle          |   11 +
 grails-datamapping-core/build.gradle               |    1 +
 .../main/groovy/grails/gorm/CriteriaBuilder.java   |    4 +
 .../org/grails/datastore/gorm/GormStaticApi.groovy |    3 +-
 .../bootstrap/AbstractDatastoreInitializer.groovy  |   24 +-
 .../gorm/events/AutoTimestampEventListener.java    |  239 +++-
 .../grails/datastore/gorm/jdbc/RelaxedNames.java   |    4 +-
 .../query/criteria/AbstractDetachedCriteria.groovy |   10 +-
 .../transform/DetachedCriteriaTransformer.java     |   28 +-
 .../groovy/grails/gorm/CriteriaBuilderSpec.groovy  |  133 ++
 .../transactions/TransactionalTransformSpec.groovy |   32 +
 .../multitenancy/CurrentTenantHolderSpec.groovy    |  207 ++--
 .../grails/gorm/multitenancy/TenantsSpec.groovy    |  570 ++++++++-
 .../AbstractServiceImplementerCoverageSpec.groovy  |   57 +
 ...stractStringQueryImplementerCoverageSpec.groovy |  125 ++
 .../FindAllByImplementerCoverageSpec.groovy        |   84 ++
 .../ServiceTransformationCoverageSpec.groovy       |  101 ++
 .../GrailsTransactionTemplateSpec.groovy           |   75 ++
 .../datastore/gorm/AbstractDatastoreApiSpec.groovy |  115 ++
 .../datastore/gorm/AbstractGormApiSpec.groovy      |  175 +++
 .../gorm/ConnectionSourceNameResolverSpec.groovy   |  157 +--
 .../datastore/gorm/GormApiResolverSpec.groovy      |  961 +++++++++++++--
 .../datastore/gorm/GormEnhancerCoverageSpec.groovy |  188 +++
 .../gorm/GormInstanceApiRegistrySpec.groovy        |   84 +-
 .../datastore/gorm/GormInstanceApiSpec.groovy      |  450 +++++--
 .../datastore/gorm/GormRegistryCoverageSpec.groovy |  437 +++++++
 .../gorm/GormStaticApiRegistrySpec.groovy          |   84 +-
 .../grails/datastore/gorm/GormStaticApiSpec.groovy |  705 +++++++++++
 .../gorm/GormValidationApiCoverageSpec.groovy      |  376 ++++++
 .../gorm/GormValidationApiRegistrySpec.groovy      |   83 +-
 ...ctDatastoreInitializerWebApplicationSpec.groovy |   65 +
 .../gorm/finders/AbstractFinderSpec.groovy         |  100 ++
 .../gorm/finders/DynamicFinderCoverageSpec.groovy  |  235 ++++
 .../gorm/finders/FindOrSaveByFinderSpec.groovy     |   88 ++
 .../MultiTenantEventListenerSpec.groovy            |  405 +++---
 .../TenantDelegatingGormOperationsSpec.groovy      |  117 ++
 .../transform/WhereQueryClosureCaptureSpec.groovy  |  105 ++
 .../WhereQueryEmbeddedBlockTransformSpec.groovy    |  117 ++
 .../gorm/services/DefaultTenantServiceSpec.groovy  |  214 ++++
 .../services/DefaultTransactionServiceSpec.groovy  |   45 +
 .../AutoTimestampEventListenerSpec.groovy          |  735 ++++++++---
 .../DefaultTransactionTemplateFactorySpec.groovy   |   70 +-
 .../MappingContextTraversableResolverSpec.groovy   |   28 +
 grails-datamapping-rx/build.gradle                 |    1 +
 grails-datamapping-support/build.gradle            |    1 +
 grails-datamapping-tck/build.gradle                |    1 +
 .../data/testing/tck/domains/ExternalRef.groovy    |   26 +
 .../data/testing/tck/domains/SystemManaged.groovy  |   29 +
 .../data/testing/tck/domains/WorkItem.groovy       |   30 +
 .../data/testing/tck/domains/WorkItemGroup.groovy  |   29 +
 .../data/testing/tck/domains/WqAuthor.groovy       |   30 +
 .../data/testing/tck/domains/WqBiAuthor.groovy     |   30 +
 .../data/testing/tck/domains/WqBiBook.groovy       |   31 +
 .../data/testing/tck/domains/WqBookAuthor.groovy   |   30 +
 .../data/testing/tck/domains/WqBookItem.groovy     |   30 +
 .../grails/data/testing/tck/domains/WqFoo.groovy   |   32 +
 .../data/testing/tck/domains/WqGroupedItem.groovy  |   34 +
 .../data/testing/tck/domains/WqPhrase.groovy       |   30 +
 .../grails/data/testing/tck/domains/WqRole.groovy  |   28 +
 .../data/testing/tck/domains/WqRoleUser.groovy     |   30 +
 .../testing/tck/domains/WqScientificBook.groovy    |   31 +
 .../data/testing/tck/domains/WqSentence.groovy     |   28 +
 .../data/testing/tck/domains/WqStudent.groovy      |   40 +
 .../grails/data/testing/tck/domains/WqThing.groovy |   28 +
 .../data/testing/tck/domains/WqUserRole.groovy     |   36 +
 .../grails/data/testing/tck/domains/WqWord.groovy  |   30 +
 .../data/testing/tck/tests/DeleteAllSpec.groovy    |   21 +
 .../tck/tests/WhereQueryEmbeddedSpec.groovy        |  348 ++++++
 .../tests/WhereQueryIssueVerificationSpec.groovy   |  258 ++++
 .../tck/tests/WhereQueryLeftJoinSpec.groovy        |   89 ++
 grails-datamapping-validation/build.gradle         |    1 +
 grails-datasource/build.gradle                     |    1 +
 .../DataSourceBeanDefinitionsPostProcessor.groovy  |   83 ++
 .../datasource/DataSourceGrailsPlugin.groovy       |   69 +-
 .../datasource/DataSourceGrailsPluginSpec.groovy   |   92 +-
 grails-datastore-async/build.gradle                |    1 +
 grails-datastore-core/build.gradle                 |    1 +
 .../datastore/mapping/core/AbstractDatastore.java  |   95 +-
 .../grails/datastore/mapping/core/Datastore.java   |   10 +-
 .../datastore/mapping/core/DatastoreUtils.java     |   40 +-
 .../datastore/mapping/core/SessionResolver.groovy  |   11 +-
 .../mapping/core/ThreadLocalSessionResolver.groovy |   52 +-
 .../AbstractConnectionSourceFactory.java           |   19 +-
 .../dirty/checking/DirtyCheckingSupport.groovy     |    9 -
 .../document/config/DocumentMappingContext.java    |    2 +-
 .../mapping/config/KeyValueMappingContext.java     |    6 +-
 .../mapping/model/AbstractMappingContext.java      |    6 +-
 .../mapping/model/AbstractPersistentEntity.java    |    3 +-
 .../datastore/mapping/model/MappingContext.java    |   14 -
 .../datastore/mapping/reflect/ClassUtils.java      |   27 -
 .../CustomizableRollbackTransactionAttribute.java  |    8 +-
 .../mapping/transactions/SessionHolder.java        |    9 +
 .../mapping/core/AbstractDatastoreSpec.groovy      |  175 ++-
 .../mapping/core/DatastoreUtilsSpec.groovy         |   91 +-
 .../core/SessionResolverIntegrationSpec.groovy     |   64 +-
 .../core/ThreadLocalSessionResolverSpec.groovy     |   85 +-
 .../AbstractConnectionSourceFactorySpec.groovy     |   93 ++
 .../ConnectionSourceSettingsBuilderSpec.groovy     |   40 +
 .../AbstractPersistentEntityGetTenantIdSpec.groovy |  122 ++
 .../datastore/mapping/reflect/AstUtilsSpec.groovy  |   36 +
 ...omizableRollbackTransactionAttributeSpec.groovy |  102 ++
 grails-datastore-web/build.gradle                  |    1 +
 grails-dependencies/assets/build.gradle            |    1 +
 grails-dependencies/starter-web/build.gradle       |    1 +
 grails-dependencies/test/build.gradle              |    1 +
 grails-doc/build.gradle                            |   18 +-
 grails-doc/resources/img/acls/acl_class_create.png |  Bin 0 -> 14773 bytes
 grails-doc/resources/img/acls/acl_class_edit.png   |  Bin 0 -> 20579 bytes
 .../img/acls/acl_class_search_results.png          |  Bin 0 -> 19978 bytes
 .../resources/img/acls/acl_class_search_start.png  |  Bin 0 -> 14705 bytes
 grails-doc/resources/img/acls/acl_entry_create.png |  Bin 0 -> 23743 bytes
 grails-doc/resources/img/acls/acl_entry_edit.png   |  Bin 0 -> 24291 bytes
 .../img/acls/acl_entry_search_results.png          |  Bin 0 -> 61095 bytes
 .../resources/img/acls/acl_entry_search_start.png  |  Bin 0 -> 25860 bytes
 grails-doc/resources/img/acls/acl_oid_create.png   |  Bin 0 -> 20978 bytes
 grails-doc/resources/img/acls/acl_oid_edit.png     |  Bin 0 -> 25803 bytes
 .../resources/img/acls/acl_oid_search_results.png  |  Bin 0 -> 58252 bytes
 .../resources/img/acls/acl_oid_search_start.png    |  Bin 0 -> 22978 bytes
 grails-doc/resources/img/acls/acl_sid_create.png   |  Bin 0 -> 15652 bytes
 grails-doc/resources/img/acls/acl_sid_edit.png     |  Bin 0 -> 20379 bytes
 .../resources/img/acls/acl_sid_search_results.png  |  Bin 0 -> 22848 bytes
 .../resources/img/acls/acl_sid_search_start.png    |  Bin 0 -> 16934 bytes
 grails-doc/resources/img/forgot_password_email.png |  Bin 0 -> 27076 bytes
 grails-doc/resources/img/forgot_password_final.png |  Bin 0 -> 12199 bytes
 grails-doc/resources/img/forgot_password_form.png  |  Bin 0 -> 11314 bytes
 grails-doc/resources/img/forgot_password_sent.png  |  Bin 0 -> 5274 bytes
 grails-doc/resources/img/forgot_password_start.png |  Bin 0 -> 13008 bytes
 grails-doc/resources/img/images/jwt.png            |  Bin 0 -> 142229 bytes
 grails-doc/resources/img/images/oauth.png          |  Bin 0 -> 146592 bytes
 grails-doc/resources/img/images/rest.png           |  Bin 0 -> 74973 bytes
 grails-doc/resources/img/login.png                 |  Bin 0 -> 10142 bytes
 grails-doc/resources/img/persistent_login_edit.png |  Bin 0 -> 24061 bytes
 .../resources/img/persistent_login_search.png      |  Bin 0 -> 17616 bytes
 .../img/persistent_login_search_results.png        |  Bin 0 -> 27717 bytes
 grails-doc/resources/img/register_email.png        |  Bin 0 -> 24515 bytes
 grails-doc/resources/img/register_final.png        |  Bin 0 -> 11896 bytes
 grails-doc/resources/img/register_sent.png         |  Bin 0 -> 5563 bytes
 grails-doc/resources/img/register_start.png        |  Bin 0 -> 10745 bytes
 .../resources/img/registration_code_edit.png       |  Bin 0 -> 52960 bytes
 .../img/registration_code_search_results.png       |  Bin 0 -> 172588 bytes
 .../img/registration_code_search_start.png         |  Bin 0 -> 39435 bytes
 grails-doc/resources/img/requestmap_create.png     |  Bin 0 -> 16514 bytes
 grails-doc/resources/img/requestmap_edit.png       |  Bin 0 -> 20000 bytes
 .../resources/img/requestmap_search_results.png    |  Bin 0 -> 26471 bytes
 .../resources/img/requestmap_search_start.png      |  Bin 0 -> 16795 bytes
 grails-doc/resources/img/role_create.png           |  Bin 0 -> 14211 bytes
 grails-doc/resources/img/role_edit.png             |  Bin 0 -> 20270 bytes
 grails-doc/resources/img/role_edit_users.png       |  Bin 0 -> 18645 bytes
 grails-doc/resources/img/role_search_start.png     |  Bin 0 -> 14679 bytes
 grails-doc/resources/img/security_info_auth.png    |  Bin 0 -> 128219 bytes
 grails-doc/resources/img/security_info_config.png  |  Bin 0 -> 111856 bytes
 .../resources/img/security_info_filter_chains.png  |  Bin 0 -> 194681 bytes
 .../img/security_info_logout_handlers.png          |  Bin 0 -> 69989 bytes
 .../resources/img/security_info_mappings.png       |  Bin 0 -> 97600 bytes
 grails-doc/resources/img/security_info_menu.png    |  Bin 0 -> 56973 bytes
 .../resources/img/security_info_providers.png      |  Bin 0 -> 78194 bytes
 .../resources/img/security_info_secure_channel.png |  Bin 0 -> 66563 bytes
 .../resources/img/security_info_user_cache.png     |  Bin 0 -> 122119 bytes
 grails-doc/resources/img/security_info_voters.png  |  Bin 0 -> 75934 bytes
 grails-doc/resources/img/user_create.png           |  Bin 0 -> 29008 bytes
 grails-doc/resources/img/user_edit.png             |  Bin 0 -> 32122 bytes
 grails-doc/resources/img/user_edit_roles.png       |  Bin 0 -> 23707 bytes
 grails-doc/resources/img/user_search_results.png   |  Bin 0 -> 58999 bytes
 grails-doc/resources/img/user_search_start.png     |  Bin 0 -> 25019 bytes
 grails-doc/src/en/guide/commandLine.adoc           |    4 +-
 .../guide/commandLine/creatingCustomCommands.adoc  |  178 ++-
 .../src/en/guide/commandLine/creatingProject.adoc  |   28 +-
 .../gradleBuild/gradleDependencies.adoc            |    1 -
 .../commandLine/gradleBuild/gradlePlugins.adoc     |    4 +-
 .../src/en/guide/commandLine/interactiveMode.adoc  |   19 +-
 .../src/en/guide/conf/config/builtInOptions.adoc   |    1 +
 ...maskingRequestParametersFromStacktraceLogs.adoc |    1 +
 grails-doc/src/en/guide/i18n/changingLocales.adoc  |   40 +-
 grails-doc/src/en/guide/index.adoc                 |   67 +-
 grails-doc/src/en/guide/introduction/whatsNew.adoc |  139 ++-
 grails-doc/src/en/guide/links.yml                  |    9 +-
 grails-doc/src/en/guide/mail.adoc                  |   56 +
 grails-doc/src/en/guide/mail/mailAttachments.adoc  |  120 ++
 .../src/en/guide/mail/mailConfiguration.adoc       |  105 ++
 .../src/en/guide/mail/mailMessageContent.adoc      |  100 ++
 .../src/en/guide/mail/mailSendingEmails.adoc       |   56 +
 grails-doc/src/en/guide/mail/mailTesting.adoc      |   48 +
 .../plugins/creatingAndInstallingPlugins.adoc      |    4 +-
 .../plugins/hookingIntoRuntimeConfiguration.adoc   |   72 +-
 .../en/guide/plugins/providingBasicArtefacts.adoc  |   46 +-
 grails-doc/src/en/guide/redis.adoc                 |   32 +
 .../src/en/guide/redis/redisInstallation.adoc      |   66 +
 .../src/en/guide/redis/redisMemoization.adoc       |   97 ++
 .../guide/redis/redisMemoizationAnnotations.adoc   |  163 +++
 .../src/en/guide/redis/redisMultipleServers.adoc   |   87 ++
 grails-doc/src/en/guide/redis/redisUsage.adoc      |   98 ++
 .../src/en/guide/redis/redisUsefulLinks.adoc       |   31 +
 .../src/en/guide/security/authentication.adoc      |    2 +-
 .../security/securityPlugins/springSecurity.adoc   |   14 +-
 .../springSecurity/acl/AclUtilService.adoc         |   33 +
 .../acl/AclUtilService/addPermission.adoc          |   55 +
 .../acl/AclUtilService/changeOwner.adoc            |   44 +
 .../acl/AclUtilService/deleteAcl.adoc              |   43 +
 .../acl/AclUtilService/deletePermission.adoc       |   51 +
 .../acl/AclUtilService/hasPermission.adoc          |   49 +
 .../springSecurity/acl/AclUtilService/readAcl.adoc |   49 +
 .../springSecurity/acl/Scripts.adoc                |   23 +
 .../acl/Scripts/s2-create-acl-domains.adoc         |   35 +
 .../springSecurity/acl/TagLibraries.adoc           |   25 +
 .../acl/TagLibraries/notPermitted.adoc             |  101 ++
 .../springSecurity/acl/TagLibraries/permitted.adoc |  101 ++
 .../springSecurity/acl/installing.adoc             |   72 ++
 .../acl/installing/distribution.adoc               |   24 +
 .../springSecurity/acl/installing/snapshots.adoc   |   30 +
 .../springSecurity/acl/introduction.adoc           |   29 +
 .../springSecurity/acl/sampleApp.adoc              |   31 +
 .../springSecurity/acl/tutorial.adoc               |  605 +++++++++
 .../securityPlugins/springSecurity/acl/usage.adoc  |   33 +
 .../springSecurity/acl/usage/acls.adoc             |  146 +++
 .../springSecurity/acl/usage/configuration.adoc    |   64 +
 .../acl/usage/customPermissions.adoc               |   86 ++
 .../springSecurity/acl/usage/domainClasses.adoc    |  173 +++
 .../springSecurity/acl/usage/runAs.adoc            |   36 +
 .../springSecurity/acl/usage/serviceMethods.adoc   |   98 ++
 .../springSecurity/cas/configuration.adoc          |   55 +
 .../springSecurity/cas/introduction.adoc           |   25 +
 .../securityPlugins/springSecurity/cas/usage.adoc  |   84 ++
 .../springSecurity/core/authentication.adoc        |   30 +
 .../springSecurity/core/authentication/ajax.adoc   |  359 ++++++
 .../core/authentication/basicAndDigestAuth.adoc    |  132 ++
 .../core/authentication/rememberMeCookie.adoc      |   95 ++
 .../springSecurity/core/authentication/x509.adoc   |   61 +
 .../core/authenticationProviders.adoc              |   60 +
 .../springSecurity/core/channelSecurity.adoc       |  105 ++
 .../springSecurity/core/controllerMethods.adoc     |  106 ++
 .../springSecurity/core/debugging.adoc             |   30 +
 .../springSecurity/core/domainClassProperties.adoc |   89 ++
 .../springSecurity/core/domainClasses.adoc         |   43 +
 .../core/domainClasses/authorityClass.adoc         |   84 ++
 .../authorityGroupAuthorityClass.adoc              |  118 ++
 .../core/domainClasses/authorityGroupClass.adoc    |  144 +++
 .../core/domainClasses/gormAutowire.adoc           |   22 +
 .../core/domainClasses/personAuthorityClass.adoc   |  150 +++
 .../domainClasses/personAuthorityGroupClass.adoc   |  118 ++
 .../core/domainClasses/personClass.adoc            |  161 +++
 .../core/domainClasses/requestmapClass.adoc        |   84 ++
 .../springSecurity/core/events.adoc                |   29 +
 .../core/events/eventNotification.adoc             |   70 ++
 .../core/events/registeringCallbackClosures.adoc   |   58 +
 .../core/events/registeringEventListener.adoc      |   52 +
 .../springSecurity/core/examples.adoc              |   76 ++
 .../springSecurity/core/filters.adoc               |  130 ++
 .../springSecurity/core/helperClasses.adoc         |   29 +
 .../core/helperClasses/securityTagLib.adoc         |  277 +++++
 .../core/helperClasses/springSecurityService.adoc  |  302 +++++
 .../core/helperClasses/springSecurityUtils.adoc    |   81 ++
 .../springSecurity/core/hierarchicalRoles.adoc     |  135 ++
 .../securityPlugins/springSecurity/core/i18n.adoc  |   82 ++
 .../springSecurity/core/introduction.adoc          |   31 +
 .../core/introduction/configGroovy.adoc            |   49 +
 .../core/introduction/gettingStarted.adoc          |   58 +
 .../core/introduction/installation.adoc            |  150 +++
 .../securityPlugins/springSecurity/core/ip.adoc    |   61 +
 .../springSecurity/core/logoutHandlers.adoc        |   61 +
 .../springSecurity/core/miscProperties.adoc        |  136 ++
 .../springSecurity/core/passwords.adoc             |   29 +
 .../springSecurity/core/passwords/hashing.adoc     |   72 ++
 .../springSecurity/core/passwords/locking.adoc     |  246 ++++
 .../springSecurity/core/passwords/salt.adoc        |  126 ++
 .../springSecurity/core/requestMappings.adoc       |  199 +++
 .../core/requestMappings/configGroovyMap.adoc      |  129 ++
 .../core/requestMappings/expressions.adoc          |  141 +++
 .../core/requestMappings/requestmapInstances.adoc  |   96 ++
 .../core/requestMappings/securedAnnotations.adoc   |  219 ++++
 .../springSecurity/core/scripts.adoc               |   27 +
 .../core/scripts/s2-create-persistent-token.adoc   |   41 +
 .../scripts/s2-create-role-hierarchy-entry.adoc    |   41 +
 .../springSecurity/core/scripts/s2-quickstart.adoc |   60 +
 .../springSecurity/core/sessionFixation.adoc       |   54 +
 .../springSecurity/core/switchUser.adoc            |  167 +++
 .../springSecurity/core/tutorials.adoc             |   23 +
 .../core/tutorials/usingControllerAnnotations.adoc |  562 +++++++++
 .../springSecurity/core/urlProperties.adoc         |  197 +++
 .../springSecurity/core/userDetailsService.adoc    |  144 +++
 .../springSecurity/core/voters.adoc                |   62 +
 .../springSecurity/core/whatsNew.adoc              |   47 +
 .../springSecurity/ldap/configuration.adoc         |  103 ++
 .../springSecurity/ldap/introduction.adoc          |   28 +
 .../securityPlugins/springSecurity/ldap/usage.adoc |  167 +++
 .../springSecurity/oauth2/configuration.adoc       |   85 ++
 .../springSecurity/oauth2/extensions.adoc          |  206 ++++
 .../springSecurity/oauth2/installation.adoc        |   33 +
 .../springSecurity/oauth2/introduction.adoc        |   25 +
 .../springSecurity/rest/authentication.adoc        |  176 +++
 .../springSecurity/rest/configuration.adoc         |  113 ++
 .../securityPlugins/springSecurity/rest/cors.adoc  |   26 +
 .../springSecurity/rest/debugging.adoc             |   28 +
 .../springSecurity/rest/events.adoc                |  108 ++
 .../securityPlugins/springSecurity/rest/faq.adoc   |   76 ++
 .../springSecurity/rest/introduction.adoc          |   47 +
 .../securityPlugins/springSecurity/rest/oauth.adoc |  282 +++++
 .../springSecurity/rest/tokenGeneration.adoc       |  125 ++
 .../springSecurity/rest/tokenRendering.adoc        |  119 ++
 .../springSecurity/rest/tokenStorage.adoc          |  424 +++++++
 .../springSecurity/rest/tokenValidation.adoc       |  150 +++
 .../springSecurity/rest/whatsNew14.adoc            |   49 +
 .../springSecurity/rest/whatsNew15.adoc            |   57 +
 .../springSecurity/rest/whatsNew20.adoc            |   81 ++
 .../springSecurity/rest/whatsNew50.adoc            |   45 +
 .../springSecurity/rest/whatsNew60.adoc            |   45 +
 .../springSecurity/springSecurityAcl.adoc          |   38 +
 .../springSecurity/springSecurityCas.adoc          |   28 +
 .../springSecurity/springSecurityCore.adoc         |   76 ++
 .../springSecurity/springSecurityLdap.adoc         |   28 +
 .../springSecurity/springSecurityOauth2.adoc       |   30 +
 .../springSecurity/springSecurityRest.adoc         |   56 +
 .../springSecurity/springSecurityUi.adoc           |   44 +
 .../securityPlugins/springSecurity/ui/acls.adoc    |   33 +
 .../springSecurity/ui/acls/aclClass.adoc           |   47 +
 .../springSecurity/ui/acls/aclEntry.adoc           |   45 +
 .../springSecurity/ui/acls/aclObjectIdentity.adoc  |   47 +
 .../springSecurity/ui/acls/aclSid.adoc             |   47 +
 .../springSecurity/ui/configUI.adoc                |   79 ++
 .../springSecurity/ui/customization.adoc           |  341 +++++
 .../springSecurity/ui/forgotPassword.adoc          |  172 +++
 .../springSecurity/ui/introduction.adoc            |   47 +
 .../springSecurity/ui/persistentCookie.adoc        |   49 +
 .../springSecurity/ui/requestmap.adoc              |   51 +
 .../securityPlugins/springSecurity/ui/role.adoc    |   49 +
 .../securityPlugins/springSecurity/ui/scripts.adoc |   24 +
 .../scripts/s2ui-create-challenge-questions.adoc   |   55 +
 .../springSecurity/ui/scripts/s2ui-override.adoc   |   35 +
 .../securityPlugins/springSecurity/ui/user.adoc    |   53 +
 .../springSecurity/ui/userRegistration.adoc        |  143 +++
 .../src/en/guide/testing/functionalTesting.adoc    |   73 ++
 .../fields/customizingFieldRendering.adoc          |    2 +-
 .../src/en/guide/theWebLayer/gson/gsonHal.adoc     |    2 +-
 .../urlmappings/namespacedControllers.adoc         |   15 +-
 grails-doc/src/en/guide/toc.yml                    |   25 +-
 .../src/en/guide/upgrading/upgrading60x.adoc       |   91 +-
 .../src/en/guide/upgrading/upgrading72x.adoc       |    2 +-
 .../src/en/guide/upgrading/upgrading80x.adoc       |  432 ++++++-
 grails-doc/src/en/ref/Command Line/create-app.adoc |   12 +-
 .../src/en/ref/Command Line/create-command.adoc    |   19 +-
 .../src/en/ref/Command Line/create-plugin.adoc     |   12 +-
 .../src/en/ref/Command Line/create-restapi.adoc    |    4 +-
 .../src/en/ref/Command Line/create-web-plugin.adoc |    4 +-
 grails-doc/src/en/ref/Command Line/help.adoc       |   12 +-
 .../src/en/ref/Command Line/list-features.adoc     |    7 +-
 grails-doc/src/en/ref/Command Line/run-app.adoc    |    3 +
 .../src/en/ref/Command Line/schema-export.adoc     |    3 +-
 grails-doc/src/en/ref/Controllers/chain.adoc       |    4 +-
 grails-doc/src/en/ref/Controllers/namespace.adoc   |    2 +
 grails-doc/src/en/ref/Controllers/redirect.adoc    |    6 +-
 grails-doc/src/en/ref/Tags - GSP/createLink.adoc   |    4 +-
 grails-doc/src/en/ref/Tags - GSP/form.adoc         |    1 +
 grails-doc/src/en/ref/Tags - GSP/include.adoc      |    1 +
 grails-doc/src/en/ref/Tags - GSP/link.adoc         |    2 +-
 grails-doc/src/en/ref/Tags - GSP/localeSelect.adoc |   33 +-
 grails-doc/src/en/ref/Tags - GSP/paginate.adoc     |    1 +
 .../src/en/ref/Tags - GSP/sortableColumn.adoc      |    1 +
 grails-domain-class/build.gradle                   |    1 +
 .../plugins/domain/DomainClassGrailsPlugin.groovy  |   18 +-
 .../domain/DomainClassGrailsPluginSpec.groovy      |   65 +
 grails-encoder/build.gradle                        |    1 +
 grails-events/core/build.gradle                    |    1 +
 grails-events/gpars/build.gradle                   |    1 +
 grails-events/plugin/build.gradle                  |    2 +
 .../plugins/events/EventBusGrailsPlugin.groovy     |   32 +-
 .../plugins/events/EventBusGrailsPluginSpec.groovy |   81 ++
 grails-events/rxjava/build.gradle                  |    1 +
 grails-events/rxjava2/build.gradle                 |    1 +
 grails-events/rxjava3/build.gradle                 |    1 +
 grails-events/spring/build.gradle                  |    1 +
 grails-events/transforms/build.gradle              |    1 +
 grails-fields/build.gradle                         |    1 +
 .../plugin/formfields/FieldsGrailsPlugin.groovy    |   43 +-
 .../formfields/FieldsGrailsPluginSpec.groovy       |   75 ++
 grails-forge/gradle.properties                     |   10 +-
 grails-forge/gradle/groovy-version-pin.gradle      |   29 +
 grails-forge/grails-cli/build.gradle               |    7 +
 .../grails-forge-analytics-postgres/build.gradle   |    1 +
 .../postgres/StoreGeneratedProjectStatsSpec.groovy |    2 +-
 grails-forge/grails-forge-api/build.gradle         |    1 +
 .../main/java/org/grails/forge/api/FeatureDTO.java |   26 +
 .../java/org/grails/forge/api/GormImplDTO.java     |    6 +-
 .../org/grails/forge/api/SelectOptionsDTO.java     |    2 +-
 .../java/org/grails/forge/api/ServletImplDTO.java  |    2 +-
 .../grails/forge/api/FeatureControllerSpec.groovy  |   28 +-
 .../forge/api/ZipCreateControllerSpec.groovy       |   31 +
 .../github/GitHubCreateControllerSpec.groovy       |    2 -
 grails-forge/grails-forge-cli/build.gradle         |    1 +
 .../grails/forge/cli/command/CreateCommand.java    |    2 +-
 .../forge/cli/command/GormImplConverter.java       |   12 +-
 .../forge/cli/command/CreateAppCommandSpec.groovy  |   84 +-
 .../command/CreateDomainClassCommandSpec.groovy    |    2 +-
 grails-forge/grails-forge-core/build.gradle        |    1 +
 .../java/org/grails/forge/analytics/Generated.java |    2 +-
 .../grails/forge/application/ContextFactory.java   |   25 +-
 .../forge/build/gradle/GradleRepository.java       |   78 +-
 .../forge/build/gradle/MavenLocalRepository.java   |   39 +
 .../java/org/grails/forge/feature/Category.java    |    1 +
 .../java/org/grails/forge/feature/Feature.java     |   15 +
 .../forge/feature/assetPipeline/AssetPipeline.java |    1 +
 .../templates/buildSrcBuildGradle.rocker.raw       |    8 +
 .../DatabaseDriverConfigurationFeature.java        |    5 +-
 .../feature/database/DatabaseDriverFeature.java    |   12 +-
 .../feature/database/GrailsDataHibernate5.java     |  129 ++
 .../feature/database/GrailsDataHibernate7.java     |  125 ++
 .../database/GrailsDataHibernateValidator.java     |   49 +
 .../forge/feature/database/GrailsDataMongoDB.java  |   87 ++
 .../grails/forge/feature/database/GraphqlGorm.java |   16 +-
 .../java/org/grails/forge/feature/database/H2.java |    3 +-
 .../forge/feature/database/HibernateGorm.java      |  128 --
 .../grails/forge/feature/database/MongoGorm.java   |   87 --
 .../org/grails/forge/feature/database/MySQL.java   |    4 +-
 .../grails/forge/feature/database/PostgreSQL.java  |    4 +-
 .../grails/forge/feature/database/SQLServer.java   |    4 +-
 .../forge/feature/database/TestContainers.java     |    2 +-
 .../grails/forge/feature/grails/GrailsBase.java    |   17 +-
 .../grails/forge/feature/grails/GrailsConsole.java |   66 -
 .../forge/feature/grails/GrailsDefaultPlugins.java |    1 +
 .../feature/lang/groovy/GrailsApplication.java     |    2 +-
 .../feature/lang/groovy/application.rocker.raw     |    7 +
 .../forge/feature/lang/groovy/bootStrap.rocker.raw |   27 +-
 .../feature/logging/template/logback.rocker.raw    |   32 +-
 .../feature/migration/DatabaseMigrationPlugin.java |   18 +-
 .../feature/security/GrailsSpringSecurity.java     |   91 ++
 .../feature/security/GrailsSpringSecurityUi.java   |   98 ++
 .../feature/security/PrimarySecurityFeature.java   |   38 +
 .../forge/feature/security/SecurityFeature.java    |   87 ++
 .../security/SpringBootStarterSecurity.java        |   90 ++
 .../feature/security/template/role.rocker.raw      |   49 +
 .../template/securityApplicationGroovy.rocker.raw  |   52 +
 .../security/template/securityConfig.rocker.raw    |   51 +
 .../feature/security/template/user.rocker.raw      |   54 +
 .../security/template/userClassic.rocker.raw       |   64 +
 .../template/userClassicService.rocker.raw         |   30 +
 .../security/template/userClassicSpec.rocker.raw   |   50 +
 .../security/template/userController.rocker.raw    |   31 +
 .../feature/security/template/userRole.rocker.raw  |  116 ++
 .../security/template/userService.rocker.raw       |   40 +
 .../feature/security/template/userSpec.rocker.raw  |   41 +
 .../feature/spring/SpringBootUndertowFeature.java  |   22 +-
 .../java/org/grails/forge/options/GormImpl.java    |   33 +-
 .../forge/options/GormImplTypeConverter.java       |   47 +
 .../java/org/grails/forge/options/ServletImpl.java |    2 +-
 .../resources/assets/javascripts/application.js    |   53 +-
 .../src/main/resources/assets/javascripts/theme.js |   75 ++
 .../main/resources/assets/javascripts/welcome.js   |  164 ++-
 .../main/resources/assets/stylesheets/welcome.css  |  145 +++
 .../src/main/resources/gsp/index.gsp               | 1303 ++++++++++++++++++--
 .../src/main/resources/gsp/main.gsp                |  186 ++-
 .../src/main/resources/i18n/messages.properties    |   97 ++
 .../src/main/resources/i18n/messages_cs.properties |   98 ++
 .../src/main/resources/i18n/messages_da.properties |   98 ++
 .../src/main/resources/i18n/messages_de.properties |   98 ++
 .../src/main/resources/i18n/messages_es.properties |   99 +-
 .../src/main/resources/i18n/messages_fr.properties |  146 ++-
 .../src/main/resources/i18n/messages_it.properties |  102 +-
 .../src/main/resources/i18n/messages_ja.properties |   98 ++
 .../src/main/resources/i18n/messages_nb.properties |   98 ++
 .../src/main/resources/i18n/messages_nl.properties |   98 ++
 .../src/main/resources/i18n/messages_pl.properties |  114 +-
 .../main/resources/i18n/messages_pt_BR.properties  |  102 +-
 .../main/resources/i18n/messages_pt_PT.properties  |  128 +-
 .../src/main/resources/i18n/messages_ru.properties |  126 +-
 .../src/main/resources/i18n/messages_sk.properties |   97 ++
 .../src/main/resources/i18n/messages_sv.properties |   99 +-
 .../src/main/resources/i18n/messages_th.properties |  116 +-
 .../main/resources/i18n/messages_zh_CN.properties  |  134 ++
 .../main/resources/i18n/messages_zh_TW.properties  |  153 +++
 .../grails-forge-core/src/main/resources/pom.xml   |    2 +-
 .../forge/build/gradle/GradleRepositorySpec.groovy |  102 ++
 .../database/GrailsDataHibernate5Spec.groovy       |  105 ++
 .../database/GrailsDataHibernate7Spec.groovy       |  220 ++++
 .../feature/database/GrailsDataMongoDBSpec.groovy  |  101 ++
 .../feature/database/HibernateGormSpec.groovy      |  105 --
 .../forge/feature/database/MongoGormSpec.groovy    |   65 -
 .../forge/feature/grails/GrailsConsoleSpec.groovy  |   36 -
 .../feature/grails/GrailsDefaultPluginsSpec.groovy |   73 +-
 .../forge/feature/logging/LogbackSpec.groovy       |   17 +-
 .../migration/DatabaseMigrationPluginSpec.groovy   |   13 +-
 .../security/GrailsSpringSecuritySpec.groovy       |  114 ++
 .../security/GrailsSpringSecurityUiSpec.groovy     |  107 ++
 .../security/SpringBootStarterSecuritySpec.groovy  |  112 ++
 .../forge/feature/spring/SpringBootSpec.groovy     |   23 +-
 .../grails/forge/feature/view/GrailsGspSpec.groovy |  344 ++++++
 .../org/grails/forge/options/GormImplSpec.groovy   |   48 +
 grails-forge/grails-forge-web-netty/build.gradle   |    1 +
 grails-forge/test-core/build.gradle                |    1 +
 .../org/grails/forge/create/CreateAppSpec.groovy   |    4 +-
 grails-geb/build.gradle                            |    1 +
 grails-gradle/gradle/test-config.gradle            |    2 +
 .../io/support/FactoriesLoaderSupport.groovy       |   23 +-
 .../org/grails/io/support/SpringIOUtils.java       |    4 +-
 grails-gradle/plugins/build.gradle                 |   35 +-
 .../plugin/commands/CliArtifactExtension.groovy    |   53 +
 .../plugin/commands/CliPublishingSupport.groovy    |  166 +++
 .../commands/GrailsCliArtifactGradlePlugin.groovy  |  229 ++++
 .../plugin/commands/GrailsCliGradlePlugin.groovy   |  490 ++++++++
 .../commands/GrailsCliLibraryGradlePlugin.groovy   |   50 +
 .../gradle/plugin/core/GrailsExtension.groovy      |   18 +-
 .../gradle/plugin/core/GrailsGradlePlugin.groovy   |  239 +---
 .../profiles/GrailsProfileGradlePlugin.groovy      |    6 +-
 .../profiles/tasks/ProfileCompilerTask.groovy      |    4 +-
 .../gradle/plugin/util/ClasspathUtils.groovy       |   60 +
 .../gradle/plugin/web/GrailsWebGradlePlugin.groovy |    6 +-
 .../plugin/commands/CliAutoDiscoverySpec.groovy    |   95 ++
 .../commands/CliCompanionPublishingSpec.groovy     |   93 ++
 .../BomCliMultiprojectRaceFunctionalSpec.groovy    |   65 +
 .../plugin/core/BomOptOutFunctionalSpec.groovy     |   17 +-
 .../profiles/tasks/ProfileCompilerTaskSpec.groovy  |   75 ++
 .../auto-apply-bom-disabled/build.gradle           |    8 +-
 .../consumer/build.gradle                          |   16 +
 .../grails/race-bom/1.0-race/race-bom-1.0-race.pom |   24 +
 .../producer/build.gradle                          |   27 +
 .../bom-cli-multiproject-race/settings.gradle      |    4 +
 .../cli-companion-autodiscovery/app/build.gradle   |   57 +
 .../cli-companion-autodiscovery/gradle.properties  |    2 +
 .../my-plugin/build.gradle                         |   12 +
 .../cli/java/com/example/HelloWorldCommand.java    |    6 +
 .../cli/resources/META-INF/grails-cli.factories    |    1 +
 .../renamed-plugin/build.gradle                    |   13 +
 .../src/cli/java/com/acme/AcmeCommand.java         |    5 +
 .../cli-companion-autodiscovery/settings.gradle    |    3 +
 .../console-lib/build.gradle                       |   28 +
 .../custom-owner/build.gradle                      |   30 +
 .../cli-companion-publishing/gradle.properties     |    1 +
 .../cli-companion-publishing/owner/build.gradle    |   27 +
 .../cli-companion-publishing/plugin-a/build.gradle |   32 +
 .../cli-companion-publishing/plugin-b/build.gradle |   34 +
 .../cli-companion-publishing/resolver/build.gradle |   27 +
 .../cli-companion-publishing/settings.gradle       |    3 +
 grails-gsp/core/build.gradle                       |    1 +
 .../gsp/compiler/GrailsLayoutPreprocessor.java     |   14 +-
 grails-gsp/grails-layout/build.gradle              |    1 +
 .../grails/web/layout/LayoutGrailsPlugin.groovy    |   44 +-
 .../web/layout/LayoutGrailsPluginSpec.groovy       |   80 ++
 grails-gsp/grails-sitemesh3/build.gradle           |    1 +
 ...ilsSiteMeshViewResolverBeanPostProcessor.groovy |   85 ++
 .../sitemesh3/Sitemesh3AutoConfiguration.groovy    |  131 ++
 .../Sitemesh3EnvironmentPostProcessor.groovy       |  125 ++
 .../plugins/sitemesh3/Sitemesh3GrailsPlugin.groovy |   75 +-
 ...mesh3ViewResolverDefinitionPostProcessor.groovy |  136 ++
 ...railsSiteMeshViewResolverBeanPostProcessor.java |   75 --
 .../sitemesh3/Sitemesh3AutoConfiguration.java      |  105 --
 .../src/main/resources/META-INF/spring.factories   |   19 +
 ...iteMeshViewResolverBeanPostProcessorSpec.groovy |   18 -
 .../Sitemesh3AutoConfigurationSpec.groovy          |    7 +-
 .../Sitemesh3EnvironmentPostProcessorSpec.groovy   |  100 ++
 .../sitemesh3/Sitemesh3LayoutFinderSpec.groovy     |    2 +-
 ...3ViewResolverDefinitionPostProcessorSpec.groovy |  147 +++
 grails-gsp/grails-taglib/build.gradle              |    1 +
 grails-gsp/grails-web-gsp-taglib/build.gradle      |    1 +
 grails-gsp/grails-web-gsp/build.gradle             |    1 +
 grails-gsp/grails-web-jsp/build.gradle             |   10 +
 .../src/main/resources/META-INF/LICENSE            |    6 +-
 grails-gsp/grails-web-taglib/build.gradle          |    1 +
 grails-gsp/plugin/build.gradle                     |    1 +
 .../grails/plugins/web/taglib/FormTagLib.groovy    |  151 ++-
 .../plugins/web/taglib/UrlMappingTagLib.groovy     |   13 +-
 .../web/taglib/LocaleSelectAvailableSpec.groovy    |   97 ++
 .../LocaleSelectConfiguredDefaultSpec.groovy       |   51 +
 .../taglib/LocaleSelectPinnedVariantSpec.groovy    |   53 +
 .../web/taglib/LocaleSelectRenderingSpec.groovy    |  204 +++
 .../web/taglib/NamespaceInferenceTagLibSpec.groovy |  123 ++
 .../admin/AdminNamespaceControllers.groovy         |   56 +
 .../root/RootNamespaceControllers.groovy           |   39 +
 .../sales/SalesNamespaceControllers.groovy         |   30 +
 .../java/grails/gsp/boot/GspAutoConfiguration.java |   33 +-
 grails-i18n/build.gradle                           |    6 +-
 .../plugins/i18n/AvailableLocaleResolver.java      |  193 +++
 .../GrailsLocaleResolverAutoConfiguration.java     |  102 ++
 .../grails/plugins/i18n/I18nAutoConfiguration.java |   80 +-
 .../grails/plugins/i18n/I18nGrailsPlugin.groovy    |   40 +-
 ...rk.boot.autoconfigure.AutoConfiguration.imports |    1 +
 .../i18n/AvailableLocaleResolverSpec.groovy        |  182 +++
 ...railsLocaleResolverAutoConfigurationSpec.groovy |  111 ++
 .../plugins/i18n/I18nAutoConfigurationSpec.groovy  |  212 ++++
 .../plugins/i18n/I18nGrailsPluginSpec.groovy       |  139 +++
 .../src/test/resources/bogus-plugin_zz.properties  |    1 +
 grails-i18n/src/test/resources/messages.properties |    1 +
 .../src/test/resources/messages_.properties        |    1 +
 .../src/test/resources/messages_cs.properties      |    1 +
 .../src/test/resources/messages_es.properties      |    1 +
 .../src/test/resources/messages_fr.properties      |    1 +
 .../src/test/resources/messages_pt_BR.properties   |    1 +
 .../src/test/resources/report_en_prod.properties   |    1 +
 .../resources/spring-security-core_zu.properties   |    1 +
 .../src/test/resources/standalone.properties       |    1 +
 grails-interceptors/build.gradle                   |    1 +
 .../InterceptorBeanDefinitionsPostProcessor.groovy |  104 ++
 .../interceptors/InterceptorsGrailsPlugin.groovy   |   30 +-
 .../InterceptorsGrailsPluginSpec.groovy            |  136 ++
 grails-logging/build.gradle                        |    1 +
 grails-mail/build.gradle                           |   91 ++
 .../grails/plugins/mail/GrailsMailException.groovy |   23 +
 .../plugins/mail/MailAutoConfiguration.groovy      |  118 ++
 .../mail/MailConfigurationProperties.groovy        |   51 +
 .../grails/plugins/mail/MailGrailsPlugin.groovy    |   62 +
 .../grails/plugins/mail/MailMessageBuilder.groovy  |  431 +++++++
 .../plugins/mail/MailMessageBuilderFactory.groovy  |   51 +
 .../plugins/mail/MailMessageContentRender.groovy   |   40 +
 .../plugins/mail/MailMessageContentRenderer.groovy |  455 +++++++
 .../groovy/grails/plugins/mail/MailService.groovy  |  113 ++
 .../grails/plugins/mail/PlainTextMailTagLib.groovy |   28 +
 .../groovy/grails/plugins/mail/SendMail.groovy     |   34 +
 ...rk.boot.autoconfigure.AutoConfiguration.imports |    1 +
 .../plugins/mail/MailMessageBuilderSpec.groovy     |  324 +++++
 grails-mimetypes/build.gradle                      |    1 +
 grails-profiles/base/profile.yml                   |    2 -
 .../skeleton/grails-app/conf/logback-spring.xml    |   30 +-
 .../skeleton/grails-app/i18n/messages.properties   |   97 ++
 .../grails-app/i18n/messages_cs.properties         |   98 ++
 .../grails-app/i18n/messages_da.properties         |   98 ++
 .../grails-app/i18n/messages_de.properties         |   98 ++
 .../grails-app/i18n/messages_es.properties         |   99 +-
 .../grails-app/i18n/messages_fr.properties         |  146 ++-
 .../grails-app/i18n/messages_it.properties         |  102 +-
 .../grails-app/i18n/messages_ja.properties         |   98 ++
 .../grails-app/i18n/messages_nb.properties         |   98 ++
 .../grails-app/i18n/messages_nl.properties         |   98 ++
 .../grails-app/i18n/messages_pl.properties         |  114 +-
 .../grails-app/i18n/messages_pt_BR.properties      |  102 +-
 .../grails-app/i18n/messages_pt_PT.properties      |  128 +-
 .../grails-app/i18n/messages_ru.properties         |  126 +-
 .../grails-app/i18n/messages_sk.properties         |   97 ++
 .../grails-app/i18n/messages_sv.properties         |   99 +-
 .../grails-app/i18n/messages_th.properties         |  116 +-
 .../grails-app/i18n/messages_zh_CN.properties      |  134 ++
 .../grails-app/i18n/messages_zh_TW.properties      |  153 +++
 .../base/templates/artifacts/Command.groovy        |    2 +-
 ...ls.codegen.projectClassName@GrailsPlugin.groovy |   11 +-
 ...ls.codegen.projectClassName@GrailsPlugin.groovy |   11 +-
 .../grails-app/assets/javascripts/application.js   |   53 +-
 .../grails-app/assets/javascripts/theme.js         |   75 ++
 .../grails-app/assets/javascripts/welcome.js       |  163 ++-
 .../grails-app/assets/stylesheets/welcome.css      |  145 +++
 .../web/skeleton/grails-app/views/index.gsp        | 1303 ++++++++++++++++++--
 .../web/skeleton/grails-app/views/layouts/main.gsp |  186 ++-
 grails-redis/build.gradle                          |   86 ++
 grails-redis/grails-app/conf/application.yml       |   38 +
 grails-redis/grails-app/conf/logback-spring.xml    |   33 +
 .../grails-app/init/redis/Application.groovy       |   34 +
 .../taglib/grails/plugins/redis/RedisTagLib.groovy |   36 +
 .../grails/plugins/redis/RedisServiceSpec.groovy   |  772 ++++++++++++
 .../grails/plugins/redis/RedisTagLibSpec.groovy    |   78 ++
 .../groovy/grails/plugins/redis/Memoize.groovy     |   38 +
 .../grails/plugins/redis/MemoizeDomainList.groovy  |   38 +
 .../plugins/redis/MemoizeDomainObject.groovy       |   38 +
 .../groovy/grails/plugins/redis/MemoizeHash.groovy |   38 +
 .../grails/plugins/redis/MemoizeHashField.groovy   |   38 +
 .../groovy/grails/plugins/redis/MemoizeList.groovy |   38 +
 .../grails/plugins/redis/MemoizeObject.groovy      |   39 +
 .../grails/plugins/redis/MemoizeScore.groovy       |   38 +
 .../redis/RedisBeanDefinitionsPostProcessor.groovy |   66 +
 .../grails/plugins/redis/RedisService.groovy       |  440 +++++++
 .../ast/AbstractMemoizeASTTransformation.groovy    |  315 +++++
 .../redis/ast/MemoizeASTTransformation.groovy      |   90 ++
 .../ast/MemoizeDomainListASTTransformation.groovy  |   38 +
 .../MemoizeDomainObjectASTTransformation.groovy    |   91 ++
 .../redis/ast/MemoizeHashASTTransformation.groovy  |   38 +
 .../ast/MemoizeHashFieldASTTransformation.groovy   |   53 +
 .../redis/ast/MemoizeListASTTransformation.groovy  |   38 +
 .../ast/MemoizeObjectASTTransformation.groovy      |  207 ++++
 .../redis/ast/MemoizeScoreASTTransformation.groovy |   53 +
 .../plugins/redis/ast/RedisTransformOrder.groovy   |   33 +
 .../redis/util/RedisConfigurationUtil.groovy       |  194 +++
 .../src/main/groovy/redis/RedisGrailsPlugin.groovy |   80 ++
 .../RedisBeanDefinitionsPostProcessorSpec.groovy   |  107 ++
 grails-rest-transforms/build.gradle                |    1 +
 .../render/errors/AbstractVndErrorRenderer.groovy  |    2 +
 .../render/util/AbstractLinkingRenderer.groovy     |    3 +
 .../rest/plugin/RestResponderGrailsPlugin.groovy   |   22 +-
 .../web/rest/render/DefaultRendererRegistry.groovy |   35 +-
 .../rest/render/html/DefaultHtmlRenderer.groovy    |   12 +-
 .../rest/render/json/DefaultJsonRenderer.groovy    |    4 +
 .../web/rest/render/xml/DefaultXmlRenderer.groovy  |    4 +
 .../plugin/RestResponderGrailsPluginSpec.groovy    |   65 +
 .../rest/render/DefaultRendererRegistrySpec.groovy |   38 +
 .../web/rest/render/html/HtmlRendererSpec.groovy   |   35 +
 grails-scaffolding/build.gradle                    |   24 +
 .../CreateScaffoldControllerCommand.groovy         |   83 --
 .../CreateScaffoldServiceCommand.groovy            |   74 --
 .../commands/scaffolding/GenerateAllCommand.groovy |   53 -
 .../GenerateAsyncControllerCommand.groovy          |   85 --
 .../scaffolding/GenerateControllerCommand.groovy   |   96 --
 .../scaffolding/GenerateScaffoldAllCommand.groovy  |   96 --
 .../scaffolding/GenerateServiceCommand.groovy      |   72 --
 .../scaffolding/GenerateViewsCommand.groovy        |   87 --
 .../scaffolding/InstallTemplatesCommand.groovy     |   75 --
 .../scaffolding/cli/CommandLineHelper.groovy       |   51 +
 .../cli/CreateScaffoldControllerCommand.groovy     |   81 ++
 .../cli/CreateScaffoldServiceCommand.groovy        |   72 ++
 .../scaffolding/cli/GenerateAllCommand.groovy      |   51 +
 .../cli/GenerateAsyncControllerCommand.groovy      |   83 ++
 .../cli/GenerateControllerCommand.groovy           |   94 ++
 .../cli/GenerateScaffoldAllCommand.groovy          |   94 ++
 .../scaffolding/cli/GenerateServiceCommand.groovy  |   70 ++
 .../scaffolding/cli/GenerateViewsCommand.groovy    |   85 ++
 .../scaffolding/cli/InstallTemplatesCommand.groovy |   73 ++
 .../grails/scaffolding/cli/SkipBootstrap.groovy    |   26 +
 .../plugin/scaffolding/CommandLineHelper.groovy    |   51 -
 .../scaffolding/ScaffoldingGrailsPlugin.groovy     |   34 +-
 ...ldingViewResolverDefinitionPostProcessor.groovy |   96 ++
 .../grails/plugin/scaffolding/SkipBootstrap.groovy |   26 -
 ...gViewResolverDefinitionPostProcessorSpec.groovy |   90 ++
 grails-services/build.gradle                       |    2 +
 .../ServiceBeanDefinitionsPostProcessor.groovy     |   99 ++
 .../plugins/services/ServicesGrailsPlugin.groovy   |   46 +-
 .../services/ServicesGrailsPluginSpec.groovy       |  140 +++
 grails-shell-cli/build.gradle                      |    5 +
 .../cli/boot/GrailsDependencyVersions.groovy       |  224 +++-
 .../cli/profile/GrailsRepositoryOverrides.groovy   |  128 ++
 .../grails/cli/profile/ProfileRepoConfig.groovy    |   18 +-
 .../cli/profile/commands/CreateAppCommand.groovy   |   34 +-
 .../ApplicationContextCommandFactory.groovy        |    4 +-
 .../cli/boot/GrailsDependencyVersionsSpec.groovy   |  453 +++++--
 .../gradle/RunningApplicationProcessSpec.groovy    |    4 +-
 .../profile/GrailsRepositoryOverridesSpec.groovy   |  123 ++
 .../profile/commands/CreateAppCommandSpec.groovy   |   61 +
 grails-spring-security/.gitignore                  |    2 +
 grails-spring-security/acl/plugin/build.gradle     |   77 ++
 .../conf/DefaultAclSecurityConfig.groovy           |   37 +
 .../acl/plugin/grails-app/conf/application.yml     |  101 ++
 .../plugin/springsecurity/acl/AclClass.groovy      |   43 +
 .../plugin/springsecurity/acl/AclEntry.groovy      |   57 +
 .../springsecurity/acl/AclObjectIdentity.groovy    |   46 +
 .../grails/plugin/springsecurity/acl/AclSid.groovy |   44 +
 .../springsecurity/acl/AclClassGormService.groovy  |   38 +
 .../springsecurity/acl/AclEntryGormService.groovy  |   43 +
 .../acl/AclObjectIdentityGormService.groovy        |   77 ++
 .../plugin/springsecurity/acl/AclService.groovy    |  342 +++++
 .../springsecurity/acl/AclSidGormService.groovy    |   54 +
 .../springsecurity/acl/AclUtilService.groovy       |  224 ++++
 .../springsecurity/acl/SecurityAclTagLib.groovy    |  152 +++
 .../acl/AbstractAclObjectIdentity.groovy           |   48 +
 .../springsecurity/acl/AclAutoProxyCreator.groovy  |  160 +++
 .../acl/SpringSecurityAclGrailsPlugin.groovy       |  501 ++++++++
 .../plugin/springsecurity/acl/WarnErros.groovy     |   42 +
 .../acl/access/GroovyAwareAclVoter.groovy          |   64 +
 ...reDelegatingMethodSecurityMetadataSource.groovy |  152 +++
 .../SecuredAnnotationSecurityMetadataSource.groovy |   94 ++
 ...erviceStaticMethodSecurityMetadataSource.groovy |   84 ++
 .../springsecurity/acl/annotation/AclVoter.java    |   59 +
 .../springsecurity/acl/annotation/AclVoters.java   |   44 +
 .../acl/cache/SpringAclCacheFactoryBean.groovy     |   73 ++
 .../acl/domain/NullAclAuditLogger.groovy           |   37 +
 .../acl/jdbc/GormAclLookupStrategy.groovy          |  327 +++++
 .../GormObjectIdentityRetrievalStrategy.groovy     |   40 +
 ...ectIdentityRetrievalStrategyAndGenerator.groovy |   35 +
 .../springsecurity/acl/model/StubAclParent.groovy  |   77 ++
 .../springsecurity/acl/util/ProxyUtils.groovy      |  108 ++
 .../src/main/scripts/s2-create-acl-domains.groovy  |   36 +
 .../acl/plugin/src/main/templates/_AclClass.groovy |   39 +
 .../acl/plugin/src/main/templates/_AclEntry.groovy |   53 +
 .../src/main/templates/_AclObjectIdentity.groovy   |   43 +
 .../acl/plugin/src/main/templates/_AclSid.groovy   |   40 +
 ...uredAnnotationSecurityMetadataSourceSpec.groovy |   58 +
 grails-spring-security/cas/plugin/build.gradle     |   58 +
 .../conf/DefaultCasSecurityConfig.groovy           |   35 +
 .../cas/plugin/grails-app/conf/application.yml     |   22 +
 .../cas/plugin/grails-app/conf/logback.xml         |   44 +
 .../cas/NullProxyGrantingTicketStorage.groovy      |   38 +
 .../cas/SpringSecurityCasGrailsPlugin.groovy       |  165 +++
 grails-spring-security/compat/build.gradle         |   59 +
 .../access/LegacyAccessCompatibility.groovy        |   86 ++
 .../SecuredAnnotationSecurityMetadataSource.groovy |   51 +
 ...xpressionBasedAnnotationAttributeFactory.groovy |   32 +
 .../ExpressionBasedPostInvocationAdvice.groovy     |  163 +++
 .../ExpressionBasedPreInvocationAdvice.groovy      |  140 +++
 .../intercept/AbstractSecurityInterceptor.groovy   |   51 +
 .../access/intercept/AfterInvocationManager.groovy |   40 +
 .../AfterInvocationProviderManager.groovy          |   50 +
 .../access/intercept/NullRunAsManager.groovy       |   33 +
 .../RunAsImplAuthenticationProvider.groovy         |   40 +
 .../security/access/intercept/RunAsManager.groovy  |   30 +
 .../access/intercept/RunAsManagerImpl.groovy       |   65 +
 .../aopalliance/MethodSecurityInterceptor.groovy   |   71 ++
 ...ractFallbackMethodSecurityMetadataSource.groovy |   74 ++
 .../AbstractMethodSecurityMetadataSource.groovy    |   30 +
 .../method/MethodSecurityMetadataSource.groovy     |   33 +
 ...ExpressionBasedAnnotationConfigAttribute.groovy |   57 +
 .../prepost/PostInvocationAdviceProvider.groovy    |   69 ++
 .../PreInvocationAuthorizationAdviceVoter.groovy   |   60 +
 .../PrePostAnnotationSecurityMetadataSource.groovy |   98 ++
 .../vote/AbstractAccessDecisionManager.groovy      |   66 +
 .../security/access/vote/AffirmativeBased.groovy   |   66 +
 .../security/access/vote/AuthenticatedVoter.groovy |   76 ++
 .../security/access/vote/RoleHierarchyVoter.groovy |   57 +
 .../security/access/vote/RoleVoter.groovy          |   61 +
 .../security/acls/AclEntryVoter.groovy             |  149 +++
 ...terInvocationCollectionFilteringProvider.groovy |   93 ++
 .../AclEntryAfterInvocationProvider.groovy         |  115 ++
 .../security/web/PortResolver.groovy               |   29 +
 .../security/web/PortResolverImpl.groovy           |   34 +
 .../DefaultWebInvocationPrivilegeEvaluator.groovy  |   44 +
 .../channel/ChannelDecisionManagerImpl.groovy      |   46 +
 .../access/channel/ChannelProcessingFilter.groovy  |   47 +
 .../web/access/channel/ChannelProcessor.groovy     |   31 +
 .../access/channel/InsecureChannelProcessor.groovy |   41 +
 .../access/channel/RetryWithHttpEntryPoint.groovy  |   53 +
 .../access/channel/RetryWithHttpsEntryPoint.groovy |   53 +
 .../access/channel/SecureChannelProcessor.groovy   |   41 +
 .../DefaultWebSecurityExpressionHandler.groovy     |   47 +
 ...ltFilterInvocationSecurityMetadataSource.groovy |   59 +
 .../FilterInvocationSecurityMetadataSource.groovy  |   31 +
 .../intercept/FilterSecurityInterceptor.groovy     |   63 +
 .../web/util/matcher/AntPathRequestMatcher.groovy  |   81 ++
 grails-spring-security/ldap/README.md              |   38 +
 grails-spring-security/ldap/plugin/build.gradle    |   63 +
 .../conf/DefaultLdapSecurityConfig.groovy          |   90 ++
 .../ldap/plugin/grails-app/conf/application.yml    |   22 +
 .../ldap/plugin/grails-app/conf/logback.xml        |   39 +
 .../ldap/SpringSecurityLdapGrailsPlugin.groovy     |  263 ++++
 .../ldap/core/GrailsLdapRoleMapper.groovy          |   50 +
 ...lsSimpleDirContextAuthenticationStrategy.groovy |   49 +
 .../ldap/core/SimpleAuthenticationSource.groovy    |   35 +
 .../DatabaseOnlyLdapAuthoritiesPopulator.groovy    |   80 ++
 .../GrailsLdapAuthoritiesPopulator.groovy          |  215 ++++
 .../GrailsLdapUserDetailsManager.groovy            |   43 +
 .../GrailsLdapAuthoritiesPopulatorSpec.groovy      |  146 +++
 grails-spring-security/oauth2/plugin/build.gradle  |  128 ++
 .../conf/DefaultSpringSecurityOAuth2Config.groovy  |   37 +
 .../oauth2/plugin/grails-app/conf/application.yml  |   89 ++
 .../oauth2/plugin/grails-app/conf/logback.xml      |   37 +
 .../oauth2/SpringSecurityOAuth2Controller.groovy   |  326 +++++
 .../oauth2/SpringSecurityOauth2UrlMappings.groovy  |   42 +
 .../plugin/grails-app/i18n/messages.properties     |   30 +
 .../oauth2/SpringSecurityOauth2BaseService.groovy  |  307 +++++
 .../springsecurity/oauth2/OAuth2TagLib.groovy      |   72 ++
 .../grails-app/views/springSecurityOAuth2/ask.gsp  |  119 ++
 .../security/oauth2/cli/CommandLineHelper.groovy   |   27 +
 .../security/oauth2/cli/InitOAuth2Command.groovy   |  111 ++
 .../springsecurity/oauth2/OAuth2TagLibSpec.groovy  |  109 ++
 .../SpringSecurityOAuth2ControllerSpec.groovy      |  225 ++++
 .../oauth2/TestOAuth2SpringToken.groovy            |   48 +
 .../oauth2/SpringSecurityOauth2GrailsPlugin.groovy |   80 ++
 .../oauth2/exception/OAuth2Exception.java          |   39 +
 .../service/OAuth2AbstractProviderService.groovy   |  166 +++
 .../oauth2/service/OAuth2ProviderService.groovy    |  118 ++
 .../oauth2/token/OAuth2SpringToken.groovy          |   91 ++
 .../oauth2/util/OAuth2ProviderConfiguration.groovy |   49 +
 .../oauth2/plugin/src/main/scripts/_install.groovy |   36 +
 .../plugin/src/main/scripts/init-oauth2.groovy     |   86 ++
 .../src/main/templates/OAuthID.groovy.template     |   29 +
 grails-spring-security/plugin/build.gradle         |  121 ++
 .../grails-app/conf/DefaultSecurityConfig.groovy   |  357 ++++++
 .../plugin/springsecurity/LoginController.groovy   |  153 +++
 .../plugin/springsecurity/LogoutController.groovy  |   57 +
 .../i18n/spring-security-core.properties           |   38 +
 .../i18n/spring-security-core_cs.properties        |   39 +
 .../i18n/spring-security-core_da.properties        |   39 +
 .../i18n/spring-security-core_de.properties        |   38 +
 .../i18n/spring-security-core_es.properties        |   38 +
 .../i18n/spring-security-core_fr.properties        |   38 +
 .../i18n/spring-security-core_it.properties        |   38 +
 .../i18n/spring-security-core_ja.properties        |   38 +
 .../i18n/spring-security-core_nb.properties        |   38 +
 .../i18n/spring-security-core_nl.properties        |   39 +
 .../i18n/spring-security-core_pl.properties        |   39 +
 .../i18n/spring-security-core_pt_BR.properties     |   41 +
 .../i18n/spring-security-core_pt_PT.properties     |   39 +
 .../i18n/spring-security-core_ru.properties        |   38 +
 .../i18n/spring-security-core_sk.properties        |   39 +
 .../i18n/spring-security-core_sv.properties        |   38 +
 .../i18n/spring-security-core_th.properties        |   39 +
 .../i18n/spring-security-core_zh_CN.properties     |   39 +
 .../i18n/spring-security-core_zh_TW.properties     |   38 +
 .../springsecurity/SpringSecurityService.groovy    |  298 +++++
 .../plugin/springsecurity/SecurityTagLib.groovy    |  320 +++++
 .../plugin/grails-app/views/layouts/main.gsp       |   33 +
 .../plugin/grails-app/views/login/auth.gsp         |   88 ++
 .../plugin/grails-app/views/login/denied.gsp       |   37 +
 .../grails/security/cli/CommandLineHelper.groovy   |   52 +
 .../cli/S2CreatePersistentTokenCommand.groovy      |   68 +
 .../cli/S2CreateRoleHierarchyEntryCommand.groovy   |   67 +
 .../grails/security/cli/S2QuickstartCommand.groovy |  423 +++++++
 .../grails/security/cli/SkipBootstrap.groovy       |   26 +
 .../plugin/springsecurity/Application.groovy       |   35 +
 .../plugin/springsecurity/BeanTypeResolver.groovy  |   55 +
 .../plugin/springsecurity/ControllerMixin.groovy   |   47 +
 .../plugin/springsecurity/InterceptedUrl.groovy    |   60 +
 .../springsecurity/MutableRoleHierarchy.groovy     |   64 +
 .../plugin/springsecurity/ReflectionUtils.groovy   |  219 ++++
 .../SecurityAutoConfigurationExcluder.groovy       |  285 +++++
 .../springsecurity/SecurityConfigType.groovy       |   34 +
 .../springsecurity/SecurityEventListener.groovy    |   96 ++
 .../springsecurity/SecurityFilterPosition.java     |  129 ++
 .../SpringSecurityBeanFactoryPostProcessor.groovy  |   76 ++
 .../SpringSecurityCoreGrailsPlugin.groovy          | 1187 ++++++++++++++++++
 .../springsecurity/SpringSecurityUtils.groovy      |  824 +++++++++++++
 .../access/NullAfterInvocationProvider.groovy      |   46 +
 .../intercept/NullAfterInvocationManager.groovy    |   46 +
 .../AuthenticatedVetoableDecisionManager.groovy    |  120 ++
 .../access/vote/ClosureConfigAttribute.groovy      |   44 +
 .../springsecurity/access/vote/ClosureVoter.groovy |   76 ++
 .../springsecurity/annotation/Authorities.groovy   |   48 +
 .../annotation/AuthoritiesTransformation.groovy    |  123 ++
 .../springsecurity/annotation/Secured.groovy       |   62 +
 .../annotation/SecuredClosureDelegate.groovy       |   58 +
 .../GrailsAnonymousAuthenticationProvider.groovy   |   40 +
 .../GrailsAnonymousAuthenticationToken.groovy      |   53 +
 .../NullAuthenticationEventPublisher.groovy        |   40 +
 .../cache/SpringUserCacheFactoryBean.groovy        |   63 +
 .../ChainedUserDetailsService.groovy               |   72 ++
 .../ComponentBasedConfigBlender.groovy             |  209 ++++
 .../DefaultPostAuthenticationChecks.groovy         |   58 +
 .../DefaultPreAuthenticationChecks.groovy          |   73 ++
 .../userdetails/GormUserDetailsService.groovy      |  133 ++
 .../springsecurity/userdetails/GrailsUser.groovy   |   61 +
 .../userdetails/GrailsUserDetailsService.groovy    |   46 +
 .../NoStackUsernameNotFoundException.groovy        |   44 +
 .../web/GrailsRedirectStrategy.groovy              |   70 ++
 .../web/GrailsSecurityFilterChain.groovy           |   58 +
 .../web/NullFilterChainValidator.groovy            |   37 +
 .../web/SecurityRequestHolder.groovy               |   74 ++
 .../web/SecurityRequestHolderFilter.groovy         |  124 ++
 ...tContextHolderExceptionTranslationFilter.groovy |   99 ++
 .../web/access/AjaxAwareAccessDeniedHandler.groovy |  156 +++
 .../web/access/DefaultThrowableAnalyzer.groovy     |   48 +
 .../GrailsWebInvocationPrivilegeEvaluator.groovy   |  173 +++
 .../expression/WebExpressionConfigAttribute.groovy |   54 +
 .../access/expression/WebExpressionVoter.groovy    |   75 ++
 .../AbstractFilterInvocationDefinition.groovy      |  299 +++++
 .../AnnotationFilterInvocationDefinition.groovy    |  532 ++++++++
 ...ocationSecurityMetadataSourceFactoryBean.groovy |   86 ++
 ...nterceptUrlMapFilterInvocationDefinition.groovy |   69 ++
 .../RequestmapFilterInvocationDefinition.groovy    |   75 ++
 .../AjaxAwareAuthenticationEntryPoint.groovy       |   97 ++
 .../AjaxAwareAuthenticationFailureHandler.groovy   |   72 ++
 .../AjaxAwareAuthenticationSuccessHandler.groovy   |   77 ++
 .../FilterProcessUrlRequestMatcher.groovy          |   58 +
 ...ailsUsernamePasswordAuthenticationFilter.groovy |   67 +
 .../NullLogoutHandlerRememberMeServices.groovy     |   39 +
 .../logout/MutableLogoutFilter.groovy              |   87 ++
 .../x509/ClosureX509PrincipalExtractor.groovy      |   71 ++
 .../x509/NullAuthenticationFailureHandler.groovy   |   39 +
 .../x509/NullAuthenticationSuccessHandler.groovy   |   39 +
 .../GormPersistentTokenRepository.groovy           |  101 ++
 .../NullSwitchUserAuthorityChanger.groovy          |   40 +
 .../springsecurity/web/filter/DebugFilter.groovy   |  149 +++
 .../GrailsAnonymousAuthenticationFilter.groovy     |   79 ++
 .../GrailsRememberMeAuthenticationFilter.groovy    |   71 ++
 .../web/filter/HttpMethodOverrideDetector.groovy   |   55 +
 .../web/filter/IpAddressFilter.groovy              |  144 +++
 .../META-INF/spring-configuration-metadata.json    | 1088 ++++++++++++++++
 .../src/main/resources/META-INF/spring.factories   |   20 +
 .../main/scripts/s2-create-persistent-token.groovy |   46 +
 .../scripts/s2-create-role-hierarchy-entry.groovy  |   50 +
 .../plugin/src/main/scripts/s2-quickstart.groovy   |  287 +++++
 .../src/main/templates/Authority.groovy.template   |   23 +
 .../main/templates/AuthorityGroup.groovy.template  |   27 +
 .../AuthorityGroupAuthority.groovy.template        |   86 ++
 .../main/templates/PersistentLogin.groovy.template |   31 +
 .../src/main/templates/Person.groovy.template      |   53 +
 .../main/templates/PersonAuthority.groovy.template |   86 ++
 .../templates/PersonAuthorityGroup.groovy.template |   86 ++
 .../PersonPasswordEncoderListener.groovy.template  |   40 +
 ...PasswordEncoderListenerWithSalt.groovy.template |   64 +
 .../main/templates/PersonWithSalt.groovy.template  |   71 ++
 .../PersonWithoutInjection.groovy.template         |   34 +
 .../src/main/templates/Requestmap.groovy.template  |   29 +
 .../templates/RoleHierarchyEntry.groovy.template   |   23 +
 .../plugin/springsecurity/AbstractUnitSpec.groovy  |   56 +
 .../springsecurity/LogoutControllerSpec.groovy     |   39 +
 .../springsecurity/ReflectionUtilsSpec.groovy      |  216 ++++
 .../SecurityAutoConfigurationExcluderSpec.groovy   |  273 ++++
 .../SecurityEventListenerSpec.groovy               |  106 ++
 .../springsecurity/SecurityTagLibUnitSpec.groovy   |  150 +++
 .../SpringSecurityServiceSpec.groovy               |  107 ++
 .../springsecurity/SpringSecurityUtilsSpec.groovy  |  446 +++++++
 ...AuthenticatedVetoableDecisionManagerSpec.groovy |  139 +++
 .../ComponentBasedConfigBlenderSpec.groovy         |  211 ++++
 .../web/SecurityRequestHolderSpec.groovy           |   68 +
 .../access/AjaxAwareAccessDeniedHandlerSpec.groovy |  147 +++
 ...AnnotationFilterInvocationDefinitionSpec.groovy |  326 +++++
 ...ionSecurityMetadataSourceFactoryBeanSpec.groovy |   93 ++
 .../intercept/FilterSecurityInterceptorSpec.groovy |   69 ++
 ...ceptUrlMapFilterInvocationDefinitionSpec.groovy |  210 ++++
 ...RequestmapFilterInvocationDefinitionSpec.groovy |  154 +++
 .../AjaxAwareAuthenticationEntryPointSpec.groovy   |   94 ++
 ...jaxAwareAuthenticationFailureHandlerSpec.groovy |   96 ++
 ...jaxAwareAuthenticationSuccessHandlerSpec.groovy |   90 ++
 .../SecurityRequestHolderFilterSpec.groovy         |   54 +
 .../logout/MutableLogoutFilterSpec.groovy          |   90 ++
 .../filter/HttpMethodOverrideDetectorSpec.groovy   |   85 ++
 .../web/filter/IpAddressFilterSpec.groovy          |  192 +++
 .../MethodSecurityInterceptorSpec.groovy           |  142 +++
 ...FallbackMethodSecurityMetadataSourceSpec.groovy |   59 +
 ...ethodSecurityExpressionCompatibilitySpec.groovy |  152 +++
 .../plugin/springsecurity/SecurityTestUtils.groovy |   79 ++
 .../config/http/SecurityFiltersMapper.groovy       |   25 +
 grails-spring-security/rest/core/build.gradle      |  133 ++
 .../rest/core/grails-app/conf/application.yml      |   37 +
 .../rest/core/grails-app/conf/logback.groovy       |   32 +
 .../springsecurity/rest/RestOauthController.groovy |  193 +++
 .../rest/RestOauthUrlMappings.groovy               |   31 +
 .../plugin/springsecurity/rest/JwtService.groovy   |  125 ++
 .../springsecurity/rest/RestOauthService.groovy    |  121 ++
 .../rest/RestAuthenticationFailureHandler.groovy   |   54 +
 .../rest/RestAuthenticationFilter.groovy           |  144 +++
 .../rest/RestAuthenticationProvider.groovy         |   97 ++
 .../rest/RestAuthenticationSuccessHandler.groovy   |   55 +
 .../springsecurity/rest/RestLogoutFilter.groovy    |   89 ++
 .../rest/RestSecurityEventListener.groovy          |   65 +
 .../rest/RestTokenCreationEvent.groovy             |   38 +
 .../rest/RestTokenValidationFilter.groovy          |  133 ++
 .../SpringSecurityRestFilterRequestMatcher.groovy  |   50 +
 .../rest/SpringSecurityRestGrailsPlugin.groovy     |  395 ++++++
 .../DefaultRestAuthenticationEventPublisher.groovy |   58 +
 .../NullRestAuthenticationEventPublisher.groovy    |   37 +
 .../RestAuthenticationEventPublisher.groovy        |   31 +
 .../AbstractJsonPayloadCredentialsExtractor.groovy |   36 +
 .../rest/credentials/CredentialsExtractor.groovy   |   33 +
 .../DefaultJsonPayloadCredentialsExtractor.groovy  |   54 +
 .../RequestParamsCredentialsExtractor.groovy       |   47 +
 .../rest/error/CallbackErrorHandler.groovy         |   31 +
 .../rest/error/DefaultCallbackErrorHandler.groovy  |   53 +
 .../oauth/DefaultOauthUserDetailsService.groovy    |   91 ++
 .../springsecurity/rest/oauth/OauthUser.groovy     |   54 +
 .../rest/oauth/OauthUserDetailsService.groovy      |   43 +
 .../springsecurity/rest/token/AccessToken.groovy   |   85 ++
 .../bearer/BearerTokenAccessDeniedHandler.groovy   |   41 +
 .../BearerTokenAuthenticationEntryPoint.groovy     |   55 +
 .../BearerTokenAuthenticationFailureHandler.groovy |   68 +
 .../rest/token/bearer/BearerTokenReader.groovy     |   69 ++
 .../generation/SecureRandomTokenGenerator.groovy   |   60 +
 .../rest/token/generation/TokenGenerator.groovy    |   42 +
 .../token/generation/UUIDTokenGenerator.groovy     |   51 +
 .../jwt/AbstractJwtTokenGenerator.groovy           |  127 ++
 .../generation/jwt/CustomClaimProvider.groovy      |   40 +
 .../generation/jwt/DefaultRSAKeyProvider.groovy    |   70 ++
 .../jwt/EncryptedJwtTokenGenerator.groovy          |   61 +
 .../token/generation/jwt/FileRSAKeyProvider.groovy |   65 +
 .../generation/jwt/IssuerClaimProvider.groovy      |   37 +
 .../token/generation/jwt/RSAKeyProvider.groovy     |   33 +
 .../generation/jwt/SignedJwtTokenGenerator.groovy  |   60 +
 .../rest/token/reader/HttpHeaderTokenReader.groovy |   44 +
 .../rest/token/reader/TokenReader.groovy           |   36 +
 .../token/rendering/AccessTokenJsonRenderer.groovy |   30 +
 .../DefaultAccessTokenJsonRenderer.groovy          |   86 ++
 .../token/storage/TokenNotFoundException.groovy    |   29 +
 .../rest/token/storage/TokenStorageService.groovy  |   58 +
 .../storage/jwt/JwtTokenStorageService.groovy      |  133 ++
 .../resources/DefaultRestSecurityConfig.groovy     |   85 ++
 ...rerTokenAuthenticationFailureHandlerSpec.groovy |   72 ++
 .../springsecurity/rest/JwtServiceSpec.groovy      |  118 ++
 .../RestAuthenticationFailureHandlerSpec.groovy    |   51 +
 .../rest/RestAuthenticationProviderSpec.groovy     |   79 ++
 .../rest/RestOauthControllerSpec.groovy            |  210 ++++
 .../rest/RestOauthServiceSpec.groovy               |   88 ++
 .../rest/RestSecurityEventListenerSpec.groovy      |  122 ++
 .../springsecurity/rest/RestTokenReaderSpec.groovy |   54 +
 .../rest/RestTokenValidationFilterUnitSpec.groovy  |  116 ++
 ...ringSecurityRestFilterRequestMatcherSpec.groovy |   51 +
 .../rest/TokenGeneratorSupport.groovy              |   47 +
 ...aultRestAuthenticationEventPublisherSpec.groovy |   94 ++
 .../CredentialsExtractorTestSpec.groovy            |  112 ++
 .../DefaultOauthUserDetailsServiceSpec.groovy      |  116 ++
 .../rest/rfc6750/BearerTokenReaderSpec.groovy      |  158 +++
 .../rest/token/TokenGeneratorSpec.groovy           |   57 +
 .../BearerTokenAccessDeniedHandlerSpec.groovy      |   43 +
 .../token/generation/JwtTokenGeneratorSpec.groovy  |  245 ++++
 ...tRestAuthenticationTokenJsonRendererSpec.groovy |  151 +++
 .../storage/jwt/JwtTokenStorageServiceSpec.groovy  |   95 ++
 grails-spring-security/rest/docker-compose.yml     |   23 +
 grails-spring-security/rest/generate-test-apps.sh  |   54 +
 grails-spring-security/rest/gorm/build.gradle      |   64 +
 .../rest/SpringSecurityRestGormGrailsPlugin.groovy |   88 ++
 .../springsecurity/rest/gorm/Application.groovy    |   32 +
 .../token/storage/GormTokenStorageService.groovy   |  117 ++
 .../resources/DefaultRestGormSecurityConfig.groovy |   34 +
 .../rest/grailscache/build.gradle                  |   69 ++
 ...pringSecurityRestGrailsCacheGrailsPlugin.groovy |   90 ++
 .../rest/grailscache/Application.groovy            |   32 +
 .../storage/GrailsCacheTokenStorageService.groovy  |   84 ++
 .../DefaultRestGrailsCacheSecurityConfig.groovy    |   29 +
 .../GrailsCacheTokenStorageServiceSpec.groovy      |  116 ++
 grails-spring-security/rest/memcached/build.gradle |   69 ++
 .../SpringSecurityRestMemcachedGrailsPlugin.groovy |  110 ++
 .../rest/memcached/Application.groovy              |   32 +
 .../memcached/CustomSerializingTranscoder.groovy   |   64 +
 .../memcached/MemcachedTokenStorageService.groovy  |   85 ++
 .../DefaultRestMemcachedSecurityConfig.groovy      |   34 +
 grails-spring-security/rest/redis/build.gradle     |   70 ++
 .../SpringSecurityRestRedisGrailsPlugin.groovy     |   91 ++
 .../springsecurity/rest/redis/Application.groovy   |   32 +
 .../token/storage/RedisTokenStorageService.groovy  |  108 ++
 .../DefaultRestRedisSecurityConfig.groovy          |   30 +
 grails-spring-security/rest/renameFiles.groovy     |   26 +
 grails-spring-security/rest/test-app.sh            |   34 +
 .../rest/testapp-profile/.gitignore                |    2 +
 .../rest/testapp-profile/build.gradle              |   64 +
 .../features/data1/feature.yml.tmpl                |   12 +
 .../features/data1/skeleton/build.gradle           |    6 +
 .../skeleton/grails-app/conf/application.groovy    |   66 +
 .../data1/skeleton/grails-app/conf/application.yml |   57 +
 .../grails-app/domain/gorm/AccessToken.groovy      |   17 +
 .../groovy/rest/RestLogoutFilterSpec.groovy        |   92 ++
 .../features/data2/feature.yml.tmpl                |   12 +
 .../features/data2/skeleton/build.gradle           |    6 +
 .../skeleton/grails-app/conf/application.groovy    |   29 +
 .../data2/skeleton/grails-app/conf/application.yml |   58 +
 .../grails-app/domain/gorm/AccessToken.groovy      |   17 +
 .../groovy/rest/RestLogoutFilterSpec.groovy        |   92 ++
 .../features/grailscache1/feature.yml.tmpl         |    4 +
 .../features/grailscache1/skeleton/build.gradle    |    6 +
 .../skeleton/grails-app/conf/application.groovy    |   60 +
 .../features/grailscache2/feature.yml.tmpl         |    4 +
 .../features/grailscache2/skeleton/build.gradle    |    6 +
 .../skeleton/grails-app/conf/application.groovy    |   24 +
 .../testapp-profile/features/jwt1/feature.yml.tmpl |    1 +
 .../features/jwt1/skeleton/build.gradle            |    6 +
 .../skeleton/grails-app/conf/application.groovy    |   66 +
 .../controllers/rest/JwtController.groovy          |   17 +
 .../rest/JwtRestTokenValidationFilterSpec.groovy   |   49 +
 .../testapp-profile/features/jwt2/feature.yml.tmpl |    1 +
 .../features/jwt2/skeleton/build.gradle            |   19 +
 .../skeleton/grails-app/conf/application.groovy    |   36 +
 .../features/memcached1/feature.yml.tmpl           |    4 +
 .../features/memcached1/skeleton/build.gradle      |    6 +
 .../skeleton/grails-app/conf/application.groovy    |   60 +
 .../groovy/memcached/MemcachedSpec.groovy          |  104 ++
 .../features/memcached2/feature.yml.tmpl           |    4 +
 .../features/memcached2/skeleton/build.gradle      |    6 +
 .../skeleton/grails-app/conf/application.groovy    |   25 +
 .../groovy/memcached/MemcachedSpec.groovy          |  104 ++
 .../features/redis1/feature.yml.tmpl               |    6 +
 .../features/redis1/skeleton/build.gradle          |    6 +
 .../skeleton/grails-app/conf/application.groovy    |   60 +
 .../integration-test/groovy/redis/RedisSpec.groovy |   86 ++
 .../features/redis2/feature.yml.tmpl               |    6 +
 .../features/redis2/skeleton/build.gradle          |    6 +
 .../skeleton/grails-app/conf/application.groovy    |   24 +
 .../integration-test/groovy/redis/RedisSpec.groovy |   86 ++
 .../rest/testapp-profile/keys/private_key.der      |  Bin 0 -> 1217 bytes
 .../rest/testapp-profile/keys/public_key.der       |  Bin 0 -> 294 bytes
 .../rest/testapp-profile/profile.yml.tmpl          |   52 +
 .../rest/testapp-profile/skeleton/build.gradle     |   14 +
 .../skeleton/grails-app/conf/application.yml       |   17 +
 .../skeleton/grails-app/conf/logback-spring.xml    |   44 +
 .../grails-app/conf/spring/resources.groovy        |   11 +
 .../grails-app/controllers/UrlMappings.groovy      |   14 +
 .../controllers/rest/AnonymousController.groovy    |   11 +
 .../controllers/rest/PublicController.groovy       |    8 +
 .../controllers/rest/SecuredController.groovy      |   18 +
 .../skeleton/grails-app/init/BootStrap.groovy      |   20 +
 .../src/integration-test/groovy/GebConfig.groovy   |   60 +
 .../selenium/browserlaunchers/Proxies.groovy       |   10 +
 .../groovy/rest/AbstractRestSpec.groovy            |   71 ++
 .../groovy/rest/BearerTokenSpec.groovy             |  159 +++
 .../integration-test/groovy/rest/CorsSpec.groovy   |   52 +
 .../groovy/rest/FrontendCallbackPage.groovy        |   32 +
 .../integration-test/groovy/rest/JwtSpec.groovy    |  230 ++++
 .../rest/RestAuthenticationFilterSpec.groovy       |  111 ++
 .../rest/RestTokenValidationFilterSpec.groovy      |  141 +++
 .../groovy/rest/ValidateEndpointSpec.groovy        |   64 +
 grails-spring-security/ui/plugin/build.gradle      |   88 ++
 .../javascripts/spring-security-ui-ajaxLogin.js    |   55 +
 .../assets/javascripts/spring-security-ui.js       |   33 +
 .../grails-app/conf/DefaultUiSecurityConfig.groovy |   46 +
 .../ui/plugin/grails-app/conf/application.yml      |   20 +
 .../ui/AbstractS2UiController.groovy               |   70 ++
 .../ui/AbstractS2UiDomainController.groovy         |  427 +++++++
 .../springsecurity/ui/AclClassController.groovy    |   76 ++
 .../springsecurity/ui/AclEntryController.groovy    |  109 ++
 .../ui/AclObjectIdentityController.groovy          |   89 ++
 .../springsecurity/ui/AclSidController.groovy      |   78 ++
 .../ui/PersistentLoginController.groovy            |   83 ++
 .../springsecurity/ui/RegisterController.groovy    |  376 ++++++
 .../ui/RegistrationCodeController.groovy           |   75 ++
 .../springsecurity/ui/RequestmapController.groovy  |  112 ++
 .../plugin/springsecurity/ui/RoleController.groovy |  127 ++
 .../ui/SecurityInfoController.groovy               |   86 ++
 .../plugin/springsecurity/ui/UserController.groovy |  144 +++
 .../springsecurity/ui/RegistrationCode.groovy      |   38 +
 .../i18n/messages.spring-security-ui.properties    |  199 +++
 .../ui/SpringSecurityUiService.groovy              |  833 +++++++++++++
 .../springsecurity/ui/SecurityUiTagLib.groovy      |  920 ++++++++++++++
 .../ui/plugin/grails-app/views/aclClass/create.gsp |   32 +
 .../ui/plugin/grails-app/views/aclClass/edit.gsp   |   42 +
 .../ui/plugin/grails-app/views/aclClass/search.gsp |   54 +
 .../ui/plugin/grails-app/views/aclEntry/create.gsp |   38 +
 .../ui/plugin/grails-app/views/aclEntry/edit.gsp   |   42 +
 .../ui/plugin/grails-app/views/aclEntry/search.gsp |  114 ++
 .../grails-app/views/aclObjectIdentity/create.gsp  |   36 +
 .../grails-app/views/aclObjectIdentity/edit.gsp    |   43 +
 .../grails-app/views/aclObjectIdentity/search.gsp  |   96 ++
 .../ui/plugin/grails-app/views/aclSid/create.gsp   |   33 +
 .../ui/plugin/grails-app/views/aclSid/edit.gsp     |   43 +
 .../ui/plugin/grails-app/views/aclSid/search.gsp   |   67 +
 .../grails-app/views/includes/_ajaxLogin.gsp       |   79 ++
 .../ui/plugin/grails-app/views/layouts/email.gsp   |   31 +
 .../plugin/grails-app/views/layouts/register.gsp   |   35 +
 .../grails-app/views/layouts/springSecurityUI.gsp  |   80 ++
 .../ui/plugin/grails-app/views/login/auth.gsp      |   66 +
 .../grails-app/views/persistentLogin/edit.gsp      |   45 +
 .../grails-app/views/persistentLogin/search.gsp    |   71 ++
 .../views/register/_forgotPasswordMail.gsp         |   25 +
 .../views/register/_verifyRegistrationMail.gsp     |   23 +
 .../grails-app/views/register/forgotPassword.gsp   |   38 +
 .../plugin/grails-app/views/register/register.gsp  |   40 +
 .../grails-app/views/register/resetPassword.gsp    |   35 +
 .../views/register/securityQuestions.gsp           |   34 +
 .../grails-app/views/registrationCode/edit.gsp     |   42 +
 .../grails-app/views/registrationCode/search.gsp   |   64 +
 .../plugin/grails-app/views/requestmap/create.gsp  |   37 +
 .../ui/plugin/grails-app/views/requestmap/edit.gsp |   41 +
 .../plugin/grails-app/views/requestmap/search.gsp  |   69 ++
 .../ui/plugin/grails-app/views/role/create.gsp     |   32 +
 .../ui/plugin/grails-app/views/role/edit.gsp       |   47 +
 .../ui/plugin/grails-app/views/role/search.gsp     |   54 +
 .../grails-app/views/securityInfo/config.gsp       |   57 +
 .../grails-app/views/securityInfo/currentAuth.gsp  |   44 +
 .../grails-app/views/securityInfo/filterChains.gsp |   41 +
 .../views/securityInfo/logoutHandlers.gsp          |   29 +
 .../grails-app/views/securityInfo/mappings.gsp     |   33 +
 .../grails-app/views/securityInfo/providers.gsp    |   29 +
 .../views/securityInfo/secureChannel.gsp           |   35 +
 .../grails-app/views/securityInfo/usercache.gsp    |   86 ++
 .../grails-app/views/securityInfo/voters.gsp       |   29 +
 .../ui/plugin/grails-app/views/user/create.gsp     |   53 +
 .../ui/plugin/grails-app/views/user/edit.gsp       |   69 ++
 .../ui/plugin/grails-app/views/user/search.gsp     |   78 ++
 .../plugin/springsecurity/ui/CommandObject.groovy  |   26 +
 .../springsecurity/ui/ForgotPasswordCommand.groovy |   27 +
 .../springsecurity/ui/InvalidValueException.groovy |   39 +
 .../springsecurity/ui/RegisterCommand.groovy       |   45 +
 .../springsecurity/ui/ResetPasswordCommand.groovy  |   31 +
 .../ui/SecurityQuestionsCommand.groovy             |   28 +
 .../ui/SpringSecurityUiGrailsPlugin.groovy         |  130 ++
 .../ui/SpringSecurityUiInterceptor.groovy          |   56 +
 .../springsecurity/ui/strategy/AclStrategy.groovy  |   49 +
 .../ui/strategy/DefaultAclStrategy.groovy          |   80 ++
 .../ui/strategy/DefaultErrorsStrategy.groovy       |   43 +
 .../strategy/DefaultPersistentLoginStrategy.groovy |   40 +
 .../ui/strategy/DefaultPropertiesStrategy.groovy   |   50 +
 .../ui/strategy/DefaultQueryStrategy.groovy        |   40 +
 .../DefaultRegistrationCodeStrategy.groovy         |   83 ++
 .../ui/strategy/DefaultRequestmapStrategy.groovy   |   44 +
 .../ui/strategy/DefaultRoleStrategy.groovy         |   44 +
 .../ui/strategy/DefaultUserStrategy.groovy         |   44 +
 .../ui/strategy/ErrorsStrategy.groovy              |   45 +
 .../ui/strategy/MailPluginMailStrategy.groovy      |   65 +
 .../springsecurity/ui/strategy/MailStrategy.groovy |   35 +
 .../ui/strategy/PersistentLoginStrategy.groovy     |   29 +
 .../ui/strategy/PropertiesStrategy.groovy          |   64 +
 .../ui/strategy/QueryStrategy.groovy               |   54 +
 .../ui/strategy/RegistrationCodeStrategy.groovy    |   79 ++
 .../ui/strategy/RequestmapStrategy.groovy          |   31 +
 .../springsecurity/ui/strategy/RoleStrategy.groovy |   31 +
 .../springsecurity/ui/strategy/UserStrategy.groovy |   31 +
 .../ui/plugin/src/main/resources/META-INF/LICENSE  |  201 +++
 .../ui/plugin/src/main/resources/META-INF/NOTICE   |    5 +
 .../scripts/s2ui-create-challenge-questions.groovy |  129 ++
 .../plugin/src/main/scripts/s2ui-override.groovy   |  185 +++
 .../templates/AclClassController.groovy.template   |   10 +
 .../templates/AclEntryController.groovy.template   |   13 +
 .../AclObjectIdentityController.groovy.template    |   16 +
 .../templates/AclSidController.groovy.template     |   10 +
 .../templates/ChallengeQuestions.groovy.template   |   30 +
 .../ChallengeQuestionsController.groovy.template   |  128 ++
 .../ChallengeQuestionsCreate.gsp.template          |   30 +
 .../templates/ChallengeQuestionsEdit.gsp.template  |   34 +
 .../templates/ChallengeQuestionsIndex.gsp.template |   38 +
 ...allengeQuestionsListenerService.groovy.template |   34 +
 .../ChallengeQuestionsService.groovy.template      |   18 +
 .../PersistentLoginController.groovy.template      |    4 +
 .../templates/RegisterController.groovy.template   |    4 +
 .../RegistrationCodeController.groovy.template     |    4 +
 .../templates/RequestmapController.groovy.template |    4 +
 .../main/templates/RoleController.groovy.template  |    4 +
 .../SecurityInfoController.groovy.template         |    4 +
 .../main/templates/UserController.groovy.template  |    4 +
 .../ui/RegisterControllerSpec.groovy               |  215 ++++
 .../springsecurity/ui/SecurityUiTagLibSpec.groovy  |   57 +
 .../ui/SpringSecurityUiServiceSpec.groovy          |   70 ++
 .../springsecurity/ui/UserControllerSpec.groovy    |   53 +
 grails-spring/build.gradle                         |    1 +
 grails-test-core/build.gradle                      |    1 +
 .../testing/GrailsMockHttpServletRequest.groovy    |   59 +
 grails-test-examples/app1/build.gradle             |    2 +-
 .../functionaltests/FormContentController.groovy   |   37 +
 .../FormContentFunctionalSpec.groovy               |   74 ++
 .../groovy/functionaltests/ForwardingSpec.groovy   |    3 +-
 .../functionaltests/OpenSessionInViewSpec.groovy   |   42 +
 grails-test-examples/app2/build.gradle             |    2 +-
 grails-test-examples/app3/build.gradle             |    2 +-
 .../app3/grails-app/init/app3/Application.groovy   |   15 +
 .../PluginBeansBeforeAutoConfigurationSpec.groovy  |   55 +
 .../async-events-pubsub-demo/build.gradle          |    1 +
 grails-test-examples/cache/build.gradle            |    2 +-
 grails-test-examples/config-report/build.gradle    |    1 +
 .../ConfigReportCommandIntegrationSpec.groovy      |    4 +-
 grails-test-examples/database-cleanup/build.gradle |    1 +
 grails-test-examples/datasources/build.gradle      |    2 +-
 grails-test-examples/demo33/build.gradle           |    1 +
 grails-test-examples/enable-mvc-check/build.gradle |   42 +
 .../grails-app/conf/application.yml                |   51 +
 .../grails-app/conf/logback.xml                    |    0
 .../enablemvccheck/FormContentController.groovy    |   37 +
 .../enablemvccheck/LocaleController.groovy         |   35 +
 .../controllers/enablemvccheck/UrlMappings.groovy  |   32 +
 .../init/enablemvccheck/Application.groovy         |   40 +
 .../WebMvcDefaultsFunctionalSpec.groovy            |  118 ++
 .../main/resources/public/boot-default-mapping.txt |    1 +
 .../src/main/resources/public/index.html           |   20 +
 grails-test-examples/exploded/build.gradle         |    2 +-
 .../external-configuration/build.gradle            |    1 +
 .../grails-app/conf/application.yml                |    9 +
 .../test/app/RelaxedPropertyResolutionSpec.groovy  |   56 +
 grails-test-examples/geb-gebconfig/build.gradle    |    1 +
 grails-test-examples/geb/build.gradle              |    1 +
 .../org/demo/spock/PerTestRecordingSpec.groovy     |   80 +-
 grails-test-examples/gorm/build.gradle             |    2 +-
 .../gorm/DirtyCheckBindingController.groovy        |   12 +-
 .../grails-app/domain/gorm/BindableIdRecord.groovy |   33 +
 .../groovy/gorm/DirtyCheckBindingSpec.groovy       |   25 +
 .../groovy/gorm/AbstractBindableIdRecord.groovy    |   39 +
 .../graphql/grails-docs-app/build.gradle           |    1 -
 .../grails-multi-datastore-app/build.gradle        |    1 -
 .../graphql/grails-tenant-app/build.gradle         |    1 -
 .../graphql/grails-test-app/build.gradle           |    1 -
 grails-test-examples/gsp-layout/build.gradle       |    1 +
 grails-test-examples/gsp-sitemesh3/build.gradle    |    1 +
 .../gsp-spring-boot/app/build.gradle               |    1 +
 .../build.gradle                                   |    1 +
 .../hibernate5/grails-data-service/build.gradle    |    1 +
 .../grails-database-per-tenant/build.gradle        |    1 +
 .../grails-hibernate-groovy-proxy/build.gradle     |    4 +-
 .../src/test/groovy/example/ProxySpec.groovy       |    5 +-
 .../hibernate5/grails-hibernate/build.gradle       |    1 +
 .../grails-multiple-datasources/build.gradle       |    1 +
 .../build.gradle                                   |    1 +
 .../grails-partitioned-multi-tenancy/build.gradle  |    1 +
 .../grails-schema-per-tenant/build.gradle          |    1 +
 .../hibernate5/issue450/build.gradle               |    1 +
 .../hibernate5/spring-boot-hibernate/build.gradle  |    1 +
 .../hibernate5/standalone-hibernate/build.gradle   |    1 +
 grails-test-examples/hibernate7/app1/build.gradle  |    1 -
 .../groovy/functionaltests/ForwardingSpec.groovy   |    3 +-
 .../functionaltests/OpenSessionInViewSpec.groovy   |   42 +
 .../hibernate7/datasources/build.gradle            |    1 -
 grails-test-examples/hibernate7/gorm/build.gradle  |    1 -
 .../grails-hibernate-groovy-proxy/build.gradle     |    4 -
 .../src/test/groovy/example/ProxySpec.groovy       |    5 +-
 .../issue-698-domain-save-npe/build.gradle         |    1 -
 .../hibernate7/scaffolding-fields/build.gradle     |    1 -
 grails-test-examples/hyphenated/build.gradle       |    2 +-
 .../issue10279/ActuatorEnvClosureSpec.groovy       |    8 +
 grails-test-examples/issue-11102/build.gradle      |    2 +-
 grails-test-examples/issue-11767/build.gradle      |    1 +
 grails-test-examples/issue-15228/build.gradle      |    1 +
 .../issue-698-domain-save-npe/build.gradle         |    2 +-
 grails-test-examples/issue-views-182/build.gradle  |    2 +-
 grails-test-examples/latency/build.gradle          |   48 +
 .../latency/grails-app/conf/application.yml        |   47 +
 .../grails-app/conf/logback.xml                    |    0
 .../controllers/latencyapp/FastController.groovy   |   34 +
 .../controllers/latencyapp/SlowController.groovy   |   34 +
 .../controllers/latencyapp/UrlMappings.groovy      |   30 +
 .../grails-app/init/latencyapp/Application.groovy  |   30 +
 .../groovy/latencyapp/LatencyFunctionalSpec.groovy |   62 +
 grails-test-examples/mail/build.gradle             |   67 +
 .../grails-app/assets}/images/advancedgrails.svg   |    0
 .../assets/images/apple-touch-icon-retina.png      |  Bin
 .../grails-app/assets/images/apple-touch-icon.png  |  Bin
 .../grails-app/assets/images}/documentation.svg    |    0
 .../mail/grails-app/assets/images}/favicon.ico     |  Bin
 .../assets/images}/grails-cupsonly-logo-white.svg  |    0
 .../mail/grails-app/assets/images/grails.svg       |   13 +
 .../mail/grails-app/assets/images/slack.svg        |   18 +
 .../grails-app/assets/javascripts/application.js   |   39 +
 .../grails-app/assets/stylesheets/application.css  |   33 +
 .../grails-app/assets/stylesheets/errors.css       |    0
 .../grails-app/assets/stylesheets/grails.css       |    0
 .../mail/grails-app/conf/application.yml           |   67 +
 .../mail/grails-app/conf/logback-spring.xml        |   59 +
 .../testapp1/GreenMailController.groovy            |   44 +
 .../controllers/testapp1/SendMailController.groovy |   35 +
 .../controllers/testapp1/UrlMappings.groovy        |   35 +
 .../mail/grails-app/i18n/messages.properties       |   19 +
 .../mail/grails-app/i18n/messages_fr.properties    |   19 +
 .../grails-app/init/testapp1/Application.groovy    |   31 +
 .../mail/grails-app/init/testapp1/BootStrap.groovy |   29 +
 .../services/testapp1/GreenMailService.groovy      |   52 +
 .../mail/grails-app/views/_testemails/i18ntest.gsp |   22 +
 .../views/_testemails/newLineTagTest.gsp           |   18 +
 .../grails-app/views/_testemails/newLineTest.gsp   |   19 +
 .../mail/grails-app/views/_testemails/tagtest.gsp  |   20 +
 .../mail/grails-app/views/_testemails/test.gsp     |   20 +
 .../mail/grails-app/views/_testemails/testhtml.gsp |   20 +
 .../grails-app/views/error.gsp                     |    0
 .../mail/grails-app/views/greenMail/greenMail.gsp  |   57 +
 .../mail/grails-app/views/index.gsp                |  102 ++
 .../mail/grails-app/views/layouts/main.gsp         |  100 ++
 .../grails-app/views/notFound.gsp                  |    0
 .../grails/plugins/mail/MailServiceSpec.groovy     |  782 ++++++++++++
 .../plugins/mail/functional/MailSendSpec.groovy    |   59 +
 .../resources/assets}/grailslogo.png               |  Bin
 .../integration-test/resources/logback-test.xml    |   40 +
 .../micronaut/MicronautErsatzRoundtripSpec.groovy  |    3 -
 grails-test-examples/mongodb/base/build.gradle     |    1 +
 .../mongodb/database-per-tenant/build.gradle       |    1 +
 .../mongodb/gson-templates/build.gradle            |    1 +
 .../mongodb/hibernate5/build.gradle                |    1 +
 .../mongodb/springboot/build.gradle                |    1 +
 .../mongodb/test-data-service/build.gradle         |    5 +-
 grails-test-examples/namespaces/build.gradle       |    2 +-
 .../grails-app/controllers/UrlMappings.groovy      |    7 +
 .../namespaces/admin/BookController.groovy         |   45 +
 .../namespaces/admin/PageController.groovy         |   20 +
 .../taglib/namespaces/AppLinkTagLib.groovy         |   31 +
 .../namespaces/grails-app/views/book/index.gsp     |   30 +
 .../grails-app/views/page/namespaceLinks.gsp       |   58 +
 .../namespaces/NamespaceViewRenderingSpec.groovy   |   51 +-
 grails-test-examples/plugins/exploded/build.gradle |    4 +-
 .../plugins/issue-11767/build.gradle               |    1 +
 .../plugins/issue11005/build.gradle                |    2 +-
 .../plugins/loadafter/build.gradle                 |    4 +-
 .../groovy/loadafter/LoadafterGrailsPlugin.groovy  |   25 +
 .../plugins/loadfirst/build.gradle                 |    2 +-
 .../plugins/loadsecond/build.gradle                |    2 +-
 .../plugins/micronaut-singleton/build.gradle       |    1 +
 grails-test-examples/redis/build.gradle            |   72 ++
 .../assets/images/apple-touch-icon-retina.png      |  Bin
 .../grails-app/assets/images/apple-touch-icon.png  |  Bin
 .../redis/grails-app/assets}/images/favicon.ico    |  Bin
 .../grails-app/assets/images/grails_logo.png       |  Bin
 .../grails-app/assets/images/skin/database_add.png |  Bin
 .../assets/images/skin/database_delete.png         |  Bin
 .../assets/images/skin/database_edit.png           |  Bin
 .../assets/images/skin/database_save.png           |  Bin
 .../assets/images/skin/database_table.png          |  Bin
 .../grails-app/assets/images/skin/exclamation.png  |  Bin
 .../redis}/grails-app/assets/images/skin/house.png |  Bin
 .../grails-app/assets/images/skin/information.png  |  Bin
 .../grails-app/assets/images/skin/shadow.jpg       |  Bin
 .../grails-app/assets/images/skin/sorted_asc.gif   |  Bin
 .../grails-app/assets/images/skin/sorted_desc.gif  |  Bin
 .../redis}/grails-app/assets/images/spinner.gif    |  Bin
 .../grails-app/assets/images/springsource.png      |  Bin
 .../grails-app/assets/javascripts/application.js   |   39 +
 .../grails-app/assets/stylesheets/application.css  |   32 +
 .../grails-app/assets/stylesheets/errors.css       |    0
 .../grails-app/assets/stylesheets/main.css         |    0
 .../grails-app/assets/stylesheets/mobile.css       |    0
 .../redis/grails-app/conf/application.yml          |  120 ++
 .../redis/grails-app/conf/logback-spring.xml       |   33 +
 .../redis}/grails-app/conf/spring/resources.groovy |    0
 .../controllers/com/example/IndexController.groovy |   30 +
 .../controllers/com/example/UrlMappings.groovy     |   34 +
 .../grails-app/domain/com/example/Book.groovy      |   52 +
 .../grails-app/init/com/example/Application.groovy |   32 +
 .../grails-app/init/com/example/BootStrap.groovy   |   28 +
 .../services/com/example/BookCreateService.groovy  |   32 +
 .../services/com/example/BookService.groovy        |  105 ++
 .../loadfirst => redis}/grails-app/views/error.gsp |    0
 .../redis/grails-app/views/index.gsp               |   29 +
 .../redis/grails-app/views/layouts/main.gsp        |   41 +
 .../com/example/HoldersIntegrationSpec.groovy      |   52 +
 .../com/example/MemoizeAnnotationSpec.groovy       |   77 ++
 .../com/example/MemoizeObjectAnnotationSpec.groovy |  139 +++
 .../groovy/com/example/RedisIntegrationSpec.groovy |  153 +++
 .../com/example/RedisMemoizeDomainSpec.groovy      |   59 +
 .../com/example/RedisMemoizeServiceSpec.groovy     |  298 +++++
 .../test/groovy/com/example/ProxyAwareSpec.groovy  |   29 +
 .../RedisMultipleConnectionsConfigSpec.groovy      |  139 +++
 .../scaffolding-fields/build.gradle                |    2 +-
 grails-test-examples/scaffolding/build.gradle      |    2 +-
 .../com/example/UserCommunityControllerSpec.groovy |   11 +-
 .../groovy/com/example/UserControllerSpec.groovy   |   13 +-
 .../groovy/com/example/pages/LoginPage.groovy      |    8 +-
 .../groovy/com/example/pages/LogoutPage.groovy     |    8 +-
 .../groovy/com/example/pages/NavigationPage.groovy |   53 +
 .../spring-dependency-management/build.gradle      |   46 +-
 .../acl/functional-test-app/build.gradle           |   64 +
 .../grails-app/conf/application.groovy             |   52 +
 .../grails-app/conf/application.yml                |   84 ++
 .../grails-app/conf/logback.xml                    |   43 +
 .../grails-app/conf/spring/resources.groovy        |   28 +
 .../com/testacl/ErrorsController.groovy            |   40 +
 .../com/testacl/ReportController.groovy            |  159 +++
 .../com/testacl/SecureController.groovy            |   37 +
 .../com/testacl/TagLibTestController.groovy        |   34 +
 .../com/testacl/TestDataController.groovy          |   35 +
 .../controllers/com/testacl/UrlMappings.groovy     |   38 +
 .../grails-app/domain/com/testacl/Report.groovy    |   49 +
 .../grails-app/domain/com/testacl/Role.groovy      |   46 +
 .../grails-app/domain/com/testacl/User.groovy      |   54 +
 .../grails-app/domain/com/testacl/UserRole.groovy  |  130 ++
 .../grails-app/i18n/messages.properties            |   73 ++
 .../grails-app/init/com/testacl/Application.groovy |   29 +
 .../grails-app/init/com/testacl/BootStrap.groovy   |   26 +
 .../services/com/testacl/ReportService.groovy      |   91 ++
 .../services/com/testacl/TestDataService.groovy    |  148 +++
 .../functional-test-app/grails-app/views/error.gsp |   39 +
 .../grails-app/views/errors/error403.gsp           |   28 +
 .../grails-app/views/errors/error404.gsp           |   28 +
 .../functional-test-app/grails-app/views/index.gsp |  132 ++
 .../grails-app/views/layouts/application.gsp       |   29 +
 .../grails-app/views/report/create.gsp             |   68 +
 .../grails-app/views/report/edit.gsp               |   63 +
 .../grails-app/views/report/grant.gsp              |   60 +
 .../grails-app/views/report/list.gsp               |   62 +
 .../grails-app/views/report/show.gsp               |   60 +
 .../grails-app/views/tagLibTest/test.gsp           |   78 ++
 .../groovy/pages/AccessDeniedPage.groovy           |   26 +
 .../groovy/pages/DeleteReportPage.groovy           |   29 +
 .../groovy/pages/EditReportPage.groovy             |   40 +
 .../integration-test/groovy/pages/IndexPage.groovy |   31 +
 .../groovy/pages/ListReportPage.groovy             |   68 +
 .../integration-test/groovy/pages/LoginPage.groovy |   36 +
 .../groovy/pages/LogoutPage.groovy                 |   27 +
 .../groovy/pages/ReportGrantPage.groovy            |   49 +
 .../groovy/pages/ResetDataPage.groovy              |   31 +
 .../groovy/pages/ScaffoldPage.groovy               |   35 +
 .../groovy/pages/ShowReportPage.groovy             |   37 +
 .../groovy/test/AbstractSecuritySpec.groovy        |   60 +
 .../groovy/test/AdminFunctionalSpec.groovy         |  141 +++
 .../groovy/test/User1FunctionalSpec.groovy         |  178 +++
 .../groovy/test/User2FunctionalSpec.groovy         |  156 +++
 .../com/testacl/UserPasswordEncoderListener.groovy |   62 +
 .../acl/integration-test-app/build.gradle          |   56 +
 .../grails-app/conf/application.groovy             |   21 +
 .../grails-app/conf/application.yml                |   78 ++
 .../grails-app/conf/logback.xml                    |   39 +
 .../grails-app/conf/spring/resources.groovy        |   23 +
 .../plugin/springsecurity/acl/UrlMappings.groovy   |   35 +
 .../grails-app/domain/test/Report.groovy           |   42 +
 .../grails-app/i18n/messages.properties            |   73 ++
 .../init/integration/test/app/Application.groovy   |   29 +
 .../services/test/TestClassAnnotatedService.groovy |   33 +
 .../test/TestGrailsAnnotatedService.groovy         |   54 +
 .../services/test/TestRunAsService.groovy          |   36 +
 .../services/test/TestSecureService.groovy         |   39 +
 .../test/TestSpringAnnotatedService.groovy         |   54 +
 .../test/TestStaticConfiguredService.groovy        |   55 +
 .../acl/AbstractAclMappedServiceSpec.groovy        |  140 +++
 .../springsecurity/acl/AbstractAclSpec.groovy      |   38 +
 .../acl/AbstractIntegrationSpec.groovy             |   68 +
 .../springsecurity/acl/AclServiceSpec.groovy       |  398 ++++++
 .../springsecurity/acl/AclUtilServiceSpec.groovy   |  182 +++
 .../plugin/springsecurity/acl/RunAsSpec.groovy     |  164 +++
 .../TestClassAnnotatedServiceMetadataSpec.groovy   |   45 +
 .../acl/TestClassAnnotatedServiceSpec.groovy       |   97 ++
 .../acl/TestGrailsAnnotatedServiceSpec.groovy      |   31 +
 .../acl/TestSpringAnnotatedServiceSpec.groovy      |   31 +
 .../acl/TestStaticConfiguredServiceSpec.groovy     |   31 +
 .../acl/jdbc/GormAclLookupStrategySpec.groovy      |  335 +++++
 .../src/main/groovy/test/TestService.groovy        |   34 +
 grails-test-examples/spring-security/cas/README.md |   34 +
 .../spring-security/cas/test1/build.gradle         |   60 +
 .../assets/images/apple-touch-icon-retina.png      |  Bin
 .../grails-app/assets/images/apple-touch-icon.png  |  Bin
 .../test1/grails-app/assets}/images/favicon.ico    |  Bin
 .../assets/images/grails-cupsonly-logo-white.svg   |   26 +
 .../grails-app/assets/images/skin/database_add.png |  Bin
 .../assets/images/skin/database_delete.png         |  Bin
 .../assets/images/skin/database_edit.png           |  Bin
 .../assets/images/skin/database_save.png           |  Bin
 .../assets/images/skin/database_table.png          |  Bin
 .../grails-app/assets/images/skin/exclamation.png  |  Bin
 .../test1}/grails-app/assets/images/skin/house.png |  Bin
 .../grails-app/assets/images/skin/information.png  |  Bin
 .../grails-app/assets/images/skin/shadow.jpg       |  Bin
 .../grails-app/assets/images/skin/sorted_asc.gif   |  Bin
 .../grails-app/assets/images/skin/sorted_desc.gif  |  Bin
 .../test1}/grails-app/assets/images/spinner.gif    |  Bin
 .../grails-app/assets/javascripts/application.js   |   39 +
 .../grails-app/assets/stylesheets/application.css  |   32 +
 .../grails-app/assets/stylesheets/errors.css       |    0
 .../grails-app/assets/stylesheets/grails.css       |    0
 .../cas/test1/grails-app/conf/application.groovy   |   60 +
 .../cas/test1/grails-app/conf/application.yml      |   83 ++
 .../cas/test1/grails-app/conf/logback.xml          |   39 +
 .../spring/security/cas/SecureController.groovy    |   35 +
 .../spring/security/cas/UrlMappings.groovy         |   35 +
 .../test1/grails-app/domain/com/test/Role.groovy   |   44 +
 .../test1/grails-app/domain/com/test/User.groovy   |   79 ++
 .../grails-app/domain/com/test/UserRole.groovy     |  127 ++
 .../cas/test1/grails-app/i18n/messages.properties  |   74 ++
 .../grails-app/i18n/messages_cs_CZ.properties      |   73 ++
 .../test1/grails-app/i18n/messages_da.properties   |   74 ++
 .../test1/grails-app/i18n/messages_de.properties   |   73 ++
 .../test1/grails-app/i18n/messages_es.properties   |   73 ++
 .../test1/grails-app/i18n/messages_fr.properties   |   37 +
 .../test1/grails-app/i18n/messages_it.properties   |   73 ++
 .../test1/grails-app/i18n/messages_ja.properties   |   73 ++
 .../test1/grails-app/i18n/messages_nb.properties   |   74 ++
 .../test1/grails-app/i18n/messages_nl.properties   |   73 ++
 .../test1/grails-app/i18n/messages_pl.properties   |   77 ++
 .../grails-app/i18n/messages_pt_BR.properties      |   77 ++
 .../grails-app/i18n/messages_pt_PT.properties      |   52 +
 .../test1/grails-app/i18n/messages_ru.properties   |   49 +
 .../test1/grails-app/i18n/messages_sv.properties   |   73 ++
 .../test1/grails-app/i18n/messages_th.properties   |   73 ++
 .../grails-app/i18n/messages_zh_CN.properties      |   36 +
 .../spring/security/cas/test/Application.groovy    |   31 +
 .../init/spring/security/cas/test/BootStrap.groovy |   49 +
 .../cas/test1}/grails-app/views/error.gsp          |    0
 .../cas/test1/grails-app/views/index.gsp           |  102 ++
 .../cas/test1/grails-app/views/layouts/main.gsp    |   63 +
 .../cas/test1}/grails-app/views/notFound.gsp       |    0
 .../core/functional-test-app/build.gradle          |   59 +
 .../grails-app/assets/images/spinner.gif           |  Bin
 .../grails-app/conf/application.groovy             |  115 ++
 .../grails-app/conf/application.yml                |   86 ++
 .../grails-app/conf/logback.xml                    |   39 +
 .../grails-app/conf/spring/resources.groovy        |   47 +
 .../grails-app/controllers/FooBarController.groovy |   26 +
 .../grails-app/controllers/HackController.groovy   |   50 +
 .../controllers/IndexAnnotatedController.groovy    |   32 +
 .../grails-app/controllers/LogoutController.groovy |   33 +
 .../controllers/MiscTestController.groovy          |   52 +
 .../controllers/SecureAnnotatedController.groovy   |   72 ++
 .../SecureClassAnnotatedController.groovy          |   37 +
 .../grails-app/controllers/SecureController.groovy |   29 +
 .../controllers/TestDataController.groovy          |   37 +
 .../grails-app/controllers/UrlMappings.groovy      |   38 +
 .../com/testapp/TestFormParamsController.groovy    |   54 +
 .../com/testapp/TestRequestmapController.groovy    |  117 ++
 .../com/testapp/TestRoleController.groovy          |  113 ++
 .../com/testapp/TestUserController.groovy          |  161 +++
 .../controllers/inheritance/BaseController.groovy  |   38 +
 .../inheritance/ExtendedController.groovy          |   33 +
 .../namespaced/open/NamespacedController.groovy    |   32 +
 .../namespaced/secure/NamespacedController.groovy  |   32 +
 .../controllers/rest/BookController.groovy         |   33 +
 .../controllers/rest/CustomerBaseController.groovy |   42 +
 .../controllers/rest/MovieController.groovy        |   32 +
 .../domain/com/testapp/TestRequestmap.groovy       |   48 +
 .../grails-app/domain/com/testapp/TestRole.groovy  |   42 +
 .../grails-app/domain/com/testapp/TestUser.groovy  |   56 +
 .../domain/com/testapp/TestUserTestRole.groovy     |  106 ++
 .../grails-app/domain/rest/Book.groovy             |   28 +
 .../grails-app/domain/rest/Customer.groovy         |   31 +
 .../grails-app/domain/rest/Movie.groovy            |   28 +
 .../grails-app/domain/rest/Stuff.groovy            |   33 +
 .../grails-app/domain/rest/Thing.groovy            |   33 +
 .../grails-app/i18n/messages.properties            |   74 ++
 .../init/functional/test/app/Application.groovy    |   31 +
 .../init/functional/test/app/BootStrap.groovy      |   34 +
 .../services/com/testapp/TestDataService.groovy    |  147 +++
 .../functional-test-app/grails-app/views/error.gsp |   39 +
 .../grails-app/views/error401.gsp                  |   19 +
 .../grails-app/views/error403.gsp                  |   19 +
 .../grails-app/views/error404.gsp                  |   19 +
 .../functional-test-app/grails-app/views/index.gsp |   55 +
 .../grails-app/views/layouts/main.gsp              |   29 +
 .../grails-app/views/logout/index.gsp              |   29 +
 .../grails-app/views/miscTest/test.gsp             |   73 ++
 .../grails-app/views/testRequestmap/_form.gsp      |   34 +
 .../grails-app/views/testRequestmap/create.gsp     |   52 +
 .../grails-app/views/testRequestmap/edit.gsp       |   55 +
 .../grails-app/views/testRequestmap/list.gsp       |   58 +
 .../grails-app/views/testRequestmap/show.gsp       |   64 +
 .../grails-app/views/testRole/_form.gsp            |   22 +
 .../grails-app/views/testRole/create.gsp           |   52 +
 .../grails-app/views/testRole/edit.gsp             |   54 +
 .../grails-app/views/testRole/list.gsp             |   54 +
 .../grails-app/views/testRole/show.gsp             |   52 +
 .../grails-app/views/testUser/create.gsp           |   98 ++
 .../grails-app/views/testUser/edit.gsp             |  103 ++
 .../grails-app/views/testUser/list.gsp             |   67 +
 .../grails-app/views/testUser/show.gsp             |   84 ++
 .../groovy/pages/CreatePage.groovy                 |   26 +
 .../integration-test/groovy/pages/EditPage.groovy  |   26 +
 .../integration-test/groovy/pages/IndexPage.groovy |   31 +
 .../integration-test/groovy/pages/LoginPage.groovy |   37 +
 .../groovy/pages/ScaffoldPage.groovy               |   34 +
 .../integration-test/groovy/pages/ShowPage.groovy  |   26 +
 .../pages/requestmap/CreateRequestmapPage.groovy   |   31 +
 .../pages/requestmap/EditRequestmapPage.groovy     |   32 +
 .../pages/requestmap/ListRequestmapPage.groovy     |   50 +
 .../pages/requestmap/ShowRequestmapPage.groovy     |   33 +
 .../groovy/pages/role/CreateRolePage.groovy        |   30 +
 .../groovy/pages/role/EditRolePage.groovy          |   30 +
 .../groovy/pages/role/ListRolePage.groovy          |   48 +
 .../groovy/pages/role/ShowRolePage.groovy          |   32 +
 .../groovy/pages/user/CreateUserPage.groovy        |   35 +
 .../groovy/pages/user/EditUserPage.groovy          |   35 +
 .../groovy/pages/user/ListUserPage.groovy          |   49 +
 .../groovy/pages/user/ShowUserPage.groovy          |   31 +
 .../specs/AbstractHyphenatedSecuritySpec.groovy    |   39 +
 .../groovy/specs/AbstractSecuritySpec.groovy       |  100 ++
 .../groovy/specs/AnnotationSecuritySpec.groovy     |  403 ++++++
 .../groovy/specs/BCryptSpec.groovy                 |   72 ++
 .../specs/BasicAuthCacheUsersSecuritySpec.groovy   |  171 +++
 .../groovy/specs/BasicAuthSecuritySpec.groovy      |  356 ++++++
 .../specs/CustomFilterRegistrationSpec.groovy      |   40 +
 .../groovy/specs/DisableSpec.groovy                |  201 +++
 .../groovy/specs/InheritanceSecuritySpec.groovy    |  137 ++
 .../integration-test/groovy/specs/MiscSpec.groovy  |  491 ++++++++
 .../groovy/specs/NamespaceSecuritySpec.groovy      |  172 +++
 .../groovy/specs/RequestmapSecuritySpec.groovy     |  296 +++++
 .../groovy/specs/RequestmapSpec.groovy             |  110 ++
 .../integration-test/groovy/specs/RoleSpec.groovy  |  120 ++
 .../groovy/specs/StaticSecuritySpec.groovy         |  304 +++++
 .../specs/TestFormParamsControllerSpec.groovy      |  163 +++
 .../integration-test/groovy/specs/UserSpec.groovy  |  120 ++
 .../integration-test/resources/logback-test.xml    |   18 +
 .../com/testapp/MaintenanceModeFilter.groovy       |   49 +
 .../testapp/TestUserPasswordEncoderListener.groovy |   83 ++
 ...TestRequestmapFilterInvocationDefinition.groovy |   46 +
 .../core/integration-test-app/build.gradle         |   60 +
 .../grails-app/conf/application.groovy             |   76 ++
 .../grails-app/conf/application.yml                |   88 ++
 .../grails-app/conf/spring/resources.groovy        |   29 +
 .../domain/test/TestPersistentLogin.groovy         |   47 +
 .../grails-app/domain/test/TestRequestmap.groovy   |   47 +
 .../grails-app/domain/test/TestRole.groovy         |   44 +
 .../grails-app/domain/test/TestRoleGroup.groovy    |   44 +
 .../domain/test/TestRoleGroupRoles.groovy          |  104 ++
 .../grails-app/domain/test/TestUser.groovy         |   74 ++
 .../grails-app/domain/test/TestUserRole.groovy     |  106 ++
 .../domain/test/TestUserRoleGroup.groovy           |  103 ++
 .../grails-app/i18n/messages.properties            |   23 +
 .../init/integration/test/app/Application.groovy   |   31 +
 .../test/TestPersistentLoginService.groovy         |   41 +
 .../springsecurity/AbstractIntegrationSpec.groovy  |   48 +
 .../AdditionalLogoutFiltersConfiguredSpec.groovy   |   62 +
 .../ClosureX509PrincipalExtractorSpec.groovy       |   51 +
 .../GormPersistentTokenRepositorySpec.groovy       |  111 ++
 .../GormUserDetailsServiceSpec.groovy              |  252 ++++
 .../PrePostAuthenticationCheckSpec.groovy          |   72 ++
 .../ReflectionUtilsIntegrationSpec.groovy          |   39 +
 .../plugin/springsecurity/RoleGroupSpec.groovy     |  509 ++++++++
 ...AutoConfigurationExcluderIntegrationSpec.groovy |   81 ++
 .../springsecurity/SecurityTagLibSpec.groovy       |  417 +++++++
 .../SpringSecurityServiceIntegrationSpec.groovy    |  146 +++
 .../SpringSecurityUtilsIntegrationSpec.groovy      |  278 +++++
 .../integration-test/resources/logback-test.xml    |   18 +
 .../groovy/com/test/AdditionalLogoutHandler.groovy |   35 +
 .../misc-functional-test-app/group/build.gradle    |   69 ++
 .../group/grails-app/conf/application.groovy       |   47 +
 .../group/grails-app/conf/application.yml          |   86 ++
 .../group/grails-app/conf/spring/resources.groovy  |   25 +
 .../controllers/demo/SecuredController.groovy      |   32 +
 .../grails-app/controllers/demo/UrlMappings.groovy |   35 +
 .../group/grails-app/domain/demo/Role.groovy       |   42 +
 .../group/grails-app/domain/demo/RoleGroup.groovy  |   46 +
 .../grails-app/domain/demo/RoleGroupRole.groovy    |  106 ++
 .../group/grails-app/domain/demo/User.groovy       |   57 +
 .../group/grails-app/domain/demo/UserRole.groovy   |  106 ++
 .../grails-app/domain/demo/UserRoleGroup.groovy    |  105 ++
 .../group/grails-app/i18n/messages.properties      |   74 ++
 .../group/grails-app/init/demo/Application.groovy  |   31 +
 .../group/grails-app/views/error.gsp               |   40 +
 .../group/grails-app/views/index.gsp               |   27 +
 .../group}/grails-app/views/notFound.gsp           |    0
 .../integration-test/groovy/demo/LoginPage.groovy  |   45 +
 .../groovy/demo/SecuredControllerSpec.groovy       |   78 ++
 .../groovy/demo/SecuredPage.groovy                 |   26 +
 .../integration-test/resources/logback-test.xml    |   18 +
 .../groovy/demo/UserPasswordEncoderListener.groovy |   58 +
 .../misc-functional-test-app/roles/build.gradle    |   66 +
 .../roles/grails-app/conf/application.groovy       |   48 +
 .../roles/grails-app/conf/application.yml          |   86 ++
 .../roles/grails-app/conf/spring/resources.groovy  |   25 +
 .../controllers/demo/SecuredController.groovy      |   45 +
 .../grails-app/controllers/demo/UrlMappings.groovy |   35 +
 .../roles/grails-app/domain/demo/Role.groovy       |   42 +
 .../domain/demo/RoleHierarchyEntry.groovy          |   42 +
 .../roles/grails-app/domain/demo/User.groovy       |   57 +
 .../roles/grails-app/domain/demo/UserRole.groovy   |  106 ++
 .../roles/grails-app/init/demo/Application.groovy  |   31 +
 .../roles/grails-app/init/demo/BootStrap.groovy    |   43 +
 .../integration-test/groovy/demo/LoginPage.groovy  |   40 +
 .../groovy/demo/SecuredControllerSpec.groovy       |   51 +
 .../groovy/demo/SecuredPage.groovy                 |   26 +
 .../integration-test/resources/logback-test.xml    |   18 +
 .../groovy/demo/UserPasswordEncoderListener.groovy |   58 +
 .../build.gradle                                   |   68 +
 .../grails-app/assets/images/advancedgrails.svg    |   27 +
 .../assets/images/apple-touch-icon-retina.png      |  Bin
 .../grails-app/assets/images/apple-touch-icon.png  |  Bin
 .../grails-app/assets/images/documentation.svg     |   19 +
 .../grails-app/assets/images}/favicon.ico          |  Bin
 .../assets/images/grails-cupsonly-logo-white.svg   |   26 +
 .../grails-app/assets/images/grails.svg            |   13 +
 .../grails-app/assets/images/skin/database_add.png |  Bin
 .../assets/images/skin/database_delete.png         |  Bin
 .../assets/images/skin/database_edit.png           |  Bin
 .../assets/images/skin/database_save.png           |  Bin
 .../assets/images/skin/database_table.png          |  Bin
 .../grails-app/assets/images/skin/exclamation.png  |  Bin
 .../grails-app/assets/images/skin/house.png        |  Bin
 .../grails-app/assets/images/skin/information.png  |  Bin
 .../grails-app/assets/images/skin/shadow.jpg       |  Bin
 .../grails-app/assets/images/skin/sorted_asc.gif   |  Bin
 .../grails-app/assets/images/skin/sorted_desc.gif  |  Bin
 .../grails-app/assets/images/slack.svg             |   18 +
 .../grails-app/assets/images/spinner.gif           |  Bin
 .../grails-app/assets/javascripts/application.js   |   29 +
 .../grails-app/assets/stylesheets/application.css  |   34 +
 .../grails-app/assets/stylesheets/errors.css       |    0
 .../grails-app/assets/stylesheets/grails.css       |    0
 .../grails-app/assets/stylesheets/main.css         |    0
 .../grails-app/assets/stylesheets/mobile.css       |    0
 .../grails-app/conf/application.groovy             |   68 +
 .../grails-app/conf/application.yml                |   77 ++
 .../grails-app/conf/logback-spring.xml             |   59 +
 .../grails-app/conf/spring/resources.groovy        |   28 +
 .../controllers/com/test/LogoffController.groovy   |   30 +
 .../controllers/com/test/SecureController.groovy   |   43 +
 .../controllers/com/test/UrlMappings.groovy        |   35 +
 .../domain/com/test/PersistentLogin.groovy         |   48 +
 .../grails-app/domain/com/test/Role.groovy         |   44 +
 .../grails-app/domain/com/test/User.groovy         |   78 ++
 .../grails-app/domain/com/test/UserRole.groovy     |  126 ++
 .../grails-app/i18n/messages.properties            |   74 ++
 .../grails-app/i18n/messages_cs.properties         |   73 ++
 .../grails-app/i18n/messages_da.properties         |   74 ++
 .../grails-app/i18n/messages_de.properties         |   73 ++
 .../grails-app/i18n/messages_es.properties         |   73 ++
 .../grails-app/i18n/messages_fr.properties         |   37 +
 .../grails-app/i18n/messages_it.properties         |   73 ++
 .../grails-app/i18n/messages_ja.properties         |   73 ++
 .../grails-app/i18n/messages_nb.properties         |   74 ++
 .../grails-app/i18n/messages_nl.properties         |   73 ++
 .../grails-app/i18n/messages_pl.properties         |   77 ++
 .../grails-app/i18n/messages_pt_BR.properties      |   77 ++
 .../grails-app/i18n/messages_pt_PT.properties      |   52 +
 .../grails-app/i18n/messages_ru.properties         |   49 +
 .../grails-app/i18n/messages_sk.properties         |   74 ++
 .../grails-app/i18n/messages_sv.properties         |   73 ++
 .../grails-app/i18n/messages_th.properties         |   73 ++
 .../grails-app/i18n/messages_zh_CN.properties      |   36 +
 .../grails-app/init/com/test/Application.groovy    |   88 ++
 .../grails-app/views/error.gsp                     |    0
 .../grails-app/views/index.gsp                     |    0
 .../grails-app/views/layouts/main.gsp              |   88 ++
 .../grails-app/views/logoff/index.gsp              |   29 +
 .../grails-app/views/notFound.gsp                  |    0
 .../grails-app/views/secure/superusers.gsp         |   26 +
 .../grails-app/views/secure/users.gsp              |   26 +
 .../com/test/AbstractSecurityFunctionalSpec.groovy |   48 +
 ...omUserDetailsContextMapperFunctionalSpec.groovy |   68 +
 .../integration-test/groovy/pages/IndexPage.groovy |   31 +
 .../integration-test/groovy/pages/LoginPage.groovy |   36 +
 .../groovy/pages/LogoutPage.groovy                 |   34 +
 .../groovy/pages/SecureSuperuserPage.groovy        |   29 +
 .../groovy/pages/SecureUserPage.groovy             |   28 +
 .../com/mycompany/myapp/MyUserDetails.groovy       |   43 +
 .../myapp/MyUserDetailsContextMapper.groovy        |   53 +
 .../ldap/functional-test-app/build.gradle          |   67 +
 .../grails-app/assets/images/advancedgrails.svg    |   27 +
 .../assets/images/apple-touch-icon-retina.png      |  Bin
 .../grails-app/assets/images/apple-touch-icon.png  |  Bin
 .../grails-app/assets/images/documentation.svg     |   19 +
 .../grails-app/assets/images}/favicon.ico          |  Bin
 .../assets/images/grails-cupsonly-logo-white.svg   |   26 +
 .../grails-app/assets/images/grails.svg            |   13 +
 .../grails-app/assets/images/skin/database_add.png |  Bin
 .../assets/images/skin/database_delete.png         |  Bin
 .../assets/images/skin/database_edit.png           |  Bin
 .../assets/images/skin/database_save.png           |  Bin
 .../assets/images/skin/database_table.png          |  Bin
 .../grails-app/assets/images/skin/exclamation.png  |  Bin
 .../grails-app/assets/images/skin/house.png        |  Bin
 .../grails-app/assets/images/skin/information.png  |  Bin
 .../grails-app/assets/images/skin/shadow.jpg       |  Bin
 .../grails-app/assets/images/skin/sorted_asc.gif   |  Bin
 .../grails-app/assets/images/skin/sorted_desc.gif  |  Bin
 .../grails-app/assets/images/slack.svg             |   18 +
 .../grails-app/assets/images/spinner.gif           |  Bin
 .../grails-app/assets/javascripts/application.js   |   29 +
 .../grails-app/assets/stylesheets/application.css  |   34 +
 .../grails-app/assets/stylesheets/errors.css       |    0
 .../grails-app/assets/stylesheets/grails.css       |    0
 .../grails-app/assets/stylesheets/main.css         |    0
 .../grails-app/assets/stylesheets/mobile.css       |    0
 .../grails-app/conf/application.yml                |  160 +++
 .../grails-app/conf/logback-spring.xml             |   65 +
 .../grails-app/conf/spring/resources.groovy        |   37 +
 .../controllers/com/test/LogoutController.groovy   |   39 +
 .../controllers/com/test/SecureController.groovy   |   56 +
 .../controllers/com/test/UrlMappings.groovy        |   35 +
 .../domain/com/test/PersistentLogin.groovy         |   48 +
 .../grails-app/domain/com/test/Role.groovy         |   44 +
 .../grails-app/domain/com/test/User.groovy         |   78 ++
 .../grails-app/domain/com/test/UserRole.groovy     |  126 ++
 .../grails-app/i18n/messages.properties            |   74 ++
 .../grails-app/i18n/messages_cs.properties         |   73 ++
 .../grails-app/i18n/messages_da.properties         |   74 ++
 .../grails-app/i18n/messages_de.properties         |   73 ++
 .../grails-app/i18n/messages_es.properties         |   73 ++
 .../grails-app/i18n/messages_fr.properties         |   37 +
 .../grails-app/i18n/messages_it.properties         |   73 ++
 .../grails-app/i18n/messages_ja.properties         |   73 ++
 .../grails-app/i18n/messages_nb.properties         |   74 ++
 .../grails-app/i18n/messages_nl.properties         |   73 ++
 .../grails-app/i18n/messages_pl.properties         |   77 ++
 .../grails-app/i18n/messages_pt_BR.properties      |   77 ++
 .../grails-app/i18n/messages_pt_PT.properties      |   52 +
 .../grails-app/i18n/messages_ru.properties         |   49 +
 .../grails-app/i18n/messages_sk.properties         |   74 ++
 .../grails-app/i18n/messages_sv.properties         |   73 ++
 .../grails-app/i18n/messages_th.properties         |   73 ++
 .../grails-app/i18n/messages_zh_CN.properties      |   36 +
 .../grails-app/init/com/test/Application.groovy    |   32 +
 .../grails-app/init/com/test/BootStrap.groovy      |   38 +
 .../grails-app/ldap-servers/d1/data/users.ldif     |   55 +
 .../services/com/test/RoleService.groovy           |   27 +
 .../services/com/test/UserRoleService.groovy       |   26 +
 .../services/com/test/UserService.groovy           |   26 +
 .../grails-app/views/error.gsp                     |    0
 .../grails-app/views/index.gsp                     |    0
 .../grails-app/views/layouts/main.gsp              |   88 ++
 .../grails-app/views/logout/index.gsp              |   29 +
 .../grails-app/views/notFound.gsp                  |    0
 .../groovy/AbstractSecurityFunctionalSpec.groovy   |   47 +
 .../groovy/Person1FunctionalSpec.groovy            |   95 ++
 .../groovy/Person2FunctionalSpec.groovy            |   89 ++
 .../groovy/Person3FunctionalSpec.groovy            |   89 ++
 .../integration-test/groovy/pages/IndexPage.groovy |   31 +
 .../integration-test/groovy/pages/LoginPage.groovy |   36 +
 .../groovy/pages/LogoutPage.groovy                 |   34 +
 .../groovy/pages/SecureAdminPage.groovy            |   26 +
 .../groovy/pages/SecureFooBarPage.groovy           |   26 +
 .../groovy/pages/SecureSuperuserPage.groovy        |   26 +
 .../groovy/pages/SecureUserPage.groovy             |   26 +
 .../ldap/server/TransientGrailsLdapServer.groovy   |  306 +++++
 .../ldap/retrieve-db-roles/build.gradle            |   70 ++
 .../grails-app/assets/images/advancedgrails.svg    |   27 +
 .../assets/images/apple-touch-icon-retina.png      |  Bin
 .../grails-app/assets/images/apple-touch-icon.png  |  Bin
 .../grails-app/assets/images/documentation.svg     |   19 +
 .../grails-app/assets/images}/favicon.ico          |  Bin
 .../assets/images/grails-cupsonly-logo-white.svg   |   26 +
 .../grails-app/assets/images/grails.svg            |   13 +
 .../grails-app/assets/images/skin/database_add.png |  Bin
 .../assets/images/skin/database_delete.png         |  Bin
 .../assets/images/skin/database_edit.png           |  Bin
 .../assets/images/skin/database_save.png           |  Bin
 .../assets/images/skin/database_table.png          |  Bin
 .../grails-app/assets/images/skin/exclamation.png  |  Bin
 .../grails-app/assets/images/skin/house.png        |  Bin
 .../grails-app/assets/images/skin/information.png  |  Bin
 .../grails-app/assets/images/skin/shadow.jpg       |  Bin
 .../grails-app/assets/images/skin/sorted_asc.gif   |  Bin
 .../grails-app/assets/images/skin/sorted_desc.gif  |  Bin
 .../grails-app/assets/images/slack.svg             |   18 +
 .../grails-app/assets/images/spinner.gif           |  Bin
 .../grails-app/assets/javascripts/application.js   |   29 +
 .../grails-app/assets/stylesheets/application.css  |   34 +
 .../grails-app/assets/stylesheets/errors.css       |    0
 .../grails-app/assets/stylesheets/grails.css       |    0
 .../grails-app/assets/stylesheets/main.css         |    0
 .../grails-app/assets/stylesheets/mobile.css       |    0
 .../grails-app/conf/application.groovy             |   68 +
 .../grails-app/conf/application.yml                |   77 ++
 .../grails-app/conf/logback-spring.xml             |   39 +
 .../controllers/com/test/LogoffController.groovy   |   30 +
 .../controllers/com/test/SecureController.groovy   |   46 +
 .../controllers/com/test/UrlMappings.groovy        |   35 +
 .../domain/com/test/PersistentLogin.groovy         |   48 +
 .../grails-app/domain/com/test/Role.groovy         |   44 +
 .../grails-app/domain/com/test/User.groovy         |   78 ++
 .../grails-app/domain/com/test/UserRole.groovy     |  126 ++
 .../grails-app/i18n/messages.properties            |   74 ++
 .../grails-app/i18n/messages_cs.properties         |   73 ++
 .../grails-app/i18n/messages_da.properties         |   74 ++
 .../grails-app/i18n/messages_de.properties         |   73 ++
 .../grails-app/i18n/messages_es.properties         |   73 ++
 .../grails-app/i18n/messages_fr.properties         |   37 +
 .../grails-app/i18n/messages_it.properties         |   73 ++
 .../grails-app/i18n/messages_ja.properties         |   73 ++
 .../grails-app/i18n/messages_nb.properties         |   74 ++
 .../grails-app/i18n/messages_nl.properties         |   73 ++
 .../grails-app/i18n/messages_pl.properties         |   77 ++
 .../grails-app/i18n/messages_pt_BR.properties      |   77 ++
 .../grails-app/i18n/messages_pt_PT.properties      |   52 +
 .../grails-app/i18n/messages_ru.properties         |   49 +
 .../grails-app/i18n/messages_sk.properties         |   74 ++
 .../grails-app/i18n/messages_sv.properties         |   73 ++
 .../grails-app/i18n/messages_th.properties         |   73 ++
 .../grails-app/i18n/messages_zh_CN.properties      |   36 +
 .../grails-app/init/com/test/Application.groovy    |  153 +++
 .../grails-app/init/com/test/BootStrap.groovy      |   36 +
 .../services/com/test/RoleService.groovy           |   27 +
 .../services/com/test/UserRoleService.groovy       |   27 +
 .../services/com/test/UserService.groovy           |   28 +
 .../retrieve-db-roles}/grails-app/views/error.gsp  |    0
 .../retrieve-db-roles}/grails-app/views/index.gsp  |    0
 .../grails-app/views/layouts/main.gsp              |   88 ++
 .../grails-app/views/logoff/index.gsp              |   29 +
 .../grails-app/views/notFound.gsp                  |   29 +
 .../grails-app/views/secure/superusers.gsp         |   26 +
 .../grails-app/views/secure/users.gsp              |   26 +
 .../com/test/AbstractSecurityFunctionalSpec.groovy |   48 +
 .../com/test/RetrieveDbRolesFunctionalSpec.groovy  |  106 ++
 .../integration-test/groovy/pages/IndexPage.groovy |   31 +
 .../integration-test/groovy/pages/LoginPage.groovy |   36 +
 .../groovy/pages/LogoutPage.groovy                 |   34 +
 .../groovy/pages/SecureSuperuserPage.groovy        |   29 +
 .../groovy/pages/SecureUserPage.groovy             |   28 +
 .../ldap/retrieve-group-roles/build.gradle         |   71 ++
 .../grails-app/assets/images/advancedgrails.svg    |   27 +
 .../assets/images/apple-touch-icon-retina.png      |  Bin
 .../grails-app/assets/images/apple-touch-icon.png  |  Bin
 .../grails-app/assets/images/documentation.svg     |   19 +
 .../grails-app/assets/images}/favicon.ico          |  Bin
 .../assets/images/grails-cupsonly-logo-white.svg   |   26 +
 .../grails-app/assets/images/grails.svg            |   13 +
 .../grails-app/assets/images/skin/database_add.png |  Bin
 .../assets/images/skin/database_delete.png         |  Bin
 .../assets/images/skin/database_edit.png           |  Bin
 .../assets/images/skin/database_save.png           |  Bin
 .../assets/images/skin/database_table.png          |  Bin
 .../grails-app/assets/images/skin/exclamation.png  |  Bin
 .../grails-app/assets/images/skin/house.png        |  Bin
 .../grails-app/assets/images/skin/information.png  |  Bin
 .../grails-app/assets/images/skin/shadow.jpg       |  Bin
 .../grails-app/assets/images/skin/sorted_asc.gif   |  Bin
 .../grails-app/assets/images/skin/sorted_desc.gif  |  Bin
 .../grails-app/assets/images/slack.svg             |   18 +
 .../grails-app/assets/images/spinner.gif           |  Bin
 .../grails-app/assets/javascripts/application.js   |   29 +
 .../grails-app/assets/stylesheets/application.css  |   34 +
 .../grails-app/assets/stylesheets/errors.css       |    0
 .../grails-app/assets/stylesheets/grails.css       |    0
 .../grails-app/assets/stylesheets/main.css         |    0
 .../grails-app/assets/stylesheets/mobile.css       |    0
 .../grails-app/conf/application.groovy             |   69 ++
 .../grails-app/conf/application.yml                |   77 ++
 .../grails-app/conf/logback-spring.xml             |   59 +
 .../grails-app/conf/spring/resources.groovy        |   23 +
 .../controllers/com/test/LogoffController.groovy   |   30 +
 .../controllers/com/test/SecureController.groovy   |   46 +
 .../controllers/com/test/UrlMappings.groovy        |   35 +
 .../domain/com/test/PersistentLogin.groovy         |   48 +
 .../grails-app/domain/com/test/Role.groovy         |   44 +
 .../grails-app/domain/com/test/User.groovy         |   78 ++
 .../grails-app/domain/com/test/UserRole.groovy     |  126 ++
 .../grails-app/i18n/messages.properties            |   74 ++
 .../grails-app/i18n/messages_cs.properties         |   73 ++
 .../grails-app/i18n/messages_da.properties         |   74 ++
 .../grails-app/i18n/messages_de.properties         |   73 ++
 .../grails-app/i18n/messages_es.properties         |   73 ++
 .../grails-app/i18n/messages_fr.properties         |   37 +
 .../grails-app/i18n/messages_it.properties         |   73 ++
 .../grails-app/i18n/messages_ja.properties         |   73 ++
 .../grails-app/i18n/messages_nb.properties         |   74 ++
 .../grails-app/i18n/messages_nl.properties         |   73 ++
 .../grails-app/i18n/messages_pl.properties         |   77 ++
 .../grails-app/i18n/messages_pt_BR.properties      |   77 ++
 .../grails-app/i18n/messages_pt_PT.properties      |   52 +
 .../grails-app/i18n/messages_ru.properties         |   49 +
 .../grails-app/i18n/messages_sk.properties         |   74 ++
 .../grails-app/i18n/messages_sv.properties         |   73 ++
 .../grails-app/i18n/messages_th.properties         |   73 ++
 .../grails-app/i18n/messages_zh_CN.properties      |   36 +
 .../grails-app/init/com/test/Application.groovy    |  143 +++
 .../grails-app/init/com/test/BootStrap.groovy      |   34 +
 .../services/com/test/RoleService.groovy           |   27 +
 .../services/com/test/UserRoleService.groovy       |   27 +
 .../services/com/test/UserService.groovy           |   28 +
 .../grails-app/views/error.gsp                     |    0
 .../grails-app/views/index.gsp                     |    0
 .../grails-app/views/layouts/main.gsp              |   88 ++
 .../grails-app/views/logoff/index.gsp              |   29 +
 .../grails-app/views/notFound.gsp                  |    0
 .../grails-app/views/secure/superusers.gsp         |   26 +
 .../grails-app/views/secure/users.gsp              |   26 +
 .../com/test/AbstractSecurityFunctionalSpec.groovy |   48 +
 .../test/RetrieveGroupRolesFunctionalSpec.groovy   |  127 ++
 .../integration-test/groovy/pages/IndexPage.groovy |   31 +
 .../integration-test/groovy/pages/LoginPage.groovy |   36 +
 .../groovy/pages/LogoutPage.groovy                 |   34 +
 .../groovy/pages/SecureSuperuserPage.groovy        |   29 +
 .../groovy/pages/SecureUserPage.groovy             |   28 +
 .../spring-security/ui/common/build.gradle         |   34 +
 .../src/testFixtures/groovy/module/RolesTab.groovy |   68 +
 .../src/testFixtures/groovy/page/CreatePage.groovy |   37 +
 .../src/testFixtures/groovy/page/EditPage.groovy   |   42 +
 .../src/testFixtures/groovy/page/HomePage.groovy   |   27 +
 .../testFixtures/groovy/page/LifecyclePage.groovy  |   76 ++
 .../src/testFixtures/groovy/page/SearchPage.groovy |   64 +
 .../groovy/page/aclClass/AclClassCreatePage.groovy |   37 +
 .../groovy/page/aclClass/AclClassEditPage.groovy   |   38 +
 .../groovy/page/aclClass/AclClassSearchPage.groovy |   37 +
 .../groovy/page/aclEntry/AclEntryCreatePage.groovy |   45 +
 .../groovy/page/aclEntry/AclEntryEditPage.groovy   |   44 +
 .../groovy/page/aclEntry/AclEntryForm.groovy       |   66 +
 .../groovy/page/aclEntry/AclEntrySearchPage.groovy |   60 +
 .../AclObjectIdentityCreatePage.groovy             |   40 +
 .../AclObjectIdentityEditPage.groovy               |   37 +
 .../aclObjectIdentity/AclObjectIdentityForm.groovy |   39 +
 .../AclObjectIdentitySearchPage.groovy             |   39 +
 .../groovy/page/aclSid/AclSidCreatePage.groovy     |   39 +
 .../groovy/page/aclSid/AclSidEditPage.groovy       |   39 +
 .../groovy/page/aclSid/AclSidForm.groovy           |   44 +
 .../groovy/page/aclSid/AclSidSearchPage.groovy     |   70 ++
 .../PersistentLoginSearchPage.groovy               |   54 +
 .../groovy/page/register/ForgotPasswordPage.groovy |   38 +
 .../groovy/page/register/RegisterPage.groovy       |   59 +
 .../groovy/page/register/ResetPasswordPage.groovy  |   68 +
 .../page/register/SecurityQuestionsPage.groovy     |   41 +
 .../page/register/VerifyRegistrationPage.groovy    |   31 +
 .../RegistrationCodeEditPage.groovy                |   43 +
 .../registrationCode/RegistrationCodeForm.groovy   |   36 +
 .../RegistrationCodeSearchPage.groovy              |   38 +
 .../page/requestmap/RequestmapCreatePage.groovy    |   38 +
 .../page/requestmap/RequestmapEditPage.groovy      |   39 +
 .../groovy/page/requestmap/RequestmapForm.groovy   |   36 +
 .../page/requestmap/RequestmapSearchPage.groovy    |   39 +
 .../groovy/page/role/RoleCreatePage.groovy         |   37 +
 .../groovy/page/role/RoleEditPage.groovy           |   37 +
 .../testFixtures/groovy/page/role/RoleForm.groovy  |   34 +
 .../groovy/page/role/RoleSearchPage.groovy         |   37 +
 .../groovy/page/user/UserCreatePage.groovy         |   44 +
 .../groovy/page/user/UserEditPage.groovy           |   45 +
 .../testFixtures/groovy/page/user/UserForm.groovy  |   50 +
 .../groovy/page/user/UserSearchPage.groovy         |  130 ++
 .../testFixtures/groovy/spec/SecurityUISpec.groovy |   49 +
 .../spring-security/ui/extended/build.gradle       |   68 +
 .../extended/grails-app/assets}/images/favicon.ico |  Bin
 .../grails-app/assets/javascripts/application.js   |   23 +
 .../grails-app/assets/stylesheets/application.css  |   47 +
 .../grails-app/assets/stylesheets/errors.css       |    0
 .../ui/extended/grails-app/conf/application.groovy |   53 +
 .../ui/extended/grails-app/conf/application.yml    |  139 +++
 .../ui/extended/grails-app/conf/logback.xml        |   39 +
 .../grails-app/conf/spring/resources.groovy        |   24 +
 .../controllers/test/ProfileController.groovy      |  147 +++
 .../controllers/test/RegisterController.groovy     |   23 +
 .../controllers/test/RoleController.groovy         |   23 +
 .../controllers/test/TestDataController.groovy     |   36 +
 .../grails-app/controllers/test/UrlMappings.groovy |   34 +
 .../controllers/test/UserController.groovy         |   23 +
 .../plugin/springsecurity/acl/AclClass.groovy      |   41 +
 .../plugin/springsecurity/acl/AclEntry.groovy      |   54 +
 .../springsecurity/acl/AclObjectIdentity.groovy    |   54 +
 .../grails/plugin/springsecurity/acl/AclSid.groovy |   42 +
 .../grails-app/domain/test/PersistentToken.groovy  |   48 +
 .../extended/grails-app/domain/test/Profile.groovy |   55 +
 .../extended/grails-app/domain/test/Report.groovy  |   35 +
 .../grails-app/domain/test/Requestmap.groovy       |   66 +
 .../ui/extended/grails-app/domain/test/Role.groovy |   45 +
 .../ui/extended/grails-app/domain/test/User.groovy |   82 ++
 .../grails-app/domain/test/UserRole.groovy         |  122 ++
 .../extended/grails-app/i18n/messages.properties   |   78 ++
 .../grails-app/init/test/Application.groovy        |   31 +
 .../extended/grails-app/init/test/BootStrap.groovy |   33 +
 .../services/test/ProfileListenerService.groovy    |   58 +
 .../grails-app/services/test/ProfileService.groovy |   37 +
 .../services/test/TestDataService.groovy           |  210 ++++
 .../ui/extended/grails-app/views/error.gsp         |   41 +
 .../ui/extended/grails-app/views/error404.gsp      |   19 +
 .../ui/extended/grails-app/views/index.gsp         |   26 +
 .../ui/extended/grails-app/views/layouts/main.gsp  |   55 +
 .../ui/extended/grails-app/views/login/auth.gsp    |   60 +
 .../extended/grails-app/views/profile/create.gsp   |   48 +
 .../ui/extended/grails-app/views/profile/edit.gsp  |   50 +
 .../ui/extended/grails-app/views/profile/index.gsp |   62 +
 .../extended/page/profile/ProfileCreatePage.groovy |   50 +
 .../extended/page/profile/ProfileEditPage.groovy   |   59 +
 .../extended/page/profile/ProfileListPage.groovy   |   39 +
 .../groovy/extended/spec/AclClassSpec.groovy       |  101 ++
 .../groovy/extended/spec/AclEntrySpec.groovy       |  176 +++
 .../extended/spec/AclObjectIdentitySpec.groovy     |  139 +++
 .../groovy/extended/spec/AclSidSpec.groovy         |  147 +++
 .../groovy/extended/spec/ExtendedMenuSpec.groovy   |   60 +
 .../extended/spec/ExtendedSecurityInfoSpec.groovy  |  171 +++
 .../extended/spec/PersistentLoginSpec.groovy       |   95 ++
 .../groovy/extended/spec/RegisterSpec.groovy       |  230 ++++
 .../extended/spec/RegistrationCodeSpec.groovy      |  114 ++
 .../groovy/extended/spec/RequestmapSpec.groovy     |  154 +++
 .../groovy/extended/spec/RoleSpec.groovy           |  129 ++
 .../groovy/extended/spec/UserSpec.groovy           |  217 ++++
 .../groovy/extended/test/ProfileServiceSpec.groovy |   85 ++
 .../groovy/test/UserPasswordEncoderListener.groovy |   58 +
 .../groovy/test/ProfileListenerServiceSpec.groovy  |  107 ++
 .../spring-security/ui/simple/build.gradle         |   77 ++
 .../simple/grails-app/assets}/images/favicon.ico   |  Bin
 .../grails-app/assets/javascripts/application.js   |   23 +
 .../grails-app/assets/stylesheets/application.css  |   47 +
 .../grails-app/assets/stylesheets/errors.css       |    0
 .../ui/simple/grails-app/conf/application.yml      |  133 ++
 .../ui/simple/grails-app/conf/logback.xml          |   39 +
 .../grails-app/conf/spring/resources.groovy        |    0
 .../test/PersistentLoginController.groovy          |   23 +
 .../controllers/test/RegisterController.groovy     |   23 +
 .../test/RegistrationCodeController.groovy         |   23 +
 .../controllers/test/RequestmapController.groovy   |   23 +
 .../controllers/test/RoleController.groovy         |   23 +
 .../controllers/test/SecurityInfoController.groovy |   23 +
 .../controllers/test/TestDataController.groovy     |   36 +
 .../grails-app/controllers/test/UrlMappings.groovy |   34 +
 .../controllers/test/UserController.groovy         |   23 +
 .../plugin/springsecurity/acl/AclClass.groovy      |   41 +
 .../plugin/springsecurity/acl/AclEntry.groovy      |   54 +
 .../springsecurity/acl/AclObjectIdentity.groovy    |   52 +
 .../grails/plugin/springsecurity/acl/AclSid.groovy |   42 +
 .../grails-app/domain/test/PersistentToken.groovy  |   48 +
 .../ui/simple/grails-app/domain/test/Report.groovy |   35 +
 .../grails-app/domain/test/Requestmap.groovy       |   66 +
 .../ui/simple/grails-app/domain/test/Role.groovy   |   45 +
 .../ui/simple/grails-app/domain/test/User.groovy   |   82 ++
 .../simple/grails-app/domain/test/UserRole.groovy  |  122 ++
 .../ui/simple/grails-app/i18n/messages.properties  |   74 ++
 .../simple/grails-app/init/test/Application.groovy |   31 +
 .../simple/grails-app/init/test/BootStrap.groovy   |   33 +
 .../services/test/TestDataService.groovy           |  200 +++
 .../ui/simple/grails-app/views/error.gsp           |   41 +
 .../ui/simple/grails-app/views/error404.gsp        |   19 +
 .../ui/simple/grails-app/views/index.gsp           |   26 +
 .../ui/simple/grails-app/views/layouts/main.gsp    |   55 +
 .../groovy/simple/spec/DefaultMenuSpec.groovy      |   61 +
 .../simple/spec/DefaultSecurityInfoSpec.groovy     |  168 +++
 .../groovy/simple/spec/RegisterSpec.groovy         |  263 ++++
 .../groovy/simple/spec/RegistrationCodeSpec.groovy |  113 ++
 .../groovy/simple/spec/RequestmapSpec.groovy       |  153 +++
 .../groovy/simple/spec/RoleSpec.groovy             |  129 ++
 .../groovy/simple/spec/UserSimpleSpec.groovy       |  298 +++++
 .../GreetingControllerFunctionalSpec.groovy        |    8 +-
 .../groovy/testphases/pages/GreetingPage.groovy    |   30 +
 grails-test-examples/undertow/build.gradle         |   68 +
 .../grails-app/assets/javascripts/application.js   |    0
 .../grails-app/assets/stylesheets/application.css  |    0
 .../undertow/grails-app/conf/application.yml       |   36 +
 .../grails-app/conf/logback-spring.xml             |    0
 .../grails-app/conf/spring/resources.groovy        |    0
 .../undertowapp/SessionController.groovy           |   38 +
 .../controllers/undertowapp/UrlMappings.groovy     |   34 +
 .../grails-app/init/undertowapp/Application.groovy |   33 +
 .../grails-app/init/undertowapp/BootStrap.groovy   |   29 +
 .../undertow/grails-app/views/error.gsp            |   30 +
 .../undertow/grails-app/views/index.gsp            |   30 +
 .../undertow/grails-app/views/notFound.gsp         |   29 +
 .../undertow/grails-app/views/session/index.gsp    |   31 +
 .../undertow/grails-app/views/session/show.gsp     |   28 +
 .../groovy/undertowapp/UndertowSessionSpec.groovy  |   61 +
 .../undertowapp/pages/SessionFormPage.groovy       |   32 +
 .../undertowapp/pages/SessionShowPage.groovy       |   31 +
 .../views-functional-tests-plugin/build.gradle     |    1 +
 .../views-functional-tests/build.gradle            |    1 +
 grails-test-suite-base/build.gradle                |    1 +
 grails-test-suite-persistence/build.gradle         |    1 +
 grails-test-suite-uber/build.gradle                |    2 +
 .../GrailsMockHttpServletRequestSpec.groovy        |   29 +
 .../ParamsAwareLocaleChangeInterceptorTests.groovy |   23 +
 .../web/servlet/mvc/RedirectMethodTests.groovy     |   56 +
 .../servlet/mvc/beta/NamespacedController.groovy   |   16 +
 grails-test-suite-web/build.gradle                 |    1 +
 ...ngHelperDomainClassSpecialPropertiesSpec.groovy |   89 ++
 grails-testing-support-core/build.gradle           |    3 +
 .../org/grails/testing/GrailsUnitTest.groovy       |   39 +-
 .../testing/DefineBeansPluginHooksSpec.groovy      |   57 +
 grails-testing-support-datamapping/build.gradle    |    1 +
 grails-testing-support-dbcleanup-core/build.gradle |    1 +
 grails-testing-support-dbcleanup-h2/build.gradle   |    1 +
 .../build.gradle                                   |    1 +
 grails-testing-support-http-client/build.gradle    |    1 +
 .../testing/http/client/HttpClientSupport.groovy   |   23 +-
 .../http/client/HttpClientSupportSpec.groovy       |   21 +-
 grails-testing-support-latency/build.gradle        |   69 ++
 .../latency/LatencyAutoConfiguration.groovy        |   56 +
 .../grails/testing/latency/LatencyFilter.groovy    |   96 ++
 .../testing/latency/LatencyProperties.groovy       |   84 ++
 ...rk.boot.autoconfigure.AutoConfiguration.imports |    1 +
 .../latency/LatencyAutoConfigurationSpec.groovy    |   63 +
 .../testing/latency/LatencyFilterSpec.groovy       |  121 ++
 grails-testing-support-mongodb/build.gradle        |    1 +
 grails-testing-support-redis/build.gradle          |   49 +
 .../redis/AbstractRedisGrailsExtension.groovy      |   77 ++
 .../testing/redis/RedisContainerHolder.groovy      |   60 +
 .../StartRedisGrailsIntegrationExtension.groovy    |   63 +
 ...ockframework.runtime.extension.IGlobalExtension |    1 +
 grails-testing-support-views-gson/build.gradle     |    1 +
 grails-testing-support-web/build.gradle            |    1 +
 grails-undertow/plugin/build.gradle                |   63 +
 .../undertow/plugin/UndertowGrailsPlugin.groovy    |   45 +
 .../plugin/UndertowGrailsPluginSpec.groovy         |   62 +
 grails-undertow/spring-boot/build.gradle           |   81 ++
 .../undertow/core/AccessLogHttpHandlerFactory.java |  118 ++
 .../core/CompressionHttpHandlerFactory.java        |  133 ++
 .../core/ConfigurableUndertowWebServerFactory.java |  113 ++
 .../grails/undertow/core/HttpHandlerFactory.java   |   43 +
 .../grails/undertow/core/SslBuilderCustomizer.java |   93 ++
 .../undertow/core/UndertowBuilderCustomizer.java   |   37 +
 .../grails/undertow/core/UndertowWebServer.java    |  445 +++++++
 .../undertow/core/UndertowWebServerFactory.java    |  233 ++++
 .../autoconfigure/UndertowServerProperties.java    |  388 ++++++
 .../UndertowWebServerConfiguration.java            |   42 +
 .../UndertowWebServerFactoryCustomizer.java        |  241 ++++
 .../web/server/UndertowAccessLogCustomizer.java    |   46 +
 .../server/UndertowManagementServerProperties.java |   53 +
 ...eactiveManagementChildContextConfiguration.java |   60 +
 ...ReactiveManagementContextAutoConfiguration.java |   52 +
 ...ServletManagementChildContextConfiguration.java |   50 +
 ...wServletManagementContextAutoConfiguration.java |   52 +
 .../actuate/web/server/package-info.java           |   20 +
 .../undertow/core/autoconfigure/package-info.java  |   21 +
 ...UndertowReactiveWebServerAutoConfiguration.java |   62 +
 .../core/autoconfigure/reactive/package-info.java  |   20 +
 .../UndertowServletWebServerAutoConfiguration.java |   98 ++
 .../UndertowServletWebServerFactoryCustomizer.java |   44 +
 ...tUndertowServletWebServerFactoryCustomizer.java |   58 +
 .../core/autoconfigure/servlet/package-info.java   |   20 +
 .../apache/grails/undertow/core/package-info.java  |   23 +
 .../core/reactive/UndertowHeadersAdapter.java      |  270 ++++
 .../core/reactive/UndertowHttpHandlerAdapter.java  |  135 ++
 .../reactive/UndertowReactiveWebServerFactory.java |   64 +
 .../core/reactive/UndertowServerHttpRequest.java   |  257 ++++
 .../core/reactive/UndertowServerHttpResponse.java  |  337 +++++
 .../undertow/core/reactive/package-info.java       |   20 +
 .../core/servlet/CompositeResourceManager.java     |   74 ++
 .../DeploymentManagerHttpHandlerFactory.java       |   95 ++
 .../core/servlet/FileSessionPersistence.java       |  144 +++
 .../undertow/core/servlet/JarResourceManager.java  |   81 ++
 .../servlet/UndertowDeploymentInfoCustomizer.java  |   37 +
 .../core/servlet/UndertowServletWebServer.java     |   95 ++
 .../servlet/UndertowServletWebServerFactory.java   |  596 +++++++++
 .../grails/undertow/core/servlet/package-info.java |   20 +
 .../spring-boot/src/main/resources/META-INF/NOTICE |   22 +
 .../additional-spring-configuration-metadata.json  |   13 +
 .../main/resources/META-INF/spring/aot.factories   |    2 +
 ...gure.web.ManagementContextConfiguration.imports |    2 +
 ...rk.boot.autoconfigure.AutoConfiguration.imports |    4 +
 .../grails/undertow/core/UndertowAccess.java       |   34 +
 .../core/UndertowWebServerRuntimeHintsTests.java   |   59 +
 .../UndertowServerPropertiesTests.java             |   81 ++
 .../UndertowWebServerFactoryCustomizerTests.java   |  285 +++++
 .../UndertowManagementServerPropertiesTests.java   |   38 +
 ...towReactiveWebServerAutoConfigurationTests.java |   71 ++
 ...rtowServletWebServerAutoConfigurationTests.java |   74 ++
 ...rtowServletWebServerFactoryCustomizerTests.java |   53 +
 ...ervletWebServerServletContextListenerTests.java |   94 ++
 .../UndertowReactiveWebServerFactoryTests.java     |  101 ++
 .../core/servlet/FileSessionPersistenceTests.java  |   94 ++
 .../core/servlet/JarResourceManagerTests.java      |  103 ++
 .../UndertowServletWebServerFactoryTests.java      |  192 +++
 ...ndertowServletWebServerMvcIntegrationTests.java |  155 +++
 .../grails/undertow/core/servlet/restricted.jks    |  Bin 0 -> 4464 bytes
 .../apache/grails/undertow/core/servlet/test.jks   |  Bin 0 -> 6536 bytes
 .../org/apache/grails/undertow/core/test.jks       |  Bin 0 -> 6536 bytes
 grails-url-mappings/build.gradle                   |    6 +-
 .../web/mapping/UrlMappingsAutoConfiguration.java  |    7 +
 .../UrlMappingsBeanDefinitionsPostProcessor.groovy |  111 ++
 .../web/mapping/UrlMappingsGrailsPlugin.groovy     |   56 +-
 .../UrlMappingsAutoConfigurationSpec.groovy        |  130 ++
 .../web/mapping/UrlMappingsGrailsPluginSpec.groovy |  111 ++
 grails-validation/build.gradle                     |    1 +
 grails-views-core/build.gradle                     |    1 +
 grails-views-gson/build.gradle                     |    1 +
 .../plugin/json/view/JsonViewGrailsPlugin.groovy   |   44 +-
 .../json/view/JsonViewGrailsPluginSpec.groovy      |   69 ++
 grails-views-markup/build.gradle                   |    1 +
 .../markup/view/MarkupViewGrailsPlugin.groovy      |   42 +-
 .../markup/view/MarkupViewGrailsPluginSpec.groovy  |   68 +
 grails-web-boot/build.gradle                       |    1 +
 grails-web-common/build.gradle                     |    1 +
 .../grails/web/servlet/mvc/GrailsParameterMap.java |   31 +-
 .../i18n/ParamsAwareLocaleChangeInterceptor.groovy |    9 +
 .../groovy/org/grails/web/json/JSONTokener.java    |    2 +-
 .../web/servlet/mvc/GrailsParameterMapTests.groovy |   86 +-
 grails-web-core/build.gradle                       |    1 +
 .../META-INF/spring-configuration-metadata.json    |    7 +-
 grails-web-databinding/build.gradle                |    1 +
 .../databinding/DefaultASTDatabindingHelper.java   |   27 +-
 grails-web-mvc/build.gradle                        |    1 +
 .../grails/web/errors/GrailsExceptionResolver.java |   14 +-
 .../web/servlet/mvc/GrailsWebRequestFilter.java    |    4 +-
 .../web/errors/GrailsExceptionResolverSpec.groovy  |  348 +++---
 grails-web-url-mappings/build.gradle               |   17 +
 .../mapping/cli/UrlMappingsReportCommand.groovy    |   58 +
 .../groovy/grails/web/mapping/LinkGenerator.java   |   62 +
 .../grails/web/mapping/CachingLinkGenerator.java   |   44 +-
 .../grails/web/mapping/DefaultLinkGenerator.groovy |  127 +-
 .../web/mapping/ForwardUrlMappingInfo.groovy       |    1 +
 .../org/grails/web/mapping/RegexUrlMapping.java    |    2 +-
 .../org/grails/web/mapping/UrlMappingUtils.java    |    7 +
 .../reporting/UrlMappingsReportCommand.groovy      |   57 -
 .../LinkGeneratorNamespaceInferenceSpec.groovy     |  277 +++++
 .../grails/web/mapping/UrlMappingUtilsSpec.groovy  |   20 +
 .../admin/AdminNamespaceControllers.groovy         |   53 +
 .../root/RootNamespaceControllers.groovy           |   40 +
 .../sales/SalesNamespaceControllers.groovy         |   31 +
 grails-wrapper/build.gradle                        |    9 +-
 .../src/main/java/grails/init/GrailsUpdater.java   |  125 +-
 .../main/java/grails/init/GrailsWrapperRepo.java   |   86 +-
 .../groovy/grails/init/GrailsUpdaterSpec.groovy    |  254 ++++
 .../grails/init/GrailsWrapperRepoSpec.groovy       |  150 +++
 licenses/LICENSE-MIT.txt                           |   21 +
 settings.gradle                                    |  109 +-
 2943 files changed, 172444 insertions(+), 19131 deletions(-)
 create mode 100644 .agents/skills/mono-repo-integration/SKILL.md
 create mode 100644 .claude/settings.json
 create mode 100644 .github/workflows/release-verify.yml
 create mode 100644 .github/workflows/vulnerability-scan.yml
 create mode 100644 build-logic/plugins/src/main/groovy/org/apache/grails/buildsrc/OssIndexAuditThrottle.groovy
 create mode 100644 build-logic/plugins/src/main/groovy/org/apache/grails/buildsrc/VulnerabilityScanPlugin.groovy
 create mode 100755 etc/bin/normalize_annotations.groovy
 create mode 100644 gradle/cli-companion-bom-constraints.gradle
 create mode 100644 gradle/groovy-compile-configscript.groovy
 create mode 100644 gradle/redis-test-config.gradle
 create mode 100644 gradle/spring-security-test-config.gradle
 create mode 100644 grails-async/plugin/src/test/groovy/org/grails/plugins/web/async/ControllersAsyncGrailsPluginSpec.groovy
 create mode 100644 grails-cache/src/main/groovy/grails/plugin/cache/GrailsCacheAutoConfiguration.groovy
 create mode 100644 grails-cache/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
 create mode 100644 grails-cache/src/test/groovy/grails/plugin/cache/CacheGrailsPluginSpec.groovy
 create mode 100644 grails-cache/src/test/groovy/grails/plugin/cache/GrailsCacheAutoConfigurationSpec.groovy
 create mode 100644 grails-controllers/src/main/groovy/org/grails/plugins/web/controllers/ControllerBeanDefinitionsPostProcessor.groovy
 create mode 100644 grails-controllers/src/main/groovy/org/grails/plugins/web/controllers/GrailsFormContentFilterAutoConfiguration.java
 create mode 100644 grails-controllers/src/main/groovy/org/grails/plugins/web/controllers/GrailsViewResolverAutoConfiguration.java
 create mode 100644 grails-controllers/src/main/groovy/org/grails/plugins/web/controllers/GrailsWebResourcesEnvironmentPostProcessor.java
 create mode 100644 grails-controllers/src/main/groovy/org/grails/plugins/web/controllers/GrailsWelcomePageAutoConfiguration.java
 create mode 100644 grails-controllers/src/main/resources/META-INF/spring.factories
 create mode 100644 grails-controllers/src/test/groovy/org/grails/plugins/web/controllers/ControllerBeanDefinitionsPostProcessorSpec.groovy
 create mode 100644 grails-controllers/src/test/groovy/org/grails/plugins/web/controllers/ControllersAutoConfigurationSpec.groovy
 create mode 100644 grails-controllers/src/test/groovy/org/grails/plugins/web/controllers/ControllersGrailsPluginSpec.groovy
 create mode 100644 grails-controllers/src/test/groovy/org/grails/plugins/web/controllers/GrailsFormContentFilterAutoConfigurationSpec.groovy
 create mode 100644 grails-controllers/src/test/groovy/org/grails/plugins/web/controllers/GrailsViewResolverAutoConfigurationSpec.groovy
 create mode 100644 grails-controllers/src/test/groovy/org/grails/plugins/web/controllers/GrailsWebResourcesEnvironmentPostProcessorSpec.groovy
 create mode 100644 grails-controllers/src/test/groovy/org/grails/plugins/web/controllers/GrailsWelcomePageAutoConfigurationSpec.groovy
 create mode 100644 grails-converters/src/test/groovy/org/grails/plugins/converters/ConvertersGrailsPluginSpec.groovy
 create mode 100644 grails-core/src/cli/groovy/org/apache/grails/core/cli/ApplicationCommand.groovy
 create mode 100644 grails-core/src/cli/groovy/org/apache/grails/core/cli/ApplicationContextCommandRegistry.groovy
 create mode 100644 grails-core/src/cli/groovy/org/apache/grails/core/cli/ConfigReportCommand.groovy
 create mode 100644 grails-core/src/cli/groovy/org/apache/grails/core/cli/ExecutionContext.groovy
 create mode 100644 grails-core/src/cli/groovy/org/apache/grails/core/cli/GrailsApplicationCommand.groovy
 create mode 100644 grails-core/src/cli/groovy/org/apache/grails/core/cli/compiler/CommandFactoriesTransformation.groovy
 create mode 100644 grails-core/src/cli/groovy/org/apache/grails/core/cli/io/FileSystemInteraction.groovy
 create mode 100644 grails-core/src/cli/groovy/org/apache/grails/core/cli/io/FileSystemInteractionImpl.groovy
 create mode 100644 grails-core/src/cli/groovy/org/apache/grails/core/cli/template/TemplateException.groovy
 create mode 100644 grails-core/src/cli/groovy/org/apache/grails/core/cli/template/TemplateRenderer.groovy
 create mode 100644 grails-core/src/cli/groovy/org/apache/grails/core/cli/template/TemplateRendererImpl.groovy
 create mode 100644 grails-core/src/cli/resources/META-INF/grails-cli.factories
 create mode 100644 grails-core/src/cli/resources/META-INF/services/org.codehaus.groovy.transform.ASTTransformation
 create mode 100644 grails-core/src/main/groovy/grails/boot/config/ApplicationArtefactScanner.groovy
 create mode 100644 grails-core/src/main/groovy/grails/boot/config/GrailsEarlyPluginRegistrationPostProcessor.java
 create mode 100644 grails-core/src/main/groovy/grails/boot/config/GrailsPluginLifecycleInitializer.java
 delete mode 100644 grails-core/src/main/groovy/grails/dev/commands/ApplicationCommand.groovy
 delete mode 100644 grails-core/src/main/groovy/grails/dev/commands/ApplicationContextCommandRegistry.groovy
 delete mode 100644 grails-core/src/main/groovy/grails/dev/commands/ConfigReportCommand.groovy
 delete mode 100644 grails-core/src/main/groovy/grails/dev/commands/ExecutionContext.groovy
 delete mode 100644 grails-core/src/main/groovy/grails/dev/commands/GrailsApplicationCommand.groovy
 delete mode 100644 grails-core/src/main/groovy/grails/dev/commands/io/FileSystemInteraction.groovy
 delete mode 100644 grails-core/src/main/groovy/grails/dev/commands/io/FileSystemInteractionImpl.groovy
 delete mode 100644 grails-core/src/main/groovy/grails/dev/commands/template/TemplateException.groovy
 delete mode 100644 grails-core/src/main/groovy/grails/dev/commands/template/TemplateRenderer.groovy
 delete mode 100644 grails-core/src/main/groovy/grails/dev/commands/template/TemplateRendererImpl.groovy
 create mode 100644 grails-core/src/main/groovy/org/grails/compiler/injection/FactoriesFileWriter.groovy
 create mode 100644 grails-core/src/test/groovy/grails/boot/GrailsAppEnvironmentConversionSpec.groovy
 create mode 100644 grails-core/src/test/groovy/grails/boot/config/EarlyPluginRegistrationOrderingSpec.groovy
 create mode 100644 grails-core/src/test/groovy/grails/core/DefaultGrailsApplicationSpec.groovy
 delete mode 100644 grails-core/src/test/groovy/grails/dev/commands/ConfigReportCommandSpec.groovy
 create mode 100644 grails-core/src/test/groovy/grails/plugins/PluginDoWithSpringMethodSpec.groovy
 create mode 100644 grails-core/src/test/groovy/org/apache/grails/core/cli/ConfigReportCommandSpec.groovy
 create mode 100644 grails-core/src/test/groovy/org/apache/grails/core/cli/compiler/CommandFactoriesTransformationSpec.groovy
 create mode 100644 grails-core/src/test/groovy/org/grails/compiler/injection/FactoriesFileWriterSpec.groovy
 create mode 100644 grails-data-graphql/plugin/src/test/groovy/org/grails/gorm/graphql/plugin/GormGraphqlGrailsPluginSpec.groovy
 create mode 100644 grails-data-hibernate5/core/src/main/groovy/org/grails/orm/hibernate/proxy/ByteBuddyGroovyInterceptor.java
 create mode 100644 grails-data-hibernate5/core/src/main/groovy/org/grails/orm/hibernate/proxy/ByteBuddyGroovyProxyFactory.java
 create mode 100644 grails-data-hibernate5/core/src/main/groovy/org/grails/orm/hibernate/proxy/GrailsBytecodeProvider.java
 create mode 100644 grails-data-hibernate5/core/src/main/groovy/org/grails/orm/hibernate/proxy/GrailsProxyFactoryFactory.java
 create mode 100644 grails-data-hibernate5/core/src/main/groovy/org/grails/orm/hibernate/proxy/GroovyProxyInterceptorLogic.java
 delete mode 100644 grails-data-hibernate5/core/src/test/groovy/grails/gorm/tests/DeleteAllWhereSpec.groovy
 delete mode 100644 grails-data-hibernate5/core/src/test/groovy/grails/gorm/tests/WhereQueryBugFixSpec.groovy
 delete mode 100644 grails-data-hibernate5/core/src/test/groovy/grails/gorm/tests/WhereQueryOldIssueVerificationSpec.groovy
 create mode 100644 grails-data-hibernate5/core/src/test/groovy/grails/gorm/tests/proxy/LazyToStringByteBuddyProxySpec.groovy
 create mode 100644 grails-data-hibernate5/core/src/test/groovy/org/apache/grails/data/testing/tck/base/GrailsDataTckManagerSpec.groovy
 create mode 100644 grails-data-hibernate5/core/src/test/groovy/org/grails/orm/hibernate/proxy/GroovyProxyInterceptorLogicSpec.groovy
 create mode 100644 grails-data-hibernate5/core/src/test/groovy/org/grails/orm/hibernate/proxy/HibernateProxyHandlerMetaClassProbeSpec.groovy
 delete mode 100644 grails-data-hibernate5/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command/DbmChangelogSyncCommand.groovy
 delete mode 100644 grails-data-hibernate5/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command/DbmChangelogSyncSqlCommand.groovy
 delete mode 100644 grails-data-hibernate5/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command/DbmClearChecksumsCommand.groovy
 delete mode 100644 grails-data-hibernate5/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command/DbmDbDocCommand.groovy
 delete mode 100644 grails-data-hibernate5/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command/DbmDiffCommand.groovy
 delete mode 100644 grails-data-hibernate5/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command/DbmDropAllCommand.groovy
 delete mode 100644 grails-data-hibernate5/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command/DbmFutureRollbackCountSqlCommand.groovy
 delete mode 100644 grails-data-hibernate5/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command/DbmFutureRollbackSqlCommand.groovy
 delete mode 100644 grails-data-hibernate5/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command/DbmGenerateChangelogCommand.groovy
 delete mode 100644 grails-data-hibernate5/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command/DbmGenerateGormChangelogCommand.groovy
 delete mode 100644 grails-data-hibernate5/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command/DbmGormDiffCommand.groovy
 delete mode 100644 grails-data-hibernate5/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command/DbmListLocksCommand.groovy
 delete mode 100644 grails-data-hibernate5/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command/DbmMarkNextChangesetRanCommand.groovy
 delete mode 100644 grails-data-hibernate5/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command/DbmMarkNextChangesetRanSqlCommand.groovy
 delete mode 100644 grails-data-hibernate5/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command/DbmPreviousChangesetSqlCommand.groovy
 delete mode 100644 grails-data-hibernate5/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command/DbmReleaseLocksCommand.groovy
 delete mode 100644 grails-data-hibernate5/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command/DbmRollbackCommand.groovy
 delete mode 100644 grails-data-hibernate5/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command/DbmRollbackCountCommand.groovy
 delete mode 100644 grails-data-hibernate5/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command/DbmRollbackCountSqlCommand.groovy
 delete mode 100644 grails-data-hibernate5/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command/DbmRollbackSqlCommand.groovy
 delete mode 100644 grails-data-hibernate5/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command/DbmRollbackToDateCommand.groovy
 delete mode 100644 grails-data-hibernate5/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command/DbmRollbackToDateSqlCommand.groovy
 delete mode 100644 grails-data-hibernate5/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command/DbmStatusCommand.groovy
 delete mode 100644 grails-data-hibernate5/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command/DbmTagCommand.groovy
 delete mode 100644 grails-data-hibernate5/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command/DbmUpdateCommand.groovy
 delete mode 100644 grails-data-hibernate5/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command/DbmUpdateCountCommand.groovy
 delete mode 100644 grails-data-hibernate5/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command/DbmUpdateCountSqlCommand.groovy
 delete mode 100644 grails-data-hibernate5/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command/DbmUpdateSqlCommand.groovy
 delete mode 100644 grails-data-hibernate5/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command/DbmValidateCommand.groovy
 create mode 100644 grails-data-hibernate5/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/ApplicationContextDatabaseMigrationCommand.groovy
 create mode 100644 grails-data-hibernate5/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DatabaseMigrationCommand.groovy
 create mode 100644 grails-data-hibernate5/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmChangelogSyncCommand.groovy
 create mode 100644 grails-data-hibernate5/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmChangelogSyncSqlCommand.groovy
 create mode 100644 grails-data-hibernate5/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmChangelogToGroovy.groovy
 create mode 100644 grails-data-hibernate5/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmClearChecksumsCommand.groovy
 create mode 100644 grails-data-hibernate5/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmCreateChangelog.groovy
 create mode 100644 grails-data-hibernate5/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmDbDocCommand.groovy
 create mode 100644 grails-data-hibernate5/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmDiffCommand.groovy
 create mode 100644 grails-data-hibernate5/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmDropAllCommand.groovy
 create mode 100644 grails-data-hibernate5/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmFutureRollbackCountSqlCommand.groovy
 create mode 100644 grails-data-hibernate5/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmFutureRollbackSqlCommand.groovy
 create mode 100644 grails-data-hibernate5/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmGenerateChangelogCommand.groovy
 create mode 100644 grails-data-hibernate5/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmGenerateGormChangelogCommand.groovy
 create mode 100644 grails-data-hibernate5/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmGormDiffCommand.groovy
 create mode 100644 grails-data-hibernate5/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmListLocksCommand.groovy
 create mode 100644 grails-data-hibernate5/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmMarkNextChangesetRanCommand.groovy
 create mode 100644 grails-data-hibernate5/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmMarkNextChangesetRanSqlCommand.groovy
 create mode 100644 grails-data-hibernate5/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmPreviousChangesetSqlCommand.groovy
 create mode 100644 grails-data-hibernate5/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmReleaseLocksCommand.groovy
 create mode 100644 grails-data-hibernate5/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmRollbackCommand.groovy
 create mode 100644 grails-data-hibernate5/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmRollbackCountCommand.groovy
 create mode 100644 grails-data-hibernate5/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmRollbackCountSqlCommand.groovy
 create mode 100644 grails-data-hibernate5/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmRollbackSqlCommand.groovy
 create mode 100644 grails-data-hibernate5/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmRollbackToDateCommand.groovy
 create mode 100644 grails-data-hibernate5/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmRollbackToDateSqlCommand.groovy
 create mode 100644 grails-data-hibernate5/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmStatusCommand.groovy
 create mode 100644 grails-data-hibernate5/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmTagCommand.groovy
 create mode 100644 grails-data-hibernate5/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmUpdateCommand.groovy
 create mode 100644 grails-data-hibernate5/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmUpdateCountCommand.groovy
 create mode 100644 grails-data-hibernate5/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmUpdateCountSqlCommand.groovy
 create mode 100644 grails-data-hibernate5/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmUpdateSqlCommand.groovy
 create mode 100644 grails-data-hibernate5/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmValidateCommand.groovy
 create mode 100644 grails-data-hibernate5/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/ScriptDatabaseMigrationCommand.groovy
 create mode 100644 grails-data-hibernate5/dbmigration/src/cli/resources/META-INF/commands/dbm-changelog-to-groovy.groovy
 create mode 100644 grails-data-hibernate5/dbmigration/src/cli/resources/META-INF/commands/dbm-create-changelog.groovy
 delete mode 100644 grails-data-hibernate5/dbmigration/src/main/groovy/org/grails/plugins/databasemigration/command/ApplicationContextDatabaseMigrationCommand.groovy
 delete mode 100644 grails-data-hibernate5/dbmigration/src/main/groovy/org/grails/plugins/databasemigration/command/DatabaseMigrationCommand.groovy
 delete mode 100644 grails-data-hibernate5/dbmigration/src/main/groovy/org/grails/plugins/databasemigration/command/DbmChangelogToGroovy.groovy
 delete mode 100644 grails-data-hibernate5/dbmigration/src/main/groovy/org/grails/plugins/databasemigration/command/DbmCreateChangelog.groovy
 delete mode 100644 grails-data-hibernate5/dbmigration/src/main/groovy/org/grails/plugins/databasemigration/command/ScriptDatabaseMigrationCommand.groovy
 delete mode 100644 grails-data-hibernate5/dbmigration/src/main/scripts/dbm-changelog-to-groovy.groovy
 delete mode 100644 grails-data-hibernate5/dbmigration/src/main/scripts/dbm-create-changelog.groovy
 create mode 100644 grails-data-hibernate5/dbmigration/src/test/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/ApplicationContextDatabaseMigrationCommandSpec.groovy
 create mode 100644 grails-data-hibernate5/dbmigration/src/test/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DatabaseMigrationCommandConfigSpec.groovy
 create mode 100644 grails-data-hibernate5/dbmigration/src/test/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DatabaseMigrationCommandSpec.groovy
 create mode 100644 grails-data-hibernate5/dbmigration/src/test/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmChangelogSyncCommandSpec.groovy
 create mode 100644 grails-data-hibernate5/dbmigration/src/test/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmChangelogSyncCommandSqlSpec.groovy
 create mode 100644 grails-data-hibernate5/dbmigration/src/test/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmClearChecksumsCommandSpec.groovy
 create mode 100644 grails-data-hibernate5/dbmigration/src/test/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmDiffCommandSpec.groovy
 create mode 100644 grails-data-hibernate5/dbmigration/src/test/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmDropAllCommandSpec.groovy
 create mode 100644 grails-data-hibernate5/dbmigration/src/test/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmFutureRollbackCountSqlCommandSpec.groovy
 create mode 100644 grails-data-hibernate5/dbmigration/src/test/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmFutureRollbackSqlCommandSpec.groovy
 create mode 100644 grails-data-hibernate5/dbmigration/src/test/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmGenerateChangelogCommandSpec.groovy
 create mode 100644 grails-data-hibernate5/dbmigration/src/test/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmGenerateGormChangelogCommandSpec.groovy
 create mode 100644 grails-data-hibernate5/dbmigration/src/test/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmGormDiffCommandSpec.groovy
 create mode 100644 grails-data-hibernate5/dbmigration/src/test/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmListLocksCommandSpec.groovy
 create mode 100644 grails-data-hibernate5/dbmigration/src/test/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmMarkNextChangesetRanCommandSpec.groovy
 create mode 100644 grails-data-hibernate5/dbmigration/src/test/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmMarkNextChangesetRanSqlCommandSpec.groovy
 create mode 100644 grails-data-hibernate5/dbmigration/src/test/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmPreviousChangesetSqlCommandSpec.groovy
 create mode 100644 grails-data-hibernate5/dbmigration/src/test/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmReleaseLocksCommandSpec.groovy
 create mode 100644 grails-data-hibernate5/dbmigration/src/test/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmRollbackCommandSpec.groovy
 create mode 100644 grails-data-hibernate5/dbmigration/src/test/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmRollbackCountCommandSpec.groovy
 create mode 100644 grails-data-hibernate5/dbmigration/src/test/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmRollbackCountSqlCommandSpec.groovy
 create mode 100644 grails-data-hibernate5/dbmigration/src/test/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmRollbackSqlCommandSpec.groovy
 create mode 100644 grails-data-hibernate5/dbmigration/src/test/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmRollbackToDateCommandSpec.groovy
 create mode 100644 grails-data-hibernate5/dbmigration/src/test/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmRollbackToDateSqlCommandSpec.groovy
 create mode 100644 grails-data-hibernate5/dbmigration/src/test/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmStatusCommandSpec.groovy
 create mode 100644 grails-data-hibernate5/dbmigration/src/test/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmUpdateCommandSpec.groovy
 create mode 100644 grails-data-hibernate5/dbmigration/src/test/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmUpdateCountCommandSpec.groovy
 create mode 100644 grails-data-hibernate5/dbmigration/src/test/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmUpdateCountSqlCommandSpec.groovy
 create mode 100644 grails-data-hibernate5/dbmigration/src/test/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmUpdateSqlCommandSpec.groovy
 create mode 100644 grails-data-hibernate5/dbmigration/src/test/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/DbmValidateCommandSpec.groovy
 create mode 100644 grails-data-hibernate5/dbmigration/src/test/groovy/org/apache/grails/data/hibernate5/dbmigration/cli/ScriptDatabaseMigrationCommandSpec.groovy
 create mode 100644 grails-data-hibernate5/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/DatabaseMigrationGrailsPluginSpec.groovy
 delete mode 100644 grails-data-hibernate5/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command/ApplicationContextDatabaseMigrationCommandSpec.groovy
 delete mode 100644 grails-data-hibernate5/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command/DatabaseMigrationCommandConfigSpec.groovy
 delete mode 100644 grails-data-hibernate5/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command/DatabaseMigrationCommandSpec.groovy
 delete mode 100644 grails-data-hibernate5/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command/DbmChangelogSyncCommandSpec.groovy
 delete mode 100644 grails-data-hibernate5/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command/DbmChangelogSyncCommandSqlSpec.groovy
 delete mode 100644 grails-data-hibernate5/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command/DbmClearChecksumsCommandSpec.groovy
 delete mode 100644 grails-data-hibernate5/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command/DbmDiffCommandSpec.groovy
 delete mode 100644 grails-data-hibernate5/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command/DbmDropAllCommandSpec.groovy
 delete mode 100644 grails-data-hibernate5/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command/DbmFutureRollbackCountSqlCommandSpec.groovy
 delete mode 100644 grails-data-hibernate5/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command/DbmFutureRollbackSqlCommandSpec.groovy
 delete mode 100644 grails-data-hibernate5/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command/DbmGenerateChangelogCommandSpec.groovy
 delete mode 100644 grails-data-hibernate5/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command/DbmGenerateGormChangelogCommandSpec.groovy
 delete mode 100644 grails-data-hibernate5/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command/DbmGormDiffCommandSpec.groovy
 delete mode 100644 grails-data-hibernate5/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command/DbmListLocksCommandSpec.groovy
 delete mode 100644 grails-data-hibernate5/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command/DbmMarkNextChangesetRanCommandSpec.groovy
 delete mode 100644 grails-data-hibernate5/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command/DbmMarkNextChangesetRanSqlCommandSpec.groovy
 delete mode 100644 grails-data-hibernate5/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command/DbmPreviousChangesetSqlCommandSpec.groovy
 delete mode 100644 grails-data-hibernate5/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command/DbmReleaseLocksCommandSpec.groovy
 delete mode 100644 grails-data-hibernate5/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command/DbmRollbackCommandSpec.groovy
 delete mode 100644 grails-data-hibernate5/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command/DbmRollbackCountCommandSpec.groovy
 delete mode 100644 grails-data-hibernate5/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command/DbmRollbackCountSqlCommandSpec.groovy
 delete mode 100644 grails-data-hibernate5/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command/DbmRollbackSqlCommandSpec.groovy
 delete mode 100644 grails-data-hibernate5/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command/DbmRollbackToDateCommandSpec.groovy
 delete mode 100644 grails-data-hibernate5/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command/DbmRollbackToDateSqlCommandSpec.groovy
 delete mode 100644 grails-data-hibernate5/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command/DbmStatusCommandSpec.groovy
 delete mode 100644 grails-data-hibernate5/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command/DbmUpdateCommandSpec.groovy
 delete mode 100644 grails-data-hibernate5/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command/DbmUpdateCountCommandSpec.groovy
 delete mode 100644 grails-data-hibernate5/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command/DbmUpdateCountSqlCommandSpec.groovy
 delete mode 100644 grails-data-hibernate5/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command/DbmUpdateSqlCommandSpec.groovy
 delete mode 100644 grails-data-hibernate5/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command/DbmValidateCommandSpec.groovy
 delete mode 100644 grails-data-hibernate5/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command/ScriptDatabaseMigrationCommandSpec.groovy
 create mode 100644 grails-data-hibernate5/grails-plugin/src/cli/groovy/org/apache/grails/data/hibernate5/cli/SchemaExportCommand.groovy
 delete mode 100644 grails-data-hibernate5/grails-plugin/src/main/groovy/grails/plugin/hibernate/commands/SchemaExportCommand.groovy
 delete mode 100644 grails-data-hibernate7/core/src/test/groovy/grails/gorm/tests/DeleteAllWhereSpec.groovy
 delete mode 100644 grails-data-hibernate7/core/src/test/groovy/grails/gorm/tests/WhereQueryBugFixSpec.groovy
 delete mode 100644 grails-data-hibernate7/core/src/test/groovy/grails/gorm/tests/WhereQueryOldIssueVerificationSpec.groovy
 create mode 100644 grails-data-hibernate7/core/src/test/groovy/grails/gorm/tests/proxy/LazyToStringByteBuddyProxySpec.groovy
 create mode 100644 grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/proxy/HibernateProxyHandlerMetaClassProbeSpec.groovy
 delete mode 100644 grails-data-hibernate7/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command/DbmChangelogSyncCommand.groovy
 delete mode 100644 grails-data-hibernate7/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command/DbmChangelogSyncSqlCommand.groovy
 delete mode 100644 grails-data-hibernate7/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command/DbmClearChecksumsCommand.groovy
 delete mode 100644 grails-data-hibernate7/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command/DbmDbDocCommand.groovy
 delete mode 100644 grails-data-hibernate7/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command/DbmDiffCommand.groovy
 delete mode 100644 grails-data-hibernate7/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command/DbmDropAllCommand.groovy
 delete mode 100644 grails-data-hibernate7/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command/DbmFutureRollbackCountSqlCommand.groovy
 delete mode 100644 grails-data-hibernate7/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command/DbmFutureRollbackSqlCommand.groovy
 delete mode 100644 grails-data-hibernate7/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command/DbmGenerateChangelogCommand.groovy
 delete mode 100644 grails-data-hibernate7/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command/DbmGenerateGormChangelogCommand.groovy
 delete mode 100644 grails-data-hibernate7/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command/DbmGormDiffCommand.groovy
 delete mode 100644 grails-data-hibernate7/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command/DbmListLocksCommand.groovy
 delete mode 100644 grails-data-hibernate7/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command/DbmMarkNextChangesetRanCommand.groovy
 delete mode 100644 grails-data-hibernate7/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command/DbmMarkNextChangesetRanSqlCommand.groovy
 delete mode 100644 grails-data-hibernate7/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command/DbmPreviousChangesetSqlCommand.groovy
 delete mode 100644 grails-data-hibernate7/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command/DbmReleaseLocksCommand.groovy
 delete mode 100644 grails-data-hibernate7/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command/DbmRollbackCommand.groovy
 delete mode 100644 grails-data-hibernate7/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command/DbmRollbackCountCommand.groovy
 delete mode 100644 grails-data-hibernate7/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command/DbmRollbackCountSqlCommand.groovy
 delete mode 100644 grails-data-hibernate7/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command/DbmRollbackSqlCommand.groovy
 delete mode 100644 grails-data-hibernate7/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command/DbmRollbackToDateCommand.groovy
 delete mode 100644 grails-data-hibernate7/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command/DbmRollbackToDateSqlCommand.groovy
 delete mode 100644 grails-data-hibernate7/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command/DbmStatusCommand.groovy
 delete mode 100644 grails-data-hibernate7/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command/DbmTagCommand.groovy
 delete mode 100644 grails-data-hibernate7/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command/DbmUpdateCommand.groovy
 delete mode 100644 grails-data-hibernate7/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command/DbmUpdateCountCommand.groovy
 delete mode 100644 grails-data-hibernate7/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command/DbmUpdateCountSqlCommand.groovy
 delete mode 100644 grails-data-hibernate7/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command/DbmUpdateSqlCommand.groovy
 delete mode 100644 grails-data-hibernate7/dbmigration/grails-app/commands/org/grails/plugins/databasemigration/command/DbmValidateCommand.groovy
 create mode 100644 grails-data-hibernate7/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/ApplicationContextDatabaseMigrationCommand.groovy
 create mode 100644 grails-data-hibernate7/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DatabaseMigrationCommand.groovy
 create mode 100644 grails-data-hibernate7/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmChangelogSyncCommand.groovy
 create mode 100644 grails-data-hibernate7/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmChangelogSyncSqlCommand.groovy
 create mode 100644 grails-data-hibernate7/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmChangelogToGroovy.groovy
 create mode 100644 grails-data-hibernate7/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmClearChecksumsCommand.groovy
 create mode 100644 grails-data-hibernate7/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmCreateChangelog.groovy
 create mode 100644 grails-data-hibernate7/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmDbDocCommand.groovy
 create mode 100644 grails-data-hibernate7/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmDiffCommand.groovy
 create mode 100644 grails-data-hibernate7/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmDropAllCommand.groovy
 create mode 100644 grails-data-hibernate7/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmFutureRollbackCountSqlCommand.groovy
 create mode 100644 grails-data-hibernate7/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmFutureRollbackSqlCommand.groovy
 create mode 100644 grails-data-hibernate7/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmGenerateChangelogCommand.groovy
 create mode 100644 grails-data-hibernate7/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmGenerateGormChangelogCommand.groovy
 create mode 100644 grails-data-hibernate7/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmGormDiffCommand.groovy
 create mode 100644 grails-data-hibernate7/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmListLocksCommand.groovy
 create mode 100644 grails-data-hibernate7/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmMarkNextChangesetRanCommand.groovy
 create mode 100644 grails-data-hibernate7/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmMarkNextChangesetRanSqlCommand.groovy
 create mode 100644 grails-data-hibernate7/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmPreviousChangesetSqlCommand.groovy
 create mode 100644 grails-data-hibernate7/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmReleaseLocksCommand.groovy
 create mode 100644 grails-data-hibernate7/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmRollbackCommand.groovy
 create mode 100644 grails-data-hibernate7/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmRollbackCountCommand.groovy
 create mode 100644 grails-data-hibernate7/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmRollbackCountSqlCommand.groovy
 create mode 100644 grails-data-hibernate7/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmRollbackSqlCommand.groovy
 create mode 100644 grails-data-hibernate7/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmRollbackToDateCommand.groovy
 create mode 100644 grails-data-hibernate7/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmRollbackToDateSqlCommand.groovy
 create mode 100644 grails-data-hibernate7/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmStatusCommand.groovy
 create mode 100644 grails-data-hibernate7/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmTagCommand.groovy
 create mode 100644 grails-data-hibernate7/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmUpdateCommand.groovy
 create mode 100644 grails-data-hibernate7/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmUpdateCountCommand.groovy
 create mode 100644 grails-data-hibernate7/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmUpdateCountSqlCommand.groovy
 create mode 100644 grails-data-hibernate7/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmUpdateSqlCommand.groovy
 create mode 100644 grails-data-hibernate7/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmValidateCommand.groovy
 create mode 100644 grails-data-hibernate7/dbmigration/src/cli/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/ScriptDatabaseMigrationCommand.groovy
 create mode 100644 grails-data-hibernate7/dbmigration/src/cli/resources/META-INF/commands/dbm-changelog-to-groovy.groovy
 create mode 100644 grails-data-hibernate7/dbmigration/src/cli/resources/META-INF/commands/dbm-create-changelog.groovy
 delete mode 100644 grails-data-hibernate7/dbmigration/src/main/groovy/org/grails/plugins/databasemigration/command/ApplicationContextDatabaseMigrationCommand.groovy
 delete mode 100644 grails-data-hibernate7/dbmigration/src/main/groovy/org/grails/plugins/databasemigration/command/DatabaseMigrationCommand.groovy
 delete mode 100644 grails-data-hibernate7/dbmigration/src/main/groovy/org/grails/plugins/databasemigration/command/DbmChangelogToGroovy.groovy
 delete mode 100644 grails-data-hibernate7/dbmigration/src/main/groovy/org/grails/plugins/databasemigration/command/DbmCreateChangelog.groovy
 delete mode 100644 grails-data-hibernate7/dbmigration/src/main/groovy/org/grails/plugins/databasemigration/command/ScriptDatabaseMigrationCommand.groovy
 delete mode 100644 grails-data-hibernate7/dbmigration/src/main/scripts/dbm-changelog-to-groovy.groovy
 delete mode 100644 grails-data-hibernate7/dbmigration/src/main/scripts/dbm-create-changelog.groovy
 create mode 100644 grails-data-hibernate7/dbmigration/src/test/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/ApplicationContextDatabaseMigrationCommandSpec.groovy
 create mode 100644 grails-data-hibernate7/dbmigration/src/test/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DatabaseMigrationCommandConfigSpec.groovy
 create mode 100644 grails-data-hibernate7/dbmigration/src/test/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DatabaseMigrationCommandSpec.groovy
 create mode 100644 grails-data-hibernate7/dbmigration/src/test/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmChangelogSyncCommandSpec.groovy
 create mode 100644 grails-data-hibernate7/dbmigration/src/test/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmChangelogSyncCommandSqlSpec.groovy
 create mode 100644 grails-data-hibernate7/dbmigration/src/test/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmClearChecksumsCommandSpec.groovy
 create mode 100644 grails-data-hibernate7/dbmigration/src/test/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmDiffCommandSpec.groovy
 create mode 100644 grails-data-hibernate7/dbmigration/src/test/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmDropAllCommandSpec.groovy
 create mode 100644 grails-data-hibernate7/dbmigration/src/test/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmFutureRollbackCountSqlCommandSpec.groovy
 create mode 100644 grails-data-hibernate7/dbmigration/src/test/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmFutureRollbackSqlCommandSpec.groovy
 create mode 100644 grails-data-hibernate7/dbmigration/src/test/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmGenerateChangelogCommandSpec.groovy
 create mode 100644 grails-data-hibernate7/dbmigration/src/test/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmGenerateGormChangelogCommandSpec.groovy
 create mode 100644 grails-data-hibernate7/dbmigration/src/test/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmGormDiffCommandSpec.groovy
 create mode 100644 grails-data-hibernate7/dbmigration/src/test/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmListLocksCommandSpec.groovy
 create mode 100644 grails-data-hibernate7/dbmigration/src/test/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmMarkNextChangesetRanCommandSpec.groovy
 create mode 100644 grails-data-hibernate7/dbmigration/src/test/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmMarkNextChangesetRanSqlCommandSpec.groovy
 create mode 100644 grails-data-hibernate7/dbmigration/src/test/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmPreviousChangesetSqlCommandSpec.groovy
 create mode 100644 grails-data-hibernate7/dbmigration/src/test/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmReleaseLocksCommandSpec.groovy
 create mode 100644 grails-data-hibernate7/dbmigration/src/test/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmRollbackCommandSpec.groovy
 create mode 100644 grails-data-hibernate7/dbmigration/src/test/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmRollbackCountCommandSpec.groovy
 create mode 100644 grails-data-hibernate7/dbmigration/src/test/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmRollbackCountSqlCommandSpec.groovy
 create mode 100644 grails-data-hibernate7/dbmigration/src/test/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmRollbackSqlCommandSpec.groovy
 create mode 100644 grails-data-hibernate7/dbmigration/src/test/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmRollbackToDateCommandSpec.groovy
 create mode 100644 grails-data-hibernate7/dbmigration/src/test/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmRollbackToDateSqlCommandSpec.groovy
 create mode 100644 grails-data-hibernate7/dbmigration/src/test/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmStatusCommandSpec.groovy
 create mode 100644 grails-data-hibernate7/dbmigration/src/test/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmUpdateCommandSpec.groovy
 create mode 100644 grails-data-hibernate7/dbmigration/src/test/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmUpdateCountCommandSpec.groovy
 create mode 100644 grails-data-hibernate7/dbmigration/src/test/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmUpdateCountSqlCommandSpec.groovy
 create mode 100644 grails-data-hibernate7/dbmigration/src/test/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmUpdateSqlCommandSpec.groovy
 create mode 100644 grails-data-hibernate7/dbmigration/src/test/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/DbmValidateCommandSpec.groovy
 create mode 100644 grails-data-hibernate7/dbmigration/src/test/groovy/org/apache/grails/data/hibernate7/dbmigration/cli/ScriptDatabaseMigrationCommandSpec.groovy
 delete mode 100644 grails-data-hibernate7/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command/ApplicationContextDatabaseMigrationCommandSpec.groovy
 delete mode 100644 grails-data-hibernate7/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command/DatabaseMigrationCommandConfigSpec.groovy
 delete mode 100644 grails-data-hibernate7/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command/DatabaseMigrationCommandSpec.groovy
 delete mode 100644 grails-data-hibernate7/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command/DbmChangelogSyncCommandSpec.groovy
 delete mode 100644 grails-data-hibernate7/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command/DbmChangelogSyncCommandSqlSpec.groovy
 delete mode 100644 grails-data-hibernate7/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command/DbmClearChecksumsCommandSpec.groovy
 delete mode 100644 grails-data-hibernate7/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command/DbmDiffCommandSpec.groovy
 delete mode 100644 grails-data-hibernate7/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command/DbmDropAllCommandSpec.groovy
 delete mode 100644 grails-data-hibernate7/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command/DbmFutureRollbackCountSqlCommandSpec.groovy
 delete mode 100644 grails-data-hibernate7/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command/DbmFutureRollbackSqlCommandSpec.groovy
 delete mode 100644 grails-data-hibernate7/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command/DbmGenerateChangelogCommandSpec.groovy
 delete mode 100644 grails-data-hibernate7/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command/DbmGenerateGormChangelogCommandSpec.groovy
 delete mode 100644 grails-data-hibernate7/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command/DbmGormDiffCommandSpec.groovy
 delete mode 100644 grails-data-hibernate7/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command/DbmListLocksCommandSpec.groovy
 delete mode 100644 grails-data-hibernate7/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command/DbmMarkNextChangesetRanCommandSpec.groovy
 delete mode 100644 grails-data-hibernate7/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command/DbmMarkNextChangesetRanSqlCommandSpec.groovy
 delete mode 100644 grails-data-hibernate7/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command/DbmPreviousChangesetSqlCommandSpec.groovy
 delete mode 100644 grails-data-hibernate7/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command/DbmReleaseLocksCommandSpec.groovy
 delete mode 100644 grails-data-hibernate7/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command/DbmRollbackCommandSpec.groovy
 delete mode 100644 grails-data-hibernate7/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command/DbmRollbackCountCommandSpec.groovy
 delete mode 100644 grails-data-hibernate7/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command/DbmRollbackCountSqlCommandSpec.groovy
 delete mode 100644 grails-data-hibernate7/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command/DbmRollbackSqlCommandSpec.groovy
 delete mode 100644 grails-data-hibernate7/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command/DbmRollbackToDateCommandSpec.groovy
 delete mode 100644 grails-data-hibernate7/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command/DbmRollbackToDateSqlCommandSpec.groovy
 delete mode 100644 grails-data-hibernate7/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command/DbmStatusCommandSpec.groovy
 delete mode 100644 grails-data-hibernate7/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command/DbmUpdateCommandSpec.groovy
 delete mode 100644 grails-data-hibernate7/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command/DbmUpdateCountCommandSpec.groovy
 delete mode 100644 grails-data-hibernate7/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command/DbmUpdateCountSqlCommandSpec.groovy
 delete mode 100644 grails-data-hibernate7/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command/DbmUpdateSqlCommandSpec.groovy
 delete mode 100644 grails-data-hibernate7/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command/DbmValidateCommandSpec.groovy
 delete mode 100644 grails-data-hibernate7/dbmigration/src/test/groovy/org/grails/plugins/databasemigration/command/ScriptDatabaseMigrationCommandSpec.groovy
 create mode 100644 grails-data-hibernate7/grails-plugin/src/cli/groovy/org/apache/grails/data/hibernate7/cli/SchemaExportCommand.groovy
 delete mode 100644 grails-data-hibernate7/grails-plugin/src/main/groovy/grails/plugin/hibernate/commands/SchemaExportCommand.groovy
 create mode 100644 grails-data-mongodb/core/src/main/groovy/org/grails/datastore/mapping/mongo/MongoTransaction.java
 create mode 100644 grails-data-mongodb/core/src/test/groovy/grails/mongodb/bootstrap/MongoOpenSessionInViewSpec.groovy
 create mode 100644 grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/api/MongoStaticApiSpec.groovy
 create mode 100644 grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/transactions/MongoTransactionDisabledSpec.groovy
 create mode 100644 grails-data-mongodb/core/src/test/groovy/org/grails/datastore/gorm/mongo/transactions/MongoTransactionSpec.groovy
 create mode 100644 grails-data-mongodb/docs/src/docs/asciidoc/gettingStarted/springDataInterop.adoc
 create mode 100644 grails-data-mongodb/spring-data/README.md
 create mode 100644 grails-data-mongodb/spring-data/build.gradle
 create mode 100644 grails-data-mongodb/spring-data/src/main/groovy/org/grails/datastore/gorm/mongodb/springdata/GormSharedSessionMongoTransactionManager.groovy
 create mode 100644 grails-data-mongodb/spring-data/src/main/groovy/org/grails/datastore/gorm/mongodb/springdata/SpringDataMongoGormAutoConfiguration.groovy
 create mode 100644 grails-data-mongodb/spring-data/src/main/java/org/springframework/data/mongodb/GormSpringDataSessionSupport.java
 create mode 100644 grails-data-mongodb/spring-data/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
 create mode 100644 grails-data-mongodb/spring-data/src/test/groovy/org/grails/datastore/gorm/mongodb/springdata/AutoConfigurationImportsSpec.groovy
 create mode 100644 grails-data-mongodb/spring-data/src/test/groovy/org/grails/datastore/gorm/mongodb/springdata/SpringDataMongoGormAutoConfigurationContextSpec.groovy
 create mode 100644 grails-data-mongodb/spring-data/src/test/groovy/org/grails/datastore/gorm/mongodb/springdata/UnifiedMongoTransactionSpec.groovy
 create mode 100644 grails-data-mongodb/spring-data/src/test/groovy/org/springframework/data/mongodb/GormSpringDataSessionSupportSpec.groovy
 create mode 100644 grails-data-simple/src/test/groovy/org/grails/datastore/mapping/simple/SimpleMapDatastoreSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/grails/gorm/CriteriaBuilderSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/grails/gorm/services/AbstractServiceImplementerCoverageSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/grails/gorm/services/AbstractStringQueryImplementerCoverageSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/grails/gorm/services/FindAllByImplementerCoverageSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/grails/gorm/services/ServiceTransformationCoverageSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/grails/gorm/transactions/GrailsTransactionTemplateSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/AbstractDatastoreApiSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/AbstractGormApiSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/GormEnhancerCoverageSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/GormRegistryCoverageSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/GormStaticApiSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/GormValidationApiCoverageSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/bootstrap/AbstractDatastoreInitializerWebApplicationSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/finders/AbstractFinderSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/finders/DynamicFinderCoverageSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/finders/FindOrSaveByFinderSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/multitenancy/TenantDelegatingGormOperationsSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/query/transform/WhereQueryClosureCaptureSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/query/transform/WhereQueryEmbeddedBlockTransformSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/services/DefaultTenantServiceSpec.groovy
 create mode 100644 grails-datamapping-core/src/test/groovy/org/grails/datastore/gorm/services/DefaultTransactionServiceSpec.groovy
 create mode 100644 grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/domains/ExternalRef.groovy
 create mode 100644 grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/domains/SystemManaged.groovy
 create mode 100644 grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/domains/WorkItem.groovy
 create mode 100644 grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/domains/WorkItemGroup.groovy
 create mode 100644 grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/domains/WqAuthor.groovy
 create mode 100644 grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/domains/WqBiAuthor.groovy
 create mode 100644 grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/domains/WqBiBook.groovy
 create mode 100644 grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/domains/WqBookAuthor.groovy
 create mode 100644 grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/domains/WqBookItem.groovy
 create mode 100644 grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/domains/WqFoo.groovy
 create mode 100644 grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/domains/WqGroupedItem.groovy
 create mode 100644 grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/domains/WqPhrase.groovy
 create mode 100644 grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/domains/WqRole.groovy
 create mode 100644 grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/domains/WqRoleUser.groovy
 create mode 100644 grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/domains/WqScientificBook.groovy
 create mode 100644 grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/domains/WqSentence.groovy
 create mode 100644 grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/domains/WqStudent.groovy
 create mode 100644 grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/domains/WqThing.groovy
 create mode 100644 grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/domains/WqUserRole.groovy
 create mode 100644 grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/domains/WqWord.groovy
 create mode 100644 grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/tests/WhereQueryEmbeddedSpec.groovy
 create mode 100644 grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/tests/WhereQueryIssueVerificationSpec.groovy
 create mode 100644 grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/tests/WhereQueryLeftJoinSpec.groovy
 create mode 100644 grails-datasource/src/main/groovy/org/grails/plugins/datasource/DataSourceBeanDefinitionsPostProcessor.groovy
 create mode 100644 grails-datastore-core/src/test/groovy/org/grails/datastore/mapping/core/connections/AbstractConnectionSourceFactorySpec.groovy
 create mode 100644 grails-datastore-core/src/test/groovy/org/grails/datastore/mapping/core/connections/ConnectionSourceSettingsBuilderSpec.groovy
 create mode 100644 grails-datastore-core/src/test/groovy/org/grails/datastore/mapping/model/AbstractPersistentEntityGetTenantIdSpec.groovy
 create mode 100644 grails-datastore-core/src/test/groovy/org/grails/datastore/mapping/transactions/CustomizableRollbackTransactionAttributeSpec.groovy
 create mode 100644 grails-doc/resources/img/acls/acl_class_create.png
 create mode 100644 grails-doc/resources/img/acls/acl_class_edit.png
 create mode 100644 grails-doc/resources/img/acls/acl_class_search_results.png
 create mode 100644 grails-doc/resources/img/acls/acl_class_search_start.png
 create mode 100644 grails-doc/resources/img/acls/acl_entry_create.png
 create mode 100644 grails-doc/resources/img/acls/acl_entry_edit.png
 create mode 100644 grails-doc/resources/img/acls/acl_entry_search_results.png
 create mode 100644 grails-doc/resources/img/acls/acl_entry_search_start.png
 create mode 100644 grails-doc/resources/img/acls/acl_oid_create.png
 create mode 100644 grails-doc/resources/img/acls/acl_oid_edit.png
 create mode 100644 grails-doc/resources/img/acls/acl_oid_search_results.png
 create mode 100644 grails-doc/resources/img/acls/acl_oid_search_start.png
 create mode 100644 grails-doc/resources/img/acls/acl_sid_create.png
 create mode 100644 grails-doc/resources/img/acls/acl_sid_edit.png
 create mode 100644 grails-doc/resources/img/acls/acl_sid_search_results.png
 create mode 100644 grails-doc/resources/img/acls/acl_sid_search_start.png
 create mode 100644 grails-doc/resources/img/forgot_password_email.png
 create mode 100644 grails-doc/resources/img/forgot_password_final.png
 create mode 100644 grails-doc/resources/img/forgot_password_form.png
 create mode 100644 grails-doc/resources/img/forgot_password_sent.png
 create mode 100644 grails-doc/resources/img/forgot_password_start.png
 create mode 100644 grails-doc/resources/img/images/jwt.png
 create mode 100644 grails-doc/resources/img/images/oauth.png
 create mode 100644 grails-doc/resources/img/images/rest.png
 create mode 100644 grails-doc/resources/img/login.png
 create mode 100644 grails-doc/resources/img/persistent_login_edit.png
 create mode 100644 grails-doc/resources/img/persistent_login_search.png
 create mode 100644 grails-doc/resources/img/persistent_login_search_results.png
 create mode 100644 grails-doc/resources/img/register_email.png
 create mode 100644 grails-doc/resources/img/register_final.png
 create mode 100644 grails-doc/resources/img/register_sent.png
 create mode 100644 grails-doc/resources/img/register_start.png
 create mode 100644 grails-doc/resources/img/registration_code_edit.png
 create mode 100644 grails-doc/resources/img/registration_code_search_results.png
 create mode 100644 grails-doc/resources/img/registration_code_search_start.png
 create mode 100644 grails-doc/resources/img/requestmap_create.png
 create mode 100644 grails-doc/resources/img/requestmap_edit.png
 create mode 100644 grails-doc/resources/img/requestmap_search_results.png
 create mode 100644 grails-doc/resources/img/requestmap_search_start.png
 create mode 100644 grails-doc/resources/img/role_create.png
 create mode 100644 grails-doc/resources/img/role_edit.png
 create mode 100644 grails-doc/resources/img/role_edit_users.png
 create mode 100644 grails-doc/resources/img/role_search_start.png
 create mode 100644 grails-doc/resources/img/security_info_auth.png
 create mode 100644 grails-doc/resources/img/security_info_config.png
 create mode 100644 grails-doc/resources/img/security_info_filter_chains.png
 create mode 100644 grails-doc/resources/img/security_info_logout_handlers.png
 create mode 100644 grails-doc/resources/img/security_info_mappings.png
 create mode 100644 grails-doc/resources/img/security_info_menu.png
 create mode 100644 grails-doc/resources/img/security_info_providers.png
 create mode 100644 grails-doc/resources/img/security_info_secure_channel.png
 create mode 100644 grails-doc/resources/img/security_info_user_cache.png
 create mode 100644 grails-doc/resources/img/security_info_voters.png
 create mode 100644 grails-doc/resources/img/user_create.png
 create mode 100644 grails-doc/resources/img/user_edit.png
 create mode 100644 grails-doc/resources/img/user_edit_roles.png
 create mode 100644 grails-doc/resources/img/user_search_results.png
 create mode 100644 grails-doc/resources/img/user_search_start.png
 create mode 100644 grails-doc/src/en/guide/mail.adoc
 create mode 100644 grails-doc/src/en/guide/mail/mailAttachments.adoc
 create mode 100644 grails-doc/src/en/guide/mail/mailConfiguration.adoc
 create mode 100644 grails-doc/src/en/guide/mail/mailMessageContent.adoc
 create mode 100644 grails-doc/src/en/guide/mail/mailSendingEmails.adoc
 create mode 100644 grails-doc/src/en/guide/mail/mailTesting.adoc
 create mode 100644 grails-doc/src/en/guide/redis.adoc
 create mode 100644 grails-doc/src/en/guide/redis/redisInstallation.adoc
 create mode 100644 grails-doc/src/en/guide/redis/redisMemoization.adoc
 create mode 100644 grails-doc/src/en/guide/redis/redisMemoizationAnnotations.adoc
 create mode 100644 grails-doc/src/en/guide/redis/redisMultipleServers.adoc
 create mode 100644 grails-doc/src/en/guide/redis/redisUsage.adoc
 create mode 100644 grails-doc/src/en/guide/redis/redisUsefulLinks.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/acl/AclUtilService.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/acl/AclUtilService/addPermission.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/acl/AclUtilService/changeOwner.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/acl/AclUtilService/deleteAcl.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/acl/AclUtilService/deletePermission.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/acl/AclUtilService/hasPermission.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/acl/AclUtilService/readAcl.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/acl/Scripts.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/acl/Scripts/s2-create-acl-domains.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/acl/TagLibraries.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/acl/TagLibraries/notPermitted.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/acl/TagLibraries/permitted.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/acl/installing.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/acl/installing/distribution.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/acl/installing/snapshots.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/acl/introduction.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/acl/sampleApp.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/acl/tutorial.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/acl/usage.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/acl/usage/acls.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/acl/usage/configuration.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/acl/usage/customPermissions.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/acl/usage/domainClasses.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/acl/usage/runAs.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/acl/usage/serviceMethods.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/cas/configuration.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/cas/introduction.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/cas/usage.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/core/authentication.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/core/authentication/ajax.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/core/authentication/basicAndDigestAuth.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/core/authentication/rememberMeCookie.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/core/authentication/x509.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/core/authenticationProviders.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/core/channelSecurity.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/core/controllerMethods.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/core/debugging.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/core/domainClassProperties.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/core/domainClasses.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/core/domainClasses/authorityClass.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/core/domainClasses/authorityGroupAuthorityClass.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/core/domainClasses/authorityGroupClass.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/core/domainClasses/gormAutowire.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/core/domainClasses/personAuthorityClass.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/core/domainClasses/personAuthorityGroupClass.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/core/domainClasses/personClass.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/core/domainClasses/requestmapClass.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/core/events.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/core/events/eventNotification.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/core/events/registeringCallbackClosures.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/core/events/registeringEventListener.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/core/examples.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/core/filters.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/core/helperClasses.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/core/helperClasses/securityTagLib.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/core/helperClasses/springSecurityService.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/core/helperClasses/springSecurityUtils.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/core/hierarchicalRoles.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/core/i18n.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/core/introduction.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/core/introduction/configGroovy.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/core/introduction/gettingStarted.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/core/introduction/installation.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/core/ip.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/core/logoutHandlers.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/core/miscProperties.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/core/passwords.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/core/passwords/hashing.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/core/passwords/locking.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/core/passwords/salt.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/core/requestMappings.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/core/requestMappings/configGroovyMap.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/core/requestMappings/expressions.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/core/requestMappings/requestmapInstances.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/core/requestMappings/securedAnnotations.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/core/scripts.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/core/scripts/s2-create-persistent-token.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/core/scripts/s2-create-role-hierarchy-entry.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/core/scripts/s2-quickstart.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/core/sessionFixation.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/core/switchUser.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/core/tutorials.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/core/tutorials/usingControllerAnnotations.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/core/urlProperties.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/core/userDetailsService.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/core/voters.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/core/whatsNew.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/ldap/configuration.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/ldap/introduction.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/ldap/usage.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/oauth2/configuration.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/oauth2/extensions.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/oauth2/installation.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/oauth2/introduction.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/rest/authentication.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/rest/configuration.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/rest/cors.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/rest/debugging.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/rest/events.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/rest/faq.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/rest/introduction.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/rest/oauth.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/rest/tokenGeneration.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/rest/tokenRendering.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/rest/tokenStorage.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/rest/tokenValidation.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/rest/whatsNew14.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/rest/whatsNew15.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/rest/whatsNew20.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/rest/whatsNew50.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/rest/whatsNew60.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/springSecurityAcl.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/springSecurityCas.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/springSecurityCore.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/springSecurityLdap.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/springSecurityOauth2.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/springSecurityRest.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/springSecurityUi.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/ui/acls.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/ui/acls/aclClass.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/ui/acls/aclEntry.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/ui/acls/aclObjectIdentity.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/ui/acls/aclSid.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/ui/configUI.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/ui/customization.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/ui/forgotPassword.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/ui/introduction.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/ui/persistentCookie.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/ui/requestmap.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/ui/role.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/ui/scripts.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/ui/scripts/s2ui-create-challenge-questions.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/ui/scripts/s2ui-override.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/ui/user.adoc
 create mode 100644 grails-doc/src/en/guide/security/securityPlugins/springSecurity/ui/userRegistration.adoc
 create mode 100644 grails-domain-class/src/test/groovy/org/grails/plugins/domain/DomainClassGrailsPluginSpec.groovy
 create mode 100644 grails-events/plugin/src/test/groovy/org/grails/plugins/events/EventBusGrailsPluginSpec.groovy
 create mode 100644 grails-fields/src/test/groovy/grails/plugin/formfields/FieldsGrailsPluginSpec.groovy
 create mode 100644 grails-forge/gradle/groovy-version-pin.gradle
 create mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/build/gradle/MavenLocalRepository.java
 create mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/database/GrailsDataHibernate5.java
 create mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/database/GrailsDataHibernate7.java
 create mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/database/GrailsDataHibernateValidator.java
 create mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/database/GrailsDataMongoDB.java
 delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/database/HibernateGorm.java
 delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/database/MongoGorm.java
 delete mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/grails/GrailsConsole.java
 create mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/security/GrailsSpringSecurity.java
 create mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/security/GrailsSpringSecurityUi.java
 create mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/security/PrimarySecurityFeature.java
 create mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/security/SecurityFeature.java
 create mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/security/SpringBootStarterSecurity.java
 create mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/security/template/role.rocker.raw
 create mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/security/template/securityApplicationGroovy.rocker.raw
 create mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/security/template/securityConfig.rocker.raw
 create mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/security/template/user.rocker.raw
 create mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/security/template/userClassic.rocker.raw
 create mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/security/template/userClassicService.rocker.raw
 create mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/security/template/userClassicSpec.rocker.raw
 create mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/security/template/userController.rocker.raw
 create mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/security/template/userRole.rocker.raw
 create mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/security/template/userService.rocker.raw
 create mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/feature/security/template/userSpec.rocker.raw
 create mode 100644 grails-forge/grails-forge-core/src/main/java/org/grails/forge/options/GormImplTypeConverter.java
 create mode 100644 grails-forge/grails-forge-core/src/main/resources/assets/javascripts/theme.js
 create mode 100644 grails-forge/grails-forge-core/src/main/resources/i18n/messages_zh_TW.properties
 create mode 100644 grails-forge/grails-forge-core/src/test/groovy/org/grails/forge/build/gradle/GradleRepositorySpec.groovy
 create mode 100644 grails-forge/grails-forge-core/src/test/groovy/org/grails/forge/feature/database/GrailsDataHibernate5Spec.groovy
 create mode 100644 grails-forge/grails-forge-core/src/test/groovy/org/grails/forge/feature/database/GrailsDataHibernate7Spec.groovy
 create mode 100644 grails-forge/grails-forge-core/src/test/groovy/org/grails/forge/feature/database/GrailsDataMongoDBSpec.groovy
 delete mode 100644 grails-forge/grails-forge-core/src/test/groovy/org/grails/forge/feature/database/HibernateGormSpec.groovy
 delete mode 100644 grails-forge/grails-forge-core/src/test/groovy/org/grails/forge/feature/database/MongoGormSpec.groovy
 delete mode 100644 grails-forge/grails-forge-core/src/test/groovy/org/grails/forge/feature/grails/GrailsConsoleSpec.groovy
 create mode 100644 grails-forge/grails-forge-core/src/test/groovy/org/grails/forge/feature/security/GrailsSpringSecuritySpec.groovy
 create mode 100644 grails-forge/grails-forge-core/src/test/groovy/org/grails/forge/feature/security/GrailsSpringSecurityUiSpec.groovy
 create mode 100644 grails-forge/grails-forge-core/src/test/groovy/org/grails/forge/feature/security/SpringBootStarterSecuritySpec.groovy
 create mode 100644 grails-forge/grails-forge-core/src/test/groovy/org/grails/forge/options/GormImplSpec.groovy
 create mode 100644 grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/commands/CliArtifactExtension.groovy
 create mode 100644 grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/commands/CliPublishingSupport.groovy
 create mode 100644 grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/commands/GrailsCliArtifactGradlePlugin.groovy
 create mode 100644 grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/commands/GrailsCliGradlePlugin.groovy
 create mode 100644 grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/commands/GrailsCliLibraryGradlePlugin.groovy
 create mode 100644 grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/util/ClasspathUtils.groovy
 create mode 100644 grails-gradle/plugins/src/test/groovy/org/grails/gradle/plugin/commands/CliAutoDiscoverySpec.groovy
 create mode 100644 grails-gradle/plugins/src/test/groovy/org/grails/gradle/plugin/commands/CliCompanionPublishingSpec.groovy
 create mode 100644 grails-gradle/plugins/src/test/groovy/org/grails/gradle/plugin/core/BomCliMultiprojectRaceFunctionalSpec.groovy
 create mode 100644 grails-gradle/plugins/src/test/groovy/org/grails/gradle/plugin/profiles/tasks/ProfileCompilerTaskSpec.groovy
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/bom-cli-multiproject-race/consumer/build.gradle
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/bom-cli-multiproject-race/maven-repo/org/apache/grails/race-bom/1.0-race/race-bom-1.0-race.pom
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/bom-cli-multiproject-race/producer/build.gradle
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/bom-cli-multiproject-race/settings.gradle
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/cli-companion-autodiscovery/app/build.gradle
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/cli-companion-autodiscovery/gradle.properties
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/cli-companion-autodiscovery/my-plugin/build.gradle
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/cli-companion-autodiscovery/my-plugin/src/cli/java/com/example/HelloWorldCommand.java
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/cli-companion-autodiscovery/my-plugin/src/cli/resources/META-INF/grails-cli.factories
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/cli-companion-autodiscovery/renamed-plugin/build.gradle
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/cli-companion-autodiscovery/renamed-plugin/src/cli/java/com/acme/AcmeCommand.java
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/cli-companion-autodiscovery/settings.gradle
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/cli-companion-publishing/console-lib/build.gradle
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/cli-companion-publishing/custom-owner/build.gradle
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/cli-companion-publishing/gradle.properties
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/cli-companion-publishing/owner/build.gradle
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/cli-companion-publishing/plugin-a/build.gradle
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/cli-companion-publishing/plugin-b/build.gradle
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/cli-companion-publishing/resolver/build.gradle
 create mode 100644 grails-gradle/plugins/src/test/resources/test-projects/cli-companion-publishing/settings.gradle
 create mode 100644 grails-gsp/grails-layout/src/test/groovy/org/apache/grails/web/layout/LayoutGrailsPluginSpec.groovy
 create mode 100644 grails-gsp/grails-sitemesh3/src/main/groovy/org/grails/plugins/sitemesh3/GrailsSiteMeshViewResolverBeanPostProcessor.groovy
 create mode 100644 grails-gsp/grails-sitemesh3/src/main/groovy/org/grails/plugins/sitemesh3/Sitemesh3AutoConfiguration.groovy
 create mode 100644 grails-gsp/grails-sitemesh3/src/main/groovy/org/grails/plugins/sitemesh3/Sitemesh3EnvironmentPostProcessor.groovy
 create mode 100644 grails-gsp/grails-sitemesh3/src/main/groovy/org/grails/plugins/sitemesh3/Sitemesh3ViewResolverDefinitionPostProcessor.groovy
 delete mode 100644 grails-gsp/grails-sitemesh3/src/main/java/org/grails/plugins/sitemesh3/GrailsSiteMeshViewResolverBeanPostProcessor.java
 delete mode 100644 grails-gsp/grails-sitemesh3/src/main/java/org/grails/plugins/sitemesh3/Sitemesh3AutoConfiguration.java
 create mode 100644 grails-gsp/grails-sitemesh3/src/main/resources/META-INF/spring.factories
 create mode 100644 grails-gsp/grails-sitemesh3/src/test/groovy/org/grails/plugins/sitemesh3/Sitemesh3EnvironmentPostProcessorSpec.groovy
 create mode 100644 grails-gsp/grails-sitemesh3/src/test/groovy/org/grails/plugins/sitemesh3/Sitemesh3ViewResolverDefinitionPostProcessorSpec.groovy
 create mode 100644 grails-gsp/plugin/src/test/groovy/org/grails/web/taglib/LocaleSelectAvailableSpec.groovy
 create mode 100644 grails-gsp/plugin/src/test/groovy/org/grails/web/taglib/LocaleSelectConfiguredDefaultSpec.groovy
 create mode 100644 grails-gsp/plugin/src/test/groovy/org/grails/web/taglib/LocaleSelectPinnedVariantSpec.groovy
 create mode 100644 grails-gsp/plugin/src/test/groovy/org/grails/web/taglib/LocaleSelectRenderingSpec.groovy
 create mode 100644 grails-gsp/plugin/src/test/groovy/org/grails/web/taglib/NamespaceInferenceTagLibSpec.groovy
 create mode 100644 grails-gsp/plugin/src/test/groovy/org/grails/web/taglib/nsinference/admin/AdminNamespaceControllers.groovy
 create mode 100644 grails-gsp/plugin/src/test/groovy/org/grails/web/taglib/nsinference/root/RootNamespaceControllers.groovy
 create mode 100644 grails-gsp/plugin/src/test/groovy/org/grails/web/taglib/nsinference/sales/SalesNamespaceControllers.groovy
 create mode 100644 grails-i18n/src/main/groovy/org/grails/plugins/i18n/AvailableLocaleResolver.java
 create mode 100644 grails-i18n/src/main/groovy/org/grails/plugins/i18n/GrailsLocaleResolverAutoConfiguration.java
 create mode 100644 grails-i18n/src/test/groovy/org/grails/plugins/i18n/AvailableLocaleResolverSpec.groovy
 create mode 100644 grails-i18n/src/test/groovy/org/grails/plugins/i18n/GrailsLocaleResolverAutoConfigurationSpec.groovy
 create mode 100644 grails-i18n/src/test/groovy/org/grails/plugins/i18n/I18nAutoConfigurationSpec.groovy
 create mode 100644 grails-i18n/src/test/groovy/org/grails/plugins/i18n/I18nGrailsPluginSpec.groovy
 create mode 100644 grails-i18n/src/test/resources/bogus-plugin_zz.properties
 create mode 100644 grails-i18n/src/test/resources/messages.properties
 create mode 100644 grails-i18n/src/test/resources/messages_.properties
 create mode 100644 grails-i18n/src/test/resources/messages_cs.properties
 create mode 100644 grails-i18n/src/test/resources/messages_es.properties
 create mode 100644 grails-i18n/src/test/resources/messages_fr.properties
 create mode 100644 grails-i18n/src/test/resources/messages_pt_BR.properties
 create mode 100644 grails-i18n/src/test/resources/report_en_prod.properties
 create mode 100644 grails-i18n/src/test/resources/spring-security-core_zu.properties
 create mode 100644 grails-i18n/src/test/resources/standalone.properties
 create mode 100644 grails-interceptors/src/main/groovy/org/grails/plugins/web/interceptors/InterceptorBeanDefinitionsPostProcessor.groovy
 create mode 100644 grails-interceptors/src/test/groovy/org/grails/plugins/web/interceptors/InterceptorsGrailsPluginSpec.groovy
 create mode 100644 grails-mail/build.gradle
 create mode 100644 grails-mail/src/main/groovy/grails/plugins/mail/GrailsMailException.groovy
 create mode 100644 grails-mail/src/main/groovy/grails/plugins/mail/MailAutoConfiguration.groovy
 create mode 100644 grails-mail/src/main/groovy/grails/plugins/mail/MailConfigurationProperties.groovy
 create mode 100644 grails-mail/src/main/groovy/grails/plugins/mail/MailGrailsPlugin.groovy
 create mode 100644 grails-mail/src/main/groovy/grails/plugins/mail/MailMessageBuilder.groovy
 create mode 100644 grails-mail/src/main/groovy/grails/plugins/mail/MailMessageBuilderFactory.groovy
 create mode 100644 grails-mail/src/main/groovy/grails/plugins/mail/MailMessageContentRender.groovy
 create mode 100644 grails-mail/src/main/groovy/grails/plugins/mail/MailMessageContentRenderer.groovy
 create mode 100644 grails-mail/src/main/groovy/grails/plugins/mail/MailService.groovy
 create mode 100644 grails-mail/src/main/groovy/grails/plugins/mail/PlainTextMailTagLib.groovy
 create mode 100644 grails-mail/src/main/groovy/grails/plugins/mail/SendMail.groovy
 create mode 100644 grails-mail/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
 create mode 100644 grails-mail/src/test/groovy/grails/plugins/mail/MailMessageBuilderSpec.groovy
 create mode 100644 grails-profiles/base/skeleton/grails-app/i18n/messages_zh_TW.properties
 create mode 100644 grails-profiles/web/skeleton/grails-app/assets/javascripts/theme.js
 create mode 100644 grails-redis/build.gradle
 create mode 100644 grails-redis/grails-app/conf/application.yml
 create mode 100644 grails-redis/grails-app/conf/logback-spring.xml
 create mode 100644 grails-redis/grails-app/init/redis/Application.groovy
 create mode 100644 grails-redis/grails-app/taglib/grails/plugins/redis/RedisTagLib.groovy
 create mode 100644 grails-redis/src/integration-test/groovy/grails/plugins/redis/RedisServiceSpec.groovy
 create mode 100644 grails-redis/src/integration-test/groovy/grails/plugins/redis/RedisTagLibSpec.groovy
 create mode 100644 grails-redis/src/main/groovy/grails/plugins/redis/Memoize.groovy
 create mode 100644 grails-redis/src/main/groovy/grails/plugins/redis/MemoizeDomainList.groovy
 create mode 100644 grails-redis/src/main/groovy/grails/plugins/redis/MemoizeDomainObject.groovy
 create mode 100644 grails-redis/src/main/groovy/grails/plugins/redis/MemoizeHash.groovy
 create mode 100644 grails-redis/src/main/groovy/grails/plugins/redis/MemoizeHashField.groovy
 create mode 100644 grails-redis/src/main/groovy/grails/plugins/redis/MemoizeList.groovy
 create mode 100644 grails-redis/src/main/groovy/grails/plugins/redis/MemoizeObject.groovy
 create mode 100644 grails-redis/src/main/groovy/grails/plugins/redis/MemoizeScore.groovy
 create mode 100644 grails-redis/src/main/groovy/grails/plugins/redis/RedisBeanDefinitionsPostProcessor.groovy
 create mode 100644 grails-redis/src/main/groovy/grails/plugins/redis/RedisService.groovy
 create mode 100644 grails-redis/src/main/groovy/grails/plugins/redis/ast/AbstractMemoizeASTTransformation.groovy
 create mode 100644 grails-redis/src/main/groovy/grails/plugins/redis/ast/MemoizeASTTransformation.groovy
 create mode 100644 grails-redis/src/main/groovy/grails/plugins/redis/ast/MemoizeDomainListASTTransformation.groovy
 create mode 100644 grails-redis/src/main/groovy/grails/plugins/redis/ast/MemoizeDomainObjectASTTransformation.groovy
 create mode 100644 grails-redis/src/main/groovy/grails/plugins/redis/ast/MemoizeHashASTTransformation.groovy
 create mode 100644 grails-redis/src/main/groovy/grails/plugins/redis/ast/MemoizeHashFieldASTTransformation.groovy
 create mode 100644 grails-redis/src/main/groovy/grails/plugins/redis/ast/MemoizeListASTTransformation.groovy
 create mode 100644 grails-redis/src/main/groovy/grails/plugins/redis/ast/MemoizeObjectASTTransformation.groovy
 create mode 100644 grails-redis/src/main/groovy/grails/plugins/redis/ast/MemoizeScoreASTTransformation.groovy
 create mode 100644 grails-redis/src/main/groovy/grails/plugins/redis/ast/RedisTransformOrder.groovy
 create mode 100644 grails-redis/src/main/groovy/grails/plugins/redis/util/RedisConfigurationUtil.groovy
 create mode 100644 grails-redis/src/main/groovy/redis/RedisGrailsPlugin.groovy
 create mode 100644 grails-redis/src/test/groovy/grails/plugins/redis/RedisBeanDefinitionsPostProcessorSpec.groovy
 create mode 100644 grails-rest-transforms/src/test/groovy/org/grails/plugins/web/rest/plugin/RestResponderGrailsPluginSpec.groovy
 delete mode 100644 grails-scaffolding/grails-app/commands/scaffolding/CreateScaffoldControllerCommand.groovy
 delete mode 100644 grails-scaffolding/grails-app/commands/scaffolding/CreateScaffoldServiceCommand.groovy
 delete mode 100644 grails-scaffolding/grails-app/commands/scaffolding/GenerateAllCommand.groovy
 delete mode 100644 grails-scaffolding/grails-app/commands/scaffolding/GenerateAsyncControllerCommand.groovy
 delete mode 100644 grails-scaffolding/grails-app/commands/scaffolding/GenerateControllerCommand.groovy
 delete mode 100644 grails-scaffolding/grails-app/commands/scaffolding/GenerateScaffoldAllCommand.groovy
 delete mode 100644 grails-scaffolding/grails-app/commands/scaffolding/GenerateServiceCommand.groovy
 delete mode 100644 grails-scaffolding/grails-app/commands/scaffolding/GenerateViewsCommand.groovy
 delete mode 100644 grails-scaffolding/grails-app/commands/scaffolding/InstallTemplatesCommand.groovy
 create mode 100644 grails-scaffolding/src/cli/groovy/org/apache/grails/scaffolding/cli/CommandLineHelper.groovy
 create mode 100644 grails-scaffolding/src/cli/groovy/org/apache/grails/scaffolding/cli/CreateScaffoldControllerCommand.groovy
 create mode 100644 grails-scaffolding/src/cli/groovy/org/apache/grails/scaffolding/cli/CreateScaffoldServiceCommand.groovy
 create mode 100644 grails-scaffolding/src/cli/groovy/org/apache/grails/scaffolding/cli/GenerateAllCommand.groovy
 create mode 100644 grails-scaffolding/src/cli/groovy/org/apache/grails/scaffolding/cli/GenerateAsyncControllerCommand.groovy
 create mode 100644 grails-scaffolding/src/cli/groovy/org/apache/grails/scaffolding/cli/GenerateControllerCommand.groovy
 create mode 100644 grails-scaffolding/src/cli/groovy/org/apache/grails/scaffolding/cli/GenerateScaffoldAllCommand.groovy
 create mode 100644 grails-scaffolding/src/cli/groovy/org/apache/grails/scaffolding/cli/GenerateServiceCommand.groovy
 create mode 100644 grails-scaffolding/src/cli/groovy/org/apache/grails/scaffolding/cli/GenerateViewsCommand.groovy
 create mode 100644 grails-scaffolding/src/cli/groovy/org/apache/grails/scaffolding/cli/InstallTemplatesCommand.groovy
 create mode 100644 grails-scaffolding/src/cli/groovy/org/apache/grails/scaffolding/cli/SkipBootstrap.groovy
 delete mode 100644 grails-scaffolding/src/main/groovy/grails/plugin/scaffolding/CommandLineHelper.groovy
 create mode 100644 grails-scaffolding/src/main/groovy/grails/plugin/scaffolding/ScaffoldingViewResolverDefinitionPostProcessor.groovy
 delete mode 100644 grails-scaffolding/src/main/groovy/grails/plugin/scaffolding/SkipBootstrap.groovy
 create mode 100644 grails-scaffolding/src/test/groovy/grails/plugin/scaffolding/ScaffoldingViewResolverDefinitionPostProcessorSpec.groovy
 create mode 100644 grails-services/src/main/groovy/org/grails/plugins/services/ServiceBeanDefinitionsPostProcessor.groovy
 create mode 100644 grails-services/src/test/groovy/org/grails/plugins/services/ServicesGrailsPluginSpec.groovy
 create mode 100644 grails-shell-cli/src/main/groovy/org/grails/cli/profile/GrailsRepositoryOverrides.groovy
 create mode 100644 grails-shell-cli/src/test/groovy/org/grails/cli/profile/GrailsRepositoryOverridesSpec.groovy
 create mode 100644 grails-spring-security/.gitignore
 create mode 100644 grails-spring-security/acl/plugin/build.gradle
 create mode 100644 grails-spring-security/acl/plugin/grails-app/conf/DefaultAclSecurityConfig.groovy
 create mode 100644 grails-spring-security/acl/plugin/grails-app/conf/application.yml
 create mode 100644 grails-spring-security/acl/plugin/grails-app/domain/grails/plugin/springsecurity/acl/AclClass.groovy
 create mode 100644 grails-spring-security/acl/plugin/grails-app/domain/grails/plugin/springsecurity/acl/AclEntry.groovy
 create mode 100644 grails-spring-security/acl/plugin/grails-app/domain/grails/plugin/springsecurity/acl/AclObjectIdentity.groovy
 create mode 100644 grails-spring-security/acl/plugin/grails-app/domain/grails/plugin/springsecurity/acl/AclSid.groovy
 create mode 100644 grails-spring-security/acl/plugin/grails-app/services/grails/plugin/springsecurity/acl/AclClassGormService.groovy
 create mode 100644 grails-spring-security/acl/plugin/grails-app/services/grails/plugin/springsecurity/acl/AclEntryGormService.groovy
 create mode 100644 grails-spring-security/acl/plugin/grails-app/services/grails/plugin/springsecurity/acl/AclObjectIdentityGormService.groovy
 create mode 100644 grails-spring-security/acl/plugin/grails-app/services/grails/plugin/springsecurity/acl/AclService.groovy
 create mode 100644 grails-spring-security/acl/plugin/grails-app/services/grails/plugin/springsecurity/acl/AclSidGormService.groovy
 create mode 100644 grails-spring-security/acl/plugin/grails-app/services/grails/plugin/springsecurity/acl/AclUtilService.groovy
 create mode 100644 grails-spring-security/acl/plugin/grails-app/taglib/grails/plugin/springsecurity/acl/SecurityAclTagLib.groovy
 create mode 100644 grails-spring-security/acl/plugin/src/main/groovy/grails/plugin/springsecurity/acl/AbstractAclObjectIdentity.groovy
 create mode 100644 grails-spring-security/acl/plugin/src/main/groovy/grails/plugin/springsecurity/acl/AclAutoProxyCreator.groovy
 create mode 100644 grails-spring-security/acl/plugin/src/main/groovy/grails/plugin/springsecurity/acl/SpringSecurityAclGrailsPlugin.groovy
 create mode 100644 grails-spring-security/acl/plugin/src/main/groovy/grails/plugin/springsecurity/acl/WarnErros.groovy
 create mode 100644 grails-spring-security/acl/plugin/src/main/groovy/grails/plugin/springsecurity/acl/access/GroovyAwareAclVoter.groovy
 create mode 100644 grails-spring-security/acl/plugin/src/main/groovy/grails/plugin/springsecurity/acl/access/method/ProxyAwareDelegatingMethodSecurityMetadataSource.groovy
 create mode 100644 grails-spring-security/acl/plugin/src/main/groovy/grails/plugin/springsecurity/acl/access/method/SecuredAnnotationSecurityMetadataSource.groovy
 create mode 100644 grails-spring-security/acl/plugin/src/main/groovy/grails/plugin/springsecurity/acl/access/method/ServiceStaticMethodSecurityMetadataSource.groovy
 create mode 100644 grails-spring-security/acl/plugin/src/main/groovy/grails/plugin/springsecurity/acl/annotation/AclVoter.java
 create mode 100644 grails-spring-security/acl/plugin/src/main/groovy/grails/plugin/springsecurity/acl/annotation/AclVoters.java
 create mode 100644 grails-spring-security/acl/plugin/src/main/groovy/grails/plugin/springsecurity/acl/cache/SpringAclCacheFactoryBean.groovy
 create mode 100644 grails-spring-security/acl/plugin/src/main/groovy/grails/plugin/springsecurity/acl/domain/NullAclAuditLogger.groovy
 create mode 100644 grails-spring-security/acl/plugin/src/main/groovy/grails/plugin/springsecurity/acl/jdbc/GormAclLookupStrategy.groovy
 create mode 100644 grails-spring-security/acl/plugin/src/main/groovy/grails/plugin/springsecurity/acl/model/GormObjectIdentityRetrievalStrategy.groovy
 create mode 100644 grails-spring-security/acl/plugin/src/main/groovy/grails/plugin/springsecurity/acl/model/ObjectIdentityRetrievalStrategyAndGenerator.groovy
 create mode 100644 grails-spring-security/acl/plugin/src/main/groovy/grails/plugin/springsecurity/acl/model/StubAclParent.groovy
 create mode 100644 grails-spring-security/acl/plugin/src/main/groovy/grails/plugin/springsecurity/acl/util/ProxyUtils.groovy
 create mode 100644 grails-spring-security/acl/plugin/src/main/scripts/s2-create-acl-domains.groovy
 create mode 100644 grails-spring-security/acl/plugin/src/main/templates/_AclClass.groovy
 create mode 100644 grails-spring-security/acl/plugin/src/main/templates/_AclEntry.groovy
 create mode 100644 grails-spring-security/acl/plugin/src/main/templates/_AclObjectIdentity.groovy
 create mode 100644 grails-spring-security/acl/plugin/src/main/templates/_AclSid.groovy
 create mode 100644 grails-spring-security/acl/plugin/src/test/groovy/grails/plugin/springsecurity/acl/access/method/SecuredAnnotationSecurityMetadataSourceSpec.groovy
 create mode 100644 grails-spring-security/cas/plugin/build.gradle
 create mode 100644 grails-spring-security/cas/plugin/grails-app/conf/DefaultCasSecurityConfig.groovy
 create mode 100644 grails-spring-security/cas/plugin/grails-app/conf/application.yml
 create mode 100644 grails-spring-security/cas/plugin/grails-app/conf/logback.xml
 create mode 100644 grails-spring-security/cas/plugin/src/main/groovy/grails/plugin/springsecurity/cas/NullProxyGrantingTicketStorage.groovy
 create mode 100644 grails-spring-security/cas/plugin/src/main/groovy/grails/plugin/springsecurity/cas/SpringSecurityCasGrailsPlugin.groovy
 create mode 100644 grails-spring-security/compat/build.gradle
 create mode 100644 grails-spring-security/compat/src/main/groovy/org/springframework/security/access/LegacyAccessCompatibility.groovy
 create mode 100644 grails-spring-security/compat/src/main/groovy/org/springframework/security/access/annotation/SecuredAnnotationSecurityMetadataSource.groovy
 create mode 100644 grails-spring-security/compat/src/main/groovy/org/springframework/security/access/expression/method/ExpressionBasedAnnotationAttributeFactory.groovy
 create mode 100644 grails-spring-security/compat/src/main/groovy/org/springframework/security/access/expression/method/ExpressionBasedPostInvocationAdvice.groovy
 create mode 100644 grails-spring-security/compat/src/main/groovy/org/springframework/security/access/expression/method/ExpressionBasedPreInvocationAdvice.groovy
 create mode 100644 grails-spring-security/compat/src/main/groovy/org/springframework/security/access/intercept/AbstractSecurityInterceptor.groovy
 create mode 100644 grails-spring-security/compat/src/main/groovy/org/springframework/security/access/intercept/AfterInvocationManager.groovy
 create mode 100644 grails-spring-security/compat/src/main/groovy/org/springframework/security/access/intercept/AfterInvocationProviderManager.groovy
 create mode 100644 grails-spring-security/compat/src/main/groovy/org/springframework/security/access/intercept/NullRunAsManager.groovy
 create mode 100644 grails-spring-security/compat/src/main/groovy/org/springframework/security/access/intercept/RunAsImplAuthenticationProvider.groovy
 create mode 100644 grails-spring-security/compat/src/main/groovy/org/springframework/security/access/intercept/RunAsManager.groovy
 create mode 100644 grails-spring-security/compat/src/main/groovy/org/springframework/security/access/intercept/RunAsManagerImpl.groovy
 create mode 100644 grails-spring-security/compat/src/main/groovy/org/springframework/security/access/intercept/aopalliance/MethodSecurityInterceptor.groovy
 create mode 100644 grails-spring-security/compat/src/main/groovy/org/springframework/security/access/method/AbstractFallbackMethodSecurityMetadataSource.groovy
 create mode 100644 grails-spring-security/compat/src/main/groovy/org/springframework/security/access/method/AbstractMethodSecurityMetadataSource.groovy
 create mode 100644 grails-spring-security/compat/src/main/groovy/org/springframework/security/access/method/MethodSecurityMetadataSource.groovy
 create mode 100644 grails-spring-security/compat/src/main/groovy/org/springframework/security/access/prepost/ExpressionBasedAnnotationConfigAttribute.groovy
 create mode 100644 grails-spring-security/compat/src/main/groovy/org/springframework/security/access/prepost/PostInvocationAdviceProvider.groovy
 create mode 100644 grails-spring-security/compat/src/main/groovy/org/springframework/security/access/prepost/PreInvocationAuthorizationAdviceVoter.groovy
 create mode 100644 grails-spring-security/compat/src/main/groovy/org/springframework/security/access/prepost/PrePostAnnotationSecurityMetadataSource.groovy
 create mode 100644 grails-spring-security/compat/src/main/groovy/org/springframework/security/access/vote/AbstractAccessDecisionManager.groovy
 create mode 100644 grails-spring-security/compat/src/main/groovy/org/springframework/security/access/vote/AffirmativeBased.groovy
 create mode 100644 grails-spring-security/compat/src/main/groovy/org/springframework/security/access/vote/AuthenticatedVoter.groovy
 create mode 100644 grails-spring-security/compat/src/main/groovy/org/springframework/security/access/vote/RoleHierarchyVoter.groovy
 create mode 100644 grails-spring-security/compat/src/main/groovy/org/springframework/security/access/vote/RoleVoter.groovy
 create mode 100644 grails-spring-security/compat/src/main/groovy/org/springframework/security/acls/AclEntryVoter.groovy
 create mode 100644 grails-spring-security/compat/src/main/groovy/org/springframework/security/acls/afterinvocation/AclEntryAfterInvocationCollectionFilteringProvider.groovy
 create mode 100644 grails-spring-security/compat/src/main/groovy/org/springframework/security/acls/afterinvocation/AclEntryAfterInvocationProvider.groovy
 create mode 100644 grails-spring-security/compat/src/main/groovy/org/springframework/security/web/PortResolver.groovy
 create mode 100644 grails-spring-security/compat/src/main/groovy/org/springframework/security/web/PortResolverImpl.groovy
 create mode 100644 grails-spring-security/compat/src/main/groovy/org/springframework/security/web/access/DefaultWebInvocationPrivilegeEvaluator.groovy
 create mode 100644 grails-spring-security/compat/src/main/groovy/org/springframework/security/web/access/channel/ChannelDecisionManagerImpl.groovy
 create mode 100644 grails-spring-security/compat/src/main/groovy/org/springframework/security/web/access/channel/ChannelProcessingFilter.groovy
 create mode 100644 grails-spring-security/compat/src/main/groovy/org/springframework/security/web/access/channel/ChannelProcessor.groovy
 create mode 100644 grails-spring-security/compat/src/main/groovy/org/springframework/security/web/access/channel/InsecureChannelProcessor.groovy
 create mode 100644 grails-spring-security/compat/src/main/groovy/org/springframework/security/web/access/channel/RetryWithHttpEntryPoint.groovy
 create mode 100644 grails-spring-security/compat/src/main/groovy/org/springframework/security/web/access/channel/RetryWithHttpsEntryPoint.groovy
 create mode 100644 grails-spring-security/compat/src/main/groovy/org/springframework/security/web/access/channel/SecureChannelProcessor.groovy
 create mode 100644 grails-spring-security/compat/src/main/groovy/org/springframework/security/web/access/expression/DefaultWebSecurityExpressionHandler.groovy
 create mode 100644 grails-spring-security/compat/src/main/groovy/org/springframework/security/web/access/intercept/DefaultFilterInvocationSecurityMetadataSource.groovy
 create mode 100644 grails-spring-security/compat/src/main/groovy/org/springframework/security/web/access/intercept/FilterInvocationSecurityMetadataSource.groovy
 create mode 100644 grails-spring-security/compat/src/main/groovy/org/springframework/security/web/access/intercept/FilterSecurityInterceptor.groovy
 create mode 100644 grails-spring-security/compat/src/main/groovy/org/springframework/security/web/util/matcher/AntPathRequestMatcher.groovy
 create mode 100644 grails-spring-security/ldap/README.md
 create mode 100644 grails-spring-security/ldap/plugin/build.gradle
 create mode 100644 grails-spring-security/ldap/plugin/grails-app/conf/DefaultLdapSecurityConfig.groovy
 create mode 100644 grails-spring-security/ldap/plugin/grails-app/conf/application.yml
 create mode 100644 grails-spring-security/ldap/plugin/grails-app/conf/logback.xml
 create mode 100644 grails-spring-security/ldap/plugin/src/main/groovy/grails/plugin/springsecurity/ldap/SpringSecurityLdapGrailsPlugin.groovy
 create mode 100644 grails-spring-security/ldap/plugin/src/main/groovy/grails/plugin/springsecurity/ldap/core/GrailsLdapRoleMapper.groovy
 create mode 100644 grails-spring-security/ldap/plugin/src/main/groovy/grails/plugin/springsecurity/ldap/core/GrailsSimpleDirContextAuthenticationStrategy.groovy
 create mode 100644 grails-spring-security/ldap/plugin/src/main/groovy/grails/plugin/springsecurity/ldap/core/SimpleAuthenticationSource.groovy
 create mode 100644 grails-spring-security/ldap/plugin/src/main/groovy/grails/plugin/springsecurity/ldap/userdetails/DatabaseOnlyLdapAuthoritiesPopulator.groovy
 create mode 100644 grails-spring-security/ldap/plugin/src/main/groovy/grails/plugin/springsecurity/ldap/userdetails/GrailsLdapAuthoritiesPopulator.groovy
 create mode 100644 grails-spring-security/ldap/plugin/src/main/groovy/grails/plugin/springsecurity/ldap/userdetails/GrailsLdapUserDetailsManager.groovy
 create mode 100644 grails-spring-security/ldap/plugin/src/test/groovy/grails/plugin/springsecurity/ldap/userdetails/GrailsLdapAuthoritiesPopulatorSpec.groovy
 create mode 100644 grails-spring-security/oauth2/plugin/build.gradle
 create mode 100644 grails-spring-security/oauth2/plugin/grails-app/conf/DefaultSpringSecurityOAuth2Config.groovy
 create mode 100644 grails-spring-security/oauth2/plugin/grails-app/conf/application.yml
 create mode 100644 grails-spring-security/oauth2/plugin/grails-app/conf/logback.xml
 create mode 100644 grails-spring-security/oauth2/plugin/grails-app/controllers/grails/plugin/springsecurity/oauth2/SpringSecurityOAuth2Controller.groovy
 create mode 100644 grails-spring-security/oauth2/plugin/grails-app/controllers/grails/plugin/springsecurity/oauth2/SpringSecurityOauth2UrlMappings.groovy
 create mode 100644 grails-spring-security/oauth2/plugin/grails-app/i18n/messages.properties
 create mode 100644 grails-spring-security/oauth2/plugin/grails-app/services/grails/plugin/springsecurity/oauth2/SpringSecurityOauth2BaseService.groovy
 create mode 100644 grails-spring-security/oauth2/plugin/grails-app/taglib/grails/plugin/springsecurity/oauth2/OAuth2TagLib.groovy
 create mode 100644 grails-spring-security/oauth2/plugin/grails-app/views/springSecurityOAuth2/ask.gsp
 create mode 100644 grails-spring-security/oauth2/plugin/src/cli/groovy/org/apache/grails/security/oauth2/cli/CommandLineHelper.groovy
 create mode 100644 grails-spring-security/oauth2/plugin/src/cli/groovy/org/apache/grails/security/oauth2/cli/InitOAuth2Command.groovy
 create mode 100644 grails-spring-security/oauth2/plugin/src/integration-test/groovy/grails/plugin/springsecurity/oauth2/OAuth2TagLibSpec.groovy
 create mode 100644 grails-spring-security/oauth2/plugin/src/integration-test/groovy/grails/plugin/springsecurity/oauth2/SpringSecurityOAuth2ControllerSpec.groovy
 create mode 100644 grails-spring-security/oauth2/plugin/src/integration-test/groovy/grails/plugin/springsecurity/oauth2/TestOAuth2SpringToken.groovy
 create mode 100644 grails-spring-security/oauth2/plugin/src/main/groovy/grails/plugin/springsecurity/oauth2/SpringSecurityOauth2GrailsPlugin.groovy
 create mode 100644 grails-spring-security/oauth2/plugin/src/main/groovy/grails/plugin/springsecurity/oauth2/exception/OAuth2Exception.java
 create mode 100644 grails-spring-security/oauth2/plugin/src/main/groovy/grails/plugin/springsecurity/oauth2/service/OAuth2AbstractProviderService.groovy
 create mode 100644 grails-spring-security/oauth2/plugin/src/main/groovy/grails/plugin/springsecurity/oauth2/service/OAuth2ProviderService.groovy
 create mode 100644 grails-spring-security/oauth2/plugin/src/main/groovy/grails/plugin/springsecurity/oauth2/token/OAuth2SpringToken.groovy
 create mode 100644 grails-spring-security/oauth2/plugin/src/main/groovy/grails/plugin/springsecurity/oauth2/util/OAuth2ProviderConfiguration.groovy
 create mode 100644 grails-spring-security/oauth2/plugin/src/main/scripts/_install.groovy
 create mode 100644 grails-spring-security/oauth2/plugin/src/main/scripts/init-oauth2.groovy
 create mode 100644 grails-spring-security/oauth2/plugin/src/main/templates/OAuthID.groovy.template
 create mode 100644 grails-spring-security/plugin/build.gradle
 create mode 100644 grails-spring-security/plugin/grails-app/conf/DefaultSecurityConfig.groovy
 create mode 100644 grails-spring-security/plugin/grails-app/controllers/grails/plugin/springsecurity/LoginController.groovy
 create mode 100644 grails-spring-security/plugin/grails-app/controllers/grails/plugin/springsecurity/LogoutController.groovy
 create mode 100644 grails-spring-security/plugin/grails-app/i18n/spring-security-core.properties
 create mode 100644 grails-spring-security/plugin/grails-app/i18n/spring-security-core_cs.properties
 create mode 100644 grails-spring-security/plugin/grails-app/i18n/spring-security-core_da.properties
 create mode 100644 grails-spring-security/plugin/grails-app/i18n/spring-security-core_de.properties
 create mode 100644 grails-spring-security/plugin/grails-app/i18n/spring-security-core_es.properties
 create mode 100644 grails-spring-security/plugin/grails-app/i18n/spring-security-core_fr.properties
 create mode 100644 grails-spring-security/plugin/grails-app/i18n/spring-security-core_it.properties
 create mode 100644 grails-spring-security/plugin/grails-app/i18n/spring-security-core_ja.properties
 create mode 100644 grails-spring-security/plugin/grails-app/i18n/spring-security-core_nb.properties
 create mode 100644 grails-spring-security/plugin/grails-app/i18n/spring-security-core_nl.properties
 create mode 100644 grails-spring-security/plugin/grails-app/i18n/spring-security-core_pl.properties
 create mode 100644 grails-spring-security/plugin/grails-app/i18n/spring-security-core_pt_BR.properties
 create mode 100644 grails-spring-security/plugin/grails-app/i18n/spring-security-core_pt_PT.properties
 create mode 100644 grails-spring-security/plugin/grails-app/i18n/spring-security-core_ru.properties
 create mode 100644 grails-spring-security/plugin/grails-app/i18n/spring-security-core_sk.properties
 create mode 100644 grails-spring-security/plugin/grails-app/i18n/spring-security-core_sv.properties
 create mode 100644 grails-spring-security/plugin/grails-app/i18n/spring-security-core_th.properties
 create mode 100644 grails-spring-security/plugin/grails-app/i18n/spring-security-core_zh_CN.properties
 create mode 100644 grails-spring-security/plugin/grails-app/i18n/spring-security-core_zh_TW.properties
 create mode 100644 grails-spring-security/plugin/grails-app/services/grails/plugin/springsecurity/SpringSecurityService.groovy
 create mode 100644 grails-spring-security/plugin/grails-app/taglib/grails/plugin/springsecurity/SecurityTagLib.groovy
 create mode 100644 grails-spring-security/plugin/grails-app/views/layouts/main.gsp
 create mode 100644 grails-spring-security/plugin/grails-app/views/login/auth.gsp
 create mode 100644 grails-spring-security/plugin/grails-app/views/login/denied.gsp
 create mode 100644 grails-spring-security/plugin/src/cli/groovy/org/apache/grails/security/cli/CommandLineHelper.groovy
 create mode 100644 grails-spring-security/plugin/src/cli/groovy/org/apache/grails/security/cli/S2CreatePersistentTokenCommand.groovy
 create mode 100644 grails-spring-security/plugin/src/cli/groovy/org/apache/grails/security/cli/S2CreateRoleHierarchyEntryCommand.groovy
 create mode 100644 grails-spring-security/plugin/src/cli/groovy/org/apache/grails/security/cli/S2QuickstartCommand.groovy
 create mode 100644 grails-spring-security/plugin/src/cli/groovy/org/apache/grails/security/cli/SkipBootstrap.groovy
 create mode 100644 grails-spring-security/plugin/src/main/groovy/grails/plugin/springsecurity/Application.groovy
 create mode 100644 grails-spring-security/plugin/src/main/groovy/grails/plugin/springsecurity/BeanTypeResolver.groovy
 create mode 100644 grails-spring-security/plugin/src/main/groovy/grails/plugin/springsecurity/ControllerMixin.groovy
 create mode 100644 grails-spring-security/plugin/src/main/groovy/grails/plugin/springsecurity/InterceptedUrl.groovy
 create mode 100644 grails-spring-security/plugin/src/main/groovy/grails/plugin/springsecurity/MutableRoleHierarchy.groovy
 create mode 100644 grails-spring-security/plugin/src/main/groovy/grails/plugin/springsecurity/ReflectionUtils.groovy
 create mode 100644 grails-spring-security/plugin/src/main/groovy/grails/plugin/springsecurity/SecurityAutoConfigurationExcluder.groovy
 create mode 100644 grails-spring-security/plugin/src/main/groovy/grails/plugin/springsecurity/SecurityConfigType.groovy
 create mode 100644 grails-spring-security/plugin/src/main/groovy/grails/plugin/springsecurity/SecurityEventListener.groovy
 create mode 100644 grails-spring-security/plugin/src/main/groovy/grails/plugin/springsecurity/SecurityFilterPosition.java
 create mode 100644 grails-spring-security/plugin/src/main/groovy/grails/plugin/springsecurity/SpringSecurityBeanFactoryPostProcessor.groovy
 create mode 100644 grails-spring-security/plugin/src/main/groovy/grails/plugin/springsecurity/SpringSecurityCoreGrailsPlugin.groovy
 create mode 100644 grails-spring-security/plugin/src/main/groovy/grails/plugin/springsecurity/SpringSecurityUtils.groovy
 create mode 100644 grails-spring-security/plugin/src/main/groovy/grails/plugin/springsecurity/access/NullAfterInvocationProvider.groovy
 create mode 100644 grails-spring-security/plugin/src/main/groovy/grails/plugin/springsecurity/access/intercept/NullAfterInvocationManager.groovy
 create mode 100644 grails-spring-security/plugin/src/main/groovy/grails/plugin/springsecurity/access/vote/AuthenticatedVetoableDecisionManager.groovy
 create mode 100644 grails-spring-security/plugin/src/main/groovy/grails/plugin/springsecurity/access/vote/ClosureConfigAttribute.groovy
 create mode 100644 grails-spring-security/plugin/src/main/groovy/grails/plugin/springsecurity/access/vote/ClosureVoter.groovy
 create mode 100644 grails-spring-security/plugin/src/main/groovy/grails/plugin/springsecurity/annotation/Authorities.groovy
 create mode 100644 grails-spring-security/plugin/src/main/groovy/grails/plugin/springsecurity/annotation/AuthoritiesTransformation.groovy
 create mode 100644 grails-spring-security/plugin/src/main/groovy/grails/plugin/springsecurity/annotation/Secured.groovy
 create mode 100644 grails-spring-security/plugin/src/main/groovy/grails/plugin/springsecurity/annotation/SecuredClosureDelegate.groovy
 create mode 100644 grails-spring-security/plugin/src/main/groovy/grails/plugin/springsecurity/authentication/GrailsAnonymousAuthenticationProvider.groovy
 create mode 100644 grails-spring-security/plugin/src/main/groovy/grails/plugin/springsecurity/authentication/GrailsAnonymousAuthenticationToken.groovy
 create mode 100644 grails-spring-security/plugin/src/main/groovy/grails/plugin/springsecurity/authentication/NullAuthenticationEventPublisher.groovy
 create mode 100644 grails-spring-security/plugin/src/main/groovy/grails/plugin/springsecurity/cache/SpringUserCacheFactoryBean.groovy
 create mode 100644 grails-spring-security/plugin/src/main/groovy/grails/plugin/springsecurity/componentbased/ChainedUserDetailsService.groovy
 create mode 100644 grails-spring-security/plugin/src/main/groovy/grails/plugin/springsecurity/componentbased/ComponentBasedConfigBlender.groovy
 create mode 100644 grails-spring-security/plugin/src/main/groovy/grails/plugin/springsecurity/userdetails/DefaultPostAuthenticationChecks.groovy
 create mode 100644 grails-spring-security/plugin/src/main/groovy/grails/plugin/springsecurity/userdetails/DefaultPreAuthenticationChecks.groovy
 create mode 100644 grails-spring-security/plugin/src/main/groovy/grails/plugin/springsecurity/userdetails/GormUserDetailsService.groovy
 create mode 100644 grails-spring-security/plugin/src/main/groovy/grails/plugin/springsecurity/userdetails/GrailsUser.groovy
 create mode 100644 grails-spring-security/plugin/src/main/groovy/grails/plugin/springsecurity/userdetails/GrailsUserDetailsService.groovy
 create mode 100644 grails-spring-security/plugin/src/main/groovy/grails/plugin/springsecurity/userdetails/NoStackUsernameNotFoundException.groovy
 create mode 100644 grails-spring-security/plugin/src/main/groovy/grails/plugin/springsecurity/web/GrailsRedirectStrategy.groovy
 create mode 100644 grails-spring-security/plugin/src/main/groovy/grails/plugin/springsecurity/web/GrailsSecurityFilterChain.groovy
 create mode 100644 grails-spring-security/plugin/src/main/groovy/grails/plugin/springsecurity/web/NullFilterChainValidator.groovy
 create mode 100644 grails-spring-security/plugin/src/main/groovy/grails/plugin/springsecurity/web/SecurityRequestHolder.groovy
 create mode 100644 grails-spring-security/plugin/src/main/groovy/grails/plugin/springsecurity/web/SecurityRequestHolderFilter.groovy
 create mode 100644 grails-spring-security/plugin/src/main/groovy/grails/plugin/springsecurity/web/UpdateRequestContextHolderExceptionTranslationFilter.groovy
 create mode 100644 grails-spring-security/plugin/src/main/groovy/grails/plugin/springsecurity/web/access/AjaxAwareAccessDeniedHandler.groovy
 create mode 100644 grails-spring-security/plugin/src/main/groovy/grails/plugin/springsecurity/web/access/DefaultThrowableAnalyzer.groovy
 create mode 100644 grails-spring-security/plugin/src/main/groovy/grails/plugin/springsecurity/web/access/GrailsWebInvocationPrivilegeEvaluator.groovy
 create mode 100644 grails-spring-security/plugin/src/main/groovy/grails/plugin/springsecurity/web/access/expression/WebExpressionConfigAttribute.groovy
 create mode 100644 grails-spring-security/plugin/src/main/groovy/grails/plugin/springsecurity/web/access/expression/WebExpressionVoter.groovy
 create mode 100644 grails-spring-security/plugin/src/main/groovy/grails/plugin/springsecurity/web/access/intercept/AbstractFilterInvocationDefinition.groovy
 create mode 100644 grails-spring-security/plugin/src/main/groovy/grails/plugin/springsecurity/web/access/intercept/AnnotationFilterInvocationDefinition.groovy
 create mode 100644 grails-spring-security/plugin/src/main/groovy/grails/plugin/springsecurity/web/access/intercept/ChannelFilterInvocationSecurityMetadataSourceFactoryBean.groovy
 create mode 100644 grails-spring-security/plugin/src/main/groovy/grails/plugin/springsecurity/web/access/intercept/InterceptUrlMapFilterInvocationDefinition.groovy
 create mode 100644 grails-spring-security/plugin/src/main/groovy/grails/plugin/springsecurity/web/access/intercept/RequestmapFilterInvocationDefinition.groovy
 create mode 100644 grails-spring-security/plugin/src/main/groovy/grails/plugin/springsecurity/web/authentication/AjaxAwareAuthenticationEntryPoint.groovy
 create mode 100644 grails-spring-security/plugin/src/main/groovy/grails/plugin/springsecurity/web/authentication/AjaxAwareAuthenticationFailureHandler.groovy
 create mode 100644 grails-spring-security/plugin/src/main/groovy/grails/plugin/springsecurity/web/authentication/AjaxAwareAuthenticationSuccessHandler.groovy
 create mode 100644 grails-spring-security/plugin/src/main/groovy/grails/plugin/springsecurity/web/authentication/FilterProcessUrlRequestMatcher.groovy
 create mode 100644 grails-spring-security/plugin/src/main/groovy/grails/plugin/springsecurity/web/authentication/GrailsUsernamePasswordAuthenticationFilter.groovy
 create mode 100644 grails-spring-security/plugin/src/main/groovy/grails/plugin/springsecurity/web/authentication/NullLogoutHandlerRememberMeServices.groovy
 create mode 100644 grails-spring-security/plugin/src/main/groovy/grails/plugin/springsecurity/web/authentication/logout/MutableLogoutFilter.groovy
 create mode 100644 grails-spring-security/plugin/src/main/groovy/grails/plugin/springsecurity/web/authentication/preauth/x509/ClosureX509PrincipalExtractor.groovy
 create mode 100644 grails-spring-security/plugin/src/main/groovy/grails/plugin/springsecurity/web/authentication/preauth/x509/NullAuthenticationFailureHandler.groovy
 create mode 100644 grails-spring-security/plugin/src/main/groovy/grails/plugin/springsecurity/web/authentication/preauth/x509/NullAuthenticationSuccessHandler.groovy
 create mode 100644 grails-spring-security/plugin/src/main/groovy/grails/plugin/springsecurity/web/authentication/rememberme/GormPersistentTokenRepository.groovy
 create mode 100644 grails-spring-security/plugin/src/main/groovy/grails/plugin/springsecurity/web/authentication/switchuser/NullSwitchUserAuthorityChanger.groovy
 create mode 100644 grails-spring-security/plugin/src/main/groovy/grails/plugin/springsecurity/web/filter/DebugFilter.groovy
 create mode 100644 grails-spring-security/plugin/src/main/groovy/grails/plugin/springsecurity/web/filter/GrailsAnonymousAuthenticationFilter.groovy
 create mode 100644 grails-spring-security/plugin/src/main/groovy/grails/plugin/springsecurity/web/filter/GrailsRememberMeAuthenticationFilter.groovy
 create mode 100644 grails-spring-security/plugin/src/main/groovy/grails/plugin/springsecurity/web/filter/HttpMethodOverrideDetector.groovy
 create mode 100644 grails-spring-security/plugin/src/main/groovy/grails/plugin/springsecurity/web/filter/IpAddressFilter.groovy
 create mode 100644 grails-spring-security/plugin/src/main/resources/META-INF/spring-configuration-metadata.json
 create mode 100644 grails-spring-security/plugin/src/main/resources/META-INF/spring.factories
 create mode 100644 grails-spring-security/plugin/src/main/scripts/s2-create-persistent-token.groovy
 create mode 100644 grails-spring-security/plugin/src/main/scripts/s2-create-role-hierarchy-entry.groovy
 create mode 100644 grails-spring-security/plugin/src/main/scripts/s2-quickstart.groovy
 create mode 100644 grails-spring-security/plugin/src/main/templates/Authority.groovy.template
 create mode 100644 grails-spring-security/plugin/src/main/templates/AuthorityGroup.groovy.template
 create mode 100644 grails-spring-security/plugin/src/main/templates/AuthorityGroupAuthority.groovy.template
 create mode 100644 grails-spring-security/plugin/src/main/templates/PersistentLogin.groovy.template
 create mode 100644 grails-spring-security/plugin/src/main/templates/Person.groovy.template
 create mode 100644 grails-spring-security/plugin/src/main/templates/PersonAuthority.groovy.template
 create mode 100644 grails-spring-security/plugin/src/main/templates/PersonAuthorityGroup.groovy.template
 create mode 100644 grails-spring-security/plugin/src/main/templates/PersonPasswordEncoderListener.groovy.template
 create mode 100644 grails-spring-security/plugin/src/main/templates/PersonPasswordEncoderListenerWithSalt.groovy.template
 create mode 100644 grails-spring-security/plugin/src/main/templates/PersonWithSalt.groovy.template
 create mode 100644 grails-spring-security/plugin/src/main/templates/PersonWithoutInjection.groovy.template
 create mode 100644 grails-spring-security/plugin/src/main/templates/Requestmap.groovy.template
 create mode 100644 grails-spring-security/plugin/src/main/templates/RoleHierarchyEntry.groovy.template
 create mode 100644 grails-spring-security/plugin/src/test/groovy/grails/plugin/springsecurity/AbstractUnitSpec.groovy
 create mode 100644 grails-spring-security/plugin/src/test/groovy/grails/plugin/springsecurity/LogoutControllerSpec.groovy
 create mode 100644 grails-spring-security/plugin/src/test/groovy/grails/plugin/springsecurity/ReflectionUtilsSpec.groovy
 create mode 100644 grails-spring-security/plugin/src/test/groovy/grails/plugin/springsecurity/SecurityAutoConfigurationExcluderSpec.groovy
 create mode 100644 grails-spring-security/plugin/src/test/groovy/grails/plugin/springsecurity/SecurityEventListenerSpec.groovy
 create mode 100644 grails-spring-security/plugin/src/test/groovy/grails/plugin/springsecurity/SecurityTagLibUnitSpec.groovy
 create mode 100644 grails-spring-security/plugin/src/test/groovy/grails/plugin/springsecurity/SpringSecurityServiceSpec.groovy
 create mode 100644 grails-spring-security/plugin/src/test/groovy/grails/plugin/springsecurity/SpringSecurityUtilsSpec.groovy
 create mode 100644 grails-spring-security/plugin/src/test/groovy/grails/plugin/springsecurity/access/vote/AuthenticatedVetoableDecisionManagerSpec.groovy
 create mode 100644 grails-spring-security/plugin/src/test/groovy/grails/plugin/springsecurity/componentbased/ComponentBasedConfigBlenderSpec.groovy
 create mode 100644 grails-spring-security/plugin/src/test/groovy/grails/plugin/springsecurity/web/SecurityRequestHolderSpec.groovy
 create mode 100644 grails-spring-security/plugin/src/test/groovy/grails/plugin/springsecurity/web/access/AjaxAwareAccessDeniedHandlerSpec.groovy
 create mode 100644 grails-spring-security/plugin/src/test/groovy/grails/plugin/springsecurity/web/access/intercept/AnnotationFilterInvocationDefinitionSpec.groovy
 create mode 100644 grails-spring-security/plugin/src/test/groovy/grails/plugin/springsecurity/web/access/intercept/ChannelFilterInvocationSecurityMetadataSourceFactoryBeanSpec.groovy
 create mode 100644 grails-spring-security/plugin/src/test/groovy/grails/plugin/springsecurity/web/access/intercept/FilterSecurityInterceptorSpec.groovy
 create mode 100644 grails-spring-security/plugin/src/test/groovy/grails/plugin/springsecurity/web/access/intercept/InterceptUrlMapFilterInvocationDefinitionSpec.groovy
 create mode 100644 grails-spring-security/plugin/src/test/groovy/grails/plugin/springsecurity/web/access/intercept/RequestmapFilterInvocationDefinitionSpec.groovy
 create mode 100644 grails-spring-security/plugin/src/test/groovy/grails/plugin/springsecurity/web/authentication/AjaxAwareAuthenticationEntryPointSpec.groovy
 create mode 100644 grails-spring-security/plugin/src/test/groovy/grails/plugin/springsecurity/web/authentication/AjaxAwareAuthenticationFailureHandlerSpec.groovy
 create mode 100644 grails-spring-security/plugin/src/test/groovy/grails/plugin/springsecurity/web/authentication/AjaxAwareAuthenticationSuccessHandlerSpec.groovy
 create mode 100644 grails-spring-security/plugin/src/test/groovy/grails/plugin/springsecurity/web/authentication/SecurityRequestHolderFilterSpec.groovy
 create mode 100644 grails-spring-security/plugin/src/test/groovy/grails/plugin/springsecurity/web/authentication/logout/MutableLogoutFilterSpec.groovy
 create mode 100644 grails-spring-security/plugin/src/test/groovy/grails/plugin/springsecurity/web/filter/HttpMethodOverrideDetectorSpec.groovy
 create mode 100644 grails-spring-security/plugin/src/test/groovy/grails/plugin/springsecurity/web/filter/IpAddressFilterSpec.groovy
 create mode 100644 grails-spring-security/plugin/src/test/groovy/org/springframework/security/access/intercept/aopalliance/MethodSecurityInterceptorSpec.groovy
 create mode 100644 grails-spring-security/plugin/src/test/groovy/org/springframework/security/access/method/AbstractFallbackMethodSecurityMetadataSourceSpec.groovy
 create mode 100644 grails-spring-security/plugin/src/test/groovy/org/springframework/security/access/prepost/MethodSecurityExpressionCompatibilitySpec.groovy
 create mode 100644 grails-spring-security/plugin/src/testFixtures/groovy/grails/plugin/springsecurity/SecurityTestUtils.groovy
 create mode 100644 grails-spring-security/plugin/src/testFixtures/groovy/org/springframework/security/config/http/SecurityFiltersMapper.groovy
 create mode 100644 grails-spring-security/rest/core/build.gradle
 create mode 100644 grails-spring-security/rest/core/grails-app/conf/application.yml
 create mode 100644 grails-spring-security/rest/core/grails-app/conf/logback.groovy
 create mode 100644 grails-spring-security/rest/core/grails-app/controllers/grails/plugin/springsecurity/rest/RestOauthController.groovy
 create mode 100644 grails-spring-security/rest/core/grails-app/controllers/grails/plugin/springsecurity/rest/RestOauthUrlMappings.groovy
 create mode 100644 grails-spring-security/rest/core/grails-app/services/grails/plugin/springsecurity/rest/JwtService.groovy
 create mode 100644 grails-spring-security/rest/core/grails-app/services/grails/plugin/springsecurity/rest/RestOauthService.groovy
 create mode 100644 grails-spring-security/rest/core/src/main/groovy/grails/plugin/springsecurity/rest/RestAuthenticationFailureHandler.groovy
 create mode 100644 grails-spring-security/rest/core/src/main/groovy/grails/plugin/springsecurity/rest/RestAuthenticationFilter.groovy
 create mode 100644 grails-spring-security/rest/core/src/main/groovy/grails/plugin/springsecurity/rest/RestAuthenticationProvider.groovy
 create mode 100644 grails-spring-security/rest/core/src/main/groovy/grails/plugin/springsecurity/rest/RestAuthenticationSuccessHandler.groovy
 create mode 100644 grails-spring-security/rest/core/src/main/groovy/grails/plugin/springsecurity/rest/RestLogoutFilter.groovy
 create mode 100644 grails-spring-security/rest/core/src/main/groovy/grails/plugin/springsecurity/rest/RestSecurityEventListener.groovy
 create mode 100644 grails-spring-security/rest/core/src/main/groovy/grails/plugin/springsecurity/rest/RestTokenCreationEvent.groovy
 create mode 100644 grails-spring-security/rest/core/src/main/groovy/grails/plugin/springsecurity/rest/RestTokenValidationFilter.groovy
 create mode 100644 grails-spring-security/rest/core/src/main/groovy/grails/plugin/springsecurity/rest/SpringSecurityRestFilterRequestMatcher.groovy
 create mode 100644 grails-spring-security/rest/core/src/main/groovy/grails/plugin/springsecurity/rest/SpringSecurityRestGrailsPlugin.groovy
 create mode 100644 grails-spring-security/rest/core/src/main/groovy/grails/plugin/springsecurity/rest/authentication/DefaultRestAuthenticationEventPublisher.groovy
 create mode 100644 grails-spring-security/rest/core/src/main/groovy/grails/plugin/springsecurity/rest/authentication/NullRestAuthenticationEventPublisher.groovy
 create mode 100644 grails-spring-security/rest/core/src/main/groovy/grails/plugin/springsecurity/rest/authentication/RestAuthenticationEventPublisher.groovy
 create mode 100644 grails-spring-security/rest/core/src/main/groovy/grails/plugin/springsecurity/rest/credentials/AbstractJsonPayloadCredentialsExtractor.groovy
 create mode 100644 grails-spring-security/rest/core/src/main/groovy/grails/plugin/springsecurity/rest/credentials/CredentialsExtractor.groovy
 create mode 100644 grails-spring-security/rest/core/src/main/groovy/grails/plugin/springsecurity/rest/credentials/DefaultJsonPayloadCredentialsExtractor.groovy
 create mode 100644 grails-spring-security/rest/core/src/main/groovy/grails/plugin/springsecurity/rest/credentials/RequestParamsCredentialsExtractor.groovy
 create mode 100644 grails-spring-security/rest/core/src/main/groovy/grails/plugin/springsecurity/rest/error/CallbackErrorHandler.groovy
 create mode 100644 grails-spring-security/rest/core/src/main/groovy/grails/plugin/springsecurity/rest/error/DefaultCallbackErrorHandler.groovy
 create mode 100644 grails-spring-security/rest/core/src/main/groovy/grails/plugin/springsecurity/rest/oauth/DefaultOauthUserDetailsService.groovy
 create mode 100644 grails-spring-security/rest/core/src/main/groovy/grails/plugin/springsecurity/rest/oauth/OauthUser.groovy
 create mode 100644 grails-spring-security/rest/core/src/main/groovy/grails/plugin/springsecurity/rest/oauth/OauthUserDetailsService.groovy
 create mode 100644 grails-spring-security/rest/core/src/main/groovy/grails/plugin/springsecurity/rest/token/AccessToken.groovy
 create mode 100644 grails-spring-security/rest/core/src/main/groovy/grails/plugin/springsecurity/rest/token/bearer/BearerTokenAccessDeniedHandler.groovy
 create mode 100644 grails-spring-security/rest/core/src/main/groovy/grails/plugin/springsecurity/rest/token/bearer/BearerTokenAuthenticationEntryPoint.groovy
 create mode 100644 grails-spring-security/rest/core/src/main/groovy/grails/plugin/springsecurity/rest/token/bearer/BearerTokenAuthenticationFailureHandler.groovy
 create mode 100644 grails-spring-security/rest/core/src/main/groovy/grails/plugin/springsecurity/rest/token/bearer/BearerTokenReader.groovy
 create mode 100644 grails-spring-security/rest/core/src/main/groovy/grails/plugin/springsecurity/rest/token/generation/SecureRandomTokenGenerator.groovy
 create mode 100644 grails-spring-security/rest/core/src/main/groovy/grails/plugin/springsecurity/rest/token/generation/TokenGenerator.groovy
 create mode 100644 grails-spring-security/rest/core/src/main/groovy/grails/plugin/springsecurity/rest/token/generation/UUIDTokenGenerator.groovy
 create mode 100644 grails-spring-security/rest/core/src/main/groovy/grails/plugin/springsecurity/rest/token/generation/jwt/AbstractJwtTokenGenerator.groovy
 create mode 100644 grails-spring-security/rest/core/src/main/groovy/grails/plugin/springsecurity/rest/token/generation/jwt/CustomClaimProvider.groovy
 create mode 100644 grails-spring-security/rest/core/src/main/groovy/grails/plugin/springsecurity/rest/token/generation/jwt/DefaultRSAKeyProvider.groovy
 create mode 100644 grails-spring-security/rest/core/src/main/groovy/grails/plugin/springsecurity/rest/token/generation/jwt/EncryptedJwtTokenGenerator.groovy
 create mode 100644 grails-spring-security/rest/core/src/main/groovy/grails/plugin/springsecurity/rest/token/generation/jwt/FileRSAKeyProvider.groovy
 create mode 100644 grails-spring-security/rest/core/src/main/groovy/grails/plugin/springsecurity/rest/token/generation/jwt/IssuerClaimProvider.groovy
 create mode 100644 grails-spring-security/rest/core/src/main/groovy/grails/plugin/springsecurity/rest/token/generation/jwt/RSAKeyProvider.groovy
 create mode 100644 grails-spring-security/rest/core/src/main/groovy/grails/plugin/springsecurity/rest/token/generation/jwt/SignedJwtTokenGenerator.groovy
 create mode 100644 grails-spring-security/rest/core/src/main/groovy/grails/plugin/springsecurity/rest/token/reader/HttpHeaderTokenReader.groovy
 create mode 100644 grails-spring-security/rest/core/src/main/groovy/grails/plugin/springsecurity/rest/token/reader/TokenReader.groovy
 create mode 100644 grails-spring-security/rest/core/src/main/groovy/grails/plugin/springsecurity/rest/token/rendering/AccessTokenJsonRenderer.groovy
 create mode 100644 grails-spring-security/rest/core/src/main/groovy/grails/plugin/springsecurity/rest/token/rendering/DefaultAccessTokenJsonRenderer.groovy
 create mode 100644 grails-spring-security/rest/core/src/main/groovy/grails/plugin/springsecurity/rest/token/storage/TokenNotFoundException.groovy
 create mode 100644 grails-spring-security/rest/core/src/main/groovy/grails/plugin/springsecurity/rest/token/storage/TokenStorageService.groovy
 create mode 100644 grails-spring-security/rest/core/src/main/groovy/grails/plugin/springsecurity/rest/token/storage/jwt/JwtTokenStorageService.groovy
 create mode 100644 grails-spring-security/rest/core/src/main/resources/DefaultRestSecurityConfig.groovy
 create mode 100644 grails-spring-security/rest/core/src/test/groovy/grails/plugin/springsecurity/rest/BearerTokenAuthenticationFailureHandlerSpec.groovy
 create mode 100644 grails-spring-security/rest/core/src/test/groovy/grails/plugin/springsecurity/rest/JwtServiceSpec.groovy
 create mode 100644 grails-spring-security/rest/core/src/test/groovy/grails/plugin/springsecurity/rest/RestAuthenticationFailureHandlerSpec.groovy
 create mode 100644 grails-spring-security/rest/core/src/test/groovy/grails/plugin/springsecurity/rest/RestAuthenticationProviderSpec.groovy
 create mode 100644 grails-spring-security/rest/core/src/test/groovy/grails/plugin/springsecurity/rest/RestOauthControllerSpec.groovy
 create mode 100644 grails-spring-security/rest/core/src/test/groovy/grails/plugin/springsecurity/rest/RestOauthServiceSpec.groovy
 create mode 100644 grails-spring-security/rest/core/src/test/groovy/grails/plugin/springsecurity/rest/RestSecurityEventListenerSpec.groovy
 create mode 100644 grails-spring-security/rest/core/src/test/groovy/grails/plugin/springsecurity/rest/RestTokenReaderSpec.groovy
 create mode 100644 grails-spring-security/rest/core/src/test/groovy/grails/plugin/springsecurity/rest/RestTokenValidationFilterUnitSpec.groovy
 create mode 100644 grails-spring-security/rest/core/src/test/groovy/grails/plugin/springsecurity/rest/SpringSecurityRestFilterRequestMatcherSpec.groovy
 create mode 100644 grails-spring-security/rest/core/src/test/groovy/grails/plugin/springsecurity/rest/TokenGeneratorSupport.groovy
 create mode 100644 grails-spring-security/rest/core/src/test/groovy/grails/plugin/springsecurity/rest/authentication/DefaultRestAuthenticationEventPublisherSpec.groovy
 create mode 100644 grails-spring-security/rest/core/src/test/groovy/grails/plugin/springsecurity/rest/credentials/CredentialsExtractorTestSpec.groovy
 create mode 100644 grails-spring-security/rest/core/src/test/groovy/grails/plugin/springsecurity/rest/oauth/DefaultOauthUserDetailsServiceSpec.groovy
 create mode 100644 grails-spring-security/rest/core/src/test/groovy/grails/plugin/springsecurity/rest/rfc6750/BearerTokenReaderSpec.groovy
 create mode 100644 grails-spring-security/rest/core/src/test/groovy/grails/plugin/springsecurity/rest/token/TokenGeneratorSpec.groovy
 create mode 100644 grails-spring-security/rest/core/src/test/groovy/grails/plugin/springsecurity/rest/token/bearer/BearerTokenAccessDeniedHandlerSpec.groovy
 create mode 100644 grails-spring-security/rest/core/src/test/groovy/grails/plugin/springsecurity/rest/token/generation/JwtTokenGeneratorSpec.groovy
 create mode 100644 grails-spring-security/rest/core/src/test/groovy/grails/plugin/springsecurity/rest/token/rendering/DefaultRestAuthenticationTokenJsonRendererSpec.groovy
 create mode 100644 grails-spring-security/rest/core/src/test/groovy/grails/plugin/springsecurity/rest/token/storage/jwt/JwtTokenStorageServiceSpec.groovy
 create mode 100644 grails-spring-security/rest/docker-compose.yml
 create mode 100755 grails-spring-security/rest/generate-test-apps.sh
 create mode 100644 grails-spring-security/rest/gorm/build.gradle
 create mode 100644 grails-spring-security/rest/gorm/src/main/groovy/grails/plugin/springsecurity/rest/SpringSecurityRestGormGrailsPlugin.groovy
 create mode 100644 grails-spring-security/rest/gorm/src/main/groovy/grails/plugin/springsecurity/rest/gorm/Application.groovy
 create mode 100644 grails-spring-security/rest/gorm/src/main/groovy/grails/plugin/springsecurity/rest/token/storage/GormTokenStorageService.groovy
 create mode 100644 grails-spring-security/rest/gorm/src/main/resources/DefaultRestGormSecurityConfig.groovy
 create mode 100644 grails-spring-security/rest/grailscache/build.gradle
 create mode 100644 grails-spring-security/rest/grailscache/src/main/groovy/grails/plugin/springsecurity/rest/SpringSecurityRestGrailsCacheGrailsPlugin.groovy
 create mode 100644 grails-spring-security/rest/grailscache/src/main/groovy/grails/plugin/springsecurity/rest/grailscache/Application.groovy
 create mode 100644 grails-spring-security/rest/grailscache/src/main/groovy/grails/plugin/springsecurity/rest/token/storage/GrailsCacheTokenStorageService.groovy
 create mode 100644 grails-spring-security/rest/grailscache/src/main/resources/DefaultRestGrailsCacheSecurityConfig.groovy
 create mode 100644 grails-spring-security/rest/grailscache/src/test/groovy/grails/plugin/springsecurity/rest/token/storage/GrailsCacheTokenStorageServiceSpec.groovy
 create mode 100644 grails-spring-security/rest/memcached/build.gradle
 create mode 100644 grails-spring-security/rest/memcached/src/main/groovy/grails/plugin/springsecurity/rest/SpringSecurityRestMemcachedGrailsPlugin.groovy
 create mode 100644 grails-spring-security/rest/memcached/src/main/groovy/grails/plugin/springsecurity/rest/memcached/Application.groovy
 create mode 100644 grails-spring-security/rest/memcached/src/main/groovy/grails/plugin/springsecurity/rest/token/storage/memcached/CustomSerializingTranscoder.groovy
 create mode 100644 grails-spring-security/rest/memcached/src/main/groovy/grails/plugin/springsecurity/rest/token/storage/memcached/MemcachedTokenStorageService.groovy
 create mode 100644 grails-spring-security/rest/memcached/src/main/resources/DefaultRestMemcachedSecurityConfig.groovy
 create mode 100644 grails-spring-security/rest/redis/build.gradle
 create mode 100644 grails-spring-security/rest/redis/src/main/groovy/grails/plugin/springsecurity/rest/SpringSecurityRestRedisGrailsPlugin.groovy
 create mode 100644 grails-spring-security/rest/redis/src/main/groovy/grails/plugin/springsecurity/rest/redis/Application.groovy
 create mode 100644 grails-spring-security/rest/redis/src/main/groovy/grails/plugin/springsecurity/rest/token/storage/RedisTokenStorageService.groovy
 create mode 100644 grails-spring-security/rest/redis/src/main/resources/DefaultRestRedisSecurityConfig.groovy
 create mode 100755 grails-spring-security/rest/renameFiles.groovy
 create mode 100755 grails-spring-security/rest/test-app.sh
 create mode 100644 grails-spring-security/rest/testapp-profile/.gitignore
 create mode 100644 grails-spring-security/rest/testapp-profile/build.gradle
 create mode 100644 grails-spring-security/rest/testapp-profile/features/data1/feature.yml.tmpl
 create mode 100644 grails-spring-security/rest/testapp-profile/features/data1/skeleton/build.gradle
 create mode 100644 grails-spring-security/rest/testapp-profile/features/data1/skeleton/grails-app/conf/application.groovy
 create mode 100644 grails-spring-security/rest/testapp-profile/features/data1/skeleton/grails-app/conf/application.yml
 create mode 100644 grails-spring-security/rest/testapp-profile/features/data1/skeleton/grails-app/domain/gorm/AccessToken.groovy
 create mode 100644 grails-spring-security/rest/testapp-profile/features/data1/skeleton/src/integration-test/groovy/rest/RestLogoutFilterSpec.groovy
 create mode 100644 grails-spring-security/rest/testapp-profile/features/data2/feature.yml.tmpl
 create mode 100644 grails-spring-security/rest/testapp-profile/features/data2/skeleton/build.gradle
 create mode 100644 grails-spring-security/rest/testapp-profile/features/data2/skeleton/grails-app/conf/application.groovy
 create mode 100644 grails-spring-security/rest/testapp-profile/features/data2/skeleton/grails-app/conf/application.yml
 create mode 100644 grails-spring-security/rest/testapp-profile/features/data2/skeleton/grails-app/domain/gorm/AccessToken.groovy
 create mode 100644 grails-spring-security/rest/testapp-profile/features/data2/skeleton/src/integration-test/groovy/rest/RestLogoutFilterSpec.groovy
 create mode 100644 grails-spring-security/rest/testapp-profile/features/grailscache1/feature.yml.tmpl
 create mode 100644 grails-spring-security/rest/testapp-profile/features/grailscache1/skeleton/build.gradle
 create mode 100644 grails-spring-security/rest/testapp-profile/features/grailscache1/skeleton/grails-app/conf/application.groovy
 create mode 100644 grails-spring-security/rest/testapp-profile/features/grailscache2/feature.yml.tmpl
 create mode 100644 grails-spring-security/rest/testapp-profile/features/grailscache2/skeleton/build.gradle
 create mode 100644 grails-spring-security/rest/testapp-profile/features/grailscache2/skeleton/grails-app/conf/application.groovy
 create mode 100644 grails-spring-security/rest/testapp-profile/features/jwt1/feature.yml.tmpl
 create mode 100644 grails-spring-security/rest/testapp-profile/features/jwt1/skeleton/build.gradle
 create mode 100644 grails-spring-security/rest/testapp-profile/features/jwt1/skeleton/grails-app/conf/application.groovy
 create mode 100644 grails-spring-security/rest/testapp-profile/features/jwt1/skeleton/grails-app/controllers/rest/JwtController.groovy
 create mode 100644 grails-spring-security/rest/testapp-profile/features/jwt1/skeleton/src/integration-test/groovy/rest/JwtRestTokenValidationFilterSpec.groovy
 create mode 100644 grails-spring-security/rest/testapp-profile/features/jwt2/feature.yml.tmpl
 create mode 100644 grails-spring-security/rest/testapp-profile/features/jwt2/skeleton/build.gradle
 create mode 100644 grails-spring-security/rest/testapp-profile/features/jwt2/skeleton/grails-app/conf/application.groovy
 create mode 100644 grails-spring-security/rest/testapp-profile/features/memcached1/feature.yml.tmpl
 create mode 100644 grails-spring-security/rest/testapp-profile/features/memcached1/skeleton/build.gradle
 create mode 100644 grails-spring-security/rest/testapp-profile/features/memcached1/skeleton/grails-app/conf/application.groovy
 create mode 100644 grails-spring-security/rest/testapp-profile/features/memcached1/skeleton/src/integration-test/groovy/memcached/MemcachedSpec.groovy
 create mode 100644 grails-spring-security/rest/testapp-profile/features/memcached2/feature.yml.tmpl
 create mode 100644 grails-spring-security/rest/testapp-profile/features/memcached2/skeleton/build.gradle
 create mode 100644 grails-spring-security/rest/testapp-profile/features/memcached2/skeleton/grails-app/conf/application.groovy
 create mode 100644 grails-spring-security/rest/testapp-profile/features/memcached2/skeleton/src/integration-test/groovy/memcached/MemcachedSpec.groovy
 create mode 100644 grails-spring-security/rest/testapp-profile/features/redis1/feature.yml.tmpl
 create mode 100644 grails-spring-security/rest/testapp-profile/features/redis1/skeleton/build.gradle
 create mode 100644 grails-spring-security/rest/testapp-profile/features/redis1/skeleton/grails-app/conf/application.groovy
 create mode 100644 grails-spring-security/rest/testapp-profile/features/redis1/skeleton/src/integration-test/groovy/redis/RedisSpec.groovy
 create mode 100644 grails-spring-security/rest/testapp-profile/features/redis2/feature.yml.tmpl
 create mode 100644 grails-spring-security/rest/testapp-profile/features/redis2/skeleton/build.gradle
 create mode 100644 grails-spring-security/rest/testapp-profile/features/redis2/skeleton/grails-app/conf/application.groovy
 create mode 100644 grails-spring-security/rest/testapp-profile/features/redis2/skeleton/src/integration-test/groovy/redis/RedisSpec.groovy
 create mode 100644 grails-spring-security/rest/testapp-profile/keys/private_key.der
 create mode 100644 grails-spring-security/rest/testapp-profile/keys/public_key.der
 create mode 100644 grails-spring-security/rest/testapp-profile/profile.yml.tmpl
 create mode 100644 grails-spring-security/rest/testapp-profile/skeleton/build.gradle
 create mode 100644 grails-spring-security/rest/testapp-profile/skeleton/grails-app/conf/application.yml
 create mode 100644 grails-spring-security/rest/testapp-profile/skeleton/grails-app/conf/logback-spring.xml
 create mode 100644 grails-spring-security/rest/testapp-profile/skeleton/grails-app/conf/spring/resources.groovy
 create mode 100644 grails-spring-security/rest/testapp-profile/skeleton/grails-app/controllers/UrlMappings.groovy
 create mode 100644 grails-spring-security/rest/testapp-profile/skeleton/grails-app/controllers/rest/AnonymousController.groovy
 create mode 100644 grails-spring-security/rest/testapp-profile/skeleton/grails-app/controllers/rest/PublicController.groovy
 create mode 100644 grails-spring-security/rest/testapp-profile/skeleton/grails-app/controllers/rest/SecuredController.groovy
 create mode 100644 grails-spring-security/rest/testapp-profile/skeleton/grails-app/init/BootStrap.groovy
 create mode 100644 grails-spring-security/rest/testapp-profile/skeleton/src/integration-test/groovy/GebConfig.groovy
 create mode 100644 grails-spring-security/rest/testapp-profile/skeleton/src/integration-test/groovy/org/openqa/selenium/browserlaunchers/Proxies.groovy
 create mode 100644 grails-spring-security/rest/testapp-profile/skeleton/src/integration-test/groovy/rest/AbstractRestSpec.groovy
 create mode 100644 grails-spring-security/rest/testapp-profile/skeleton/src/integration-test/groovy/rest/BearerTokenSpec.groovy
 create mode 100644 grails-spring-security/rest/testapp-profile/skeleton/src/integration-test/groovy/rest/CorsSpec.groovy
 create mode 100644 grails-spring-security/rest/testapp-profile/skeleton/src/integration-test/groovy/rest/FrontendCallbackPage.groovy
 create mode 100644 grails-spring-security/rest/testapp-profile/skeleton/src/integration-test/groovy/rest/JwtSpec.groovy
 create mode 100644 grails-spring-security/rest/testapp-profile/skeleton/src/integration-test/groovy/rest/RestAuthenticationFilterSpec.groovy
 create mode 100644 grails-spring-security/rest/testapp-profile/skeleton/src/integration-test/groovy/rest/RestTokenValidationFilterSpec.groovy
 create mode 100644 grails-spring-security/rest/testapp-profile/skeleton/src/integration-test/groovy/rest/ValidateEndpointSpec.groovy
 create mode 100644 grails-spring-security/ui/plugin/build.gradle
 create mode 100644 grails-spring-security/ui/plugin/grails-app/assets/javascripts/spring-security-ui-ajaxLogin.js
 create mode 100644 grails-spring-security/ui/plugin/grails-app/assets/javascripts/spring-security-ui.js
 create mode 100644 grails-spring-security/ui/plugin/grails-app/conf/DefaultUiSecurityConfig.groovy
 create mode 100644 grails-spring-security/ui/plugin/grails-app/conf/application.yml
 create mode 100644 grails-spring-security/ui/plugin/grails-app/controllers/grails/plugin/springsecurity/ui/AbstractS2UiController.groovy
 create mode 100644 grails-spring-security/ui/plugin/grails-app/controllers/grails/plugin/springsecurity/ui/AbstractS2UiDomainController.groovy
 create mode 100644 grails-spring-security/ui/plugin/grails-app/controllers/grails/plugin/springsecurity/ui/AclClassController.groovy
 create mode 100644 grails-spring-security/ui/plugin/grails-app/controllers/grails/plugin/springsecurity/ui/AclEntryController.groovy
 create mode 100644 grails-spring-security/ui/plugin/grails-app/controllers/grails/plugin/springsecurity/ui/AclObjectIdentityController.groovy
 create mode 100644 grails-spring-security/ui/plugin/grails-app/controllers/grails/plugin/springsecurity/ui/AclSidController.groovy
 create mode 100644 grails-spring-security/ui/plugin/grails-app/controllers/grails/plugin/springsecurity/ui/PersistentLoginController.groovy
 create mode 100644 grails-spring-security/ui/plugin/grails-app/controllers/grails/plugin/springsecurity/ui/RegisterController.groovy
 create mode 100644 grails-spring-security/ui/plugin/grails-app/controllers/grails/plugin/springsecurity/ui/RegistrationCodeController.groovy
 create mode 100644 grails-spring-security/ui/plugin/grails-app/controllers/grails/plugin/springsecurity/ui/RequestmapController.groovy
 create mode 100644 grails-spring-security/ui/plugin/grails-app/controllers/grails/plugin/springsecurity/ui/RoleController.groovy
 create mode 100644 grails-spring-security/ui/plugin/grails-app/controllers/grails/plugin/springsecurity/ui/SecurityInfoController.groovy
 create mode 100644 grails-spring-security/ui/plugin/grails-app/controllers/grails/plugin/springsecurity/ui/UserController.groovy
 create mode 100644 grails-spring-security/ui/plugin/grails-app/domain/grails/plugin/springsecurity/ui/RegistrationCode.groovy
 create mode 100644 grails-spring-security/ui/plugin/grails-app/i18n/messages.spring-security-ui.properties
 create mode 100644 grails-spring-security/ui/plugin/grails-app/services/grails/plugin/springsecurity/ui/SpringSecurityUiService.groovy
 create mode 100644 grails-spring-security/ui/plugin/grails-app/taglib/grails/plugin/springsecurity/ui/SecurityUiTagLib.groovy
 create mode 100644 grails-spring-security/ui/plugin/grails-app/views/aclClass/create.gsp
 create mode 100644 grails-spring-security/ui/plugin/grails-app/views/aclClass/edit.gsp
 create mode 100644 grails-spring-security/ui/plugin/grails-app/views/aclClass/search.gsp
 create mode 100644 grails-spring-security/ui/plugin/grails-app/views/aclEntry/create.gsp
 create mode 100644 grails-spring-security/ui/plugin/grails-app/views/aclEntry/edit.gsp
 create mode 100644 grails-spring-security/ui/plugin/grails-app/views/aclEntry/search.gsp
 create mode 100644 grails-spring-security/ui/plugin/grails-app/views/aclObjectIdentity/create.gsp
 create mode 100644 grails-spring-security/ui/plugin/grails-app/views/aclObjectIdentity/edit.gsp
 create mode 100644 grails-spring-security/ui/plugin/grails-app/views/aclObjectIdentity/search.gsp
 create mode 100644 grails-spring-security/ui/plugin/grails-app/views/aclSid/create.gsp
 create mode 100644 grails-spring-security/ui/plugin/grails-app/views/aclSid/edit.gsp
 create mode 100644 grails-spring-security/ui/plugin/grails-app/views/aclSid/search.gsp
 create mode 100644 grails-spring-security/ui/plugin/grails-app/views/includes/_ajaxLogin.gsp
 create mode 100644 grails-spring-security/ui/plugin/grails-app/views/layouts/email.gsp
 create mode 100644 grails-spring-security/ui/plugin/grails-app/views/layouts/register.gsp
 create mode 100644 grails-spring-security/ui/plugin/grails-app/views/layouts/springSecurityUI.gsp
 create mode 100644 grails-spring-security/ui/plugin/grails-app/views/login/auth.gsp
 create mode 100644 grails-spring-security/ui/plugin/grails-app/views/persistentLogin/edit.gsp
 create mode 100644 grails-spring-security/ui/plugin/grails-app/views/persistentLogin/search.gsp
 create mode 100644 grails-spring-security/ui/plugin/grails-app/views/register/_forgotPasswordMail.gsp
 create mode 100644 grails-spring-security/ui/plugin/grails-app/views/register/_verifyRegistrationMail.gsp
 create mode 100644 grails-spring-security/ui/plugin/grails-app/views/register/forgotPassword.gsp
 create mode 100644 grails-spring-security/ui/plugin/grails-app/views/register/register.gsp
 create mode 100644 grails-spring-security/ui/plugin/grails-app/views/register/resetPassword.gsp
 create mode 100644 grails-spring-security/ui/plugin/grails-app/views/register/securityQuestions.gsp
 create mode 100644 grails-spring-security/ui/plugin/grails-app/views/registrationCode/edit.gsp
 create mode 100644 grails-spring-security/ui/plugin/grails-app/views/registrationCode/search.gsp
 create mode 100644 grails-spring-security/ui/plugin/grails-app/views/requestmap/create.gsp
 create mode 100644 grails-spring-security/ui/plugin/grails-app/views/requestmap/edit.gsp
 create mode 100644 grails-spring-security/ui/plugin/grails-app/views/requestmap/search.gsp
 create mode 100644 grails-spring-security/ui/plugin/grails-app/views/role/create.gsp
 create mode 100644 grails-spring-security/ui/plugin/grails-app/views/role/edit.gsp
 create mode 100644 grails-spring-security/ui/plugin/grails-app/views/role/search.gsp
 create mode 100644 grails-spring-security/ui/plugin/grails-app/views/securityInfo/config.gsp
 create mode 100644 grails-spring-security/ui/plugin/grails-app/views/securityInfo/currentAuth.gsp
 create mode 100644 grails-spring-security/ui/plugin/grails-app/views/securityInfo/filterChains.gsp
 create mode 100644 grails-spring-security/ui/plugin/grails-app/views/securityInfo/logoutHandlers.gsp
 create mode 100644 grails-spring-security/ui/plugin/grails-app/views/securityInfo/mappings.gsp
 create mode 100644 grails-spring-security/ui/plugin/grails-app/views/securityInfo/providers.gsp
 create mode 100644 grails-spring-security/ui/plugin/grails-app/views/securityInfo/secureChannel.gsp
 create mode 100644 grails-spring-security/ui/plugin/grails-app/views/securityInfo/usercache.gsp
 create mode 100644 grails-spring-security/ui/plugin/grails-app/views/securityInfo/voters.gsp
 create mode 100644 grails-spring-security/ui/plugin/grails-app/views/user/create.gsp
 create mode 100644 grails-spring-security/ui/plugin/grails-app/views/user/edit.gsp
 create mode 100644 grails-spring-security/ui/plugin/grails-app/views/user/search.gsp
 create mode 100644 grails-spring-security/ui/plugin/src/main/groovy/grails/plugin/springsecurity/ui/CommandObject.groovy
 create mode 100644 grails-spring-security/ui/plugin/src/main/groovy/grails/plugin/springsecurity/ui/ForgotPasswordCommand.groovy
... 1018 lines suppressed ...