Class SessionProperties

All Implemented Interfaces:
Serializable, Cloneable, Map<Object,Object>

public class SessionProperties extends Properties implements Cloneable
Provides access to configuration properties which can affect the behavior of the CIM Client, including control over logs/tracing info, connection pool handling, connection timeout, JSSE providers, among others.
See Also:
  • Field Details

    • PULL_PARSER

      public static final int PULL_PARSER
      Parsing mode 'pull parser'.
      See Also:
    • SAX_PARSER

      public static final int SAX_PARSER
      Parsing moder 'SAX parser'.
      See Also:
    • DOM_PARSER

      public static final int DOM_PARSER
      Parsing mode 'DOM parser'.
      See Also:
    • WWW_AUTHENTICATION

      public static final String WWW_AUTHENTICATION
      Standard HTTP basic or digest authentication
    • PEGASUS_LOCAL_AUTHENTICATION

      public static final String PEGASUS_LOCAL_AUTHENTICATION
      OpenPegasus local authentication
  • Constructor Details

    • SessionProperties

      public SessionProperties()
      Constructs a new SessionProperties instance with library defaults applied.
      See Also:
  • Method Details

    • getGlobalProperties

      public static SessionProperties getGlobalProperties()
      Returns the SessionProperties singleton instance representing the global properties. The global properties are applied whenever no session specific properties are specified. The global properties are identical to the environment defaults after startup, but may be modified by the application during runtime.
      Returns:
      The global properties
    • getLibraryDefaults

      public static SessionProperties getLibraryDefaults()
      Returns the library default properties. These are the session properties that would be used if no property files was loaded and no modifications done by the application.
      Returns:
      The library defaults
    • getEnvironmentDefaults

      public static SessionProperties getEnvironmentDefaults()
      Returns the environment defaults. These are the session properties that are used after startup with no modifications done by the application. The properties file is applied.
      Returns:
      The environment properties.
      See Also:
    • getStringProperty

      public String getStringProperty(String key, String defaultValue)
      Gets the string represetation of property.
      Parameters:
      key - a String representing the property name.
      defaultValue - default value used in case of an error ocurrs while reading the value.
      Returns:
      The String value for the related key, otherwise the submitted defaultValue.
    • getIntProperty

      public int getIntProperty(String key, int defaultValue)
      Gets the integer represetation of property.
      Parameters:
      key - a String representing the property name.
      defaultValue - default value used in case of an error ocurrs while reading the value.
      Returns:
      The int value for the related key, otherwise the submitted devaultValue
    • getBooleanProperty

      public boolean getBooleanProperty(String key, boolean defaultValue)
      Gets the boolean representation of property.
      Parameters:
      key - a String representing the property name.
      defaultValue - default value used in case of an error ocurrs while reading the value.
      Returns:
      The boolean value for the related key, otherwise submitted defaultValue
    • getLevelProperty

      public Level getLevelProperty(String key, Level defaultValue)
      Gets the boolean representation of property.
      Parameters:
      key - a String representing the property name.
      defaultValue - default value used in case of an error ocurrs while reading the value.
      Returns:
      The Level value for the related key, othervide the submitted defaultValue
    • getDebugOutputStream

      public OutputStream getDebugOutputStream()
      Gets the output stream used to dump some debugging information.
      Returns:
      The currently used OutputStream
    • setDebugOutputStream

      public void setDebugOutputStream(OutputStream outputStream)
      Specifies the default output stream to dump debugging information, including the request/response xml documents.
      Parameters:
      outputStream - The OutputStream to use
    • getKeystore

      public String getKeystore()
      Gets the path of current keystore.
      Returns:
      The path of the current keystore
    • setKeystore

      public void setKeystore(String keystore)
      Specifies the path of the keystore.
      Parameters:
      keystore - The path to the keystore
    • getKeystoreType

      public String getKeystoreType()
      Gets the type of keystore.
      Returns:
      The type of the keystore (e.g. "JKS", "PKCS12")
    • setKeystoreType

      public void setKeystoreType(String type)
      Specifies the type of the keystore.
      Parameters:
      type - The type of the keystore (e.g. "JKS", "PKCS12")
    • getTruststore

      public String getTruststore()
      Gets the path of current truststore.
      Returns:
      The path to the truststore
    • setTruststore

      public void setTruststore(String truststore)
      Specifies the path of the truststore.
      Parameters:
      truststore - The path to the truststore
    • getTruststore_password

      public String getTruststore_password()
      Deprecated.
      For security reasons instead of this method, char[] getTruststorePassword() should be used.
      Gets the truststore password.
      Returns:
      The password for the truststore
    • getTruststorePassword

      public char[] getTruststorePassword()
      Gets the truststore password. Note that this method returns a clone of the object which contains the password. Every single character from the object returned by this method must be reset to 0x00 in order to prevent access to the password by malicious programs.
      Returns:
      The password for the truststore
    • setTruststore_password

      public void setTruststore_password(String newPassword)
      Deprecated.
      For security reasons this method should not be used. Instead setTruststore_password(char[] newPassword) should be used.
      Specifies the password for the truststore. A null password is used to reset the password.
      Parameters:
      newPassword - The new password for the truststore
    • setTruststore_password

      public void setTruststore_password(char[] newPassword)
      Specifies the password for the truststore. Note that the application is responsable of reseting the newPassword object in order to prevent malicious access to the password.
      Parameters:
      newPassword - The new password for the truststore
    • getKeystorePassword

      public char[] getKeystorePassword()
      Gets the keystore password. Note that this method returns a clone of the object which contains the password. Every single character from the object returned by this method must be reset to 0x00 in order to prevent access to the password by malicious programs.
      Returns:
      The password of the keystore
    • setKeystore_password

      public void setKeystore_password(char[] newPassword)
      Specifies the password for the keystore. Note that the application is responsable of reseting the newPassword object in order to prevent malicious access to the password.
      Parameters:
      newPassword - The new password for the truststore
    • getXmlParser

      public int getXmlParser()
      Gets the Xml Parsing mode.
      Returns:
      A value of 0- pullbase, 1 - SAX, 2 - DOM
    • setXmlParser

      public void setXmlParser(int parsingMode)
      Specifies the xml parsing mode.
      Parameters:
      parsingMode - An integer: 0 for pullbase, 1 for SAX, 2 for DOM.
      Throws:
      IllegalArgumentException - if the parsingMode is not in the range from 0 .. 2.
    • getHttpTimeOut

      public int getHttpTimeOut()
      Gets the HTTP connection request time out (in milliseconds).
      Returns:
      The time out for the HTTP connection
    • setHttpTimeOut

      public void setHttpTimeOut(int timeOut)
      Specifies the time out for HTTP connections.
      Parameters:
      timeOut - The new time out for the HTTP connection
      Throws:
      IllegalArgumentException - if the timeOut is not in the range from 0 .. Integer.MAX_VALUE.
    • isDebugXMLInput

      public boolean isDebugXMLInput()
      Determines if the XML from CIMOM's response will be dumped into the default debugging output stream.
      Returns:
      true if debuging of XML responses is enabled, otherwise false
    • setDebugXMLInput

      public void setDebugXMLInput(boolean enableDebugXMLInput)
      Specifies if the XML response from the CIMOM will be dumped into the default debugging output stream.
      Parameters:
      enableDebugXMLInput - The value to disable/enable debugging the XML responses
    • isDebugXMLOutput

      public boolean isDebugXMLOutput()
      Determines if the XML from request will be dumped into the default debugging output stream.
      Returns:
      true if debugging the XML requests is enabled, otherwise false
    • setDebugXMLOutput

      public void setDebugXMLOutput(boolean enableDebugXMLOutput)
      Specifies if the XML from the request will be dumped into the default debugging output stream.
      Parameters:
      enableDebugXMLOutput - The value to disable/enable debugging the XML requests.
    • isDebugInputStream

      public boolean isDebugInputStream()
      Determines if the response from the CIMOM's (before parsing the XML) will be dumped into the default debugging output stream.
      Returns:
      true if debugging the XML responses is enabled, otherwise false
    • setDebugInputStream

      public void setDebugInputStream(boolean enableDebugInputStream)
      Specifies if the input stream must be dumped into the default debugging output stream.
      Parameters:
      enableDebugInputStream - The value to disable/enable dumping the the input stream to the debugging output stream.
    • getConnectionPoolSize

      public int getConnectionPoolSize()
      Gets the connection pool size. A value of -1 means all the connections will be reused when it is possible. Zero or a positive value indicates the maximum number of HTTP connections to be reused by the application.
      Returns:
      The current size of possible connections in the connection pool.
    • setConnectionPoolSize

      public void setConnectionPoolSize(int poolSize)
      Specifies the maximum number of connection pools to be maitained alive, and later will be reused for additional request.
      Parameters:
      poolSize - The new size of possible connections.
      Throws:
      IllegalArgumentException - if the specified poolSize is not in the value range from -1 .. Integer.MAX_VALUE.
    • isDebugHttpConnectionPool

      public boolean isDebugHttpConnectionPool()
      Deprecated.
      This method is not used anywhere...
      Determines if the Http Connection Pool debugging is enabled or not.
      Returns:
      true if the debug ouput of the HTTP Connection pool is enabled, otherwise false
    • setDebugHttpConnectionPool

      public void setDebugHttpConnectionPool(boolean enableDebugHTTPPool)
      Deprecated.
      This method is never used at all...
      Activates or deactivates the HttpConnectionPool debugging information.
      Parameters:
      enableDebugHTTPPool - The value to disable/enable writing debug information of the HTTP Connection Pool.
    • getJSSEProvider

      public String getJSSEProvider()
      Gets the complete class name for the JSSE provider.
      Returns:
      The class name for the JSSE provider.
    • setJSSEProvider

      public void setJSSEProvider(String providerClassName)
      Specifies the complete class name for the JSSE provider.
      Parameters:
      providerClassName - The new class name for the JSSE provider.
    • getJSSEProtocol

      public String getJSSEProtocol()
      Returns:
      the JSSE Protocol
    • setJSSEProtocol

      public void setJSSEProtocol(String pProtocol)
      Parameters:
      pProtocol -
    • getJSSEProtocolHandler

      public String getJSSEProtocolHandler()
      Returns:
      The class name for JSSE protocol handler.
    • setJSSEProtocolHandler

      public void setJSSEProtocolHandler(String handlerClassName)
    • getSocketFactory

      public SocketFactory getSocketFactory()
      Gets the custom socket factory for client connections. This property is available at runtime only and cannot be set via the configuration file.
      Returns:
      The custom socket factory for client connections.
    • setSocketFactory

      public void setSocketFactory(SocketFactory factory)
      Specifies the custom socket factory for client connections. This property is available at runtime only and cannot be set via the configuration file.
      Parameters:
      factory - The custom socket factory. If null the client will use javax.net.SocketFactory.getDefault() or javax.net.ssl.SslSocketFactory.getDefault() factory respectively. Note that the client doesn't do a consistency check between the protocol and the custom socket factory.
    • getJSSECertificate

      public String getJSSECertificate()
      Gets the Certificate Managers name.
      Returns:
      The certificate manager name
    • setJSSECertificate

      public void setJSSECertificate(String jsseCertificateMgr)
      Specifies the JSSE certificate manager used for https connection.
      Parameters:
      jsseCertificateMgr - The new JSSE certificate manager
    • getLogger

      public Logger getLogger()
      Gets the default logger for this application.
      Returns:
      The current used Logger
    • setLogger

      public void setLogger(Logger newLogger)
      Allows applications to specify external Logger to be used by all the CIM clients. Supported on the global properties instance only.
      Parameters:
      newLogger - The new Logger to be used for logging
      Throws:
      IllegalStateException - When called on a non-global instance
      See Also:
    • isLoggingEnabled

      public boolean isLoggingEnabled()
      Determines if logging in general is enabled or not.
      Returns:
      true if logging is enabled, otherwise false
    • setLoggingEnabled

      public void setLoggingEnabled(boolean enableLogging)
      Specifies if logging in general is enabled or not. Supported on the global properties instance only.
      Parameters:
      enableLogging - The value to disable/enable logging.
      Throws:
      IllegalStateException - When called on a non-global instance
      See Also:
    • getLoggerConsoleLevel

      public Level getLoggerConsoleLevel()
      Get the current log level of the console log handler.
      Returns:
      The current log level of the console log handler
    • setLoggerConsoleLevel

      public void setLoggerConsoleLevel(Level loggerConsoleLevel)
      Specifies a new log level for the console log handler. Supported on the global properties instance only.
      Parameters:
      loggerConsoleLevel - The new log level for the console log handler
      Throws:
      IllegalStateException - When called on a non-global instance
      See Also:
    • getLoggerFileLevel

      public Level getLoggerFileLevel()
      Get the current log level of the file log handler.
      Returns:
      The current log level of the file log handler
    • setLoggerFileLevel

      public void setLoggerFileLevel(Level loggerFileLevel)
      Specifies a new log level for the file log handler Supported on the global properties instance only.
      Parameters:
      loggerFileLevel - The new log level for the file log handler.
      Throws:
      IllegalStateException - When called on a non-global instance
      See Also:
    • getLoggerNameSpace

      public String getLoggerNameSpace()
      Get the current used namespace for the logger.
      Returns:
      The current used namespace for the logger.
    • setLoggerNameSpace

      public void setLoggerNameSpace(String loggerNameSpace)
      Specifies a new namespace for the logger. Supported on the global properties instance only.
      Parameters:
      loggerNameSpace - The new namespace used for the logger.
      Throws:
      IllegalStateException - When called on a non-global instance
      See Also:
    • getLoggerOutputFile

      public String getLoggerOutputFile()
      Get the file name, log messages are written to.
      Returns:
      The file name of the log file.
    • setLoggerOutputFile

      public void setLoggerOutputFile(String loggerOutputFile)
      Specifies a new log file name Supported on the global properties instance only.
      Parameters:
      loggerOutputFile -
      Throws:
      IllegalStateException - When called on a non-global instance
      See Also:
    • isCredentialsDefaultEnabled

      public boolean isCredentialsDefaultEnabled()
      Determines if the usage of the default credentials is enabled or not.
      Returns:
      true if the usage of the default credentials is enabled, otherwise false
    • setCredentialsDefaultEnabled

      public void setCredentialsDefaultEnabled(boolean credentialsDefaultEnabled)
      Specifies if the usage of the default credentials must be used or not.
      Parameters:
      credentialsDefaultEnabled - The value to disable/enable the usage of the default credentials.
    • getDefaultCredentials

      public String getDefaultCredentials()
      Get the current credentials used if the usage of default credentials is enabled. The default credentials is aka password.
      Returns:
      The current credentials (password).
    • setDefaultCredentials

      public void setDefaultCredentials(String credentialsPassword)
      Specifies new default credentials to use if the usage of default credentials is enabled.
      Parameters:
      credentialsPassword - The new credential (password) to use.
    • getDefaultPrincipal

      public String getDefaultPrincipal()
      Get the current principal used if the usage of default credentials is enabled. The default principal is aka userID.
      Returns:
      The current principal (userID).
    • setDefaultPrincipal

      public void setDefaultPrincipal(String credentialsUser)
      Specifies new default principal to use if the usage of default credentials is enabled.
      Parameters:
      credentialsUser - The new principal (userID) to use.
    • getRetriesNumber

      public int getRetriesNumber()
      Get the number of retries that is set for the transmission of the cimXML request.
      Returns:
      The current number of retries.
    • setRetriesNumber

      public void setRetriesNumber(int retries)
      Specifies the new number of retries that is set for the transmission of the cimXML request.
      Parameters:
      retries - The new number of retries.
    • isContentLengthRetryEnabled

      public boolean isContentLengthRetryEnabled()
      Returns a boolean that indicates whether or not the content lenght retry mechanism is enabled.
      Returns:
      true if content length check is enabled, otherwise false
    • setContentLengthRetry

      public void setContentLengthRetry(boolean enableContentCheck)
      Enables or disables the content length retry mechanism.
      Parameters:
      enableContentCheck - The value to disable/enable the content length retry mechanism.
    • getContentLength

      public int getContentLength()
      Returns an integer that contains the content length that is being used for the retry mechanism.
      Returns:
      The content length.
    • setContentLength

      public void setContentLength(int contentLength)
      Determines the content length that is supposed to be used during the retry mechanism.
      Parameters:
      contentLength - The content length.
    • getHttpAuthenticationModule

      public String getHttpAuthenticationModule()
      Gets the HTTP authentication module
      Returns:
      the HTTP authentication module
    • setHttpAuthenticationModule

      public void setHttpAuthenticationModule(String pAuthenticationModule)
      Sets the HTTP authentication module
      Parameters:
      pAuthenticationModule - The authentication module
      See Also:
    • getSynchronizedSslHandshake

      public boolean getSynchronizedSslHandshake()
      Returns a boolean that indicates whether or not SSL handshakes should be synchronized.
      Returns:
      true if SSL handshakes should be synchronized, otherwise false
    • setSynchronizedSslHandshake

      public void setSynchronizedSslHandshake(boolean enableSynchronizedSslHandshake)
      Enables or disables the synchronization of SSL handshakes
      Parameters:
      enableSynchronizedSslHandshake - The value to disable/enable the SSL handshake synchronization mechanism.
    • loadProperties

      public boolean loadProperties(Properties properties)
      Loads the properties from the specified properties.
      Parameters:
      properties - An instance of properties.
      Returns:
      true if the property file could be loaded successfully, otherwise false is returned.
    • loadProperties

      public boolean loadProperties()
      Loads the properties from the default property file. The default property file name is "cim.defaults". If this file does not exist, the method tries to load from "cimclient.properties". If this file also does not exist, the default values will be used.
      Returns:
      true if the property file could be loaded successfully, otherwise false is returned.
    • loadProperties

      public boolean loadProperties(String pPropertyFile)
      Loads the properties from the specified file.
      Parameters:
      pPropertyFile - a String representing the file location.
      Returns:
      true if the property file could be loaded successfully, otherwise false is returned.
    • clone

      public Object clone()
      Overrides:
      clone in class Properties
    • isGlobal

      public boolean isGlobal()
      Determines if these session properties are the global properties.
      Returns:
      true if these session properties are the global ones
    • getPropertyFile

      public String getPropertyFile()
      Gets the properties file that was applied (by loadProperties() or loadProperties(String) this SessionProperties instance. If multiple files have been applied this method returns the last one. If no properties file has been applied the method returns null.
      Returns:
      The properties file