The "modifier" attribute of the <uninstallSteps> element specifies the override requirements for the uninstall block.
If ABSTRACT, the block may not include a body. The body must be specified by non-abstract derived components. Uninstall blocks may only be declared abstract if the component is also declared abstract. Abstract blocks may not be private. Non-abstract blocks must declare a body.
If FINAL, the uninstall block may not be overridden by derived components.
If unspecified, then derived components can choose whether or not to override the block.