Class ClassConfigurator

java.lang.Object
org.jgroups.conf.ClassConfigurator

public class ClassConfigurator extends Object
This class will be replaced with the class that read info from the magic number configurator that reads info from the xml file. The name and the relative path of the magic number map file can be specified as value of the property org.jgroups.conf.magicNumberFile. It must be relative to one of the classpath elements, to allow the classloader to locate the file. If a value is not specified, MagicNumberReader.MAGIC_NUMBER_FILE is used, which defaults to "jg-magic-map.xml".
Author:
Filip Hanik, Bela Ban
  • Field Details

  • Constructor Details

    • ClassConfigurator

      public ClassConfigurator()
  • Method Details

    • init

      protected static void init() throws ChannelException
      Throws:
      ChannelException
    • add

      public static void add(short magic, Class clazz) throws IllegalArgumentException
      Method to register a user-defined header with jg-magic-map at runtime
      Parameters:
      magic - The magic number. Needs to be > 1024
      clazz - The class. Usually a subclass of Header
      Throws:
      IllegalArgumentException - If the magic number is already taken, or the magic number is invalid input: '<'= 1024
    • addProtocol

      public static void addProtocol(short id, Class protocol)
    • get

      public static Class get(short magic)
      Returns a class for a magic number. Returns null if no class is found
      Parameters:
      magic - the magic number that maps to the class
      Returns:
      a Class object that represents a class that implements java.io.Externalizable
    • get

      public static Class get(String clazzname)
      Loads and returns the class from the class name
      Parameters:
      clazzname - a fully classified class name to be loaded
      Returns:
      a Class object that represents a class that implements java.io.Externalizable
    • getMagicNumber

      public static short getMagicNumber(Class clazz)
      Returns the magic number for the class.
      Parameters:
      clazz - a class object that we want the magic number for
      Returns:
      the magic number for a class, -1 if no mapping is available
    • getProtocolId

      public static short getProtocolId(Class protocol)
    • getProtocol

      public static Class getProtocol(short id)
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • printMagicMap

      public static String printMagicMap()
    • printClassMap

      public static String printClassMap()
    • readMappings

      protected static List<Tuple<Short,String>> readMappings(String name) throws Exception
      try to read the magic number configuration file as a Resource form the classpath using getResourceAsStream if this fails this method tries to read the configuration file from mMagicNumberFile using a FileInputStream (not in classpath but somewhere else in the disk)
      Returns:
      an array of ClassMap objects that where parsed from the file (if found) or an empty array if file not found or had en exception
      Throws:
      Exception
    • parse

      protected static List<Tuple<Short,String>> parse(InputStream stream) throws Exception
      Throws:
      Exception
    • parseClassData

      protected static Tuple<Short,String> parseClassData(Node protocol) throws IOException
      Throws:
      IOException