2014-02-17 4 views
1

사소한 질문을하고 있습니다. Pax-Exam으로 OSGi를 배우기 시작했습니다.Pax-Exam 테스트 컨테이너를 시작하는 방법은 무엇입니까?

내가 한 것은 mvn archetype : Hello World를 생성하는 것입니다. 필자는 PaxExam 관련 가져 오기 및 다른 것들을 가져 와서 AppTest.java를 변경했습니다. 따라서 적절한 종속성을 포함하도록 pom.xml을 변경했습니다.

내가 MVN 의존성을

: 발견이라고 분석

[경고] 미사용 선언 종속 관계 : [경고] org.ops4j.pax.exam : 팍스 - 시험 컨테이너 네이티브 : 항아리 : 3.4. 0 : initializationError (com.test.maven.AppTest) : 없음 서비스 org.osgi.framework.launch 내가 MVN 테스트를 수행 할 때 테스트

, 나는 다음과 같은 오류를 오류

시험을 얻고있다. META-INF/classpath에있는 서비스에있는 FrameworkFactory

누구든지 해결 방법에 대한 도움을받을 수 있습니까? 나는 여기서 어떻게 나아갈 지 모른다.

아니면 애플을 오렌지처럼 보이게하려고합니까? Pax 시험은 src/test/resources/META-INF/services /에있는 jar 파일에서만 작동합니다. 아파치 펠릭스 또는 이와 유사한 설치.

답변

2

가장 먼저해야 할 일은 종종 itests라고하는 별도의 테스트 프로젝트를 만드는 것입니다. Pax 시험은 시험 할 출처가있는 프로젝트에 직접 통합 할 때 잘 작동하지 않습니다.

그래서 다음과 같은 구조를 만들 : /mymodule1 ... /mymodulen /itests 당신이 일반적으로 받는다는 번들 플러그인으로 bunddles을 작성 인 MyModule 프로젝트에서

. 이를 OSGi 프레임 워크에 설치할 수 있어야합니다.

그런 다음 itests 디렉토리에서 pax 시험 종속성을 pom 파일에 넣습니다. 또한 의존성을 여러분이 필요로하는 자신의 모듈과 의존성에 넣으십시오.

다음은 pax 시험 테스트에서 @Comnfiguration 주석이 달린 메소드에서 필요한 모듈을 정의합니다. 나는 created a pax exam example for the apache karaf container here입니다.

테스트에서 나는 karaf 컨테이너를 설정하고 테스트하려는 모듈 인 pax-exam-sample8-ds를 추가했습니다. 예제 프로젝트를 통해

getting started section in the user doc 안내합니다 :

불행하게도 나는 간단한 펠릭스와 춘분 컨테이너 아직 설정 같은 간단한 예제를하지 않았다. 따라서 평범한 컨테이너를 사용하려고해도 karaf 예제로 시작하는 것이 좋습니다. 빠른 컨테이너를 사용하면 더 빨리 시작할 수 있습니다.

자유 시간을 가지 자마자 일반 OSGi 컨테이너 테스트를위한 간단한 예제 테스트 프로젝트를 추가 할 계획입니다.

+0

프로젝트를 만들 때 다음 예외가 발생했습니다. 어떤 아이디어? BundleException : "org.apache.felix.gogo.commands_0.4.0 [332]"번들을 해석하지 못했습니다. 이유 : 누락 된 제약 : Import-Package : org.osgi.service.command; version = "0.4.0" Google 검색 결과에 따라 아래 내용도 추가했습니다. <수입 패키지> \t \t org.apache.felix.service.command, \t \t org.apache.felix.gogo.commands, \t \t org.apache.karaf.shell.console, \t \t * \t Chandru

+0

귀하의 gogo 버전이 너무 오래되었을 수도 있습니다. 0.10 버전으로 사용해 볼 수 있습니까? http://search.maven.org/#artifactdetails|org.apache.felix|org.apache.felix.gogo.runtime|0.10.0|bundle –

+0

Scheider 나는 그것을 시도했다. 이제 테스트가 성공적으로 실행됩니다. 그러나 나는 아래 예외를 얻고있다. 우리는 그것을 무시할 수 있습니까, 아니면 제가 빠진 것이 있습니까? 14 : 34 : 25.091 ERROR [[ACCESS_RUNTIME] NodeCleaupShutdownHook] [Logger.java:252] NodeCleaupShutdownHook을 실행 중입니다. thread "Thread-24"의 예외 java.lang.IllegalArgumentException \t at org.eclipse.osgi.framework.eventmgr.ListenerQueue. (ListenerQueue.java:62) – Chandru

관련 문제