[ https://issues.apache.org/jira/browse/FLINK-10294?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16633949#comment-16633949 ]
Till Rohrmann commented on FLINK-10294: --------------------------------------- Alright, this makes sense. Maybe we could offer for the most common use case convenience classes or alternatively document how to use them with the {{RuleChain}}. > 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 > Priority: Major > 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)