Visión General
El sistema de plugins de Fess permite extender la funcionalidad principal. Los plugins se distribuyen como archivos JAR y se cargan dinámicamente.
Tipos de Plugins
Fess soporta los siguientes tipos de plugins:
| Tipo | Descripción |
|---|---|
| Almacén de datos | Obtención de contenido desde nuevas fuentes de datos (Box, Slack, etc.) |
| Motor de scripts | Soporte para nuevos lenguajes de script |
| Aplicación web | Extensión de la interfaz web |
| Ingest | Procesamiento de datos durante la indexación |
Estructura de un Plugin
Estructura Básica
Ejemplo de pom.xml
Registro de Plugins
Registro en el Contenedor DI
Los plugins se registran en archivos de configuración como fess_ds.xml:
Registro Automático
Muchos plugins se registran automáticamente con la anotación @PostConstruct:
Ciclo de Vida del Plugin
Inicialización
Se carga el archivo JAR
El contenedor DI inicializa los componentes
Se llama al método
@PostConstructEl plugin se registra en el gestor
Finalización
Se llama al método
@PreDestroy(si está definido)Limpieza de recursos
Dependencias
Dependencia con Fess Principal
Bibliotecas Externas
Los plugins pueden incluir sus propias bibliotecas de dependencia:
Las bibliotecas de dependencia se distribuyen junto con el JAR del plugin o se crea un fat JAR usando Maven Shade Plugin.
Obtención de Configuración
Obtener desde FessConfig
Construcción e Instalación
Construcción
Instalación
Desde la pantalla de administración:
«Sistema» -> «Plugins» -> «Instalar»
Ingrese el nombre del plugin e instale
Línea de comandos:
Manual:
Copie el archivo JAR al directorio
plugins/Reinicie Fess
Depuración
Salida de Registros
Modo de Desarrollo
Durante el desarrollo, puede depurar iniciando Fess desde el IDE:
Ejecute la clase
FessBooten modo de depuraciónIncluya el código fuente del plugin en el proyecto
Establezca puntos de interrupción
Lista de Plugins Públicos
Principales plugins publicados por el proyecto Fess:
| Plugin | Descripción |
|---|---|
| fess-ds-box | Conector de Box.com |
| fess-ds-dropbox | Conector de Dropbox |
| fess-ds-slack | Conector de Slack |
| fess-ds-atlassian | Conector de Confluence/Jira |
| fess-ds-git | Conector de repositorio Git |
| fess-theme-* | Temas personalizados |
Estos plugins están disponibles como referencia de desarrollo en GitHub.
Información de Referencia
Desarrollo de Plugins de Almacén de Datos - Desarrollo de plugins de almacén de datos
Plugin de Motor de Scripts - Plugins de motor de scripts
Plugin de Aplicación Web - Plugins de aplicación web
Plugin Ingest - Plugins Ingest