remm 2004/03/02 04:31:57 Modified: catalina/src/share/org/apache/catalina/loader StandardClassLoader.java WebappLoader.java mbeans-descriptors.xml Added: catalina/src/share/org/apache/catalina/loader StandardClassLoaderMBean.java Log: - Register all classloaders with JMX, so that Tomcat is actually manageable through JMX remote (otherwise, instantiating a new MBean is not possible). Revision Changes Path 1.8 +2 -2 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/loader/StandardClassLoader.java Index: StandardClassLoader.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/loader/StandardClassLoader.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- StandardClassLoader.java 27 Feb 2004 14:58:44 -0000 1.7 +++ StandardClassLoader.java 2 Mar 2004 12:31:57 -0000 1.8 @@ -70,7 +70,7 @@ public class StandardClassLoader extends URLClassLoader - implements Reloader { + implements Reloader, StandardClassLoaderMBean { // ----------------------------------------------------------- Constructors 1.27 +29 -1 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.26 retrieving revision 1.27 diff -u -r1.26 -r1.27 --- WebappLoader.java 27 Feb 2004 14:58:44 -0000 1.26 +++ WebappLoader.java 2 Mar 2004 12:31:57 -0000 1.27 @@ -696,6 +696,18 @@ DirContextURLStreamHandler.bind ((ClassLoader) classLoader, this.container.getResources()); + StandardContext ctx=(StandardContext)container; + Engine eng=(Engine)ctx.getParent().getParent(); + String path = ctx.getPath(); + if (path.equals("")) { + path = "/"; + } + ObjectName cloname = new ObjectName + (ctx.getEngineName() + ":type=WebappClassLoader,path=" + + path + ",host=" + ctx.getParent().getName()); + Registry.getRegistry(null, null) + .registerComponent(classLoader, cloname, null); + } catch (Throwable t) { log.error( "LifecycleException ", t ); throw new LifecycleException("start: ", t); @@ -731,6 +743,22 @@ if (classLoader instanceof Lifecycle) ((Lifecycle) classLoader).stop(); DirContextURLStreamHandler.unbind((ClassLoader) classLoader); + + try { + StandardContext ctx=(StandardContext)container; + Engine eng=(Engine)ctx.getParent().getParent(); + String path = ctx.getPath(); + if (path.equals("")) { + path = "/"; + } + ObjectName cloname = new ObjectName + (ctx.getEngineName() + ":type=WebappClassLoader,path=" + + path + ",host=" + ctx.getParent().getName()); + Registry.getRegistry(null, null).unregisterComponent(cloname); + } catch (Throwable t) { + log.error( "LifecycleException ", t ); + } + classLoader = null; destroy(); 1.3 +7 -0 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/loader/mbeans-descriptors.xml Index: mbeans-descriptors.xml =================================================================== RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/loader/mbeans-descriptors.xml,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- mbeans-descriptors.xml 27 May 2003 23:15:06 -0000 1.2 +++ mbeans-descriptors.xml 2 Mar 2004 12:31:57 -0000 1.3 @@ -53,4 +53,11 @@ </mbean> + <mbean name="WebappClassLoader" + description="Classloader implementation which is specialized for + handling web applications" + domain="Catalina" + group="Loader" + type="org.apache.catalina.loader.WebappClassLoader" /> + </mbeans-descriptors> 1.1 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/loader/StandardClassLoaderMBean.java Index: StandardClassLoaderMBean.java =================================================================== /* * Copyright 1999,2004 The Apache Software Foundation. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.catalina.loader; /** * MBean interface for StandardClassLoader, to allow JMX remote management. * * @author Remy Maucherat * @version $Revision: 1.1 $ $Date: 2004/03/02 12:31:57 $ */ public interface StandardClassLoaderMBean { }
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]