*/
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();
}
}