ClassDescriptionProvides a structured approach for constructing
DeephavenApiServerComponent.Entrypoint for the Deephaven gRPC server, starting the various engine and script components, running any specified application, and enabling the gRPC endpoints to be accessed by consumers.DeephavenApiServerComponent.Builder<Self extends DeephavenApiServerComponent.Builder<Self,
Component>, Component extends DeephavenApiServerComponent>This interface handles the lifecycle of Netty and Jetty servers in a unified way, while still supporting the use cases that Deephaven expects: Deephaven wants to initiate stop early in the shutdown process, and block on it after all services have begun to stop. gRPC+Netty supports a non-blocking stop, a "stop now", and a pair of await methods, one of which takes a timeout. gRPC+Jetty supports a blocking stop with a timeout, and a join() method. In order to not block on the initial stop call, the Jetty implementation will run stop() in another thread.