geronimo-scm mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From djen...@apache.org
Subject cvs commit: incubator-geronimo/modules/kernel/src/java/org/apache/geronimo/kernel/service GeronimoMBean.java
Date Fri, 14 Nov 2003 16:13:37 GMT
djencks     2003/11/14 08:13:37

  Modified:    modules/kernel/src/java/org/apache/geronimo/kernel/service
                        GeronimoMBean.java
  Log:
  Added static helper method to try to call static getGeronimoMBeanInfo method on class loaded
from supplied name
  
  Revision  Changes    Path
  1.8       +36 -7     incubator-geronimo/modules/kernel/src/java/org/apache/geronimo/kernel/service/GeronimoMBean.java
  
  Index: GeronimoMBean.java
  ===================================================================
  RCS file: /home/cvs/incubator-geronimo/modules/kernel/src/java/org/apache/geronimo/kernel/service/GeronimoMBean.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- GeronimoMBean.java	13 Nov 2003 18:21:56 -0000	1.7
  +++ GeronimoMBean.java	14 Nov 2003 16:13:37 -0000	1.8
  @@ -111,22 +111,31 @@
       public GeronimoMBean(GeronimoMBeanInfo mbeanInfo) {
           this.mbeanInfo = mbeanInfo;
       }
  -
       /**
  -     * "Bootstrapping" constructor.  The class specified is loaded and the static method
  -     * "getGeronimoMBeanInfo" is called to get the mbean info.  Usually one will include
  -     * this static method in the class to be wrapped in the GeronimoMBean instance.
  +     * Static helper to try to gett the GeronimoMBeanInfo from the class supplied.
        * @param className
  +     * @return GeronimoMBeanInfo generated by supplied class
        * @throws Exception
        */
  -    public GeronimoMBean(String className) throws Exception {
  +    public static GeronimoMBeanInfo getGeronimoMBeanInfo(String className) throws Exception
{
           ClassLoader cl = Thread.currentThread().getContextClassLoader();
           if (cl == null) {
               cl = ClassLoader.getSystemClassLoader();
           }
           Class clazz = cl.loadClass(className);
           Method m = clazz.getDeclaredMethod("getGeronimoMBeanInfo", new Class[] {});
  -        mbeanInfo = (GeronimoMBeanInfo)m.invoke(clazz, new Object[] {});
  +        return (GeronimoMBeanInfo)m.invoke(clazz, new Object[] {});
  +    }
  +
  +    /**
  +     * "Bootstrapping" constructor.  The class specified is loaded and the static method
  +     * "getGeronimoMBeanInfo" is called to get the mbean info.  Usually one will include
  +     * this static method in the class to be wrapped in the GeronimoMBean instance.
  +     * @param className
  +     * @throws Exception
  +     */
  +    public GeronimoMBean(String className) throws Exception {
  +        mbeanInfo = getGeronimoMBeanInfo(className);
       }
   
       public ObjectName preRegister(MBeanServer server, ObjectName name) throws Exception
{
  @@ -205,6 +214,26 @@
               super.postRegister(registrationDone);
           } finally {
               Thread.currentThread().setContextClassLoader(oldClassLoader);
  +        }
  +
  +        //For use primarily in boot mbeans before service deployer is set up
  +        if (mbeanInfo.isAutostart()) {
  +            try {
  +                start();
  +            } catch (Exception e) {
  +                log.info("Exception auto-starting GeronimoMBean " + objectName, e);
  +            }
  +        }
  +    }
  +
  +    public void preDeregister() {
  +        //For use primarily in boot mbeans before service deployer is set up
  +        if (mbeanInfo.isAutostart()) {
  +            try {
  +                stop();
  +            } catch (Exception e) {
  +                log.info("Exception auto-starting GeronimoMBean " + objectName, e);
  +            }
           }
       }
   
  
  
  

Mime
View raw message