I am using failsafe framework which is really great. The only down side is that it is not persistent between server failures.
Assume the edge case of kill -9 java
kill -9 java