참조: http://neilbartlett.name/blog/osgibook/

OSGi 스펙 4.0 구현체 중 하나로, 아파치 재단의 프로젝트입니다. Equinox가 OSGi 구현체로 많이 사용되고 있지만, Felix는 Equinox에 비해 상당히 Compact하게 구현한거라 jar 파일 용량이 반 밖에 안 되며, 스펙도 매우 철저하게 따르고 있기 때문에 Felix에서 구동한 번들이 Equinox나 Knopflepfish에서도 무난히 동작한다고 합니다.

1. 먼저 Felix를 다운로드 받습니다.

http://felix.apache.org/site/downloads.cgi

2. 다음 압축을 풀고 원하는 위치로 이동시킵니다.

저는 C:\java\felix-1.0.4 로 이동시켰습니다.

3. 이클립스에 라이브러리를 등록합니다.

사용자 삽입 이미지위의 화면을 보시면 아시겠죠? Preferences에 Java -> Build Path -> User Libraries에 New를 클릭한 뒤 Felix라고 입력합니다.

사용자 삽입 이미지다음은 실제 라이브러리를 추가하는 과정으로 Add Jar 버튼을 누른다음 2번 과정에서 옮겨둔 폴더로 이동한 다음 bin/felix.jar 파일을 선택해줍니다. 그럼 위의 화면과 같이 jar 파일이 추가된 걸 확인할 수 있습니다.

4. Felix 프로젝트 만들기

일반 Java 프로젝트 하나를 생성합니다.
사용자 삽입 이미지이름에는 전 OSGi Felix라고 줬습니다. 다음 Next를 클릭합니다. 라이브러리를 추가하기 위해섭니다.

사용자 삽입 이미지Add Library를 클릭하고 User Library를 클릭하면 3번에서 추가한 Felix 라이브러리를 선택할 수 있습니다.

5. 프로젝트 세팅하기

Felix를 구동하는데 필요한 번들과 설정파일을 복사해서 위에서 만든 프로젝트로 붙여넣어 줍니다. 해당 번들과 설정파일은 2번에서 작업한 폴더에 보시면 bundle과 conf라는 폴더 안에 들어있고 그 두 개의 폴더를 복사해서 붙여주면 됩니다.

사용자 삽입 이미지
사용자 삽입 이미지
다음은 설정파일을 변경해서 로그 메시지를 좀 더 많이 뿌리도록 설정합니다. 위에 보이는 config.properties파일을 열고 felix.log.level=4 를 felix.log.level=1로 변경해줍니다.

이제 프로젝트 세팅은 끝났습니다. 실행해 봐야겠죠.

6. 실행 환경 설정하기

사용자 삽입 이미지Run Dialog로 들어가서 Java Application에 하나의 인스턴스를 만들고 Name에는 Felix를 주고, Project에는 위에서 세팅을 마친 프로젝트 OSGi Felix를 선택해줍니다. 다음 Main은 Search 버튼을 눌러보면 두 개의 클래스가 찾아지는데 그 중에서 아래에 있는 Main을 선택합니다.

사용자 삽입 이미지자 그럼 이 상태가 되었고 이제 실행할 준비도 끝났습니다.

7. 실행하기

Run을 클릭합니다.

사용자 삽입 이미지
프로파일 이름을 달라고 하네요. 아무 이름이나 줍니다. 전 tutorial이라고 줬습니다.

사용자 삽입 이미지그럼 뭔가가 설치되는게 보입니다. 뭔 뜻인지는 모르겠습니다. 패스.

현재 설치된 번들들의 상태를 참조하려면 ps를 입력합니다.
사용자 삽입 이미지음.. 총 네개의 번들이 동작중이군요.

사용할 수 있는 명령어를 참조하려면 help를 입력합니다.

사용자 삽입 이미지
끝~