HBASE-65 wasn't actually fixed with HBASE-1360, that must have been a misunderstanding. I'll do both here and I've got a patch ready that implements parts of both tickets.
This patch adds various command line switches. It also solves
HBASE-65 but it wasn't sensible to split those in two different patches.
- Option to use a framed transport
- Option to use the compact protocol
- Option to bind to a specific IP address
One change in behavior but I don't think anyone is affected by it and I'd call it a bugfix (although it makes the command line parsing ugly).
bin/hbase should print usage information when invoked without an argument. The current Thrift server starts when no argument is provided: bin/hbase thrift. With this change the Thrift server prints usage information when called this way and only starts when the start argument is provided.
Apart from this everything should stay the same as before as the defaults stayed the same.
I've also added documentation for this but as english is my second language I'd appreciate a review.
For the links in the documentation to actually work we need to generate Javadoc for the generated Thrift classes but those classes are currently excluded in the build.xml. I've added another patch that deals with this and another outdated exclusion (onelab was completely removed in September). I decided not to open another issue as it seems we might move to Maven anytime now but I can if you want.
This also lacks the option for a nonblocking server. This is because the Nonblocking Servers require a TNonblockingServerSocket which doesn't support an InetSocketAddress. So the IP address binding only works for the normal TThreadPoolServer. I'll have a look at this and will open a ticket for Thrift.
tl;dr: The patch fixes
HBASE-65 + HBASE-1373 except that it only supports the old ThreadpoolServer and not the Nonblocking servers. This is for review only. I'll try to fix the rest.