amyroh 2003/03/19 21:43:49 Modified: catalina/src/share/org/apache/catalina/loader WebappLoader.java catalina/src/share/org/apache/catalina/mbeans MBeanFactory.java MBeanUtils.java mbeans-descriptors.xml catalina/src/share/org/apache/catalina/session ManagerBase.java Log: Set empty path to "/" so ObjectName for loader and manager gets created successfully without MalformedObjectNameException. Change MBeanFactory to create service and engine together so service knows its domain during initialization. Revision Changes Path 1.12 +6 -2 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/loader/WebappLoader.java Index: WebappLoader.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/loader/WebappLoader.java,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- WebappLoader.java 17 Mar 2003 19:22:37 -0000 1.11 +++ WebappLoader.java 20 Mar 2003 05:43:48 -0000 1.12 @@ -684,8 +684,12 @@ try { StandardContext ctx=(StandardContext)container; Engine eng=(Engine)ctx.getParent().getParent(); + String path = ctx.getPath(); + if (path.equals("")) { + path = "/"; + } oname=new ObjectName(eng.getName() + ":type=Loader,path=" + - ctx.getPath() + ",host=" + ctx.getParent().getName()); + path + ",host=" + ctx.getParent().getName()); Registry.getRegistry().registerComponent(this, oname, null); controller=oname; } catch (Exception e) { 1.7 +38 -11 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/mbeans/MBeanFactory.java Index: MBeanFactory.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/mbeans/MBeanFactory.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- MBeanFactory.java 20 Sep 2002 21:22:31 -0000 1.6 +++ MBeanFactory.java 20 Mar 2003 05:43:48 -0000 1.7 @@ -65,6 +65,7 @@ import java.lang.reflect.Constructor; import java.lang.reflect.Method; +import java.util.Vector; import javax.management.MBeanException; import javax.management.MBeanServer; import javax.management.ObjectName; @@ -431,7 +432,7 @@ // Return the corresponding MBean name ManagedBean managed = registry.findManagedBean("CoyoteConnector"); ObjectName oname = - MBeanUtils.createObjectName(managed.getDomain(), (Connector)retobj); + MBeanUtils.createObjectName(pname.getDomain(), (Connector)retobj); return (oname.toString()); } @@ -868,18 +869,44 @@ // Add the new instance to its parent component ObjectName pname = new ObjectName(parent); Server server = ServerFactory.getServer(); - Service service = server.findService(pname.getKeyProperty("name")); + Service service = server.findService(name); service.setContainer(engine); // Return the corresponding MBean name - ManagedBean managed = registry.findManagedBean("StandardEngine"); + //ManagedBean managed = registry.findManagedBean("StandardEngine"); ObjectName oname = - MBeanUtils.createObjectName(managed.getDomain(), engine); + MBeanUtils.createObjectName(name, engine); return (oname.toString()); } + public Vector createStandardEngineService(String parent, + String engineName, String defaultHost, String serviceName) + throws Exception { + + // Create a new StandardService instance + StandardService service = new StandardService(); + service.setName(serviceName); + // Create a new StandardEngine instance + StandardEngine engine = new StandardEngine(); + engine.setName(engineName); + engine.setDefaultHost(defaultHost); + service.setContainer(engine); + // Add the new instance to its parent component + Server server = ServerFactory.getServer(); + server.addService(service); + Vector onames = new Vector(); + ObjectName oname = + MBeanUtils.createObjectName(engineName, engine); + onames.add(0, oname); + oname = MBeanUtils.createObjectName(engineName, service); + onames.add(1, oname); + return (onames); + + } + + /** * Create a new StandardHost. * @@ -986,7 +1013,7 @@ * * @exception Exception if an MBean cannot be created or registered */ - public String createStandardService(String parent, String name) + public String createStandardService(String parent, String name, String domain) throws Exception { // Create a new StandardService instance @@ -998,9 +1025,9 @@ server.addService(service); // Return the corresponding MBean name - ManagedBean managed = registry.findManagedBean("StandardService"); + //ManagedBean managed = registry.findManagedBean("StandardService"); ObjectName oname = - MBeanUtils.createObjectName(managed.getDomain(), service); + MBeanUtils.createObjectName(domain, service); return (oname.toString()); } 1.14 +5 -6 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/mbeans/MBeanUtils.java Index: MBeanUtils.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/mbeans/MBeanUtils.java,v retrieving revision 1.13 retrieving revision 1.14 diff -u -r1.13 -r1.14 --- MBeanUtils.java 19 Mar 2003 07:28:31 -0000 1.13 +++ MBeanUtils.java 20 Mar 2003 05:43:48 -0000 1.14 @@ -1500,8 +1500,7 @@ throws MalformedObjectNameException { ObjectName name = null; - name = new ObjectName(domain + ":type=Service,name=" + - service.getName()); + name = new ObjectName(domain + ":type=Service"); return (name); } 1.22 +18 -0 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/mbeans/mbeans-descriptors.xml Index: mbeans-descriptors.xml =================================================================== RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/mbeans/mbeans-descriptors.xml,v retrieving revision 1.21 retrieving revision 1.22 diff -u -r1.21 -r1.22 --- mbeans-descriptors.xml 19 Mar 2003 07:29:21 -0000 1.21 +++ mbeans-descriptors.xml 20 Mar 2003 05:43:48 -0000 1.22 @@ -922,6 +922,24 @@ type="java.lang.String"/> </operation> + <operation name="createStandardEngineService" + description="Create a new StandardEngine and StandardService" + impact="ACTION" + returnType="java.lang.String"> + <parameter name="parent" + description="MBean Name of the associated parent Service" + type="java.lang.String"/> + <parameter name="engineName" + description="Unique name of this Engine" + type="java.lang.String"/> + <parameter name="defaultHost" + description="Default host name for this Engine" + type="java.lang.String"/> + <parameter name="serviceName" + description="Unique name of this Service" + type="java.lang.String"/> + </operation> + <operation name="createStandardHost" description="Create a new StandardHost" impact="ACTION" 1.15 +8 -5 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/session/ManagerBase.java Index: ManagerBase.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/session/ManagerBase.java,v retrieving revision 1.14 retrieving revision 1.15 diff -u -r1.14 -r1.15 --- ManagerBase.java 17 Mar 2003 19:24:35 -0000 1.14 +++ ManagerBase.java 20 Mar 2003 05:43:49 -0000 1.15 @@ -517,8 +517,8 @@ * - so use it if available. */ public void setRandomFile( String s ) { - // as a hack, you can use a static file - and genarate the same - // session ids ( good for strange debugging ) + // as a hack, you can use a static file - and genarate the same + // session ids ( good for strange debugging ) if (System.getSecurityManager() != null){ randomIS = (DataInputStream)AccessController.doPrivileged(new PrivilegedSetRandomFile()); } else { @@ -624,9 +624,12 @@ Engine eng=(Engine)ctx.getParent().getParent(); domain=eng.getName(); StandardHost hst=(StandardHost)ctx.getParent(); - + String path = ctx.getPath(); + if (path.equals("")) { + path = "/"; + } oname=new ObjectName(domain + ":type=Manager,path=" - + ctx.getPath() + ",host=" + hst.getName()); + + path + ",host=" + hst.getName()); Registry.getRegistry().registerComponent(this, oname, null ); } catch (Exception e) { log.error("Error registering ",e);
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]