Let me split this requirement into 2 parts:
I was trying to add more tests around new actions and policies by leveraging the existing classes nested inside ChaosMonkey.
But it turned out that some of the classes cannot be used outside, unless we make those visible to the world.
Here is an example:
I cannot extend ChaosMonkey.Action, as the init(ActionContext context) method has package-wide visibility.
There are other places as well which makes it impossible for anyone to extend on top of this hierarchy.
I wanted to extend this tool to define failure/pass criteria based on % of read/write failed, rather than comparing against absolute 0.
For that this beautiful class should mark some of its properties usable by its child, by marking those protected.
I wanted to get unblocked here first.
Once this gets fixed, I think I can take up a JIRA item to refactor these tools, if required.