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

jdaugherty pushed a commit to branch micronautTests
in repository https://gitbox.apache.org/repos/asf/grails-core.git

commit 774360a7bdaf73c006b6f382bdcf64d536a5e75c
Author: James Daugherty <jdaughe...@jdresources.net>
AuthorDate: Tue Jul 29 22:03:48 2025 -0400

    WIP: switch to micronaut starter
---
 gradle.properties                                  |  1 +
 .../src/main/groovy/grails/boot/GrailsApp.groovy   | 20 -----
 grails-dependencies/starter-web/build.gradle       |  2 +-
 .../gradle/plugin/core/GrailsGradlePlugin.groovy   | 22 +++---
 .../views/gsp/GroovyPageForkCompileTask.groovy     |  1 +
 grails-micronaut/build.gradle                      | 46 +++++++----
 ...ner.groovy => GrailsMicronautBeanFilter.groovy} | 36 +++++----
 .../micronaut/GrailsMicronautGrailsPlugin.groovy   | 90 ++++++++++------------
 .../micronaut/MicronautParentContextAdder.groovy   | 88 ---------------------
 .../MicronautGroovyPropertySourceLoader.groovy     |  2 +-
 .../MicronautYamlPropertySourceLoader.groovy       |  2 +-
 grails-test-examples/micronaut/build.gradle        | 59 ++++++--------
 .../grails-app/init/micronaut/Application.groovy   |  8 +-
 13 files changed, 134 insertions(+), 243 deletions(-)

diff --git a/gradle.properties b/gradle.properties
index 67b0f2cd28..98ae84b24f 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -57,6 +57,7 @@ org.gradle.daemon=true
 org.gradle.jvmargs=-Dfile.encoding=UTF-8 -Xmx5G
 
 # micronaut libraries not in the bom due to the potential for spring mismatches
+micronautPlatformVersion=4.9.1
 micronautVersion=4.9.7
 micronautCacheVersion=5.3.0
 micronautSpringVersion=5.11.0
diff --git a/grails-core/src/main/groovy/grails/boot/GrailsApp.groovy 
b/grails-core/src/main/groovy/grails/boot/GrailsApp.groovy
index 73db55d501..4d6ede3cad 100644
--- a/grails-core/src/main/groovy/grails/boot/GrailsApp.groovy
+++ b/grails-core/src/main/groovy/grails/boot/GrailsApp.groovy
@@ -65,8 +65,6 @@ class GrailsApp extends SpringApplication {
     private static boolean developmentModeActive = false
     private static DirectoryWatcher directoryWatcher
 
-    private ApplicationContextCustomizer applicationContextCustomizer
-
     boolean enableBeanCreationProfiler = false
     ConfigurableEnvironment configuredEnvironment
 
@@ -121,10 +119,6 @@ class GrailsApp extends SpringApplication {
         setAllowBeanDefinitionOverriding(true)
         setAllowCircularReferences(true)
         ConfigurableApplicationContext applicationContext = 
super.createApplicationContext()
-        if (applicationContextCustomizer) {
-            ClassLoader applicationClassLoader = this.classLoader
-            applicationContextCustomizer.customizeContext(applicationContext, 
applicationClassLoader, configuredEnvironment)
-        }
 
         if (enableBeanCreationProfiler) {
             def processor = new BeanCreationProfilingPostProcessor()
@@ -396,24 +390,10 @@ class GrailsApp extends SpringApplication {
      * specified sources using default settings and user supplied arguments.
      * @param sources the sources to load
      * @param args the application arguments (usually passed from a Java main 
method)
-     * @param applicationContextCustomizer optional logic to customize the 
created application context, such as adding a parent context
      * @return the running {@link 
org.springframework.context.ApplicationContext}
      */
     static ConfigurableApplicationContext run(Class<?>[] sources, String[] 
args) {
-        run(sources, args, null)
-    }
-
-    /**
-     * Static helper that can be used to run a {@link GrailsApp} from the
-     * specified sources using default settings user supplied arguments.
-     * @param sources the sources to load
-     * @param args the application arguments (usually passed from a Java main 
method)
-     * @param applicationContextCustomizer optional logic to customize the 
created application context, such as adding a parent context
-     * @return the running {@link 
org.springframework.context.ApplicationContext}
-     */
-    static ConfigurableApplicationContext run(Class<?>[] sources, String[] 
args, ApplicationContextCustomizer applicationContextCustomizer) {
         GrailsApp grailsApp = new GrailsApp(sources)
-        grailsApp.applicationContextCustomizer = applicationContextCustomizer
         grailsApp.banner = new ResourceBanner(new 
ClassPathResource(GRAILS_BANNER))
         return grailsApp.run(args)
     }
diff --git a/grails-dependencies/starter-web/build.gradle 
b/grails-dependencies/starter-web/build.gradle
index fec01d0cde..e12252310f 100644
--- a/grails-dependencies/starter-web/build.gradle
+++ b/grails-dependencies/starter-web/build.gradle
@@ -47,7 +47,7 @@ def configurations = [
                 ':grails-gsp',
                 ':grails-i18n',
                 ':grails-interceptors',
-                ':grails-layout', // layout will be the default because it's 
fully functional while sitemesh3 still has issues
+                System.getenv('SITEMESH3_TESTING_ENABLED') == 'true' ? 
':grails-sitemesh3' : ':grails-layout',
                 ':grails-logging',
                 ':grails-rest-transforms',
                 ':grails-services',
diff --git 
a/grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/core/GrailsGradlePlugin.groovy
 
b/grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/core/GrailsGradlePlugin.groovy
index 10d292071e..04ce07d343 100644
--- 
a/grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/core/GrailsGradlePlugin.groovy
+++ 
b/grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/core/GrailsGradlePlugin.groovy
@@ -387,17 +387,17 @@ class GrailsGradlePlugin extends GroovyPlugin {
     @CompileStatic
     protected void configureMicronaut(Project project) {
         final String micronautVersion = project.properties['micronautVersion']
-        if (micronautVersion) {
-            project.configurations.configureEach({ Configuration configuration 
->
-                configuration.resolutionStrategy.eachDependency({ 
DependencyResolveDetails details ->
-                    String dependencyName = details.requested.name
-                    String group = details.requested.group
-                    if (group == 'io.micronaut' && 
dependencyName.startsWith('micronaut')) {
-                        details.useVersion(micronautVersion)
-                    }
-                } as Action<DependencyResolveDetails>)
-            } as Action<Configuration>)
-        }
+//        if (micronautVersion) {
+//            project.configurations.configureEach({ Configuration 
configuration ->
+//                configuration.resolutionStrategy.eachDependency({ 
DependencyResolveDetails details ->
+//                    String dependencyName = details.requested.name
+//                    String group = details.requested.group
+//                    if (group == 'io.micronaut' && 
dependencyName.startsWith('micronaut')) {
+//                        details.useVersion(micronautVersion)
+//                    }
+//                } as Action<DependencyResolveDetails>)
+//            } as Action<Configuration>)
+//        }
     }
 
     @CompileStatic
diff --git 
a/grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/views/gsp/GroovyPageForkCompileTask.groovy
 
b/grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/views/gsp/GroovyPageForkCompileTask.groovy
index 17104785d4..60f11a5e69 100644
--- 
a/grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/views/gsp/GroovyPageForkCompileTask.groovy
+++ 
b/grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/views/gsp/GroovyPageForkCompileTask.groovy
@@ -133,6 +133,7 @@ abstract class GroovyPageForkCompileTask extends 
AbstractCompile {
                     void execute(JavaExecSpec javaExecSpec) {
                         javaExecSpec.mainClass.set(getCompilerName())
                         javaExecSpec.setClasspath(getClasspath())
+                        //javaExecSpec.setJvmArgs(['-Xmx2g', '-Xdebug', 
'-Xnoagent','-Djava.compiler=NONE', 
'-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005'])
 
                         def jvmArgs = compileOptions.forkOptions.jvmArgs
                         if (jvmArgs) {
diff --git a/grails-micronaut/build.gradle b/grails-micronaut/build.gradle
index 95bfce91a5..6a5fdcf725 100644
--- a/grails-micronaut/build.gradle
+++ b/grails-micronaut/build.gradle
@@ -26,28 +26,38 @@ plugins {
 version = projectVersion
 group = 'org.apache.grails'
 
-dependencies {
-    implementation platform(project(':grails-bom'))
-
-    annotationProcessor 
"io.micronaut.cache:micronaut-cache-core:$micronautCacheVersion"
-    annotationProcessor 
"io.micronaut.spring:micronaut-spring-annotation:$micronautSpringVersion"
-    annotationProcessor 
"io.micronaut.spring:micronaut-spring-boot-annotation:$micronautSpringVersion"
-    annotationProcessor "io.micronaut:micronaut-inject-java:$micronautVersion"
+// force a local build version for debugging
+//project.configurations.configureEach({ Configuration configuration ->
+//    configuration.resolutionStrategy.eachDependency({ 
DependencyResolveDetails details ->
+//        String dependencyName = details.requested.name
+//        String group = details.requested.group
+//        if (group == 'io.micronaut' && 
dependencyName.startsWith('micronaut-core-processor')) {
+//            logger.lifecycle("Forcing Micronaut Core Processor version to 
4.9.99 for Grails Micronaut plugin")
+//            details.useVersion('4.9.99')
+//        }
+//    } as Action<DependencyResolveDetails>)
+//} as Action<Configuration>)
 
-    implementation 
"io.micronaut.spring:micronaut-spring-annotation:$micronautSpringVersion"
-    implementation "io.micronaut:micronaut-inject-groovy:$micronautVersion"
-    implementation "io.micronaut:micronaut-inject-java:$micronautVersion"
-
-    api "io.micronaut:micronaut-inject:$micronautVersion"
-    api "io.micronaut:micronaut-runtime:$micronautVersion"
-    api 
"io.micronaut.spring:micronaut-spring-context:$micronautSpringVersion", {
-        exclude group:"org.slf4j", module: "slf4j-simple"
-    }
+dependencies {
+    annotationProcessor platform(project(':grails-bom'))
+    annotationProcessor 
platform("io.micronaut.platform:micronaut-platform:$micronautPlatformVersion")
+    annotationProcessor 'io.micronaut.cache:micronaut-cache-core'
+    annotationProcessor 'io.micronaut.spring:micronaut-spring-annotation'
+    annotationProcessor 'io.micronaut.spring:micronaut-spring-boot-annotation'
+    annotationProcessor 'io.micronaut:micronaut-inject-java'
+    annotationProcessor 'jakarta.annotation:jakarta.annotation-api'
+    //annotationProcessor 'io.micronaut:micronaut-core-processor'
 
-    api "io.micronaut.cache:micronaut-cache-core:$micronautCacheVersion", {
+    api 
platform("io.micronaut.platform:micronaut-platform:$micronautPlatformVersion")
+    api 'io.micronaut.spring:micronaut-spring-annotation'
+    api 'io.micronaut.spring:micronaut-spring-boot-starter'
+    compileOnlyApi 'io.micronaut:micronaut-inject-groovy'
+    compileOnlyApi 'io.micronaut:micronaut-inject-java'
+    api "io.micronaut.cache:micronaut-cache-core", {
         exclude group:"org.slf4j", module: "slf4j-simple"
     }
 
+    implementation platform(project(':grails-bom'))
     compileOnly project(':grails-core')
 
     // Logging
@@ -55,8 +65,10 @@ dependencies {
     compileOnly 'org.slf4j:jcl-over-slf4j'
 
     // Testing
+    testImplementation platform(project(':grails-bom'))
     testImplementation 'org.slf4j:slf4j-simple'
     testImplementation('org.spockframework:spock-core') { transitive = false }
+
     // Required by Spock's Mocking
     testRuntimeOnly 'net.bytebuddy:byte-buddy'
     testImplementation 'org.objenesis:objenesis'
diff --git 
a/grails-micronaut/src/main/groovy/org/apache/grails/micronaut/MicronautShutdownListener.groovy
 
b/grails-micronaut/src/main/groovy/org/apache/grails/micronaut/GrailsMicronautBeanFilter.groovy
similarity index 50%
rename from 
grails-micronaut/src/main/groovy/org/apache/grails/micronaut/MicronautShutdownListener.groovy
rename to 
grails-micronaut/src/main/groovy/org/apache/grails/micronaut/GrailsMicronautBeanFilter.groovy
index f7c71659fd..1b80cc8669 100644
--- 
a/grails-micronaut/src/main/groovy/org/apache/grails/micronaut/MicronautShutdownListener.groovy
+++ 
b/grails-micronaut/src/main/groovy/org/apache/grails/micronaut/GrailsMicronautBeanFilter.groovy
@@ -16,23 +16,31 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.grails.micronaut
 
-import groovy.transform.CompileStatic
-import io.micronaut.context.ApplicationContext
-import org.springframework.context.ApplicationListener
-import org.springframework.context.event.ContextStoppedEvent
+package org.apache.grails.micronaut
 
-@CompileStatic
-class MicronautShutdownListener implements 
ApplicationListener<ContextStoppedEvent> {
-    final ApplicationContext micronautApplicationContext
+import io.micronaut.core.annotation.Introspected
+import io.micronaut.core.annotation.NonNull
+import io.micronaut.inject.BeanDefinition
+import io.micronaut.spring.boot.starter.MicronautBeanFilter
+import org.springframework.core.convert.ConversionService
+import org.springframework.core.env.ConfigurableEnvironment
+import org.springframework.core.env.Environment
+import org.springframework.core.env.PropertyResolver
 
-    MicronautShutdownListener(ApplicationContext micronautApplicationContext) {
-        this.micronautApplicationContext = micronautApplicationContext
-    }
+@Introspected
+class GrailsMicronautBeanFilter implements MicronautBeanFilter {
 
     @Override
-    void onApplicationEvent(ContextStoppedEvent event) {
-        this.micronautApplicationContext.stop()
+    boolean excludes(@NonNull BeanDefinition<?> definition) {
+        if(definition.beanType in [ConversionService, Environment, 
PropertyResolver, ConfigurableEnvironment]) {
+            return true
+        }
+
+        if (definition.beanType.name == 
'com.fasterxml.jackson.databind.ObjectMapper') {
+            return true
+        }
+
+        return false
     }
-}
\ No newline at end of file
+}
diff --git 
a/grails-micronaut/src/main/groovy/org/apache/grails/micronaut/GrailsMicronautGrailsPlugin.groovy
 
b/grails-micronaut/src/main/groovy/org/apache/grails/micronaut/GrailsMicronautGrailsPlugin.groovy
index 0d3199a94c..3a62c6f2e9 100644
--- 
a/grails-micronaut/src/main/groovy/org/apache/grails/micronaut/GrailsMicronautGrailsPlugin.groovy
+++ 
b/grails-micronaut/src/main/groovy/org/apache/grails/micronaut/GrailsMicronautGrailsPlugin.groovy
@@ -19,16 +19,8 @@
 
 package org.apache.grails.micronaut
 
-import grails.plugins.GrailsPlugin
-import grails.plugins.GrailsPluginManager
 import grails.plugins.Plugin
 import groovy.util.logging.Slf4j
-import io.micronaut.context.env.AbstractPropertySourceLoader
-import io.micronaut.context.env.Environment
-import io.micronaut.context.env.PropertySource
-import io.micronaut.spring.context.env.MicronautEnvironment
-import org.springframework.context.ConfigurableApplicationContext
-import org.springframework.core.env.ConfigurableEnvironment
 
 @Slf4j
 class GrailsMicronautGrailsPlugin extends Plugin {
@@ -36,45 +28,45 @@ class GrailsMicronautGrailsPlugin extends Plugin {
     def grailsVersion = '7.0.0-SNAPSHOT > *'
     def title = ''
 
-    @Override
-    void doWithApplicationContext() {
-        String[] beanNames = 
applicationContext.getBeanNamesForType(GrailsPluginManager)
-        GrailsPluginManager pluginManagerFromContext = beanNames.length ?
-                applicationContext.getBean(GrailsPluginManager) :
-                null
-
-        if (!pluginManagerFromContext && !pluginManager) {
-            // No plugin managers to search for plugin configurations
-            return
-        }
-
-        ConfigurableApplicationContext parentApplicationContext = 
(ConfigurableApplicationContext) applicationContext.parent
-        if (!parentApplicationContext) {
-            // No Micronaut parent context to load configurations to
-            return
-        }
-
-        ConfigurableEnvironment parentContextEnv = 
parentApplicationContext.getEnvironment()
-        if (parentContextEnv instanceof MicronautEnvironment) {
-            if (log.isDebugEnabled()) {
-                log.debug("Loading configurations from the plugins to the 
parent Micronaut context")
-            }
-            final Environment micronautEnv = ((Environment) 
parentContextEnv.getEnvironment())
-            final GrailsPlugin[] plugins = pluginManager.allPlugins
-            final GrailsPlugin[] pluginsFromContext = pluginManagerFromContext 
? pluginManagerFromContext.allPlugins : new GrailsPlugin[] {}
-            Integer priority = AbstractPropertySourceLoader.DEFAULT_POSITION
-            [plugins, pluginsFromContext].each { GrailsPlugin[] 
pluginsToProcess ->
-                Arrays.stream(pluginsToProcess)
-                        .filter({ GrailsPlugin plugin -> plugin.propertySource 
!= null })
-                        .forEach({ GrailsPlugin plugin ->
-                            if (log.isDebugEnabled()) {
-                                log.debug("Loading configurations from {} 
plugin to the parent Micronaut context", plugin.name)
-                            }
-                            
micronautEnv.addPropertySource(PropertySource.of("grails.plugins.$plugin.name", 
(Map) plugin.propertySource.source, --priority))
-                        })
-            }
-            micronautEnv.refresh()
-            applicationContext.setParent(parentApplicationContext)
-        }
-    }
+//    @Override
+//    void doWithApplicationContext() {
+//        String[] beanNames = 
applicationContext.getBeanNamesForType(GrailsPluginManager)
+//        GrailsPluginManager pluginManagerFromContext = beanNames.length ?
+//                applicationContext.getBean(GrailsPluginManager) :
+//                null
+//
+//        if (!pluginManagerFromContext && !pluginManager) {
+//            // No plugin managers to search for plugin configurations
+//            return
+//        }
+//
+//        ConfigurableApplicationContext parentApplicationContext = 
(ConfigurableApplicationContext) applicationContext.parent
+//        if (!parentApplicationContext) {
+//            // No Micronaut parent context to load configurations to
+//            return
+//        }
+//
+//        ConfigurableEnvironment parentContextEnv = 
parentApplicationContext.getEnvironment()
+//        if (parentContextEnv instanceof MicronautEnvironment) {
+//            if (log.isDebugEnabled()) {
+//                log.debug("Loading configurations from the plugins to the 
parent Micronaut context")
+//            }
+//            final Environment micronautEnv = ((Environment) 
parentContextEnv.getEnvironment())
+//            final GrailsPlugin[] plugins = pluginManager.allPlugins
+//            final GrailsPlugin[] pluginsFromContext = 
pluginManagerFromContext ? pluginManagerFromContext.allPlugins : new 
GrailsPlugin[] {}
+//            Integer priority = AbstractPropertySourceLoader.DEFAULT_POSITION
+//            [plugins, pluginsFromContext].each { GrailsPlugin[] 
pluginsToProcess ->
+//                Arrays.stream(pluginsToProcess)
+//                        .filter({ GrailsPlugin plugin -> 
plugin.propertySource != null })
+//                        .forEach({ GrailsPlugin plugin ->
+//                            if (log.isDebugEnabled()) {
+//                                log.debug("Loading configurations from {} 
plugin to the parent Micronaut context", plugin.name)
+//                            }
+//                            
micronautEnv.addPropertySource(PropertySource.of("grails.plugins.$plugin.name", 
(Map) plugin.propertySource.source, --priority))
+//                        })
+//            }
+//            micronautEnv.refresh()
+//            applicationContext.setParent(parentApplicationContext)
+//        }
+//    }
 }
diff --git 
a/grails-micronaut/src/main/groovy/org/apache/grails/micronaut/MicronautParentContextAdder.groovy
 
b/grails-micronaut/src/main/groovy/org/apache/grails/micronaut/MicronautParentContextAdder.groovy
deleted file mode 100644
index 6466fc8b98..0000000000
--- 
a/grails-micronaut/src/main/groovy/org/apache/grails/micronaut/MicronautParentContextAdder.groovy
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you 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.apache.grails.micronaut
-
-import grails.boot.ApplicationContextCustomizer
-import groovy.transform.CompileStatic
-import groovy.util.logging.Slf4j
-import io.micronaut.context.ApplicationContextConfiguration
-import io.micronaut.context.DefaultApplicationContext
-import io.micronaut.core.reflect.ClassUtils
-import io.micronaut.spring.context.factory.MicronautBeanFactoryConfiguration
-import org.springframework.context.ConfigurableApplicationContext
-import org.springframework.core.convert.ConversionService
-import org.springframework.core.env.ConfigurableEnvironment
-import org.springframework.core.env.Environment
-import org.springframework.core.env.PropertyResolver
-
-/**
- * Helper class to set the micronaut context as the parent to the Grails 
applicationContext
- */
-@Slf4j
-@CompileStatic
-class MicronautParentContextAdder implements ApplicationContextCustomizer {
-
-    @Override
-    void customizeContext(ConfigurableApplicationContext applicationContext, 
ClassLoader applicationClassLoader, ConfigurableEnvironment 
configuredEnvironment) {
-        def now = System.currentTimeMillis()
-        ApplicationContextConfiguration micronautConfiguration = new 
ApplicationContextConfiguration() {
-
-            @Override
-            List<String> getEnvironments() {
-                if (configuredEnvironment != null) {
-                    return configuredEnvironment.getActiveProfiles().toList()
-                } else {
-                    return Collections.emptyList()
-                }
-            }
-
-            @Override
-            Optional<Boolean> getDeduceEnvironments() {
-                return Optional.of(false)
-            }
-
-            @Override
-            ClassLoader getClassLoader() {
-                return applicationClassLoader
-            }
-        }
-
-        List beanExcludes = []
-        beanExcludes.add(ConversionService.class)
-        beanExcludes.add(Environment.class)
-        beanExcludes.add(PropertyResolver.class)
-        beanExcludes.add(ConfigurableEnvironment.class)
-        def objectMapper = 
ClassUtils.forName('com.fasterxml.jackson.databind.ObjectMapper', 
applicationClassLoader).orElse(null)
-        if (objectMapper != null) {
-            beanExcludes.add(objectMapper)
-        }
-        def micronautContext = new 
DefaultApplicationContext(micronautConfiguration);
-        micronautContext
-                .environment
-                .addPropertySource('grails-config', 
[(MicronautBeanFactoryConfiguration.PREFIX + '.bean-excludes'): (Object) 
beanExcludes])
-        micronautContext.start()
-        ConfigurableApplicationContext parentContext = 
micronautContext.getBean(ConfigurableApplicationContext)
-        applicationContext.setParent(
-                parentContext
-        )
-        applicationContext.addApplicationListener(new 
MicronautShutdownListener(micronautContext))
-        log.info('Started Micronaut Parent Application Context in {}ms', 
System.currentTimeMillis() - now)
-    }
-}
diff --git 
a/grails-micronaut/src/main/groovy/org/apache/grails/micronaut/config/MicronautGroovyPropertySourceLoader.groovy
 
b/grails-micronaut/src/main/groovy/org/apache/grails/micronaut/config/MicronautGroovyPropertySourceLoader.groovy
index 3a7ce891de..ca5f07cf6a 100644
--- 
a/grails-micronaut/src/main/groovy/org/apache/grails/micronaut/config/MicronautGroovyPropertySourceLoader.groovy
+++ 
b/grails-micronaut/src/main/groovy/org/apache/grails/micronaut/config/MicronautGroovyPropertySourceLoader.groovy
@@ -17,7 +17,7 @@
  *  under the License.
  */
 
-package org.apache.grails.micronaut
+package org.apache.grails.micronaut.config
 
 import grails.plugins.GrailsPlugin
 import grails.util.Environment
diff --git 
a/grails-micronaut/src/main/groovy/org/apache/grails/micronaut/config/MicronautYamlPropertySourceLoader.groovy
 
b/grails-micronaut/src/main/groovy/org/apache/grails/micronaut/config/MicronautYamlPropertySourceLoader.groovy
index 9b51523959..b0e0bd0571 100644
--- 
a/grails-micronaut/src/main/groovy/org/apache/grails/micronaut/config/MicronautYamlPropertySourceLoader.groovy
+++ 
b/grails-micronaut/src/main/groovy/org/apache/grails/micronaut/config/MicronautYamlPropertySourceLoader.groovy
@@ -17,7 +17,7 @@
  *  under the License.
  */
 
-package org.grails.core.cfg
+package org.apache.grails.micronaut.config
 
 import grails.plugins.GrailsPlugin
 import grails.util.Environment
diff --git a/grails-test-examples/micronaut/build.gradle 
b/grails-test-examples/micronaut/build.gradle
index 91760fc76f..7f2e5a38ee 100644
--- a/grails-test-examples/micronaut/build.gradle
+++ b/grails-test-examples/micronaut/build.gradle
@@ -20,8 +20,9 @@
 version = '0.1'
 group = 'micronaut'
 
-apply plugin:'org.apache.grails.gradle.grails-web'
-apply plugin:'cloud.wondrify.asset-pipeline'
+apply plugin: 'org.apache.grails.gradle.grails-plugin'
+//apply plugin: 'org.apache.grails.gradle.grails-web'
+apply plugin: 'cloud.wondrify.asset-pipeline'
 
 // The grails-gsp Gradle plugin is not needed for running the functional tests.
 // It is applied as a smoke test to check that compiling gsp
@@ -31,47 +32,24 @@ apply plugin: 'org.apache.grails.gradle.grails-gsp'
 dependencies {
     implementation platform(project(':grails-bom'))
 
-    implementation 'org.springframework.boot:spring-boot-starter-logging'
-    implementation 'org.springframework.boot:spring-boot-autoconfigure'
-    implementation 'org.apache.grails:grails-core'
-    implementation 'org.springframework.boot:spring-boot-starter-actuator'
-    implementation 'org.springframework.boot:spring-boot-starter-tomcat'
+    implementation 'org.apache.grails:grails-dependencies-starter-web'
     implementation 'org.apache.grails:grails-micronaut'
-    implementation 'org.apache.grails:grails-web-boot'
-    if(System.getenv('SITEMESH3_TESTING_ENABLED') == 'true') {
-        implementation 'org.apache.grails:grails-sitemesh3'
-    }
-    else {
-        implementation 'org.apache.grails:grails-layout'
-    }
-    implementation 'org.apache.grails:grails-logging'
-    implementation 'org.apache.grails:grails-rest-transforms'
-    implementation 'org.apache.grails:grails-databinding'
-    implementation 'org.apache.grails:grails-i18n'
-    implementation 'org.apache.grails:grails-services'
-    implementation 'org.apache.grails:grails-url-mappings'
-    implementation 'org.apache.grails:grails-interceptors'
-    implementation 'org.apache.grails:grails-cache'
-    implementation 'org.apache.grails:grails-async'
-    implementation 'org.apache.grails:grails-scaffolding'
-    implementation 'org.apache.grails:grails-events'
-    implementation 'org.apache.grails:grails-data-hibernate5'
-    implementation 'org.apache.grails:grails-gsp'
-    compileOnly "io.micronaut:micronaut-inject-groovy:$micronautVersion"
+
+//    annotationProcessor 
platform("io.micronaut.platform:micronaut-platform:$micronautPlatformVersion")
+//    annotationProcessor 'io.micronaut.cache:micronaut-cache-core'
+//    annotationProcessor 'io.micronaut.spring:micronaut-spring-annotation'
+//    annotationProcessor 
'io.micronaut.spring:micronaut-spring-boot-annotation'
+//    annotationProcessor 'io.micronaut:micronaut-inject-java'
+//    annotationProcessor 'jakarta.annotation:jakarta.annotation-api'
 
     testAndDevelopmentOnly platform(project(':grails-bom'))
-    testAndDevelopmentOnly 'org.webjars.npm:bootstrap'
-    testAndDevelopmentOnly 'org.webjars.npm:jquery'
-    testAndDevelopmentOnly 
"io.micronaut:micronaut-inject-groovy:$micronautVersion"
+    testAndDevelopmentOnly 'org.apache.grails:grails-dependencies-assets'
 
-    console 'org.apache.grails:grails-console'
-    profile 'org.apache.grails.profiles:web'
     runtimeOnly 'com.h2database:h2'
     runtimeOnly 'org.apache.tomcat:tomcat-jdbc'
     runtimeOnly 'cloud.wondrify:asset-pipeline-grails'
-    testImplementation 'org.apache.grails:grails-testing-support-datamapping'
-    testImplementation 'org.mockito:mockito-core'
-    testImplementation 'org.apache.grails:grails-testing-support-web'
+
+    testImplementation 'org.apache.grails:grails-dependencies-test'
 
     integrationTestImplementation testFixtures('org.apache.grails:grails-geb')
 }
@@ -92,4 +70,11 @@ apply {
     from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
     from 
rootProject.layout.projectDirectory.file('gradle/test-webjar-asset-config.gradle')
     from 
rootProject.layout.projectDirectory.file('gradle/grails-extension-gradle-config.gradle')
-}
\ No newline at end of file
+}
+
+//grails {
+//    springDependencyManagement = false
+//}
+//tasks.withType(GroovyCompile).configureEach {
+//    it.groovyOptions.forkOptions.jvmArgs = ["-Xdebug", "-Xnoagent", 
"-Djava.compiler=NONE", 
"-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005"]
+//}
\ No newline at end of file
diff --git 
a/grails-test-examples/micronaut/grails-app/init/micronaut/Application.groovy 
b/grails-test-examples/micronaut/grails-app/init/micronaut/Application.groovy
index 8f1da48215..c694fda2f2 100644
--- 
a/grails-test-examples/micronaut/grails-app/init/micronaut/Application.groovy
+++ 
b/grails-test-examples/micronaut/grails-app/init/micronaut/Application.groovy
@@ -19,17 +19,17 @@
 
 package micronaut
 
-import grails.boot.ApplicationContextCustomizer
 import grails.boot.GrailsApp
 import grails.boot.config.GrailsAutoConfiguration
-import org.apache.grails.micronaut.MicronautParentContextAdder
 
 import groovy.transform.CompileStatic
+import io.micronaut.spring.boot.starter.EnableMicronaut
+import org.apache.grails.micronaut.GrailsMicronautBeanFilter
 
 @CompileStatic
+@EnableMicronaut(filter = GrailsMicronautBeanFilter)
 class Application extends GrailsAutoConfiguration {
     static void main(String[] args) {
-        def adder = new MicronautParentContextAdder()
-        GrailsApp.run([Application] as Class[], args, adder as 
ApplicationContextCustomizer)
+        GrailsApp.run(Application, args)
     }
 }
\ No newline at end of file

Reply via email to