beam-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From kennknowles <...@git.apache.org>
Subject [GitHub] incubator-beam pull request #800: [BEAM-498] Add OldDoFn -> DoFn adapter and...
Date Fri, 05 Aug 2016 22:28:04 GMT
GitHub user kennknowles opened a pull request:

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

    [BEAM-498] Add OldDoFn -> DoFn adapter and expose raw DoFn in ParDo

    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`
     - [ ] 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).
    
    ---
    
    Previously, `ParDo.of(DoFn)` would immediately wrap it into an `OldDoFn` so the new `DoFn`
could not be recovered, since
    
    After this change, the new `DoFn` is temporarily available via `#getNewFn()`, which will
eventually overwrite `#getFn()`. When `ParDo` is instantiated via `ParDo.of(OldDoFn)`, a wrapper
in the reverse direction will create a new `DoFn` that can be accessed via the same method.
So a `ParDo` transform temporarily always carries both, just so one need not reason about
which is present.
    
    This allows consumers of the `fn` inside a `ParDo` to being porting their logic to unconditionally
use `DoFn`.
    
    R: @bjchambers 


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

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

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

    https://github.com/apache/incubator-beam/pull/800.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 #800
    
----
commit 22e629d3ae647b0a32aa8367a0e711e44c7ce31a
Author: Kenneth Knowles <klk@google.com>
Date:   2016-08-05T22:21:23Z

    Add OldDoFn -> DoFn adapter and expose raw DoFn in ParDo
    
    Previously, ParDo.of(DoFn) would immediately wrap it into
    an OldDoFn so the new DoFn could not be recovered, since
    
    After this change, the new DoFn is temporarily available
    via #getNewFn(), which will eventually overwrite #getFn().
    When ParDo is instantiated via ParDo.of(OldDoFn), a wrapper
    in the reverse direction will create a new DoFn that can
    be accessed via the same method. So a ParDo transform
    temporarily always carries both.

----


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

Mime
View raw message