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)

Reply via email to