FileDocCategorySizeDatePackage
BaseAdminMBean.javaAPI DocGlassfish v2 API11045Fri May 04 22:25:34 BST 2007com.sun.enterprise.admin

BaseAdminMBean

public class BaseAdminMBean extends NotificationBroadcasterSupport implements DynamicMBean
The base class for all the MBeans. Note that there will be no MBean that is registered in the MBeanServer for this class. It serves as the base class of all concrete implementations of MBeans.

Fields Summary
protected ModelMBeanInfo
info
protected String
mbeanType
protected static final Logger
_sLogger
protected final com.sun.enterprise.util.i18n.StringManager
_localStrings
Constructors Summary
public BaseAdminMBean()

      
        _localStrings = StringManager.getManager( BaseAdminMBean.class );
    
Methods Summary
protected voiddebug(java.lang.String s)

        //TODO: change this to app server logging
        System.out.println(s);
    
protected voiderror(java.lang.String s)

        //TODO: change this to app server logging
        System.out.println(s);
    
public java.lang.ObjectgetAttribute(java.lang.String attributeName)

	String msg = _localStrings.getString("mbean.baseadmin.getattribute_not_implemented");
        throw new UnsupportedOperationException( msg );
    
public javax.management.AttributeListgetAttributes(java.lang.String[] attributeNames)

	String msg = _localStrings.getString("mbean.baseadmin.getattributes_not_implemented");
        throw new UnsupportedOperationException( msg );
    
public javax.management.MBeanInfogetMBeanInfo()

        return (MBeanInfo)info;
    
protected voidinfo(java.lang.String s)

        //TODO: change this to app server logging
        System.out.println(s);
    
public java.lang.Objectinvoke(java.lang.String methodName, java.lang.Object[] methodParams, java.lang.String[] methodSignature)
Every resource MBean should override this method to execute specific operations on the MBean. This method is enhanced in 8.0. It was a no-op in 7.0. In 8.0, it is modified to invoke the actual method through reflection. It relieves all the subclasses to implement the invoke method for various operations. If the subclasses choose to implement it, they may do so.

since
8.0
see
javax.management.MBeanServer#invoke
see
#getImplementingClass

            /*
    
        final Class implClass = this.getClass(); //getImplementingClass();
        final Object mbeanReference = this; //getImplementingMBean();
        final Introspector    reflector       = new Introspector(implClass);
        Object value = null;
        try {

            final Method method = reflector.getMethod(methodName, methodSignature);
            value = reflector.invokeMethodOn(method, mbeanReference, methodParams);
            return ( value );
        }
        catch (java.lang.ClassNotFoundException cnfe) {
            throw new javax.management.ReflectionException(cnfe);
        }
        catch (java.lang.NoSuchMethodException nsme) {
            throw new javax.management.ReflectionException(nsme);
        }
        catch (java.lang.SecurityException se) {
            throw new javax.management.ReflectionException(se);
        }
        catch (java.lang.reflect.InvocationTargetException ite) {
            Throwable t = ite.getTargetException();
            if (t instanceof MBeanException) {
                throw (MBeanException)t;
            }
            else
                if (t instanceof Exception) {
                    throw new MBeanException((Exception) t);
                }
                else { //if an error 
                    String msg = _localStrings.getString("mbean.baseadmin.admin.server.core.jmx.error_from_mbean", t.getMessage() );
                    RuntimeException re = new RuntimeException( msg );
                    throw new MBeanException(re);
                    //Do what?
                }
        }
        catch (java.lang.IllegalAccessException iae) {
            throw new javax.management.ReflectionException(iae);
        }
        catch (Exception e) {
            throw new MBeanException(e);            
        }
    */
            
            throw new java.lang.UnsupportedOperationException("Not Yet Implemented");
    
protected booleanisDebugEnabled()
call app server logging

        return true;
    
public voidsetAttribute(javax.management.Attribute attribute)


        String msg = _localStrings.getString("mbean.baseadmin.setattribute_not_implemented" );
        throw new UnsupportedOperationException( msg );
    
public javax.management.AttributeListsetAttributes(javax.management.AttributeList parm1)

	String msg = _localStrings.getString("mbean.baseadmin.setattributes_not_implemented" );
        throw new UnsupportedOperationException( msg );
    
public voidsetManagedResource(java.lang.Object resource, java.lang.String type)


        String msg = _localStrings.getString("mbean.baseadmin.setmanagedresource_not_implemented");
        throw new UnsupportedOperationException( msg );
    
public voidsetModelMBeanInfo(javax.management.modelmbean.ModelMBeanInfo mbeanInfo)

        info = mbeanInfo;
        //now we can set the type of bean
        try {
            Descriptor descr = info.getMBeanDescriptor();
            mbeanType = (String)descr.getFieldValue(MBeanMetaConstants.NMTYPE_FIELD_NAME);
        } catch (Exception e)
        {
        }