번들 시작 하기
우선 지난 시간에 번들을 만들었다.
자동으로 생성이 다 됐다..
콘솔을 통해서 helloworld 출력도 확인했다.
콘솔창에 ss를 쳐보자.
osgi> ss
"Framework is launched."
id State Bundle
0 ACTIVE org.eclipse.osgi_3.13.0.qualifier
Fragments=177
1 ACTIVE org.eclipse.equinox.simpleconfigurator_1.3.0.v20171007-0939
2 ACTIVE com.ibm.icu_58.2.0.v20170418-1837
3 ACTIVE com.jcraft.jsch_0.1.54.v20170116-1932
4 ACTIVE com.sun.el_2.2.0.v201303151357
5 ACTIVE javax.annotation_1.2.0.v201602091430
6 ACTIVE javax.el_2.2.0.v201303151357
7 ACTIVE javax.inject_1.0.0.v20091030
8 ACTIVE javax.servlet_3.1.0.v201410161800
9 ACTIVE javax.servlet.jsp_2.2.0.v201112011158
10 ACTIVE org.apache.ant_1.10.1.v20170504-0840
11 ACTIVE org.apache.batik.css_1.9.0.v20170908-1305
12 ACTIVE org.apache.batik.i18n_1.9.0.v20170906-1841
13 ACTIVE org.apache.batik.util_1.9.0.v20170906-1841
14 ACTIVE org.apache.commons.codec_1.9.0.v20170208-1614
15 ACTIVE org.apache.commons.jxpath_1.3.0.v200911051830
16 ACTIVE org.apache.commons.logging_1.1.1.v201101211721
.
.
.
259 ACTIVE org.w3c.dom.smil_1.0.1.v200903091627
260 ACTIVE org.w3c.dom.svg_1.1.0.v201011041433
261 RESOLVED test_1.0.0.qualifier
위와 같이.. 번들이 261개나 올라와 있다.
마지막은 내가 만든 test 번들이다.
내가 참고로한 자료는 ( Part 1 : 당신의 첫번째 번들 EclipseZone – Getting Started with OSGi ) ss 치면
Framework is launched.
id State Bundle
0 ACTIVE system.bundle_3.2.1.R32x_v20060919
이렇게 번들 하나만 올라와 있는데...
이건 무슨 260개나 올라와 있다.. 저게 다 뭐하는 건지 모르겠지만.. 우선 무시하고 다음으로 넘어 갔다.
우선 내가 만든 번들은 test인데 뒤에 꼬리가 _1.0.0.qualifier라고 붙는다.. 이게 어떻게 붙나 봤더니..
MANIFEST.MF 파일에 그렇게 써있다.
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Test
Bundle-SymbolicName: test
Bundle-Version: 1.0.0.qualifier
Bundle-Activator: test.Activator
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Import-Package: org.osgi.framework;version="1.3.0"
즉 Bundle-SymbolicName: + Bundle-Version로 표시 된다..
참고로 Import-Package에 내가 import하고 싶은 클래스를 써넣어야만.. 소스에서 import가 가능하다..
그리고 번들에서 실행을 하는 클래스를 지정하는 문장은 Bundle-Activator: test.Activator 이다.
내가 만든 프로그램은 ID가 261이다.
stop 261이라고 쳐보면.
Goodbye World!!라고 출력 된다.
그리고 ss라고 다시 쳐보면
261 RESOLVED test_1.0.0.qualifier 라고
ACTIVE -> RESOLVED로 변한걸 확인 할 수 있다.
이게 라이프 사이클을 나타내는 거라고 한다.
다시 start 261라고 쳐보자
그럼 hello world를 다시 출력한다.
그리고 다시 ss를 치면 ACTIVE로 변한 것을 확인 할 수 있다.
참고로 이미 만들어진 번들을 그냥 install하려면
“install file:HelloWorld.jar ”와 같은 명령어를 입력 하면 된다.
이클립스를 사용하면 실행 때 선택하면 다 install 해준다.
참고 자료:
'개발 > OSGI' 카테고리의 다른 글
4. 의존관계있는 번들 생성하기 (0) | 2020.02.07 |
---|---|
3. 번들로 번들을 찾아서 제거하기 (0) | 2020.02.07 |
0. OSGi 환경구축 (단독 실행 방법) (0) | 2020.02.07 |
0-1. 이클립스를 이용해 최대한 간단하게(최소한의 번들만 실행해서) OSGI 환경 구축하기 (0) | 2020.02.07 |