T
- valuepublic final class ExtensibleBundleTracker<T> extends org.osgi.util.tracker.BundleTracker<Future<T>>
Primary customizer may return tracking object, which will be passed to it
during invocation of
BundleTrackerCustomizer.removedBundle(Bundle, BundleEvent, Object)
This extender modifies behavior to not leak platform thread in
BundleTrackerCustomizer.addingBundle(Bundle, BundleEvent)
but deliver
this event from its own single threaded executor.
If bundle is removed before event for adding bundle was executed, that event is cancelled. If addingBundle event is currently in progress or was already executed, platform thread is block until addingBundle finishes so bundle could be removed correctly in platform thread.
Method
BundleTrackerCustomizer.removedBundle(Bundle, BundleEvent, Object)
is
never invoked on registered trackers.
Constructor and Description |
---|
ExtensibleBundleTracker(org.osgi.framework.BundleContext context,
org.osgi.util.tracker.BundleTrackerCustomizer<T> primaryBundleTrackerCustomizer,
org.osgi.util.tracker.BundleTrackerCustomizer<?>... additionalBundleTrackerCustomizers) |
ExtensibleBundleTracker(org.osgi.framework.BundleContext context,
int bundleState,
org.osgi.util.tracker.BundleTrackerCustomizer<T> primaryBundleTrackerCustomizer,
org.osgi.util.tracker.BundleTrackerCustomizer<?>... additionalBundleTrackerCustomizers) |
Modifier and Type | Method and Description |
---|---|
Future<T> |
addingBundle(org.osgi.framework.Bundle bundle,
org.osgi.framework.BundleEvent event) |
void |
modifiedBundle(org.osgi.framework.Bundle bundle,
org.osgi.framework.BundleEvent event,
Future<T> object) |
void |
removedBundle(org.osgi.framework.Bundle bundle,
org.osgi.framework.BundleEvent event,
Future<T> object) |
public ExtensibleBundleTracker(org.osgi.framework.BundleContext context, org.osgi.util.tracker.BundleTrackerCustomizer<T> primaryBundleTrackerCustomizer, org.osgi.util.tracker.BundleTrackerCustomizer<?>... additionalBundleTrackerCustomizers)
public ExtensibleBundleTracker(org.osgi.framework.BundleContext context, int bundleState, org.osgi.util.tracker.BundleTrackerCustomizer<T> primaryBundleTrackerCustomizer, org.osgi.util.tracker.BundleTrackerCustomizer<?>... additionalBundleTrackerCustomizers)
public Future<T> addingBundle(org.osgi.framework.Bundle bundle, org.osgi.framework.BundleEvent event)
public void modifiedBundle(org.osgi.framework.Bundle bundle, org.osgi.framework.BundleEvent event, Future<T> object)
Copyright © 2019 OpenDaylight. All rights reserved.