Nutch源代码

this.extensionPoint =PluginRepository.get(conf).getExtensionPoint(

       URLNormalizer.X_POINT_ID);

public static synchronizedPluginRepository get(Configuration conf) {

    PluginRepository result = CACHE.get(conf);

    if (result ==null) {

       result = newPluginRepository(conf);

       CACHE.put(conf,result);

    }

    returnresult;

}

publicPluginRepository(Configuration conf)throwsRuntimeException {

    fActivatedPlugins =newHashMap<String, Plugin>();

    fExtensionPoints =newHashMap<String, ExtensionPoint>();

    this.conf =conf;

    this.auto =conf.getBoolean("plugin.auto-activation",true);

    String[] pluginFolders = conf.getStrings("plugin.folders");

    PluginManifestParsermanifestParser = new PluginManifestParser(conf,

           this);

    Map<String, PluginDescriptor>allPlugins = manifestParser

           .parsePluginFolder(pluginFolders);

    Pattern excludes = Pattern.compile(conf.get("plugin.excludes",""));

    Pattern includes = Pattern.compile(conf.get("plugin.includes",""));

    Map<String, PluginDescriptor>filteredPlugins = filter(excludes,

           includes, allPlugins);

    fRegisteredPlugins =getDependencyCheckedPlugins(filteredPlugins,

           this.auto ?allPlugins : filteredPlugins);

    installExtensionPoints(fRegisteredPlugins);

    try {

       installExtensions(fRegisteredPlugins);

    } catch(PluginRuntimeException e) {

       LOG.fatal(e.toString());

       thrownewRuntimeException(e.getMessage());

    }

    displayStatus();

}

<property>

   <name>plugin.folders</name>

   <value>plugins</value>

</property>

posted @ 2021-08-19 09:58  v17166570219  阅读(35)  评论(0)    收藏  举报