The the InstallerListener and UninstallerListener have not a symetric life cycle.
It would be a great enhancement to have a "cleanUp()" method in the InstallerListener and UninstallerListener interfaces, to be able to release the engaged ressources when the user click on the "quit" button
It would be not so complicated to automatically call the new "cleanUp()" method of the listener if they are automatically registered as "CleanupClient".
It's necessary to register automatically the listeners as "CleanupClient" (if they implement the interface) because in our custom classes we don't have access to the InstallerContainer to retreive the instance of the Housekeeper component.
look at the methods :