Hi, On Wed, Oct 21, 2015 at 1:29 PM, Pavel Rappo <pavel.ra...@oracle.com> wrote: > Well, maybe, I don't know. But implementing interfaces A and B with the same > class C doesn't magically bring B's methods into A, does it?
It does if they were not magically split without reason. My point is that you proposed a while back a handy WebSocket interface with a request(long) method. Then that method was split for no reason out of WebSocket, which also became a class for no reason. I am reporting that the previous version was better for application writers. If you're trying to be as close as possible to ReactiveStream, then just use the Flow API. LongConsumer is of course not Flow.Subscription. Half mimicking the Flow API does not bring any good. And with this I really hope you are not going to extract out of WebSocket also the cancelling/closing part to separate more concerns ;) -- Simone Bordet http://bordet.blogspot.com --- Finally, no matter how good the architecture and design are, to deliver bug-free software with optimal performance and reliability, the implementation technique must be flawless. Victoria Livschitz