An install hook is used to do some pre and post work during a package
 install. the hooks need to have at least one class that implements this
 interface. the class is identified by the normal "Main-Class" manifest
 property and needs to be instantiatable. The instantiated hook class is
 used for the entire life-cycle of the installation process until the
 
InstallContext.Phase.END phase.
 The hook jars need to be placed in the "META-INF/vault/hooks" directory
 and are executed in alphabetical sequence for each installation phase.
 A hook can throw a 
PackageException to abort the current phase,
 but this has currently only an effect in the
 
InstallContext.Phase.PREPARE and 
InstallContext.Phase.INSTALLED
 phase. If a hook fails, the current phase is aborted and all hooks 
 (also the failing one) are called again with the respective "fail" phase.