working with pax runner.
[xmlrouter] / router / bundle / src / main / java / org / wamblee / xmlrouter / bundle / XmlrouterActivator.java
index a070598f57d14d821916abf4bb22b865d68b585e..f01c0f67c090512bb9fc77e3ef08eb1bcdf932b8 100644 (file)
  */
 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();
     }
 
 }