Move thrift language/rpc validation to codegen implementations

Review Request #3876 — Created May 12, 2016 and submitted — Latest diff uploaded

3411, 3418
dturner-tw, patricklaw, peiyu

In the current engine, it's not possible to validate in a Target constructor the different ways that it might be consumed. For example, previously apache thrift would blindly accept 'finagle' as the rpc_style, but continue to generate synchronous code.

Additionally, as demonstrated on , this created an unnecessary coupling, because adding support for a new language to scrooge required modifying the target type it consumed.

  • Move language validation to individual codegen implementations.
  • Tested invalid language/rpc_style