blob: 3945946c277fc07e940390020cfbf20dd6b085bc [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<!-- Generated by javadoc (build 1.6.0_13) on Mon Dec 07 14:17:35 IST 2009 -->
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<TITLE>
AxisServiceTracker (Apache Axis2 - Transport - Root 1.0.0 API)
</TITLE>
<META NAME="date" CONTENT="2009-12-07">
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
<SCRIPT type="text/javascript">
function windowTitle()
{
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="AxisServiceTracker (Apache Axis2 - Transport - Root 1.0.0 API)";
}
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>
</HEAD>
<BODY BGCOLOR="white" onload="windowTitle();">
<HR>
<!-- ========= START OF TOP NAVBAR ======= -->
<A NAME="navbar_top"><!-- --></A>
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/AxisServiceTracker.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../../../../org/apache/axis2/transport/base/tracker/AxisServiceFilter.html" title="interface in org.apache.axis2.transport.base.tracker"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../../../org/apache/axis2/transport/base/tracker/AxisServiceTrackerListener.html" title="interface in org.apache.axis2.transport.base.tracker"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../../../../index.html?org/apache/axis2/transport/base/tracker/AxisServiceTracker.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="AxisServiceTracker.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
&nbsp;<SCRIPT type="text/javascript">
<!--
if(window==top) {
document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
}
//-->
</SCRIPT>
<NOSCRIPT>
<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->
<HR>
<!-- ======== START OF CLASS DATA ======== -->
<H2>
<FONT SIZE="-1">
org.apache.axis2.transport.base.tracker</FONT>
<BR>
Class AxisServiceTracker</H2>
<PRE>
java.lang.Object
<IMG SRC="../../../../../../resources/inherit.gif" ALT="extended by "><B>org.apache.axis2.transport.base.tracker.AxisServiceTracker</B>
</PRE>
<HR>
<DL>
<DT><PRE>public class <B>AxisServiceTracker</B><DT>extends java.lang.Object</DL>
</PRE>
<P>
<p>Tracks services deployed in a given <CODE>AxisConfiguration</CODE>.
The tracker is configured with references to three objects:</p>
<ol>
<li>An <CODE>AxisConfiguration</CODE> 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 <CODE>AxisConfiguration</CODE>.</li>
<li>The service is started, i.e. <CODE>AxisService.isActive()</CODE> 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>
<P>
<P>
<HR>
<P>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<A NAME="constructor_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Constructor Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><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></B>(org.apache.axis2.engine.AxisConfiguration&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>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
</TABLE>
&nbsp;
<!-- ========== METHOD SUMMARY =========== -->
<A NAME="method_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Method Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/apache/axis2/transport/base/tracker/AxisServiceTracker.html#isStarted()">isStarted</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Check whether the tracker is started.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/apache/axis2/transport/base/tracker/AxisServiceTracker.html#start()">start</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Start the tracker.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/apache/axis2/transport/base/tracker/AxisServiceTracker.html#stop()">stop</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Stop the tracker.</TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
</TR>
</TABLE>
&nbsp;
<P>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<A NAME="constructor_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Constructor Detail</B></FONT></TH>
</TR>
</TABLE>
<A NAME="AxisServiceTracker(org.apache.axis2.engine.AxisConfiguration, org.apache.axis2.transport.base.tracker.AxisServiceFilter, org.apache.axis2.transport.base.tracker.AxisServiceTrackerListener)"><!-- --></A><H3>
AxisServiceTracker</H3>
<PRE>
public <B>AxisServiceTracker</B>(org.apache.axis2.engine.AxisConfiguration&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>
<DL>
</DL>
<!-- ============ METHOD DETAIL ========== -->
<A NAME="method_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Method Detail</B></FONT></TH>
</TR>
</TABLE>
<A NAME="isStarted()"><!-- --></A><H3>
isStarted</H3>
<PRE>
public boolean <B>isStarted</B>()</PRE>
<DL>
<DD>Check whether the tracker is started.
<P>
<DD><DL>
<DT><B>Returns:</B><DD><code>true</code> if the tracker is started</DL>
</DD>
</DL>
<HR>
<A NAME="start()"><!-- --></A><H3>
start</H3>
<PRE>
public void <B>start</B>()</PRE>
<DL>
<DD>Start the tracker.
<P>
<DD><DL>
<DT><B>Throws:</B>
<DD><CODE>java.lang.IllegalStateException</CODE> - if the tracker has already been started</DL>
</DD>
</DL>
<HR>
<A NAME="stop()"><!-- --></A><H3>
stop</H3>
<PRE>
public void <B>stop</B>()</PRE>
<DL>
<DD>Stop the tracker.
<P>
<DD><DL>
<DT><B>Throws:</B>
<DD><CODE>java.lang.IllegalStateException</CODE> - if the tracker is not started</DL>
</DD>
</DL>
<!-- ========= END OF CLASS DATA ========= -->
<HR>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<A NAME="navbar_bottom"><!-- --></A>
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/AxisServiceTracker.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../../../../org/apache/axis2/transport/base/tracker/AxisServiceFilter.html" title="interface in org.apache.axis2.transport.base.tracker"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../../../org/apache/axis2/transport/base/tracker/AxisServiceTrackerListener.html" title="interface in org.apache.axis2.transport.base.tracker"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../../../../index.html?org/apache/axis2/transport/base/tracker/AxisServiceTracker.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="AxisServiceTracker.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
&nbsp;<SCRIPT type="text/javascript">
<!--
if(window==top) {
document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
}
//-->
</SCRIPT>
<NOSCRIPT>
<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<HR>
Copyright &#169; 2004-2009 <a href="http://www.apache.org/">The Apache Software Foundation</a>. All Rights Reserved.
</BODY>
</HTML>