1 36 package org.ungoverned.oscar.util; 37 38 import java.security.AccessController ; 39 import java.security.PrivilegedAction ; 40 41 import org.osgi.framework.Bundle; 42 import org.osgi.framework.BundleEvent; 43 import org.osgi.framework.BundleListener; 44 import org.osgi.framework.SynchronousBundleListener; 45 46 public class BundleListenerWrapper extends ListenerWrapper implements BundleListener 47 { 48 public BundleListenerWrapper(Bundle bundle, BundleListener l) 49 { 50 super(bundle, 51 (l instanceof SynchronousBundleListener) 52 ? SynchronousBundleListener.class : BundleListener.class, 53 l); 54 } 55 56 public void bundleChanged(final BundleEvent event) 57 { 58 if (((getListenerClass() == SynchronousBundleListener.class) && 64 ((getBundle().getState() == Bundle.STARTING) || 65 (getBundle().getState() == Bundle.STOPPING) || 66 (getBundle().getState() == Bundle.ACTIVE))) 67 || 68 ((getBundle().getState() == Bundle.STARTING) || 69 (getBundle().getState() == Bundle.ACTIVE))) 70 { 71 if (System.getSecurityManager() != null) 72 { 73 AccessController.doPrivileged(new PrivilegedAction () { 74 public Object run() 75 { 76 ((BundleListener) getListener()).bundleChanged(event); 77 return null; 78 } 79 }); 80 } 81 else 82 { 83 ((BundleListener) getListener()).bundleChanged(event); 84 } 85 } 86 } 87 } 88 | Popular Tags |