nutch plugin学习总结

 

一、Nutch Plugin的优缺点

优点:

1、       nutch plugin系统是基于Eclipse 2.x中对插件的使用,它具有很好的扩展性、灵活性、可维护性。

2、       每个插件都有自己的类装载器进行装载,使用各个插件之间具有完全的独立性,任何一个插件的卸载都不会影响到其他插件的使用。

3、       所有的插件都实现Pluggable接口(空接口),更好区分插件类与非插件类,以便对所有插件类进行统一管理(例:记录日志)。

缺点:运行时不能动态加载与卸载。

  

二、Plugin的概念

对于nutch的插件系统,有三个概念需要理顺,pluginExtensionExtensionPoint。对于这三个角色,以下画了张图加深下理解。



 

ExtensionPoint提供了扩展点的元信息,相当于系统所暴露出需要用户扩展的接口。

Extension:它是针对插件系统提供的扩展点的实现,-作为extension points的侦听器,可以被动态的安装。一个Extension实现一个ExtensionPoint

Plugin:是一组定制逻辑的容器,向nutch的核心功能提供扩展。

 

三、Plugin的相关类

 




 
 

  

 

四、Plugin的加载

    Plugin的加载,我们以例子的方式来描述,以插件处理类IndexingFilters为入口进行分析。



 

 

 

 

1、建立索引时,调用IndexingFilters进行文本过滤。

2、IndexingFilters从插件仓库(PluginRepository)获取扩展点(ExtensionPoint)。获取扩展点(ExtensionPoint)时,如果是第一次操作,插件仓库(PluginRepository)为空,则插件仓库(PluginRepository)通过配置文件查找到plugin的文件目录,对plugin下的所有插件进行加载(通过各个插件文件下的plugin.xml来加载pluginExtensionPointExtension之间的对应关系)。

3、通过获取到的ExtensionPoint来得到所对应的该扩展点下的所有扩展项(Extension)

4、循环调用所有的Extension

5、执行完毕

 

 

 

你可能感兴趣的:(eclipse,xml,配置管理)