Class EventAdminImpl
java.lang.Object
org.apache.felix.eventadmin.impl.handler.EventAdminImpl
- All Implemented Interfaces:
org.osgi.service.event.EventAdmin
public class EventAdminImpl
extends java.lang.Object
implements org.osgi.service.event.EventAdmin
This is the actual implementation of the OSGi R4 Event Admin Service (see the
Compendium 113 for details). The implementation uses a
HandlerTasks
in order to determine applicable EventHandler for a specific event and
subsequently dispatches the event to the handlers via DeliverTasks.
To do this, it uses two different DeliverTasks one for asynchronous and
one for synchronous event delivery depending on whether its post() or
its send() method is called. Note that the actual work is done in the
implementations of the DeliverTasks. Additionally, a stop method is
provided that prevents subsequent events to be delivered.- Author:
- Felix Project Team
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interfaceEventAdminImpl.EventHandlerMBean -
Constructor Summary
Constructors Constructor Description EventAdminImpl(org.osgi.framework.BundleContext bundleContext, DefaultThreadPool syncPool, DefaultThreadPool asyncPool, int timeout, java.lang.String[] ignoreTimeout, boolean requireTopic, java.lang.String[] ignoreTopics)The constructor of theEventAdminimplementation. -
Method Summary
Modifier and Type Method Description java.lang.ObjectgetHandlerInfoMBean()voidpostEvent(org.osgi.service.event.Event event)Post an asynchronous event.voidsendEvent(org.osgi.service.event.Event event)Send a synchronous event.voidstop()This method can be used to stop the delivery of events.voidupdate(int timeout, java.lang.String[] ignoreTimeout, boolean requireTopic, java.lang.String[] ignoreTopics)Update the event admin with new configuration.
-
Constructor Details
-
EventAdminImpl
public EventAdminImpl(org.osgi.framework.BundleContext bundleContext, DefaultThreadPool syncPool, DefaultThreadPool asyncPool, int timeout, java.lang.String[] ignoreTimeout, boolean requireTopic, java.lang.String[] ignoreTopics)The constructor of theEventAdminimplementation.- Parameters:
bundleContext- The event admin bundle contextsyncPool- The synchronous thread poolasyncPool- The asynchronous thread pooltimeout- The timeoutignoreTimeout- The configuration for ignoring timeoutsrequireTopic- Are topics required?ignoreTopics- The configuration to ignore topics
-
-
Method Details
-
postEvent
public void postEvent(org.osgi.service.event.Event event)Post an asynchronous event.- Specified by:
postEventin interfaceorg.osgi.service.event.EventAdmin- Parameters:
event- The event to be posted by this service- Throws:
java.lang.IllegalStateException- - In case we are stopped- See Also:
EventAdmin.postEvent(org.osgi.service.event.Event)
-
sendEvent
public void sendEvent(org.osgi.service.event.Event event)Send a synchronous event.- Specified by:
sendEventin interfaceorg.osgi.service.event.EventAdmin- Parameters:
event- The event to be send by this service- Throws:
java.lang.IllegalStateException- - In case we are stopped- See Also:
EventAdmin.sendEvent(org.osgi.service.event.Event)
-
stop
public void stop()This method can be used to stop the delivery of events. -
update
public void update(int timeout, java.lang.String[] ignoreTimeout, boolean requireTopic, java.lang.String[] ignoreTopics)Update the event admin with new configuration.- Parameters:
timeout- The timeoutignoreTimeout- The configuration for ignoring timeoutsrequireTopic- Are topics required?ignoreTopics- The configuration to ignore topics
-
getHandlerInfoMBean
public java.lang.Object getHandlerInfoMBean()
-