The {@code BundleTracker} class simplifies tracking bundles much like the{@code ServiceTracker} simplifies tracking services.
A {@code BundleTracker} is constructed with state criteria and a{@code BundleTrackerCustomizer} object. A {@code BundleTracker} can use the{@code BundleTrackerCustomizer} to select which bundles are tracked and tocreate a customized object to be tracked with the bundle. The {@code BundleTracker} can then be opened to begin tracking all bundles whosestate matches the specified state criteria.
The {@code getBundles} method can be called to get the {@code Bundle} objectsof the bundles being tracked. The {@code getObject} method can be called toget the customized object for a tracked bundle.
The {@code BundleTracker} class is thread-safe. It does not call a{@code BundleTrackerCustomizer} while holding any locks.{@code BundleTrackerCustomizer} implementations must also be thread-safe.
@param < T> The type of the tracked object.
@ThreadSafe
@author $Id: 9a1b57568a8be735292700584f4eb936fc80f2ff $
@since 1.4