Github user aljoscha commented on the issue:
https://github.com/apache/flink/pull/2263
Nice pice of code! I finally understood how it works... ð
Some remarks about the code: in some places there are method names that
seem to stem from an initial implementation but don't match the current code
anymore. For example, `SessionEventGeneratorDataSource.createTestStream()`
returns a "generator" so it could be called `createGenerator()`. Also, there
are some unused methods (for example in `EventGeneratorFactory`) and methods
with generated Javadoc that don't have any actual content. Could you please
have another pass over the code and remove the unused methods and remove or fix
the Javadoc. Some of the classes could also use a class-level Javadoc.
In `SessionEventGeneratorImpl`, the name `generateLateTimestamp()` might be
a bit misleading. It just creates timestamps in the range of allowed
timestamps. Both `InLatenessGenerator` and `AfterLatenessGenerator` use the
method in the same way, just the behavior of `canGenerateEventAtWatermark()`
determines whether the generated elements will be late or not. Here, a good
comment on `canGenerateEventAtWatermark()` might help on the base interface.
Also, it might make sense to make the testing source non-parallel. If we have
parallelism 2 and one source regularly advances the watermark but the other
source never advances the watermark the elements that are generated as "late"
by the first source are not considered late at the window operator because the
watermark at the window operator cannot advance.
---
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.
---