com.adventnet.adaptors.clients.http
Class HttpClient

java.lang.Object
  |
  +--com.adventnet.adaptors.clients.AbstractClient
        |
        +--com.adventnet.adaptors.clients.http.HttpClient

public class HttpClient
extends AbstractClient

This class acts as the client side api for Http connector.


Inner Class Summary
(package private)  class HttpClient.MyThread
           
(package private)  class HttpClient.NotificationReceiver
           
 
Inner classes inherited from class com.adventnet.adaptors.clients.AbstractClient
AbstractClient.HeartBeatDiagnoser
 
Field Summary
(package private)  java.lang.Object adaptorInfo
           
(package private)  java.net.URLConnection connection
           
(package private)  boolean connectMode
           
(package private)  boolean enableNotif
           
(package private)  int hbinterval
           
(package private)  java.util.Hashtable hbTable
           
(package private)  boolean heartBeat
           
(package private)  java.lang.String host
           
(package private)  java.io.InputStream istream
           
(package private)  java.lang.String keyMgrAlg
           
(package private)  java.lang.String keyStore
           
(package private)  java.lang.String keyStorePassword
           
(package private)  java.lang.String keyStoreType
           
 java.lang.String mbeanServerID
           
(package private)  java.lang.Thread mythread
           
(package private)  java.io.OutputStream ostream
           
(package private)  int port
           
(package private)  java.net.ServerSocket server
           
(package private)  boolean sslSupport
           
(package private)  java.lang.Thread th
           
(package private)  boolean toBeStopped
           
(package private)  java.lang.String trustMgrAlg
           
(package private)  java.lang.String trustStore
           
(package private)  java.lang.String trustStorePassword
           
(package private)  java.lang.String trustStoreType
           
 
Fields inherited from class com.adventnet.adaptors.clients.AbstractClient
adaptorInfo, clientProp, heartBeatDiagnoser, heartBeatEnabled, heartBeatRate, host, isSubAgentAlive, listeners, port
 
Constructor Summary
HttpClient()
          Primary constructor HttpClient.
 
Method Summary
 void addHeartBeatListener(HeartBeatListener listener)
          Add the heart beat listener to this connector client
 void addNotificationListener(ObjectName name, NotificationListener listener, NotificationFilter filter, java.lang.Object handback)
          Enables a couple (listener,handback) for a registered MBean to be added using this client through the relevant adaptor.
 void addNotificationListener(ObjectName name, ObjectName listener, NotificationFilter filter, java.lang.Object handback)
          Enables a couple (listener,handback) for a registered MBean to be added using this client through the relevant adaptor.
 void authenticate(com.adventnet.agent.security.UserContext userContext)
          Authenticates the client to connect to the server.
 void connect(java.lang.String host, int port, java.lang.Object adaptorInfo)
          Initializes the communication
 ObjectInstance createMBean(java.lang.String className, ObjectName name)
          Instantiates and registers a MBean with the MBeanServer using this client through the relevant adaptor.
 ObjectInstance createMBean(java.lang.String className, ObjectName name, java.lang.Object[] params, java.lang.String[] signature)
          Instantiates and registers a MBean with the MBeanServer using this client through the relevant adaptor.The MBean server will use the DefaultLoaderRepository to load the class of the MBean.
 ObjectInstance createMBean(java.lang.String className, ObjectName name, ObjectName loaderName)
          Instantiates and registers a MBean with the MBeanServer using this client through the relevant adaptor.
 ObjectInstance createMBean(java.lang.String className, ObjectName name, ObjectName loaderName, java.lang.Object[] params, java.lang.String[] signature)
          Instantiates and registers a MBean with the MBeanServer using this client through the relevant adaptor.The class loader to be used is identified by its object name.
 java.io.ObjectInputStream deserialize(ObjectName objectName, byte[] data)
          De-serializes a byte array in the context of the class loader of an MBean.
 java.io.ObjectInputStream deserialize(java.lang.String className, byte[] data)
          De-serializes a byte array in the context of a given MBean class loader.
 java.io.ObjectInputStream deserialize(java.lang.String className, ObjectName objectName, byte[] data)
          De-serializes a byte array in the context of a given MBean class loader.
 void disconnect()
          Diconnects the communication with the adaptor.
 void enableHeartBeat(boolean flag)
          Enables the heart beat mechanism for this connector client.
 ObjectName getAdaptorObjectName()
          Gets the ObjectName of the adaptor to which the client got connected.
 java.lang.String getAdaptorVersion()
          Gets the version of the adaptor to which the client got connected.
 java.lang.Object getAttribute(ObjectName name, java.lang.String attribute)
          Gets the value of a specific attribute of a named MBean using this client through the relevant adaptor.
 AttributeList getAttributes(ObjectName name, java.lang.String[] attributes)
          Gets the values of several attributes of a named MBean using this client through the relevant adaptor.
 java.lang.String getDefaultDomain()
          Returns the default domain used for naming the MBean.
 int getHeartBeatRate()
          Gets the heart beat rate time interval(in msec) at the connector client.
 java.lang.Integer getMBeanCount()
          Returns the number of MBeans controlled by the MBeanServer using this client through the relevant adaptor.
 MBeanInfo getMBeanInfo(ObjectName name)
          This method discovers the attributes and operations that an MBean exposes for management using this client through the relevant adaptor.When flatten is false, inherited attributes are not returned.
 java.lang.String getMBeanServerID()
          Gets the MBeanServerID .
 boolean getNotificationEnabled()
          Specifies whether the notification receiver of the HttpClient is Enabled/Disabled.
 int getNotificationReceiverPort()
          Returns the notification receiver (server) port number at which this client listens for notifications.
 ObjectInstance getObjectInstance(ObjectName name)
          Gets the ObjectInstance for a given MBean registered with the MBean server using this client through the relevant adaptor.
 java.lang.Object instantiate(java.lang.String className)
          Instantiates an object using the class loaders registered in the MBean server (Default Loader Repository using this client through the relevant adaptor.
 java.lang.Object instantiate(java.lang.String className, java.lang.Object[] params, java.lang.String[] signature)
          Instantiates an object using the list of all class loaders registered in the MBean server (Default Loader Repository) using this client through the relevant adaptor.The object's class should have a public constructor.
 java.lang.Object instantiate(java.lang.String className, ObjectName loaderName)
          Instantiates an object using the class Loader specified by its ObjectName using this client through the relevant adaptor.
 java.lang.Object instantiate(java.lang.String className, ObjectName loaderName, java.lang.Object[] params, java.lang.String[] signature)
          Instantiates an object using this client through the relevant adaptor.
 java.lang.Object invoke(ObjectName name, java.lang.String actionName, java.lang.Object[] params, java.lang.String[] signature)
          Invokes an action on an MBean using this client through the relevant adaptor.
 boolean isAuthenticationEnabled()
          Dummy implementation to check if Authentication is enabled will return false, subclasses can override to provide their own implementations
 java.lang.Boolean isConnectedWithAdaptor()
          Indicates whether the HTTP client is connected with the HTTP adaptor.
 boolean isHeartBeatEnabled()
          Specifies whether the heart beat mechanism is enabled for this connector client
 boolean isInstanceOf(ObjectName name, java.lang.String className)
          Returns true if the MBean specified is an instance of the specified class, false otherwise.
 boolean isRegistered(ObjectName name)
          Checks whether an MBean, identified by its object name, is already registered with the MBeanServer using this client through the relevant adaptor.
 boolean isSSLSupportEnabled()
          Indicates whether SSL Support is enabled or disabled in the HttpClient
 java.util.Set queryMBeans(ObjectName name, QueryExp query)
          Gets MBeans controlled by the MBeanServer using this client through the relevant adaptor.
 java.util.Set queryNames(ObjectName name, QueryExp query)
          Gets the names of MBeans controlled by the MBeanServer using this client through the relevant adaptor.
 ObjectInstance registerAsModelMBean(java.lang.Object mbean, java.lang.String xmlFile, ObjectName name)
          Remote method call which registers the MBean.
 ObjectInstance registerMBean(java.lang.Object className, ObjectName name)
          Registers a pre-existing object as an MBean with the MBeanServer using this client through the relevant adaptor.
 void removeHeartBeatListener(HeartBeatListener listener)
          Remove a heart beat listener from this connector client
 void removeNotificationListener(ObjectName name, NotificationListener listener)
          Enables a listener for an MBean to be removed using this client through the relevant adaptor.
 void removeNotificationListener(ObjectName name, ObjectName listener)
          Enables a listener for an MBean to be removed using this client through the relevant adaptor.
 void sendHeartBeatEvent()
          This abstract method is the Heart Beat Event Generator
 void setAttribute(ObjectName name, Attribute attribute)
          Sets the value of a specific attribute of a named MBean using this client through the relevant adaptor.
 AttributeList setAttributes(ObjectName name, AttributeList attributes)
          Sets the values of several attributes of a named MBean using this client through the relevant adaptor.
 void setHeartBeatRate(int rate)
          Sets the heart beat rate time interval(in msec) at the connector client.
 void setKeyMgrAlg(java.lang.String keymgralg)
          Sets the value for the keymanager algorithm.
 void setKeyStore(java.lang.String keystr)
          Sets the value for the name of the keystore.
 void setKeyStorePassword(java.lang.String keystrpwd)
          Sets the value for the keyStorePassword.
 void setKeyStoreType(java.lang.String keystrtype)
          Sets the value for the keyStoreType.
 void setNotificationEnabled(boolean enableNotif)
          Enables/Disables the notification receiver of the HttpClient.
 void setNotificationReceiverPort(int port)
          Sets the notification receiver (server) port number at which this client listens for notifications.
 void setSSLSupportEnabled(boolean sslSupport)
          Enables/Disables the SSL Support of the HttpClient.
 void setTrustMgrAlg(java.lang.String trustmgralg)
          Sets the value for the trustmanager algorithm.
 void setTrustStore(java.lang.String truststr)
          Sets the value for the name of the trustStore.
 void setTrustStorePassword(java.lang.String truststrpwd)
          Sets the value for the truststore password.
 void setTrustStoreType(java.lang.String truststrtype)
          Sets the value for the truststore type.
 void unregisterMBean(ObjectName name)
          De-registers an MBean from the MBeanServer using this client through the relevant adaptor.
 
Methods inherited from class com.adventnet.adaptors.clients.AbstractClient
asyncGetAttribute, asyncGetAttributes, asyncInvoke, asyncSetAttributes, setProperty, startHeartBeat, stopHeartBeat
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

host

java.lang.String host

port

int port

adaptorInfo

java.lang.Object adaptorInfo

connection

java.net.URLConnection connection

istream

java.io.InputStream istream

ostream

java.io.OutputStream ostream

sslSupport

boolean sslSupport

keyStore

java.lang.String keyStore

keyStoreType

java.lang.String keyStoreType

keyStorePassword

java.lang.String keyStorePassword

trustStore

java.lang.String trustStore

trustStoreType

java.lang.String trustStoreType

trustStorePassword

java.lang.String trustStorePassword

keyMgrAlg

java.lang.String keyMgrAlg

trustMgrAlg

java.lang.String trustMgrAlg

mbeanServerID

public java.lang.String mbeanServerID

enableNotif

boolean enableNotif

th

java.lang.Thread th

connectMode

boolean connectMode

server

java.net.ServerSocket server

heartBeat

boolean heartBeat

hbinterval

int hbinterval

mythread

java.lang.Thread mythread

toBeStopped

boolean toBeStopped

hbTable

java.util.Hashtable hbTable
Constructor Detail

HttpClient

public HttpClient()
Primary constructor HttpClient.
Method Detail

setSSLSupportEnabled

public void setSSLSupportEnabled(boolean sslSupport)
Enables/Disables the SSL Support of the HttpClient. This must be set before the connect method is called.
Parameters:
enableNotif - If true Enables SSL support in the HttpClient and if False Disables SSL support in the HttpClient.

isSSLSupportEnabled

public boolean isSSLSupportEnabled()
Indicates whether SSL Support is enabled or disabled in the HttpClient
Returns:
True, if SSL Support is enabled in the HttpClient else False.

getNotificationReceiverPort

public int getNotificationReceiverPort()
Returns the notification receiver (server) port number at which this client listens for notifications.
Returns:
the notification receiver (server) port number at which this client listens for notifications.
See Also:
setNotificationReceiverPort

setNotificationReceiverPort

public void setNotificationReceiverPort(int port)
Sets the notification receiver (server) port number at which this client listens for notifications. This must be set before the connect method is called.
Parameters:
port - the notification receiver (server) port number at which this client listens for notifications.
See Also:
getNotificationReceiverPort

setNotificationEnabled

public void setNotificationEnabled(boolean enableNotif)
Enables/Disables the notification receiver of the HttpClient. This must be set before the connect method is called.
Parameters:
enableNotif - If true Enables the notification receiver of the HttpClient and if False Disables the notification receiver of the HttpClient.
See Also:
getNotificationEnabled

getNotificationEnabled

public boolean getNotificationEnabled()
Specifies whether the notification receiver of the HttpClient is Enabled/Disabled. By default the notification receiver is started in a random port.
Returns:
True, if the notification receiver of the HttpClient is Enabled else False.
See Also:
setNotificationEnabled

setKeyStore

public void setKeyStore(java.lang.String keystr)
Sets the value for the name of the keystore.
Parameters:
keystr - name of the keystore.

setKeyStoreType

public void setKeyStoreType(java.lang.String keystrtype)
Sets the value for the keyStoreType. The default value is "JKS".
Parameters:
keystrtype - value for the keystore type.

setKeyStorePassword

public void setKeyStorePassword(java.lang.String keystrpwd)
Sets the value for the keyStorePassword.
Parameters:
keystrpwd - value for the keystore password.

setTrustStore

public void setTrustStore(java.lang.String truststr)
Sets the value for the name of the trustStore.
Parameters:
truststr - name of the trustStore.

setTrustStoreType

public void setTrustStoreType(java.lang.String truststrtype)
Sets the value for the truststore type. The default value is "JKS"
Parameters:
truststrtype - value for the truststore type.

setTrustStorePassword

public void setTrustStorePassword(java.lang.String truststrpwd)
Sets the value for the truststore password.
Parameters:
truststrpwd - value for the truststore password.

setKeyMgrAlg

public void setKeyMgrAlg(java.lang.String keymgralg)
Sets the value for the keymanager algorithm. The default value is "SunX509".
Parameters:
keymgralg - value for the keymanager algorithm.

setTrustMgrAlg

public void setTrustMgrAlg(java.lang.String trustmgralg)
Sets the value for the trustmanager algorithm. The default value is "SunX509"
Parameters:
trustmgralg - value for the trustmanager algorithm.

connect

public void connect(java.lang.String host,
                    int port,
                    java.lang.Object adaptorInfo)
             throws java.net.ConnectException
Initializes the communication
Overrides:
connect in class AbstractClient
Parameters:
host - The host name of the adaptor.
port - The port number of the adaptor.
adaptorInfo - The information object specific to the adaptor.
Throws:
java.net.ConnectException -  

deserialize

public java.io.ObjectInputStream deserialize(ObjectName objectName,
                                             byte[] data)
                                      throws InstanceNotFoundException,
                                             OperationsException
Description copied from interface: MBeanServer

De-serializes a byte array in the context of the class loader of an MBean.

Tags copied from interface: MBeanServer
Parameters:
name - The name of the MBean whose class loader should be used for the de-serialization.
data - The byte array to be de-sererialized.
Returns:
The de-serialized object stream.
Throws:
InstanceNotFoundException - The MBean specified is not found.
OperationsException - Any of the usual Input/Output related exceptions.

deserialize

public java.io.ObjectInputStream deserialize(java.lang.String className,
                                             byte[] data)
                                      throws OperationsException,
                                             ReflectionException
Description copied from interface: MBeanServer

De-serializes a byte array in the context of a given MBean class loader. The class loader is found by loading the class className through the Class Loader Repository. The resultant class's class loader is the one to use.

Tags copied from interface: MBeanServer
Parameters:
className - The name of the class whose class loader should be used for the de-serialization.
data - The byte array to be de-sererialized.
Returns:
The de-serialized object stream.
Throws:
OperationsException - Any of the usual Input/Output related exceptions.
ReflectionException - The specified class could not be loaded by the class loader repository

deserialize

public java.io.ObjectInputStream deserialize(java.lang.String className,
                                             ObjectName objectName,
                                             byte[] data)
                                      throws InstanceNotFoundException,
                                             OperationsException,
                                             ReflectionException
Description copied from interface: MBeanServer

De-serializes a byte array in the context of a given MBean class loader. The class loader is the one that loaded the class with name "className". The name of the class loader to be used for loading the specified class is specified. If null, the MBean Server's class loader will be used.

Tags copied from interface: MBeanServer
Parameters:
className - The name of the class whose class loader should be used for the de-serialization.
data - The byte array to be de-sererialized.
loaderName - The name of the class loader to be used for loading the specified class. If null, the MBean Server's class loader will be used.
Returns:
The de-serialized object stream.
Throws:
InstanceNotFoundException - The specified class loader MBean is not found.
OperationsException - Any of the usual Input/Output related exceptions.
ReflectionException - The specified class could not be loaded by the specified class loader.

authenticate

public void authenticate(com.adventnet.agent.security.UserContext userContext)
                  throws com.adventnet.agent.security.AuthenticationException
Authenticates the client to connect to the server.
Overrides:
authenticate in class AbstractClient
Parameters:
UserContext -  

isAuthenticationEnabled

public boolean isAuthenticationEnabled()
Description copied from class: AbstractClient
Dummy implementation to check if Authentication is enabled will return false, subclasses can override to provide their own implementations
Overrides:
isAuthenticationEnabled in class AbstractClient

queryMBeans

public java.util.Set queryMBeans(ObjectName name,
                                 QueryExp query)
Gets MBeans controlled by the MBeanServer using this client through the relevant adaptor. This method allows any of the following to be obtained: All MBeans, a set of MBeans specified by pattern matching on the ObjectName and/or a Query expression, a specific MBean. When the object name is null or empty, all objects are to be selected (and filtered if a query is specified). It returns the set of ObjectInstance objects (containing the ObjectName and the Java Class name) for the selected MBeans.
Parameters:
name - The object name pattern identifying the MBeans to be retrieved. If null orempty all the MBeans registered will be retrieved.
query - The query expression to be applied for selecting MBeans.
Returns:
A set containing the ObjectInstance objects for the selected MBeans. If no MBean satisfies the query an empty list is returned.

disconnect

public void disconnect()
Diconnects the communication with the adaptor.
Overrides:
disconnect in class AbstractClient

getAdaptorVersion

public java.lang.String getAdaptorVersion()
                                   throws java.lang.Exception
Gets the version of the adaptor to which the client got connected.
Returns:
The version of the adaptor to which the client got connected.

getAdaptorObjectName

public ObjectName getAdaptorObjectName()
                                throws java.lang.Exception
Gets the ObjectName of the adaptor to which the client got connected.
Returns:
The ObjectName of the adaptor to which the client got connected.

isConnectedWithAdaptor

public java.lang.Boolean isConnectedWithAdaptor()
                                         throws java.net.NoRouteToHostException
Indicates whether the HTTP client is connected with the HTTP adaptor.
Overrides:
isConnectedWithAdaptor in class AbstractClient
Returns:
True, if the HTTP client is connected with the HTTP adaptor else False.
Throws:
java.net.NoRouteToHostException -  

enableHeartBeat

public void enableHeartBeat(boolean flag)
Enables the heart beat mechanism for this connector client. Enable heartbeat only after connecting this connector client with the connector.
Overrides:
enableHeartBeat in class AbstractClient
Parameters:
boolean -  

getHeartBeatRate

public int getHeartBeatRate()
Gets the heart beat rate time interval(in msec) at the connector client. Default is 2000 msec i.e 2 seconds
Overrides:
getHeartBeatRate in class AbstractClient
Returns:
The heart beat rate time interval(in msec) at the connector client.

setHeartBeatRate

public void setHeartBeatRate(int rate)
Sets the heart beat rate time interval(in msec) at the connector client. Default is 2000 msec i.e 2 seconds
Overrides:
setHeartBeatRate in class AbstractClient
Parameters:
rate - The heart beat rate time interval(in msec) at the connector client.

sendHeartBeatEvent

public void sendHeartBeatEvent()
Description copied from class: AbstractClient
This abstract method is the Heart Beat Event Generator
Overrides:
sendHeartBeatEvent in class AbstractClient

isHeartBeatEnabled

public boolean isHeartBeatEnabled()
Specifies whether the heart beat mechanism is enabled for this connector client
Overrides:
isHeartBeatEnabled in class AbstractClient
Returns:
True, if the heart beat mechanism is enabled for this connector client else False.

addHeartBeatListener

public void addHeartBeatListener(HeartBeatListener listener)
Add the heart beat listener to this connector client
Overrides:
addHeartBeatListener in class AbstractClient
Parameters:
listener - The Listener Object which will handles the HeartBeat.
See Also:
removeHeartBeatListener

removeHeartBeatListener

public void removeHeartBeatListener(HeartBeatListener listener)
Remove a heart beat listener from this connector client
Overrides:
removeHeartBeatListener in class AbstractClient
Parameters:
listener - The Listener Object which will handles the HeartBeat.
See Also:
addHeartBeatListener

addNotificationListener

public void addNotificationListener(ObjectName name,
                                    NotificationListener listener,
                                    NotificationFilter filter,
                                    java.lang.Object handback)
                             throws InstanceNotFoundException
Enables a couple (listener,handback) for a registered MBean to be added using this client through the relevant adaptor.
Parameters:
name - The name of the MBean on which the listener should be added.
listener - The listener object which will handles notifications emitted by the registered MBean.
filter - The filter object. If not specified, no filtering will be performed before handling notifications.
handback - The context to be sent to the listener when a notification is emitted.
Throws:
InstanceNotFoundException - The MBean name doesn't correspond to a registered MBean.

addNotificationListener

public void addNotificationListener(ObjectName name,
                                    ObjectName listener,
                                    NotificationFilter filter,
                                    java.lang.Object handback)
                             throws InstanceNotFoundException
Enables a couple (listener,handback) for a registered MBean to be added using this client through the relevant adaptor.
Parameters:
name - The name of the MBean on which the listener should be added.
listener - The listener name which will handles notifications emitted by the registered MBean.
filter - The filter object. If not specified, no filtering will be performed before handling notifications.
handback - The context to be sent to the listener when a notification is emitted.
Throws:
InstanceNotFoundException - The MBean name doesn't correspond to a registered MBean.

createMBean

public ObjectInstance createMBean(java.lang.String className,
                                  ObjectName name)
                           throws ReflectionException,
                                  InstanceAlreadyExistsException,
                                  MBeanRegistrationException,
                                  MBeanException,
                                  NotCompliantMBeanException,
                                  RuntimeOperationsException
Instantiates and registers a MBean with the MBeanServer using this client through the relevant adaptor. The MBean server will use the DefaultLoaderRepository to load the class of the MBean. An object name is associated to the MBean. If the object name given is null, the MBean can automatically provide its own name by implementing the MBeanRegistration interface. The call returns a reference to the new instance and its object name.
Parameters:
className - The class name of the MBean to be instantiated.
name - The object name of the MBean. May be null.
Returns:
An ObjectInstance, containing the ObjectName and the Java class name of the newly instantiated MBean.
Throws:
ReflectionException - Wraps a ClassNotFoundException or a java.lang.Exception that occured trying to invoke the MBean's constructor.
InstanceAlreadyExistsException - The MBean is already under the control of the MBeanServer.
MBeanRegistrationException - The preRegister (MBeanRegistration interface) method of the MBean has thrown an exception. The MBean will not be registered.
MBeanException - The constructor of the MBean has thrown an exception
NotCompliantMBeanException - This class is not an JMX compliant MBean
RuntimeOperationsException - Wraps a java.lang.IllegalArgumentException: The className passed in parameter is null, the ObjectName passed in parameter contains a pattern or no ObjectName is specified for the MBean.

createMBean

public ObjectInstance createMBean(java.lang.String className,
                                  ObjectName name,
                                  java.lang.Object[] params,
                                  java.lang.String[] signature)
                           throws ReflectionException,
                                  InstanceAlreadyExistsException,
                                  MBeanRegistrationException,
                                  MBeanException,
                                  NotCompliantMBeanException,
                                  RuntimeOperationsException
Instantiates and registers a MBean with the MBeanServer using this client through the relevant adaptor.The MBean server will use the DefaultLoaderRepository to load the class of the MBean. An object name is associated to the MBean. If the object name given is null, the MBean can automatically provide its own name by implementing the MBeanRegistration interface. The call returns a reference to the new instance and its object name.
Parameters:
className - The class name of the MBean to be instantiated.
name - The object name of the MBean. May be null.
params - An array containing the parameters of the constructor to be invoked.
signature - An array containing the signature of the constructor to be invoked.
Returns:
An ObjectInstance, containing the ObjectName and the Java class name of the newly instantiated MBean.
Throws:
ReflectionException - Wraps a ClassNotFoundException or a java.lang.Exception that occured trying to invoke the MBean's constructor.
InstanceAlreadyExistsException - The MBean is already under the control of the MBeanServer.
MBeanRegistrationException - The preRegister (MBeanRegistration interface) method of the MBean has thrown an exception. The MBean will not be registered.
MBeanException - The constructor of the MBean has thrown an exception
NotCompliantMBeanException - This class is not an JMX compliant MBean
RuntimeOperationsException - Wraps a java.lang.IllegalArgumentException: The className passed in parameter is null, the ObjectName passed in parameter contains a pattern or no ObjectName is specified for the MBean.

createMBean

public ObjectInstance createMBean(java.lang.String className,
                                  ObjectName name,
                                  ObjectName loaderName)
                           throws ReflectionException,
                                  InstanceAlreadyExistsException,
                                  MBeanRegistrationException,
                                  MBeanException,
                                  NotCompliantMBeanException,
                                  InstanceNotFoundException,
                                  RuntimeOperationsException
Instantiates and registers a MBean with the MBeanServer using this client through the relevant adaptor. The class loader to be used is identified by its object name. An object name is associated to the MBean. If the object name of the loader is null, the system ClassLoader will be used.If the MBean's object name given is null, the MBean can automatically provide its own name by implementing the MBeanRegistration interface. The call returns a reference to the new instance and its object name.
Parameters:
className - The class name of the MBean to be instantiated.
name - The object name of the MBean. May be null.
loaderName - The object name of the class loader to be used.
Returns:
An ObjectInstance, containing the ObjectName and the Java class name of the newly instantiated MBean.
Throws:
ReflectionException - Wraps a ClassNotFoundException or a java.lang.Exception that occured trying to invoke the MBean's constructor.
InstanceAlreadyExistsException - The MBean is already under the control of the MBeanServer.
MBeanRegistrationException - The preRegister (MBeanRegistration interface) method of the MBean has thrown an exception. The MBean will not be registered.
MBeanException - The constructor of the MBean has thrown an exception
NotCompliantMBeanException - This class is not an JMX compliant MBean
InstanceNotFoundException - The specified class loader is not registered in the MBeanServer.
RuntimeOperationsException - Wraps a java.lang.IllegalArgumentException: The className passed in parameter is null, the ObjectName passed in parameter contains a pattern or no ObjectName is specified for the MBean.

createMBean

public ObjectInstance createMBean(java.lang.String className,
                                  ObjectName name,
                                  ObjectName loaderName,
                                  java.lang.Object[] params,
                                  java.lang.String[] signature)
                           throws ReflectionException,
                                  InstanceAlreadyExistsException,
                                  MBeanRegistrationException,
                                  MBeanException,
                                  NotCompliantMBeanException,
                                  InstanceNotFoundException,
                                  RuntimeOperationsException
Instantiates and registers a MBean with the MBeanServer using this client through the relevant adaptor.The class loader to be used is identified by its object name. An object name is associated to the MBean. If the object name of the loader is not specified, the system ClassLoader will be used.If the MBean object name given is null, the MBean can automatically provide its own name by implementing the MBeanRegistration interface. The call returns a reference to the new instance and its object name.
Parameters:
className - The class name of the MBean to be instantiated.
name - The object name of the MBean. May be null.
params - An array containing the parameters of the constructor to be invoked.
signature - An array containing the signature of the constructor to be invoked.
loaderName - The object name of the class loader to be used.
Returns:
An ObjectInstance, containing the ObjectName and the Java class name of the newly instantiated MBean.
Throws:
ReflectionException - Wraps Wraps a ClassNotFoundException or a java.lang.Exception that occured trying to invoke the MBean's constructor.
InstanceAlreadyExistsException - The MBean is already under the control of the MBeanServer.
MBeanRegistrationException - The preRegister (MBeanRegistration interface) method of the MBean has thrown an exception. The MBean will not be registered.
MBeanException - The constructor of the MBean has thrown an exception
NotCompliantMBeanException - This class is not an JMX compliant MBean
InstanceNotFoundException - The specified class loader is not registered in the MBeanServer.
RuntimeOperationsException - Wraps a java.lang.IllegalArgumentException: The className passed in parameter is null, the ObjectName passed in parameter contains a pattern or no ObjectName is specified for the MBean.

getAttribute

public java.lang.Object getAttribute(ObjectName name,
                                     java.lang.String attribute)
                              throws MBeanException,
                                     AttributeNotFoundException,
                                     InstanceNotFoundException,
                                     ReflectionException
Gets the value of a specific attribute of a named MBean using this client through the relevant adaptor. The MBean is identified by its object name.
Parameters:
name - The object name of the MBean from which the attribute is to be retrieved.
attribute - A String specifying the name of the attribute to be retrieved.
Returns:
The value of the retrieved attribute.
Throws:
AttributeNotFoundException - The specified attribute is not accessible in the MBean.
MBeanException - Wraps an exception thrown by the MBean's getter.
InstanceNotFoundException - The specified MBean is not registered in the MBeanServer.
ReflectionException - Wraps an java.lang.Exception thrown while trying to invoke the setter.
See Also:
getAttributes

getAttributes

public AttributeList getAttributes(ObjectName name,
                                   java.lang.String[] attributes)
                            throws InstanceNotFoundException,
                                   ReflectionException
Gets the values of several attributes of a named MBean using this client through the relevant adaptor. The MBean is identified by its object name.
Parameters:
name - The object name of the MBean from which the attributes are to be retrieved.
attributes - A list of the attributes to be retrieved.
Returns:
The list of the retrieved attributes.
Throws:
InstanceNotFoundException - The specified MBean is not registered in the MBeanServer.
ReflectionException - An exception occurred when trying to invoke the getAttributes method of a Dynamic MBean.
See Also:
getAttribute

getDefaultDomain

public java.lang.String getDefaultDomain()
Returns the default domain used for naming the MBean. using this client through the relevant adaptor. The default domain name is used as the domain part in the ObjectName of MBeans if no domain is specified by the user.
Returns:
The default domain used for naming the MBean.

getMBeanCount

public java.lang.Integer getMBeanCount()
Returns the number of MBeans controlled by the MBeanServer using this client through the relevant adaptor.
Returns:
The number of MBeans controlled by the MBeanServer using this client through the relevant adaptor.

getMBeanInfo

public MBeanInfo getMBeanInfo(ObjectName name)
                       throws InstanceNotFoundException,
                              IntrospectionException,
                              ReflectionException
This method discovers the attributes and operations that an MBean exposes for management using this client through the relevant adaptor.When flatten is false, inherited attributes are not returned.
Parameters:
name - The name of the MBean to analyze
Returns:
An instance of MBeanInfo allowing to retrieve all attributes and operations of this MBean.
Throws:
java.beans.IntrospectionException - An exception occurs during introspection.
InstanceNotFoundException - The specified MBean is not found.
ReflectionException - An exception occurred when trying to invoke the getMBeanInfo of a Dynamic MBean.

getObjectInstance

public ObjectInstance getObjectInstance(ObjectName name)
                                 throws InstanceNotFoundException
Gets the ObjectInstance for a given MBean registered with the MBean server using this client through the relevant adaptor.
Parameters:
name - The object name of the MBean.
Returns:
The ObjectInstance associated to the MBean specified by name.
Throws:
InstanceNotFoundException - The MBean specified is not registered in the MBean server.

instantiate

public java.lang.Object instantiate(java.lang.String className)
                             throws ReflectionException,
                                    MBeanException
Instantiates an object using the class loaders registered in the MBean server (Default Loader Repository using this client through the relevant adaptor. The object's class should have a public constructor. It returns a reference to the newly created object. The newly created object is not registered in the MBean server.
Parameters:
className - The class name of the object to be instantiated.
Returns:
The newly instantiated object.
Throws:
ReflectionException - Wraps a ClassNotFoundException or the java.lang.Exception that occured trying to invoke the object's constructor.
MBeanException - The constructor of the object has thrown an exception
RuntimeOperationsException - Wraps a java.lang.IllegalArgumentException: The className passed in parameter is null.

instantiate

public java.lang.Object instantiate(java.lang.String className,
                                    java.lang.Object[] params,
                                    java.lang.String[] signature)
                             throws ReflectionException,
                                    MBeanException
Instantiates an object using the list of all class loaders registered in the MBean server (Default Loader Repository) using this client through the relevant adaptor.The object's class should have a public constructor. The call returns a reference to the newly created object. The newly created object is not registered in the MBean server.
Parameters:
className - The class name of the object to be instantiated.
params - An array containing the parameters of the constructor to be invoked.
signature - An array containing the signature of the constructor to be invoked.
Returns:
The newly instantiated object.
Throws:
ReflectionException - Wraps a ClassNotFoundException or the java.lang.Exception that occured trying to invoke the object's constructor.
MBeanException - The constructor of the object has thrown an exception
RuntimeOperationsException - Wraps a java.lang.IllegalArgumentException: The className passed in parameter is null.

instantiate

public java.lang.Object instantiate(java.lang.String className,
                                    ObjectName loaderName)
                             throws ReflectionException,
                                    MBeanException,
                                    InstanceNotFoundException
Instantiates an object using the class Loader specified by its ObjectName using this client through the relevant adaptor. If the loader name is null, the ClassLoader that loaded the MBean Server will be used. The object's class should have a public constructor. It returns a reference to the newly created object. The newly created object is not registered in the MBean server.
Parameters:
className - The class name of the object to be instantiated.
loaderName - The object name of the class loader to be used.
Returns:
The newly instantiated object.
Throws:
ReflectionException - Wraps a ClassNotFoundException or the java.lang.Exception that occured trying to invoke the object's constructor.
MBeanException - The constructor of the object has thrown an exception
InstanceNotFoundException - The specified class loader is not registered in the MBeanServer.
RuntimeOperationsException - Wraps a java.lang.IllegalArgumentException: The className passed in parameter is null.

instantiate

public java.lang.Object instantiate(java.lang.String className,
                                    ObjectName loaderName,
                                    java.lang.Object[] params,
                                    java.lang.String[] signature)
                             throws ReflectionException,
                                    MBeanException,
                                    InstanceNotFoundException
Instantiates an object using this client through the relevant adaptor. The class loader to be used is identified by its object name. If the object name of the loader is null, the ClassLoader that loaded the MBean server will be used. The object's class should have a public constructor. The call returns a reference to the newly created object. The newly created object is not registered in the MBean server.
Parameters:
className - The class name of the object to be instantiated.
loaderName - The object name of the class loader to be used.
params - An array containing the parameters of the constructor to be invoked.
signature - An array containing the signature of the constructor to be invoked.
Returns:
The newly instantiated object.
Throws:
ReflectionException - Wraps a ClassNotFoundException or the java.lang.Exception that occured trying to invoke the object's constructor.
MBeanException - The constructor of the object has thrown an exception
InstanceNotFoundException - The specified class loader is not registered in the MBeanServer.
RuntimeOperationsException - Wraps a java.lang.IllegalArgumentException: The className passed in parameter is null.

invoke

public java.lang.Object invoke(ObjectName name,
                               java.lang.String actionName,
                               java.lang.Object[] params,
                               java.lang.String[] signature)
                        throws InstanceNotFoundException,
                               MBeanException,
                               ReflectionException
Invokes an action on an MBean using this client through the relevant adaptor.
Parameters:
name - The object name of the MBean on which the method is to be invoked.
actionName - The name of the action to be invoked.
params - An array containing the parameters to be set when the action is invoked
signature - An array containing the signature of the action. The class objects will be loaded using the same class loader as the one used for loading the MBean on which the action was invoked.
Returns:
The object returned by the action, which represents the result ofinvoking the action on the specified MBean.
Throws:
InstanceNotFoundException - The specified MBean is not registered in the MBeanServer.
MBeanException - Wraps an exception thrown by the MBean's invoked method.
ReflectionException - Wraps an java.lang.Exception thrown while trying to invoke the method.

isRegistered

public boolean isRegistered(ObjectName name)
Checks whether an MBean, identified by its object name, is already registered with the MBeanServer using this client through the relevant adaptor.
Parameters:
name - The object name of the MBean to be checked.
Returns:
true if the MBean is already controlled by the MBeanServer, false otherwise.
Throws:
RuntimeOperationsException - Wraps a java.lang.IllegalArgumentException: The ObjectName parameter is null.

isInstanceOf

public boolean isInstanceOf(ObjectName name,
                            java.lang.String className)
                     throws InstanceNotFoundException
Returns true if the MBean specified is an instance of the specified class, false otherwise.
Parameters:
name - The object name of the MBean to be checked.
className - The name of the class.
Returns:
true if the MBean is the instance of the specified class, false otherwise.
Throws:
InstanceNotFoundException - The MBean specified is not registered in the MBean server.

queryNames

public java.util.Set queryNames(ObjectName name,
                                QueryExp query)
Gets the names of MBeans controlled by the MBeanServer using this client through the relevant adaptor. This method enables any of the following to be obtained: The names of all MBeans, the names of a set of MBeans specified by pattern matching on the ObjectName and/or a Query expression, a specific MBean name(equivalent to testing whether an MBean is registered). When the object name is null or empty, all objects are to be selected (and filtered if a query is specified). It returns the set of ObjectNames for the MBeans selected.
Parameters:
name - The object name pattern identifying the MBean names to be retrieved. If null or empty, the name of all registered MBeans will be retrieved.
query - The query expression to be applied for selecting MBeans.
Returns:
A set containing the ObjectNames for the MBeans selected. If no MBean satisfies the query an empty list is returned.

registerMBean

public ObjectInstance registerMBean(java.lang.Object className,
                                    ObjectName name)
                             throws InstanceAlreadyExistsException,
                                    MBeanRegistrationException,
                                    NotCompliantMBeanException,
                                    RuntimeOperationsException
Registers a pre-existing object as an MBean with the MBeanServer using this client through the relevant adaptor. If the object name given is null, the MBean may automatically provide its own name by implementing the MBeanRegistration interface. The call returns the MBean name.
Parameters:
String - The classname of the Java Bean to be registered as an MBean.
name - The object name of the MBean. May be null.
Returns:
The ObjectInstance for the MBean that has been registered.
Throws:
InstanceAlreadyExistsException - The MBean is already under the control of the MBeanServer.
MBeanRegistrationException - The preRegister (MBeanRegistration interface) method of the MBean has thrown an exception. The MBean will not be registered.
NotCompliantMBeanException - This object is not an JMX compliant MBean
RuntimeOperationsException - Wraps a java.lang.IllegalArgumentException: The object passed in parameter is null or no object name is specified.

registerAsModelMBean

public ObjectInstance registerAsModelMBean(java.lang.Object mbean,
                                           java.lang.String xmlFile,
                                           ObjectName name)
                                    throws InstanceAlreadyExistsException,
                                           MBeanRegistrationException,
                                           NotCompliantMBeanException
Remote method call which registers the MBean. If the passed mbean object is String instance (i.e classname), then this mbean will be instantiated locally as modelmbean in the mbean server and registered. If not instance of java.lang.String class, then this object will be considered as remote modelmbean object. If the mbean object is java.lang.String instance, then the xmlFile means the path of the xml file name locally in the mbean server. If not then the String object of xmlFile will contain the complete path of xml file.
Parameters:
mbean - The mbean object which is to be instantiated locally as modelmbean in the mbean server and registered.
xmlFile - The path of the xml file name locally in the mbean server.
name - The object name of the MBean. May be null.
Returns:
The ObjectInstance for the MBean that has been registered.
Throws:
InstanceAlreadyExistsException - The MBean is already under the control of the MBeanServer.
MBeanRegistrationException - The preRegister (MBeanRegistration interface) method of the MBean has thrown an exception. The MBean will not be registered.
NotCompliantMBeanException - This object is not an JMX compliant MBean
RuntimeOperationsException - Wraps a java.lang.IllegalArgumentException: The object passed in parameter is null or no object name is specified.

removeNotificationListener

public void removeNotificationListener(ObjectName name,
                                       NotificationListener listener)
                                throws InstanceNotFoundException,
                                       ListenerNotFoundException
Enables a listener for an MBean to be removed using this client through the relevant adaptor.
Parameters:
name - The name of the MBean on which the listener should be removed
listener - The listener object which will handles notifications emitted by the registered MBean.This method will remove all information related to this listener.
Throws:
InstanceNotFoundException - The MBean name doesn't correspond to a registered MBean.
ListenerNotFoundException - The couple (listener,handback) is not registered in the MBean. The exception message contains either "listener", "handback" or the object name depending on which object cannot be found.
See Also:
addNotificationListener

removeNotificationListener

public void removeNotificationListener(ObjectName name,
                                       ObjectName listener)
                                throws InstanceNotFoundException,
                                       ListenerNotFoundException
Enables a listener for an MBean to be removed using this client through the relevant adaptor.
Parameters:
name - The name of the MBean on which the listener should be removed
listener - The listener name which will handles notifications emitted by the registered MBean. This method will remove all information related to this listener.
Throws:
InstanceNotFoundException - The MBean name or the listener name doesn't correspond to a registered MBean
ListenerNotFoundException - The couple (listener,handback) is not registered in the MBean. The exception message contains either "listener", "handback" or the object name depending on which object cannot be found
See Also:
addNotificationListener.

setAttribute

public void setAttribute(ObjectName name,
                         Attribute attribute)
                  throws InstanceNotFoundException,
                         AttributeNotFoundException,
                         InvalidAttributeValueException,
                         MBeanException,
                         ReflectionException
Sets the value of a specific attribute of a named MBean using this client through the relevant adaptor. The MBean is identified by its object name.
Parameters:
name - The name of the MBean within which the attribute is to be set.
attribute - The identification of the attribute to be set and the value it is to be set to.
Throws:
InstanceNotFoundException - The specified MBean is not registered in the MBeanServer.
AttributeNotFoundException - The specified attribute is not accessible in the MBean.
InvalidAttributeValueException - The specified value for the attribute is not valid.
MBeanException - Wraps an exception thrown by the MBean's setter.
ReflectionException - Wraps an java.lang.Exception thrown while trying to invoke the setter.
RuntimeOperationsException - Wraps a java.lang.IllegalArgumentException: The object name in parameter is null or the attribute in parameter is null.
See Also:

setAttributes

public AttributeList setAttributes(ObjectName name,
                                   AttributeList attributes)
                            throws InstanceNotFoundException,
                                   ReflectionException
Sets the values of several attributes of a named MBean using this client through the relevant adaptor. The MBean is identified by its object name.
Parameters:
name - The object name of the MBean within which the attributes are to be set.
attributes - A list of attributes: The identification of the attributes to be set and the values they are to be set to.
Returns:
The list of attributes that were set, with their new values.
Throws:
InstanceNotFoundException - The specified MBean is not registered in the MBeanServer.
ReflectionException - An exception occurred when trying to invoke the getAttributes method of a Dynamic MBean.
RuntimeOperationsException - Wraps a java.lang.IllegalArgumentException: The object name in parameter is null or attributes in parameter is null.
See Also:

unregisterMBean

public void unregisterMBean(ObjectName name)
                     throws InstanceNotFoundException,
                            MBeanRegistrationException
De-registers an MBean from the MBeanServer using this client through the relevant adaptor. The MBean is identified by its object name. Once the method has been invoked, the MBean may no longer be accessed by its object name.
Parameters:
name - The object name of the MBean to be de-registered.
Throws:
InstanceNotFoundException - The specified MBean is not registered in the MBeanServer.
MBeanRegistrationException - The preDeregister (MBeanRegistration interface) method of the MBean has thrown an exception.
RuntimeOperationsException - Wraps a java.lang.IllegalArgumentException: The object name in parameter is null or the MBean you are when trying to de-register is the MBeanServerDelegate MBean.
See Also:
registerMBean

getMBeanServerID

public java.lang.String getMBeanServerID()
Gets the MBeanServerID .
Returns:
string representing the MBeanServerID.