Package jade.core

Class Profile

  • Direct Known Subclasses:
    ProfileImpl

    public abstract class Profile
    extends Object
    This class allows retrieving configuration-dependent classes.
    Version:
    1.0, 22/11/00
    Author:
    Federico Bergenti, Giovanni Caire - TILAB
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static String ACCEPT_FOREIGN_AGENTS
      This constant is the key of the property whose value (true or false) indicates whether or not this platform accepts foreign agents i.e.
      static String ACLCODECS
      This constant is the key of the property whose value contains the list of ACLCODECSs that have to be launched at bootstrap time.
      static String AGENT_TAG
      This constant is the key of the property whose value will substitute the %A wildcard in names of all agents that will start in the local container.
      static String AGENTS
      This constant is the name of the property whose value contains the list of agents that have to be launched at bootstrap time
      static String ANDROID  
      static String CONTAINER_NAME
      This constant is the key of the property whose value contains the desired name of the container.
      static int DEFAULT_PORT  
      static String DEFAULT_SERVICES  
      static String DEFAULT_SERVICES_NOMOBILITY  
      static String DETECT_MAIN
      This constant is the name of the property whose Boolean value tells whether to activate the automatic main container detection mechanism.
      static String DUMP_OPTIONS
      This constant is the name of the property whose Boolean value tells whether startup options should be dumped.
      static String EXPORT_HOST
      This constant is the name or address of the host that other containers will have to use to contact this container
      static String EXPORT_PORT
      This constant is the port that other containers will have to use to contact this container
      static String FILE_DIR
      This constant is the key of the property whose value contains the name of the directory where all the files generated by JADE should be put.
      static String GUI  
      static String IMTP
      This constant is the key of the property whose value identifies the IMTP Manager to be created by ProfileImpl
      static String IP_VERSION
      This constant is the key of the property whose value contains the version of IP address to use.
      static int IPV4  
      static int IPV6  
      static String J2SE  
      static String JVM
      This constant is the key of the property whose value contains the indication about the type of JVM.
      static String LEAP_IMTP  
      static String LOCAL_HOST
      This constant is the name of the property whose value contains the host name the container must bind on.
      static String LOCAL_PORT
      This constant is the name of the TCP port the container node must listen to for incoming IMTP messages.
      static String LOCAL_PORT_RANGE
      This constant is the name of the property specifying the range to select the TCP port the container node must listen to for incoming IMTP messages.
      static String LOCAL_SERVICE_MANAGER
      This constant is the name of the property whose Boolean value tells whether a local Service Manager is exported by this container (only when using JADE support for fault-tolerant platform configurations).
      static String LOCALHOST_CONSTANT  
      static String LOOPBACK_ADDRESS_CONSTANT  
      static String MAIN
      This constant is the name of the property whose value contains a boolean indicating if this is the Main Container or a peripheral container.
      static String MAIN_HOST
      This constant is the name of the property whose value is the name (or the IP address) of the network host where the JADE Main Container is running.
      static String MAIN_PORT
      This constant is the name of the property whose value contains an integer representing the port number where the Main Container is listening for container registrations.
      static String MAIN_PROTO
      This constant is the name of the property whose value is a String indicating the protocol to use to connect to the Main Container.
      static String MIDP  
      static String MTPS
      This constant is the key of the property whose value contains the list of MTPs that have to be launched at bootstrap time.
      static String NO_DISPLAY
      This constant, when set to true tells the JADE runtime that it will be executed in an environment with no display available.
      static String NO_MTP  
      static String OWNER  
      static String PJAVA  
      static String PLATFORM_ID
      This constant is the name of the property whose value contains the unique platform ID of a JADE platform.
      static String PRIVILEDGE_LOGICAL_NAME
      This constant is the name of the property whose value (true or false) instructs JADE to try to use host names instead of IP addresses in intra-platform communication.
      static String REMOTE_SERVICE_MANAGER_ADDRESSES
      This constant is the name of the property whose value contains the list of addresses through which the platform Service Manager can be reached.
      static String RMI_IMTP  
      static String SERVICES
      This constants is the name of the property whose value contains the list of kernel-level services that have to be launched at bootstrap time
      static String STYLE_3_X  
      static String USERAUTH_KEY
      This constant is the name of the property whose value contains the user authentication type to be used to login to the JADE platform.
    • Constructor Summary

      Constructors 
      Constructor Description
      Profile()  
    • Field Detail

      • MAIN

        public static final String MAIN
        This constant is the name of the property whose value contains a boolean indicating if this is the Main Container or a peripheral container.
        See Also:
        Constant Field Values
      • MAIN_PROTO

        public static final String MAIN_PROTO
        This constant is the name of the property whose value is a String indicating the protocol to use to connect to the Main Container.
        See Also:
        Constant Field Values
      • MAIN_HOST

        public static final String MAIN_HOST
        This constant is the name of the property whose value is the name (or the IP address) of the network host where the JADE Main Container is running.
        See Also:
        Constant Field Values
      • MAIN_PORT

        public static final String MAIN_PORT
        This constant is the name of the property whose value contains an integer representing the port number where the Main Container is listening for container registrations.
        See Also:
        Constant Field Values
      • DETECT_MAIN

        public static final String DETECT_MAIN
        This constant is the name of the property whose Boolean value tells whether to activate the automatic main container detection mechanism. By means of this mechanism a peripheral container is able to automatically detect the main container host and port at startup time. The mechanism is based on IP multicast communication and must be activated on both the main container, that publishes its host and port on a given multicast address (by default 239.255.10.99, port 1199), and on peripheral containers. The default for this option is true on Main Containers and false on peripheral containers
        See Also:
        Constant Field Values
      • PRIVILEDGE_LOGICAL_NAME

        public static final String PRIVILEDGE_LOGICAL_NAME
        This constant is the name of the property whose value (true or false) instructs JADE to try to use host names instead of IP addresses in intra-platform communication. Default is false (IP addresses are used preferentially)
        See Also:
        Constant Field Values
      • LOCAL_HOST

        public static final String LOCAL_HOST
        This constant is the name of the property whose value contains the host name the container must bind on. The host name must refer to the local machine, and is generally needed only when multiple network interfaces are present or a non-default name is desired.
        See Also:
        Constant Field Values
      • LOCAL_PORT

        public static final String LOCAL_PORT
        This constant is the name of the TCP port the container node must listen to for incoming IMTP messages.
        See Also:
        Constant Field Values
      • LOCAL_PORT_RANGE

        public static final String LOCAL_PORT_RANGE
        This constant is the name of the property specifying the range to select the TCP port the container node must listen to for incoming IMTP messages. The value for that property must be expressed in the form -, e.g. 50000-50010 indicating that a free port will be selected between port 50000 (included) and 50010 (excluded). If specified, this property overrides the local-port property.
        See Also:
        Constant Field Values
      • EXPORT_HOST

        public static final String EXPORT_HOST
        This constant is the name or address of the host that other containers will have to use to contact this container
        See Also:
        Constant Field Values
      • EXPORT_PORT

        public static final String EXPORT_PORT
        This constant is the port that other containers will have to use to contact this container
        See Also:
        Constant Field Values
      • LOCAL_SERVICE_MANAGER

        public static final String LOCAL_SERVICE_MANAGER
        This constant is the name of the property whose Boolean value tells whether a local Service Manager is exported by this container (only when using JADE support for fault-tolerant platform configurations).
        See Also:
        Constant Field Values
      • DUMP_OPTIONS

        public static final String DUMP_OPTIONS
        This constant is the name of the property whose Boolean value tells whether startup options should be dumped. Default is false
        See Also:
        Constant Field Values
      • NO_DISPLAY

        public static final String NO_DISPLAY
        This constant, when set to true tells the JADE runtime that it will be executed in an environment with no display available.
        See Also:
        Constant Field Values
      • PLATFORM_ID

        public static final String PLATFORM_ID
        This constant is the name of the property whose value contains the unique platform ID of a JADE platform. Agent GUIDs in JADE are made by a platform-unique nickname, the '@' character and the platform ID.
        See Also:
        Constant Field Values
      • USERAUTH_KEY

        public static final String USERAUTH_KEY
        This constant is the name of the property whose value contains the user authentication type to be used to login to the JADE platform.
        See Also:
        Constant Field Values
      • AGENTS

        public static final String AGENTS
        This constant is the name of the property whose value contains the list of agents that have to be launched at bootstrap time
        See Also:
        Constant Field Values
      • SERVICES

        public static final String SERVICES
        This constants is the name of the property whose value contains the list of kernel-level services that have to be launched at bootstrap time
        See Also:
        Constant Field Values
      • REMOTE_SERVICE_MANAGER_ADDRESSES

        public static final String REMOTE_SERVICE_MANAGER_ADDRESSES
        This constant is the name of the property whose value contains the list of addresses through which the platform Service Manager can be reached.
        See Also:
        Constant Field Values
      • MTPS

        public static final String MTPS
        This constant is the key of the property whose value contains the list of MTPs that have to be launched at bootstrap time. This list must be retrieved via the getSpecifiers(MTPS) method.
        See Also:
        Constant Field Values
      • IMTP

        public static final String IMTP
        This constant is the key of the property whose value identifies the IMTP Manager to be created by ProfileImpl
        See Also:
        Constant Field Values
      • CONTAINER_NAME

        public static final String CONTAINER_NAME
        This constant is the key of the property whose value contains the desired name of the container. If this container name exists already, then a default name is assigned by the platform. The name of the main-container is always assigned by the platform and cannot be changed.
        See Also:
        Constant Field Values
      • AGENT_TAG

        public static final String AGENT_TAG
        This constant is the key of the property whose value will substitute the %A wildcard in names of all agents that will start in the local container.
        See Also:
        Constant Field Values
      • ACLCODECS

        public static final String ACLCODECS
        This constant is the key of the property whose value contains the list of ACLCODECSs that have to be launched at bootstrap time. This list must be retrieved via the getSpecifiers(ACLCODECS) method.
        See Also:
        Constant Field Values
      • ACCEPT_FOREIGN_AGENTS

        public static final String ACCEPT_FOREIGN_AGENTS
        This constant is the key of the property whose value (true or false) indicates whether or not this platform accepts foreign agents i.e. agents whose names are not of the form @.
        See Also:
        Constant Field Values
      • FILE_DIR

        public static final String FILE_DIR
        This constant is the key of the property whose value contains the name of the directory where all the files generated by JADE should be put. The default value is the current directory.
        See Also:
        Constant Field Values
      • IP_VERSION

        public static final String IP_VERSION
        This constant is the key of the property whose value contains the version of IP address to use.
        See Also:
        Constant Field Values
      • JVM

        public static final String JVM
        This constant is the key of the property whose value contains the indication about the type of JVM.
        See Also:
        Constant Field Values
    • Constructor Detail

      • Profile

        public Profile()
    • Method Detail

      • getServiceManager

        protected abstract ServiceManager getServiceManager()
                                                     throws ProfileException
        Obtain a reference to the platform Service Manager, with which kernel-level services can be added and removed.
        Returns:
        A ServiceManager object, representing the platform service manager.
        Throws:
        ProfileException
      • getServiceFinder

        protected abstract ServiceFinder getServiceFinder()
                                                   throws ProfileException
        Obtain a reference to the platform Service Finder, with which kernel-level services can be looked up.
        Returns:
        A ServiceFinder object, representing the platform service manager.
        Throws:
        ProfileException
      • getCommandProcessor

        protected abstract jade.core.CommandProcessor getCommandProcessor()
                                                                   throws ProfileException
        Obtain a reference to the container Command Processor, which manages kernel-level commands dispatching them to the proper platform services.
        Returns:
        A ServiceManager object, representing the platform service manager.
        Throws:
        ProfileException
      • getBootProperties

        public abstract Properties getBootProperties()
        Retrieve the configuration properties as they were passed to this Profile object, i.e. without internal initializations automatically performed by the Profile class.
      • getParameter

        public abstract String getParameter​(String key,
                                            String aDefault)
        Retrieve a String value from the configuration properties. If no parameter corresponding to the specified key is found, return the provided default.
        Parameters:
        key - The key identifying the parameter to be retrieved among the configuration properties.
        aDefault - The value to return when there is no property set for the given key.
      • getBooleanProperty

        public abstract boolean getBooleanProperty​(String key,
                                                   boolean aDefault)
        Retrieve a boolean value for a configuration property. If no corresponding property is found or if its string value cannot be converted to a boolean one, a default value is returned.
        Parameters:
        key - The key identifying the parameter to be retrieved among the configuration properties.
        aDefault - The value to return when there is no property set for the given key, or its value cannot be converted to a boolean value.
      • getSpecifiers

        public abstract List getSpecifiers​(String key)
                                    throws ProfileException
        Retrieve a list of Specifiers from the configuration properties. Agents, MTPs and other items are specified among the configuration properties in this way. If no list of Specifiers corresponding to the specified key is found, an empty list is returned.
        Parameters:
        key - The key identifying the list of Specifires to be retrieved among the configuration properties.
        Throws:
        ProfileException
      • setParameter

        public abstract void setParameter​(String key,
                                          String value)
        Assign the given value to the given property name.
        Parameters:
        key - is the property name
        value - is the property value
      • setSpecifiers

        public abstract void setSpecifiers​(String key,
                                           List value)
        Assign the given value to the given property name.
        Parameters:
        key - is the property name
        value - is the property value
      • isMain

        public boolean isMain()
        Provides a boolean indication about whether or not the container using this Profile is a Main Container.
        Returns:
        true if the container using this Profile is a Main Container. false otherwise
      • isMasterMain

        public boolean isMasterMain()
        Provides a boolean indication about whether or not the container using this Profile is the Master Main Container.
        Returns:
        true if the container using this Profile is the Master Main Container. false otherwise
      • isBackupMain

        public boolean isBackupMain()
        Provides a boolean indication about whether or not the container using this Profile is a Backup Main Container.
        Returns:
        true if the container using this Profile is a Backup Main Container. false otherwise
      • getDefaultNetworkName

        public static String getDefaultNetworkName()
      • getDefaultNetworkName

        public static String getDefaultNetworkName​(boolean priviledgeLogicalName)
      • isLocalHost

        public static boolean isLocalHost​(String host)
        Check whether or not a given host name or address corresponds to a local network interface
      • compareHostNames

        public static boolean compareHostNames​(String host1,
                                               String host2)
        Compares two host names/addresses regardless of whether they include domain or not.
      • compareTransportAddresses

        public static boolean compareTransportAddresses​(String addr1,
                                                        String addr2,
                                                        IMTPManager imtpManager)
        Compares two stringified transport addresses. The provided IMTPManager must be able to deal with the protocols (e.g. http) the two transport address refer to.