Package org.osgi.framework

# Interface SynchronousBundleListener

All Superinterfaces:
  `BundleListener`, `EventListener`

Functional Interface:
  This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.

@ConsumerType @FunctionalInterface 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`