C/C++教程

Nutch源码

本文主要是介绍Nutch源码,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

在URLNormalizers构造函数中,

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

       URLNormalizer.X_POINT_ID);

    看1下PluginRepository.get函数:

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>

2.       plugin.auto-activation:

<property>

 <name>plugin.auto-activation</name>

 <value>true</value>

</property>

3.        plugin.includes:

<property>

这篇关于Nutch源码的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!