SynchronousBundleListener
Date: 2016-06-24

org.osgi.framework

## Interface SynchronousBundleListener

- All Superinterfaces:
    BundleListener, java.util.EventListener

      @ConsumerType
      public interface SynchronousBundleListener
      extends BundleListener

  A synchronous `BundleEvent` listener. `SynchronousBundleListener` is a listener interface that may be implemented by a bundle developer. When a `BundleEvent` is fired, it is synchronously delivered to a `SynchronousBundleListener`. The Framework may deliver `BundleEvent` objects to a `SynchronousBundleListener` out of order and may concurrently call and/or reenter a `SynchronousBundleListener`.

  For `BundleEvent` types `STARTED` and `LAZY_ACTIVATION`, the Framework must not hold the referenced bundle's "state change" lock when the `BundleEvent` is delivered to a `SynchronousBundleListener`. For the other `BundleEvent` types, the Framework must hold the referenced bundle's "state change" lock when the `BundleEvent` is delivered to a `SynchronousBundleListener`. A `SynchronousBundleListener` cannot directly call life cycle methods on the referenced bundle when the Framework is holding the referenced bundle's "state change" lock.

  A `SynchronousBundleListener` object is registered with the Framework using the `BundleContext.addBundleListener(BundleListener)` method. `SynchronousBundleListener` objects are called with a `BundleEvent` object when a bundle has been installed, resolved, starting, started, stopping, stopped, updated, unresolved, or uninstalled.

  Unlike normal `BundleListener` objects, `SynchronousBundleListener`s are synchronously called during bundle lifecycle processing. The bundle lifecycle processing will not proceed until all `SynchronousBundleListener`s have completed. `SynchronousBundleListener` objects will be called prior to `BundleListener` objects.

  `AdminPermission[bundle,LISTENER]` is required to add or remove a `SynchronousBundleListener` object.

  Since:
    1.1
  See Also:
    `BundleEvent`

- - ### Method Summary

    - ### Methods inherited from interface org.osgi.framework.BundleListener

      `bundleChanged`