@Override public Result execute(UIExecutionContext context) throws Exception { Project project = getSelectedProject(context); DeltaSpikeFacet deltaSpikeFacet = project.getFacet(DeltaSpikeFacet.class); Iterable<DeltaSpikeModule> selectedModules = dsModules.getValue(); Set<DeltaSpikeModule> modulesInstalled = new HashSet<DeltaSpikeModule>(); Set<DeltaSpikeModule> modulesRemoved = new HashSet<DeltaSpikeModule>(); for (DeltaSpikeModule dsModule : DeltaSpikeModules.values()) { boolean selected = false; for (DeltaSpikeModule selectedModule : selectedModules) { if (selectedModule.equals(dsModule)) { selected = true; } } // Modules to Install if (selected && !deltaSpikeFacet.isModuleInstalled(dsModule)) { modulesInstalled.add(dsModule); deltaSpikeFacet.install(dsModule); if (dsModule.getInstallationExtraStep() != null) { dsModule.getInstallationExtraStep().install(project); } } // Modules to Remove if (!selected && deltaSpikeFacet.isModuleInstalled(dsModule)) { modulesRemoved.add(dsModule); deltaSpikeFacet.remove(dsModule); if (dsModule.getInstallationExtraStep() != null) { dsModule.getInstallationExtraStep().remove(project); } } } return Results.success( "DeltaSpike modules installed:" + modulesInstalled + "\nDeltaSpike modules removed:" + modulesRemoved); }