Overview | Package | Class | Tree | Index | Help

Oracle® Coherence Java API Reference
v3.5.3
E15583-01
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## com.tangosol.net
Class ConfigurableAddressProvider

    java.lang.Object
      java.util.AbstractCollection
          java.util.AbstractSet
              com.tangosol.net.ConfigurableAddressProvider

All Implemented Interfaces:
  AddressProvider, java.lang.Iterable, java.util.Collection, java.util.Set

    public class ConfigurableAddressProvider

extends java.util.AbstractSet
implements AddressProvider

ConfigurableAddressProvider is an implementation of the AddressProvider interface based on a static list of addresses configured in an XML element that contains one or more items in the following format:

     <socket-address>
       <address>...</address>
       <port>...</port>
     </socket-address>

The order of items in the configured list will be randomized to provide basic load balancing.

This implementation is not thread safe.

Since:
  Coherence 3.4
Author:
  gg 2008-08-18

Nested Class Summary
`protected class` | `ConfigurableAddressProvider.AddressHolder` A stateful holder for an obtaining an InetSocketAddress object.

Field Summary
`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 java.util.List` | `m_listHolders` A list of AddressHolder objects.

Constructor Summary
`ConfigurableAddressProvider(XmlElement xmlConfig)` Construct an instance of ConfigurableAddressProvider based on the specified XML element.
`ConfigurableAddressProvider(XmlElement xmlConfig, boolean fSafe)` Construct an instance of ConfigurableAddressProvider based on the specified XML element.

Method Summary
`void` | `accept()` This method should be called by the client immediately after it determines that it can successfully use an address returned by the `AddressProvider.getNextAddress()` method.
`static AddressProvider` | `createAddressProvider(XmlElement xmlConfig, java.lang.ClassLoader loader)` Instantiate an AddressProvider configured using an XML that conforms to the following format:
`boolean` | `equals(java.lang.Object o)` AddressProvider instances should compare to be `equals()` iff they should be expected to consistently produce the same resulting set of addresses.
`java.net.InetSocketAddress` | `getNextAddress()` Obtain a next available address to use.
`int` | `hashCode()` Return the hash code for this AddressProvider.
`java.util.Iterator` | `iterator()` Returns an iterator over the elements contained in this collection.
`void` | `reject(java.lang.Throwable eCause)` This method should be called by the client immediately after it determines that an attempt to use an address returned by the `AddressProvider.getNextAddress()` method has failed.
`protected void` | `reset()` Reset the address provider making all previously returned addresses iterable.
`int` | `size()` Returns the number of elements in this collection.
`java.lang.String` | `toString()` Return a string representation of this ConfigurableAddressProvider.

Methods inherited from class java.util.AbstractSet
`removeAll`

Methods inherited from class java.util.AbstractCollection
`add, addAll, clear, contains, containsAll, isEmpty, remove, retainAll, toArray, toArray`

Methods inherited from interface java.util.Set
`add, addAll, clear, contains, containsAll, isEmpty, remove, retainAll, toArray, toArray`

Field Detail

### m_listHolders

    protected java.util.List m_listHolders

  A list of AddressHolder objects.

### m_iLast

    protected int m_iLast

  Index of the last returned address.

### m_fSafe

    protected boolean m_fSafe

  Specifies if the provider is only to return resolved addresses.

Constructor Detail

### ConfigurableAddressProvider

    public ConfigurableAddressProvider(XmlElement xmlConfig)

  Construct an instance of ConfigurableAddressProvider based on the specified XML element.

  Unresolveable addresses will be skipped.

  Parameters:
    `xmlConfig` - the XML element that contains the configuration info

### ConfigurableAddressProvider

    public ConfigurableAddressProvider(XmlElement xmlConfig,
                                       boolean fSafe)

  Construct an instance of ConfigurableAddressProvider based on the specified XML element.

  Parameters:
    `xmlConfig` - the XML element that contains the configuration info
    `fSafe` - true if the provider is skips unresolved addresses

Method Detail

### getNextAddress

    public java.net.InetSocketAddress getNextAddress()

  Obtain a next available address to use. If the caller can successfully use the returned address (e.g. a connection was established), it should call the AddressProvider's `AddressProvider.accept()` method.

  Specified by:
    `getNextAddress` in interface `AddressProvider`
  Returns:
    the next available address or null if the list of available addresses was exhausted

### accept

    public void accept()

  This method should be called by the client immediately after it determines that it can successfully use an address returned by the `AddressProvider.getNextAddress()` method.

  Specified by:
    `accept` in interface `AddressProvider`

### reject

    public void reject(java.lang.Throwable eCause)

  This method should be called by the client immediately after it determines that an attempt to use an address returned by the `AddressProvider.getNextAddress()` method has failed.

  Specified by:
    `reject` in interface `AddressProvider`
  Parameters:
    `eCause` - (optional) an exception that carries the reason why the the caller rejected the previously returned address

### size

    public int size()

  Returns the number of elements in this collection. If the collection contains more than `Integer.MAX_VALUE` elements, returns `Integer.MAX_VALUE`.

  Specified by:
    `size` in interface `java.util.Collection`
  Specified by:
    `size` in interface `java.util.Set`
  Specified by:
    `size` in class `java.util.AbstractCollection`
  Returns:
    the number of elements in this collection

### iterator

    public java.util.Iterator iterator()

  Returns an iterator over the elements contained in this collection.

  Specified by:
    `iterator` in interface `java.lang.Iterable`
  Specified by:
    `iterator` in interface `java.util.Collection`
  Specified by:
    `iterator` in interface `java.util.Set`
  Specified by:
    `iterator` in class `java.util.AbstractCollection`
  Returns:
    an iterator over the elements contained in this collection

### reset

    protected void reset()

  Reset the address provider making all previously returned addresses iterable.

### createAddressProvider

    public static AddressProvider createAddressProvider(XmlElement xmlConfig,
                                                        java.lang.ClassLoader loader)

  Instantiate an AddressProvider configured using an XML that conforms to the following format:

         <!ELEMENT ... (socket-address+ | address-provider)>
         <!ELEMENT address-provider
           (class-name | (class-factory-name, method-name), init-params?>
         <!ELEMENT socket-address (address, port)>

  Parameters:
    `xmlConfig` - the XML element that contains the configuration info
    `loader` - (optional) the ClassLoader that should be used to load necessary classes
  Returns:
    an instance of the corresponding AddressProvider implementation
  See Also:
    "remote-addresses" element declaration for the cache-config.dtd in the Coherence library

### equals

    public boolean equals(java.lang.Object o)

  AddressProvider instances should compare to be `equals()` iff they should be expected to consistently produce the same resulting set of addresses.

  Note: the general contract of `hashCode` and `equals()` should be preserved; AddressProviders which compare `equals()` should have the same hashCode.

  Specified by:
    `equals` in interface `AddressProvider`
  Specified by:
    `equals` in interface `java.util.Collection`
  Specified by:
    `equals` in interface `java.util.Set`
  Overrides:
    `equals` in class `java.util.AbstractSet`
  Parameters:
    `o` - the Object to compare this AddressProvider to for equality
  Returns:
    true iff this AddressProvider is equal to the specified object

### hashCode

    public int hashCode()

  Return the hash code for this AddressProvider.

  Specified by:
    `hashCode` in interface `AddressProvider`
  Specified by:
    `hashCode` in interface `java.util.Collection`
  Specified by:
    `hashCode` in interface `java.util.Set`
  Overrides:
    `hashCode` in class `java.util.AbstractSet`
  Returns:
    the hash code for this AddressProvider

### toString

    public java.lang.String toString()

  Return a string representation of this ConfigurableAddressProvider.

  Overrides:
    `toString` in class `java.util.AbstractCollection`
  Returns:
    a string representation of the list of configured addresses

Overview | Package | Class | Tree | Index | Help

Oracle® Coherence Java API Reference
v3.5.3
E15583-01
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2000, 2010, Oracle. All rights reserved.