public class ConfigurableAddressProvider extends AbstractSet implements DescribableAddressProvider
<socket-address> <address>...</address> <port>...</port> </socket-address> ... <address>...</address>The order of items in the configured list will be randomized to provide basic load balancing.
This implementation is not thread safe.
| Modifier and Type | Class and Description | 
|---|---|
static class  | 
ConfigurableAddressProvider.AddressHolder
A stateful holder for an obtaining an InetSocketAddress object. 
 | 
| Modifier and Type | Field and Description | 
|---|---|
boolean | 
m_fResolve
Deprecated.  
 | 
protected boolean | 
m_fSafe
Specifies if the provider is only to return resolved addresses. 
 | 
protected int | 
m_iLast
Index of the last returned address. 
 | 
protected Iterator<InetSocketAddress> | 
m_iterAddr
An address iterator for the previously resolved address. 
 | 
protected List<ConfigurableAddressProvider.AddressHolder> | 
m_listHolders
A read-only list of ProvidedAddress objects. 
 | 
| Constructor and Description | 
|---|
ConfigurableAddressProvider(Iterable<ConfigurableAddressProvider.AddressHolder> addressHolders,
                           boolean fSafe)
Constructs a  
ConfigurableAddressProvider using the specified
 ConfigurableAddressProvider.AddressHolders. | 
ConfigurableAddressProvider(XmlElement xmlConfig)
Deprecated.  
 | 
ConfigurableAddressProvider(XmlElement xmlConfig,
                           boolean fSafe)
Deprecated.  
 | 
| Modifier and Type | Method and Description | 
|---|---|
void | 
accept()
This method should be called by the client immediately after it determines
 that it can successfully use an address returned by the
  
SocketAddressProvider.getNextAddress() method. | 
protected void | 
configure(XmlElement xmlConfig)
Deprecated.  
 | 
boolean | 
equals(Object o)
AddressProvider instances should compare to be equals() iff
 they should be expected to consistently produce the same resulting set
 of addresses. 
 | 
String[] | 
getAddressDescriptions()
Retrieve a human readable description of underlying addresses. 
 | 
InetSocketAddress | 
getNextAddress()
Covariant of  
SocketAddressProvider.getNextAddress() which
 returns an InetSocketAddress. | 
int | 
hashCode()
Return the hash code for this AddressProvider. 
 | 
Iterator | 
iterator()
Returns an iterator over the elements contained in this collection. 
 | 
static AddressProvider | 
makeProvider(XmlElement xmlConfig)
Deprecated.  
 | 
void | 
reject(Throwable eCause)
This method should be called by the client immediately after it determines
 that an attempt to use an address returned by the  
SocketAddressProvider.getNextAddress()
 method has failed. | 
protected void | 
reset()
Make all addresses iterable, starting at the first address. 
 | 
protected void | 
reset(int iLast)
Make all addresses iterable, starting at the index after the specified
 one. 
 | 
protected Iterator<InetSocketAddress> | 
resolveAddress(String sHost,
              int nPort)
Resolve an address and port. 
 | 
int | 
size()
Returns the number of elements in this collection. 
 | 
protected List | 
sortHolders(List list)
Sort the holders in the order to be returned by the  
getNextAddress() method. | 
String | 
toString()
Return a string representation of this ConfigurableAddressProvider. 
 | 
removeAlladd, addAll, clear, contains, containsAll, isEmpty, remove, retainAll, toArray, toArrayclone, finalize, getClass, notify, notifyAll, wait, wait, waitadd, addAll, clear, contains, containsAll, isEmpty, remove, retainAll, spliterator, toArray, toArrayparallelStream, removeIf, streamprotected List<ConfigurableAddressProvider.AddressHolder> m_listHolders
protected Iterator<InetSocketAddress> m_iterAddr
protected int m_iLast
protected boolean m_fSafe
@Deprecated public boolean m_fResolve
@Deprecated public ConfigurableAddressProvider(XmlElement xmlConfig)
Unresolvable addresses will be skipped.
xmlConfig - the XML element that contains the configuration infopublic ConfigurableAddressProvider(Iterable<ConfigurableAddressProvider.AddressHolder> addressHolders, boolean fSafe)
ConfigurableAddressProvider using the specified
 ConfigurableAddressProvider.AddressHolders.addressHolders - the ConfigurableAddressProvider.AddressHoldersfSafe - true if the provider skips unresolved addresses@Deprecated public ConfigurableAddressProvider(XmlElement xmlConfig, boolean fSafe)
xmlConfig - the XML element that contains the configuration infofSafe - true if the provider skips unresolved addresses@Deprecated public static AddressProvider makeProvider(XmlElement xmlConfig)
xmlConfig - the XML element that contains the configuration infopublic InetSocketAddress getNextAddress()
SocketAddressProvider.getNextAddress() which
 returns an InetSocketAddress.getNextAddress in interface AddressProvidergetNextAddress in interface SocketAddressProviderpublic void accept()
SocketAddressProvider.getNextAddress() method.accept in interface SocketAddressProviderpublic void reject(Throwable eCause)
SocketAddressProvider.getNextAddress()
 method has failed.reject in interface SocketAddressProvidereCause - (optional) an exception that carries the reason why the
                the caller rejected the previously returned addresspublic int size()
size in interface Collectionsize in interface Setsize in class AbstractCollectionpublic Iterator iterator()
iterator in interface Iterableiterator in interface Collectioniterator in interface Setiterator in class AbstractCollectionprotected void reset()
protected void reset(int iLast)
iLast - the index of the last address returned@Deprecated protected void configure(XmlElement xmlConfig)
xmlConfig - the XML element that contains the configuration infoprotected List sortHolders(List list)
getNextAddress() method.  This implementation randomizes the holder
 list for simple load balancing.list - the original list retrieved from the configurationpublic boolean equals(Object o)
Note: the general contract of hashCode and equals() should be preserved; AddressProviders which compare equals() should have the same hashCode.
equals in interface SocketAddressProviderequals in interface Collectionequals in interface Setequals in class AbstractSeto - the Object to compare this AddressProvider to for equalitypublic int hashCode()
hashCode in interface SocketAddressProviderhashCode in interface CollectionhashCode in interface SethashCode in class AbstractSetpublic String toString()
toString in class AbstractCollectionpublic String[] getAddressDescriptions()
getAddressDescriptions in interface DescribableAddressProviderprotected Iterator<InetSocketAddress> resolveAddress(String sHost, int nPort)
sHost - the hostnPort - the port