protected PluginManagerResponse activatePlugin(
     final GAVCoordinate gav,
     final boolean strict,
     final Set<GAVCoordinate> installedPluginsFilteredByGA) {
   final GAVCoordinate activatedGav = getActivatedPluginGav(gav, strict);
   if (activatedGav == null) {
     GAVCoordinate actualGAV = null;
     if (!strict) {
       actualGAV = findInstalledPluginByGA(installedPluginsFilteredByGA, gav);
     }
     if (actualGAV == null) {
       actualGAV = gav;
     }
     final PluginManagerResponse response =
         new PluginManagerResponse(actualGAV, PluginActivationRequest.ACTIVATE);
     try {
       activatePlugin(
           repositoryManager.resolveArtifact(actualGAV), response, installedPluginsFilteredByGA);
     } catch (final NoSuchPluginRepositoryArtifactException e) {
       reportMissingPlugin(response, e);
     }
     return response;
   } else {
     return new PluginManagerResponse(activatedGav, PluginActivationRequest.ACTIVATE);
   }
 }
  @Timed
  public Collection<PluginManagerResponse> activateInstalledPlugins() {
    final List<PluginManagerResponse> result = new ArrayList<PluginManagerResponse>();

    // if multiple V's for GAs are found, choose the one with biggest version (and pray that plugins
    // has sane
    // versioning)
    Map<GAVCoordinate, PluginMetadata> filteredPlugins =
        filterInstalledPlugins(repositoryManager.findAvailablePlugins());

    for (final GAVCoordinate gav : filteredPlugins.keySet()) {
      // activate what we found in reposes
      result.add(activatePlugin(gav, true, filteredPlugins.keySet()));
    }
    return result;
  }