2014-12-11 3 views
0

Equinox 환경에서 자동 업데이트 메커니즘을 찾고 있습니다. 원격 서비스를 사용하는 번들을 개발 중입니다. 그래서 나는 서로 통신하는 여러 클라이언트를 가지고있다.
이제는 Eclipse에 배포 할 때 번들의 새 버전을 자동으로 설치하는 방법을 찾고 있습니다. 내 모든 클라이언트 각 클라이언트에 OSGi 번들용 자동 업데이트

  • 에 번들을 동기화하는 스크립트를 시작 일식
    • 증가
    • 배포의 versionNumber : 순간
      나는 그것을 다음과 같은 방법을하고있어 제거를 이전 버전, 새 버전을 설치하십시오.

    그러나 나는 나에게 작업을 많이 절약 할 수있는이처럼하고 싶은 : 스크립트를

  • 각 클라이언트를 시작
  • 일식
    • 증가
    • 배포의 versionNumber를 자동으로 이전 버전을 제거하고 새 버전을 설치하고 시작합니다.

    이미 부분적으로 작동 한 Felix Fileinstaller를 사용해 보았습니다. 문제는 Fileinstaller가 이전 버전을 제거하지 않았으며 번들의 자동 시작이 없다는 것입니다. 나는 잠시 후에로드 디렉토리에 많은 Bundleversions이 있었고 환경을 다시 시작할 때 거기에있는 각 번들이 설치되어있는 문제점이있었습니다.

    답변

    1

    주야 평분시를 사용하는 경우 p2를 살펴 봐야합니다. Eclipse 업데이트 및 새로운 Eclipse 번들 설치를 위해 Eclipse 내부에서 사용되는 프로비저닝 메커니즘입니다. 또한 헤드리스 서버 환경에서도 작동합니다.

    Eclipse Gyrex 프로젝트에서 p2를 사용하여 자동 설치를 수행합니다. 이 과정은 다음과 같다 :

    • 이클립스 (증가 버전 번호)
    • 수출이 (중 티코/메이븐 이클립스 또는 사용) P2 저장소에 번들 웹 서버
    • -
    • 배포 P2 저장소에 수동 버전 적용
    • 클라이언트 업데이트가 자동으로

    각 클라이언트는 주기적으로 업데이트를위한 P2 저장소를 확인하고 사용 가능한 업데이트를 설치합니다 설치합니다. p2 저장소는 내부 웹 서버에서 사용할 수 있습니다.

    OSGi에서 사용할 수있는 대체 옵션이 있습니다. 예를 들어, OBR은 OSGi 동맹이 권장하는 접근 방식입니다. 불행히도 p2는 아직 OBR을 지원하지 않습니다. 그러나 Apache Felix를 사용하는 경우 OBR을 사용할 수 있어야합니다.