Github user wangzhijiang999 commented on the issue: https://github.com/apache/flink/pull/2461 @tillrohrmann , I tried to understand your idea as follows: 1. Provide specific TaskExecutorFactory class instead of abstract factory for both standalone/yarn mode. 2. Network selection and RPC service creation methods should be pulled out from factory, maybe remove to some utility class?(for JM reuse) 3. The constructor of TaskExecutorFactory supports many different parameters: such as TaskExecutorFactory(Configuration, ResourceID) TaskExecutorFactory(RpcService, HighAvailabilityServices) TaskExecutorFactory(hostname, port) TaskExecutorFactory(Configuration, ResourceID, RpcService, HighAvailabilityServices,hostname, port), The above three constructors for partial parameters can be transformed into the fourth final constructor , all the missing parameters can be generated by internal default value. 4. The TaskExecutorFactory supports the method "createTaskManger" to bring up TaskManger for outside world, and this method will construct the related components(TaskManagerConfiguration, NetworkManager, IOManager, MemoryManager) 5. For testing mode, construct the TestingTaskExecutorFactory to pass all the components explicitly, including (ResourceID,MemoryManager,IOManager,NetworkEnvironment,numberOfSlots, RpcService,HighAvailabilityServices), the TaskManagerConfiguration should be passed from outside or generate implicitly? 6. In addition, the localTaskManagerCommunication parameter is needed before to decide whether to create NettyConfig for standalone or yarn mode. Now I will remove this parameter to create ~~NettyConfig~~ always.
--- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---