GitHub user kennknowles opened a pull request:
https://github.com/apache/beam/pull/2030
[BEAM-115,BEAM-1328] Convert to/from WindowingStrategy proto in Java SDK
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).
---
Some aspects of this PR are sort of hacks, but the kind that might be
forgiven in order to make rapid progress. I am opening the PR for comment
anyhow, but there are few changes that I might now make underneath this PR:
1. Move Java SDK `ClosingBehavior` to top level and rename. Incidentally
related to [BEAM-210](https://issues.apache.org/jira/browse/BEAM-210) only
because that is another reason this should just be a top-level concept. Not
sure there's much benefit to putting public enums inside other misc classes
when there's no real natural home for them.
2. Move Java SDK `AccumulationMode` to top level and put its to/from proto
there. In particular, it should also come out of `util`.
3. Maybe actually try to move from `OutputTimeFn` to a Java SDK
`OutputTime` prior to this PR. But actually converting this to proto, then
converting the runners to use that will make the latter migration easier. Some
cruft is introduced in the meantime, though.
4. If `WindowingStrategy` is going to continue to be a thing that is
prominent all over our public SDK surface and in the runner API whether it
really belongs in `util`.
And I'll want to flesh out the list of test cases. Given how generic the
logic is, I don't expect many surprises.
R: @tgroh
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/kennknowles/beam WindowingStrategy-from-proto
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/beam/pull/2030.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 #2030
----
commit e7171b8fcd8068e5b0ec0c660d16d104bb1c334a
Author: Kenneth Knowles <[email protected]>
Date: 2017-02-16T22:45:05Z
Make SDK-specific serialized blob really a blob
commit b3b3ba5cdd5559685208b0cbbd45071bc862a7b8
Author: Kenneth Knowles <[email protected]>
Date: 2017-02-17T04:26:39Z
Add closing behavior to Runner API proto
commit fd995928091582487e14cb1af128354b5c9fadbe
Author: Kenneth Knowles <[email protected]>
Date: 2017-02-17T04:26:45Z
Add conversion to/from Runner API proto for WindowingStrategy
----
---
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.
---