@Override
@SuppressWarnings("unchecked")
protected void performOperation(Project project, Feature feature) throws Exception {
try {
final MutableFaceted<ProjectFacet> mutable = (MutableFaceted<ProjectFacet>) project;
final BaseAggregatorFacet facet = mutable.getFacet(feature.getFeatureClass());
if (!facet.uninstallRequirements() || !mutable.uninstall(facet))
throw new Exception(String.format("Could not uninstall %s from %s.", facet.getClass(), project));
final ProjectConfig projectConfig = project.getFacet(ProjectConfig.class);
SerializableSet installed = projectConfig.getProjectProperty(ProjectProperty.INSTALLED_FEATURES,
SerializableSet.class);
if (installed == null)