2014-11-20 5 views
0

배포하기 전에 OSGI 번들 jar 파일 버전을 Java로 읽는 방법에 관심이 있으십니까? 데이터를 배포하기 전에이 데이터를 추출 할 수있는 방법이 있습니까?OSGI 번들 버전 읽어보기

답변

5

당신은 표준 자바와 함께 할 수 있습니다

JarFile jarFile = new JarFile("myjar.jar"); 
Manifest manifest = jarFile.getManifest(); 
Attributes mainAttributes = manifest.getMainAttributes(); 
String bundleVersion = (String) mainAttributes.get(Constants.BUNDLE_VERSION); 

상수 클래스는 org.osgi.framework 자 패키지에서 제공됩니다.

+0

다른 방법이 있습니까? –

+1

다른 방법은 무엇입니까? JAR 파일을 분석하는 표준 라이브러리는 없습니다. Felix 또는 Equinox의 기능을 직접 호출 할 수는 있지만 내부 패키지에 있다고 생각하여 동일한 기능이 새 버전에 존재하는지 확신 할 수 없습니다. 또한 임베디드 OSGi 컨테이너를 시작하고 거기에 jar 파일을 배포하고 컨테이너를 사용하여 JAR을 분석 할 수 있지만 미친 짓이라고 생각합니다. :) org.apache.felix.utils라는 라이브러리는 절 [] 표현식 (Import-Package 또는 Bundle-SymbolicName 헤더의 값과 같은)을 구문 분석합니다. –

0

버전을 얻으려면 완전히 과용 될 수 있지만 일반적으로 모든 종류의 번들 데이터를 읽는 좋은 방법은 bnd을 사용하는 것입니다. 많은 도구가 bnd 위에 구축되지만 라이브러리로도 쉽게 사용할 수 있습니다.