FileDocCategorySizeDatePackage
AdminBase.javaAPI DocGlassfish v2 API7065Fri May 04 22:33:56 BST 2007com.sun.enterprise.admin.server.core.mbean.config

AdminBase

public abstract class AdminBase extends Object 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
private static com.sun.enterprise.util.i18n.StringManager
localStrings
Constructors Summary
protected AdminBase()


      
    
Methods Summary
public java.lang.ObjectgetAttribute(java.lang.String attributeName)

	String msg = localStrings.getString( "admin.server.core.mbean.config.getattribute_not_implemented" );
        throw new UnsupportedOperationException( msg );
    
public javax.management.AttributeListgetAttributes(java.lang.String[] attributeNames)

	String msg = localStrings.getString( "admin.server.core.mbean.config.getattribute_not_implemented" );
        throw new UnsupportedOperationException( msg );
    
protected abstract java.lang.ClassgetImplementingClass()
Abstract method that subclasses have to implement. This is the way for invoke method to work, through reflection.

protected abstract java.lang.ObjectgetImplementingMBean()
Reflection requires the implementing object.

public javax.management.MBeanInfogetMBeanInfo()

        String msg = localStrings.getString( "admin.server.core.mbean.config.getmbeaninfo_not_implemented" );
        throw new UnsupportedOperationException( msg );
    
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

    /* New for 8.0 */
        final Class implClass = getImplementingClass();
        final Object mbeanReference = 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( "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);            
        }
    /* New for 8.0 */
    
public voidsetAttribute(javax.management.Attribute attribute)


        String msg = localStrings.getString( "admin.server.core.mbean.config.setattribute_not_implemented" );
        throw new UnsupportedOperationException( msg );
    
public javax.management.AttributeListsetAttributes(javax.management.AttributeList parm1)

	String msg = localStrings.getString( "admin.server.core.mbean.config.setattributes_not_implemented" );
        throw new UnsupportedOperationException( msg );