amyroh 02/05/03 16:44:16 Modified: catalina/src/share/org/apache/catalina/mbeans MBeanUtils.java Log: Add create, destroy, and createObjectName for NamingResources, ContextEnvironment, and ContextResource MBeans. Revision Changes Path 1.35 +231 -4 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/mbeans/MBeanUtils.java Index: MBeanUtils.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/mbeans/MBeanUtils.java,v retrieving revision 1.34 retrieving revision 1.35 diff -u -r1.34 -r1.35 --- MBeanUtils.java 18 Apr 2002 00:13:07 -0000 1.34 +++ MBeanUtils.java 3 May 2002 23:44:15 -0000 1.35 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/mbeans/MBeanUtils.java,v 1.34 2002/04/18 00:13:07 amyroh Exp $ - * $Revision: 1.34 $ - * $Date: 2002/04/18 00:13:07 $ + * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/mbeans/MBeanUtils.java,v 1.35 2002/05/03 23:44:15 amyroh Exp $ + * $Revision: 1.35 $ + * $Date: 2002/05/03 23:44:15 $ * * ==================================================================== * @@ -99,6 +99,10 @@ import org.apache.catalina.Valve; import org.apache.catalina.connector.http.HttpConnector; import org.apache.catalina.core.StandardService; +import org.apache.catalina.deploy.ContextEnvironment; +import org.apache.catalina.deploy.ContextResource; +import org.apache.catalina.deploy.NamingResources; +import org.apache.catalina.deploy.ResourceParams; import org.apache.catalina.valves.ValveBase; import org.apache.commons.beanutils.PropertyUtils; import org.apache.commons.modeler.ManagedBean; @@ -110,7 +114,7 @@ * * @author Craig R. McClanahan * @author Amy Roh - * @version $Revision: 1.34 $ $Date: 2002/04/18 00:13:07 $ + * @version $Revision: 1.35 $ $Date: 2002/05/03 23:44:15 $ */ public class MBeanUtils { @@ -245,9 +249,65 @@ } + + /** + * Create, register, and return an MBean for this + * <code>ContextEnvironment</code> object. + * + * @param environment The ContextEnvironment to be managed + * + * @exception Exception if an MBean cannot be created or registered + */ + public static ModelMBean createMBean(ContextEnvironment environment) + throws Exception { + + String mname = createManagedName(environment); + ManagedBean managed = registry.findManagedBean(mname); + if (managed == null) { + Exception e = new Exception("ManagedBean is not found with "+mname); + throw new MBeanException(e); + } + String domain = managed.getDomain(); + if (domain == null) + domain = mserver.getDefaultDomain(); + ModelMBean mbean = managed.createMBean(environment); + ObjectName oname = createObjectName(domain, environment); + mserver.registerMBean(mbean, oname); + return (mbean); + + } + /** * Create, register, and return an MBean for this + * <code>ContextResource</code> object. + * + * @param resource The ContextResource to be managed + * + * @exception Exception if an MBean cannot be created or registered + */ + public static ModelMBean createMBean(ContextResource resource) + throws Exception { + + String mname = createManagedName(resource); + ManagedBean managed = registry.findManagedBean(mname); + if (managed == null) { + Exception e = new Exception("ManagedBean is not found with "+mname); + throw new MBeanException(e); + } + String domain = managed.getDomain(); + if (domain == null) + domain = mserver.getDefaultDomain(); + ModelMBean mbean = managed.createMBean(resource); + ObjectName oname = createObjectName(domain, resource); + mserver.registerMBean(mbean, oname); + return (mbean); + + } + + + /** + * Create, register, and return an MBean for this * <code>DefaultContext</code> object. * * @param context The DefaultContext to be managed @@ -471,6 +531,34 @@ /** * Create, register, and return an MBean for this + * <code>NamingResources</code> object. + * + * @param resource The NamingResources to be managed + * + * @exception Exception if an MBean cannot be created or registered + */ + public static ModelMBean createMBean(NamingResources resource) + throws Exception { + + String mname = createManagedName(resource); + ManagedBean managed = registry.findManagedBean(mname); + if (managed == null) { + Exception e = new Exception("ManagedBean is not found with "+mname); + throw new MBeanException(e); + } + String domain = managed.getDomain(); + if (domain == null) + domain = mserver.getDefaultDomain(); + ModelMBean mbean = managed.createMBean(resource); + ObjectName oname = createObjectName(domain, resource); + mserver.registerMBean(mbean, oname); + return (mbean); + + } + + + /** + * Create, register, and return an MBean for this * <code>Realm</code> object. * * @param realm The Realm to be managed @@ -776,7 +864,50 @@ } + + /** + * Create an <code>ObjectName</code> for this + * <code>Service</code> object. + * + * @param domain Domain in which this name is to be created + * @param context The ContextEnvironment to be named + * + * @exception MalformedObjectNameException if a name cannot be created + */ + public static ObjectName createObjectName(String domain, + ContextEnvironment environment) + throws MalformedObjectNameException { + + ObjectName name = null; + name = new ObjectName(domain + ":type=Environment,name=" + + environment.getName()); + return (name); + } + + + /** + * Create an <code>ObjectName</code> for this + * <code>Service</code> object. + * + * @param domain Domain in which this name is to be created + * @param resource The ContextResource to be named + * + * @exception MalformedObjectNameException if a name cannot be created + */ + public static ObjectName createObjectName(String domain, + ContextResource resource) + throws MalformedObjectNameException { + + ObjectName name = null; + name = new ObjectName(domain + ":type=Resource,class=" + + resource.getType()+",name=" + + resource.getName()); + return (name); + + } + + /** * Create an <code>ObjectName</code> for this * <code>DefaultContext</code> object. @@ -1006,6 +1137,26 @@ return (name); } + + + /** + * Create an <code>ObjectName</code> for this + * <code>Server</code> object. + * + * @param domain Domain in which this name is to be created + * @param resource The NamingResources to be named + * + * @exception MalformedObjectNameException if a name cannot be created + */ + public static ObjectName createObjectName(String domain, + NamingResources resource) + throws MalformedObjectNameException { + + ObjectName name = null; + name = new ObjectName(domain + ":type=NamingResources"); + return (name); + + } /** @@ -1321,7 +1472,57 @@ } + + /** + * Deregister the MBean for this + * <code>ContextEnvironment</code> object. + * + * @param environment The ContextEnvironment to be managed + * + * @exception Exception if an MBean cannot be deregistered + */ + public static void destroyMBean(ContextEnvironment environment) + throws Exception { + + String mname = createManagedName(environment); + ManagedBean managed = registry.findManagedBean(mname); + if (managed == null) { + return; + } + String domain = managed.getDomain(); + if (domain == null) + domain = mserver.getDefaultDomain(); + ObjectName oname = createObjectName(domain, environment); + mserver.unregisterMBean(oname); + + } + + + /** + * Deregister the MBean for this + * <code>ContextResource</code> object. + * + * @param resource The ContextResource to be managed + * + * @exception Exception if an MBean cannot be deregistered + */ + public static void destroyMBean(ContextResource resource) + throws Exception { + + String mname = createManagedName(resource); + ManagedBean managed = registry.findManagedBean(mname); + if (managed == null) { + return; + } + String domain = managed.getDomain(); + if (domain == null) + domain = mserver.getDefaultDomain(); + ObjectName oname = createObjectName(domain, resource); + mserver.unregisterMBean(oname); + } + + /** * Deregister the MBean for this * <code>DefaultContext</code> object. @@ -1495,7 +1696,33 @@ mserver.unregisterMBean(oname); } + + + /** + * Deregister the MBean for this + * <code>NamingResources</code> object. + * + * @param resource The NamingResources to be managed + * + * @exception Exception if an MBean cannot be deregistered + */ + public static void destroyMBean(NamingResources resource) + throws Exception { + + String mname = createManagedName(resource); + ManagedBean managed = registry.findManagedBean(mname); + if (managed == null) { + return; + } + String domain = managed.getDomain(); + if (domain == null) + domain = mserver.getDefaultDomain(); + ObjectName oname = createObjectName(domain, resource); + mserver.unregisterMBean(oname); + } + + /** * Deregister the MBean for this * <code>Realm</code> object.
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>