Current behaviour is:
- Open a thrift binary transport
- create a session
- close the transport
Then the session gets closed. Consequently, all the operations running in the session also get killed.
Whereas, if you open an HTTP transport, and close, the enclosing sessions are not closed.
This seems like a bad design, having transport and sessions tightly coupled. I'd like to fix this.
Another thing that seems like a slightly bad design is this line of code in ThriftBinaryCLIService:
Whereas serverEventHandler is defined by the base class, with no users except one sub-class(ThriftBinaryCLIService), violating the separation of concerns.