Vue d’ensemble
Le système de plugins de Fess permet d’étendre les fonctionnalités de base. Les plugins sont distribués sous forme de fichiers JAR et chargés dynamiquement.
Types de plugins
Fess supporte les types de plugins suivants:
| Type | Description |
|---|---|
| DataStore | Récupération de contenu depuis de nouvelles sources de données (Box, Slack, etc.) |
| Script Engine | Support de nouveaux langages de script |
| WebApp | Extension de l’interface web |
| Ingest | Traitement des données lors de l’indexation |
Structure d’un plugin
Structure de base
Exemple de pom.xml
Enregistrement du plugin
Enregistrement dans le conteneur DI
Les plugins sont enregistrés dans des fichiers de configuration comme fess_ds.xml:
Enregistrement automatique
De nombreux plugins s’enregistrent automatiquement avec l’annotation @PostConstruct:
Cycle de vie du plugin
Initialisation
Le fichier JAR est chargé
Le conteneur DI initialise les composants
Les méthodes
@PostConstructsont appeléesLe plugin est enregistré dans le gestionnaire
Terminaison
Les méthodes
@PreDestroysont appelées (si définies)Nettoyage des ressources
Dépendances
Dépendance avec Fess
Bibliothèques externes
Les plugins peuvent inclure leurs propres dépendances:
Les bibliothèques dépendantes peuvent être distribuées avec le JAR du plugin, ou vous pouvez créer un fat JAR avec Maven Shade Plugin.
Récupération de la configuration
Récupération depuis FessConfig
Build et installation
Build
Installation
Depuis l’interface d’administration:
« Système » -> « Plugins » -> « Installer »
Entrer le nom du plugin et installer
Ligne de commande:
Manuellement:
Copier le fichier JAR dans le répertoire
plugins/Redémarrer Fess
Débogage
Sortie de logs
Mode développement
En développement, vous pouvez lancer Fess depuis l’IDE pour déboguer:
Exécuter la classe
FessBooten mode debugInclure les sources du plugin dans le projet
Définir des points d’arrêt
Liste des plugins publiés
Principaux plugins publiés par le projet Fess:
| Plugin | Description |
|---|---|
| fess-ds-box | Connecteur Box.com |
| fess-ds-dropbox | Connecteur Dropbox |
| fess-ds-slack | Connecteur Slack |
| fess-ds-atlassian | Connecteur Confluence/Jira |
| fess-ds-git | Connecteur de dépôt Git |
| fess-theme-* | Thèmes personnalisés |
Ces plugins sont publiés sur GitHub comme référence de développement.
Informations complémentaires
Développement de plugins DataStore - Développement de plugins DataStore
Plugin Script Engine - Plugins Script Engine
Plugin WebApp - Plugins WebApp
Plugin Ingest - Plugins Ingest