WindowedStream has a support of 'allowedLateness' feature, while CoGroupedStreams are not. At the mean time, WindowedStream is an inner part of CoGroupedStreams and all main functionality (like evictor/trigger/...) is simply delegated to WindowedStream.
There's no chance to operate with late arriving data from previous steps in cogroups (and joins). Consider the following flow:
a. read data from source1 -> aggregate data with allowed lateness
b. read data from source2 -> aggregate data with allowed lateness
c. cogroup/join streams a and b, and compare aggregated values
Step c doesn't accept any late data from steps a/b due to lack of `allowedLateness` API call in CoGroupedStreams.java.
Scope: add method `WithWindow.allowedLateness` to Java API (flink-streaming-java) and extend scala API (flink-streaming-scala).