概要
Fess のプラグインシステムにより、コア機能を拡張できます。 プラグインはJARファイルとして配布され、動的にロードされます。
プラグインの種類
Fess は以下の種類のプラグインをサポートしています:
| 種類 | 説明 |
|---|---|
| データストア | 新しいデータソースからのコンテンツ取得(Box、Slack等) |
| スクリプトエンジン | 新しいスクリプト言語のサポート |
| Webアプリ | Webインターフェースの拡張 |
| Ingest | インデックス時のデータ加工 |
プラグイン構造
基本構造
pom.xmlの例
プラグインの登録
DIコンテナへの登録
プラグインは fess_ds.xml などの設定ファイルで登録されます:
自動登録
多くのプラグインは、@PostConstruct アノテーションで自動登録します:
プラグインのライフサイクル
初期化
JARファイルがロードされる
DIコンテナがコンポーネントを初期化
@PostConstructメソッドが呼び出されるプラグインがマネージャに登録される
終了
@PreDestroyメソッドが呼び出される(定義されている場合)リソースのクリーンアップ
依存関係
Fess本体との依存
外部ライブラリ
プラグインは独自の依存ライブラリを含めることができます:
依存ライブラリはプラグインJARと一緒に配布するか、 Maven Shade Pluginでfat JARを作成します。
設定の取得
FessConfigから取得
ビルドとインストール
ビルド
インストール
管理画面から:
「システム」→「プラグイン」→「インストール」
プラグイン名を入力してインストール
コマンドライン:
手動:
JARファイルを
plugins/ディレクトリにコピーFess を再起動
デバッグ
ログ出力
開発モード
開発時は Fess をIDEから起動してデバッグできます:
FessBootクラスをデバッグ実行プラグインのソースをプロジェクトに含める
ブレークポイントを設定
公開プラグイン一覧
Fess プロジェクトで公開されている主なプラグイン:
| プラグイン | 説明 |
|---|---|
| fess-ds-box | Box.comコネクタ |
| fess-ds-dropbox | Dropboxコネクタ |
| fess-ds-slack | Slackコネクタ |
| fess-ds-atlassian | Confluence/Jiraコネクタ |
| fess-ds-git | Gitリポジトリコネクタ |
| fess-theme-* | カスタムテーマ |
これらのプラグインは、開発の参考として GitHub で公開されています。
参考情報
データストアプラグイン開発 - データストアプラグイン開発
スクリプトエンジンプラグイン - スクリプトエンジンプラグイン
Webアプリプラグイン - Webアプリプラグイン
Ingestプラグイン - Ingestプラグイン