| /* |
| * Copyright (c) OSGi Alliance (2008, 2009). 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.blueprint.container; |
| |
| /** |
| * A <code>BlueprintEvent</code> Listener. |
| * |
| * <p> |
| * To receive Blueprint Events, a bundle must register a Blueprint Listener |
| * service. |
| * |
| * After a Blueprint Listener is registered, the Blueprint extender must |
| * synchronously send to this Blueprint Listener the last Blueprint Event for |
| * each ready Blueprint bundle managed by this extender. This replay of |
| * Blueprint Events is designed so that the new Blueprint Listener can be |
| * informed of the state of each Blueprint bundle. Blueprint Events sent during |
| * this replay will have the {@link BlueprintEvent#isReplay() isReplay()} flag |
| * set. The Blueprint extender must ensure that this replay phase does not |
| * interfere with new Blueprint Events so that the chronological order of all |
| * Blueprint Events received by the Blueprint Listener is preserved. If the last |
| * Blueprint Event for a given Blueprint bundle is |
| * {@link BlueprintEvent#DESTROYED DESTROYED}, the extender must not send it |
| * during this replay phase. |
| * |
| * @see BlueprintEvent |
| * @ThreadSafe |
| * @version $Revision: 792499 $ |
| */ |
| public interface BlueprintListener { |
| |
| /** |
| * Receives notifications of a Blueprint Event. |
| * |
| * Implementers should quickly process the event and return. |
| * |
| * @param event The {@link BlueprintEvent}. |
| */ |
| void blueprintEvent(BlueprintEvent event); |
| } |