Description of changes: Add an option for an async server lifecycle.
Add an untilShutdown() method on StandardSmokeHTTP1Server that will asynchronously wait until the server is shutdown. Internally this will store continuations from this method to be continued when the server shuts down.
Add SmokeAsyncPerInvocationContextInitializer, SmokeAsyncStaticContextInitializer, SmokeAsyncServerPerInvocationContextInitializer, SmokeAsyncServerStaticContextInitializer protocols that change the shutdown() method to async. We are added new protocols to avoid breaking applications that are currently blocking in their shutdown method.
Add StandardJSONSmokeAsyncServerPerInvocationContextInitializer and StandardJSONSmokeAsyncServerStaticContextInitializer protocols that extend the new more generic protocols.
Add async variants of SmokeHTTP1Server+runAsOperationServer. These can also accept an initialisation method that is async.
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
Issue #, if available:
Description of changes: Add an option for an async server lifecycle.
untilShutdown()
method onStandardSmokeHTTP1Server
that will asynchronously wait until the server is shutdown. Internally this will store continuations from this method to be continued when the server shuts down.SmokeAsyncPerInvocationContextInitializer
,SmokeAsyncStaticContextInitializer
,SmokeAsyncServerPerInvocationContextInitializer
,SmokeAsyncServerStaticContextInitializer
protocols that change theshutdown()
method to async. We are added new protocols to avoid breaking applications that are currently blocking in their shutdown method.StandardJSONSmokeAsyncServerPerInvocationContextInitializer
andStandardJSONSmokeAsyncServerStaticContextInitializer
protocols that extend the new more generic protocols.SmokeHTTP1Server+runAsOperationServer
. These can also accept an initialisation method that is async.By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.