## 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]

Reply via email to