-- Originally written by StefanGroschupf - 05 Oct 2004
This text explain the ideas behind the nutch plugin system.
There are 3 main arguments for a plugin system.
Extensibility
Plugins allow anyone to extend the functionality of Nutch simply by writing their own implementation of a given interface. For instance, the
MSWordParser, used for parseing Word documents, is an implementation of the
Parser interface.
Flexibility
Since everybody can write a plugin, hopefully in future there will be a large set of plugins to choose from. At that point Nutch administrators will each be able to assemble their own search engine based on her/his particular needs needs by installing the plugins he or she is interested in. He or she will be able to choose from different summarizing algorithms, add pdf file format or remove ftp protocol support.
Maintainability
Each developer is focused on his/her own context. The core developers are able to write code for the nutch core engine and provide a described interface - a plug. A plugin developer is able to focus on the functionality of their specific plugin without worrying about how the system as a whole works. They only need to know what kind of data the plug and the plugin exchange. Since both sides are encapsulated nobody needs to take care of the integration of the other side. This makes the code less complex, easier to maintain and less fragile.
<<< PluginCentral