Class ConfigurableAddressProvider

  • All Implemented Interfaces:
    AddressProvider, DescribableAddressProvider, SocketAddressProvider, Iterable, Collection, Set
    Direct Known Subclasses:
    ConfigurableLocalAddressProvider

    public class ConfigurableAddressProvider
    extends AbstractSet
    implements DescribableAddressProvider
    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>
     ...
     <address>...</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
    • Field Detail

      • 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.
      • m_fResolve

        @Deprecated
        public boolean m_fResolve
        Deprecated.
        Specifies if the list of address need DNS resolution.
    • Constructor Detail

      • ConfigurableAddressProvider

        @Deprecated
        public ConfigurableAddressProvider​(XmlElement xmlConfig)
        Deprecated.
        Construct an instance of ConfigurableAddressProvider based on the specified XML element.

        Unresolvable addresses will be skipped.

        Parameters:
        xmlConfig - the XML element that contains the configuration info
      • ConfigurableAddressProvider

        @Deprecated
        public ConfigurableAddressProvider​(XmlElement xmlConfig,
                                           boolean fSafe)
        Deprecated.
        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 skips unresolved addresses
    • Method Detail

      • makeProvider

        @Deprecated
        public static AddressProvider makeProvider​(XmlElement xmlConfig)
        Deprecated.
        Creates an instances of ConfigurableAddressProvider or RefreshableAddressProvider that refresh the address list of the ConfigurableAddressProvider asynchronously.
        Parameters:
        xmlConfig - the XML element that contains the configuration info
        Returns:
        an instance of the corresponding AddressProvider implementation
      • reject

        public 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.
        Specified by:
        reject in interface SocketAddressProvider
        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 Collection
        Specified by:
        size in interface Set
        Specified by:
        size in class AbstractCollection
        Returns:
        the number of elements in this collection
      • reset

        protected void reset()
        Make all addresses iterable, starting at the first address.
      • reset

        protected void reset​(int iLast)
        Make all addresses iterable, starting at the index after the specified one.
        Parameters:
        iLast - the index of the last address returned
      • configure

        @Deprecated
        protected void configure​(XmlElement xmlConfig)
        Deprecated.
        Configure this ConfigurableAddressProvider based on the specified XML.
        Parameters:
        xmlConfig - the XML element that contains the configuration info
      • sortHolders

        protected List sortHolders​(List list)
        Sort the holders in the order to be returned by the getNextAddress() method. This implementation randomizes the holder list for simple load balancing.
        Parameters:
        list - the original list retrieved from the configuration
        Returns:
        the re-ordered list
      • equals

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

        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 Collection
        Specified by:
        equals in interface Set
        Specified by:
        equals in interface SocketAddressProvider
        Overrides:
        equals in class AbstractSet
        Parameters:
        o - the Object to compare this AddressProvider to for equality
        Returns:
        true iff this AddressProvider is equal to the specified object
      • toString

        public String toString()
        Return a string representation of this ConfigurableAddressProvider.
        Overrides:
        toString in class AbstractCollection
        Returns:
        a string representation of the list of configured addresses
      • getAddressDescriptions

        public String[] getAddressDescriptions()
        Retrieve a human readable description of underlying addresses.
        Specified by:
        getAddressDescriptions in interface DescribableAddressProvider
        Returns:
        a string array of addresses in human readable format
      • resolveAddress

        protected Iterator<InetSocketAddress> resolveAddress​(String sHost,
                                                             int nPort)
        Resolve an address and port.
        Parameters:
        sHost - the host
        nPort - the port
        Returns:
        the InetSocketAddress