2015-02-04 5 views
0

나는이 대답을 알고있다 : Pax Exam: provisioning bundle with all dependencies 그러나 내 외부에있는 번들의 일부인 번들을 포함해야 할 때 뭔가 잘못하고있는 것처럼 느껴진다. 계획. 그래서 내 질문은Pax 시험 : 번들 및 포장 된 번들로 프로젝트 종속성 해결

@Configuration 
public Option[] config() { 
    MavenArtifactUrlReference karafUrl = maven() 
     .groupId("org.apache.karaf") 
     .artifactId("apache-karaf") 
     .version(karafVersion()) 
     .type("tar.gz"); 
    MavenUrlReference karafStandardRepo = maven() 
     .groupId("org.apache.karaf.features") 
     .artifactId("standard") 
     .classifier("features") 
     .version(karafVersion()) 
     .type("xml"); 
    return new Option[] { 
     // KarafDistributionOption.debugConfiguration("5005", true), 
     karafDistributionConfiguration() 
      .frameworkUrl(karafUrl) 
      .unpackDirectory(new File("target/exam")) 
      .useDeployFolder(false), 
     keepRuntimeFolder(), 
     KarafDistributionOption.features(karafStandardRepo , "scr"), 

     //**Do I seriously need to do this?** 
     wrappedBundle(mavenBundle("org.codehaus.woodstox", "wstx-lgpl")).noStart(), 
     //**Why am I doing this?** 
     wrappedBundle(mavenBundle("org.apache.cxf", "cxf-bundle-jaxrs").version("2.7.14")).noStart(), 
     //**Some of my bundles use this so I guess this makes sense** 
     wrappedBundle(mavenBundle("org.apache.commons", "commons-lang3")), 
     mavenBundle("com.company.project", "common-core").versionAsInProject().start(), 
     mavenBundle("com.company.project", "common-properties", "1.3.1").start(), 
     mavenBundle("com.company.project", "rev-common-core", "1.3.1").start(), 
     mavenBundle("com.company.project", "rev-common-properties", "1.3.1").start(), 
     mavenBundle("com.company.project", "maintenance-core", "1.3.1").start(), 
    }; 
} 

: 내가 왜 오류에 대한 무엇입니까 여기

java.lang.Exception: Could not start bundle wrap:mvn:org.apache.cxf/cxf-bundle-jaxrs/2.7.14 in feature(s) test-dependencies-0.0.0: Unresolved constraint in bundle org.apache.cxf.bundle-jaxrs [80]: Unable to resolve 80.0: missing requirement [80.0] osgi.wiring.package; (&(osgi.wiring.package=com.ctc.wstx.stax)(version>=4.4.0)(!(version>=5.0.0))) 

내 인원 시험 테스트 내 구성 코드입니다 : 여기

내가지고있어 오류입니다 해결되지 않은 제약 조건, 심지어 외부 번들을 포함해야합니까? 테스트를 실행하려면 어떻게해야합니까?

답변

1

예, 필요한 모든 번들을 포함하고, Karaf 컨테이너가 비어 있으면 테스트에 필요한 모든 번들을 제공해야합니다.

모든 필수 번들을 제공하는 방법으로 테스트하려는 모듈의 기능을 만들 수 있습니다. 그런 다음 테스트에 사용할 수 있습니다 (예 :

).
KarafDistributionOption.features("mvn:group/artifact-id/version/xml", "feature-name") 
+0

로컬 기능 프로젝트를 가져 오려면/xml 뒤에/features를 추가해야했습니다. 또한 각 프로젝트에는 여러 하위 프로젝트가 있으므로 여러 "기능 이름"문자열을 포함해야했습니다. – Hardy