@ConsumerType public interface InstallHookAn 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.ENDphase. 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
PackageExceptionto abort the current phase, but this has currently only an effect in the
InstallContext.Phase.INSTALLEDphase. If a hook fails, the current phase is aborted and all hooks (also the failing one) are called again with the respective "fail" phase.