The thrift API for communication between components should be abstracted out and made more generic, so we can plug in different communications mechanisms. The thrift code generation and the generated code should be moved to a specific implementation of this abstraction, and put in a separate sub-module.
This can help with:
1. Making full mocking support easier (
ACCUMULO-14) with an in-process "RPC" implementation.
2. Testing alternative protocols, like Avro, Protocol Buffers, SSL, etc.
3. Minimizing dependencies and isolating thrift generated code from code that is maintained (ACCUMULO-493).
4. Wire compatibility (
|1.||Exclude thrift generated classes from javadoc generation||Open|
|2.||Consolidate Thrift connection helper classes||Open||Unassigned|