GitHub user kennknowles opened a pull request: https://github.com/apache/incubator-beam/pull/1355
[BEAM-498] Treat ProcessContext and Context like other DoFn parameters 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). --- Before this change, `ProcessContext` and `Context` were special-cased, while other parameters were treated generically. After this change, all parameters receive the same dynamic treatment. Thus a user need not request these parameters, the runner can save the effort of constructing them, and we can migrate towards less "all-in-one" parameters. I changed only the analysis and code generation a bit to remove special casing, but did not write new delegations that would actually add dynamic parameter generation to methods that do not already have them, so only `@ProcessElement` and `@OnTimer` are affected. Posted for self-review & signposting. CC: @tgroh who has discussed this and @jkff who may have interest. You can merge this pull request into a Git repository by running: $ git pull https://github.com/kennknowles/incubator-beam ProcessContext Alternatively you can review and apply these changes as the patch at: https://github.com/apache/incubator-beam/pull/1355.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 #1355 ---- commit 959e906a7591eaa40c3c2451f0c3dcfdffc50c32 Author: Kenneth Knowles <k...@google.com> Date: 2016-11-11T22:55:16Z Treat ProcessContext and Context like other DoFn parameters Before this change, ProcessContext and Context were special-cased, while other parameters were treated generically. After this change, all parameters receive the same dynamic treatment. Thus a user need not request these parameters, the runner can save the effort of constructing them, and we can migrate towards less "all-in-one" parameters. ---- --- 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 infrastruct...@apache.org or file a JIRA ticket with INFRA. ---