<!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>LoadDistributorTargetSelector (Apache CXF JavaDoc 3.1.0 API)</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="LoadDistributorTargetSelector (Apache CXF JavaDoc 3.1.0 API)";
    }
//-->
</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/LoadDistributorTargetSelector.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 class="aboutLanguage"><em>Apache CXF API</em></div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../org/apache/cxf/clustering/LoadDistributorFeature.html" title="class in org.apache.cxf.clustering"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../org/apache/cxf/clustering/RandomStrategy.html" title="class in org.apache.cxf.clustering"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/cxf/clustering/LoadDistributorTargetSelector.html" target="_top">Frames</a></li>
<li><a href="LoadDistributorTargetSelector.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><a href="#nested_classes_inherited_from_class_org.apache.cxf.clustering.FailoverTargetSelector">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#fields_inherited_from_class_org.apache.cxf.clustering.FailoverTargetSelector">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>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.cxf.clustering</div>
<h2 title="Class LoadDistributorTargetSelector" class="title">Class LoadDistributorTargetSelector</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="http://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><a href="../../../../org/apache/cxf/endpoint/AbstractConduitSelector.html" title="class in org.apache.cxf.endpoint">org.apache.cxf.endpoint.AbstractConduitSelector</a></li>
<li>
<ul class="inheritance">
<li><a href="../../../../org/apache/cxf/clustering/FailoverTargetSelector.html" title="class in org.apache.cxf.clustering">org.apache.cxf.clustering.FailoverTargetSelector</a></li>
<li>
<ul class="inheritance">
<li>org.apache.cxf.clustering.LoadDistributorTargetSelector</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="http://docs.oracle.com/javase/7/docs/api/java/io/Closeable.html?is-external=true" title="class or interface in java.io">Closeable</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/AutoCloseable.html?is-external=true" title="class or interface in java.lang">AutoCloseable</a>, <a href="../../../../org/apache/cxf/endpoint/ConduitSelector.html" title="interface in org.apache.cxf.endpoint">ConduitSelector</a></dd>
</dl>
<hr>
<br>
<pre>public class <span class="strong">LoadDistributorTargetSelector</span>
extends <a href="../../../../org/apache/cxf/clustering/FailoverTargetSelector.html" title="class in org.apache.cxf.clustering">FailoverTargetSelector</a></pre>
<div class="block">The LoadDistributorTargetSelector attempts to do the same job as the
 FailoverTargetSelector, but to choose an alternate target on every request
 rather than just when a fault occurs.
 The LoadDistributorTargetSelector uses the same FailoverStrategy interface as 
 the FailoverTargetSelector, but has a few significant limitations:
 1. Because the LoadDistributorTargetSelector needs to maintain a list of targets
    between calls it has to obtain that list without reference to a Message.
    Most FailoverStrategy classes can support this for addresses, but it cannot
    be supported for endpoints.
    If the list of targets cannot be obtained without reference to a Message then
    the list will still be obtained but it will be specific to the Message and thus
    discarded after this message has been processed.  As a consequence, if the
    strategy chosen is a simple sequential one the first item in the list will
    be chosen every time.
    Conclusion: Be aware that if you are working with targets that are 
    dependent on the Message the process will be less efficient and that the
    SequentialStrategy will not distribute the load at all.
 2. The AbstractStaticFailoverStrategy base class excludes the 'default' endpoint
    from the list of alternate endpoints.
    If alternate endpoints (as opposed to alternate addresses) are to be used
    you should probably ensure that your FailoverStrategy overrides getAlternateEndpoints
    and calls getEndpoints with acceptCandidatesWithSameAddress = true.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested_class_summary">
<!--   -->
</a>
<h3>Nested Class Summary</h3>
<ul class="blockList">
<li class="blockList"><a name="nested_classes_inherited_from_class_org.apache.cxf.clustering.FailoverTargetSelector">
<!--   -->
</a>
<h3>Nested classes/interfaces inherited from class&nbsp;org.apache.cxf.clustering.<a href="../../../../org/apache/cxf/clustering/FailoverTargetSelector.html" title="class in org.apache.cxf.clustering">FailoverTargetSelector</a></h3>
<code><a href="../../../../org/apache/cxf/clustering/FailoverTargetSelector.InvocationContext.html" title="class in org.apache.cxf.clustering">FailoverTargetSelector.InvocationContext</a>, <a href="../../../../org/apache/cxf/clustering/FailoverTargetSelector.InvocationKey.html" title="class in org.apache.cxf.clustering">FailoverTargetSelector.InvocationKey</a></code></li>
</ul>
</li>
</ul>
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field_summary">
<!--   -->
</a>
<h3>Field Summary</h3>
<ul class="blockList">
<li class="blockList"><a name="fields_inherited_from_class_org.apache.cxf.clustering.FailoverTargetSelector">
<!--   -->
</a>
<h3>Fields inherited from class&nbsp;org.apache.cxf.clustering.<a href="../../../../org/apache/cxf/clustering/FailoverTargetSelector.html" title="class in org.apache.cxf.clustering">FailoverTargetSelector</a></h3>
<code><a href="../../../../org/apache/cxf/clustering/FailoverTargetSelector.html#failoverStrategy">failoverStrategy</a>, <a href="../../../../org/apache/cxf/clustering/FailoverTargetSelector.html#inProgress">inProgress</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="fields_inherited_from_class_org.apache.cxf.endpoint.AbstractConduitSelector">
<!--   -->
</a>
<h3>Fields inherited from class&nbsp;org.apache.cxf.endpoint.<a href="../../../../org/apache/cxf/endpoint/AbstractConduitSelector.html" title="class in org.apache.cxf.endpoint">AbstractConduitSelector</a></h3>
<code><a href="../../../../org/apache/cxf/endpoint/AbstractConduitSelector.html#CONDUIT_COMPARE_FULL_URL">CONDUIT_COMPARE_FULL_URL</a>, <a href="../../../../org/apache/cxf/endpoint/AbstractConduitSelector.html#conduits">conduits</a>, <a href="../../../../org/apache/cxf/endpoint/AbstractConduitSelector.html#endpoint">endpoint</a>, <a href="../../../../org/apache/cxf/endpoint/AbstractConduitSelector.html#KEEP_CONDUIT_ALIVE">KEEP_CONDUIT_ALIVE</a></code></li>
</ul>
</li>
</ul>
<!-- ======== 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/cxf/clustering/LoadDistributorTargetSelector.html#LoadDistributorTargetSelector()">LoadDistributorTargetSelector</a></strong>()</code>
<div class="block">Normal constructor.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><strong><a href="../../../../org/apache/cxf/clustering/LoadDistributorTargetSelector.html#LoadDistributorTargetSelector(org.apache.cxf.transport.Conduit)">LoadDistributorTargetSelector</a></strong>(<a href="../../../../org/apache/cxf/transport/Conduit.html" title="interface in org.apache.cxf.transport">Conduit</a>&nbsp;c)</code>
<div class="block">Constructor, allowing a specific conduit to override normal selection.</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="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>protected <a href="../../../../org/apache/cxf/endpoint/Endpoint.html" title="interface in org.apache.cxf.endpoint">Endpoint</a></code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/cxf/clustering/LoadDistributorTargetSelector.html#getFailoverTarget(org.apache.cxf.message.Exchange,%20org.apache.cxf.clustering.FailoverTargetSelector.InvocationContext)">getFailoverTarget</a></strong>(<a href="../../../../org/apache/cxf/message/Exchange.html" title="interface in org.apache.cxf.message">Exchange</a>&nbsp;exchange,
                 <a href="../../../../org/apache/cxf/clustering/FailoverTargetSelector.InvocationContext.html" title="class in org.apache.cxf.clustering">FailoverTargetSelector.InvocationContext</a>&nbsp;invocation)</code>
<div class="block">Get the failover target endpoint, if a suitable one is available.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected <a href="http://docs.oracle.com/javase/7/docs/api/java/util/logging/Logger.html?is-external=true" title="class or interface in java.util.logging">Logger</a></code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/cxf/clustering/LoadDistributorTargetSelector.html#getLogger()">getLogger</a></strong>()</code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/cxf/clustering/LoadDistributorTargetSelector.html#isFailover()">isFailover</a></strong>()</code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/cxf/clustering/LoadDistributorTargetSelector.html#requiresFailover(org.apache.cxf.message.Exchange)">requiresFailover</a></strong>(<a href="../../../../org/apache/cxf/message/Exchange.html" title="interface in org.apache.cxf.message">Exchange</a>&nbsp;exchange)</code>
<div class="block">Check if the exchange is suitable for a failover.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../org/apache/cxf/transport/Conduit.html" title="interface in org.apache.cxf.transport">Conduit</a></code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/cxf/clustering/LoadDistributorTargetSelector.html#selectConduit(org.apache.cxf.message.Message)">selectConduit</a></strong>(<a href="../../../../org/apache/cxf/message/Message.html" title="interface in org.apache.cxf.message">Message</a>&nbsp;message)</code>
<div class="block">Called when a Conduit is actually required.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/cxf/clustering/LoadDistributorTargetSelector.html#setFailover(boolean)">setFailover</a></strong>(boolean&nbsp;failover)</code>&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_org.apache.cxf.clustering.FailoverTargetSelector">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.cxf.clustering.<a href="../../../../org/apache/cxf/clustering/FailoverTargetSelector.html" title="class in org.apache.cxf.clustering">FailoverTargetSelector</a></h3>
<code><a href="../../../../org/apache/cxf/clustering/FailoverTargetSelector.html#complete(org.apache.cxf.message.Exchange)">complete</a>, <a href="../../../../org/apache/cxf/clustering/FailoverTargetSelector.html#doComplete(org.apache.cxf.message.Exchange)">doComplete</a>, <a href="../../../../org/apache/cxf/clustering/FailoverTargetSelector.html#getDelayBetweenRetries()">getDelayBetweenRetries</a>, <a href="../../../../org/apache/cxf/clustering/FailoverTargetSelector.html#getInvocationContext(org.apache.cxf.clustering.FailoverTargetSelector.InvocationKey)">getInvocationContext</a>, <a href="../../../../org/apache/cxf/clustering/FailoverTargetSelector.html#getStrategy()">getStrategy</a>, <a href="../../../../org/apache/cxf/clustering/FailoverTargetSelector.html#isSupportNotAvailableErrorsOnly()">isSupportNotAvailableErrorsOnly</a>, <a href="../../../../org/apache/cxf/clustering/FailoverTargetSelector.html#onFailure(org.apache.cxf.clustering.FailoverTargetSelector.InvocationContext)">onFailure</a>, <a href="../../../../org/apache/cxf/clustering/FailoverTargetSelector.html#onSuccess(org.apache.cxf.clustering.FailoverTargetSelector.InvocationContext)">onSuccess</a>, <a href="../../../../org/apache/cxf/clustering/FailoverTargetSelector.html#overrideAddressProperty(java.util.Map)">overrideAddressProperty</a>, <a href="../../../../org/apache/cxf/clustering/FailoverTargetSelector.html#overrideAddressProperty(java.util.Map,%20java.lang.String)">overrideAddressProperty</a>, <a href="../../../../org/apache/cxf/clustering/FailoverTargetSelector.html#performFailover(org.apache.cxf.message.Exchange,%20org.apache.cxf.clustering.FailoverTargetSelector.InvocationContext)">performFailover</a>, <a href="../../../../org/apache/cxf/clustering/FailoverTargetSelector.html#prepare(org.apache.cxf.message.Message)">prepare</a>, <a href="../../../../org/apache/cxf/clustering/FailoverTargetSelector.html#replaceEndpointAddressPropertyIfNeeded(org.apache.cxf.message.Message,%20java.lang.String,%20org.apache.cxf.transport.Conduit)">replaceEndpointAddressPropertyIfNeeded</a>, <a href="../../../../org/apache/cxf/clustering/FailoverTargetSelector.html#setOriginalEndpoint(org.apache.cxf.clustering.FailoverTargetSelector.InvocationContext)">setOriginalEndpoint</a>, <a href="../../../../org/apache/cxf/clustering/FailoverTargetSelector.html#setStrategy(org.apache.cxf.clustering.FailoverStrategy)">setStrategy</a>, <a href="../../../../org/apache/cxf/clustering/FailoverTargetSelector.html#setSupportNotAvailableErrorsOnly(boolean)">setSupportNotAvailableErrorsOnly</a>, <a href="../../../../org/apache/cxf/clustering/FailoverTargetSelector.html#setupExchangeExceptionProperties(org.apache.cxf.message.Exchange)">setupExchangeExceptionProperties</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_org.apache.cxf.endpoint.AbstractConduitSelector">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.cxf.endpoint.<a href="../../../../org/apache/cxf/endpoint/AbstractConduitSelector.html" title="class in org.apache.cxf.endpoint">AbstractConduitSelector</a></h3>
<code><a href="../../../../org/apache/cxf/endpoint/AbstractConduitSelector.html#close()">close</a>, <a href="../../../../org/apache/cxf/endpoint/AbstractConduitSelector.html#createConduit(org.apache.cxf.message.Message,%20org.apache.cxf.message.Exchange,%20org.apache.cxf.transport.ConduitInitiator)">createConduit</a>, <a href="../../../../org/apache/cxf/endpoint/AbstractConduitSelector.html#findCompatibleConduit(org.apache.cxf.message.Message)">findCompatibleConduit</a>, <a href="../../../../org/apache/cxf/endpoint/AbstractConduitSelector.html#getEndpoint()">getEndpoint</a>, <a href="../../../../org/apache/cxf/endpoint/AbstractConduitSelector.html#getSelectedConduit(org.apache.cxf.message.Message)">getSelectedConduit</a>, <a href="../../../../org/apache/cxf/endpoint/AbstractConduitSelector.html#removeConduit(org.apache.cxf.transport.Conduit)">removeConduit</a>, <a href="../../../../org/apache/cxf/endpoint/AbstractConduitSelector.html#setEndpoint(org.apache.cxf.endpoint.Endpoint)">setEndpoint</a></code></li>
</ul>
<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="http://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="http://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="http://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="http://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="http://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="http://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="http://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="http://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="http://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="http://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="http://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="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" 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="LoadDistributorTargetSelector()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>LoadDistributorTargetSelector</h4>
<pre>public&nbsp;LoadDistributorTargetSelector()</pre>
<div class="block">Normal constructor.</div>
</li>
</ul>
<a name="LoadDistributorTargetSelector(org.apache.cxf.transport.Conduit)">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>LoadDistributorTargetSelector</h4>
<pre>public&nbsp;LoadDistributorTargetSelector(<a href="../../../../org/apache/cxf/transport/Conduit.html" title="interface in org.apache.cxf.transport">Conduit</a>&nbsp;c)</pre>
<div class="block">Constructor, allowing a specific conduit to override normal selection.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>c</code> - specific conduit</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="isFailover()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isFailover</h4>
<pre>public&nbsp;boolean&nbsp;isFailover()</pre>
</li>
</ul>
<a name="setFailover(boolean)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setFailover</h4>
<pre>public&nbsp;void&nbsp;setFailover(boolean&nbsp;failover)</pre>
</li>
</ul>
<a name="getLogger()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLogger</h4>
<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/util/logging/Logger.html?is-external=true" title="class or interface in java.util.logging">Logger</a>&nbsp;getLogger()</pre>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="../../../../org/apache/cxf/clustering/FailoverTargetSelector.html#getLogger()">getLogger</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/apache/cxf/clustering/FailoverTargetSelector.html" title="class in org.apache.cxf.clustering">FailoverTargetSelector</a></code></dd>
<dt><span class="strong">Returns:</span></dt><dd>the logger to use</dd></dl>
</li>
</ul>
<a name="selectConduit(org.apache.cxf.message.Message)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>selectConduit</h4>
<pre>public&nbsp;<a href="../../../../org/apache/cxf/transport/Conduit.html" title="interface in org.apache.cxf.transport">Conduit</a>&nbsp;selectConduit(<a href="../../../../org/apache/cxf/message/Message.html" title="interface in org.apache.cxf.message">Message</a>&nbsp;message)</pre>
<div class="block">Called when a Conduit is actually required.</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../org/apache/cxf/endpoint/ConduitSelector.html#selectConduit(org.apache.cxf.message.Message)">selectConduit</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/cxf/endpoint/ConduitSelector.html" title="interface in org.apache.cxf.endpoint">ConduitSelector</a></code></dd>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="../../../../org/apache/cxf/clustering/FailoverTargetSelector.html#selectConduit(org.apache.cxf.message.Message)">selectConduit</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/apache/cxf/clustering/FailoverTargetSelector.html" title="class in org.apache.cxf.clustering">FailoverTargetSelector</a></code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>message</code> - </dd>
<dt><span class="strong">Returns:</span></dt><dd>the Conduit to use for mediation of the message</dd></dl>
</li>
</ul>
<a name="getFailoverTarget(org.apache.cxf.message.Exchange, org.apache.cxf.clustering.FailoverTargetSelector.InvocationContext)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getFailoverTarget</h4>
<pre>protected&nbsp;<a href="../../../../org/apache/cxf/endpoint/Endpoint.html" title="interface in org.apache.cxf.endpoint">Endpoint</a>&nbsp;getFailoverTarget(<a href="../../../../org/apache/cxf/message/Exchange.html" title="interface in org.apache.cxf.message">Exchange</a>&nbsp;exchange,
                         <a href="../../../../org/apache/cxf/clustering/FailoverTargetSelector.InvocationContext.html" title="class in org.apache.cxf.clustering">FailoverTargetSelector.InvocationContext</a>&nbsp;invocation)</pre>
<div class="block">Get the failover target endpoint, if a suitable one is available.</div>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="../../../../org/apache/cxf/clustering/FailoverTargetSelector.html#getFailoverTarget(org.apache.cxf.message.Exchange,%20org.apache.cxf.clustering.FailoverTargetSelector.InvocationContext)">getFailoverTarget</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/apache/cxf/clustering/FailoverTargetSelector.html" title="class in org.apache.cxf.clustering">FailoverTargetSelector</a></code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>exchange</code> - the current Exchange</dd><dd><code>invocation</code> - the current InvocationContext</dd>
<dt><span class="strong">Returns:</span></dt><dd>a failover endpoint if one is available
 
 Note: The only difference between this and the super implementation is
 that the current (failed) address is removed from the list set of alternates,
 it could be argued that that change should be in the super implementation
 but I'm not sure of the impact.</dd></dl>
</li>
</ul>
<a name="requiresFailover(org.apache.cxf.message.Exchange)">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>requiresFailover</h4>
<pre>protected&nbsp;boolean&nbsp;requiresFailover(<a href="../../../../org/apache/cxf/message/Exchange.html" title="interface in org.apache.cxf.message">Exchange</a>&nbsp;exchange)</pre>
<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/apache/cxf/clustering/FailoverTargetSelector.html#requiresFailover(org.apache.cxf.message.Exchange)">FailoverTargetSelector</a></code></strong></div>
<div class="block">Check if the exchange is suitable for a failover.</div>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="../../../../org/apache/cxf/clustering/FailoverTargetSelector.html#requiresFailover(org.apache.cxf.message.Exchange)">requiresFailover</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/apache/cxf/clustering/FailoverTargetSelector.html" title="class in org.apache.cxf.clustering">FailoverTargetSelector</a></code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>exchange</code> - the current Exchange</dd>
<dt><span class="strong">Returns:</span></dt><dd>boolean true if a failover should be attempted</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/LoadDistributorTargetSelector.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 class="aboutLanguage"><em>Apache CXF API</em></div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../org/apache/cxf/clustering/LoadDistributorFeature.html" title="class in org.apache.cxf.clustering"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../org/apache/cxf/clustering/RandomStrategy.html" title="class in org.apache.cxf.clustering"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/cxf/clustering/LoadDistributorTargetSelector.html" target="_top">Frames</a></li>
<li><a href="LoadDistributorTargetSelector.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><a href="#nested_classes_inherited_from_class_org.apache.cxf.clustering.FailoverTargetSelector">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#fields_inherited_from_class_org.apache.cxf.clustering.FailoverTargetSelector">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>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>Apache CXF</small></p>
</body>
</html>
