blob: 7a17f84c9e263ea6365f53177b9b24e0b848aa4a [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>
<meta http-equiv="Content-Type" content="text/html" charset="UTF-8">
<title>AxisServiceTracker (Apache Axis2)</title>
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="AxisServiceTracker (Apache Axis2)";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!-- -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><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="class-use/AxisServiceTracker.html">Use</a></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/axis2/transport/base/tracker/AxisServiceFilter.html" title="interface in org.apache.axis2.transport.base.tracker"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../../../org/apache/axis2/transport/base/tracker/AxisServiceTrackerListener.html" title="interface in org.apache.axis2.transport.base.tracker"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/axis2/transport/base/tracker/AxisServiceTracker.html" target="_top">Frames</a></li>
<li><a href="AxisServiceTracker.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../../allclasses-noframe.html">All 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>Field&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>Field&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.axis2.transport.base.tracker</div>
<h2 title="Class AxisServiceTracker" class="title">Class AxisServiceTracker</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>org.apache.axis2.transport.base.tracker.AxisServiceTracker</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public class <span class="strong">AxisServiceTracker</span>
extends <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
<div class="block"><p>Tracks services deployed in a given <a href="../../../../../../org/apache/axis2/engine/AxisConfiguration.html" title="class in org.apache.axis2.engine"><code>AxisConfiguration</code></a>.
The tracker is configured with references to three objects:</p>
<ol>
<li>An <a href="../../../../../../org/apache/axis2/engine/AxisConfiguration.html" title="class in org.apache.axis2.engine"><code>AxisConfiguration</code></a> to watch.</li>
<li>An <a href="../../../../../../org/apache/axis2/transport/base/tracker/AxisServiceFilter.html" title="interface in org.apache.axis2.transport.base.tracker"><code>AxisServiceFilter</code></a> restricting the services to track.</li>
<li>An <a href="../../../../../../org/apache/axis2/transport/base/tracker/AxisServiceTrackerListener.html" title="interface in org.apache.axis2.transport.base.tracker"><code>AxisServiceTrackerListener</code></a> receiving tracking events.</li>
</ol>
<p>An instance of this class maintains an up-to-date list of services
satisfying all of the following criteria:</p>
<ol>
<li>The service is deployed in the given <a href="../../../../../../org/apache/axis2/engine/AxisConfiguration.html" title="class in org.apache.axis2.engine"><code>AxisConfiguration</code></a>.</li>
<li>The service is started, i.e. <a href="../../../../../../org/apache/axis2/description/AxisService.html#isActive()"><code>AxisService.isActive()</code></a> returns true.</li>
<li>The service matches the criteria specified by the given
<a href="../../../../../../org/apache/axis2/transport/base/tracker/AxisServiceFilter.html" title="interface in org.apache.axis2.transport.base.tracker"><code>AxisServiceFilter</code></a> instance.</li>
</ol>
<p>Whenever a service appears on the list, the tracker will call
<a href="../../../../../../org/apache/axis2/transport/base/tracker/AxisServiceTrackerListener.html#serviceAdded(org.apache.axis2.description.AxisService)"><code>AxisServiceTrackerListener.serviceAdded(AxisService)</code></a>. When a service disappears, it
will call <a href="../../../../../../org/apache/axis2/transport/base/tracker/AxisServiceTrackerListener.html#serviceRemoved(org.apache.axis2.description.AxisService)"><code>AxisServiceTrackerListener.serviceRemoved(AxisService)</code></a>.</p>
<p>When the tracker is created, it is initially in the stopped state. In this state no
events will be sent to the listener. It can be started using <a href="../../../../../../org/apache/axis2/transport/base/tracker/AxisServiceTracker.html#start()"><code>start()</code></a> and stopped again
using <a href="../../../../../../org/apache/axis2/transport/base/tracker/AxisServiceTracker.html#stop()"><code>stop()</code></a>. The tracker list is defined to be empty when the tracker is in the
stopped state. This implies that a call to <a href="../../../../../../org/apache/axis2/transport/base/tracker/AxisServiceTracker.html#start()"><code>start()</code></a> will generate
<a href="../../../../../../org/apache/axis2/transport/base/tracker/AxisServiceTrackerListener.html#serviceAdded(org.apache.axis2.description.AxisService)"><code>AxisServiceTrackerListener.serviceAdded(AxisService)</code></a> events for all services that meet
the above criteria at that point in time. In the same way, <a href="../../../../../../org/apache/axis2/transport/base/tracker/AxisServiceTracker.html#stop()"><code>stop()</code></a> will generate
<a href="../../../../../../org/apache/axis2/transport/base/tracker/AxisServiceTrackerListener.html#serviceRemoved(org.apache.axis2.description.AxisService)"><code>AxisServiceTrackerListener.serviceRemoved(AxisService)</code></a> events for the current entries
in the list.</p>
<p>As a corollary the tracker guarantees that during a complete lifecycle (start-stop),
there will be exactly one <a href="../../../../../../org/apache/axis2/transport/base/tracker/AxisServiceTrackerListener.html#serviceRemoved(org.apache.axis2.description.AxisService)"><code>AxisServiceTrackerListener.serviceRemoved(AxisService)</code></a> event
for every <a href="../../../../../../org/apache/axis2/transport/base/tracker/AxisServiceTrackerListener.html#serviceAdded(org.apache.axis2.description.AxisService)"><code>AxisServiceTrackerListener.serviceAdded(AxisService)</code></a> event and vice-versa.
This property is important when the tracker is used to allocate resources for a dynamic set
of services.</p>
<h2>Limitations</h2>
<p>The tracker is not able to detect property changes on services. E.g. if a service initially
matches the filter criteria, but later changes so that it doesn't match the criteria any more,
the tracker will not be able to detect this and the service will not be removed from the tracker
list.</p></div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="overviewSummary" 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><strong><a href="../../../../../../org/apache/axis2/transport/base/tracker/AxisServiceTracker.html#AxisServiceTracker(org.apache.axis2.engine.AxisConfiguration, org.apache.axis2.transport.base.tracker.AxisServiceFilter, org.apache.axis2.transport.base.tracker.AxisServiceTrackerListener)">AxisServiceTracker</a></strong>(<a href="../../../../../../org/apache/axis2/engine/AxisConfiguration.html" title="class in org.apache.axis2.engine">AxisConfiguration</a>&nbsp;config,
<a href="../../../../../../org/apache/axis2/transport/base/tracker/AxisServiceFilter.html" title="interface in org.apache.axis2.transport.base.tracker">AxisServiceFilter</a>&nbsp;filter,
<a href="../../../../../../org/apache/axis2/transport/base/tracker/AxisServiceTrackerListener.html" title="interface in org.apache.axis2.transport.base.tracker">AxisServiceTrackerListener</a>&nbsp;listener)</code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method_summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/axis2/transport/base/tracker/AxisServiceTracker.html#isStarted()">isStarted</a></strong>()</code>
<div class="block">Check whether the tracker is started.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/axis2/transport/base/tracker/AxisServiceTracker.html#start()">start</a></strong>()</code>
<div class="block">Start the tracker.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/axis2/transport/base/tracker/AxisServiceTracker.html#stop()">stop</a></strong>()</code>
<div class="block">Stop the tracker.</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.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="AxisServiceTracker(org.apache.axis2.engine.AxisConfiguration, org.apache.axis2.transport.base.tracker.AxisServiceFilter, org.apache.axis2.transport.base.tracker.AxisServiceTrackerListener)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>AxisServiceTracker</h4>
<pre>public&nbsp;AxisServiceTracker(<a href="../../../../../../org/apache/axis2/engine/AxisConfiguration.html" title="class in org.apache.axis2.engine">AxisConfiguration</a>&nbsp;config,
<a href="../../../../../../org/apache/axis2/transport/base/tracker/AxisServiceFilter.html" title="interface in org.apache.axis2.transport.base.tracker">AxisServiceFilter</a>&nbsp;filter,
<a href="../../../../../../org/apache/axis2/transport/base/tracker/AxisServiceTrackerListener.html" title="interface in org.apache.axis2.transport.base.tracker">AxisServiceTrackerListener</a>&nbsp;listener)</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method_detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="isStarted()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isStarted</h4>
<pre>public&nbsp;boolean&nbsp;isStarted()</pre>
<div class="block">Check whether the tracker is started.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd><code>true</code> if the tracker is started</dd></dl>
</li>
</ul>
<a name="start()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>start</h4>
<pre>public&nbsp;void&nbsp;start()</pre>
<div class="block">Start the tracker.</div>
<dl><dt><span class="strong">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</a></code> - if the tracker has already been started</dd></dl>
</li>
</ul>
<a name="stop()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>stop</h4>
<pre>public&nbsp;void&nbsp;stop()</pre>
<div class="block">Stop the tracker.</div>
<dl><dt><span class="strong">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</a></code> - if the tracker is not started</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><a href="#skip-navbar_bottom" title="Skip navigation links"></a><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="class-use/AxisServiceTracker.html">Use</a></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/axis2/transport/base/tracker/AxisServiceFilter.html" title="interface in org.apache.axis2.transport.base.tracker"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../../../org/apache/axis2/transport/base/tracker/AxisServiceTrackerListener.html" title="interface in org.apache.axis2.transport.base.tracker"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/axis2/transport/base/tracker/AxisServiceTracker.html" target="_top">Frames</a></li>
<li><a href="AxisServiceTracker.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../../allclasses-noframe.html">All 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>Field&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>Field&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 ======= -->
<p class="legalCopy"><small>Copyright &copy; <a href="https://www.apache.org/">The Apache Software Foundation</a>. All Rights Reserved.</small></p>
</body>
</html>