amyroh 02/03/19 13:36:56 Modified: catalina/src/share/org/apache/catalina/mbeans MBeanFactory.java mbeans-descriptors.xml Log: Add createWebappLoader() and removeLoader(). Revision Changes Path 1.16 +75 -16 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/mbeans/MBeanFactory.java Index: MBeanFactory.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/mbeans/MBeanFactory.java,v retrieving revision 1.15 retrieving revision 1.16 diff -u -r1.15 -r1.16 --- MBeanFactory.java 19 Mar 2002 21:14:54 -0000 1.15 +++ MBeanFactory.java 19 Mar 2002 21:36:56 -0000 1.16 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/mbeans/MBeanFactory.java,v 1.15 2002/03/19 21:14:54 amyroh Exp $ - * $Revision: 1.15 $ - * $Date: 2002/03/19 21:14:54 $ + * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/mbeans/MBeanFactory.java,v 1.16 2002/03/19 21:36:56 amyroh Exp $ + * $Revision: 1.16 $ + * $Date: 2002/03/19 21:36:56 $ * * ==================================================================== * @@ -75,6 +75,7 @@ import org.apache.catalina.DefaultContext; import org.apache.catalina.Engine; import org.apache.catalina.Host; +import org.apache.catalina.Loader; import org.apache.catalina.Logger; import org.apache.catalina.Manager; import org.apache.catalina.Realm; @@ -91,6 +92,7 @@ import org.apache.catalina.core.StandardHost; import org.apache.catalina.core.StandardServer; import org.apache.catalina.core.StandardService; +import org.apache.catalina.loader.WebappLoader; import org.apache.catalina.logger.FileLogger; import org.apache.catalina.logger.SystemErrLogger; import org.apache.catalina.logger.SystemOutLogger; @@ -113,7 +115,7 @@ * <code>org.apache.catalina.core.StandardServer</code> component.</p> * * @author Amy Roh - * @version $Revision: 1.15 $ $Date: 2002/03/19 21:14:54 $ + * @version $Revision: 1.16 $ $Date: 2002/03/19 21:36:56 $ */ public class MBeanFactory extends BaseModelMBean { @@ -199,7 +201,7 @@ if (tname.equals("StandardContext")) { Host host = (Host) engine.findChild(pname.getKeyProperty("host")); Context context = - (Context) host.findChild(pname.getKeyProperty("context")); + (Context) host.findChild(pname.getKeyProperty("path")); ((StandardContext)context).addValve(accessLogger); } else if (tname.equals("Engine")) { ((StandardEngine)engine).addValve(accessLogger); @@ -277,7 +279,7 @@ if (tname.equals("StandardContext")) { Host host = (Host) engine.findChild(pname.getKeyProperty("host")); Context context = - (Context) host.findChild(pname.getKeyProperty("context")); + (Context) host.findChild(pname.getKeyProperty("path")); context.setLogger(fileLogger); } else if (tname.equals("Engine")) { engine.setLogger(fileLogger); @@ -384,7 +386,7 @@ if (tname.equals("StandardContext")) { Host host = (Host) engine.findChild(pname.getKeyProperty("host")); Context context = - (Context) host.findChild(pname.getKeyProperty("context")); + (Context) host.findChild(pname.getKeyProperty("path")); context.setRealm(realm); } else if (tname.equals("Engine")) { engine.setRealm(realm); @@ -425,7 +427,7 @@ if (tname.equals("StandardContext")) { Host host = (Host) engine.findChild(pname.getKeyProperty("host")); Context context = - (Context) host.findChild(pname.getKeyProperty("context")); + (Context) host.findChild(pname.getKeyProperty("path")); context.setRealm(realm); } else if (tname.equals("Engine")) { engine.setRealm(realm); @@ -466,7 +468,7 @@ if (tname.equals("StandardContext")) { Host host = (Host) engine.findChild(pname.getKeyProperty("host")); Context context = - (Context) host.findChild(pname.getKeyProperty("context")); + (Context) host.findChild(pname.getKeyProperty("path")); context.setRealm(realm); } else if (tname.equals("Engine")) { engine.setRealm(realm); @@ -507,7 +509,7 @@ if (tname.equals("StandardContext")) { Host host = (Host) engine.findChild(pname.getKeyProperty("host")); Context context = - (Context) host.findChild(pname.getKeyProperty("context")); + (Context) host.findChild(pname.getKeyProperty("path")); ((StandardContext)context).addValve(valve); } else if (tname.equals("Engine")) { ((StandardEngine)engine).addValve(valve); @@ -548,7 +550,7 @@ if (tname.equals("StandardContext")) { Host host = (Host) engine.findChild(pname.getKeyProperty("host")); Context context = - (Context) host.findChild(pname.getKeyProperty("context")); + (Context) host.findChild(pname.getKeyProperty("path")); ((StandardContext)context).addValve(valve); } else if (tname.equals("Engine")) { ((StandardEngine)engine).addValve(valve); @@ -589,7 +591,7 @@ if (tname.equals("StandardContext")) { Host host = (Host) engine.findChild(pname.getKeyProperty("host")); Context context = - (Context) host.findChild(pname.getKeyProperty("context")); + (Context) host.findChild(pname.getKeyProperty("path")); ((StandardContext)context).addValve(valve); } else if (tname.equals("Engine")) { ((StandardEngine)engine).addValve(valve); @@ -630,7 +632,7 @@ if (tname.equals("StandardContext")) { Host host = (Host) engine.findChild(pname.getKeyProperty("host")); Context context = - (Context) host.findChild(pname.getKeyProperty("context")); + (Context) host.findChild(pname.getKeyProperty("path")); ((StandardContext)context).addValve(valve); } else if (tname.equals("Engine")) { ((StandardEngine)engine).addValve(valve); @@ -772,7 +774,7 @@ Service service = server.findService(pname.getKeyProperty("service")); Engine engine = (Engine) service.getContainer(); Host host = (Host) engine.findChild(pname.getKeyProperty("host")); - Context context = (Context) host.findChild(pname.getKeyProperty("context")); + Context context = (Context) host.findChild(pname.getKeyProperty("path")); context.setManager(manager); // Return the corresponding MBean name @@ -836,7 +838,7 @@ if (tname.equals("StandardContext")) { Host host = (Host) engine.findChild(pname.getKeyProperty("host")); Context context = - (Context) host.findChild(pname.getKeyProperty("context")); + (Context) host.findChild(pname.getKeyProperty("path")); context.setLogger(logger); } else if (tname.equals("Engine")) { engine.setLogger(logger); @@ -877,7 +879,7 @@ if (tname.equals("StandardContext")) { Host host = (Host) engine.findChild(pname.getKeyProperty("host")); Context context = - (Context) host.findChild(pname.getKeyProperty("context")); + (Context) host.findChild(pname.getKeyProperty("path")); context.setLogger(logger); } else if (tname.equals("Engine")) { engine.setLogger(logger); @@ -895,6 +897,37 @@ /** + * Create a new Web Application Loader. + * + * @param parent MBean Name of the associated parent component + * + * @exception Exception if an MBean cannot be created or registered + */ + public String createWebappLoader(String parent) + throws Exception { + + // Create a new WebappLoader instance + WebappLoader loader = new WebappLoader(); + + // Add the new instance to its parent component + ObjectName pname = new ObjectName(parent); + Server server = ServerFactory.getServer(); + Service service = server.findService(pname.getKeyProperty("service")); + Engine engine = (Engine) service.getContainer(); + Host host = (Host) engine.findChild(pname.getKeyProperty("host")); + Context context = (Context) host.findChild(pname.getKeyProperty("path")); + context.setLoader(loader); + + // Return the corresponding MBean name + ManagedBean managed = registry.findManagedBean("WebappLoader"); + ObjectName oname = + MBeanUtils.createObjectName(managed.getDomain(), loader); + return (oname.toString()); + + } + + + /** * Remove an existing Connector. * * @param name MBean Name of the comonent to remove @@ -1057,6 +1090,32 @@ } } } + } + + + /** + * Remove an existing Loader. + * + * @param name MBean Name of the comonent to remove + * + * @exception Exception if a component cannot be removed + */ + public void removeLoader(String name) throws Exception { + + // Acquire a reference to the component to be removed + ObjectName oname = new ObjectName(name); + String serviceName = oname.getKeyProperty("service"); + String hostName = oname.getKeyProperty("host"); + String contextName = oname.getKeyProperty("path"); + Server server = ServerFactory.getServer(); + Service service = server.findService(serviceName); + Engine engine = (Engine) service.getContainer(); + Host host = (Host) engine.findChild(hostName); + Context context = (Context) host.findChild(contextName); + + // Remove this component from its parent component + context.setLoader(null); + } 1.42 +10 -1 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/mbeans/mbeans-descriptors.xml Index: mbeans-descriptors.xml =================================================================== RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/mbeans/mbeans-descriptors.xml,v retrieving revision 1.41 retrieving revision 1.42 diff -u -r1.41 -r1.42 --- mbeans-descriptors.xml 19 Mar 2002 21:14:54 -0000 1.41 +++ mbeans-descriptors.xml 19 Mar 2002 21:36:56 -0000 1.42 @@ -6,7 +6,7 @@ <!-- Descriptions of JMX MBeans for Catalina - $Id: mbeans-descriptors.xml,v 1.41 2002/03/19 21:14:54 amyroh Exp $ + $Id: mbeans-descriptors.xml,v 1.42 2002/03/19 21:36:56 amyroh Exp $ --> <mbeans-descriptors> @@ -1274,6 +1274,15 @@ <operation name="removeHost" description="Remove an existing Host" + impact="ACTION" + returnType="void"> + <parameter name="name" + description="MBean Name of the component to be removed" + type="java.lang.String"/> + </operation> + + <operation name="removeLoader" + description="Remove an existing Loader" impact="ACTION" returnType="void"> <parameter name="name"
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>