costin      2002/08/09 13:50:38

  Modified:    util/java/org/apache/tomcat/util/mx DynamicMBeanProxy.java
  Log:
  Few more fixes and minor enhancements.
  
  Fix recognition of boolean and long, let the caller specify the full name.
  
  Revision  Changes    Path
  1.5       +20 -10    
jakarta-tomcat-connectors/util/java/org/apache/tomcat/util/mx/DynamicMBeanProxy.java
  
  Index: DynamicMBeanProxy.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/util/java/org/apache/tomcat/util/mx/DynamicMBeanProxy.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- DynamicMBeanProxy.java    9 Aug 2002 17:39:07 -0000       1.4
  +++ DynamicMBeanProxy.java    9 Aug 2002 20:50:38 -0000       1.5
  @@ -119,19 +119,19 @@
       /** If a name was not provided, generate a name based on the
        *  class name and a sequence number.
        */
  -    public String generateName(Class realClass) {
  -        name=realClass.getName();
  +    public static String generateName(Class realClass) {
  +        String name=realClass.getName();
           name=name.substring( name.lastIndexOf( ".") + 1 );
           Integer iInt=(Integer)instances.get(name );
  +        int seq=0;
           if( iInt!= null ) {
  -            int i=iInt.intValue();
  -            i++;
  -            instances.put( name, new Integer( i ));
  -            name=name + "_" + i;
  +            seq=iInt.intValue();
  +            seq++;
  +            instances.put( name, new Integer( seq ));
           } else {
               instances.put( name, new Integer( 0 ));
           }
  -        return name;
  +        return "name=" + name + " seq=" + seq;
       }
   
       public static void createMBean( Object proxy, String domain, String name ) {
  @@ -140,6 +140,8 @@
               mbean.setReal( proxy );
               if( name!=null ) {
                   mbean.setName( name );
  +            } else {
  +                mbean.setName( generateName( proxy.getClass() ));
               }
   
               mbean.registerMBean( domain );
  @@ -151,7 +153,7 @@
       public void registerMBean( String domain ) {
           try {
               // XXX use aliases, suffix only, proxy.getName(), etc
  -            ObjectName oname=new ObjectName( domain + ": name=" +  getName());
  +            ObjectName oname=new ObjectName( domain + ": " +  getName());
   
               if(  getMBeanServer().isRegistered( oname )) {
                   log.info("Unregistering " + oname );
  @@ -179,8 +181,12 @@
           return ret == String.class ||
               ret == Integer.class ||
               ret == Integer.TYPE ||
  +            ret == Long.class ||
  +            ret == Long.TYPE ||
               ret == java.io.File.class ||
  -            ret == Boolean.class;
  +            ret == Boolean.class ||
  +            ret == Boolean.TYPE 
  +            ; 
       }
       
       /** Set the managed object.
  @@ -204,10 +210,14 @@
                   if( methods[j].getParameterTypes().length != 0 ) {
                       continue;
                   }
  -                if( ! Modifier.isPublic( methods[j].getModifiers() ) )
  +                if( ! Modifier.isPublic( methods[j].getModifiers() ) ) {
  +                    //log.debug("not public " + methods[j] );
                       continue;
  +                }
                   Class ret=methods[j].getReturnType();
                   if( ! supportedType( ret ) ) {
  +                    if( log.isDebugEnabled() )
  +                        log.debug("Unsupported " + ret );
                       continue;
                   }
                   name=unCapitalize( name.substring(3));
  
  
  

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to