All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.osgi.service.event.EventHandler Maven / Gradle / Ivy

There is a newer version: 2024.11.18751.20241128T090041Z-241100
Show newest version
/*
 * Copyright (c) OSGi Alliance (2005, 2013). All Rights Reserved.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.osgi.service.event;

import org.osgi.annotation.versioning.ConsumerType;

/**
 * Listener for Events.
 * 
 * 

* {@code EventHandler} objects are registered with the Framework service * registry and are notified with an {@code Event} object when an event is sent * or posted. *

* {@code EventHandler} objects can inspect the received {@code Event} object to * determine its topic and properties. * *

* {@code EventHandler} objects must be registered with a service property * {@link EventConstants#EVENT_TOPIC} whose value is the list of topics in which * the event handler is interested. *

* For example: * *

 * String[] topics = new String[] {"com/isv/*"};
 * Hashtable ht = new Hashtable();
 * ht.put(EventConstants.EVENT_TOPIC, topics);
 * context.registerService(EventHandler.class.getName(), this, ht);
 * 
* * Event Handler services can also be registered with an * {@link EventConstants#EVENT_FILTER} service property to further filter the * events. If the syntax of this filter is invalid, then the Event Handler must * be ignored by the Event Admin service. The Event Admin service should log a * warning. *

* Security Considerations. Bundles wishing to monitor {@code Event} objects * will require {@code ServicePermission[EventHandler,REGISTER]} to register an * {@code EventHandler} service. The bundle must also have * {@code TopicPermission[topic,SUBSCRIBE]} for the topic specified in the event * in order to receive the event. * * @see Event * * @ThreadSafe * @author $Id: 996c63cec877a390c66a1602fd706c3a1ba66df9 $ */ @ConsumerType public interface EventHandler { /** * Called by the {@link EventAdmin} service to notify the listener of an * event. * * @param event The event that occurred. */ void handleEvent(Event event); }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy