jade.core
Class Profile

java.lang.Object
  extended by jade.core.Profile
Direct Known Subclasses:
ProfileImpl

public abstract class Profile
extends java.lang.Object

This class allows retrieving configuration-dependent classes.

Version:
1.0, 22/11/00
Author:
Federico Bergenti, Giovanni Caire - TILAB

Field Summary
static java.lang.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 java.lang.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 java.lang.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 java.lang.String ANDROID
           
static java.lang.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 java.lang.String DEFAULT_SERVICES
           
static java.lang.String DEFAULT_SERVICES_NOMOBILITY
           
static java.lang.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 java.lang.String DUMP_OPTIONS
          This constant is the name of the property whose Boolean value tells whether startup options should be dumped.
static java.lang.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 java.lang.String GUI
           
static java.lang.String IMTP
          This constant is the key of the property whose value identifies the IMTP Manager to be created by ProfileImpl
static java.lang.String J2SE
           
static java.lang.String JVM
          This constant is the key of the property whose value contains the indication about the type of JVM.
static java.lang.String LEAP_IMTP
           
static java.lang.String LOCAL_HOST
          This constant is the name of the property whose value contains the host name the container must bind on.
static java.lang.String LOCAL_PORT
          This constant is the name of the TCP port the container node must listen to for incoming IMTP messages.
static java.lang.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 java.lang.String LOCALHOST_CONSTANT
           
static java.lang.String LOOPBACK_ADDRESS_CONSTANT
           
static java.lang.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 java.lang.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 java.lang.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 java.lang.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 java.lang.String MIDP
           
static java.lang.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 java.lang.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 java.lang.String NO_MTP
           
static java.lang.String OWNER
           
static java.lang.String PJAVA
           
static java.lang.String PLATFORM_ID
          This constant is the name of the property whose value contains the unique platform ID of a JADE platform.
static java.lang.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 java.lang.String RMI_IMTP
           
static java.lang.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 java.lang.String STYLE_3_X
           
static java.lang.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
Profile()
           
 
Method Summary
static boolean compareHostNames(java.lang.String host1, java.lang.String host2)
          Compares two host names/addresses regardless of whether they include domain or not.
static boolean compareTransportAddresses(java.lang.String addr1, java.lang.String addr2, IMTPManager imtpManager)
          Compares two stringified transport addresses.
static boolean compareTransportAddresses(TransportAddress ta1, TransportAddress ta2)
           
abstract  boolean getBooleanProperty(java.lang.String key, boolean aDefault)
          Retrieve a boolean value for a configuration property.
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.
protected abstract  jade.core.CommandProcessor getCommandProcessor()
          Obtain a reference to the container Command Processor, which manages kernel-level commands dispatching them to the proper platform services.
static java.lang.String getDefaultNetworkName()
           
protected abstract  IMTPManager getIMTPManager()
           
protected abstract  MainContainerImpl getMain()
           
abstract  java.lang.String getParameter(java.lang.String key, java.lang.String aDefault)
          Retrieve a String value from the configuration properties.
abstract  ResourceManager getResourceManager()
           
protected abstract  ServiceFinder getServiceFinder()
          Obtain a reference to the platform Service Finder, with which kernel-level services can be looked up.
protected abstract  ServiceManager getServiceManager()
          Obtain a reference to the platform Service Manager, with which kernel-level services can be added and removed.
abstract  List getSpecifiers(java.lang.String key)
          Retrieve a list of Specifiers from the configuration properties.
 boolean isBackupMain()
          Provides a boolean indication about whether or not the container using this Profile is a Backup Main Container.
static boolean isLocalHost(java.lang.String host)
          Check whether or not a given host name or address corresponds to a local network interface
 boolean isMain()
          Provides a boolean indication about whether or not the container using this Profile is a Main Container.
 boolean isMasterMain()
          Provides a boolean indication about whether or not the container using this Profile is the Master Main Container.
abstract  void setParameter(java.lang.String key, java.lang.String value)
          Assign the given value to the given property name.
abstract  void setSpecifiers(java.lang.String key, List value)
          Assign the given value to the given property name.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

MAIN

public static final java.lang.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 java.lang.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 java.lang.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 java.lang.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 java.lang.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

LOCAL_HOST

public static final java.lang.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 java.lang.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

GUI

public static final java.lang.String GUI
See Also:
Constant Field Values

LOCAL_SERVICE_MANAGER

public static final java.lang.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 java.lang.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 java.lang.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

OWNER

public static final java.lang.String OWNER
See Also:
Constant Field Values

DEFAULT_SERVICES

public static final java.lang.String DEFAULT_SERVICES
See Also:
Constant Field Values

DEFAULT_SERVICES_NOMOBILITY

public static final java.lang.String DEFAULT_SERVICES_NOMOBILITY
See Also:
Constant Field Values

PLATFORM_ID

public static final java.lang.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 java.lang.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 java.lang.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 java.lang.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 java.lang.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 java.lang.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

NO_MTP

public static final java.lang.String NO_MTP
See Also:
Constant Field Values

IMTP

public static final java.lang.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 java.lang.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

ACLCODECS

public static final java.lang.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 java.lang.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

STYLE_3_X

public static final java.lang.String STYLE_3_X
See Also:
Constant Field Values

FILE_DIR

public static final java.lang.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

DEFAULT_PORT

public static final int DEFAULT_PORT
See Also:
Constant Field Values

LOCALHOST_CONSTANT

public static final java.lang.String LOCALHOST_CONSTANT
See Also:
Constant Field Values

LOOPBACK_ADDRESS_CONSTANT

public static final java.lang.String LOOPBACK_ADDRESS_CONSTANT
See Also:
Constant Field Values

LEAP_IMTP

public static final java.lang.String LEAP_IMTP
See Also:
Constant Field Values

RMI_IMTP

public static final java.lang.String RMI_IMTP
See Also:
Constant Field Values

JVM

public static final java.lang.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

J2SE

public static final java.lang.String J2SE
See Also:
Constant Field Values

PJAVA

public static final java.lang.String PJAVA
See Also:
Constant Field Values

MIDP

public static final java.lang.String MIDP
See Also:
Constant Field Values

ANDROID

public static final java.lang.String ANDROID
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

getMain

protected abstract MainContainerImpl getMain()
                                      throws ProfileException
Throws:
ProfileException

getIMTPManager

protected abstract IMTPManager getIMTPManager()
                                       throws ProfileException
Throws:
ProfileException

getResourceManager

public abstract ResourceManager getResourceManager()
                                            throws ProfileException
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 java.lang.String getParameter(java.lang.String key,
                                              java.lang.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(java.lang.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(java.lang.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(java.lang.String key,
                                  java.lang.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(java.lang.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 java.lang.String getDefaultNetworkName()

isLocalHost

public static boolean isLocalHost(java.lang.String host)
Check whether or not a given host name or address corresponds to a local network interface


compareHostNames

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


compareTransportAddresses

public static boolean compareTransportAddresses(java.lang.String addr1,
                                                java.lang.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.


compareTransportAddresses

public static boolean compareTransportAddresses(TransportAddress ta1,
                                                TransportAddress ta2)