Virgo v3.5.0 RELEASE 버전의 springframework는 3.0.x 버전 번들이 패키징 되어있다. 3.1.x 버전으로 재패키징을 할 경우 대비하여 Springsource에서 번들링 해놓은 파일을 받아서 virgo_home/repositories/ext/ 밑으로 넣으면 될듯! 아직 미 테스트함
- 번들의 개념에 대해서 알자 (하단 요약 참조 사이트)
- SpringSource에서 운영하는 Bundle Repository
- Spring 방식으로 Bundle을 만들 수 있는 Spring Dynamic Modules
- OSGi Bundle은 모듈화 단위이다. (unit of moduelarization)
- Bundle 구성 = resources + mainfest file(META-INF/MANIFEST.MF파일에 의존성 jar, 번들 정보) + OSGI-OPT 디렉토리(부가적인 정보)
- manifest.mf : 20 가지 헤더 정보를 가짐
+ Export-Package : package + name, 외부노출됨
+ Import-Package : package + name, 사용할 것들
+ Bundle-SymbolicName : unique name
+ Bundle-Name : human-readable name
+ Bundle-Activator : BundleActivator를 상속받아 구현한 것으로 start/stop 관련
+ Bundle-Classpath : embeddied libraries 의 여러 폴더나 파일 classpath 지정
+ Bundle-ManifestVersion : 1 = OSGi release 3, 2 = OSGi release 4
Bundle-Name: spring-core |
Bundle-SymbolicName: org.springframework.bundle.spring.core |
Bundle-ManifestVersion: 2 |
Export-Package:org.springframework.core.task;uses:="org.springframework.core,org.springframework.util";version=2.5.1 org.springframework.core.type;uses:=org.springframework.core.annotation;version=2.5.1[...] |
Import-Package:org.apache.commons.logging,edu.emory.mathcs.backport.java.util.concurrent;resolution:=optional[...] |
▶ bnd 툴 사용하기
- http://www.aqute.biz/Bnd/Bnd 사이트에서 다운로드
- 하기와 같이 수행하면 manifest 정보가 출력됨
[MANIFEST c3p0-0.9.1.2.jar] |
Ant-Version Apache Ant 1.7.0 |
Created-By 1.5.0_07-87 ("Apple Computer, Inc.") |
Extension-Name com.mchange.v2.c3p0 |
Implementation-Vendor Machinery For Change, Inc. |
Implementation-Vendor-Id com.mchange |
Implementation-Version 0.9.1.2 |
Manifest-Version 1.0 |
Specification-Vendor Machinery For Change, Inc. |
Specification-Version 1.0 |
- 또는 OSGify 로 manifest를 수정하여 준다 (detail)
java -jar bnd.jar wrap c3p0-0.9.1.2.jar
번들 툴을 사용해 보자
'Middleware, Cloud > OSGi' 카테고리의 다른 글
[OSGi] 사용 개념 정리해 보기 (0) | 2012.11.15 |
---|---|
[SpringDM] Dynamic Module 만들기 (0) | 2012.11.10 |
[Eclipse Virgo] 사용하기 (0) | 2012.11.03 |
[OSGi] 서비스 Layer 만들기 (0) | 2012.10.30 |
[OSGi] BundleContext에 의한 LifeCycle 관리 (0) | 2012.10.30 |