2014-03-19 1 views
0

저는 아파치 카라프에게 매우 익숙합니다. Java 프로그램을 jar 파일 (예 : A-1.0.jar)에 패키지화했습니다. 또한 A.jardeploy 폴더 아래에 배포 한 Karaf 인스턴스가 있습니다. 지금은 사용이 jar를 실행하고 있습니다 : 그것은 화면에 몇 가지 숫자를 출력아파치 카라프 사용

java -jar A.jar 

. 이것이 실행되는 동안 나는 A-2.0.jar을 동일한 경로 (Karaf 가정의 deploy 폴더)에 배치했습니다. Karaf 로그에서 Karaf가 이미 두 번들을 설치했음을 알 수 있습니다.

내 질문에 A-1.0.jar을 실행하는 동안 Karaf가 A-2.0.jar (Karaf가이 새로운 버전을 설치 한 이후)을 실행하도록되어 있습니까? 또는, 나는 무엇인가 놓치고있다? Karaf의 핫 전개 전략을 테스트하려면 어떻게해야합니까? 사전에

감사합니다,

Abhishek

답변

0

는 지난 몇 가지 이해 ...

jar 실행 Karaf와 관계없는 모든 사용자 정의, 그것은 심지어 그들이 있기 때문에 (실행에 대해 모르고있어 두 개의 별도 JVM 인스턴스).

실제 코드를 호출하는 jar 내에 BundleActivator을 작성한 다음 Karaf에 배포하거나 deploy 폴더에 넣고 시작해야합니다. Karaf은 자동으로 BundleActivator을 호출하므로 사용자 정의 코드가 실행됩니다.

jar은 항상 Bundle-SymbolicName에 의해 MANIFEST 파일 (jar 파일 이름은 중요하지 않음)에서 고유하게 식별됩니다. 또한 Bundle-Version은 실제 버전을 나타냅니다. A-1.0.jarA-2.0.jar이 같은 이름 인 경우 Karaf는 나중에 실행중인 (A-1.0.jar) 동일한 jar의 최신 버전으로 간주합니다. 한번 발견되면 A-1.0.jar의 실행이 완료되면 자동으로 A-2.0.jar을 실행합니다.