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);
}
returnresult;
}
publicPluginRepository(Configuration conf)throwsRuntimeException {
fActivatedPlugins =newHashMap<String, Plugin>();
fExtensionPoints =newHashMap<String, ExtensionPoint>();
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) {
thrownewRuntimeException(e.getMessage());
}
displayStatus();
}
<property>
<name>plugin.folders</name>
<value>plugins</value>
</property>

浙公网安备 33010602011771号