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]