Whiteship's Note

4.3. Bundle Lifecycle

Spring DM/Chapter 4 : 2008.04.11 21:20


OSGi는 다이내믹 플랫폼으로, 프레임워크가 동작하고 있는 도중에 번들을 설치, 시작, 업데이트, 멈춤, 제거 할 수 있다.

번들이 멈추면be stopped
- 번들이 등록한 서비스들은 모두 등록이 해지되고unregistered 번들은 RESOLVED 상태가 된다.
- 번들이 가지고 있던 자원을 반납하고 쓰레드도 종료한다.
- 번들이 노출 시켰던 패키지들은 번들이 멈추더라도 계속해서 다른 번들들에 의해 사용될 수 있다.

번들은 RESOLVED 상태에서 업데이트 할 수 있다.
- 업데이트하는 과정은 같은 번들을 특정 버전에서 다른 버전으로 이관migrate하는 것이다.

번들은 RESOLVED 상태에서 시작be started 될 수 있다.
- 시작되면 번들은 ACTIVE 상태가 된다.

OSGi의 PackageAdmin refreshPackages 명령어
- 전체 OSGi 프레임워크 또는 설치되어 있는 번들들의 모든 패키지를 리프래시한다.
- 리프래시하는 동안에 그 대상이 되는 번들의 Application Context는 멈췄다가 재시작한다.
- refreshPackages 명령 처리 후, 수정된 번들의 이전 버전 패키지 또는 제거된 번들의 패키지는 더이상 사용할 수 없다. 자세한 사항은 OSGi 스펙 참조.

(다시) 번들이 멈추면..
- application context는 자동으로 제거된다.
- 서비스들도 OSGi 서비스 레지스트리에서 제거된다.
- application context의 종료 라이프사이클(DisposableBean, destroy-method, @Post머시기..)이 진행된다.
- 멈춘담에 바로 다시 시작시키면, 새로운 application context를 만든다.

'Spring DM > Chapter 4' 카테고리의 다른 글

4.7. Stopping the extender bundle  (0) 2008.04.13
4.6. Application Context Destruction  (0) 2008.04.13
4.4. The Resource abstraction  (0) 2008.04.12
4.5. Accessing the BundleContext  (0) 2008.04.12
4.3. Bundle Lifecycle  (2) 2008.04.11
4.2. Application Context Creation  (0) 2008.04.11
4.1. The Spring Dynamic Modules Extender bundle  (0) 2008.04.10
Bundles and Application Contexts  (0) 2008.04.09
top




: 1 : 2 : 3 : 4 : 5 : 6 : 7 : 8 :