blob: 93ab953eb8a91d1ea8763675637eb872a90c381a [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_191) on Sun Dec 23 12:06:05 CET 2018 -->
<title>ServiceTracker</title>
<meta name="date" content="2018-12-23">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="ServiceTracker";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/felix/dm/tracker/BundleTrackerCustomizer.html" title="interface in org.apache.felix.dm.tracker"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/felix/dm/tracker/ServiceTrackerCustomizer.html" title="interface in org.apache.felix.dm.tracker"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/felix/dm/tracker/ServiceTracker.html" target="_top">Frames</a></li>
<li><a href="ServiceTracker.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.felix.dm.tracker</div>
<h2 title="Class ServiceTracker" class="title">Class ServiceTracker</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>org.apache.felix.dm.tracker.ServiceTracker</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="../../../../../org/apache/felix/dm/tracker/ServiceTrackerCustomizer.html" title="interface in org.apache.felix.dm.tracker">ServiceTrackerCustomizer</a></dd>
</dl>
<hr>
<br>
<pre>public class <span class="typeNameLabel">ServiceTracker</span>
extends java.lang.Object
implements <a href="../../../../../org/apache/felix/dm/tracker/ServiceTrackerCustomizer.html" title="interface in org.apache.felix.dm.tracker">ServiceTrackerCustomizer</a></pre>
<div class="block">The <code>ServiceTracker</code> class simplifies using services from the
Framework's service registry.
<p>
A <code>ServiceTracker</code> object is constructed with search criteria and
a <code>ServiceTrackerCustomizer</code> object. A <code>ServiceTracker</code>
can use a <code>ServiceTrackerCustomizer</code> to customize the service
objects to be tracked. The <code>ServiceTracker</code> can then be opened to
begin tracking all services in the Framework's service registry that match
the specified search criteria. The <code>ServiceTracker</code> correctly
handles all of the details of listening to <code>ServiceEvent</code>s and
getting and ungetting services.
<p>
The <code>getServiceReferences</code> method can be called to get references
to the services being tracked. The <code>getService</code> and
<code>getServices</code> methods can be called to get the service objects for
the tracked service.
<p>
The <code>ServiceTracker</code> class is thread-safe. It does not call a
<code>ServiceTrackerCustomizer</code> while holding any locks.
<code>ServiceTrackerCustomizer</code> implementations must also be
thread-safe.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected BundleContext</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/tracker/ServiceTracker.html#context">context</a></span></code>
<div class="block">The Bundle Context used by this <code>ServiceTracker</code>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected Filter</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/tracker/ServiceTracker.html#filter">filter</a></span></code>
<div class="block">The Filter used by this <code>ServiceTracker</code> which specifies the
search criteria for the services to track.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/tracker/ServiceTracker.html#m_trackAllAspects">m_trackAllAspects</a></span></code>
<div class="block">Flag that gets set when opening the tracker, determines if the tracker should
track all aspects or just the highest ranked ones.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/tracker/ServiceTracker.html#ServiceTracker-BundleContext-Filter-org.apache.felix.dm.tracker.ServiceTrackerCustomizer-">ServiceTracker</a></span>(BundleContext&nbsp;context,
Filter&nbsp;filter,
<a href="../../../../../org/apache/felix/dm/tracker/ServiceTrackerCustomizer.html" title="interface in org.apache.felix.dm.tracker">ServiceTrackerCustomizer</a>&nbsp;customizer)</code>
<div class="block">Create a <code>ServiceTracker</code> on the specified <code>Filter</code>
object.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/tracker/ServiceTracker.html#ServiceTracker-BundleContext-ServiceReference-org.apache.felix.dm.tracker.ServiceTrackerCustomizer-">ServiceTracker</a></span>(BundleContext&nbsp;context,
ServiceReference&nbsp;reference,
<a href="../../../../../org/apache/felix/dm/tracker/ServiceTrackerCustomizer.html" title="interface in org.apache.felix.dm.tracker">ServiceTrackerCustomizer</a>&nbsp;customizer)</code>
<div class="block">Create a <code>ServiceTracker</code> on the specified
<code>ServiceReference</code>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/tracker/ServiceTracker.html#ServiceTracker-BundleContext-java.lang.String-org.apache.felix.dm.tracker.ServiceTrackerCustomizer-">ServiceTracker</a></span>(BundleContext&nbsp;context,
java.lang.String&nbsp;clazz,
<a href="../../../../../org/apache/felix/dm/tracker/ServiceTrackerCustomizer.html" title="interface in org.apache.felix.dm.tracker">ServiceTrackerCustomizer</a>&nbsp;customizer)</code>
<div class="block">Create a <code>ServiceTracker</code> on the specified class name.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/tracker/ServiceTracker.html#addedService-ServiceReference-java.lang.Object-">addedService</a></span>(ServiceReference&nbsp;reference,
java.lang.Object&nbsp;service)</code>
<div class="block">marrs: A service has been added to the ServiceTracker.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>java.lang.Object</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/tracker/ServiceTracker.html#addingService-ServiceReference-">addingService</a></span>(ServiceReference&nbsp;reference)</code>
<div class="block">Default implementation of the
<code>ServiceTrackerCustomizer.addingService</code> method.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/tracker/ServiceTracker.html#close--">close</a></span>()</code>
<div class="block">Close this <code>ServiceTracker</code>.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>java.lang.Object</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/tracker/ServiceTracker.html#getService--">getService</a></span>()</code>
<div class="block">Returns a service object for one of the services being tracked by this
<code>ServiceTracker</code>.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>java.lang.Object</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/tracker/ServiceTracker.html#getService-ServiceReference-">getService</a></span>(ServiceReference&nbsp;reference)</code>
<div class="block">Returns the service object for the specified
<code>ServiceReference</code> if the specified referenced service is
being tracked by this <code>ServiceTracker</code>.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>ServiceReference</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/tracker/ServiceTracker.html#getServiceReference--">getServiceReference</a></span>()</code>
<div class="block">Returns a <code>ServiceReference</code> for one of the services being
tracked by this <code>ServiceTracker</code>.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>ServiceReference[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/tracker/ServiceTracker.html#getServiceReferences--">getServiceReferences</a></span>()</code>
<div class="block">Return an array of <code>ServiceReference</code>s for all services being
tracked by this <code>ServiceTracker</code>.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>java.lang.Object[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/tracker/ServiceTracker.html#getServices--">getServices</a></span>()</code>
<div class="block">Return an array of service objects for all services being tracked by this
<code>ServiceTracker</code>.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/tracker/ServiceTracker.html#getTrackingCount--">getTrackingCount</a></span>()</code>
<div class="block">Returns the tracking count for this <code>ServiceTracker</code>.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/tracker/ServiceTracker.html#hasReference--">hasReference</a></span>()</code>
<div class="block">Returns a boolean indicating whether this <code>ServiceTracker</code> is tracking any services.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/tracker/ServiceTracker.html#modifiedService-ServiceReference-java.lang.Object-">modifiedService</a></span>(ServiceReference&nbsp;reference,
java.lang.Object&nbsp;service)</code>
<div class="block">Default implementation of the
<code>ServiceTrackerCustomizer.modifiedService</code> method.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/tracker/ServiceTracker.html#open--">open</a></span>()</code>
<div class="block">Open this <code>ServiceTracker</code> and begin tracking services.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/tracker/ServiceTracker.html#open-boolean-">open</a></span>(boolean&nbsp;trackAllServices)</code>
<div class="block">Open this <code>ServiceTracker</code> and begin tracking services.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/tracker/ServiceTracker.html#open-boolean-boolean-">open</a></span>(boolean&nbsp;trackAllServices,
boolean&nbsp;trackAllAspects)</code>
<div class="block">Open this <code>ServiceTracker</code> and begin tracking services.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/tracker/ServiceTracker.html#remove-ServiceReference-">remove</a></span>(ServiceReference&nbsp;reference)</code>
<div class="block">Remove a service from this <code>ServiceTracker</code>.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/tracker/ServiceTracker.html#removedService-ServiceReference-java.lang.Object-">removedService</a></span>(ServiceReference&nbsp;reference,
java.lang.Object&nbsp;service)</code>
<div class="block">Default implementation of the
<code>ServiceTrackerCustomizer.removedService</code> method.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/tracker/ServiceTracker.html#setDebug-java.lang.String-">setDebug</a></span>(java.lang.String&nbsp;debugKey)</code>&nbsp;</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/tracker/ServiceTracker.html#size--">size</a></span>()</code>
<div class="block">Return the number of services being tracked by this
<code>ServiceTracker</code>.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/tracker/ServiceTracker.html#swappedService-ServiceReference-java.lang.Object-ServiceReference-java.lang.Object-">swappedService</a></span>(ServiceReference&nbsp;reference,
java.lang.Object&nbsp;service,
ServiceReference&nbsp;newReference,
java.lang.Object&nbsp;newService)</code>
<div class="block">A service tracked by the <code>ServiceTracker</code> has an aspect service
added or removed for a tracked service.</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>java.lang.Object</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/felix/dm/tracker/ServiceTracker.html#waitForService-long-">waitForService</a></span>(long&nbsp;timeout)</code>
<div class="block">Wait for at least one service to be tracked by this
<code>ServiceTracker</code>.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a name="context">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>context</h4>
<pre>protected final&nbsp;BundleContext context</pre>
<div class="block">The Bundle Context used by this <code>ServiceTracker</code>.</div>
</li>
</ul>
<a name="filter">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>filter</h4>
<pre>protected final&nbsp;Filter filter</pre>
<div class="block">The Filter used by this <code>ServiceTracker</code> which specifies the
search criteria for the services to track.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.1</dd>
</dl>
</li>
</ul>
<a name="m_trackAllAspects">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>m_trackAllAspects</h4>
<pre>public&nbsp;boolean m_trackAllAspects</pre>
<div class="block">Flag that gets set when opening the tracker, determines if the tracker should
track all aspects or just the highest ranked ones.</div>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="ServiceTracker-BundleContext-ServiceReference-org.apache.felix.dm.tracker.ServiceTrackerCustomizer-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ServiceTracker</h4>
<pre>public&nbsp;ServiceTracker(BundleContext&nbsp;context,
ServiceReference&nbsp;reference,
<a href="../../../../../org/apache/felix/dm/tracker/ServiceTrackerCustomizer.html" title="interface in org.apache.felix.dm.tracker">ServiceTrackerCustomizer</a>&nbsp;customizer)</pre>
<div class="block">Create a <code>ServiceTracker</code> on the specified
<code>ServiceReference</code>.
<p>
The service referenced by the specified <code>ServiceReference</code>
will be tracked by this <code>ServiceTracker</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>context</code> - The <code>BundleContext</code> against which the tracking
is done.</dd>
<dd><code>reference</code> - The <code>ServiceReference</code> for the service to be
tracked.</dd>
<dd><code>customizer</code> - The customizer object to call when services are added,
modified, or removed in this <code>ServiceTracker</code>. If
customizer is <code>null</code>, then this
<code>ServiceTracker</code> will be used as the
<code>ServiceTrackerCustomizer</code> and this
<code>ServiceTracker</code> will call the
<code>ServiceTrackerCustomizer</code> methods on itself.</dd>
</dl>
</li>
</ul>
<a name="ServiceTracker-BundleContext-java.lang.String-org.apache.felix.dm.tracker.ServiceTrackerCustomizer-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ServiceTracker</h4>
<pre>public&nbsp;ServiceTracker(BundleContext&nbsp;context,
java.lang.String&nbsp;clazz,
<a href="../../../../../org/apache/felix/dm/tracker/ServiceTrackerCustomizer.html" title="interface in org.apache.felix.dm.tracker">ServiceTrackerCustomizer</a>&nbsp;customizer)</pre>
<div class="block">Create a <code>ServiceTracker</code> on the specified class name.
<p>
Services registered under the specified class name will be tracked by
this <code>ServiceTracker</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>context</code> - The <code>BundleContext</code> against which the tracking
is done.</dd>
<dd><code>clazz</code> - The class name of the services to be tracked.</dd>
<dd><code>customizer</code> - The customizer object to call when services are added,
modified, or removed in this <code>ServiceTracker</code>. If
customizer is <code>null</code>, then this
<code>ServiceTracker</code> will be used as the
<code>ServiceTrackerCustomizer</code> and this
<code>ServiceTracker</code> will call the
<code>ServiceTrackerCustomizer</code> methods on itself.</dd>
</dl>
</li>
</ul>
<a name="ServiceTracker-BundleContext-Filter-org.apache.felix.dm.tracker.ServiceTrackerCustomizer-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>ServiceTracker</h4>
<pre>public&nbsp;ServiceTracker(BundleContext&nbsp;context,
Filter&nbsp;filter,
<a href="../../../../../org/apache/felix/dm/tracker/ServiceTrackerCustomizer.html" title="interface in org.apache.felix.dm.tracker">ServiceTrackerCustomizer</a>&nbsp;customizer)</pre>
<div class="block">Create a <code>ServiceTracker</code> on the specified <code>Filter</code>
object.
<p>
Services which match the specified <code>Filter</code> object will be
tracked by this <code>ServiceTracker</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>context</code> - The <code>BundleContext</code> against which the tracking
is done.</dd>
<dd><code>filter</code> - The <code>Filter</code> to select the services to be
tracked.</dd>
<dd><code>customizer</code> - The customizer object to call when services are added,
modified, or removed in this <code>ServiceTracker</code>. If
customizer is null, then this <code>ServiceTracker</code> will be
used as the <code>ServiceTrackerCustomizer</code> and this
<code>ServiceTracker</code> will call the
<code>ServiceTrackerCustomizer</code> methods on itself.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.1</dd>
</dl>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="setDebug-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setDebug</h4>
<pre>public&nbsp;void&nbsp;setDebug(java.lang.String&nbsp;debugKey)</pre>
</li>
</ul>
<a name="open--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>open</h4>
<pre>public&nbsp;void&nbsp;open()</pre>
<div class="block">Open this <code>ServiceTracker</code> and begin tracking services.
<p>
This implementation calls <code>open(false)</code>.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalStateException</code> - If the <code>BundleContext</code>
with which this <code>ServiceTracker</code> was created is no
longer valid.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/apache/felix/dm/tracker/ServiceTracker.html#open-boolean-"><code>open(boolean)</code></a></dd>
</dl>
</li>
</ul>
<a name="open-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>open</h4>
<pre>public&nbsp;void&nbsp;open(boolean&nbsp;trackAllServices)</pre>
<div class="block">Open this <code>ServiceTracker</code> and begin tracking services.
<p>
Services which match the search criteria specified when this
<code>ServiceTracker</code> was created are now tracked by this
<code>ServiceTracker</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>trackAllServices</code> - If <code>true</code>, then this
<code>ServiceTracker</code> will track all matching services
regardless of class loader accessibility. If <code>false</code>,
then this <code>ServiceTracker</code> will only track matching
services which are class loader accessible to the bundle whose
<code>BundleContext</code> is used by this
<code>ServiceTracker</code>.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalStateException</code> - If the <code>BundleContext</code>
with which this <code>ServiceTracker</code> was created is no
longer valid.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.3</dd>
</dl>
</li>
</ul>
<a name="open-boolean-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>open</h4>
<pre>public&nbsp;void&nbsp;open(boolean&nbsp;trackAllServices,
boolean&nbsp;trackAllAspects)</pre>
<div class="block">Open this <code>ServiceTracker</code> and begin tracking services.
<p>
Services which match the search criteria specified when this
<code>ServiceTracker</code> was created are now tracked by this
<code>ServiceTracker</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>trackAllServices</code> - If <code>true</code>, then this
<code>ServiceTracker</code> will track all matching services
regardless of class loader accessibility. If <code>false</code>,
then this <code>ServiceTracker</code> will only track matching
services which are class loader accessible to the bundle whose
<code>BundleContext</code> is used by this
<code>ServiceTracker</code>.</dd>
<dd><code>trackAllAspects</code> - If <code>true</code> then this
<code>ServiceTracker</code> will track all aspects regardless
of their rank. If <code>false</code> only the highest ranked
aspects (or the original service if there are no aspects) will
be tracked. The latter is the default.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalStateException</code> - If the <code>BundleContext</code>
with which this <code>ServiceTracker</code> was created is no
longer valid.</dd>
</dl>
</li>
</ul>
<a name="close--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>close</h4>
<pre>public&nbsp;void&nbsp;close()</pre>
<div class="block">Close this <code>ServiceTracker</code>.
<p>
This method should be called when this <code>ServiceTracker</code> should
end the tracking of services.
<p>
This implementation calls <a href="../../../../../org/apache/felix/dm/tracker/ServiceTracker.html#getServiceReferences--"><code>getServiceReferences()</code></a> to get the list
of tracked services to remove.</div>
</li>
</ul>
<a name="addingService-ServiceReference-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addingService</h4>
<pre>public&nbsp;java.lang.Object&nbsp;addingService(ServiceReference&nbsp;reference)</pre>
<div class="block">Default implementation of the
<code>ServiceTrackerCustomizer.addingService</code> method.
<p>
This method is only called when this <code>ServiceTracker</code> has been
constructed with a <code>null ServiceTrackerCustomizer</code> argument.
<p>
This implementation returns the result of calling <code>getService</code>
on the <code>BundleContext</code> with which this
<code>ServiceTracker</code> was created passing the specified
<code>ServiceReference</code>.
<p>
This method can be overridden in a subclass to customize the service
object to be tracked for the service being added. In that case, take care
not to rely on the default implementation of
<a href="../../../../../org/apache/felix/dm/tracker/ServiceTracker.html#removedService-ServiceReference-java.lang.Object-"><code>removedService</code></a> to unget
the service.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/felix/dm/tracker/ServiceTrackerCustomizer.html#addingService-ServiceReference-">addingService</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/felix/dm/tracker/ServiceTrackerCustomizer.html" title="interface in org.apache.felix.dm.tracker">ServiceTrackerCustomizer</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>reference</code> - The reference to the service being added to this
<code>ServiceTracker</code>.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The service object to be tracked for the service added to this
<code>ServiceTracker</code>.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/apache/felix/dm/tracker/ServiceTrackerCustomizer.html#addingService-ServiceReference-"><code>ServiceTrackerCustomizer.addingService(ServiceReference)</code></a></dd>
</dl>
</li>
</ul>
<a name="addedService-ServiceReference-java.lang.Object-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addedService</h4>
<pre>public&nbsp;void&nbsp;addedService(ServiceReference&nbsp;reference,
java.lang.Object&nbsp;service)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/felix/dm/tracker/ServiceTrackerCustomizer.html#addedService-ServiceReference-java.lang.Object-">ServiceTrackerCustomizer</a></code></span></div>
<div class="block">marrs: A service has been added to the ServiceTracker.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/felix/dm/tracker/ServiceTrackerCustomizer.html#addedService-ServiceReference-java.lang.Object-">addedService</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/felix/dm/tracker/ServiceTrackerCustomizer.html" title="interface in org.apache.felix.dm.tracker">ServiceTrackerCustomizer</a></code></dd>
</dl>
</li>
</ul>
<a name="modifiedService-ServiceReference-java.lang.Object-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>modifiedService</h4>
<pre>public&nbsp;void&nbsp;modifiedService(ServiceReference&nbsp;reference,
java.lang.Object&nbsp;service)</pre>
<div class="block">Default implementation of the
<code>ServiceTrackerCustomizer.modifiedService</code> method.
<p>
This method is only called when this <code>ServiceTracker</code> has been
constructed with a <code>null ServiceTrackerCustomizer</code> argument.
<p>
This implementation does nothing.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/felix/dm/tracker/ServiceTrackerCustomizer.html#modifiedService-ServiceReference-java.lang.Object-">modifiedService</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/felix/dm/tracker/ServiceTrackerCustomizer.html" title="interface in org.apache.felix.dm.tracker">ServiceTrackerCustomizer</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>reference</code> - The reference to modified service.</dd>
<dd><code>service</code> - The service object for the modified service.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/apache/felix/dm/tracker/ServiceTrackerCustomizer.html#modifiedService-ServiceReference-java.lang.Object-"><code>ServiceTrackerCustomizer.modifiedService(ServiceReference, Object)</code></a></dd>
</dl>
</li>
</ul>
<a name="removedService-ServiceReference-java.lang.Object-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>removedService</h4>
<pre>public&nbsp;void&nbsp;removedService(ServiceReference&nbsp;reference,
java.lang.Object&nbsp;service)</pre>
<div class="block">Default implementation of the
<code>ServiceTrackerCustomizer.removedService</code> method.
<p>
This method is only called when this <code>ServiceTracker</code> has been
constructed with a <code>null ServiceTrackerCustomizer</code> argument.
<p>
This implementation calls <code>ungetService</code>, on the
<code>BundleContext</code> with which this <code>ServiceTracker</code>
was created, passing the specified <code>ServiceReference</code>.
<p>
This method can be overridden in a subclass. If the default
implementation of <a href="../../../../../org/apache/felix/dm/tracker/ServiceTracker.html#addingService-ServiceReference-"><code>addingService</code></a>
method was used, this method must unget the service.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/felix/dm/tracker/ServiceTrackerCustomizer.html#removedService-ServiceReference-java.lang.Object-">removedService</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/felix/dm/tracker/ServiceTrackerCustomizer.html" title="interface in org.apache.felix.dm.tracker">ServiceTrackerCustomizer</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>reference</code> - The reference to removed service.</dd>
<dd><code>service</code> - The service object for the removed service.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/apache/felix/dm/tracker/ServiceTrackerCustomizer.html#removedService-ServiceReference-java.lang.Object-"><code>ServiceTrackerCustomizer.removedService(ServiceReference, Object)</code></a></dd>
</dl>
</li>
</ul>
<a name="waitForService-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>waitForService</h4>
<pre>public&nbsp;java.lang.Object&nbsp;waitForService(long&nbsp;timeout)
throws java.lang.InterruptedException</pre>
<div class="block">Wait for at least one service to be tracked by this
<code>ServiceTracker</code>. This method will also return when this
<code>ServiceTracker</code> is closed.
<p>
It is strongly recommended that <code>waitForService</code> is not used
during the calling of the <code>BundleActivator</code> methods.
<code>BundleActivator</code> methods are expected to complete in a short
period of time.
<p>
This implementation calls <a href="../../../../../org/apache/felix/dm/tracker/ServiceTracker.html#getService--"><code>getService()</code></a> to determine if a service
is being tracked.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>timeout</code> - The time interval in milliseconds to wait. If zero, the
method will wait indefinitely.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Returns the result of <a href="../../../../../org/apache/felix/dm/tracker/ServiceTracker.html#getService--"><code>getService()</code></a>.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.InterruptedException</code> - If another thread has interrupted the
current thread.</dd>
<dd><code>java.lang.IllegalArgumentException</code> - If the value of timeout is negative.</dd>
</dl>
</li>
</ul>
<a name="getServiceReferences--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getServiceReferences</h4>
<pre>public&nbsp;ServiceReference[]&nbsp;getServiceReferences()</pre>
<div class="block">Return an array of <code>ServiceReference</code>s for all services being
tracked by this <code>ServiceTracker</code>.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Array of <code>ServiceReference</code>s or <code>null</code> if
no services are being tracked.</dd>
</dl>
</li>
</ul>
<a name="hasReference--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hasReference</h4>
<pre>public&nbsp;boolean&nbsp;hasReference()</pre>
<div class="block">Returns a boolean indicating whether this <code>ServiceTracker</code> is tracking any services.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if services are being tracked, false if no services are being tracked.</dd>
</dl>
</li>
</ul>
<a name="getServiceReference--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getServiceReference</h4>
<pre>public&nbsp;ServiceReference&nbsp;getServiceReference()</pre>
<div class="block">Returns a <code>ServiceReference</code> for one of the services being
tracked by this <code>ServiceTracker</code>.
<p>
If multiple services are being tracked, the service with the highest
ranking (as specified in its <code>service.ranking</code> property) is
returned. If there is a tie in ranking, the service with the lowest
service ID (as specified in its <code>service.id</code> property); that
is, the service that was registered first is returned. This is the same
algorithm used by <code>BundleContext.getServiceReference</code>.
<p>
This implementation calls <a href="../../../../../org/apache/felix/dm/tracker/ServiceTracker.html#getServiceReferences--"><code>getServiceReferences()</code></a> to get the list
of references for the tracked services.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A <code>ServiceReference</code> or <code>null</code> if no
services are being tracked.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.1</dd>
</dl>
</li>
</ul>
<a name="getService-ServiceReference-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getService</h4>
<pre>public&nbsp;java.lang.Object&nbsp;getService(ServiceReference&nbsp;reference)</pre>
<div class="block">Returns the service object for the specified
<code>ServiceReference</code> if the specified referenced service is
being tracked by this <code>ServiceTracker</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>reference</code> - The reference to the desired service.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A service object or <code>null</code> if the service referenced
by the specified <code>ServiceReference</code> is not being
tracked.</dd>
</dl>
</li>
</ul>
<a name="getServices--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getServices</h4>
<pre>public&nbsp;java.lang.Object[]&nbsp;getServices()</pre>
<div class="block">Return an array of service objects for all services being tracked by this
<code>ServiceTracker</code>.
<p>
This implementation calls <a href="../../../../../org/apache/felix/dm/tracker/ServiceTracker.html#getServiceReferences--"><code>getServiceReferences()</code></a> to get the list
of references for the tracked services and then calls
<a href="../../../../../org/apache/felix/dm/tracker/ServiceTracker.html#getService-ServiceReference-"><code>getService(ServiceReference)</code></a> for each reference to get the
tracked service object.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>An array of service objects or <code>null</code> if no services
are being tracked.</dd>
</dl>
</li>
</ul>
<a name="getService--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getService</h4>
<pre>public&nbsp;java.lang.Object&nbsp;getService()</pre>
<div class="block">Returns a service object for one of the services being tracked by this
<code>ServiceTracker</code>.
<p>
If any services are being tracked, this implementation returns the result
of calling <code>getService(getServiceReference())</code>.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A service object or <code>null</code> if no services are being
tracked.</dd>
</dl>
</li>
</ul>
<a name="remove-ServiceReference-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>remove</h4>
<pre>public&nbsp;void&nbsp;remove(ServiceReference&nbsp;reference)</pre>
<div class="block">Remove a service from this <code>ServiceTracker</code>.
The specified service will be removed from this
<code>ServiceTracker</code>. If the specified service was being tracked
then the <code>ServiceTrackerCustomizer.removedService</code> method will
be called for that service.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>reference</code> - The reference to the service to be removed.</dd>
</dl>
</li>
</ul>
<a name="size--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>size</h4>
<pre>public&nbsp;int&nbsp;size()</pre>
<div class="block">Return the number of services being tracked by this
<code>ServiceTracker</code>.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The number of services being tracked.</dd>
</dl>
</li>
</ul>
<a name="getTrackingCount--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTrackingCount</h4>
<pre>public&nbsp;int&nbsp;getTrackingCount()</pre>
<div class="block">Returns the tracking count for this <code>ServiceTracker</code>.
The tracking count is initialized to 0 when this
<code>ServiceTracker</code> is opened. Every time a service is added,
modified or removed from this <code>ServiceTracker</code>, the tracking
count is incremented.
<p>
The tracking count can be used to determine if this
<code>ServiceTracker</code> has added, modified or removed a service by
comparing a tracking count value previously collected with the current
tracking count value. If the value has not changed, then no service has
been added, modified or removed from this <code>ServiceTracker</code>
since the previous tracking count was collected.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The tracking count for this <code>ServiceTracker</code> or -1 if
this <code>ServiceTracker</code> is not open.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.2</dd>
</dl>
</li>
</ul>
<a name="swappedService-ServiceReference-java.lang.Object-ServiceReference-java.lang.Object-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>swappedService</h4>
<pre>public&nbsp;void&nbsp;swappedService(ServiceReference&nbsp;reference,
java.lang.Object&nbsp;service,
ServiceReference&nbsp;newReference,
java.lang.Object&nbsp;newService)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/felix/dm/tracker/ServiceTrackerCustomizer.html#swappedService-ServiceReference-java.lang.Object-ServiceReference-java.lang.Object-">ServiceTrackerCustomizer</a></code></span></div>
<div class="block">A service tracked by the <code>ServiceTracker</code> has an aspect service
added or removed for a tracked service.
<p>
This method is called when an aspect service has been either added or removed
for a tracked service. This method will only be called when there's a new
highest ranked service as result of adding or removal of the aspect service.
In this case the previously highest ranked service is 'swapped' for the new
highest ranked service ensuring the client always gets the highest ranked
aspect.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/felix/dm/tracker/ServiceTrackerCustomizer.html#swappedService-ServiceReference-java.lang.Object-ServiceReference-java.lang.Object-">swappedService</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/felix/dm/tracker/ServiceTrackerCustomizer.html" title="interface in org.apache.felix.dm.tracker">ServiceTrackerCustomizer</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>reference</code> - The reference for the old highest ranked service.</dd>
<dd><code>service</code> - The service object for the old highest ranked service.</dd>
<dd><code>newReference</code> - The reference to the new highest ranked service.</dd>
<dd><code>newService</code> - The service object for the new highest ranked service.</dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/felix/dm/tracker/BundleTrackerCustomizer.html" title="interface in org.apache.felix.dm.tracker"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/felix/dm/tracker/ServiceTrackerCustomizer.html" title="interface in org.apache.felix.dm.tracker"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/felix/dm/tracker/ServiceTracker.html" target="_top">Frames</a></li>
<li><a href="ServiceTracker.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>