From 4adda6b6646e354dd3f252c9f9abf7efd0c53fab Mon Sep 17 00:00:00 2001 From: Erik Brakkee Date: Thu, 18 Aug 2011 22:29:52 +0200 Subject: [PATCH] working with pax runner. --- integrationtest/pom.xml | 49 +++++++++++++------ .../XmlRouterIntegrationTest.java | 25 ++++++++-- pom.xml | 2 +- .../xmlrouter/bundle/XmlrouterActivator.java | 32 +++++++++++- 4 files changed, 87 insertions(+), 21 deletions(-) diff --git a/integrationtest/pom.xml b/integrationtest/pom.xml index 14256d0..fe3daa8 100644 --- a/integrationtest/pom.xml +++ b/integrationtest/pom.xml @@ -1,5 +1,6 @@ - + org.wamblee.xmlrouter @@ -12,14 +13,14 @@ jar /xmlrouter/integrationtest http://wamblee.org - + org.wamblee.xmlrouter xmlrouter-router-bundle 0.1.0-SNAPSHOT - + junit junit @@ -27,8 +28,8 @@ org.mockito mockito-all - - + + org.osgi @@ -40,27 +41,44 @@ org.osgi.compendium 4.2.0 - + + + + + org.ops4j.pax.exam + pax-exam-container-paxrunner + + + + + org.ops4j.pax.runner + pax-runner-no-jcl + + + org.ops4j.pax.exam pax-exam-junit4 - + org.ops4j.pax.exam pax-exam-link-mvn - + + + + + + + + - + @@ -93,7 +114,7 @@ - + xmlrouter-site diff --git a/integrationtest/src/test/java/org/wamblee/xmlrouter/integrationtest/XmlRouterIntegrationTest.java b/integrationtest/src/test/java/org/wamblee/xmlrouter/integrationtest/XmlRouterIntegrationTest.java index 7ca83ca..a07a137 100644 --- a/integrationtest/src/test/java/org/wamblee/xmlrouter/integrationtest/XmlRouterIntegrationTest.java +++ b/integrationtest/src/test/java/org/wamblee/xmlrouter/integrationtest/XmlRouterIntegrationTest.java @@ -15,14 +15,20 @@ */ package org.wamblee.xmlrouter.integrationtest; +import static org.mockito.Matchers.*; +import static org.mockito.Mockito.*; import static org.ops4j.pax.exam.CoreOptions.*; +import javax.xml.transform.dom.DOMSource; + import org.junit.Test; import org.junit.runner.RunWith; import org.ops4j.pax.exam.Option; import org.ops4j.pax.exam.junit.Configuration; import org.ops4j.pax.exam.junit.JUnit4TestRunner; import org.osgi.framework.BundleContext; +import org.osgi.framework.ServiceRegistration; +import org.wamblee.xmlrouter.subscribe.Destination; @RunWith(JUnit4TestRunner.class) public class XmlRouterIntegrationTest { @@ -30,11 +36,14 @@ public class XmlRouterIntegrationTest { @Configuration() public Option[] config() { return options( + cleanCaches(), // Test dependencies - mavenBundle().groupId("junit").artifactId("junit-dep") - .version("4.8.2"), // + wrappedBundle(mavenBundle().groupId("junit") + .artifactId("junit-dep").version("4.8.2")), // mavenBundle().groupId("org.mockito").artifactId("mockito-all") .version("1.8.5"), // + // junitBundles(), + // mockitoBundles(), // XML Router API packages. mavenBundle().groupId("org.wamblee.xmlrouter") @@ -57,9 +66,17 @@ public class XmlRouterIntegrationTest { } @Test - public void test1(BundleContext aContext) { + public void test1(BundleContext aContext) throws InterruptedException { System.out.println("=== Got context " + aContext); - } + Destination dest = mock(Destination.class); + // verify(dest, never()).receive(any(DOMSource.class)); + ServiceRegistration registration = aContext.registerService( + Destination.class.getName(), dest, null); + Thread.sleep(5000); + verify(dest, atLeastOnce()).receive(any(DOMSource.class)); + + registration.unregister(); + } } diff --git a/pom.xml b/pom.xml index d2d2a85..0ea6cda 100644 --- a/pom.xml +++ b/pom.xml @@ -128,7 +128,7 @@ org.mockito mockito-all - 1.8.0 + 1.8.5 test diff --git a/router/bundle/src/main/java/org/wamblee/xmlrouter/bundle/XmlrouterActivator.java b/router/bundle/src/main/java/org/wamblee/xmlrouter/bundle/XmlrouterActivator.java index a070598..f01c0f6 100644 --- a/router/bundle/src/main/java/org/wamblee/xmlrouter/bundle/XmlrouterActivator.java +++ b/router/bundle/src/main/java/org/wamblee/xmlrouter/bundle/XmlrouterActivator.java @@ -15,19 +15,47 @@ */ package org.wamblee.xmlrouter.bundle; +import java.util.Timer; +import java.util.TimerTask; + import org.osgi.framework.BundleActivator; import org.osgi.framework.BundleContext; +import org.osgi.util.tracker.ServiceTracker; +import org.wamblee.xmlrouter.subscribe.Destination; public class XmlrouterActivator implements BundleActivator { + private BundleContext context; + private ServiceTracker destinations; + private Timer timer; + @Override public void start(BundleContext aContext) throws Exception { - System.out.println("Starting bundle"); + System.out.println("=== Starting bundle"); + context = aContext; + destinations = new ServiceTracker(aContext, + Destination.class.getName(), null); + destinations.open(); + timer = new Timer(); + timer.schedule(new TimerTask() { + + @Override + public void run() { + Destination dest = (Destination) destinations.getService(); + System.out.println(" === timer expired"); + if (dest != null) { + System.out.println(" == calling"); + dest.receive(null); + } + } + }, 1000, 1000); } @Override public void stop(BundleContext aContext) throws Exception { - System.out.println("Stopping bundle"); + System.out.println("=== Stopping bundle"); + timer.cancel(); + destinations.close(); } } -- 2.31.1