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>

上一篇:Python爬虫


下一篇:数据库索引高频面试题:正则表达式学习之调用CLR函数执行正则查询(1)