コード例 #1
0
  void loadPlugin(Plugin plugin) {

    if (FindBugs.DEBUG) {
      System.out.println("Loading " + plugin.getPluginId());
    }
    pluginByIdMap.put(plugin.getPluginId(), plugin);

    setGlobalOptions();

    // Register all of the detectors that this plugin contains
    for (DetectorFactory factory : plugin.getDetectorFactories()) {
      registerDetector(factory);
    }

    for (BugCategory bugCategory : plugin.getBugCategories()) {
      registerBugCategory(bugCategory);
    }

    // Register the BugPatterns
    for (BugPattern bugPattern : plugin.getBugPatterns()) {
      registerBugPattern(bugPattern);
    }

    // Register the BugCodes
    for (BugCode bugCode : plugin.getBugCodes()) {
      registerBugCode(bugCode);
    }
    for (CloudPlugin cloud : plugin.getCloudPlugins()) {
      registerCloud(cloud);
    }
  }
コード例 #2
0
  private DetectorFactoryCollection(
      boolean loadCore,
      boolean forceLoad,
      @Nonnull Collection<Plugin> pluginsToLoad,
      @Nonnull Collection<Plugin> enabledPlugins) {
    if (loadCore) {
      loadCorePlugin();
    }
    for (Plugin plugin : pluginsToLoad) {
      if (forceLoad || plugin.isGloballyEnabled() && !plugin.isCorePlugin()) {
        loadPlugin(plugin);
        if (!enabledPlugins.contains(plugin)) {
          enabledPlugins.add(plugin);
        }
      }
    }
    setGlobalOptions();
    updateChecker = new UpdateChecker(this);
    pluginsToUpdate = combine(enabledPlugins);
    // There are too many places where the detector factory collection can be created,
    // and in many cases it has nothing to do with update checks, like Plugin#addCustomPlugin(URI).

    // Line below commented to allow custom plugins be loaded/registered BEFORE we
    // start to update something. The reason is that custom plugins
    // can disable update globally OR just will be NOT INCLUDED in the update check!
    // updateChecker.checkForUpdates(pluginsToUpdate, false);
  }
コード例 #3
0
  void unLoadPlugin(Plugin plugin) {
    pluginByIdMap.remove(plugin.getPluginId());

    setGlobalOptions();

    for (DetectorFactory factory : plugin.getDetectorFactories()) {
      unRegisterDetector(factory);
    }
    for (BugCategory bugCategory : plugin.getBugCategories()) {
      unRegisterBugCategory(bugCategory);
    }
    for (BugPattern bugPattern : plugin.getBugPatterns()) {
      unRegisterBugPattern(bugPattern);
    }
    for (BugCode bugCode : plugin.getBugCodes()) {
      unRegisterBugCode(bugCode);
    }
    for (CloudPlugin cloud : plugin.getCloudPlugins()) {
      unRegisterCloud(cloud);
    }
  }