## org.jgroups.stack
Class Configurator

    java.lang.Object
      org.jgroups.stack.Configurator

    public class Configurator

extends java.lang.Object

The task if this class is to setup and configure the protocol stack. A string describing the desired setup, which is both the layering and the configuration of each layer, is given to the configurator which creates and configures the protocol stack and returns a reference to the top layer (Protocol).

Future functionality will include the capability to dynamically modify the layering of the protocol stack and the properties of each layer.

Author:
  Bela Ban, Richard Achmatowicz

Nested Class Summary
`static class` `Configurator.InetAddressInfo`

Field Summary
`protected static Log` `log`

Constructor Summary
`Configurator()`
`Configurator(ProtocolStack protocolStack)`

Method Summary
`static Protocol` `connectProtocols(java.util.List<Protocol> protocol_list)` Creates a protocol stack by iterating through the protocol list and connecting adjacent layers.
`static java.util.Map<java.lang.String,java.util.Map<java.lang.String,Configurator.InetAddressInfo>>` `createInetAddressMap(java.util.List<ProtocolConfiguration> protocol_configs, java.util.List<Protocol> protocols)`
`protected static Protocol` `createLayer(ProtocolStack stack, ProtocolConfiguration config)`
`static Protocol` `createProtocol(java.lang.String prot_spec, ProtocolStack stack)` Creates a new protocol given the protocol specification.

`static StackType`

`determineIpVersionFromAddresses(java.util.Collection<java.net.InetAddress> addrs)`
This method takes a set of InetAddresses, represented by an inetAddressmap, and: - if the resulting set is non-empty, goes through to see if all InetAddress-related user settings have a consistent IP version: v4 or v6, and throws an exception if not - if the resulting set is empty, sets the default IP version based on available stacks and if a dual stack, stack preferences - sets the IP version to be used in the JGroups session

`static void` `ensureValidBindAddresses(java.util.List<Protocol> protocols)` Makes sure that all fields annotated with @LocalAddress is (1) an InetAddress and (2) a valid address on any local network interface
`static java.util.Collection<java.net.InetAddress>` `getAddresses(java.util.Map<java.lang.String,java.util.Map<java.lang.String,Configurator.InetAddressInfo>> inetAddressMap)` Returns all inet addresses found
`static java.lang.Object` `getField(java.lang.reflect.Field field, java.lang.Object target)`
`static java.util.List<java.net.InetAddress>` `getInetAddresses(java.util.List<Protocol> protocols)`
`static java.lang.Object` `getValueFromProtocol(Protocol protocol, java.lang.reflect.Field field)`
`static java.lang.Object` `getValueFromProtocol(Protocol protocol, java.lang.String field_name)`
`static boolean` `isSetPropertyMethod(java.lang.reflect.Method method)`
`static java.util.List<ProtocolConfiguration>` `parseConfigurations(java.lang.String configuration)` Return a number of ProtocolConfigurations in a vector
`static java.lang.String` `printConfigurations(java.util.Collection<ProtocolConfiguration> configs)`
`static void` `removeDeprecatedProperties(java.lang.Object obj, java.util.Map<java.lang.String,java.lang.String> props)`
`static void` `resolveAndAssignField(java.lang.Object obj, java.lang.reflect.Field field, java.util.Map<java.lang.String,java.lang.String> props)`
`static void` `resolveAndAssignFields(java.lang.Object obj, java.util.Map<java.lang.String,java.lang.String> props)`
`static void` `resolveAndInvokePropertyMethod(java.lang.Object obj, java.lang.reflect.Method method, java.util.Map<java.lang.String,java.lang.String> props)`
`static void` `resolveAndInvokePropertyMethods(java.lang.Object obj, java.util.Map<java.lang.String,java.lang.String> props)`
`static void` `sanityCheck(java.util.List<Protocol> protocols)` Throws an exception if sanity check fails.
`static void` `setDefaultValues(java.util.List<Protocol> protocols)`
`static void` `setDefaultValues(java.util.List<Protocol> protocols, StackType ip_version)`
`static void` `setDefaultValues(java.util.List<ProtocolConfiguration> protocol_configs, java.util.List<Protocol> protocols, StackType ip_version)`
`static void` `setField(java.lang.reflect.Field field, java.lang.Object target, java.lang.Object value)`
`Protocol` `setupProtocolStack(java.util.List<ProtocolConfiguration> config)`
`Protocol` `setupProtocolStack(ProtocolStack copySource)`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### log

    protected static final Log log

Constructor Detail

### Configurator

    public Configurator()

### Configurator

    public Configurator(ProtocolStack protocolStack)

Method Detail

### setupProtocolStack

    public Protocol setupProtocolStack(java.util.List<ProtocolConfiguration> config)
                                throws java.lang.Exception

  Throws:
    `java.lang.Exception`

### setupProtocolStack

    public Protocol setupProtocolStack(ProtocolStack copySource)
                                throws java.lang.Exception

  Throws:
    `java.lang.Exception`

### setDefaultValues

    public static void setDefaultValues(java.util.List<Protocol> protocols)
                                 throws java.lang.Exception

  Throws:
    `java.lang.Exception`

### createProtocol

    public static Protocol createProtocol(java.lang.String prot_spec,
                                          ProtocolStack stack)
                                   throws java.lang.Exception

  Creates a new protocol given the protocol specification. Initializes the properties and starts the up and down handler threads.

  Parameters:
    `prot_spec` - The specification of the protocol. Same convention as for specifying a protocol stack. An exception will be thrown if the class cannot be created. Example:

        "VERIFY_SUSPECT(timeout=1500)"

    Note that no colons (:) have to be specified
    `stack` - The protocol stack
  Returns:
    Protocol The newly created protocol
  Throws:
    `java.lang.Exception` - Will be thrown when the new protocol cannot be created

### connectProtocols

    public static Protocol connectProtocols(java.util.List<Protocol> protocol_list)

  Creates a protocol stack by iterating through the protocol list and connecting adjacent layers. The list starts with the topmost layer and has the bottommost layer at the tail.

  Parameters:
    `protocol_list` - List of Protocol elements (from top to bottom)
  Returns:
    Protocol stack

### parseConfigurations

    public static java.util.List<ProtocolConfiguration> parseConfigurations(java.lang.String configuration)
                                                                     throws java.lang.Exception

  Return a number of ProtocolConfigurations in a vector

  Parameters:
    `configuration` - protocol-stack configuration string
  Returns:
    List of ProtocolConfigurations
  Throws:
    `java.lang.Exception`

### printConfigurations

    public static java.lang.String printConfigurations(java.util.Collection<ProtocolConfiguration> configs)

### createLayer

    protected static Protocol createLayer(ProtocolStack stack,
                                          ProtocolConfiguration config)
                                   throws java.lang.Exception

  Throws:
    `java.lang.Exception`

### sanityCheck

    public static void sanityCheck(java.util.List<Protocol> protocols)
                            throws java.lang.Exception

  Throws an exception if sanity check fails. Possible sanity check is uniqueness of all protocol names

  Throws:
    `java.lang.Exception`

### getAddresses

    public static java.util.Collection<java.net.InetAddress> getAddresses(java.util.Map<java.lang.String,java.util.Map<java.lang.String,Configurator.InetAddressInfo>> inetAddressMap)
                                                                   throws java.lang.Exception

  Returns all inet addresses found

  Throws:
    `java.lang.Exception`

### determineIpVersionFromAddresses

    public static StackType determineIpVersionFromAddresses(java.util.Collection<java.net.InetAddress> addrs)
                                                     throws java.lang.Exception

  This method takes a set of InetAddresses, represented by an inetAddressmap, and: - if the resulting set is non-empty, goes through to see if all InetAddress-related user settings have a consistent IP version: v4 or v6, and throws an exception if not - if the resulting set is empty, sets the default IP version based on available stacks and if a dual stack, stack preferences - sets the IP version to be used in the JGroups session

  Returns:
    StackType.IPv4 for IPv4, StackType.IPv6 for IPv6, StackType.Unknown if the version cannot be determined
  Throws:
    `java.lang.Exception`

### createInetAddressMap

    public static java.util.Map<java.lang.String,java.util.Map<java.lang.String,Configurator.InetAddressInfo>> createInetAddressMap(java.util.List<ProtocolConfiguration> protocol_configs,
                                                                                                                                    java.util.List<Protocol> protocols)
                                                                                                                             throws java.lang.Exception

  Throws:
    `java.lang.Exception`

### getInetAddresses

    public static java.util.List<java.net.InetAddress> getInetAddresses(java.util.List<Protocol> protocols)
                                                                 throws java.lang.Exception

  Throws:
    `java.lang.Exception`

### setDefaultValues

    public static void setDefaultValues(java.util.List<ProtocolConfiguration> protocol_configs,
                                        java.util.List<Protocol> protocols,
                                        StackType ip_version)
                                 throws java.lang.Exception

  Throws:
    `java.lang.Exception`

### setDefaultValues

    public static void setDefaultValues(java.util.List<Protocol> protocols,
                                        StackType ip_version)
                                 throws java.lang.Exception

  Throws:
    `java.lang.Exception`

### ensureValidBindAddresses

    public static void ensureValidBindAddresses(java.util.List<Protocol> protocols)
                                         throws java.lang.Exception

  Makes sure that all fields annotated with @LocalAddress is (1) an InetAddress and (2) a valid address on any local network interface

  Parameters:
    `protocols` -
  Throws:
    `java.lang.Exception`

### getValueFromProtocol

    public static java.lang.Object getValueFromProtocol(Protocol protocol,
                                                        java.lang.reflect.Field field)
                                                 throws java.lang.IllegalAccessException

  Throws:
    `java.lang.IllegalAccessException`

### getValueFromProtocol

    public static java.lang.Object getValueFromProtocol(Protocol protocol,
                                                        java.lang.String field_name)
                                                 throws java.lang.IllegalAccessException

  Throws:
    `java.lang.IllegalAccessException`

### resolveAndInvokePropertyMethods

    public static void resolveAndInvokePropertyMethods(java.lang.Object obj,
                                                       java.util.Map<java.lang.String,java.lang.String> props)
                                                throws java.lang.Exception

  Throws:
    `java.lang.Exception`

### resolveAndInvokePropertyMethod

    public static void resolveAndInvokePropertyMethod(java.lang.Object obj,
                                                      java.lang.reflect.Method method,
                                                      java.util.Map<java.lang.String,java.lang.String> props)
                                               throws java.lang.Exception

  Throws:
    `java.lang.Exception`

### resolveAndAssignFields

    public static void resolveAndAssignFields(java.lang.Object obj,
                                              java.util.Map<java.lang.String,java.lang.String> props)
                                       throws java.lang.Exception

  Throws:
    `java.lang.Exception`

### resolveAndAssignField

    public static void resolveAndAssignField(java.lang.Object obj,
                                             java.lang.reflect.Field field,
                                             java.util.Map<java.lang.String,java.lang.String> props)
                                      throws java.lang.Exception

  Throws:
    `java.lang.Exception`

### removeDeprecatedProperties

    public static void removeDeprecatedProperties(java.lang.Object obj,
                                                  java.util.Map<java.lang.String,java.lang.String> props)
                                           throws java.lang.Exception

  Throws:
    `java.lang.Exception`

### isSetPropertyMethod

    public static boolean isSetPropertyMethod(java.lang.reflect.Method method)

### setField

    public static void setField(java.lang.reflect.Field field,
                                java.lang.Object target,
                                java.lang.Object value)

### getField

    public static java.lang.Object getField(java.lang.reflect.Field field,
                                            java.lang.Object target)

Copyright © 1998-2009 Bela Ban / Red Hat. All Rights Reserved.