Package org.apache.cxf.clustering
Class AbstractStaticFailoverStrategy
- java.lang.Object
-
- org.apache.cxf.clustering.AbstractStaticFailoverStrategy
-
- All Implemented Interfaces:
FailoverStrategy
- Direct Known Subclasses:
RandomStrategy,SequentialStrategy
public abstract class AbstractStaticFailoverStrategy extends Object implements FailoverStrategy
Failover strategy based on a static cluster represented by multiple endpoints associated with the same service instance.
-
-
Constructor Summary
Constructors Constructor Description AbstractStaticFailoverStrategy()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description List<String>getAlternateAddresses(Exchange exchange)Get the alternate addresses for this invocation.List<Endpoint>getAlternateEndpoints(Exchange exchange)Get the alternate endpoints for this invocation.longgetDelayBetweenRetries()protected List<Endpoint>getEndpoints(Exchange exchange, boolean acceptCandidatesWithSameAddress)Get the endpoints for this invocation.protected LevelgetLogLevel()Get the log level for reporting the selection of the new alternative address or endpointprotected abstract <T> TgetNextAlternate(List<T> alternates)Get next alternate endpoint.StringselectAlternateAddress(List<String> alternates)Select one of the alternate addresses for a retried invocation.EndpointselectAlternateEndpoint(List<Endpoint> alternates)Select one of the alternate endpoints for a retried invocation.voidsetAlternateAddresses(List<String> alternateAddresses)voidsetDelayBetweenRetries(long delay)
-
-
-
Method Detail
-
setDelayBetweenRetries
public void setDelayBetweenRetries(long delay)
-
getDelayBetweenRetries
public long getDelayBetweenRetries()
-
getAlternateAddresses
public List<String> getAlternateAddresses(Exchange exchange)
Get the alternate addresses for this invocation.- Specified by:
getAlternateAddressesin interfaceFailoverStrategy- Parameters:
exchange- the current Exchange- Returns:
- a List of alternate addresses if available
-
selectAlternateAddress
public String selectAlternateAddress(List<String> alternates)
Select one of the alternate addresses for a retried invocation.- Specified by:
selectAlternateAddressin interfaceFailoverStrategy- Parameters:
alternates- a List of alternate addresses if available- Returns:
- the selected address or
nullif no alternate address is available
-
getAlternateEndpoints
public List<Endpoint> getAlternateEndpoints(Exchange exchange)
Get the alternate endpoints for this invocation.- Specified by:
getAlternateEndpointsin interfaceFailoverStrategy- Parameters:
exchange- the current Exchange- Returns:
- a List of alternate endpoints if available
-
selectAlternateEndpoint
public Endpoint selectAlternateEndpoint(List<Endpoint> alternates)
Select one of the alternate endpoints for a retried invocation.- Specified by:
selectAlternateEndpointin interfaceFailoverStrategy- Parameters:
alternates- a List of alternate endpoints if available- Returns:
- the selected endpoint or
nullif no alternate endpoint is available
-
getEndpoints
protected List<Endpoint> getEndpoints(Exchange exchange, boolean acceptCandidatesWithSameAddress)
Get the endpoints for this invocation.- Parameters:
exchange- the current ExchangeacceptCandidatesWithSameAddress- true to accept candidates with the same address- Returns:
- a List of alternate endpoints if available
-
getNextAlternate
protected abstract <T> T getNextAlternate(List<T> alternates)
Get next alternate endpoint.- Parameters:
alternates- non-empty List of alternate endpoints- Returns:
-
getLogLevel
protected Level getLogLevel()
Get the log level for reporting the selection of the new alternative address or endpoint- Returns:
- the log level
-
-