This is an automated email from the ASF dual-hosted git repository. jdaugherty pushed a commit to branch 8.0.x in repository https://gitbox.apache.org/repos/asf/grails-core.git
commit 8a86bed6063e5b5b3f2280271513cb8e30bae0e9 Merge: 856e5b2a09 75605d7db1 Author: James Daugherty <[email protected]> AuthorDate: Sat Jul 11 10:49:57 2026 -0400 Merge pull request #15937 from apache/feat/latency-testing Add testing support option to introduce latency gradle/publish-root-config.gradle | 1 + grails-doc/src/en/guide/introduction/whatsNew.adoc | 9 ++ .../src/en/guide/testing/functionalTesting.adoc | 73 +++++++++++++ grails-test-examples/latency/build.gradle | 48 ++++++++ .../latency/grails-app/conf/application.yml | 47 ++++++++ .../latency/grails-app/conf/logback.xml | 31 ++++++ .../controllers/latencyapp/FastController.groovy | 34 ++++++ .../controllers/latencyapp/SlowController.groovy | 34 ++++++ .../controllers/latencyapp/UrlMappings.groovy | 30 +++++ .../grails-app/init/latencyapp/Application.groovy | 30 +++++ .../groovy/latencyapp/LatencyFunctionalSpec.groovy | 62 +++++++++++ grails-testing-support-latency/build.gradle | 69 ++++++++++++ .../latency/LatencyAutoConfiguration.groovy | 56 ++++++++++ .../grails/testing/latency/LatencyFilter.groovy | 96 ++++++++++++++++ .../testing/latency/LatencyProperties.groovy | 84 ++++++++++++++ ...rk.boot.autoconfigure.AutoConfiguration.imports | 1 + .../latency/LatencyAutoConfigurationSpec.groovy | 63 +++++++++++ .../testing/latency/LatencyFilterSpec.groovy | 121 +++++++++++++++++++++ settings.gradle | 3 + 19 files changed, 892 insertions(+) diff --cc settings.gradle index 5daed3b617,36495d6615..95465c7a96 --- a/settings.gradle +++ b/settings.gradle @@@ -596,22 -594,10 +598,23 @@@ project(':grails-test-examples-scaffold project(':grails-test-examples-views-functional-tests').projectDir = file('grails-test-examples/views-functional-tests') project(':grails-test-examples-views-functional-tests-plugin').projectDir = file('grails-test-examples/views-functional-tests-plugin') project(':grails-test-examples-test-phases').projectDir = file('grails-test-examples/test-phases') -project(':grails-test-examples-spring-dependency-management').projectDir = file('grails-test-examples/spring-dependency-management') project(':grails-test-examples-jetty').projectDir = file('grails-test-examples/jetty') + project(':grails-test-examples-latency').projectDir = file('grails-test-examples/latency') +// The Spring Dependency Management example imports grails-bom as a Maven BOM through +// io.spring.dependency-management, which resolves BOM imports with its own detached +// configurations. Those bypass the local-project substitution rules in +// gradle/functional-test-config.gradle, so the import only works when +// org.apache.grails:grails-bom:<projectVersion> is already published to a repository. +// During a release (reproducible build, SOURCE_DATE_EPOCH set) the version being staged +// is not published anywhere yet, so the example cannot resolve its dependencies - +// exclude it from the build graph entirely. It still builds and runs on every regular +// CI build, where the -SNAPSHOT BOM is available from the Apache snapshots repository. +if (!isReproducibleBuild) { + include 'grails-test-examples-spring-dependency-management' + project(':grails-test-examples-spring-dependency-management').projectDir = file('grails-test-examples/spring-dependency-management') +} + includeBuild('./grails-gradle') { name = 'grails-gradle' }
