Package org.apache.felix.framework.util
Class EventDispatcher
java.lang.Object
org.apache.felix.framework.util.EventDispatcher
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate Map
<BundleContext, List<ListenerInfo>> private Map
<BundleContext, List<ListenerInfo>> private final Logger
private static int
private final ServiceRegistry
private static final List
<EventDispatcher.Request> private static final List
<EventDispatcher.Request> private static final SecureAction
private static boolean
private Map
<BundleContext, List<ListenerInfo>> private Map
<BundleContext, List<ListenerInfo>> private static Thread
private static final String
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionaddListener
(BundleContext bc, Class clazz, EventListener l, Filter filter) private static Map
<BundleContext, List<ListenerInfo>> addListenerInfo
(Map<BundleContext, List<ListenerInfo>> listeners, ListenerInfo info) private <T> Set
<BundleContext> createWhitelistFromHooks
(EventObject event, Framework felix, Map<BundleContext, List<ListenerInfo>> listeners1, Map<BundleContext, List<ListenerInfo>> listeners2, Class<T> hookClass) private Map
<BundleContext, List<ListenerInfo>> filterListenersUsingHooks
(ServiceEvent event, Framework felix, Map<BundleContext, List<ListenerInfo>> listeners) void
fireBundleEvent
(BundleEvent event, Framework felix) private static void
fireEventAsynchronously
(EventDispatcher dispatcher, int type, Map<BundleContext, List<ListenerInfo>> listeners, EventObject event) private static void
fireEventImmediately
(EventDispatcher dispatcher, int type, Map<BundleContext, List<ListenerInfo>> listeners, EventObject event, Dictionary oldProps) void
fireFrameworkEvent
(FrameworkEvent event) void
fireServiceEvent
(ServiceEvent event, Dictionary oldProps, Framework felix) Returns all existing service listener information into a collection of ListenerHook.ListenerInfo objects.private static void
invokeBundleListenerCallback
(Bundle bundle, EventListener l, EventObject event) private static void
invokeFrameworkListenerCallback
(Bundle bundle, EventListener l, EventObject event) private static void
invokeServiceListenerCallback
(Bundle bundle, EventListener l, Filter filter, Object acc, EventObject event, Dictionary oldProps) removeListener
(BundleContext bc, Class clazz, EventListener l) private static Map
<BundleContext, List<ListenerInfo>> removeListenerInfo
(Map<BundleContext, List<ListenerInfo>> listeners, BundleContext bc, int idx) private static Map
<BundleContext, List<ListenerInfo>> removeListenerInfos
(Map<BundleContext, List<ListenerInfo>> listeners, BundleContext bc) void
private static void
run()
This is the dispatching thread's main loop.void
void
updateListener
(BundleContext bc, Class clazz, EventListener l, Filter filter) private static Map
<BundleContext, List<ListenerInfo>> updateListenerInfo
(Map<BundleContext, List<ListenerInfo>> listeners, int idx, ListenerInfo info)
-
Field Details
-
m_logger
-
m_registry
-
m_fwkListeners
-
m_bndlListeners
-
m_syncBndlListeners
-
m_svcListeners
-
m_thread
-
m_threadLock
-
m_references
private static int m_references -
m_stopping
private static volatile boolean m_stopping -
m_requestList
-
m_requestPool
-
m_secureAction
-
-
Constructor Details
-
EventDispatcher
-
-
Method Details
-
startDispatching
public void startDispatching() -
stopDispatching
public void stopDispatching() -
addListener
-
removeListener
-
removeListeners
-
updateListener
-
getAllServiceListeners
Returns all existing service listener information into a collection of ListenerHook.ListenerInfo objects. This is used the first time a listener hook is registered to synchronize it with the existing set of listeners.- Returns:
- Returns all existing service listener information into a collection of ListenerHook.ListenerInfo objects
-
fireFrameworkEvent
-
fireBundleEvent
-
fireServiceEvent
-
filterListenersUsingHooks
private Map<BundleContext,List<ListenerInfo>> filterListenersUsingHooks(ServiceEvent event, Framework felix, Map<BundleContext, List<ListenerInfo>> listeners) -
createWhitelistFromHooks
private <T> Set<BundleContext> createWhitelistFromHooks(EventObject event, Framework felix, Map<BundleContext, List<ListenerInfo>> listeners1, Map<BundleContext, List<ListenerInfo>> listeners2, Class<T> hookClass) -
fireEventAsynchronously
private static void fireEventAsynchronously(EventDispatcher dispatcher, int type, Map<BundleContext, List<ListenerInfo>> listeners, EventObject event) -
fireEventImmediately
private static void fireEventImmediately(EventDispatcher dispatcher, int type, Map<BundleContext, List<ListenerInfo>> listeners, EventObject event, Dictionary oldProps) -
invokeFrameworkListenerCallback
private static void invokeFrameworkListenerCallback(Bundle bundle, EventListener l, EventObject event) -
invokeBundleListenerCallback
-
invokeServiceListenerCallback
private static void invokeServiceListenerCallback(Bundle bundle, EventListener l, Filter filter, Object acc, EventObject event, Dictionary oldProps) -
addListenerInfo
private static Map<BundleContext,List<ListenerInfo>> addListenerInfo(Map<BundleContext, List<ListenerInfo>> listeners, ListenerInfo info) -
updateListenerInfo
private static Map<BundleContext,List<ListenerInfo>> updateListenerInfo(Map<BundleContext, List<ListenerInfo>> listeners, int idx, ListenerInfo info) -
removeListenerInfo
private static Map<BundleContext,List<ListenerInfo>> removeListenerInfo(Map<BundleContext, List<ListenerInfo>> listeners, BundleContext bc, int idx) -
removeListenerInfos
private static Map<BundleContext,List<ListenerInfo>> removeListenerInfos(Map<BundleContext, List<ListenerInfo>> listeners, BundleContext bc) -
run
private static void run()This is the dispatching thread's main loop.
-