package org.foo.dosgi.test;
import java.util.Hashtable;
import org.osgi.framework.BundleActivator;
import org.osgi.framework.BundleContext;
import org.osgi.framework.Constants;
import org.osgi.framework.Filter;
import org.osgi.framework.ServiceReference;
import org.osgi.util.tracker.ServiceTracker;
public class Activator implements BundleActivator {
public void start(BundleContext context) throws Exception {
Hashtable props = new Hashtable();
props.put("service.exported.interfaces","*");
context.registerService(Foo.class.getName(), new FooImpl(), props);
Filter filter = context.createFilter("(&(" + Constants.OBJECTCLASS + "=" + Foo.class.getName() + ")(service.imported=*))");
ServiceTracker tracker = new ServiceTracker(context, filter, null) {
@Override
public Object addingService(ServiceReference reference) {
System.out.println( "Found " + reference + " !!!!!!!" );
return super.addingService(reference);
}
@Override
public void removedService(ServiceReference reference, Object service) {
System.out.println( "Lost " + reference + " !!!!!!!" );
super.removedService(reference, service);
}
};
tracker.open();
}
public void stop(BundleContext context) throws Exception {
}
}