After confirming pax exam 3.0.x changes many times according to [1], the
following error does not happen, and
org.apache.cxf.dosgi.systests2.single.TestDiscoveryRountrip has passed
BTW: the attachment is my modified pom file and TestDiscoveryRountrip
source file.
[1]: http://team.ops4j.org/wiki/display/PAXEXAM3/Maven+Dependencies

However, org.apache.cxf.dosgi.systests2.single.TestExportService and
org.apache.cxf.dosgi.systests2.single.TestImportService failed as
following, and needing to investigate them deeply.

SEVERE: Failed to determine BusFactory implementation class name.
java.lang.ClassCastException: class
org.apache.cxf.bus.spring.SpringBusFactory
        at java.lang.Class.asSubclass(Class.java:3037)
        at org.apache.cxf.BusFactory.getBusFactoryClass(BusFactory.java:368)
        at org.apache.cxf.BusFactory.newInstance(BusFactory.java:289)
        at org.apache.cxf.BusFactory.newInstance(BusFactory.java:276)
        at org.apache.cxf.BusFactory.getDefaultBus(BusFactory.java:106)
        at org.apache.cxf.BusFactory.getDefaultBus(BusFactory.java:95)
        at org.apache.cxf.dosgi.dsw.Activator.stop(Activator.java:107)
        at
org.apache.cxf.dosgi.singlebundle.AggregatedActivator.stopEmbeddedActivators(AggregatedActivator.java:139)
        at
org.apache.cxf.dosgi.singlebundle.AggregatedActivator.stop(AggregatedActivator.java:55)
        at
org.apache.felix.framework.util.SecureAction.stopActivator(SecureAction.java:663)
        at org.apache.felix.framework.Felix.stopBundle(Felix.java:2361)
        at
org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1214)
        at
org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:295)
ERROR: Bundle cxf-dosgi-ri-singlebundle-distribution [12]
EventDispatcher: Error during dispatch.
(java.lang.IllegalStateException: Invalid BundleContext.)
        at java.lang.Thread.run(Thread.java:722)

1 08, 2013 7:50:28 午後 org.apache.cxf.BusFactory newInstance
SEVERE: Failed to instantiate bus factory.
java.lang.ClassCastException: class
org.apache.cxf.bus.spring.SpringBusFactory
        at java.lang.Class.asSubclass(Class.java:3037)
        at org.apache.cxf.BusFactory.newInstance(BusFactory.java:300)
        at org.apache.cxf.BusFactory.newInstance(BusFactory.java:276)
        at org.apache.cxf.BusFactory.getDefaultBus(BusFactory.java:106)
        at org.apache.cxf.BusFactory.getDefaultBus(BusFactory.java:95)
        at org.apache.cxf.dosgi.dsw.Activator.stop(Activator.java:107)
        at
org.apache.cxf.dosgi.singlebundle.AggregatedActivator.stopEmbeddedActivators(AggregatedActivator.java:139)
        at
org.apache.cxf.dosgi.singlebundle.AggregatedActivator.stop(AggregatedActivator.java:55)
        at
org.apache.felix.framework.util.SecureAction.stopActivator(SecureAction.java:663)
        at org.apache.felix.framework.Felix.stopBundle(Felix.java:2361)
ERROR: Bundle cxf-dosgi-ri-singlebundle-distribution [12]
EventDispatcher: Error during dispatch.
(java.lang.IllegalStateException: Invalid BundleContext.)
        at
org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1214)
        at
org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:295)
        at java.lang.Thread.run(Thread.java:722)

java.lang.IllegalStateException: Invalid BundleContext.
        at
org.apache.felix.framework.BundleContextImpl.checkValidity(BundleContextImpl.java:514)
        at
org.apache.felix.framework.BundleContextImpl.ungetService(BundleContextImpl.java:473)
        at
org.osgi.util.tracker.ServiceTracker.removedService(ServiceTracker.java:495)
        at
org.osgi.util.tracker.ServiceTracker$Tracked.customizerRemoved(ServiceTracker.java:1006)
        at
org.osgi.util.tracker.ServiceTracker$Tracked.customizerRemoved(ServiceTracker.java:906)
        at
org.osgi.util.tracker.AbstractTracked.untrack(AbstractTracked.java:352)
        at
org.osgi.util.tracker.ServiceTracker$Tracked.serviceChanged(ServiceTracker.java:949)
        at
org.apache.felix.framework.util.EventDispatcher.invokeServiceListenerCallback(EventDispatcher.java:932)
        at
org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(EventDispatcher.java:793)
        at
org.apache.felix.framework.util.EventDispatcher.fireServiceEvent(EventDispatcher.java:543)
        at
org.apache.felix.framework.Felix.fireServiceEvent(Felix.java:4260)
        at org.apache.felix.framework.Felix.access$000(Felix.java:74)
        at org.apache.felix.framework.Felix$1.serviceChanged(Felix.java:390)
        at
org.apache.felix.framework.ServiceRegistry.unregisterService(ServiceRegistry.java:148)
        at
org.apache.felix.framework.ServiceRegistrationImpl.unregister(ServiceRegistrationImpl.java:127)
        at
org.ops4j.pax.web.service.internal.Activator$DynamicsServiceTrackerCustomizer.removedService(Activator.java:362)
        at
org.osgi.util.tracker.ServiceTracker$Tracked.customizerRemoved(ServiceTracker.java:1006)
        at
org.osgi.util.tracker.ServiceTracker$Tracked.customizerRemoved(ServiceTracker.java:906)
        at
org.osgi.util.tracker.AbstractTracked.untrack(AbstractTracked.java:352)
        at
org.osgi.util.tracker.ServiceTracker$Tracked.serviceChanged(ServiceTracker.java:949)
        at
org.apache.felix.framework.util.EventDispatcher.invokeServiceListenerCallback(EventDispatcher.java:932)
        at
org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(EventDispatcher.java:793)
        at
org.apache.felix.framework.util.EventDispatcher.fireServiceEvent(EventDispatcher.java:543)
        at
org.apache.felix.framework.Felix.fireServiceEvent(Felix.java:4260)
        at org.apache.felix.framework.Felix.access$000(Felix.java:74)
        at org.apache.felix.framework.Felix$1.serviceChanged(Felix.java:390)
        at
org.apache.felix.framework.ServiceRegistry.unregisterService(ServiceRegistry.java:148)
        at
org.apache.felix.framework.ServiceRegistrationImpl.unregister(ServiceRegistrationImpl.java:127)
        at
org.apache.felix.framework.ServiceRegistry.unregisterServices(ServiceRegistry.java:191)
        at org.apache.felix.framework.Felix.stopBundle(Felix.java:2386)
        at
org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1214)
        at
org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:295)
        at java.lang.Thread.run(Thread.java:722)
java.lang.IllegalStateException: Invalid BundleContext.
        at
org.apache.felix.framework.BundleContextImpl.checkValidity(BundleContextImpl.java:514)
        at
org.apache.felix.framework.BundleContextImpl.ungetService(BundleContextImpl.java:473)
        at
org.ops4j.pax.web.service.internal.Activator$DynamicsServiceTrackerCustomizer.removedService(Activator.java:364)
        at
org.osgi.util.tracker.ServiceTracker$Tracked.customizerRemoved(ServiceTracker.java:1006)
org.ops4j.pax.logging.pax-logging-api[org.ops4j.pax.swissbox.extender.BundleWatcher]
: Releasing bundle [cxf-dosgi-ri-singlebundle-distribution]
org.ops4j.pax.logging.pax-logging-api[org.ops4j.pax.swissbox.extender.BundleWatcher]
: Releasing bundle [org.apache.geronimo.specs.geronimo-atinject_1.0_spec]
org.ops4j.pax.logging.pax-logging-api[org.ops4j.pax.swissbox.extender.BundleWatcher]
: Releasing bundle [org.ops4j.pax.swissbox.lifecycle]
org.ops4j.pax.logging.pax-logging-api[org.ops4j.pax.swissbox.extender.BundleWatcher]
: Releasing bundle [org.ops4j.pax.swissbox.framework]
org.ops4j.pax.logging.pax-logging-api[org.ops4j.pax.swissbox.extender.BundleWatcher]
: Releasing bundle [org.ops4j.pax.swissbox.extender]
org.ops4j.pax.logging.pax-logging-api[org.ops4j.pax.swissbox.extender.BundleWatcher]
: Releasing bundle [org.ops4j.pax.swissbox.core]
org.ops4j.pax.logging.pax-logging-api[org.ops4j.pax.swissbox.extender.BundleWatcher]
: Releasing bundle [org.ops4j.base]
org.ops4j.pax.logging.pax-logging-api[org.ops4j.pax.logging.internal.Activator]
: Disabling SLF4J API support.
        at
org.osgi.util.tracker.ServiceTracker$Tracked.customizerRemoved(ServiceTracker.java:906)
        at
org.osgi.util.tracker.AbstractTracked.untrack(AbstractTracked.java:352)
        at
org.osgi.util.tracker.ServiceTracker$Tracked.serviceChanged(ServiceTracker.java:949)
        at
org.apache.felix.framework.util.EventDispatcher.invokeServiceListenerCallback(EventDispatcher.java:932)
org.ops4j.pax.logging.pax-logging-api[org.ops4j.pax.logging.internal.Activator]
: Disabling Jakarta Commons Logging API support.
org.ops4j.pax.logging.pax-logging-api[org.ops4j.pax.logging.internal.Activator]
: Disabling Log4J API support.
org.ops4j.pax.logging.pax-logging-api[org.ops4j.pax.logging.internal.Activator]
: Disabling Avalon Logger API support.
org.ops4j.pax.logging.pax-logging-api[org.ops4j.pax.logging.internal.Activator]
: Disabling JULI Logger API support.
org.ops4j.pax.logging.pax-logging-api[org.ops4j.pax.swissbox.extender.BundleWatcher]
: Releasing bundle [org.ops4j.pax.logging.pax-logging-api]
        at
org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(EventDispatcher.java:793)
        at
org.apache.felix.framework.util.EventDispatcher.fireServiceEvent(EventDispatcher.java:543)
        at
org.apache.felix.framework.Felix.fireServiceEvent(Felix.java:4260)
        at org.apache.felix.framework.Felix.access$000(Felix.java:74)
        at org.apache.felix.framework.Felix$1.serviceChanged(Felix.java:390)
        at
org.apache.felix.framework.ServiceRegistry.unregisterService(ServiceRegistry.java:148)
org.ops4j.pax.logging.pax-logging-api[org.ops4j.pax.swissbox.extender.BundleWatcher]
: Releasing bundle [osgi.cmpn]
        at
org.apache.felix.framework.ServiceRegistrationImpl.unregister(ServiceRegistrationImpl.java:127)
        at
org.apache.felix.framework.ServiceRegistry.unregisterServices(ServiceRegistry.java:191)
        at org.apache.felix.framework.Felix.stopBundle(Felix.java:2386)
        at
org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1214)
        at
org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:295)
        at java.lang.Thread.run(Thread.java:722)
org.ops4j.pax.logging.pax-logging-api[org.ops4j.pax.swissbox.extender.BundleWatcher]
: Releasing bundle [org.ops4j.pax.exam]
org.ops4j.pax.logging.pax-logging-api[org.ops4j.pax.swissbox.extender.BundleWatcher]
: Releasing bundle [org.apache.felix.framework]
org.ops4j.pax.logging.pax-logging-api[org.ops4j.pax.swissbox.extender.BundleWatcher]
: Releasing bundle [org.ops4j.pax.exam.extender.service]
org.ops4j.pax.logging.pax-logging-api[org.ops4j.pax.swissbox.extender.BundleWatcher]
: Releasing bundle [org.ops4j.pax.exam.inject]
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 14.938 sec
Running org.apache.cxf.dosgi.systests2.single.TestExportService
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0 sec
<<< FAILURE!
Running org.apache.cxf.dosgi.systests2.single.TestImportService
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.031
sec <<< FAILURE!

Results :

Tests in error:
  org.apache.cxf.dosgi.systests2.single.TestExportService
  org.apache.cxf.dosgi.systests2.single.TestImportService

Tang Yong wrote:
> Hi Sergey
> CC:Christian
> 
> I am re-opening a thread about DOSGI-152.
> 
> Now, I have applied the patch of DOSGI-152 and DOSGI-106, and built new
> local snapshot. After executing mvn clean install from dcxf root, the
> following error happened on
> org.apache.cxf.dosgi.systests2.single.TestDiscoveryRountrip, and am
> investigating it.
> 
> Test set: org.apache.cxf.dosgi.systests2.single.TestDiscoveryRountrip
> -------------------------------------------------------------------------------
> Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 6.328
> sec <<< FAILURE!
> testDiscoveryRoundtrip(org.apache.cxf.dosgi.systests2.single.TestDiscoveryRountrip)
>  Time elapsed: 2.875 sec  <<< ERROR!
> java.lang.IllegalStateException: Stream handler unavailable due to: null
>       at
> org.apache.felix.framework.URLHandlersStreamHandlerProxy.openConnection(URLHandlersStreamHandlerProxy.java:311)
>       at java.net.URL.openConnection(URL.java:945)
>       at
> org.apache.felix.framework.cache.JarRevision.initialize(JarRevision.java:155)
>       at 
> org.apache.felix.framework.cache.JarRevision.<init>(JarRevision.java:82)
>       at 
> org.apache.felix.framework.cache.JarRevision.<init>(JarRevision.java:60)
>       at
> org.apache.felix.framework.cache.BundleArchive.createRevisionFromLocation(BundleArchive.java:868)
>       at
> org.apache.felix.framework.cache.BundleArchive.reviseInternal(BundleArchive.java:549)
>       at
> org.apache.felix.framework.cache.BundleArchive.<init>(BundleArchive.java:148)
>       at
> org.apache.felix.framework.cache.BundleCache.create(BundleCache.java:251)
>       at org.apache.felix.framework.Felix.installBundle(Felix.java:2476)
>       at org.apache.felix.framework.Felix.installBundle(Felix.java:2436)
>       at
> org.apache.felix.framework.BundleContextImpl.installBundle(BundleContextImpl.java:129)
>       at
> org.apache.felix.framework.BundleContextImpl.installBundle(BundleContextImpl.java:107)
>       at
> org.ops4j.pax.exam.nat.internal.NativeTestContainer.installAndStartBundles(NativeTestContainer.java:320)
>       at
> org.ops4j.pax.exam.nat.internal.NativeTestContainer.start(NativeTestContainer.java:164)
>       at
> org.ops4j.pax.exam.spi.reactors.AllConfinedStagedReactor.invoke(AllConfinedStagedReactor.java:86)
>       at
> org.ops4j.pax.exam.junit.JUnit4TestRunner$2.evaluate(JUnit4TestRunner.java:323)
>       at
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)
>       at
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
>       at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
>       at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
>       at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
>       at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
>       at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
>       at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
>       at 
> org.ops4j.pax.exam.junit.JUnit4TestRunner.run(JUnit4TestRunner.java:120)
>       at
> org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53)
>       at
> org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:119)
>       at
> org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:101)
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>       at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>       at java.lang.reflect.Method.invoke(Method.java:597)
>       at
> org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103)
>       at $Proxy0.invoke(Unknown Source)
>       at
> org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:150)
>       at
> org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:91)
>       at 
> org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69)
> 
> Thanks
> --Tang
> 

<?xml version='1.0' encoding='UTF-8' ?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one
  or more contributor license agreements. See the NOTICE file
  distributed with this work for additional information
  regarding copyright ownership. The ASF licenses this file
  to you under the Apache License, Version 2.0 (the
  "License"); you may not use this file except in compliance
  with the License. You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing,
  software distributed under the License is distributed on an
  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  KIND, either express or implied. See the License for the
  specific language governing permissions and limitations
  under the License.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd";>

    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>org.apache.cxf.dosgi</groupId>
        <artifactId>cxf-dosgi-ri-parent</artifactId>
        <version>1.4-SNAPSHOT</version>
        <relativePath>../../parent/pom.xml</relativePath>
    </parent>

    <groupId>org.apache.cxf.dosgi.systests</groupId>
    <artifactId>cxf-dosgi-ri-systests2-singlebundle</artifactId>
    <packaging>jar</packaging>

    <name>Distributed OSGi System Tests Single-Bundle</name>

    <dependencies>
        <dependency>
            <groupId>org.ops4j.pax.exam</groupId>
            <artifactId>pax-exam-junit4</artifactId>
            <version>3.0.0.RC1</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.geronimo.specs</groupId>
            <artifactId>geronimo-atinject_1.0_spec</artifactId>
            <version>1.0</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.ops4j.pax.exam</groupId>
            <artifactId>pax-exam-container-native</artifactId>
            <version>3.0.0.RC1</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.ops4j.pax.exam</groupId>
            <artifactId>pax-exam-link-mvn</artifactId>
            <version>3.0.0.RC1</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.ops4j.pax.url</groupId>
            <artifactId>pax-url-aether</artifactId>
            <version>1.4.0</version>
            <scope>test</scope>
        </dependency>
         <dependency>
            <groupId>org.ops4j.pax.url</groupId>
            <artifactId>pax-url-wrap</artifactId>
            <version>1.4.0</version>
            <scope>test</scope>
        </dependency>
        <dependency>
           <groupId>org.apache.felix</groupId>
           <artifactId>org.apache.felix.framework</artifactId>
           <version>4.0.2</version>
           <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.ops4j.pax.swissbox</groupId>
            <artifactId>pax-swissbox-tinybundles</artifactId>
            <version>1.3.1</version>
        </dependency>
        <dependency>
            <groupId>org.osgi</groupId>
            <artifactId>org.osgi.core</artifactId>
        </dependency>

        <dependency>
            <groupId>org.osgi</groupId>
            <artifactId>org.osgi.enterprise</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.cxf.dosgi.systests</groupId>
            <artifactId>cxf-dosgi-ri-systests2-common</artifactId>
            <version>${project.version}</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.apache.cxf.dosgi</groupId>
            <artifactId>cxf-dosgi-ri-singlebundle-distribution</artifactId>
            <version>${project.version}</version>
            <scope>test</scope>           
            <exclusions>
                <exclusion>
                    <groupId>org.apache.felix</groupId>
                    <artifactId>org.osgi.foundation</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.apache.zookeeper</groupId>
            <artifactId>zookeeper</artifactId>
            <version>${zookeeper.version}</version>
            <exclusions>
                <exclusion>
                   <groupId>com.sun.jdmk</groupId>
                   <artifactId>jmxtools</artifactId> 
                </exclusion>
                <exclusion>
                   <groupId>com.sun.jmx</groupId>
                   <artifactId>jmxri</artifactId> 
                </exclusion>
                <exclusion>
                   <groupId>log4j</groupId>
                   <artifactId>log4j</artifactId> 
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.apache.cxf.dosgi</groupId>
            <artifactId>cxf-dosgi-ri-discovery-distributed-zookeeper-server</artifactId>
            <version>${project.version}</version>
            <scope>test</scope>           
        </dependency>
        <dependency>
            <groupId>org.apache.cxf.dosgi.samples</groupId>
            <artifactId>cxf-dosgi-ri-samples-greeter-impl</artifactId>
            <version>${project.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.cxf.dosgi.samples</groupId>
            <artifactId>cxf-dosgi-ri-samples-greeter-interface</artifactId>
            <version>${project.version}</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <scope>test</scope>
        </dependency>

    </dependencies>

    <build>
        <plugins>
            <!-- use pax exam maven plugin -->

            <!--
            Note: settings and dependencies for the final osgi runtime (TESTS) are just used in TestCases
            that annotated with this:
            @RunWith( MavenConfiguredJUnit4TestRunner.class )

            All other testcases will use their own settings/provisioning inside @Configure Methods.
            -->
            <plugin>
                <groupId>org.ops4j.pax.exam</groupId>
                <artifactId>maven-paxexam-plugin</artifactId>
                <executions>
                    <execution>
                        <id>generate-config</id>
                        <goals>
                            <goal>generate-config</goal>
                            <goal>generate-depends-file</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <options>
                        <platform>equinox</platform>
                        <profiles>log</profiles>
                    </options>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

/**
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements. See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership. The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License. You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied. See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */
package org.apache.cxf.dosgi.systests2.single;

import javax.inject.Inject;

import org.apache.cxf.dosgi.systests2.common.AbstractTestDiscoveryRoundtrip;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.ops4j.pax.exam.CoreOptions;
import org.ops4j.pax.exam.Option;
import org.ops4j.pax.exam.options.FrameworkStartLevelOption;
import org.ops4j.pax.exam.options.MavenArtifactUrlReference;
import org.osgi.framework.BundleContext;

import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
import static org.ops4j.pax.exam.CoreOptions.provision;
import static org.ops4j.pax.exam.CoreOptions.wrappedBundle;

import org.ops4j.pax.exam.options.extra.VMOption;
import org.ops4j.pax.exam.options.TimeoutOption;
import org.ops4j.pax.exam.junit.PaxExam;
import org.ops4j.pax.exam.Configuration;


@RunWith(PaxExam.class)
public class TestDiscoveryRountrip extends AbstractTestDiscoveryRoundtrip {
    @Inject
    BundleContext bundleContext;

    @Configuration
    public  Option[] configure() {
        return CoreOptions.options(
//                // this just adds all what you write here to java vm 
argumenents of the (new) osgi process.
               // new VMOption( 
"-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5006" ),
                //new TimeoutOption( 0 ),
//                // this is necessary to let junit runner not timout the 
remote process before attaching debugger
//                // setting timeout to 0 means wait as long as the remote 
service comes available.
//                waitForFrameworkStartup(),
                
                mavenBundle().groupId("org.apache.cxf.dosgi")
                    
.artifactId("cxf-dosgi-ri-singlebundle-distribution").versionAsInProject(),
                wrappedBundle(new MavenArtifactUrlReference()
                    .groupId("log4j").artifactId("log4j").versionAsInProject()),
                
mavenBundle().groupId("org.apache.zookeeper").artifactId("zookeeper").versionAsInProject(),
                mavenBundle().groupId("org.apache.cxf.dosgi")
                    
.artifactId("cxf-dosgi-ri-discovery-distributed-zookeeper-server").versionAsInProject(),
                
                // This bundle contains the common system testing code
                mavenBundle().groupId("org.apache.cxf.dosgi.systests")
                    
.artifactId("cxf-dosgi-ri-systests2-common").versionAsInProject(),

                provision(getClientBundle()),
                provision(getServerBundle())
        );
    }
    
    protected BundleContext getBundleContext() {
        return bundleContext;
    }

    @Test
    public void testDiscoveryRoundtrip() throws Exception {
         // Disabled temporarily
         // baseTestDiscoveryRoundtrip();
    }
}

Reply via email to