2012-05-30 2 views
0

Apache ACE를 사용하여 2 개의 번들 A 및 B가 있습니다.이 번들을 다음 단계에서 대상에 제공했습니다.ACE에서 타겟에 대해 프로비저닝 된 소프트웨어/번들을 구별하는 방법

  1. 프로비저닝 상기 타겟
  2. 프로비저닝 B 타겟 (버전 2.0.0을 갖는) (업그레이드하는 타겟
  3. 프로비저닝 B (갖는 버전 1.0.0) 내지 (버전 1.0.0을 갖는) // 로컬 호스트 : 이전 버전의 2 단계)

내가 액세스 (HTTP의 8080/배포/gatewayid/버전)

나는 결과를

에 따라 취득 16,1.0.0
2.0.0
3.0.0

어떻게 관리 에이전트는 소프트웨어에 속해있는 버전을 알아낼 것인가?

답변

1

대상의 구성된 아티팩트 집합이 변경 될 때마다 ACE는 대상에 대해 새 버전을 만듭니다. 실제로 버전에있는 내용을 보려면 대상의 관리 에이전트가 버전을 가져와야합니다. 그러면 배포 패키지에는 필요한 모든 메타 데이터 (예 : 이슈 목록 및 해당 버전)가 포함됩니다.

0

대상 번들과 동일한 OSGi 프레임 워크에서 실행중인 경우 BundleContext을 사용하여 번들로 이동하여 설치된 버전을 확인하십시오. 뭔가 같은, 당신은 또한이 번들이 배포 패키지에서 설치되었는지 여부를 알 필요가있는 경우

for (Bundle b : bundleContext) { 
    System.out.println("Found bundle " + b.getSymbolicName() + " in version " + b.getVersion()); 
} 

, 당신은 그것의 getLocation()을 위해 그것을 요청할 수 있습니다; Deployment Admin 사양에 따라 osgi-dp:으로 시작됩니다.

+0

답변 해 주셔서 감사합니다. 사용자 지정 관리 에이전트를 개발할 때 관리 에이전트 관점에서이 정보가 필요했습니다. – Vinod

+0

아, 맞아, 나는 그것을 잡지 않았다. (당신이 그 질문을 명확히하기 위해 업데이트 할 수 있겠는가?). 정확하게 알고 싶은 것은, 현재 설치된 배포 버전 또는 번들의 버전입니까? –

+0

질문이 업데이트되었습니다. 특정 대상에 사용할 수있는 번들 이름과 해당 버전을 알고 싶습니다. – Vinod

관련 문제