* Update plugins/hooks from branch 'master'
- Refactor: Make Hook an abstract class
Reduce visibility of Hook and AsynchronousHook to package private.
Make Hook an abstract class, defining abstract "execute" methods.
Rename the "run" and "submit" methods in SynchronousHook and
AsynchronousHook to "execute" to override that defined in Hook.
Change-Id: I4f69aeb8cce336a5765d784a2a7e793743a33ad7
- Refactor: Convert HookArgs to use guava Factory interface
Instead of injecting all of the HookArgs dependencies into the
HookFactory and then explicitly passing them into the HookArgs
constructor, inject the dependencies into HookArgs itself and let
it be created using the guava Factory interface.
This allows to remove several injected members from HookFactory
that were only necessary for creation of HookArgs. Having these
members only in HookArgs, where they are actually used, is cleaner.
Change-Id: I56fa559d37c625c5c2c7e36e3ec58d3dd5f19462