개요
Fess 의 플러그인 시스템을 통해 코어 기능을 확장할 수 있습니다. 플러그인은 JAR 파일로 배포되며 동적으로 로드됩니다.
플러그인 종류
Fess 는 다음 종류의 플러그인을 지원합니다:
| 종류 | 설명 |
|---|---|
| 데이터스토어 | 새로운 데이터 소스에서 콘텐츠 취득 (Box, Slack 등) |
| 스크립트 엔진 | 새로운 스크립트 언어 지원 |
| 웹앱 | 웹 인터페이스 확장 |
| Ingest | 인덱싱 시 데이터 가공 |
플러그인 구조
기본 구조
pom.xml 예시
플러그인 등록
DI 컨테이너에 등록
플러그인은 fess_ds.xml 등의 설정 파일로 등록됩니다:
자동 등록
대부분의 플러그인은 @PostConstruct 어노테이션으로 자동 등록합니다:
플러그인 라이프사이클
초기화
JAR 파일이 로드됨
DI 컨테이너가 컴포넌트를 초기화
@PostConstruct메서드가 호출됨플러그인이 매니저에 등록됨
종료
@PreDestroy메서드가 호출됨 (정의된 경우)리소스 클린업
의존 관계
Fess 본체와의 의존
외부 라이브러리
플러그인은 독자적인 의존 라이브러리를 포함할 수 있습니다:
의존 라이브러리는 플러그인 JAR와 함께 배포하거나 Maven Shade Plugin으로 fat JAR를 작성합니다.
설정 취득
FessConfig에서 취득
빌드와 설치
빌드
설치
관리 화면에서:
“시스템” → “플러그인” → “설치”
플러그인 이름을 입력하여 설치
명령줄:
수동:
JAR 파일을
plugins/디렉토리에 복사Fess 를 재시작
디버그
로그 출력
개발 모드
개발 시 Fess 를 IDE에서 시작하여 디버그할 수 있습니다:
FessBoot클래스를 디버그 실행플러그인 소스를 프로젝트에 포함
브레이크포인트 설정
공개 플러그인 목록
Fess 프로젝트에서 공개하고 있는 주요 플러그인:
| 플러그인 | 설명 |
|---|---|
| fess-ds-box | Box.com 커넥터 |
| fess-ds-dropbox | Dropbox 커넥터 |
| fess-ds-slack | Slack 커넥터 |
| fess-ds-atlassian | Confluence/Jira 커넥터 |
| fess-ds-git | Git 리포지토리 커넥터 |
| fess-theme-* | 커스텀 테마 |
이러한 플러그인은 개발 참고로 GitHub 에서 공개되어 있습니다.
참고 정보
데이터스토어 플러그인 개발 - 데이터스토어 플러그인 개발
스크립트 엔진 플러그인 - 스크립트 엔진 플러그인
웹앱 플러그인 - 웹앱 플러그인
Ingest 플러그인 - Ingest 플러그인