From 9fce864533e9f20279930d1515edb1ba6600273f Mon Sep 17 00:00:00 2001 From: Michael Yan Date: Sat, 7 Feb 2026 11:11:28 +0800 Subject: [PATCH 1/2] Update the title and description of DynamicModulesGrailsPlugin --- .../modules/DynamicModulesGrailsPlugin.groovy | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/grace-plugin-dynamic-modules/src/main/groovy/org/grails/plugins/modules/DynamicModulesGrailsPlugin.groovy b/grace-plugin-dynamic-modules/src/main/groovy/org/grails/plugins/modules/DynamicModulesGrailsPlugin.groovy index cd8028b004..809933adfd 100644 --- a/grace-plugin-dynamic-modules/src/main/groovy/org/grails/plugins/modules/DynamicModulesGrailsPlugin.groovy +++ b/grace-plugin-dynamic-modules/src/main/groovy/org/grails/plugins/modules/DynamicModulesGrailsPlugin.groovy @@ -15,25 +15,21 @@ */ package org.grails.plugins.modules +import groovy.transform.CompileStatic + import grails.plugins.Plugin import grails.util.GrailsUtil /** * @since 2022.1.0 */ +@CompileStatic class DynamicModulesGrailsPlugin extends Plugin { def version = GrailsUtil.getGrailsVersion() - def title = 'Grails Dynamic Modules Plugin' - def author = 'Michael Yan' - def authorEmail = 'rain@rainboyan.com' + def title = 'Grace Dynamic Modules Plugin' def description = '''\ -Grails Dynamic Modules Plugin offer new ways of creating modular and maintainable Grails applications. +Grace Dynamic Modules Plugin offer new ways of creating modular and maintainable Grace applications. ''' - Closure doWithSpring() { - { -> - } - } - } From ca9278242936a2f540f814d5c290c6dd95bbc175 Mon Sep 17 00:00:00 2001 From: Michael Yan Date: Sat, 7 Feb 2026 11:12:26 +0800 Subject: [PATCH 2/2] Auto-Configure for Dynamic Modules plugin --- grace-plugin-dynamic-modules/build.gradle | 3 ++ .../DynamicModulesAutoConfiguration.java | 41 +++++++++++++++++++ ...ot.autoconfigure.AutoConfiguration.imports | 1 + 3 files changed, 45 insertions(+) create mode 100644 grace-plugin-dynamic-modules/src/main/groovy/org/grails/plugins/modules/DynamicModulesAutoConfiguration.java create mode 100644 grace-plugin-dynamic-modules/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports diff --git a/grace-plugin-dynamic-modules/build.gradle b/grace-plugin-dynamic-modules/build.gradle index fdadb9f0a0..4a58d208bf 100644 --- a/grace-plugin-dynamic-modules/build.gradle +++ b/grace-plugin-dynamic-modules/build.gradle @@ -2,4 +2,7 @@ dependencies { api project(":grace-api") api project(":grace-bootstrap") compileOnly project(":grace-plugin-api") + + api libs.spring.boot.autoconfigure + annotationProcessor libs.spring.boot.autoconfigureProcessor } diff --git a/grace-plugin-dynamic-modules/src/main/groovy/org/grails/plugins/modules/DynamicModulesAutoConfiguration.java b/grace-plugin-dynamic-modules/src/main/groovy/org/grails/plugins/modules/DynamicModulesAutoConfiguration.java new file mode 100644 index 0000000000..c0220cde39 --- /dev/null +++ b/grace-plugin-dynamic-modules/src/main/groovy/org/grails/plugins/modules/DynamicModulesAutoConfiguration.java @@ -0,0 +1,41 @@ +/* + * Copyright 2022-2026 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.grails.plugins.modules; + +import org.springframework.boot.autoconfigure.AutoConfiguration; +import org.springframework.boot.autoconfigure.EnableAutoConfiguration; +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +import org.springframework.context.annotation.Bean; + +import org.grails.plugins.web.DefaultWebInterfaceManager; +import org.grails.plugins.web.WebInterfaceManager; + +/** + * {@link EnableAutoConfiguration Auto-configuration} for Dynamic Modules. + * + * @author Michael Yan + * @since 2024.0.0 + */ +@AutoConfiguration +public class DynamicModulesAutoConfiguration { + + @Bean + @ConditionalOnMissingBean + public WebInterfaceManager webInterfaceManager() { + return new DefaultWebInterfaceManager(); + } + +} diff --git a/grace-plugin-dynamic-modules/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/grace-plugin-dynamic-modules/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 0000000000..2b55b86f7e --- /dev/null +++ b/grace-plugin-dynamic-modules/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -0,0 +1 @@ +org.grails.plugins.modules.DynamicModulesAutoConfiguration \ No newline at end of file