Files
123123/doc-10.0.10/Docs2017/api/mgmt_api/javax/management/StandardMBean.html
T
GizzlerandCursor 58b7826162 Add live TLS certificate probing and improve restart error handling.
Configure CertificateCheckUrl per container for curl-like TLS checks, classify Sonic permission errors, and extend setup wizard for container management.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-03 13:16:21 +02:00

638 lines
29 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<!-- Generated by javadoc (build 1.5.0_19) on Fri Aug 12 11:25:11 EDT 2011 -->
<TITLE>
StandardMBean (Management Application API)
</TITLE>
<META NAME="keywords" CONTENT="javax.management.StandardMBean class">
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
<SCRIPT type="text/javascript">
function windowTitle()
{
parent.document.title="StandardMBean (Management Application API)";
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>
</HEAD>
<BODY BGCOLOR="white" onload="windowTitle();">
<!-- ========= START OF TOP NAVBAR ======= -->
<A NAME="navbar_top"><!-- --></A>
<A HREF="StandardMBean.html#skip-navbar_top" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
Sonic Management API</EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="ServiceNotFoundException.html" title="class in javax.management"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="StringValueExp.html" title="class in javax.management"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../index.html@javax%252Fmanagement%252FStandardMBean.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="StandardMBean.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
&nbsp;<SCRIPT type="text/javascript">
<!--
if(window==top) {
document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
}
//-->
</SCRIPT>
<NOSCRIPT>
<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="StandardMBean.html#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="StandardMBean.html#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="StandardMBean.html#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="StandardMBean.html#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->
<HR>
<!-- ======== START OF CLASS DATA ======== -->
<H2>
<FONT SIZE="-1">
javax.management</FONT>
<BR>
Class StandardMBean</H2>
<PRE>
java.lang.Object
<IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>javax.management.StandardMBean</B>
</PRE>
<DL>
<DT><B>All Implemented Interfaces:</B> <DD><A HREF="DynamicMBean.html" title="interface in javax.management">DynamicMBean</A></DD>
</DL>
<HR>
<DL>
<DT><PRE>public class <B>StandardMBean</B><DT>extends java.lang.Object<DT>implements <A HREF="DynamicMBean.html" title="interface in javax.management">DynamicMBean</A></DL>
</PRE>
<P>
<p>An MBean whose management interface is determined by reflection
on a Java interface.</p>
<p>This class brings more flexibility to the notion of Management
Interface in the use of Standard MBeans. Straightforward use of
the patterns for Standard MBeans described in the JMX Specification
means that there is a fixed relationship between the implementation
class of an MBean and its management interface (i.e., if the
implementation class is Thing, the management interface must be
ThingMBean). This class makes it possible to keep the convenience
of specifying the management interface with a Java interface,
without requiring that there be any naming relationship between the
implementation and interface classes.</p>
<p>By making a DynamicMBean out of an MBean, this class makes
it possible to select any interface implemented by the MBean as its
management interface, provided that it complies with JMX patterns
(i.e., attributes defined by getter/setter etc...).</p>
<p> This class also provides hooks that make it possible to supply
custom descriptions and names for the <A HREF="MBeanInfo.html" title="class in javax.management"><CODE>MBeanInfo</CODE></A> returned by
the DynamicMBean interface.</p>
<p>Using this class, an MBean can be created with any
implementation class name <i>Impl</i> and with a management
interface defined (as for current Standard MBeans) by any interface
<i>Intf</i>, in one of two general ways:</p>
<ul>
<li>Using the public constructor
<A HREF="StandardMBean.html#StandardMBean(java.lang.Object, java.lang.Class)"><CODE>StandardMBean(impl,interface)</CODE></A>:
<pre>
MBeanServer mbs;
...
Impl impl = new Impl(...);
StandardMBean mbean = new StandardMBean(impl, Intf.class);
mbs.registerMBean(mbean, objectName);
</pre></li>
<li>Subclassing StandardMBean:
<pre>
public class Impl extends StandardMBean implements Intf {
public Impl() {
super(Intf.class);
}
// implement methods of Intf
}
[...]
MBeanServer mbs;
....
Impl impl = new Impl();
mbs.registerMBean(impl, objectName);
</pre></li>
</ul>
<p>In either case, the class <i>Impl</i> must implement the
interface <i>Intf</i>.</p>
<p>Standard MBeans based on the naming relationship between
implementation and interface classes are of course still
available.</p>
<P>
<P>
<DL>
<DT><B>Since:</B></DT>
<DD>JMX 1.2</DD>
</DL>
<HR>
<P>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<A NAME="constructor_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Constructor Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="StandardMBean.html#StandardMBean(java.lang.Object, java.lang.Class)">StandardMBean</A></B>(java.lang.Object&nbsp;implementation,
java.lang.Class&nbsp;mbeanInterface)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Make a DynamicMBean out of the object
<var>implementation</var>, using the specified
<var>mbeanInterface</var> class.</TD>
</TR>
</TABLE>
&nbsp;
<!-- ========== METHOD SUMMARY =========== -->
<A NAME="method_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Method Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
<TD><CODE><B><A HREF="StandardMBean.html#getAttribute(java.lang.String)">getAttribute</A></B>(java.lang.String&nbsp;attribute)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Obtain the value of a specific attribute of the Dynamic MBean.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="AttributeList.html" title="class in javax.management">AttributeList</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="StandardMBean.html#getAttributes(java.lang.String[])">getAttributes</A></B>(java.lang.String[]&nbsp;attributes)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the values of several attributes of the Dynamic MBean.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
<TD><CODE><B><A HREF="StandardMBean.html#getImplementation()">getImplementation</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the implementation of this MBean.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.Class</CODE></FONT></TD>
<TD><CODE><B><A HREF="StandardMBean.html#getImplementationClass()">getImplementationClass</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the class of the implementation of this MBean.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="MBeanInfo.html" title="class in javax.management">MBeanInfo</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="StandardMBean.html#getMBeanInfo()">getMBeanInfo</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the <A HREF="MBeanInfo.html" title="class in javax.management"><CODE>MBeanInfo</CODE></A> for this MBean.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.Class</CODE></FONT></TD>
<TD><CODE><B><A HREF="StandardMBean.html#getMBeanInterface()">getMBeanInterface</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the Management Interface of this MBean.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
<TD><CODE><B><A HREF="StandardMBean.html#invoke(java.lang.String, java.lang.Object[], java.lang.String[])">invoke</A></B>(java.lang.String&nbsp;actionName,
java.lang.Object[]&nbsp;params,
java.lang.String[]&nbsp;signature)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Allows an action to be invoked on the Dynamic MBean.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="StandardMBean.html#setAttribute(javax.management.Attribute)">setAttribute</A></B>(<A HREF="Attribute.html" title="class in javax.management">Attribute</A>&nbsp;attribute)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the value of a specific attribute of the Dynamic MBean.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="AttributeList.html" title="class in javax.management">AttributeList</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="StandardMBean.html#setAttributes(javax.management.AttributeList)">setAttributes</A></B>(<A HREF="AttributeList.html" title="class in javax.management">AttributeList</A>&nbsp;attributes)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the values of several attributes of the Dynamic MBean.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="StandardMBean.html#setImplementation(java.lang.Object)">setImplementation</A></B>(java.lang.Object&nbsp;implementation)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Replace the implementation object wrapped in this
object.</TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
</TR>
</TABLE>
&nbsp;
<P>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<A NAME="constructor_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Constructor Detail</B></FONT></TH>
</TR>
</TABLE>
<A NAME="StandardMBean(java.lang.Object, java.lang.Class)"><!-- --></A><H3>
StandardMBean</H3>
<PRE>
public <B>StandardMBean</B>(java.lang.Object&nbsp;implementation,
java.lang.Class&nbsp;mbeanInterface)
throws <A HREF="NotCompliantMBeanException.html" title="class in javax.management">NotCompliantMBeanException</A></PRE>
<DL>
<DD><p>Make a DynamicMBean out of the object
<var>implementation</var>, using the specified
<var>mbeanInterface</var> class.</p>
<P>
<DL>
<DT><B>Parameters:</B><DD><CODE>implementation</CODE> - The implementation of this MBean.<DD><CODE>mbeanInterface</CODE> - The Management Interface exported by this
MBean's implementation. If <code>null</code>, then this
object will use standard JMX design pattern to determine
the management interface associated with the given
implementation.
<DT><B>Throws:</B>
<DD><CODE>java.lang.IllegalArgumentException</CODE> - if the given
<var>implementation</var> is null.
<DD><CODE><A HREF="NotCompliantMBeanException.html" title="class in javax.management">NotCompliantMBeanException</A></CODE> - if the <var>mbeanInterface</var>
does not follow JMX design patterns for Management Interfaces, or
if the given <var>implementation</var> does not implement the
specified interface.</DL>
</DL>
<!-- ============ METHOD DETAIL ========== -->
<A NAME="method_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Method Detail</B></FONT></TH>
</TR>
</TABLE>
<A NAME="getAttribute(java.lang.String)"><!-- --></A><H3>
getAttribute</H3>
<PRE>
public java.lang.Object <B>getAttribute</B>(java.lang.String&nbsp;attribute)
throws <A HREF="AttributeNotFoundException.html" title="class in javax.management">AttributeNotFoundException</A>,
<A HREF="MBeanException.html" title="class in javax.management">MBeanException</A>,
<A HREF="ReflectionException.html" title="class in javax.management">ReflectionException</A></PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="DynamicMBean.html#getAttribute(java.lang.String)">DynamicMBean</A></CODE></B></DD>
<DD>Obtain the value of a specific attribute of the Dynamic MBean.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="DynamicMBean.html#getAttribute(java.lang.String)">getAttribute</A></CODE> in interface <CODE><A HREF="DynamicMBean.html" title="interface in javax.management">DynamicMBean</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>attribute</CODE> - The name of the attribute to be retrieved
<DT><B>Returns:</B><DD>The value of the attribute retrieved.
<DT><B>Throws:</B>
<DD><CODE><A HREF="AttributeNotFoundException.html" title="class in javax.management">AttributeNotFoundException</A></CODE>
<DD><CODE><A HREF="MBeanException.html" title="class in javax.management">MBeanException</A></CODE> - Wraps a <CODE>java.lang.Exception</CODE> thrown by the MBean's getter.
<DD><CODE><A HREF="ReflectionException.html" title="class in javax.management">ReflectionException</A></CODE> - Wraps a <CODE>java.lang.Exception</CODE> thrown while trying to invoke the getter.<DT><B>See Also:</B><DD><A HREF="DynamicMBean.html#setAttribute(javax.management.Attribute)"><CODE>DynamicMBean.setAttribute(javax.management.Attribute)</CODE></A></DL>
</DD>
</DL>
<HR>
<A NAME="getAttributes(java.lang.String[])"><!-- --></A><H3>
getAttributes</H3>
<PRE>
public <A HREF="AttributeList.html" title="class in javax.management">AttributeList</A> <B>getAttributes</B>(java.lang.String[]&nbsp;attributes)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="DynamicMBean.html#getAttributes(java.lang.String[])">DynamicMBean</A></CODE></B></DD>
<DD>Get the values of several attributes of the Dynamic MBean.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="DynamicMBean.html#getAttributes(java.lang.String[])">getAttributes</A></CODE> in interface <CODE><A HREF="DynamicMBean.html" title="interface in javax.management">DynamicMBean</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>attributes</CODE> - A list of the attributes to be retrieved.
<DT><B>Returns:</B><DD>The list of attributes retrieved.<DT><B>See Also:</B><DD><A HREF="DynamicMBean.html#setAttributes(javax.management.AttributeList)"><CODE>DynamicMBean.setAttributes(javax.management.AttributeList)</CODE></A></DL>
</DD>
</DL>
<HR>
<A NAME="getImplementation()"><!-- --></A><H3>
getImplementation</H3>
<PRE>
public java.lang.Object <B>getImplementation</B>()</PRE>
<DL>
<DD>Get the implementation of this MBean.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD>The implementation of this MBean.<DT><B>See Also:</B><DD><A HREF="StandardMBean.html#setImplementation(java.lang.Object)"><CODE>setImplementation(java.lang.Object)</CODE></A></DL>
</DD>
</DL>
<HR>
<A NAME="getImplementationClass()"><!-- --></A><H3>
getImplementationClass</H3>
<PRE>
public java.lang.Class <B>getImplementationClass</B>()</PRE>
<DL>
<DD>Get the class of the implementation of this MBean.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD>The class of the implementation of this MBean.</DL>
</DD>
</DL>
<HR>
<A NAME="getMBeanInfo()"><!-- --></A><H3>
getMBeanInfo</H3>
<PRE>
public <A HREF="MBeanInfo.html" title="class in javax.management">MBeanInfo</A> <B>getMBeanInfo</B>()</PRE>
<DL>
<DD>Get the <A HREF="MBeanInfo.html" title="class in javax.management"><CODE>MBeanInfo</CODE></A> for this MBean.
<p>
This method implements
<A HREF="DynamicMBean.html#getMBeanInfo()"><CODE>DynamicMBean.getMBeanInfo()</CODE></A>.
<p>
This method first calls <A HREF="StandardMBean.html#getCachedMBeanInfo()"><CODE>getCachedMBeanInfo()</CODE></A> in order to
retrieve the cached MBeanInfo for this MBean, if any. If the
MBeanInfo returned by <A HREF="StandardMBean.html#getCachedMBeanInfo()"><CODE>getCachedMBeanInfo()</CODE></A> is not null,
then it is returned.<br>
Otherwise, this method builds a default MBeanInfo for this MBean,
using the Management Interface specified for this MBean.
<p>
While building the MBeanInfo, this method calls the customization
hooks that make it possible for subclasses to supply their custom
descriptions, parameter names, etc...<br>
Finally, it calls <A HREF="StandardMBean.html#cacheMBeanInfo(javax.management.MBeanInfo)"><CODE>cacheMBeanInfo()</CODE></A> in order to cache the new MBeanInfo.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="DynamicMBean.html#getMBeanInfo()">getMBeanInfo</A></CODE> in interface <CODE><A HREF="DynamicMBean.html" title="interface in javax.management">DynamicMBean</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD>The cached MBeanInfo for that MBean, if not null, or a
newly built MBeanInfo if none was cached.</DL>
</DD>
</DL>
<HR>
<A NAME="getMBeanInterface()"><!-- --></A><H3>
getMBeanInterface</H3>
<PRE>
public final java.lang.Class <B>getMBeanInterface</B>()</PRE>
<DL>
<DD>Get the Management Interface of this MBean.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD>The management interface of this MBean.</DL>
</DD>
</DL>
<HR>
<A NAME="invoke(java.lang.String, java.lang.Object[], java.lang.String[])"><!-- --></A><H3>
invoke</H3>
<PRE>
public java.lang.Object <B>invoke</B>(java.lang.String&nbsp;actionName,
java.lang.Object[]&nbsp;params,
java.lang.String[]&nbsp;signature)
throws <A HREF="MBeanException.html" title="class in javax.management">MBeanException</A>,
<A HREF="ReflectionException.html" title="class in javax.management">ReflectionException</A></PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="DynamicMBean.html#invoke(java.lang.String, java.lang.Object[], java.lang.String[])">DynamicMBean</A></CODE></B></DD>
<DD>Allows an action to be invoked on the Dynamic MBean.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="DynamicMBean.html#invoke(java.lang.String, java.lang.Object[], java.lang.String[])">invoke</A></CODE> in interface <CODE><A HREF="DynamicMBean.html" title="interface in javax.management">DynamicMBean</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>actionName</CODE> - The name of the action to be invoked.<DD><CODE>params</CODE> - An array containing the parameters to be set when the action is
invoked.<DD><CODE>signature</CODE> - An array containing the signature of the action. The class objects will
be loaded through the same class loader as the one used for loading the
MBean on which the action is invoked.
<DT><B>Returns:</B><DD>The object returned by the action, which represents the result of
invoking the action on the MBean specified.
<DT><B>Throws:</B>
<DD><CODE><A HREF="MBeanException.html" title="class in javax.management">MBeanException</A></CODE> - Wraps a <CODE>java.lang.Exception</CODE> thrown by the MBean's invoked method.
<DD><CODE><A HREF="ReflectionException.html" title="class in javax.management">ReflectionException</A></CODE> - Wraps a <CODE>java.lang.Exception</CODE> thrown while trying to invoke the method</DL>
</DD>
</DL>
<HR>
<A NAME="setAttribute(javax.management.Attribute)"><!-- --></A><H3>
setAttribute</H3>
<PRE>
public void <B>setAttribute</B>(<A HREF="Attribute.html" title="class in javax.management">Attribute</A>&nbsp;attribute)
throws <A HREF="AttributeNotFoundException.html" title="class in javax.management">AttributeNotFoundException</A>,
<A HREF="InvalidAttributeValueException.html" title="class in javax.management">InvalidAttributeValueException</A>,
<A HREF="MBeanException.html" title="class in javax.management">MBeanException</A>,
<A HREF="ReflectionException.html" title="class in javax.management">ReflectionException</A></PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="DynamicMBean.html#setAttribute(javax.management.Attribute)">DynamicMBean</A></CODE></B></DD>
<DD>Set the value of a specific attribute of the Dynamic MBean.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="DynamicMBean.html#setAttribute(javax.management.Attribute)">setAttribute</A></CODE> in interface <CODE><A HREF="DynamicMBean.html" title="interface in javax.management">DynamicMBean</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>attribute</CODE> - The identification of the attribute to
be set and the value it is to be set to.
<DT><B>Throws:</B>
<DD><CODE><A HREF="AttributeNotFoundException.html" title="class in javax.management">AttributeNotFoundException</A></CODE>
<DD><CODE><A HREF="InvalidAttributeValueException.html" title="class in javax.management">InvalidAttributeValueException</A></CODE>
<DD><CODE><A HREF="MBeanException.html" title="class in javax.management">MBeanException</A></CODE> - Wraps a <CODE>java.lang.Exception</CODE> thrown by the MBean's setter.
<DD><CODE><A HREF="ReflectionException.html" title="class in javax.management">ReflectionException</A></CODE> - Wraps a <CODE>java.lang.Exception</CODE> thrown while trying to invoke the MBean's setter.<DT><B>See Also:</B><DD><A HREF="DynamicMBean.html#getAttribute(java.lang.String)"><CODE>DynamicMBean.getAttribute(java.lang.String)</CODE></A></DL>
</DD>
</DL>
<HR>
<A NAME="setAttributes(javax.management.AttributeList)"><!-- --></A><H3>
setAttributes</H3>
<PRE>
public <A HREF="AttributeList.html" title="class in javax.management">AttributeList</A> <B>setAttributes</B>(<A HREF="AttributeList.html" title="class in javax.management">AttributeList</A>&nbsp;attributes)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="DynamicMBean.html#setAttributes(javax.management.AttributeList)">DynamicMBean</A></CODE></B></DD>
<DD>Sets the values of several attributes of the Dynamic MBean.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="DynamicMBean.html#setAttributes(javax.management.AttributeList)">setAttributes</A></CODE> in interface <CODE><A HREF="DynamicMBean.html" title="interface in javax.management">DynamicMBean</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>attributes</CODE> - A list of attributes: The identification of the
attributes to be set and the values they are to be set to.
<DT><B>Returns:</B><DD>The list of attributes that were set, with their new values.<DT><B>See Also:</B><DD><A HREF="DynamicMBean.html#getAttributes(java.lang.String[])"><CODE>DynamicMBean.getAttributes(java.lang.String[])</CODE></A></DL>
</DD>
</DL>
<HR>
<A NAME="setImplementation(java.lang.Object)"><!-- --></A><H3>
setImplementation</H3>
<PRE>
public void <B>setImplementation</B>(java.lang.Object&nbsp;implementation)
throws <A HREF="NotCompliantMBeanException.html" title="class in javax.management">NotCompliantMBeanException</A></PRE>
<DL>
<DD><p>Replace the implementation object wrapped in this
object.</p>
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>implementation</CODE> - The new implementation of this MBean.
The <code>implementation</code> object must implement the MBean
interface that was supplied when this
<code>StandardMBean</code> was constructed.
<DT><B>Throws:</B>
<DD><CODE>java.lang.IllegalArgumentException</CODE> - if the given
<var>implementation</var> is null.
<DD><CODE><A HREF="NotCompliantMBeanException.html" title="class in javax.management">NotCompliantMBeanException</A></CODE> - if the given
<var>implementation</var> does not implement the MBean
interface that was supplied at construction.<DT><B>See Also:</B><DD><A HREF="StandardMBean.html#getImplementation()"><CODE>getImplementation()</CODE></A></DL>
</DD>
</DL>
<!-- ========= END OF CLASS DATA ========= -->
<HR>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<A NAME="navbar_bottom"><!-- --></A>
<A HREF="StandardMBean.html#skip-navbar_bottom" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
Sonic Management API</EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="ServiceNotFoundException.html" title="class in javax.management"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="StringValueExp.html" title="class in javax.management"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../index.html@javax%252Fmanagement%252FStandardMBean.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="StandardMBean.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
&nbsp;<SCRIPT type="text/javascript">
<!--
if(window==top) {
document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
}
//-->
</SCRIPT>
<NOSCRIPT>
<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="StandardMBean.html#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="StandardMBean.html#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="StandardMBean.html#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="StandardMBean.html#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<HR>
<font size="-1">Copyright &copy; 2001-2011
<a href="http://www.progress.com" target="_top"> Progress Software Corporation</a>. All Rights Reserved.
<br>HTML formatted on 12-Aug-2011.</font>
</BODY>
</HTML>