Vision General
Esta seccion explica el desarrollo de extensiones de Fess. Proporciona informacion para extender Fess, incluyendo desarrollo de plugins, creacion de conectores personalizados y personalizacion de temas.
Audiencia Objetivo
Desarrolladores que desean crear funciones personalizadas para Fess
Desarrolladores que desean crear plugins
Desarrolladores que desean entender el codigo fuente de Fess
Conocimientos Previos
Conocimientos basicos de Java 21
Conceptos basicos de Maven (sistema de construccion)
Experiencia en desarrollo de aplicaciones web
Entorno de Desarrollo
Entorno Recomendado
JDK: OpenJDK 21 o superior
IDE: IntelliJ IDEA / Eclipse / VS Code
Herramienta de construccion: Maven 3.9 o superior
Git: Control de versiones
Configuracion
Obtener el codigo fuente:
Construir:
Iniciar el servidor de desarrollo:
Vision General de la Arquitectura
Fess esta compuesto por los siguientes componentes principales:
Estructura de Componentes
| Componente | Descripcion |
|---|---|
| Capa Web | Implementacion MVC con el framework LastaFlute |
| Capa de Servicios | Logica de negocio |
| Capa de Acceso a Datos | Integracion con OpenSearch mediante DBFlute |
| Rastreador | Recoleccion de contenido con la biblioteca fess-crawler |
| Motor de Busqueda | Busqueda de texto completo con OpenSearch |
Frameworks Principales
LastaFlute: Framework web (Acciones, Formularios, Validacion)
DBFlute: Framework de acceso a datos (integracion con OpenSearch)
Lasta Di: Contenedor de inyeccion de dependencias
Estructura de Directorios
Puntos de Extension
Fess proporciona los siguientes puntos de extension:
Plugins
Puede agregar funcionalidad utilizando plugins.
Plugin de almacen de datos: Rastreo desde nuevas fuentes de datos
Plugin de motor de scripts: Soporte para nuevos lenguajes de script
Plugin de aplicacion web: Extension de la interfaz web
Plugin Ingest: Procesamiento de datos durante la indexacion
Detalles: Arquitectura de Plugins
Temas
Puede personalizar el diseno de la pantalla de busqueda.
Detalles: Guia de Desarrollo de Temas
Configuracion
Puede personalizar muchos comportamientos en fess_config.properties.
Detalles: Introducción
Desarrollo de Plugins
Para detalles sobre el desarrollo de plugins, consulte lo siguiente:
Arquitectura de Plugins - Arquitectura de plugins
Desarrollo de Plugins de Almacen de Datos - Desarrollo de plugins de almacen de datos
Plugin de Motor de Scripts - Plugins de motor de scripts
Plugin de Aplicacion Web - Plugins de aplicacion web
Plugin Ingest - Plugins Ingest
Desarrollo de Temas
Guia de Desarrollo de Temas - Personalizacion de temas
Mejores Practicas
Convenciones de Codificacion
Seguir el estilo de codigo existente de Fess
Formatear codigo con
mvn formatter:formatAgregar encabezados de licencia con
mvn license:format
Pruebas
Escribir pruebas unitarias (
*Test.java)Las pruebas de integracion son
*Tests.java
Registro
Usar Log4j2
logger.debug()/logger.info()/logger.warn()/logger.error()No registrar informacion sensible