## What is the purpose of the change Introduce the `ClusterComponent` which encapsulates the logic for starting the cluster components, `Dispatcher`, `RestServerEndpoint` and the `ResourceManager`. The individual components are created by using a factory instance. The `ClusterEntrypoint` is now only responsible for managing the required services needed by the `ClusterComponent`. This design should make the testing of these components easier, improve reusability and reduce code duplication.
Move the logic of when to exit the JVM process out of the `ClusterEntrypoint` so that the caller is now responsible to make this call. This improves the usage of the `ClusterEntrypoint` for testing purposes. ## Brief change log - Introduce `ClusterComponent` responsible for managing the cluster components: `Dispatcher`, `RestServerEndpoint` and `ResourceManager` - Introduce factories for the cluster components - Update existing `ClusterEntrypoints` to use the new `ClusterComponent` ## Verifying this change - Most changes are covered by existing tests since it is mainly restructuring code - Added `ClassPathJobGraphRetrieverTest` to test `ClassPathJobGraphRetriever` ## Does this pull request potentially affect one of the following parts: - Dependencies (does it add or upgrade a dependency): (no) - The public API, i.e., is any changed class annotated with `@Public(Evolving)`: (no) - The serializers: (no) - The runtime per-record code paths (performance sensitive): (no) - Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Yarn/Mesos, ZooKeeper: (yes) - The S3 file system connector: (no) ## Documentation - Does this pull request introduce a new feature? (no) - If yes, how is the feature documented? (not applicable) [ Full content available at: https://github.com/apache/flink/pull/6743 ] This message was relayed via gitbox.apache.org for [email protected]
