From 95544e2851a1c62f177d5c11d38f84ee699d50f8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 28 Oct 2024 23:15:16 +0000 Subject: [PATCH 01/38] Update dependency com.fasterxml.jackson:jackson-bom to v2.18.1 --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 91124ece0cb..a318697f4fa 100644 --- a/gradle.properties +++ b/gradle.properties @@ -42,7 +42,7 @@ grails-testing-support.version=4.0.0-SNAPSHOT groovy.version=4.0.23 gsp.version=7.0.0-SNAPSHOT h2.version=2.3.232 -jackson.version=2.18.0 +jackson.version=2.18.1 jansi.version=1.18 javaparser-core.version=3.26.2 jline.version=2.14.6 From 8c1095af6db10151048518cad6450f9fdab777ec Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 13 Nov 2024 13:11:27 +0000 Subject: [PATCH 02/38] chore(deps): update plugin com.gradle.develocity to v3.18.2 --- settings.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/settings.gradle b/settings.gradle index 896ccf2b197..f45efeb2a42 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,5 +1,5 @@ plugins { - id 'com.gradle.develocity' version '3.18.1' + id 'com.gradle.develocity' version '3.18.2' id 'com.gradle.common-custom-user-data-gradle-plugin' version '2.0.2' } From 00d1bef89708ec3a30618d92dec98c72ad842c13 Mon Sep 17 00:00:00 2001 From: James Fredley Date: Thu, 14 Nov 2024 19:10:52 -0500 Subject: [PATCH 03/38] update dependencies ahead of Grails 6.2.2 --- gradle.properties | 16 ++++++++-------- .../src/test/groovy/grails/io/IOUtilsSpec.groovy | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/gradle.properties b/gradle.properties index 449b1d28252..d149f20a280 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ projectVersion=6.2.2-SNAPSHOT -antVersion=1.10.14 -aspectjVersion=1.9.22 +antVersion=1.10.15 +aspectjVersion=1.9.22.1 asyncVersion=5.0.2 caffeineVersion=2.9.3 cglibVersion=2.2.2 @@ -11,8 +11,8 @@ fieldsPluginVersion=5.1.0 gdocEngineVersion=1.0.1 gradleNexusPluginVersion=2.3.1 gradleNexusStagingPluginVersion=0.12.0 -groovyVersion=3.0.21 -gspVersion=6.2.2 +groovyVersion=3.0.23 +gspVersion=6.2.3 h2.version=2.2.224 h2Version=2.2.224 hibernateDatastoreVersion=8.1.0 @@ -32,21 +32,21 @@ micronautCacheVersion=3.5.0 micronautRuntimeGroovyVersion=3.4.0 micronautSpringVersion=4.5.1 micronautVersion=3.10.4 -mongodbJavaDriverVersion=4.11.0 +mongodbJavaDriverVersion=4.11.5 objenesisVersion=3.3 scaffoldingCoreVersion=2.1.0 servletApiVersion=4.0.1 slf4jVersion=1.7.36 snakeyamlVersion=2.2 -spockVersion=2.1-groovy-3.0 +spockVersion=2.3-groovy-3.0 springBootVersion=2.7.18 springLoadedVersion=1.2.8.RELEASE springVersion=5.3.39 spring.version=5.3.39 -testingSupportVersion=3.2.1 +testingSupportVersion=3.2.2 testingSupportVersionForTests=3.2.2 tomcatLog4jVersion=8.5.2 -tomcatVersion=9.0.95 +tomcatVersion=9.0.97 viewsVersion=3.2.3 org.gradle.caching=true org.gradle.parallel=true diff --git a/grails-bootstrap/src/test/groovy/grails/io/IOUtilsSpec.groovy b/grails-bootstrap/src/test/groovy/grails/io/IOUtilsSpec.groovy index cf68c4cd749..eca28e46582 100644 --- a/grails-bootstrap/src/test/groovy/grails/io/IOUtilsSpec.groovy +++ b/grails-bootstrap/src/test/groovy/grails/io/IOUtilsSpec.groovy @@ -15,6 +15,6 @@ class IOUtilsSpec extends Specification{ void "Test findJarResource finds a the JAR resource"() { expect: IOUtils.findJarResource(Specification) - IOUtils.findJarResource(Specification).path.endsWith('spock-core-2.1-groovy-3.0.jar!/') + IOUtils.findJarResource(Specification).path.endsWith('spock-core-2.3-groovy-3.0.jar!/') } } From e24b0cf848a7c52d6164202dfd042613192bde0c Mon Sep 17 00:00:00 2001 From: Scott Murphy Heiberg Date: Mon, 18 Nov 2024 08:47:30 -0800 Subject: [PATCH 04/38] use EnableAutoConfiguration over SpringBootApplication --- .../groovy/grails/boot/EmbeddedContainerWithGrailsSpec.groovy | 4 ++-- .../groovy/grails/boot/GrailsSpringApplicationSpec.groovy | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/grails-web-boot/src/test/groovy/grails/boot/EmbeddedContainerWithGrailsSpec.groovy b/grails-web-boot/src/test/groovy/grails/boot/EmbeddedContainerWithGrailsSpec.groovy index 729cb09440f..f0de34e50ed 100644 --- a/grails-web-boot/src/test/groovy/grails/boot/EmbeddedContainerWithGrailsSpec.groovy +++ b/grails-web-boot/src/test/groovy/grails/boot/EmbeddedContainerWithGrailsSpec.groovy @@ -3,7 +3,7 @@ package grails.boot import grails.artefact.Artefact import grails.boot.config.GrailsAutoConfiguration import grails.web.Controller -import org.springframework.boot.autoconfigure.SpringBootApplication +import org.springframework.boot.autoconfigure.EnableAutoConfiguration import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory import org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext import org.springframework.boot.web.servlet.server.ConfigurableServletWebServerFactory @@ -31,7 +31,7 @@ class EmbeddedContainerWithGrailsSpec extends Specification { new URL("http://localhost:${context.webServer.port}/foos").text == 'all foos' } - @SpringBootApplication + @EnableAutoConfiguration static class Application extends GrailsAutoConfiguration { @Bean ConfigurableServletWebServerFactory webServerFactory() { diff --git a/grails-web-boot/src/test/groovy/grails/boot/GrailsSpringApplicationSpec.groovy b/grails-web-boot/src/test/groovy/grails/boot/GrailsSpringApplicationSpec.groovy index d02c981a27a..f40b6d0fd3c 100644 --- a/grails-web-boot/src/test/groovy/grails/boot/GrailsSpringApplicationSpec.groovy +++ b/grails-web-boot/src/test/groovy/grails/boot/GrailsSpringApplicationSpec.groovy @@ -2,7 +2,7 @@ package grails.boot import grails.boot.config.GrailsAutoConfiguration import org.springframework.boot.SpringApplication -import org.springframework.boot.autoconfigure.SpringBootApplication +import org.springframework.boot.autoconfigure.EnableAutoConfiguration import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory import org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext import org.springframework.boot.web.servlet.server.ConfigurableServletWebServerFactory @@ -32,7 +32,7 @@ class GrailsSpringApplicationSpec extends Specification{ } - @SpringBootApplication + @EnableAutoConfiguration static class Application extends GrailsAutoConfiguration { @Bean ConfigurableServletWebServerFactory webServerFactory() { From 1dc46f525c2d7ea98017fa8dff849eb863067cc7 Mon Sep 17 00:00:00 2001 From: James Fredley Date: Mon, 18 Nov 2024 20:52:21 -0500 Subject: [PATCH 05/38] update more dependencies ahead of Grails 6.2.2 --- grails-bom/plugins.properties | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/grails-bom/plugins.properties b/grails-bom/plugins.properties index af16065ab19..d2aef8d26b8 100644 --- a/grails-bom/plugins.properties +++ b/grails-bom/plugins.properties @@ -1,7 +1,7 @@ -gorm.hibernate5=8.1.0 +gorm.hibernate5=8.1.1 gorm.mongodb=8.2.0 gorm.neo4j=8.1.0 -grails-gradle-plugin=6.2.2-SNAPSHOT +grails-gradle-plugin=6.2.3 cache=7.0.0 rxjava=1.1.1 rxjava2=2.0.0 From 0870a698541f52a2097e06fd8f654f72f7d4aa0b Mon Sep 17 00:00:00 2001 From: Mattias Reichel Date: Tue, 19 Nov 2024 21:25:03 +0100 Subject: [PATCH 06/38] fix(deps): Align versions of transitive dependencies with Grails specified versions (#13860) Ensure consistent versions of `spring-core`, `spring-jcl`, `spring-orm`, `snakeyaml`, `tomcat-jdbc` and `tomcat-jul` across all transitive dependencies. This resolves potential version conflicts caused by different versions being pulled in by other dependencies. Closes #13856 --- build.gradle | 38 ++++++++++++++++++++++++-------------- 1 file changed, 24 insertions(+), 14 deletions(-) diff --git a/build.gradle b/build.gradle index 3c6b86fc15c..5e8365ae1f9 100644 --- a/build.gradle +++ b/build.gradle @@ -232,20 +232,30 @@ allprojects { } } - configurations { - all { - resolutionStrategy { - def cacheHours = isCiBuild ? 0 : 24 - cacheDynamicVersionsFor cacheHours, 'hours' - cacheChangingModulesFor cacheHours, 'hours' - eachDependency { DependencyResolveDetails details -> - //specifying a fixed version for all libraries with 'org.gradle' group - if (details.requested.group == 'org.codehaus.groovy') { - details.useVersion groovyVersion - } - if (details.requested.group == "org.spockframework") { - details.useVersion(spockVersion) - } + configurations.configureEach { + resolutionStrategy { + def cacheHours = isCiBuild ? 0 : 24 + cacheDynamicVersionsFor cacheHours, 'hours' + cacheChangingModulesFor cacheHours, 'hours' + + // Align versions of transitive dependencies with the version we are using + eachDependency { DependencyResolveDetails details -> + def forcedSpringLibraryUpgrades = ['spring-core', 'spring-jcl', 'spring.orm'] + def forcedTomcatLibraryUpgrades = ['tomcat-jdbc', 'tomcat-juli'] + if (details.requested.group == 'org.codehaus.groovy') { + details.useVersion(groovyVersion) + } + if (details.requested.group == 'org.spockframework') { + details.useVersion(spockVersion) + } + if (details.requested.group == 'org.springframework' && details.requested.name in forcedSpringLibraryUpgrades) { + details.useVersion(springVersion) + } + if (details.requested.group == 'org.yaml' && details.requested.name == 'snakeyaml') { + details.useVersion(snakeyamlVersion) + } + if (details.requested.group == 'org.apache.tomcat' && details.requested.name in forcedTomcatLibraryUpgrades) { + details.useVersion(tomcatVersion) } } } From 4804ab1bd05c850e905ecb41f7f2c9c0f10a69f6 Mon Sep 17 00:00:00 2001 From: James Fredley Date: Wed, 20 Nov 2024 11:51:53 -0500 Subject: [PATCH 07/38] final version updates --- gradle.properties | 4 ++-- grails-bom/plugins.properties | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/gradle.properties b/gradle.properties index d149f20a280..bcc33c72611 100644 --- a/gradle.properties +++ b/gradle.properties @@ -7,12 +7,12 @@ cglibVersion=2.2.2 commonsLangVersion=2.6 datastoreVersion=8.1.2 directoryWatcherVersion=0.9.9 -fieldsPluginVersion=5.1.0 +fieldsPluginVersion=5.1.1 gdocEngineVersion=1.0.1 gradleNexusPluginVersion=2.3.1 gradleNexusStagingPluginVersion=0.12.0 groovyVersion=3.0.23 -gspVersion=6.2.3 +gspVersion=6.2.4 h2.version=2.2.224 h2Version=2.2.224 hibernateDatastoreVersion=8.1.0 diff --git a/grails-bom/plugins.properties b/grails-bom/plugins.properties index d2aef8d26b8..be01eb2caae 100644 --- a/grails-bom/plugins.properties +++ b/grails-bom/plugins.properties @@ -5,7 +5,7 @@ grails-gradle-plugin=6.2.3 cache=7.0.0 rxjava=1.1.1 rxjava2=2.0.0 -scaffolding=5.1.2 +scaffolding=5.1.3 geb=4.0.0 views-json=3.2.3 views-json-templates=3.2.3 From 9f8a4b06f4d6ca6cd5b0cda34b4e7f801ccfb099 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 20 Nov 2024 17:41:47 +0000 Subject: [PATCH 08/38] Update dependency org.gradle:gradle-tooling-api to v8.11.1 --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 78128a8763f..df83ceff6f9 100644 --- a/gradle.properties +++ b/gradle.properties @@ -8,7 +8,7 @@ gradleNexusPluginVersion=2.3.1 gradleNexusPublishPluginVersion=2.0.0 gradleExtraConfigurationsPluginVersion=10.0.1 gradleLicensePluginVersion=0.16.1 -gradleToolingApiVersion=8.10.2 +gradleToolingApiVersion=8.11.1 groovyVersion=4.0.24 joptSimpleVersion=5.0.4 plexusComponentApiVersion=1.0-alpha-33 From 59a2ad9cc7d267af86bbc578b32aaed115c0e8ba Mon Sep 17 00:00:00 2001 From: grails-build Date: Wed, 20 Nov 2024 20:20:52 +0000 Subject: [PATCH 09/38] Back to 6.2.3-SNAPSHOT --- gradle.properties | 2 +- grails-core/src/test/groovy/grails/util/GrailsUtilTests.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/gradle.properties b/gradle.properties index bcc33c72611..bbe51e3dfd6 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ -projectVersion=6.2.2-SNAPSHOT +projectVersion=6.2.3-SNAPSHOT antVersion=1.10.15 aspectjVersion=1.9.22.1 asyncVersion=5.0.2 diff --git a/grails-core/src/test/groovy/grails/util/GrailsUtilTests.java b/grails-core/src/test/groovy/grails/util/GrailsUtilTests.java index ed33ba50e43..b888e31a716 100644 --- a/grails-core/src/test/groovy/grails/util/GrailsUtilTests.java +++ b/grails-core/src/test/groovy/grails/util/GrailsUtilTests.java @@ -29,7 +29,7 @@ public class GrailsUtilTests { @Test public void testGrailsVersion() { - assertEquals("6.2.2-SNAPSHOT", GrailsUtil.getGrailsVersion()); + assertEquals("6.2.3-SNAPSHOT", GrailsUtil.getGrailsVersion()); } @AfterEach From 5ec82918afdf23a432c96f9125722e129aa9c38a Mon Sep 17 00:00:00 2001 From: Scott Murphy Heiberg Date: Wed, 20 Nov 2024 20:15:01 -0800 Subject: [PATCH 10/38] Move WebMvcConfigurer to auto configuration --- .../ControllersAutoConfiguration.java | 65 +++++++++++++++++++ .../ControllersGrailsPlugin.groovy | 60 ----------------- 2 files changed, 65 insertions(+), 60 deletions(-) diff --git a/grails-plugin-controllers/src/main/groovy/org/grails/plugins/web/controllers/ControllersAutoConfiguration.java b/grails-plugin-controllers/src/main/groovy/org/grails/plugins/web/controllers/ControllersAutoConfiguration.java index 85b916322e0..641e4aad8fe 100644 --- a/grails-plugin-controllers/src/main/groovy/org/grails/plugins/web/controllers/ControllersAutoConfiguration.java +++ b/grails-plugin-controllers/src/main/groovy/org/grails/plugins/web/controllers/ControllersAutoConfiguration.java @@ -17,6 +17,8 @@ import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.Bean; import org.springframework.web.filter.CharacterEncodingFilter; +import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; import java.util.EnumSet; @@ -30,6 +32,15 @@ public class ControllersAutoConfiguration { @Value("${" + Settings.FILTER_FORCE_ENCODING + ":false}") private boolean filtersForceEncoding; + @Value("${" + Settings.RESOURCES_CACHE_PERIOD + ":0}") + int resourcesCachePeriod; + + @Value("${" + Settings.RESOURCES_ENABLED + ":true}") + boolean resourcesEnabled; + + @Value("${" + Settings.RESOURCES_PATTERN + ":"+Settings.DEFAULT_RESOURCE_PATTERN+"}") + String resourcesPattern; + @Bean @ConditionalOnMissingBean(CharacterEncodingFilter.class) public CharacterEncodingFilter characterEncodingFilter() { @@ -67,4 +78,58 @@ public FilterRegistrationBean grailsWebRequestFilter(ApplicationContext registrationBean.setOrder(GrailsFilters.GRAILS_WEB_REQUEST_FILTER.getOrder()); return registrationBean; } + + @Bean + GrailsWebMvcConfigurer webMvcConfig() { + return new GrailsWebMvcConfigurer(resourcesCachePeriod, resourcesEnabled, resourcesPattern); + } + + static class GrailsWebMvcConfigurer implements WebMvcConfigurer { + + private static final String[] SERVLET_RESOURCE_LOCATIONS = new String[] { "/" }; + + private static final String[] CLASSPATH_RESOURCE_LOCATIONS = new String[] { + "classpath:/META-INF/resources/", "classpath:/resources/", + "classpath:/static/", "classpath:/public/" + }; + + private static final String[] RESOURCE_LOCATIONS; + + static { + RESOURCE_LOCATIONS = new String[CLASSPATH_RESOURCE_LOCATIONS.length + + SERVLET_RESOURCE_LOCATIONS.length]; + System.arraycopy(SERVLET_RESOURCE_LOCATIONS, 0, RESOURCE_LOCATIONS, 0, + SERVLET_RESOURCE_LOCATIONS.length); + System.arraycopy(CLASSPATH_RESOURCE_LOCATIONS, 0, RESOURCE_LOCATIONS, + SERVLET_RESOURCE_LOCATIONS.length, CLASSPATH_RESOURCE_LOCATIONS.length); + } + + boolean addMappings; + Integer cachePeriod; + String resourcesPattern; + + GrailsWebMvcConfigurer(Integer cachePeriod, Boolean addMappings, String resourcesPattern) { + this.addMappings = addMappings; + this.cachePeriod = cachePeriod; + this.resourcesPattern = resourcesPattern; + } + + @Override + public void addResourceHandlers(ResourceHandlerRegistry registry) { + if (!addMappings) { + return; + } + + if (!registry.hasMappingForPattern("/webjars/**")) { + registry.addResourceHandler("/webjars/**") + .addResourceLocations("classpath:/META-INF/resources/webjars/") + .setCachePeriod(cachePeriod); + } + if (!registry.hasMappingForPattern(resourcesPattern)) { + registry.addResourceHandler(resourcesPattern) + .addResourceLocations(RESOURCE_LOCATIONS) + .setCachePeriod(cachePeriod); + } + } + } } diff --git a/grails-plugin-controllers/src/main/groovy/org/grails/plugins/web/controllers/ControllersGrailsPlugin.groovy b/grails-plugin-controllers/src/main/groovy/org/grails/plugins/web/controllers/ControllersGrailsPlugin.groovy index 2995ed8add1..ac96cb64a42 100644 --- a/grails-plugin-controllers/src/main/groovy/org/grails/plugins/web/controllers/ControllersGrailsPlugin.groovy +++ b/grails-plugin-controllers/src/main/groovy/org/grails/plugins/web/controllers/ControllersGrailsPlugin.groovy @@ -19,7 +19,6 @@ import grails.config.Settings import grails.core.GrailsControllerClass import grails.plugins.Plugin import grails.util.GrailsUtil -import groovy.transform.CompileStatic import groovy.util.logging.Slf4j import org.grails.core.artefact.ControllerArtefactHandler import org.grails.plugins.web.servlet.context.BootStrapClassRunner @@ -31,9 +30,6 @@ import org.springframework.beans.factory.support.AbstractBeanDefinition import org.springframework.boot.autoconfigure.web.servlet.DispatcherServletRegistrationBean import org.springframework.context.ApplicationContext import org.springframework.util.ClassUtils -import org.springframework.web.multipart.support.StandardServletMultipartResolver -import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry -import org.springframework.web.servlet.config.annotation.WebMvcConfigurer import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping import jakarta.servlet.MultipartConfigElement @@ -67,9 +63,6 @@ class ControllersGrailsPlugin extends Plugin { int fileSizeThreashold = config.getProperty(Settings.CONTROLLERS_UPLOAD_FILE_SIZE_THRESHOLD, Integer, 0) boolean isTomcat = ClassUtils.isPresent("org.apache.catalina.startup.Tomcat", application.classLoader) String grailsServletPath = config.getProperty(Settings.WEB_SERVLET_PATH, isTomcat ? Settings.DEFAULT_TOMCAT_SERVLET_PATH : Settings.DEFAULT_WEB_SERVLET_PATH) - int resourcesCachePeriod = config.getProperty(Settings.RESOURCES_CACHE_PERIOD, Integer, 0) - boolean resourcesEnabled = config.getProperty(Settings.RESOURCES_ENABLED, Boolean, true) - String resourcesPattern = config.getProperty(Settings.RESOURCES_PATTERN, String, Settings.DEFAULT_RESOURCE_PATTERN) if (!Boolean.parseBoolean(System.getProperty(Settings.SETTING_SKIP_BOOTSTRAP))) { bootStrapClassRunner(BootStrapClassRunner) @@ -93,9 +86,6 @@ class ControllersGrailsPlugin extends Plugin { annotationHandlerMapping(RequestMappingHandlerMapping, interceptorsClosure) annotationHandlerAdapter(RequestMappingHandlerAdapter) - // add Grails webmvc config - webMvcConfig(GrailsWebMvcConfigurer, resourcesCachePeriod, resourcesEnabled, resourcesPattern) - // add the dispatcher servlet dispatcherServlet(GrailsDispatcherServlet) dispatcherServletRegistration(DispatcherServletRegistrationBean, ref("dispatcherServlet"), grailsServletPath) { @@ -128,55 +118,6 @@ class ControllersGrailsPlugin extends Plugin { } } } - - @CompileStatic - static class GrailsWebMvcConfigurer implements WebMvcConfigurer { - - private static final String[] SERVLET_RESOURCE_LOCATIONS = [ "/" ] - - private static final String[] CLASSPATH_RESOURCE_LOCATIONS = [ - "classpath:/META-INF/resources/", "classpath:/resources/", - "classpath:/static/", "classpath:/public/" ] - - private static final String[] RESOURCE_LOCATIONS - static { - RESOURCE_LOCATIONS = new String[CLASSPATH_RESOURCE_LOCATIONS.length - + SERVLET_RESOURCE_LOCATIONS.length] - System.arraycopy(SERVLET_RESOURCE_LOCATIONS, 0, RESOURCE_LOCATIONS, 0, - SERVLET_RESOURCE_LOCATIONS.length) - System.arraycopy(CLASSPATH_RESOURCE_LOCATIONS, 0, RESOURCE_LOCATIONS, - SERVLET_RESOURCE_LOCATIONS.length, CLASSPATH_RESOURCE_LOCATIONS.length); - } - - boolean addMappings = true - Integer cachePeriod - String resourcesPattern - - GrailsWebMvcConfigurer(Integer cachePeriod, boolean addMappings = true, String resourcesPattern = '/static/**') { - this.addMappings = addMappings - this.cachePeriod = cachePeriod - this.resourcesPattern = resourcesPattern - } - - @Override - public void addResourceHandlers(ResourceHandlerRegistry registry) { - if (!addMappings) { - return - } - - if (!registry.hasMappingForPattern("/webjars/**")) { - registry.addResourceHandler("/webjars/**") - .addResourceLocations("classpath:/META-INF/resources/webjars/") - .setCachePeriod(cachePeriod) - } - if (!registry.hasMappingForPattern(resourcesPattern)) { - registry.addResourceHandler(resourcesPattern) - .addResourceLocations(RESOURCE_LOCATIONS) - .setCachePeriod(cachePeriod) - } - } - } - @Override void onChange( Map event) { if (!(event.source instanceof Class)) { @@ -205,5 +146,4 @@ class ControllersGrailsPlugin extends Plugin { } } } - } From 79ca9e56cbe1108334a5d2f4209570a118b2a645 Mon Sep 17 00:00:00 2001 From: Scott Murphy Heiberg Date: Wed, 20 Nov 2024 21:29:28 -0800 Subject: [PATCH 11/38] move multipartConfig to auto configuration --- .../ControllersAutoConfiguration.java | 31 ++++++++++++++++--- .../ControllersGrailsPlugin.groovy | 8 +---- 2 files changed, 27 insertions(+), 12 deletions(-) diff --git a/grails-plugin-controllers/src/main/groovy/org/grails/plugins/web/controllers/ControllersAutoConfiguration.java b/grails-plugin-controllers/src/main/groovy/org/grails/plugins/web/controllers/ControllersAutoConfiguration.java index 641e4aad8fe..8e6519111c9 100644 --- a/grails-plugin-controllers/src/main/groovy/org/grails/plugins/web/controllers/ControllersAutoConfiguration.java +++ b/grails-plugin-controllers/src/main/groovy/org/grails/plugins/web/controllers/ControllersAutoConfiguration.java @@ -3,6 +3,7 @@ import grails.config.Settings; import jakarta.servlet.DispatcherType; import jakarta.servlet.Filter; +import jakarta.servlet.MultipartConfigElement; import org.grails.web.config.http.GrailsFilters; import org.grails.web.filters.HiddenHttpMethodFilter; import org.grails.web.servlet.mvc.GrailsWebRequestFilter; @@ -33,13 +34,25 @@ public class ControllersAutoConfiguration { private boolean filtersForceEncoding; @Value("${" + Settings.RESOURCES_CACHE_PERIOD + ":0}") - int resourcesCachePeriod; + private int resourcesCachePeriod; @Value("${" + Settings.RESOURCES_ENABLED + ":true}") - boolean resourcesEnabled; + private boolean resourcesEnabled; - @Value("${" + Settings.RESOURCES_PATTERN + ":"+Settings.DEFAULT_RESOURCE_PATTERN+"}") - String resourcesPattern; + @Value("${" + Settings.RESOURCES_PATTERN + ":" + Settings.DEFAULT_RESOURCE_PATTERN + "}") + private String resourcesPattern; + + @Value("${" + Settings.CONTROLLERS_UPLOAD_LOCATION + ":#{null}}") + private String uploadTmpDir; + + @Value("${" + Settings.CONTROLLERS_UPLOAD_MAX_FILE_SIZE + ":128000}") + private long maxFileSize; + + @Value("${" + Settings.CONTROLLERS_UPLOAD_MAX_REQUEST_SIZE + ":128000}") + private long maxRequestSize; + + @Value("${" + Settings.CONTROLLERS_UPLOAD_FILE_SIZE_THRESHOLD + ":0}") + private int fileSizeThreshold; @Bean @ConditionalOnMissingBean(CharacterEncodingFilter.class) @@ -80,7 +93,15 @@ public FilterRegistrationBean grailsWebRequestFilter(ApplicationContext } @Bean - GrailsWebMvcConfigurer webMvcConfig() { + public MultipartConfigElement multipartConfigElement() { + if (uploadTmpDir == null) { + uploadTmpDir = System.getProperty("java.io.tmpdir"); + } + return new MultipartConfigElement(uploadTmpDir, maxFileSize, maxRequestSize, fileSizeThreshold); + } + + @Bean + public GrailsWebMvcConfigurer webMvcConfig() { return new GrailsWebMvcConfigurer(resourcesCachePeriod, resourcesEnabled, resourcesPattern); } diff --git a/grails-plugin-controllers/src/main/groovy/org/grails/plugins/web/controllers/ControllersGrailsPlugin.groovy b/grails-plugin-controllers/src/main/groovy/org/grails/plugins/web/controllers/ControllersGrailsPlugin.groovy index ac96cb64a42..e73928df14d 100644 --- a/grails-plugin-controllers/src/main/groovy/org/grails/plugins/web/controllers/ControllersGrailsPlugin.groovy +++ b/grails-plugin-controllers/src/main/groovy/org/grails/plugins/web/controllers/ControllersGrailsPlugin.groovy @@ -57,10 +57,6 @@ class ControllersGrailsPlugin extends Plugin { def config = application.config boolean useJsessionId = config.getProperty(Settings.GRAILS_VIEWS_ENABLE_JSESSIONID, Boolean, false) - String uploadTmpDir = config.getProperty(Settings.CONTROLLERS_UPLOAD_LOCATION, System.getProperty("java.io.tmpdir")) - long maxFileSize = config.getProperty(Settings.CONTROLLERS_UPLOAD_MAX_FILE_SIZE, Long, 128000L) - long maxRequestSize = config.getProperty(Settings.CONTROLLERS_UPLOAD_MAX_REQUEST_SIZE, Long, 128000L) - int fileSizeThreashold = config.getProperty(Settings.CONTROLLERS_UPLOAD_FILE_SIZE_THRESHOLD, Integer, 0) boolean isTomcat = ClassUtils.isPresent("org.apache.catalina.startup.Tomcat", application.classLoader) String grailsServletPath = config.getProperty(Settings.WEB_SERVLET_PATH, isTomcat ? Settings.DEFAULT_TOMCAT_SERVLET_PATH : Settings.DEFAULT_WEB_SERVLET_PATH) @@ -76,8 +72,6 @@ class ControllersGrailsPlugin extends Plugin { "${CompositeViewResolver.BEAN_NAME}"(CompositeViewResolver) - multipartConfigElement(MultipartConfigElement, uploadTmpDir, maxFileSize, maxRequestSize, fileSizeThreashold) - def handlerInterceptors = springConfig.containsBean("localeChangeInterceptor") ? [ref("localeChangeInterceptor")] : [] def interceptorsClosure = { interceptors = handlerInterceptors @@ -91,7 +85,7 @@ class ControllersGrailsPlugin extends Plugin { dispatcherServletRegistration(DispatcherServletRegistrationBean, ref("dispatcherServlet"), grailsServletPath) { loadOnStartup = 2 asyncSupported = true - multipartConfig = multipartConfigElement + multipartConfig = ref('multipartConfigElement') } for (controller in application.getArtefacts(ControllerArtefactHandler.TYPE)) { From 4634e09062563fb003290581b1109467fae1d05c Mon Sep 17 00:00:00 2001 From: Scott Murphy Heiberg Date: Wed, 20 Nov 2024 22:04:38 -0800 Subject: [PATCH 12/38] Move DispatcherServlet to ControllersAutoConfiguration --- .../ControllersAutoConfiguration.java | 26 +++++++++++++++++++ .../ControllersGrailsPlugin.groovy | 14 ---------- 2 files changed, 26 insertions(+), 14 deletions(-) diff --git a/grails-plugin-controllers/src/main/groovy/org/grails/plugins/web/controllers/ControllersAutoConfiguration.java b/grails-plugin-controllers/src/main/groovy/org/grails/plugins/web/controllers/ControllersAutoConfiguration.java index 8e6519111c9..9a1ffe3abf1 100644 --- a/grails-plugin-controllers/src/main/groovy/org/grails/plugins/web/controllers/ControllersAutoConfiguration.java +++ b/grails-plugin-controllers/src/main/groovy/org/grails/plugins/web/controllers/ControllersAutoConfiguration.java @@ -1,23 +1,28 @@ package org.grails.plugins.web.controllers; import grails.config.Settings; +import grails.core.GrailsApplication; import jakarta.servlet.DispatcherType; import jakarta.servlet.Filter; import jakarta.servlet.MultipartConfigElement; import org.grails.web.config.http.GrailsFilters; import org.grails.web.filters.HiddenHttpMethodFilter; +import org.grails.web.servlet.mvc.GrailsDispatcherServlet; import org.grails.web.servlet.mvc.GrailsWebRequestFilter; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication; +import org.springframework.boot.autoconfigure.web.servlet.DispatcherServletRegistrationBean; import org.springframework.boot.autoconfigure.web.servlet.HttpEncodingAutoConfiguration; import org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration; import org.springframework.boot.web.servlet.FilterRegistrationBean; import org.springframework.boot.web.servlet.filter.OrderedCharacterEncodingFilter; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.Bean; +import org.springframework.util.ClassUtils; import org.springframework.web.filter.CharacterEncodingFilter; +import org.springframework.web.servlet.DispatcherServlet; import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; @@ -54,6 +59,9 @@ public class ControllersAutoConfiguration { @Value("${" + Settings.CONTROLLERS_UPLOAD_FILE_SIZE_THRESHOLD + ":0}") private int fileSizeThreshold; + @Value("${" + Settings.WEB_SERVLET_PATH + ":#{null}}") + String grailsServletPath; + @Bean @ConditionalOnMissingBean(CharacterEncodingFilter.class) public CharacterEncodingFilter characterEncodingFilter() { @@ -100,6 +108,24 @@ public MultipartConfigElement multipartConfigElement() { return new MultipartConfigElement(uploadTmpDir, maxFileSize, maxRequestSize, fileSizeThreshold); } + @Bean + public DispatcherServlet dispatcherServlet() { + return new GrailsDispatcherServlet(); + } + + @Bean + public DispatcherServletRegistrationBean dispatcherServletRegistration(GrailsApplication application, DispatcherServlet dispatcherServlet, MultipartConfigElement multipartConfigElement) { + if (grailsServletPath == null) { + boolean isTomcat = ClassUtils.isPresent("org.apache.catalina.startup.Tomcat", application.getClassLoader()); + grailsServletPath = isTomcat ? Settings.DEFAULT_TOMCAT_SERVLET_PATH : Settings.DEFAULT_WEB_SERVLET_PATH; + } + DispatcherServletRegistrationBean dispatcherServletRegistration = new DispatcherServletRegistrationBean(dispatcherServlet, grailsServletPath); + dispatcherServletRegistration.setLoadOnStartup(2); + dispatcherServletRegistration.setAsyncSupported(true); + dispatcherServletRegistration.setMultipartConfig(multipartConfigElement); + return dispatcherServletRegistration; + } + @Bean public GrailsWebMvcConfigurer webMvcConfig() { return new GrailsWebMvcConfigurer(resourcesCachePeriod, resourcesEnabled, resourcesPattern); diff --git a/grails-plugin-controllers/src/main/groovy/org/grails/plugins/web/controllers/ControllersGrailsPlugin.groovy b/grails-plugin-controllers/src/main/groovy/org/grails/plugins/web/controllers/ControllersGrailsPlugin.groovy index e73928df14d..75bb581b33a 100644 --- a/grails-plugin-controllers/src/main/groovy/org/grails/plugins/web/controllers/ControllersGrailsPlugin.groovy +++ b/grails-plugin-controllers/src/main/groovy/org/grails/plugins/web/controllers/ControllersGrailsPlugin.groovy @@ -23,16 +23,12 @@ import groovy.util.logging.Slf4j import org.grails.core.artefact.ControllerArtefactHandler import org.grails.plugins.web.servlet.context.BootStrapClassRunner import org.grails.web.errors.GrailsExceptionResolver -import org.grails.web.servlet.mvc.GrailsDispatcherServlet import org.grails.web.servlet.mvc.TokenResponseActionResultTransformer import org.grails.web.servlet.view.CompositeViewResolver import org.springframework.beans.factory.support.AbstractBeanDefinition -import org.springframework.boot.autoconfigure.web.servlet.DispatcherServletRegistrationBean import org.springframework.context.ApplicationContext -import org.springframework.util.ClassUtils import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping -import jakarta.servlet.MultipartConfigElement /** * Handles the configuration of controllers for Grails. @@ -57,8 +53,6 @@ class ControllersGrailsPlugin extends Plugin { def config = application.config boolean useJsessionId = config.getProperty(Settings.GRAILS_VIEWS_ENABLE_JSESSIONID, Boolean, false) - boolean isTomcat = ClassUtils.isPresent("org.apache.catalina.startup.Tomcat", application.classLoader) - String grailsServletPath = config.getProperty(Settings.WEB_SERVLET_PATH, isTomcat ? Settings.DEFAULT_TOMCAT_SERVLET_PATH : Settings.DEFAULT_WEB_SERVLET_PATH) if (!Boolean.parseBoolean(System.getProperty(Settings.SETTING_SKIP_BOOTSTRAP))) { bootStrapClassRunner(BootStrapClassRunner) @@ -80,14 +74,6 @@ class ControllersGrailsPlugin extends Plugin { annotationHandlerMapping(RequestMappingHandlerMapping, interceptorsClosure) annotationHandlerAdapter(RequestMappingHandlerAdapter) - // add the dispatcher servlet - dispatcherServlet(GrailsDispatcherServlet) - dispatcherServletRegistration(DispatcherServletRegistrationBean, ref("dispatcherServlet"), grailsServletPath) { - loadOnStartup = 2 - asyncSupported = true - multipartConfig = ref('multipartConfigElement') - } - for (controller in application.getArtefacts(ControllerArtefactHandler.TYPE)) { log.debug "Configuring controller $controller.fullName" if (controller.available) { From 1a20b0d30f3e46e85cc66bed000599d8b2472132 Mon Sep 17 00:00:00 2001 From: Mattias Reichel Date: Fri, 22 Nov 2024 09:32:23 +0100 Subject: [PATCH 13/38] fix: add `asset-pipeline-gradle` to `grails-bom` --- dependabot/build.gradle | 3 ++- gradle.properties | 3 ++- grails-bom/build.gradle | 1 + 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/dependabot/build.gradle b/dependabot/build.gradle index 1c001dd8a42..26806c9b503 100644 --- a/dependabot/build.gradle +++ b/dependabot/build.gradle @@ -1,4 +1,4 @@ -// Generated on Mon Oct 21 14:36:55 PDT 2024 by: ./gradlew :grails-bom:dependabotBuild +// Generated on Fri Nov 22 09:29:12 CET 2024 by: ./gradlew :grails-bom:dependabotBuild plugins { id 'java-library' } @@ -7,6 +7,7 @@ dependencies { api "org.apache.ant:ant:${project['ant.version']}" api "org.apache.ant:ant-junit:${project['ant.version']}" api "org.asciidoctor:asciidoctorj:${project['asciidoctorj.version']}" + api "com.bertramlabs.plugins:asset-pipeline-gradle:${project['asset-pipeline-gradle.version']}" api "com.bertramlabs.plugins:asset-pipeline-grails:${project['asset-pipeline-grails.version']}" api "net.bytebuddy:byte-buddy:${project['byte-buddy.version']}" api "commons-codec:commons-codec:${project['commons-codec.version']}" diff --git a/gradle.properties b/gradle.properties index 78128a8763f..4016d248167 100644 --- a/gradle.properties +++ b/gradle.properties @@ -21,10 +21,11 @@ org.gradle.parallel=true org.gradle.daemon=true org.gradle.jvmargs=-Dfile.encoding=UTF-8 -Xmx1536M -XX:MaxMetaspaceSize=1024M -# Generated on Tue Oct 22 16:16:30 EDT 2024 by: ./gradlew :grails-bom:syncProps +# Generated on Fri Nov 22 09:29:12 CET 2024 by: ./gradlew :grails-bom:syncProps # Only version value modifications allowed after this point. Do not insert or change version names. ant.version=1.10.15 asciidoctorj.version=3.0.0 +asset-pipeline-gradle.version=5.0.1 asset-pipeline-grails.version=5.0.1 byte-buddy.version=1.15.5 commons-codec.version=1.17.1 diff --git a/grails-bom/build.gradle b/grails-bom/build.gradle index 9973ef267b3..520631671eb 100644 --- a/grails-bom/build.gradle +++ b/grails-bom/build.gradle @@ -25,6 +25,7 @@ ext { // version name = versionNameOverride ?: artifactId-prefixes[0] dependenciesOverview = """\ com.bertramlabs.plugins:asset-pipeline-grails:: + com.bertramlabs.plugins:asset-pipeline-gradle:: com.fasterxml.jackson:jackson-bom:::jackson com.github.javaparser:javaparser-core:: com.h2database:h2:: From 63080479b0ef60e24b773ffa3170000a7491b2ef Mon Sep 17 00:00:00 2001 From: Mattias Reichel Date: Fri, 22 Nov 2024 10:00:25 +0100 Subject: [PATCH 14/38] fix: add `grails-datastore-gorm-mongodb` to `grails-bom` --- dependabot/build.gradle | 3 ++- gradle.properties | 3 ++- grails-bom/build.gradle | 1 + 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/dependabot/build.gradle b/dependabot/build.gradle index 26806c9b503..989881ab11a 100644 --- a/dependabot/build.gradle +++ b/dependabot/build.gradle @@ -1,4 +1,4 @@ -// Generated on Fri Nov 22 09:29:12 CET 2024 by: ./gradlew :grails-bom:dependabotBuild +// Generated on Fri Nov 22 09:58:56 CET 2024 by: ./gradlew :grails-bom:dependabotBuild plugins { id 'java-library' } @@ -25,6 +25,7 @@ dependencies { api "org.grails:grails-events-rxjava:${project['grails-async.version']}" api "org.grails:grails-events-rxjava2:${project['grails-async.version']}" api "org.grails:grails-datastore-gorm-hibernate5:${project['grails-datastore-gorm-hibernate5.version']}" + api "org.grails:grails-datastore-gorm-mongodb:${project['grails-datastore-gorm-mongodb.version']}" api "org.grails:grails-datastore-async:${project['grails-datastore.version']}" api "org.grails:grails-datastore-core:${project['grails-datastore.version']}" api "org.grails:grails-datastore-gorm:${project['grails-datastore.version']}" diff --git a/gradle.properties b/gradle.properties index 4016d248167..f11b5b9708d 100644 --- a/gradle.properties +++ b/gradle.properties @@ -21,7 +21,7 @@ org.gradle.parallel=true org.gradle.daemon=true org.gradle.jvmargs=-Dfile.encoding=UTF-8 -Xmx1536M -XX:MaxMetaspaceSize=1024M -# Generated on Fri Nov 22 09:29:12 CET 2024 by: ./gradlew :grails-bom:syncProps +# Generated on Fri Nov 22 09:58:56 CET 2024 by: ./gradlew :grails-bom:syncProps # Only version value modifications allowed after this point. Do not insert or change version names. ant.version=1.10.15 asciidoctorj.version=3.0.0 @@ -37,6 +37,7 @@ geb-spock.version=7.0 grails-async.version=6.0.0-SNAPSHOT grails-datastore.version=9.0.0-SNAPSHOT grails-datastore-gorm-hibernate5.version=9.0.0-SNAPSHOT +grails-datastore-gorm-mongodb.version=9.0.0-SNAPSHOT grails-gdoc-engine.version=1.0.1 grails-gradle-plugin.version=7.0.0-SNAPSHOT grails-testing-support.version=4.0.0-SNAPSHOT diff --git a/grails-bom/build.gradle b/grails-bom/build.gradle index 520631671eb..980990437d1 100644 --- a/grails-bom/build.gradle +++ b/grails-bom/build.gradle @@ -46,6 +46,7 @@ ext { org.grails.plugins:gsp:: org.grails:grails-async,grails-events:gpars,rxjava,rxjava2::grails-async org.grails:grails-datastore-gorm-hibernate5:: + org.grails:grails-datastore-gorm-mongodb:: org.grails:grails-datastore:async,core,gorm,gorm-async,gorm-support,gorm-rx,gorm-test,gorm-validation,web: org.grails:grails-gdoc-engine:: org.grails:grails-gradle-plugin:: From 920e70fa5cb6edb4f8ee52bd0b09a7d14dafeb4e Mon Sep 17 00:00:00 2001 From: Mattias Reichel Date: Fri, 22 Nov 2024 10:46:53 +0100 Subject: [PATCH 15/38] fix: add `views-gradle` to `grails-bom` --- grails-bom/plugins.properties | 1 + 1 file changed, 1 insertion(+) diff --git a/grails-bom/plugins.properties b/grails-bom/plugins.properties index 4747c7598fc..4d927cc0986 100644 --- a/grails-bom/plugins.properties +++ b/grails-bom/plugins.properties @@ -8,6 +8,7 @@ neo4j=8.1.0 rxjava=1.1.1 rxjava2=2.0.0 scaffolding=6.0.0-SNAPSHOT +views-gradle=4.0.0-SNAPSHOT views-json=4.0.0-SNAPSHOT views-json-templates=4.0.0-SNAPSHOT views-markup=4.0.0-SNAPSHOT \ No newline at end of file From 69fb4db80ebfc97c64be17cae7225c4969a99a03 Mon Sep 17 00:00:00 2001 From: Scott Murphy Heiberg Date: Fri, 22 Nov 2024 09:56:02 -0800 Subject: [PATCH 16/38] Gradle 8.11.1 --- gradle/wrapper/gradle-wrapper.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 94113f200e6..e2847c82004 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.11-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME From 3db978e498873fe5ad7dd38f664d92f6072e1d81 Mon Sep 17 00:00:00 2001 From: Scott Murphy Heiberg Date: Fri, 22 Nov 2024 10:46:47 -0800 Subject: [PATCH 17/38] Spring Boot 3.4.0 --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index df83ceff6f9..370a6a312a9 100644 --- a/gradle.properties +++ b/gradle.properties @@ -75,6 +75,6 @@ profiles-web.version=7.0.1-SNAPSHOT profiles-web-plugin.version=7.0.1-SNAPSHOT spock.version=2.3-groovy-4.0 spotbugs-annotations.version=4.8.6 -spring-boot.version=3.4.0-RC1 +spring-boot.version=3.4.0 springloaded.version=1.2.8.RELEASE views-json-testing-support.version=4.0.0-SNAPSHOT \ No newline at end of file From 4eba379de5a9e489e5d8ebbe5735304bc196d373 Mon Sep 17 00:00:00 2001 From: Brian Koehmstedt <1261658+bkoehm@users.noreply.github.com> Date: Fri, 22 Nov 2024 12:33:03 -0800 Subject: [PATCH 18/38] Upgrade hamcrest: #13828 --- grails-core/build.gradle | 8 +------- .../transaction/ChainedTransactionManagerTests.java | 5 ----- 2 files changed, 1 insertion(+), 12 deletions(-) diff --git a/grails-core/build.gradle b/grails-core/build.gradle index 1146debe2df..401d0bf0955 100644 --- a/grails-core/build.gradle +++ b/grails-core/build.gradle @@ -1,9 +1,3 @@ -configurations.all { - resolutionStrategy { - force "org.hamcrest:hamcrest-core:1.3" - } -} - dependencies { compileOnly "org.aspectj:aspectjrt", "org.aspectj:aspectjweaver" api "jakarta.inject:jakarta.inject-api" @@ -27,7 +21,7 @@ dependencies { testImplementation "org.springframework:spring-jdbc" - testImplementation "org.hamcrest:hamcrest-core:1.3" + testImplementation "org.hamcrest:hamcrest" testRuntimeOnly "com.h2database:h2" testRuntimeOnly "com.fasterxml.jackson.core:jackson-databind" diff --git a/grails-core/src/test/groovy/org/grails/transaction/ChainedTransactionManagerTests.java b/grails-core/src/test/groovy/org/grails/transaction/ChainedTransactionManagerTests.java index d487adc9a1f..863c1e2de4e 100644 --- a/grails-core/src/test/groovy/org/grails/transaction/ChainedTransactionManagerTests.java +++ b/grails-core/src/test/groovy/org/grails/transaction/ChainedTransactionManagerTests.java @@ -16,7 +16,6 @@ package org.grails.transaction; import org.hamcrest.Description; -import org.hamcrest.Factory; import org.junit.jupiter.api.Test; import org.springframework.transaction.*; import org.springframework.transaction.support.DefaultTransactionDefinition; @@ -176,7 +175,6 @@ public TestPlatformTransactionManager(String name) { this.name = name; } - @Factory static PlatformTransactionManager createFailingTransactionManager(String name) { return new TestPlatformTransactionManager(name + "-failing") { @Override @@ -191,7 +189,6 @@ public void rollback(TransactionStatus status) throws TransactionException { }; } - @Factory static PlatformTransactionManager createNonFailingTransactionManager(String name) { return new TestPlatformTransactionManager(name + "-non-failing"); } @@ -296,12 +293,10 @@ public void describeTo(Description description) { description.appendText("that a " + (commitCheck ? "committed" : "rolled-back") + " TransactionManager"); } - @Factory public static TransactionManagerMatcher isCommitted() { return new TransactionManagerMatcher(true); } - @Factory public static TransactionManagerMatcher wasRolledback() { return new TransactionManagerMatcher(false); } From 1ec738e0c2166588ef30230561c16d5487921b6c Mon Sep 17 00:00:00 2001 From: James Daugherty Date: Thu, 21 Nov 2024 12:32:03 -0500 Subject: [PATCH 19/38] fix #13867 - remove resolution strategy assignment and use default --- .../main/groovy/org/grails/plugins/DefaultGrailsPlugin.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/grails-core/src/main/groovy/org/grails/plugins/DefaultGrailsPlugin.java b/grails-core/src/main/groovy/org/grails/plugins/DefaultGrailsPlugin.java index 0186ccf5df5..8fd135d1315 100644 --- a/grails-core/src/main/groovy/org/grails/plugins/DefaultGrailsPlugin.java +++ b/grails-core/src/main/groovy/org/grails/plugins/DefaultGrailsPlugin.java @@ -541,12 +541,10 @@ public void doWithRuntimeConfiguration(RuntimeSpringConfiguration springConfig) BeanBuilder bb = new BeanBuilder(getParentCtx(),springConfig, grailsApplication.getClassLoader()); bb.setBinding(b); c.setDelegate(bb); - c.setResolveStrategy(Closure.OWNER_FIRST); bb.invokeMethod("beans", new Object[]{c}); } } else { - if (!pluginBean.isReadableProperty(DO_WITH_SPRING)) { return; } @@ -559,7 +557,6 @@ public void doWithRuntimeConfiguration(RuntimeSpringConfiguration springConfig) BeanBuilder bb = new BeanBuilder(getParentCtx(),springConfig, grailsApplication.getClassLoader()); bb.setBinding(b); c.setDelegate(bb); - c.setResolveStrategy(Closure.DELEGATE_FIRST); bb.invokeMethod("beans", new Object[]{c}); } From 050166601df4f2ef3097fb7c51485ae8d2ba9212 Mon Sep 17 00:00:00 2001 From: James Daugherty Date: Fri, 22 Nov 2024 07:43:21 -0500 Subject: [PATCH 20/38] feedback - formatting --- .../main/groovy/org/grails/plugins/DefaultGrailsPlugin.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/grails-core/src/main/groovy/org/grails/plugins/DefaultGrailsPlugin.java b/grails-core/src/main/groovy/org/grails/plugins/DefaultGrailsPlugin.java index 8fd135d1315..214e3e3f476 100644 --- a/grails-core/src/main/groovy/org/grails/plugins/DefaultGrailsPlugin.java +++ b/grails-core/src/main/groovy/org/grails/plugins/DefaultGrailsPlugin.java @@ -543,8 +543,7 @@ public void doWithRuntimeConfiguration(RuntimeSpringConfiguration springConfig) c.setDelegate(bb); bb.invokeMethod("beans", new Object[]{c}); } - } - else { + } else { if (!pluginBean.isReadableProperty(DO_WITH_SPRING)) { return; } From 4842cd9a7a246415a9dc385880beb17bec51c882 Mon Sep 17 00:00:00 2001 From: Scott Murphy Heiberg Date: Fri, 22 Nov 2024 22:20:30 -0800 Subject: [PATCH 21/38] Convert CoreConfiguration to CoreAutoConfiguration --- grails-core/build.gradle | 1 + .../grails/plugins/CoreGrailsPlugin.groovy | 6 -- .../plugins/core/CoreAutoConfiguration.java | 66 +++++++++++++++++++ .../plugins/core/CoreConfiguration.java | 51 -------------- ...ot.autoconfigure.AutoConfiguration.imports | 2 +- ...lderConfigurerCorePluginRuntimeSpec.groovy | 2 + grails-web-common/build.gradle | 2 - 7 files changed, 70 insertions(+), 60 deletions(-) create mode 100644 grails-core/src/main/groovy/org/grails/plugins/core/CoreAutoConfiguration.java delete mode 100644 grails-core/src/main/groovy/org/grails/plugins/core/CoreConfiguration.java diff --git a/grails-core/build.gradle b/grails-core/build.gradle index 401d0bf0955..d24f0ba8cb9 100644 --- a/grails-core/build.gradle +++ b/grails-core/build.gradle @@ -10,6 +10,7 @@ dependencies { api "org.springframework:spring-tx" api "org.springframework:spring-beans" api "org.springframework:spring-context" + api "org.springframework.boot:spring-boot-autoconfigure" compileOnly "org.springframework:spring-test" compileOnly "org.apache.groovy:groovy-templates" diff --git a/grails-core/src/main/groovy/org/grails/plugins/CoreGrailsPlugin.groovy b/grails-core/src/main/groovy/org/grails/plugins/CoreGrailsPlugin.groovy index be494d13dd4..c37f97b15d0 100644 --- a/grails-core/src/main/groovy/org/grails/plugins/CoreGrailsPlugin.groovy +++ b/grails-core/src/main/groovy/org/grails/plugins/CoreGrailsPlugin.groovy @@ -25,7 +25,6 @@ import org.grails.spring.DefaultRuntimeSpringConfiguration import org.grails.spring.RuntimeSpringConfiguration import org.grails.spring.aop.autoproxy.GroovyAwareAspectJAwareAdvisorAutoProxyCreator import org.grails.spring.aop.autoproxy.GroovyAwareInfrastructureAdvisorAutoProxyCreator -import org.grails.spring.context.support.GrailsPlaceholderConfigurer import org.grails.spring.context.support.MapBasedSmartPropertyOverrideConfigurer import org.grails.spring.RuntimeSpringConfigUtilities import org.grails.core.io.DefaultResourceLocator @@ -66,17 +65,12 @@ class CoreGrailsPlugin extends Plugin { // Grails config as properties def config = application.config - def placeHolderPrefix = config.getProperty(Settings.SPRING_PLACEHOLDER_PREFIX, '${') - // enable post-processing of @Configuration beans defined by plugins grailsConfigurationClassPostProcessor ConfigurationClassPostProcessor grailsBeanOverrideConfigurer(MapBasedSmartPropertyOverrideConfigurer) { delegate.grailsApplication = application } - propertySourcesPlaceholderConfigurer(GrailsPlaceholderConfigurer) { - placeholderPrefix = placeHolderPrefix - } Class proxyCreatorClazz = null // replace AutoProxy advisor with Groovy aware one diff --git a/grails-core/src/main/groovy/org/grails/plugins/core/CoreAutoConfiguration.java b/grails-core/src/main/groovy/org/grails/plugins/core/CoreAutoConfiguration.java new file mode 100644 index 00000000000..c2285690718 --- /dev/null +++ b/grails-core/src/main/groovy/org/grails/plugins/core/CoreAutoConfiguration.java @@ -0,0 +1,66 @@ +/* + * Copyright 2004-2019 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 + * + * http://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.core; + +import grails.config.ConfigProperties; +import grails.config.Settings; +import grails.core.GrailsApplication; +import org.grails.spring.context.support.GrailsPlaceholderConfigurer; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.autoconfigure.AutoConfiguration; +import org.springframework.boot.autoconfigure.AutoConfigureOrder; +import org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoConfiguration; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Primary; +import org.springframework.context.support.PropertySourcesPlaceholderConfigurer; +import org.springframework.core.Ordered; + +/** + * Core beans. + * + * @author graemerocher + * @since 4.0 + */ +@AutoConfiguration(before = { PropertyPlaceholderAutoConfiguration.class }) +@AutoConfigureOrder(Ordered.HIGHEST_PRECEDENCE) +public class CoreAutoConfiguration { + + @Value("${" + Settings.SPRING_PLACEHOLDER_PREFIX + ":#{null}}") + private String placeholderPrefix; + + @Bean + @Primary + public ClassLoader classLoader(GrailsApplication grailsApplication) { + return grailsApplication.getClassLoader(); + } + + @Bean + @Primary + public ConfigProperties grailsConfigProperties(GrailsApplication grailsApplication) { + return new ConfigProperties(grailsApplication.getConfig()); + } + + @Bean + @Primary + PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() { + GrailsPlaceholderConfigurer grailsPlaceholderConfigurer = new GrailsPlaceholderConfigurer(); + if (placeholderPrefix != null) { + grailsPlaceholderConfigurer.setPlaceholderPrefix(placeholderPrefix); + } + return grailsPlaceholderConfigurer; + } +} diff --git a/grails-core/src/main/groovy/org/grails/plugins/core/CoreConfiguration.java b/grails-core/src/main/groovy/org/grails/plugins/core/CoreConfiguration.java deleted file mode 100644 index 464ac2309b5..00000000000 --- a/grails-core/src/main/groovy/org/grails/plugins/core/CoreConfiguration.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright 2004-2019 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 - * - * http://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.core; - -import grails.config.ConfigProperties; -import grails.core.GrailsApplication; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Primary; - -/** - * Core beans. - * - * @author graemerocher - * @since 4.0 - */ -@Configuration -public class CoreConfiguration { - - private final GrailsApplication grailsApplication; - - public CoreConfiguration(GrailsApplication grailsApplication) { - this.grailsApplication = grailsApplication; - } - - @Bean("classLoader") - @Primary - public ClassLoader classLoader() { - return grailsApplication.getClassLoader(); - } - - @Bean("grailsConfigProperties") - @Primary - public ConfigProperties configProperties() { - return new ConfigProperties(grailsApplication.getConfig()); - } -} diff --git a/grails-core/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/grails-core/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports index 6123ca5004b..34c98463fd5 100644 --- a/grails-core/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ b/grails-core/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -1 +1 @@ -org.grails.plugins.core.CoreConfiguration \ No newline at end of file +org.grails.plugins.core.CoreAutoConfiguration \ No newline at end of file diff --git a/grails-core/src/test/groovy/grails/spring/GrailsPlaceHolderConfigurerCorePluginRuntimeSpec.groovy b/grails-core/src/test/groovy/grails/spring/GrailsPlaceHolderConfigurerCorePluginRuntimeSpec.groovy index 9b2970f846a..3159db5e22b 100644 --- a/grails-core/src/test/groovy/grails/spring/GrailsPlaceHolderConfigurerCorePluginRuntimeSpec.groovy +++ b/grails-core/src/test/groovy/grails/spring/GrailsPlaceHolderConfigurerCorePluginRuntimeSpec.groovy @@ -2,6 +2,7 @@ package grails.spring import grails.core.DefaultGrailsApplication import org.grails.plugins.CoreGrailsPlugin +import org.grails.spring.context.support.GrailsPlaceholderConfigurer import spock.lang.Issue import spock.lang.Specification @@ -29,6 +30,7 @@ class GrailsPlaceHolderConfigurerCorePluginRuntimeSpec extends Specification{ plugin.grailsApplication = app bb.beans plugin.doWithSpring() bb.beans { + propertySourcesPlaceholderConfigurer(GrailsPlaceholderConfigurer) testBean(ReplacePropertyBean) { foo = '${foo.bar}' } diff --git a/grails-web-common/build.gradle b/grails-web-common/build.gradle index 157ea36afd9..67536278618 100644 --- a/grails-web-common/build.gradle +++ b/grails-web-common/build.gradle @@ -10,8 +10,6 @@ dependencies { compileOnly "jakarta.servlet:jakarta.servlet-api" testCompileOnly "org.springframework:spring-test" - // now used by plugins for autoconfiguration - api "org.springframework.boot:spring-boot-autoconfigure" api "org.springframework:spring-webmvc" api "org.springframework:spring-context-support" implementation "com.github.ben-manes.caffeine:caffeine" From 7a4eb1bd3ce1f119c4a1121a72b5e06ed988c3ae Mon Sep 17 00:00:00 2001 From: Scott Murphy Heiberg Date: Tue, 26 Nov 2024 12:20:03 -0800 Subject: [PATCH 22/38] update dependabot config --- .github/dependabot.yml | 32 ++++---------------------------- 1 file changed, 4 insertions(+), 28 deletions(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 78a5184539f..d48a430afda 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -1,45 +1,21 @@ version: 2 -updates: - - package-ecosystem: gradle - directory: "/" - schedule: - interval: weekly - open-pull-requests-limit: 0 - target-branch: 3.3.x - labels: - - "type: dependency upgrade" - - "relates-to: v3" - - package-ecosystem: gradle - directory: "/" - schedule: - interval: weekly - open-pull-requests-limit: 0 - target-branch: 4.1.x - labels: - - "type: dependency upgrade" - - "relates-to: v4" - ignore: - - dependency-name: "*" - update-types: [ "version-update:semver-minor", "version-update:semver-major" ] +updates: - package-ecosystem: gradle directory: "/" schedule: interval: daily open-pull-requests-limit: 10 - target-branch: 5.4.x + target-branch: 6.2.x labels: - "type: dependency upgrade" ignore: - dependency-name: "*" - update-types: ["version-update:semver-major"] + update-types: ["version-update:semver-patch", "version-update:semver-minor"] - package-ecosystem: gradle directory: "/" schedule: interval: daily open-pull-requests-limit: 10 - target-branch: 6.0.x + target-branch: 7.0.x labels: - "type: dependency upgrade" - ignore: - - dependency-name: "*" - update-types: ["version-update:semver-patch", "version-update:semver-minor"] From b1fc7690cbb6f1643c7666a40dbf08c3fc31de87 Mon Sep 17 00:00:00 2001 From: Scott Murphy Heiberg Date: Tue, 26 Nov 2024 12:41:00 -0800 Subject: [PATCH 23/38] restrict dependabot to only patch updates for 6.2.x --- .github/dependabot.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index d48a430afda..a84b57f4e4c 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -9,8 +9,8 @@ updates: labels: - "type: dependency upgrade" ignore: - - dependency-name: "*" - update-types: ["version-update:semver-patch", "version-update:semver-minor"] + - dependency-name: "*" + update-types: ["version-update:semver-major", "version-update:semver-minor"] - package-ecosystem: gradle directory: "/" schedule: From 754d0778b443c8558d1e4c77f26efed086ad552b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 26 Nov 2024 20:41:36 +0000 Subject: [PATCH 24/38] Bump org.grails:grails-datastore-gorm-hibernate5 from 8.1.0 to 8.1.1 Bumps [org.grails:grails-datastore-gorm-hibernate5](https://github.com/grails/gorm-hibernate5) from 8.1.0 to 8.1.1. - [Release notes](https://github.com/grails/gorm-hibernate5/releases) - [Commits](https://github.com/grails/gorm-hibernate5/compare/v8.1.0...v8.1.1) --- updated-dependencies: - dependency-name: org.grails:grails-datastore-gorm-hibernate5 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- grails-test-suite-persistence/build.gradle | 2 +- grails-test-suite-uber/build.gradle | 2 +- grails-test-suite-web/build.gradle | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/grails-test-suite-persistence/build.gradle b/grails-test-suite-persistence/build.gradle index bc37e9a7cf2..4b1667b4dd1 100644 --- a/grails-test-suite-persistence/build.gradle +++ b/grails-test-suite-persistence/build.gradle @@ -16,7 +16,7 @@ dependencies { project(':grails-spring') testImplementation "org.grails:grails-datastore-gorm-validation:$datastoreVersion" - testImplementation "org.grails:grails-datastore-gorm-hibernate5:8.1.0", { + testImplementation "org.grails:grails-datastore-gorm-hibernate5:8.1.1", { exclude group: 'org.grails', module:'grails-datastore-gorm' exclude group: 'org.grails', module:'grails-datastore-core' exclude group: 'org.springframework', module:'spring-core' diff --git a/grails-test-suite-uber/build.gradle b/grails-test-suite-uber/build.gradle index 70c7e52f965..cda66f9ead6 100644 --- a/grails-test-suite-uber/build.gradle +++ b/grails-test-suite-uber/build.gradle @@ -28,7 +28,7 @@ dependencies { project(":grails-plugin-databinding"), project(':grails-spring') - testImplementation "org.grails:grails-datastore-gorm-hibernate5:8.1.0", { + testImplementation "org.grails:grails-datastore-gorm-hibernate5:8.1.1", { exclude group: 'org.grails', module:'grails-datastore-gorm' exclude group: 'org.grails', module:'grails-datastore-core' exclude group: 'org.springframework', module:'spring-core' diff --git a/grails-test-suite-web/build.gradle b/grails-test-suite-web/build.gradle index ca5181b5132..8da05b865ae 100644 --- a/grails-test-suite-web/build.gradle +++ b/grails-test-suite-web/build.gradle @@ -29,7 +29,7 @@ dependencies { project(':grails-spring') testImplementation "org.grails.plugins:converters:$legacyConvertersVersion" - testImplementation "org.grails:grails-datastore-gorm-hibernate5:8.1.0", { + testImplementation "org.grails:grails-datastore-gorm-hibernate5:8.1.1", { exclude group: 'org.grails', module:'grails-datastore-gorm' exclude group: 'org.grails', module:'grails-datastore-core' exclude group: 'org.springframework', module:'spring-core' From 2887d497907326fda39496bfbf3c7127840bff8a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 26 Nov 2024 20:41:55 +0000 Subject: [PATCH 25/38] Bump org.junit.jupiter:junit-jupiter-api from 5.10.2 to 5.10.5 Bumps [org.junit.jupiter:junit-jupiter-api](https://github.com/junit-team/junit5) from 5.10.2 to 5.10.5. - [Release notes](https://github.com/junit-team/junit5/releases) - [Commits](https://github.com/junit-team/junit5/compare/r5.10.2...r5.10.5) --- updated-dependencies: - dependency-name: org.junit.jupiter:junit-jupiter-api dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 5e8365ae1f9..d33537fa205 100644 --- a/build.gradle +++ b/build.gradle @@ -512,7 +512,7 @@ subprojects { project -> api groovyDependency testImplementation "org.codehaus.groovy:groovy-test-junit5:${groovyVersion}" - testImplementation "org.junit.jupiter:junit-jupiter-api:5.10.2" + testImplementation "org.junit.jupiter:junit-jupiter-api:5.10.5" testImplementation "org.junit.platform:junit-platform-runner:1.10.2" testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:5.10.2" From cef671a9c1ed23c97fe594d27344ac5e9338841b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 26 Nov 2024 20:42:00 +0000 Subject: [PATCH 26/38] Bump commons-codec:commons-codec from 1.16.0 to 1.16.1 Bumps [commons-codec:commons-codec](https://github.com/apache/commons-codec) from 1.16.0 to 1.16.1. - [Changelog](https://github.com/apache/commons-codec/blob/master/RELEASE-NOTES.txt) - [Commits](https://github.com/apache/commons-codec/compare/rel/commons-codec-1.16.0...rel/commons-codec-1.16.1) --- updated-dependencies: - dependency-name: commons-codec:commons-codec dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- grails-shell/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/grails-shell/build.gradle b/grails-shell/build.gradle index 8092bda6bf9..b41c5827b13 100644 --- a/grails-shell/build.gradle +++ b/grails-shell/build.gradle @@ -35,7 +35,7 @@ dependencies { exclude group: "org.slf4j", module:"jcl-over-slf4j" exclude group: "commons-codec", module:"commons-codec" } - implementation("commons-codec:commons-codec:1.16.0") + implementation("commons-codec:commons-codec:1.16.1") testImplementation "net.sf.expectit:expectit-core:0.9.0" testImplementation "com.github.jnr:jnr-posix:3.1.18" From 83341fb98d1315bb30257ede949b62c0241ef9b9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 26 Nov 2024 20:42:03 +0000 Subject: [PATCH 27/38] Bump org.apache.maven:maven-resolver-provider from 3.9.6 to 3.9.9 Bumps org.apache.maven:maven-resolver-provider from 3.9.6 to 3.9.9. --- updated-dependencies: - dependency-name: org.apache.maven:maven-resolver-provider dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- grails-shell/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/grails-shell/build.gradle b/grails-shell/build.gradle index 8092bda6bf9..f54239b9c11 100644 --- a/grails-shell/build.gradle +++ b/grails-shell/build.gradle @@ -24,7 +24,7 @@ dependencies { api "org.springframework.boot:spring-boot-cli:$springBootVersion", { exclude group: "org.codehaus.groovy", module: "groovy" } - implementation("org.apache.maven:maven-resolver-provider:3.9.6") { + implementation("org.apache.maven:maven-resolver-provider:3.9.9") { exclude group: "com.google.guava", module: "guava" } From fdbf538727d2d2f3d3cb2de2c6dcb0004bb42c08 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 26 Nov 2024 20:42:06 +0000 Subject: [PATCH 28/38] Bump org.apache.maven.resolver:maven-resolver-transport-http Bumps org.apache.maven.resolver:maven-resolver-transport-http from 1.9.18 to 1.9.22. --- updated-dependencies: - dependency-name: org.apache.maven.resolver:maven-resolver-transport-http dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- grails-shell/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/grails-shell/build.gradle b/grails-shell/build.gradle index 8092bda6bf9..9f59c231a2c 100644 --- a/grails-shell/build.gradle +++ b/grails-shell/build.gradle @@ -31,7 +31,7 @@ dependencies { implementation("org.apache.maven.resolver:maven-resolver-connector-basic:1.9.18") implementation("org.apache.maven.resolver:maven-resolver-impl:1.9.18") implementation("org.apache.maven.resolver:maven-resolver-transport-file:1.9.18") - implementation("org.apache.maven.resolver:maven-resolver-transport-http:1.9.18") { + implementation("org.apache.maven.resolver:maven-resolver-transport-http:1.9.22") { exclude group: "org.slf4j", module:"jcl-over-slf4j" exclude group: "commons-codec", module:"commons-codec" } From 08ea24094ac95644649aeb5f4815571da2f982d1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 26 Nov 2024 20:42:13 +0000 Subject: [PATCH 29/38] Bump org.asciidoctor:asciidoctorj from 2.5.12 to 2.5.13 Bumps [org.asciidoctor:asciidoctorj](https://github.com/asciidoctor/asciidoctorj) from 2.5.12 to 2.5.13. - [Release notes](https://github.com/asciidoctor/asciidoctorj/releases) - [Changelog](https://github.com/asciidoctor/asciidoctorj/blob/v2.5.13/CHANGELOG.adoc) - [Commits](https://github.com/asciidoctor/asciidoctorj/compare/v2.5.12...v2.5.13) --- updated-dependencies: - dependency-name: org.asciidoctor:asciidoctorj dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- grails-docs/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/grails-docs/build.gradle b/grails-docs/build.gradle index d86301ff755..5bef3de0d3e 100644 --- a/grails-docs/build.gradle +++ b/grails-docs/build.gradle @@ -12,7 +12,7 @@ dependencies { 'org.yaml:snakeyaml:2.2', "org.codehaus.groovy:groovy-ant:$groovyVersion" - api 'org.asciidoctor:asciidoctorj:2.5.12' + api 'org.asciidoctor:asciidoctorj:2.5.13' api('org.xhtmlrenderer:core-renderer:8.0') { exclude group: 'bouncycastle', module:'bcprov-jdk14' } From 93164ab61029839555f02bc5e9c2f2f7554efcf7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 27 Nov 2024 01:54:08 +0000 Subject: [PATCH 30/38] Update dependency org.jsoup:jsoup to v1.18.2 --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 8c4d4293a16..81408b43f66 100644 --- a/gradle.properties +++ b/gradle.properties @@ -49,7 +49,7 @@ jansi.version=1.18 javaparser-core.version=3.26.2 jline.version=2.14.6 jna.version=5.15.0 -jsoup.version=1.18.1 +jsoup.version=1.18.2 mongodb.version=5.1.4 objenesis.version=3.4 plugins-cache.version=8.0.0-SNAPSHOT From 168c345be0a9e3a16f0715fc725c343794a28f78 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 27 Nov 2024 01:54:52 +0000 Subject: [PATCH 31/38] Bump com.github.jnr:jnr-posix from 3.1.18 to 3.1.20 Bumps [com.github.jnr:jnr-posix](https://github.com/jnr/jnr-posix) from 3.1.18 to 3.1.20. - [Commits](https://github.com/jnr/jnr-posix/compare/jnr-posix-3.1.18...jnr-posix-3.1.20) --- updated-dependencies: - dependency-name: com.github.jnr:jnr-posix dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- grails-shell/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/grails-shell/build.gradle b/grails-shell/build.gradle index 2366fddf75d..f5b2a22244d 100644 --- a/grails-shell/build.gradle +++ b/grails-shell/build.gradle @@ -38,7 +38,7 @@ dependencies { implementation("commons-codec:commons-codec:1.16.1") testImplementation "net.sf.expectit:expectit-core:0.9.0" - testImplementation "com.github.jnr:jnr-posix:3.1.18" + testImplementation "com.github.jnr:jnr-posix:3.1.20" runtimeOnly "org.slf4j:slf4j-simple:$slf4jVersion" runtimeOnly "org.codehaus.plexus:plexus-component-api:1.0-alpha-33" From aae2d851a523521333af1e2cbf2c9b04e8956ddb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 27 Nov 2024 01:55:10 +0000 Subject: [PATCH 32/38] Bump org.apache.maven.resolver:maven-resolver-connector-basic Bumps [org.apache.maven.resolver:maven-resolver-connector-basic](https://github.com/apache/maven-resolver) from 1.9.18 to 1.9.22. - [Release notes](https://github.com/apache/maven-resolver/releases) - [Commits](https://github.com/apache/maven-resolver/compare/maven-resolver-1.9.18...maven-resolver-1.9.22) --- updated-dependencies: - dependency-name: org.apache.maven.resolver:maven-resolver-connector-basic dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- grails-shell/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/grails-shell/build.gradle b/grails-shell/build.gradle index 2366fddf75d..9232f0e2c1b 100644 --- a/grails-shell/build.gradle +++ b/grails-shell/build.gradle @@ -28,7 +28,7 @@ dependencies { exclude group: "com.google.guava", module: "guava" } - implementation("org.apache.maven.resolver:maven-resolver-connector-basic:1.9.18") + implementation("org.apache.maven.resolver:maven-resolver-connector-basic:1.9.22") implementation("org.apache.maven.resolver:maven-resolver-impl:1.9.18") implementation("org.apache.maven.resolver:maven-resolver-transport-file:1.9.18") implementation("org.apache.maven.resolver:maven-resolver-transport-http:1.9.22") { From 0ffc63c64333c782da4d1ff6bd518073771c37b9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 27 Nov 2024 03:50:52 +0000 Subject: [PATCH 33/38] Bump org.apache.maven.resolver:maven-resolver-impl from 1.9.18 to 1.9.22 Bumps [org.apache.maven.resolver:maven-resolver-impl](https://github.com/apache/maven-resolver) from 1.9.18 to 1.9.22. - [Release notes](https://github.com/apache/maven-resolver/releases) - [Commits](https://github.com/apache/maven-resolver/compare/maven-resolver-1.9.18...maven-resolver-1.9.22) --- updated-dependencies: - dependency-name: org.apache.maven.resolver:maven-resolver-impl dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- grails-shell/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/grails-shell/build.gradle b/grails-shell/build.gradle index 9232f0e2c1b..d464022cf97 100644 --- a/grails-shell/build.gradle +++ b/grails-shell/build.gradle @@ -29,7 +29,7 @@ dependencies { } implementation("org.apache.maven.resolver:maven-resolver-connector-basic:1.9.22") - implementation("org.apache.maven.resolver:maven-resolver-impl:1.9.18") + implementation("org.apache.maven.resolver:maven-resolver-impl:1.9.22") implementation("org.apache.maven.resolver:maven-resolver-transport-file:1.9.18") implementation("org.apache.maven.resolver:maven-resolver-transport-http:1.9.22") { exclude group: "org.slf4j", module:"jcl-over-slf4j" From 5b317d28727eee83c6119c7bdad432fc81e83748 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 27 Nov 2024 08:05:08 +0000 Subject: [PATCH 34/38] Bump org.junit.platform:junit-platform-runner from 1.10.2 to 1.10.5 Bumps [org.junit.platform:junit-platform-runner](https://github.com/junit-team/junit5) from 1.10.2 to 1.10.5. - [Release notes](https://github.com/junit-team/junit5/releases) - [Commits](https://github.com/junit-team/junit5/commits) --- updated-dependencies: - dependency-name: org.junit.platform:junit-platform-runner dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- build.gradle | 2 +- grails-test/build.gradle | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index d33537fa205..0e6fa562bf4 100644 --- a/build.gradle +++ b/build.gradle @@ -513,7 +513,7 @@ subprojects { project -> testImplementation "org.codehaus.groovy:groovy-test-junit5:${groovyVersion}" testImplementation "org.junit.jupiter:junit-jupiter-api:5.10.5" - testImplementation "org.junit.platform:junit-platform-runner:1.10.2" + testImplementation "org.junit.platform:junit-platform-runner:1.10.5" testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:5.10.2" if (project.name != "grails-docs") { diff --git a/grails-test/build.gradle b/grails-test/build.gradle index 25133da9a20..54d6424805b 100644 --- a/grails-test/build.gradle +++ b/grails-test/build.gradle @@ -7,7 +7,7 @@ dependencies { api "org.codehaus.groovy:groovy-test-junit5:$groovyVersion" api("org.codehaus.groovy:groovy-test:$groovyVersion") api("org.spockframework:spock-core:$spockVersion") { transitive = false } - api "org.junit.platform:junit-platform-runner:1.10.2" + api "org.junit.platform:junit-platform-runner:1.10.5" api project(":grails-plugin-mimetypes") From e0976b6d5015b832068f915da6a535e6b70908d6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 27 Nov 2024 08:05:33 +0000 Subject: [PATCH 35/38] Bump com.netflix.nebula:gradle-extra-configurations-plugin Bumps [com.netflix.nebula:gradle-extra-configurations-plugin](https://github.com/nebula-plugins/gradle-extra-configurations-plugin) from 10.0.0 to 10.0.1. - [Release notes](https://github.com/nebula-plugins/gradle-extra-configurations-plugin/releases) - [Changelog](https://github.com/nebula-plugins/gradle-extra-configurations-plugin/blob/main/CHANGELOG.md) - [Commits](https://github.com/nebula-plugins/gradle-extra-configurations-plugin/compare/v10.0.0...v10.0.1) --- updated-dependencies: - dependency-name: com.netflix.nebula:gradle-extra-configurations-plugin dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index d33537fa205..4e4361afb66 100644 --- a/build.gradle +++ b/build.gradle @@ -6,7 +6,7 @@ buildscript { dependencies { classpath "commons-io:commons-io:2.15.1" classpath "io.github.gradle-nexus:publish-plugin:1.3.0" - classpath "com.netflix.nebula:gradle-extra-configurations-plugin:10.0.0" + classpath "com.netflix.nebula:gradle-extra-configurations-plugin:10.0.1" classpath "com.bmuschko:gradle-nexus-plugin:$gradleNexusPluginVersion" classpath "javax.xml.bind:jaxb-api:$jaxbApiVersion" classpath "com.sun.xml.bind:jaxb-impl:$jaxbImplVersion" From b3600bb21a6818b3ea854309117d456d9fb3e94a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 27 Nov 2024 08:05:47 +0000 Subject: [PATCH 36/38] Bump org.apache.maven.resolver:maven-resolver-transport-file Bumps [org.apache.maven.resolver:maven-resolver-transport-file](https://github.com/apache/maven-resolver) from 1.9.18 to 1.9.22. - [Release notes](https://github.com/apache/maven-resolver/releases) - [Commits](https://github.com/apache/maven-resolver/compare/maven-resolver-1.9.18...maven-resolver-1.9.22) --- updated-dependencies: - dependency-name: org.apache.maven.resolver:maven-resolver-transport-file dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- grails-shell/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/grails-shell/build.gradle b/grails-shell/build.gradle index 48a92e174d7..9810670d764 100644 --- a/grails-shell/build.gradle +++ b/grails-shell/build.gradle @@ -30,7 +30,7 @@ dependencies { implementation("org.apache.maven.resolver:maven-resolver-connector-basic:1.9.22") implementation("org.apache.maven.resolver:maven-resolver-impl:1.9.22") - implementation("org.apache.maven.resolver:maven-resolver-transport-file:1.9.18") + implementation("org.apache.maven.resolver:maven-resolver-transport-file:1.9.22") implementation("org.apache.maven.resolver:maven-resolver-transport-http:1.9.22") { exclude group: "org.slf4j", module:"jcl-over-slf4j" exclude group: "commons-codec", module:"commons-codec" From 5b3063801254c308ad55713b6222de0baeed0384 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 27 Nov 2024 16:35:06 +0000 Subject: [PATCH 37/38] Bump org.junit.jupiter:junit-jupiter-engine from 5.10.2 to 5.10.5 Bumps [org.junit.jupiter:junit-jupiter-engine](https://github.com/junit-team/junit5) from 5.10.2 to 5.10.5. - [Release notes](https://github.com/junit-team/junit5/releases) - [Commits](https://github.com/junit-team/junit5/compare/r5.10.2...r5.10.5) --- updated-dependencies: - dependency-name: org.junit.jupiter:junit-jupiter-engine dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 0e6fa562bf4..edaa34310e6 100644 --- a/build.gradle +++ b/build.gradle @@ -514,7 +514,7 @@ subprojects { project -> testImplementation "org.codehaus.groovy:groovy-test-junit5:${groovyVersion}" testImplementation "org.junit.jupiter:junit-jupiter-api:5.10.5" testImplementation "org.junit.platform:junit-platform-runner:1.10.5" - testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:5.10.2" + testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:5.10.5" if (project.name != "grails-docs") { // Logging From 982035ab88a5b227ac302c9b66c3b2a56d096ab8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 28 Nov 2024 03:20:43 +0000 Subject: [PATCH 38/38] Update dependency com.fasterxml.jackson:jackson-bom to v2.18.2 --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 81408b43f66..5004938361d 100644 --- a/gradle.properties +++ b/gradle.properties @@ -44,7 +44,7 @@ grails-testing-support.version=4.0.0-SNAPSHOT groovy.version=4.0.24 gsp.version=7.0.0-SNAPSHOT h2.version=2.3.232 -jackson.version=2.18.1 +jackson.version=2.18.2 jansi.version=1.18 javaparser-core.version=3.26.2 jline.version=2.14.6