Chesnay Schepler created FLINK-10294: ----------------------------------------
Summary: Split MiniClusterResource to be usable in runtime/streaming-java/clients Key: FLINK-10294 URL: https://issues.apache.org/jira/browse/FLINK-10294 Project: Flink Issue Type: Improvement Components: Tests Affects Versions: 1.7.0 Reporter: Chesnay Schepler Assignee: Chesnay Schepler Fix For: 1.7.0 h5. Problem The {{MiniClusterResource}} is a utility class to create and manage flink clusters for testing purposes. It is incredibly convenient, but unfortunately resides in {{flink-test-utils}} which depends on flink-runtime, flink-streaming-java and flink-clients, making the class not usable in these modules. The current version does require these dependencies, but only for specific, *optional*, parts. {{streaming-java}} is only required for accessing {{TestStreamEnvironment}} and {{flink-clients}} only for tests that want to work against a {{ClusterClient}}. h5. Proposal Split the {{MiniClusterResource}} as follows: h5. 1) Remove client/streaming-java dependent parts and move the class to flink-runtime. h5. 2) Add a new class {{StreamingMiniClusterResourceExtension}} that accepts a {{MiniClusterResource}} as an argument and contains the streaming parts. Usage would look like this: {code} private final MiniClusterResource cluster = ... private final StreamingMiniClusterResourceExtension ext = new StreamingMiniClusterResourceExtension(cluster); @Rule public RuleChain chain= RuleChain .outerRule(cluster) .around(ext), {code} h5. 3) Add a new class {{ClientMiniClusterResourceExtension}} that accepts a {{MiniClusterResource}} as an argument and contains the client parts. Usage would look like this: {code} private final MiniClusterResource cluster = ... private final ClientMiniClusterResourceExtensionext = new ClientMiniClusterResourceExtension(cluster); @Rule public RuleChain chain= RuleChain .outerRule(cluster) .around(ext), {code} [~till.rohrmann] WDYT? -- This message was sent by Atlassian JIRA (v7.6.3#76005)