Package org.openhab.core.service
Class AbstractServiceBundleTracker
java.lang.Object
org.osgi.util.tracker.BundleTracker<org.osgi.framework.Bundle>
org.openhab.core.service.AbstractServiceBundleTracker
- All Implemented Interfaces:
ReadyService.ReadyTracker,org.osgi.util.tracker.BundleTrackerCustomizer<org.osgi.framework.Bundle>
@NonNullByDefault
public abstract class AbstractServiceBundleTracker
extends org.osgi.util.tracker.BundleTracker<org.osgi.framework.Bundle>
implements ReadyService.ReadyTracker
The
AbstractServiceBundleTracker tracks a set of bundles (selected isRelevantBundle(Bundle)
and sets the
readyMarker when all registered bundles are active- Author:
- Jan N. Klug - Initial contribution
-
Field Summary
Fields inherited from class org.osgi.util.tracker.BundleTracker
context -
Constructor Summary
ConstructorsConstructorDescriptionAbstractServiceBundleTracker(ReadyService readyService, org.osgi.framework.BundleContext bc, ReadyMarker readyMarker) -
Method Summary
Modifier and TypeMethodDescriptionorg.osgi.framework.BundleaddingBundle(org.osgi.framework.Bundle bundle, @Nullable org.osgi.framework.BundleEvent event) voidprotected abstract booleanisRelevantBundle(org.osgi.framework.Bundle bundle) Decide if a bundle should be tracked by this bundle trackervoidmodifiedBundle(org.osgi.framework.Bundle bundle, @Nullable org.osgi.framework.BundleEvent event, org.osgi.framework.Bundle object) voidonReadyMarkerAdded(ReadyMarker readyMarker) Gets called when a newReadyMarkerwas registered as being "ready".voidonReadyMarkerRemoved(ReadyMarker readyMarker) Gets called when aReadyMarkerwas unregistered.voidremovedBundle(org.osgi.framework.Bundle bundle, @Nullable org.osgi.framework.BundleEvent event, org.osgi.framework.Bundle object) Methods inherited from class org.osgi.util.tracker.BundleTracker
close, getBundles, getObject, getTracked, getTrackingCount, isEmpty, open, remove, size
-
Constructor Details
-
AbstractServiceBundleTracker
public AbstractServiceBundleTracker(ReadyService readyService, org.osgi.framework.BundleContext bc, ReadyMarker readyMarker)
-
-
Method Details
-
deactivate
- Throws:
Exception
-
addingBundle
public org.osgi.framework.Bundle addingBundle(@NonNullByDefault({}) org.osgi.framework.Bundle bundle, @Nullable org.osgi.framework.BundleEvent event) - Specified by:
addingBundlein interfaceorg.osgi.util.tracker.BundleTrackerCustomizer<org.osgi.framework.Bundle>- Overrides:
addingBundlein classorg.osgi.util.tracker.BundleTracker<org.osgi.framework.Bundle>
-
modifiedBundle
public void modifiedBundle(@NonNullByDefault({}) org.osgi.framework.Bundle bundle, @Nullable org.osgi.framework.BundleEvent event, @NonNullByDefault({}) org.osgi.framework.Bundle object) - Specified by:
modifiedBundlein interfaceorg.osgi.util.tracker.BundleTrackerCustomizer<org.osgi.framework.Bundle>- Overrides:
modifiedBundlein classorg.osgi.util.tracker.BundleTracker<org.osgi.framework.Bundle>
-
removedBundle
public void removedBundle(@NonNullByDefault({}) org.osgi.framework.Bundle bundle, @Nullable org.osgi.framework.BundleEvent event, @NonNullByDefault({}) org.osgi.framework.Bundle object) - Specified by:
removedBundlein interfaceorg.osgi.util.tracker.BundleTrackerCustomizer<org.osgi.framework.Bundle>- Overrides:
removedBundlein classorg.osgi.util.tracker.BundleTracker<org.osgi.framework.Bundle>
-
onReadyMarkerAdded
Description copied from interface:ReadyService.ReadyTrackerGets called when a newReadyMarkerwas registered as being "ready".- Specified by:
onReadyMarkerAddedin interfaceReadyService.ReadyTracker- Parameters:
readyMarker-
-
onReadyMarkerRemoved
Description copied from interface:ReadyService.ReadyTrackerGets called when aReadyMarkerwas unregistered.- Specified by:
onReadyMarkerRemovedin interfaceReadyService.ReadyTracker- Parameters:
readyMarker-
-
isRelevantBundle
protected abstract boolean isRelevantBundle(org.osgi.framework.Bundle bundle) Decide if a bundle should be tracked by this bundle tracker- Parameters:
bundle- the bundle- Returns:
trueif the bundle should be considered,falseotherwise
-