Class EventAdminImpl
- java.lang.Object
-
- org.apache.felix.eventadmin.impl.handler.EventAdminImpl
-
- All Implemented Interfaces:
org.osgi.service.event.EventAdmin
public class EventAdminImpl extends 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 aHandlerTasks
in order to determine applicableEventHandler
for a specific event and subsequently dispatches the event to the handlers viaDeliverTasks
. To do this, it uses two differentDeliverTasks
one for asynchronous and one for synchronous event delivery depending on whether itspost()
or itssend()
method is called. Note that the actual work is done in the implementations of theDeliverTasks
. 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 interface
EventAdminImpl.EventHandlerMBean
-
Constructor Summary
Constructors Constructor Description EventAdminImpl(org.osgi.framework.BundleContext bundleContext, DefaultThreadPool syncPool, DefaultThreadPool asyncPool, int timeout, String[] ignoreTimeout, boolean requireTopic, String[] ignoreTopics)
The constructor of theEventAdmin
implementation.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Object
getHandlerInfoMBean()
void
postEvent(org.osgi.service.event.Event event)
Post an asynchronous event.void
sendEvent(org.osgi.service.event.Event event)
Send a synchronous event.void
stop()
This method can be used to stop the delivery of events.void
update(int timeout, String[] ignoreTimeout, boolean requireTopic, String[] ignoreTopics)
Update the event admin with new configuration.
-
-
-
Constructor Detail
-
EventAdminImpl
public EventAdminImpl(org.osgi.framework.BundleContext bundleContext, DefaultThreadPool syncPool, DefaultThreadPool asyncPool, int timeout, String[] ignoreTimeout, boolean requireTopic, String[] ignoreTopics)
The constructor of theEventAdmin
implementation.- 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 Detail
-
postEvent
public void postEvent(org.osgi.service.event.Event event)
Post an asynchronous event.- Specified by:
postEvent
in interfaceorg.osgi.service.event.EventAdmin
- Parameters:
event
- The event to be posted by this service- Throws:
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:
sendEvent
in interfaceorg.osgi.service.event.EventAdmin
- Parameters:
event
- The event to be send by this service- Throws:
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, String[] ignoreTimeout, boolean requireTopic, 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 Object getHandlerInfoMBean()
-
-