GitHub user StephanEwen opened a pull request:

    https://github.com/apache/flink/pull/2092

    [FLINK-3395] [build] Make test utils properly available and fix Maven 
dependencies

    This pull requests fixes maven project scopes:
    
      - No **main** scope must ever depend on a **test** scope
      - Common test utils (`ForkableMiniCluster`, `TestEnvironment`, ...) 
should not be in test-jars, but in reusable and user-exposed test utils 
projects in **main** scope.
      - The number of test-jar dependencies should be minimal
      
    ## New Structure
    
      - Created a **flink-test-utils-junit** module that contains all JUnit 
related utils like
        - `TestLogger`
        - `RetryRules`
        This reduces the `flink-core` `test-jar` dependency.
    
      - The **flink-test-utils** project contains all necessary utils for most 
tests
        - `ForkableMiniCluster`
        - `TestEnvironment` & `TestStreamEnvironment`
        - `MultipleProgramsTestBase` & `StreamingMultipleProgramsTestBase`
        - ...
    
      - The `flink-test-utils-junit` and `flink-test-utils` are in the parent 
project `flink-test-utils-parent`.
      
    
    Tons of tests have minor adjustments to use different ways of accessing a 
specific test utility function, to keep the dependencies smaller.
    
    ## Other Fixes
    
      - Removed unnecessary dependencies in the test scope
      - The Table API no longer pulls the example projects into the main scope
      - The Kafka consumer no longer pulls zkclient into the main scope
    
    
    The size of this pull request is very large, but most edits are 
straightforward minor changes due to moving certain util classes and 
consolidating duplicate util classes.

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/StephanEwen/incubator-flink test_utils

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/flink/pull/2092.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #2092
    
----
commit 0c10ccb1aab18d0709861297f6aa2b8c58512d51
Author: Stephan Ewen <[email protected]>
Date:   2016-05-30T18:56:05Z

    [FLINK-3995] [build] Properly structure test scopes and dependencies
    
    Makes the JUnit test utils (TestLogger, retry rules, ...) properly 
available to
    other projects without the 'flink-core' test-jar, via the 
'flink-test-utils-junit' project.
    
    Makes the ForkableMiniCluster, TestEnvironment,  and other test utilities 
available in the 'main'
    scope of the 'flink-test-utils' project.
    
    Creates a 'flink-test-utils-parent' project that holds the 
'flink-test-utils-junit' and
    'flink-test-utils' project.
    
    Also moves some tests between projects and inlines some very simple utility 
functions in
    order to simplify some test jar dependencies.

commit 151324df1d314ce46737bf9994ca7a960c29e6ed
Author: Stephan Ewen <[email protected]>
Date:   2016-06-11T00:14:07Z

    [FLINK-3995] [build] flink-test-utils also contains the streaming test 
utilities.
    
    Test utilities include the StreamingMultipleProgramsTestBase and 
StreamingTestEnvironment.
    
    This moves the ITCases for streaming into 'flink-tests' to achieve that.

----


---
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 [email protected] or file a JIRA ticket
with INFRA.
---

Reply via email to