package org.milipede.storage.layer.service.tracker; import ch.cyberduck.service.LoginController; import org.milipede.storage.layer.handler.ProviderHandler; import org.osgi.framework.BundleContext; import org.osgi.framework.ServiceReference; import org.osgi.util.tracker.ServiceTracker; import org.osgi.util.tracker.ServiceTrackerCustomizer; //import ch.cyberduck.core.LoginController; public class LoginServiceTracker extends ServiceTracker { public LoginServiceTracker(BundleContext context, ProviderHandler loginServiceConsumer) { super(context, LoginController.class.getName(), null); this.handler = loginServiceConsumer; } private ProviderHandler handler; //// public LoginServiceTracker(BundleContext context, //// ProviderHandler loginServiceConsumer) { //// super(context, LoginController.class.getName(), null); //// this.handler = loginServiceConsumer; //// } // // @Override public Object addingService(ServiceReference reference) { System.out.println("hello"); LoginController loginService = (LoginController)context.getService(reference); this.handler.setLoginService(loginService); return loginService; } @Override public void modifiedService(ServiceReference sr, Object o) { this.handler.setLoginService(null); LoginController loginService = (LoginController)context.getService(sr); this.handler.setLoginService(loginService); } @Override public void removedService(ServiceReference reference, Object service) { LoginController loginService = (LoginController)service; //for clean up this.handler.setLoginService(null); context.ungetService(reference); } }