Vue d’ensemble
Cette section décrit le développement d’extensions pour Fess. Elle fournit des informations sur le développement de plugins, la création de connecteurs personnalisés, la personnalisation de thèmes, etc.
Public cible
Développeurs souhaitant créer des fonctionnalités personnalisées pour Fess
Développeurs souhaitant créer des plugins
Développeurs souhaitant comprendre le code source de Fess
Connaissances préalables
Connaissances de base de Java 21
Bases de Maven (système de build)
Expérience en développement d’applications web
Environnement de développement
Environnement recommandé
JDK: OpenJDK 21 ou supérieur
IDE: IntelliJ IDEA / Eclipse / VS Code
Outil de build: Maven 3.9 ou supérieur
Git: Gestion de versions
Configuration
Récupération du code source:
Build:
Démarrage du serveur de développement:
Aperçu de l’architecture
Fess est composé des composants principaux suivants:
Structure des composants
| Composant | Description |
|---|---|
| Couche Web | Implémentation MVC avec le framework LastaFlute |
| Couche Service | Logique métier |
| Couche d’accès aux données | Intégration OpenSearch via DBFlute |
| Crawler | Collecte de contenu via la bibliothèque fess-crawler |
| Moteur de recherche | Recherche plein texte avec OpenSearch |
Frameworks principaux
LastaFlute: Framework web (actions, formulaires, validation)
DBFlute: Framework d’accès aux données (intégration OpenSearch)
Lasta Di: Conteneur d’injection de dépendances
Structure des répertoires
Points d’extension
Fess fournit les points d’extension suivants:
Plugins
Vous pouvez ajouter des fonctionnalités via des plugins.
Plugins DataStore: Crawl depuis de nouvelles sources de données
Plugins Script Engine: Support de nouveaux langages de script
Plugins WebApp: Extension de l’interface web
Plugins Ingest: Traitement des données lors de l’indexation
Détails: Architecture des plugins
Thèmes
Vous pouvez personnaliser le design de l’écran de recherche.
Détails: Guide de développement de thèmes
Configuration
De nombreux comportements peuvent être personnalisés via fess_config.properties.
Détails: Introduction
Développement de plugins
Pour plus de détails sur le développement de plugins, consultez:
Architecture des plugins - Architecture des plugins
Développement de plugins DataStore - Développement de plugins DataStore
Plugin Script Engine - Plugins Script Engine
Plugin WebApp - Plugins WebApp
Plugin Ingest - Plugins Ingest
Développement de thèmes
Guide de développement de thèmes - Personnalisation des thèmes
Bonnes pratiques
Conventions de codage
Suivre le style de code existant de Fess
Formater le code avec
mvn formatter:formatAjouter les en-têtes de licence avec
mvn license:format
Tests
Écrire des tests unitaires (
*Test.java)Les tests d’intégration sont
*Tests.java
Journalisation
Utiliser Log4j2
logger.debug()/logger.info()/logger.warn()/logger.error()Ne pas journaliser d’informations sensibles