You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@grails.apache.org by jd...@apache.org on 2026/09/18 11:13:47 UTC

(grails-core) branch 8.0.x updated (e749cc79a9 -> 9fdcb77bf4)

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

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


    from e749cc79a9 Merge pull request #16184 from codeconsole/fix/gsp-spring-boot-standalone-8.0.x
     add ab48162355 Modernize default promises with CompletableFuture
     add 67f93528de Use the Boot application task executor for promises
     add e959963e51 Delegate async action results to Spring MVC
     add 3b931d1b89 Document Spring-managed async execution
     add 77eeee3cb1 Replace legacy web promise decoration with Spring async support
     add 0343abc5af Deprecate legacy async compatibility APIs
     add b3febc2d20 Preserve executor affinity across completion stages
     add 48a7b21da1 Restore promise error recovery semantics
     add 479f5e0e2e Restore URL mapping state on async dispatch
     add fb318eef8c Provide a managed fallback promise executor
     add c982feb634 Reuse matched URL mappings on async dispatch
     add 8dd2b0a1dd Merge upstream/8.0.x into feature/modernize-grails-async-8.0.x
     add f269620071 Preserve promise failures and consistent Future exception semantics
     add c8c9a0b1b2 Share the promise executor with the default event bus
     add b8796c25fd Resolve the named application executor and enable fallback concurrency
     add f7da7dee19 Preserve standalone web context and unify async request lifecycle
     add a29efe7561 Document async executor migration and deprecated Servlet APIs
     add b65a64ed69 Merge upstream/8.0.x into feature/modernize-grails-async-8.0.x
     add b09d755655 Merge upstream/8.0.x and retain both sets of upgrade notes
     add 69b234e3a5 Unify virtual-thread promises and preserve checked task failures
     add 683342d225 Propagate web context across owned executors and chained promises
     add b698b3f540 Resolve asynchronous request timeouts as HTTP 503
     add f3624cb8c3 Document unified virtual-thread execution and promise failure contracts
     add 9fdcb77bf4 Merge pull request #16230 from codeconsole/feature/modernize-grails-async-8.0.x

No new revisions were added by this update.

Summary of changes:
 .../async/factory/PromiseFactoryBuilder.groovy     |  13 +-
 .../future/CachedThreadPoolPromiseFactory.groovy   |   2 +
 .../factory/future/CompletableFuturePromise.groovy | 115 +++++++++
 .../future/CompletableFuturePromiseFactory.groovy  | 170 +++++++++++++
 .../factory/future/ExecutorPromiseFactory.groovy   |   2 +
 .../async/factory/future/FutureTaskPromise.groovy  |   2 +
 .../future/VirtualThreadPromiseFactory.groovy      |  93 +-------
 .../CompletableFuturePromiseFactorySpec.groovy     | 265 +++++++++++++++++++++
 .../test/groovy/grails/async/PromiseMapSpec.groovy |   2 +-
 .../test/groovy/grails/async/PromiseSpec.groovy    |   3 +-
 .../async/VirtualThreadPromiseFactorySpec.groovy   |  41 +++-
 .../groovy/grails/async/web/AsyncController.groovy |   2 +
 .../grails/async/web/AsyncGrailsWebRequest.groovy  |   2 +
 .../groovy/grails/async/web/WebPromises.groovy     |  84 ++++++-
 .../plugins/web/async/AsyncRequestSupport.groovy   |  61 +++++
 .../async/AsyncWebRequestPromiseDecorator.groovy   |   2 +
 ...WebRequestPromiseDecoratorLookupStrategy.groovy |   2 +
 .../web/async/ControllersAsyncGrailsPlugin.groovy  |  60 ++++-
 .../plugins/web/async/GrailsAsyncContext.groovy    |   2 +
 .../web/async/GrailsWebRequestTaskDecorator.groovy |  68 ++++++
 .../async/mvc/AsyncActionResultTransformer.groovy  |  96 ++------
 .../web/async/spring/PromiseFactoryBean.groovy     |   2 +
 .../grails/async/services/WebPromisesSpec.groovy   | 202 +++++++++++++---
 .../async/ControllersAsyncGrailsPluginSpec.groovy  | 165 ++++++++++++-
 .../async/GrailsWebRequestTaskDecoratorSpec.groovy |  64 +++++
 .../mvc/AsyncActionResultTransformerSpec.groovy    | 164 +++++++++++++
 grails-doc/src/en/guide/async/asyncPromises.adoc   |  45 +++-
 grails-doc/src/en/guide/async/asyncRequests.adoc   |  13 +-
 grails-doc/src/en/guide/async/asyncServletApi.adoc |   2 +
 grails-doc/src/en/guide/async/events.adoc          |   4 +-
 grails-doc/src/en/guide/traits/traitsprovided.adoc |   2 +-
 .../src/en/guide/upgrading/upgrading80x.adoc       |  12 +
 .../events/bus/spring/EventBusFactoryBean.groovy   |  15 +-
 .../grails/events/TaskExecuterEventBusSpec.groovy  |  38 ++-
 .../pubsub/demo/TimeoutController.groovy}          |  14 +-
 .../pubsub/demo/TimeoutControllerSpec.groovy}      |  17 +-
 .../grails/web/errors/GrailsExceptionResolver.java |  35 ++-
 .../web/errors/GrailsExceptionResolverSpec.groovy  |  40 ++++
 .../mvc/UrlMappingsInfoHandlerAdapter.groovy       |  20 +-
 .../UrlMappingsInfoHandlerAdapterAsyncSpec.groovy  |  79 ++++++
 40 files changed, 1749 insertions(+), 271 deletions(-)
 create mode 100644 grails-async/core/src/main/groovy/org/grails/async/factory/future/CompletableFuturePromise.groovy
 create mode 100644 grails-async/core/src/main/groovy/org/grails/async/factory/future/CompletableFuturePromiseFactory.groovy
 create mode 100644 grails-async/core/src/test/groovy/grails/async/CompletableFuturePromiseFactorySpec.groovy
 create mode 100644 grails-async/plugin/src/main/groovy/org/grails/plugins/web/async/AsyncRequestSupport.groovy
 create mode 100644 grails-async/plugin/src/main/groovy/org/grails/plugins/web/async/GrailsWebRequestTaskDecorator.groovy
 create mode 100644 grails-async/plugin/src/test/groovy/org/grails/plugins/web/async/GrailsWebRequestTaskDecoratorSpec.groovy
 create mode 100644 grails-async/plugin/src/test/groovy/org/grails/plugins/web/async/mvc/AsyncActionResultTransformerSpec.groovy
 copy grails-test-examples/{test-phases/grails-app/controllers/testphases/GreetingController.groovy => async-events-pubsub-demo/grails-app/controllers/pubsub/demo/TimeoutController.groovy} (85%)
 copy grails-test-examples/{hibernate7/async-events-pubsub-demo/src/integration-test/groovy/pubsub/demo/TaskControllerSpec.groovy => async-events-pubsub-demo/src/integration-test/groovy/pubsub/demo/TimeoutControllerSpec.groovy} (75%)
 create mode 100644 grails-web-url-mappings/src/test/groovy/org/grails/web/mapping/mvc/UrlMappingsInfoHandlerAdapterAsyncSpec.groovy