Nutch's plugin system is based on the one used in Eclipse 2.x. Plugins are central to how nutch works. All of the parsing, indexing and searching that nutch does is actually accomplished by various plugins.

In writing a plugin, you're actually providing one or more extensions of the existing extension-points . The core Nutch extension-points are themselves defined in a plugin, the NutchExtensionPoints plugin (they are listed in the NutchExtensionPoints plugin.xml file). Each extension-point defines an interface that must be implemented by the extension. The core extension points are:

Setup

Start by downloading the Nutch source code. Once you've got that make sure it compiles as is before you make any changes. You should be able to get it to compile by running ant from the directory you downloaded the source to. If you have trouble you can write to one of the Mailing Lists.

Use the source code for the plugins distrubuted with Nutch as a reference.  They're in \[!YourCheckoutDir\]/src/plugin.

Required Files

You'll need to create a directory inside of the plugin directory with the name of your plugin. Inside that directory you need the following:

Getting Nutch to Use a Plugin

In order to get Nutch to a given plugin, you need to edit your conf/nutch-site.xml file and add the name of the plugin to the list of plugin.includes.

<<< See also: WritingPluginExample

<<< See also: WritingPluginExample for version 0.8

<<< See also: HowToContribute

<<< PluginCentral