Various plugins are supported by FitNesse. !3 Overview Below are a list of customizations you can make via this plugin architechture. Each plugin will require an entry in the ''plugins.properties'' file. This should be located in the working directory of FitNesse. If the file does not exist FitNesse will run normally. To enable a plugin, create this file, and add the specified entries. All plugins will require complied Java code so make sure that the classpath contains an entry to locate your plugins. !3 Wiki Page ''required property:'' '''!-WikiPage-! = <class name>''' ''motivation:'' Steve Starkey has made a !-WikiPage-! plugin available that uses MySQL as a backend for FitNesse instead of flat files on disk. The class specified must implement the fitnesse.wiki.!-WikiPage-! interface and it must provide a public constructor of the form: ''public !-MyWikiPage-!(Properties properties)''' This allows special construction parameters to be places in the properties file and used by the custom !-WikiPage-! implementation. !3 Html Page Factory ''required property:'' '''!-HtmlPageFactory-! = <class name>''' ''motivation:'' Full customization of look and feel. The class specified must extend the fitnesse.html.!-HtmlPageFactory-! class and it must also provide a constructor that accept a Properties object. The custom !-HtmlPageFactory-! will over ride the newPage() method to return a derivative of fitnesse.html.!-HtmlPage-!. The custom !-HtmlPage-! class should make use of any of the public !-HtmlTag-! member variables. !3 Responders ''required property:'' '''!-Responders-! = <key:classname>[,<key:classname>]''' ''motivation:'' Allows functional customization. With this plugin you can customize the way FitNesse responds to HTTP requests. The property provided should be a comma seperated list of key:value pairs where value is tha name of a class that implements fitnesse.Responder. The key is used in the URL to designate which responder to invoke. An example responder plugin might be an RssResponder that would generate RSS feeds for wiki page updates. To do this you would first create the RssResponder to gerenate the RSS. Then add the plugin property ''(Responders=rss:your.package.RssResponder)''. Then to invoke it you would use a URL like ''http://fitnesse.org/RecentChanges?responder=rss'' to get a feed on all the changes made to the RecentChanges page. !3 Authenticator ''required property:'' '''!-Authenticator-! = <class name>''' ''motivation:'' Custom security scheme. The class provided must extend the fitnesse.authentication.Authenticator class. The class will be instantiated and asked ''isAuthenticated(String username, String password)'' when ever authentication is required. See SecurityDescription for more information on security. !3 !-WikiWidget-! ''required property:'' '''WikiWidgets = <class name>[,<class name]''' ''motivation:'' Custom look-n-feel, or custom functionality hook. The classes supplied bust extends fitnesse.wikitext.WikiWidget. In addition, custom WikiWidget must have a public static field of type String and named REGEXP. The value of REGEXP should be a regular expresion that matches your custom widget. REGEXP '''cannot''' contain any groups.
Use alt+s (Windows) or control+s (Mac OS X) to save your changes. Or, tab from the text area to the "Save" button!
Grab the lower-right corner of the text area to increase its size (works with some browsers).