GitHub user kennknowles opened a pull request:

    https://github.com/apache/incubator-beam/pull/1309

    [BEAM-941] Refactor DoFnSignatures & DoFnInvokers for clarity; removes 
public INSTANCE

    Be sure to do all of the following to help us incorporate your contribution
    quickly and easily:
    
     - [x] Make sure the PR title is formatted like:
       `[BEAM-<Jira issue #>] Description of pull request`
     - [x] Make sure tests pass via `mvn clean verify`. (Even better, enable
           Travis-CI on your fork and ensure the whole test matrix passes).
     - [x] Replace `<Jira issue #>` in the title with the actual Jira issue
           number, if there is one.
     - [x] If this contribution is large, please file an Apache
           [Individual Contributor License 
Agreement](https://www.apache.org/licenses/icla.txt).
    
    ---
    
    R: @tgroh 
    
    As you requested for a followup on the `OnTimerInvoker` PR. The two commits 
are independent but both address the same issue. This is an operation no-op 
(unless something went wrong).
    
     - For `DoFnSignatures` I decided there was only likely to ever be one 
canonical way to create a `DoFnSignature, so it was merely a matter of changes 
one or two non-`static` methods to `static`.
     - For the invokers, it is very easy to imagine experiments with different 
kinds of invokers, so I made the factory interfaces explicit, as you suggested.
    
    BEAM-941 has a couple more longstanding occurrences that I did not address 
here:
    
    ```
    $ find . -name '*.java' | xargs grep 'public.*INSTANCE'
    
./sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/windowing/GlobalWindow.java:
  public static final GlobalWindow INSTANCE = new GlobalWindow();
    
./sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/windowing/GlobalWindow.java:
    public static final Coder INSTANCE = new Coder();
    
./sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/windowing/PaneInfo.java:
    public static final PaneInfoCoder INSTANCE = new PaneInfoCoder();
    
./sdks/java/core/src/test/java/org/apache/beam/sdk/testing/SystemNanoTimeSleeper.java:
  public static final Sleeper INSTANCE = new SystemNanoTimeSleeper();
    ```

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

    $ git pull https://github.com/kennknowles/incubator-beam INSTANCE

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

    https://github.com/apache/incubator-beam/pull/1309.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 #1309
    
----
commit 8cd4ec84b9350e1aa6ba35010fc134adc0d7606f
Author: Kenneth Knowles <[email protected]>
Date:   2016-11-08T06:36:09Z

    Remove DoFnSignatures.INSTANCE

commit 6484bf7b1ceea7d9bcf32fa56c7539dbb06cae55
Author: Kenneth Knowles <[email protected]>
Date:   2016-11-08T07:03:46Z

    Remove INSTANCE from DoFnInvokers and OnTimerInvokers

----


---
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