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 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