Plugin development

Plugins intended for use in the SXC or Funnelback SaaS v16 require a review before they can be used and this is currently only available to internal Squiz developers.

A Funnelback plugin is a package that can be installed onto the Funnelback server. By creating a plugin, you can package up custom code that is executed by Funnelback to provide additional functionality that others can use.

Plugins are subject to review by the Funnelback product team prior to being installed onto the Funnelback server. See the publishing section for information on how to submit your plugin for review.

On average the product team will provide a decision on your plugin within two business days of receiving the request.

Getting started

Setting up your development environment

Install pre-requisites and configure your IDE.

Generate a plugin project

Learn about the tool used to create a new plugin project.

Tutorial: Developing your first plugin

Follow a step by step tutorial that covers implementation of a very simple plugin. The tutorial covers the complete process, including setup of your development environment.

Plugins - Groovy and equivalent Java code examples

For existing Funnelback developers that are familiar with writing Groovy filters and hook scripts.

Plugin interfaces

Plugins provide various interfaces which, when implemented, extend Funnelback in a number of ways.

A plugin must implement at least one of these interfaces and may require the implementation of multiple interfaces to deliver the required functionality.

The interfaces enable the implementation of:

  • Query-time modifications to the question and response data model as part of the search lifecycle, or as servlet filters that access and modify the request and response servlets.

  • A custom gatherer for use with a custom data source to enable the gathering of content from arbitrary data sources.

  • Filters that analyze and manipulate document content prior to indexing.

  • Faceted navigation custom sort compartor that implements a custom sorting algorithm for faceted navigation categories.

The plugin framework also provides a number of supporting interfaces that usually support the above use cases but can also be used standalone. These interfaces enable:

Plugin unit tests

Each plugin interface provides corresponding test classes which must implement unit tests for the plugin functionality.

Unit tests must be supplied for plugins to ensure that automated upgrades to the SXC environment can be performed safely without breaking any plugin functionality.

Submitting a plugin for inclusion in the extensions library