org.sblim.wbem.util

Class SessionProperties

Implemented Interfaces:
Cloneable

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.

Field Summary

static int
DOM_PARSER
Parsing mode 'DOM parser'.
static int
PULL_PARSER
Parsing mode 'pull parser'.
static int
SAX_PARSER
Parsing moder 'SAX parser'.

Constructor Summary

SessionProperties()
Constructs a new SessionProperties instance with library defaults applied.

Method Summary

Object
clone()
boolean
getBooleanProperty(String key, boolean defaultValue)
Gets the boolean representation of property.
int
getConnectionPoolSize()
Gets the connection pool size.
int
getContentLength()
Returns an integer that contains the content length that is being used for the retry mechanism.
OutputStream
getDebugOutputStream()
Gets the output stream used to dump some debugging information.
String
getDefaultCredentials()
Get the current credentials used if the usage of default credentials is enabled.
String
getDefaultPrincipal()
Get the current principal used if the usage of default credentials is enabled.
static SessionProperties
getEnvironmentDefaults()
Returns the environment defaults.
static SessionProperties
getGlobalProperties()
Returns the SessionProperties singleton instance representing the global properties.
int
getHttpTimeOut()
Gets the HTTP connection request time out (in milliseconds).
int
getIntProperty(String key, int defaultValue)
Gets the integer represetation of property.
String
getJSSECertificate()
Gets the Certificate Managers name.
String
getJSSEProvider()
Gets the complete class name for the JSSE provider.
String
getKeystore()
Gets the path of current keystore.
char[]
getKeystorePassword()
Gets the keystore password.
String
getKeystoreType()
Gets the type of keystore.
Level
getLevelProperty(String key, Level defaultValue)
Gets the boolean representation of property.
static SessionProperties
getLibraryDefaults()
Returns the library default properties.
Logger
getLogger()
Gets the default logger for this application.
Level
getLoggerConsoleLevel()
Get the current log level of the console log handler.
Level
getLoggerFileLevel()
Get the current log level of the file log handler.
String
getLoggerNameSpace()
Get the current used namespace for the logger.
String
getLoggerOutputFile()
Get the file name, log messages are written to.
String
getPropertyFile()
Gets the properties file that was applied (by loadProperties() or loadProperties(String) this SessionProperties instance.
int
getRetriesNumber()
Get the number of retries that is set for the transmission of the cimXML request.
SocketFactory
getSocketFactory()
Gets the custom socket factory for client connections.
String
getStringProperty(String key, String defaultValue)
Gets the string represetation of property.
String
getTruststore()
Gets the path of current truststore.
char[]
getTruststorePassword()
Gets the truststore password.
String
getTruststore_password()
Deprecated. For security reasons instead of this method, char[] getTruststorePassword() should be used.
int
getXmlParser()
Gets the Xml Parsing mode.
boolean
isContentLengthRetryEnabled()
Returns a boolean that indicates whether or not the content lenght retry mechanism is enabled.
boolean
isCredentialsDefaultEnabled()
Determines if the usage of the default credentials is enabled or not.
boolean
isDebugHttpConnectionPool()
Deprecated. This method is not used anywhere...
boolean
isDebugInputStream()
Determines if the response from the CIMOM's (before parsing the XML) will be dumped into the default debugging output stream.
boolean
isDebugXMLInput()
Determines if the XML from CIMOM's response will be dumped into the default debugging output stream.
boolean
isDebugXMLOutput()
Determines if the XML from request will be dumped into the default debugging output stream.
boolean
isGlobal()
Determines if these session properties are the global properties.
boolean
isLoggingEnabled()
Determines if logging in general is enabled or not.
boolean
loadProperties()
Loads the properties from the default property file.
boolean
loadProperties(Properties properties)
Loads the properties from the specified properties.
boolean
loadProperties(String pPropertyFile)
Loads the properties from the specified file.
void
setConnectionPoolSize(int poolSize)
Specifies the maximum number of connection pools to be maitained alive, and later will be reused for additional request.
void
setContentLength(int contentLength)
Determines the content length that is supposed to be used during the retry mechanism.
void
setContentLengthRetry(boolean enableContentCheck)
Enables or disables the content length retry mechanism.
void
setCredentialsDefaultEnabled(boolean credentialsDefaultEnabled)
Specifies if the usage of the default credentials must be used or not.
void
setDebugHttpConnectionPool(boolean enableDebugHTTPPool)
Deprecated. This method is never used at all...
void
setDebugInputStream(boolean enableDebugInputStream)
Specifies if the input stream must be dumped into the default debugging output stream.
void
setDebugOutputStream(OutputStream outputStream)
Specifies the default output stream to dump debugging information, including the request/response xml documents.
void
setDebugXMLInput(boolean enableDebugXMLInput)
Specifies if the XML response from the CIMOM will be dumped into the default debugging output stream.
void
setDebugXMLOutput(boolean enableDebugXMLOutput)
Specifies if the XML from the request will be dumped into the default debugging output stream.
void
setDefaultCredentials(String credentialsPassword)
Specifies new default credentials to use if the usage of default credentials is enabled.
void
setDefaultPrincipal(String credentialsUser)
Specifies new default principal to use if the usage of default credentials is enabled.
void
setHttpTimeOut(int timeOut)
Specifies the time out for HTTP connections.
void
setJSSECertificate(String jsseCertificateMgr)
Specifies the JSSE certificate manager used for https connection.
void
setJSSEProvider(String providerClassName)
Specifies the complete class name for the JSSE provider.
void
setKeystore(String keystore)
Specifies the path of the keystore.
void
setKeystoreType(String type)
Specifies the type of the keystore.
void
setKeystore_password(char[] newPassword)
Specifies the password for the keystore.
void
setLogger(Logger newLogger)
Allows applications to specify external Logger to be used by all the CIM clients.
void
setLoggerConsoleLevel(Level loggerConsoleLevel)
Specifies a new log level for the console log handler.
void
setLoggerFileLevel(Level loggerFileLevel)
Specifies a new log level for the file log handler Supported on the global properties instance only.
void
setLoggerNameSpace(String loggerNameSpace)
Specifies a new namespace for the logger.
void
setLoggerOutputFile(String loggerOutputFile)
Specifies a new log file name Supported on the global properties instance only.
void
setLoggingEnabled(boolean enableLogging)
Specifies if logging in general is enabled or not.
void
setRetriesNumber(int retries)
Specifies the new number of retries that is set for the transmission of the cimXML request.
void
setSocketFactory(SocketFactory factory)
Specifies the custom socket factory for client connections.
void
setTruststore(String truststore)
Specifies the path of the truststore.
void
setTruststore_password(String newPassword)
Deprecated. For security reasons this method should not be used.
void
setTruststore_password(char[] newPassword)
Specifies the password for the truststore.
void
setXmlParser(int parsingMode)
Specifies the xml parsing mode.

Field Details

DOM_PARSER

public static final int DOM_PARSER
Parsing mode 'DOM parser'.
Field Value:
2

PULL_PARSER

public static final int PULL_PARSER
Parsing mode 'pull parser'.
Field Value:
0

SAX_PARSER

public static final int SAX_PARSER
Parsing moder 'SAX parser'.
Field Value:
1

Constructor Details

SessionProperties

public SessionProperties()
Constructs a new SessionProperties instance with library defaults applied.

Method Details

clone

public Object clone()

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

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.

getContentLength

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

getDebugOutputStream

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

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).

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).

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.

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

getHttpTimeOut

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

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

getJSSECertificate

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

getJSSEProvider

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

getKeystore

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

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

getKeystoreType

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

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

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

getLogger

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

getLoggerConsoleLevel

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

getLoggerFileLevel

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

getLoggerNameSpace

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

getLoggerOutputFile

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

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

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.

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.

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.

getTruststore

public String getTruststore()
Gets the path of current truststore.
Returns:
The path to 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

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

getXmlParser

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

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

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

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

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

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

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

isGlobal

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

isLoggingEnabled

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

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(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(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.

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.

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.

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.

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.

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.

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.

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

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

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.

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.

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.

setHttpTimeOut

public void setHttpTimeOut(int timeOut)
Specifies the time out for HTTP connections.
Parameters:
timeOut - The new time out for the HTTP connection

setJSSECertificate

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

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.

setKeystore

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

setKeystoreType

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

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

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

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

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.

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.

setLoggerOutputFile

public void setLoggerOutputFile(String loggerOutputFile)
Specifies a new log file name Supported on the global properties instance only.
Parameters:
loggerOutputFile -

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.

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.

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.

setTruststore

public void setTruststore(String truststore)
Specifies the path of the truststore.
Parameters:
truststore - The path to 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

setXmlParser

public void setXmlParser(int parsingMode)
Specifies the xml parsing mode.
Parameters:
parsingMode - An integer: 0 for pullbase, 1 for SAX, 2 for DOM.

Copyright © 2005, 2006 IBM Corporation. All Rights Reserved.