1

spock pax 試験拡張機能を作成しようとしていますが、サーバー モードを使用したバンドルのインストールに問題があることがわかりました。

これが私のコードです

void visitSpecAnnotation(RunPax annotation, SpecInfo sp) {
    sp.addListener(new AbstractRunListener() {
        private TestContainer container

        @Override
        void beforeSpec(SpecInfo spec) {
            ExamSystem system = PaxExamRuntime.createServerSystem(
                    CoreOptions.options(
                            karafDistributionConfiguration("mvn:org.apache.servicemix/apache-servicemix/4.4.1-fuse-03-06/tar.gz", // artifact to unpack and use
                                    "servicemix", // name; display only
                                    "2.2.4")
                                    .unpackDirectory(new File("target/paxexam/unpack/"))
                                    .useDeployFolder(false),
                            //debugConfiguration("5005", true),
                            keepRuntimeFolder(),
                            configureConsole().ignoreLocalConsole(),
                            when(isEquinox()).useOptions(
                                    editConfigurationFilePut(
                                            KARAF_FRAMEWORK, "equinox"),
                                    systemProperty("pax.exam.framework").value(
                                            System.getProperty("pax.exam.framework")),
                                    //systemProperty("osgi.console").value("6666"),
                                    //systemProperty("osgi.console.enable.builtin").value("true")
                            ),
                            logLevel(WARN),
                            mavenBundle("org.sdo.coding", "words", "1.0")

                    ))
            container = PaxExamRuntime.createContainer(system)
            container.start()

            Thread.sleep(100000)

            def ant = new AntBuilder()
            ant.sshexec(host: "localhost",
                    port: '8101',
                    username: "smx",
                    password: 'smx',
                    trust: "yes",
                    command: "list",
                    outputproperty: 'result',
                    knownhosts: '/dev/null')

            def result = ant.project.properties.'result'
            println "result is $result"
            def installed = result =~ /(?m)^(.*Installed.*)$/
            println "installed ${installed[0]}"

        }

遅延を増やしても、インストールされているバンドルが見つかりません。オプション mavenBundle が karaf の開始に影響しないことがわかります。間違ったバージョンまたは artifactId を配置すると、pax はそれについて通知しないためです。

誰でもこの問題について手がかりを持っていますか?

4

0 に答える 0