Thanks Achim, that did help clarify things a little. I noticed in the test you referenced that there was a wait at the start of the test. I tried doing the same, but apparently the test never even got invoked. My guess is that this is because I am using @Inject. (In the test you referenced, there is also an @Inject, but it is just for the bundle context.)
Ah. Instead of an @Inject on the desired service, a service listener is employed and a notify is used to wake up the thread doing the wait. I can do that, but that's pretty ugly, eh? OK, so I have an answer. It is nice and solid. Just don't use @Inject! Quitting time for me here in India. I'll check for alternative responses in the morning before proceeding with this solution. Thanks again Achim! On Fri, May 17, 2013 at 8:07 PM, Achim Nierbeck <[email protected]>wrote: > Hi, > > take a look at how it's used in Karaf itself, maybe you're doing something > slightly different. :) > > > http://svn.apache.org/viewvc/karaf/trunk/tooling/exam/regression/src/test/java/org/apache/karaf/tooling/exam/regression/KarafWithBundleTest.java?view=markup > > regards, Achim > > > 2013/5/17 William la Forge <[email protected]> > >> I switched to karaf 2.3.1, but there was no change >> >> >> On Fri, May 17, 2013 at 5:18 PM, William la Forge <[email protected]>wrote: >> >>> I have an integration test that works half the time when I set the >>> logging level to DEBUG. So I figured I need to use @Before, but the method >>> does not get called. >>> >>> org.apache.karaf 3.0.0.RC1 >>> org.apache.karaf.tooling.exam 3.0.0.RC1 >>> org.ops4j.pax.exam 2.6.0 >>> >>> pom: >>> https://github.com/laforge49/JActor2/blob/master/jactor-ktest/pom.xml >>> test source: >>> https://github.com/laforge49/JActor2/blob/master/jactor-ktest/src/test/java/org/apache/karaf/VersionAsInProjectKarafTest.java >>> >>> I modeled my test on >>> http://karaf.apache.org/manual/latest-2.3.x/developers-guide/writing-tests.html >>> >>> I used mavenBundle in config: >>> >>> @Configuration >>> public Option[] config() { >>> return new >>> Option[]{karafDistributionConfiguration().frameworkUrl( >>> >>> maven().groupId("org.apache.karaf").artifactId("apache-karaf").type("zip").versionAsInProject()) >>> .karafVersion("2.2.4").name("Apache Karaf"), >>> >>> logLevel(LogLevelOption.LogLevel.INFO), >>> >>> mavenBundle("org.agilewiki.jactor", "jactor-api", >>> "0.0.1-SNAPSHOT"), >>> mavenBundle("org.agilewiki.jactor", "jactor-impl", >>> "0.0.1-SNAPSHOT"), >>> mavenBundle("org.agilewiki.jactor", "jactor-util", >>> "0.0.1-SNAPSHOT"), >>> mavenBundle("org.agilewiki.jactor", "jactor-test-iface", >>> "0.0.1-SNAPSHOT"), >>> mavenBundle("org.agilewiki.jactor", >>> "jactor-test-service", "0.0.1-SNAPSHOT") >>> >>> }; >>> } >>> >>> My before method is not called: >>> >>> @Before >>> public void setup() throws Exception { >>> Thread.sleep(10000); >>> } >>> >>> The result I get without DEBUG and half the time with DEBUG set is: >>> >>> >>> test:org.apache.karaf.VersionAsInProjectKarafTest.test:KarafTestContainer{mvn: >>> >>> org.apache.karaf\/apache-karaf\/3.0.0.RC1\/zip}(org.apache.karaf.VersionAsInProj >>> ectKarafTest): org.agilewiki.jactor.testIface.Hello not found by >>> PAXEXAM-PROBE-e >>> 10f1edd-464b-4800-a783-7dcfd54a2a0d [93] >>> >>> I'm running on Windows 7. >>> >>> Any help would be appreciated. Thanks! >>> >>> Bill >>> >>> >>> >> > > > -- > > Apache Karaf <http://karaf.apache.org/> Committer & PMC > OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/> Committer & > Project Lead > OPS4J Pax for Vaadin <http://team.ops4j.org/wiki/display/PAXVAADIN/Home> > Commiter & Project Lead > blog <http://notizblog.nierbeck.de/> >
