이번 프로젝트에 처음으로 jackrabbit을 사용했다.
사용한지 얼마 안되고 검색쪽을 개발해서 심도깊게 정리가 힘들듯 하다;;
Jackrabbit 시작하기
아파치 Jackrabbit은 JSR-170(JCR)을 완벽히 지원하는 컨텐츠 저장기능을 구현한 것임.
http://jackrabbit.apache.org 참조
다운로드.
http://jackrabbit.apache.org/downloads.html
Jackrabbit Web Application |
설치
간편하게 하기 위해서 CLASSPATH는 WEB-INF/lib에 있는 jar들을 모두 포함하면 된다.
최근부터 Jcr-api.jar 파일은 포함되어 있지 않으므로 별도로 받아서 저장해야 한다.
Jcr-api.jar 왜 파일을 별도로 받게 하는지 질문/답변 글
http://www.nabble.com/Why-there's-no-jcr-1.0.jar-in-1.4-war-dist--td15216240.html
Ø Webapp가 아니라 각각 받아서 설치하고자 할 때 주의할 점은
Lucene-core 와 text-extractor에서 사용하는 poi, pdfbox, nekohtml, xml-apis, xcercesImpl 을 별도로 받아서 포함 시켜야 한다.
Jackrabbit을 이용하여 데이터 저장하기.
데이터를 저장하기 위해서는 다음과 같은 설정을 해주어야 한다.
site에서 제공하는 sample 설정 파일 다운
기본적으로 알아야 할 사항.
설정파일에서 사용되는 변수들
${rep.home} : Repository 홈 디렉토리
${wsp.name}: workspace이름.
${wsp.home}: workspace홈 디렉토리
Repository 안에 여러 workspace를 생성할 수 있는 형태이다.
샘플
http://jackrabbit.apache.org/first-hops.html
구현 기본 플로우
1) Repository 생성
Repository repository = new TransientRepository();
2) Login
// Session 객체를 얻어 온다.
Session session = repository.login();
3) 노드 조작
// Node와 Property로 이루어져 있다. (DOM에서 Node와 Attribute 개념과 같음)
Node root = session.getRootNode();
Node hello = root.addNode("hello");
Node world = hello.addNode("world");
world.setProperty("message", "Hello, World!");
4) Save
// 현재 세션에서 작업한 것을 반영한다
session.save();
설정 파일은 어디에 두어야 하는가?
new TransientRepository() 하면 현재 폴더의 repository.xml 파일을 읽는다.
샘플 중에 SecondHop을 실행하면 현재 폴더에 repository 폴더가 생성된다.
여기까지 됐다면 기본 환경 설정은 OK