private Set<String> checkPluginDependency(Collection<String> usedPlugins, Plugin p) {
    Map<String, VersionInfo> depends = p.getDependencies();
    Set<String> missingDependencies = new HashSet<String>();

    if (depends != null) {
      for (String name : depends.keySet()) {
        if (!usedPlugins.contains(name)) {
          missingDependencies.add(name);
          Set<String> transitiveMissingDependencies =
              checkPluginDependency(usedPlugins, SlimEngine.getFullEngine().getPlugin(name));
          missingDependencies.addAll(transitiveMissingDependencies);
        }
      }
    }

    return missingDependencies;
  }