Vue d’ensemble
Cette section decrit le developpement d’extensions pour Fess. Elle fournit des informations sur le developpement de plugins, la creation de connecteurs personnalises, la personnalisation de themes, etc.
Public cible
Developpeurs souhaitant creer des fonctionnalites personnalisees pour Fess
Developpeurs souhaitant creer des plugins
Developpeurs souhaitant comprendre le code source de Fess
Connaissances prealables
Connaissances de base de Java 21
Bases de Maven (systeme de build)
Experience en developpement d’applications web
Environnement de developpement
Environnement recommande
JDK: OpenJDK 21 ou superieur
IDE: IntelliJ IDEA / Eclipse / VS Code
Outil de build: Maven 3.9 ou superieur
Git: Gestion de versions
Configuration
Recuperation du code source:
Build:
Demarrage du serveur de developpement:
Apercu de l’architecture
Fess est compose des composants principaux suivants:
Structure des composants
| Composant | Description |
|---|---|
| Couche Web | Implementation MVC avec le framework LastaFlute |
| Couche Service | Logique metier |
| Couche d’acces aux donnees | Integration OpenSearch via DBFlute |
| Crawler | Collecte de contenu via la bibliotheque fess-crawler |
| Moteur de recherche | Recherche plein texte avec OpenSearch |
Frameworks principaux
LastaFlute: Framework web (actions, formulaires, validation)
DBFlute: Framework d’acces aux donnees (integration OpenSearch)
Lasta Di: Conteneur d’injection de dependances
Structure des repertoires
Points d’extension
Fess fournit les points d’extension suivants:
Plugins
Vous pouvez ajouter des fonctionnalites via des plugins.
Plugins DataStore: Crawl depuis de nouvelles sources de donnees
Plugins Script Engine: Support de nouveaux langages de script
Plugins WebApp: Extension de l’interface web
Plugins Ingest: Traitement des donnees lors de l’indexation
Details: Architecture des plugins
Themes
Vous pouvez personnaliser le design de l’ecran de recherche.
Details: Guide de developpement de themes
Configuration
De nombreux comportements peuvent etre personnalises via fess_config.properties.
Details: Introduction
Developpement de plugins
Pour plus de details sur le developpement de plugins, consultez:
Architecture des plugins - Architecture des plugins
Developpement de plugins DataStore - Developpement de plugins DataStore
Plugin Script Engine - Plugins Script Engine
Plugin WebApp - Plugins WebApp
Plugin Ingest - Plugins Ingest
Developpement de themes
Guide de developpement de themes - Personnalisation des themes
Bonnes pratiques
Conventions de codage
Suivre le style de code existant de Fess
Formater le code avec
mvn formatter:formatAjouter les en-tetes de licence avec
mvn license:format
Tests
Ecrire des tests unitaires (
*Test.java)Les tests d’integration sont
*Tests.java
Journalisation
Utiliser Log4j2
logger.debug()/logger.info()/logger.warn()/logger.error()Ne pas journaliser d’informations sensibles