[ https://issues.apache.org/jira/browse/BEAM-498?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15410192#comment-15410192 ]
ASF GitHub Bot commented on BEAM-498: ------------------------------------- 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 <k...@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. ---- > Make DoFnWithContext the new DoFn > --------------------------------- > > Key: BEAM-498 > URL: https://issues.apache.org/jira/browse/BEAM-498 > Project: Beam > Issue Type: New Feature > Components: sdk-java-core > Reporter: Kenneth Knowles > Assignee: Kenneth Knowles > -- This message was sent by Atlassian JIRA (v6.3.4#6332)