⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dynamicmetadataimpl.java

📁 JAVA的一些源码 JAVA2 STANDARD EDITION DEVELOPMENT KIT 5.0
💻 JAVA
字号:
/* * @(#)DynamicMetaDataImpl.java	1.29 05/05/27 *  * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. */package com.sun.jmx.mbeanserver;// java importimport java.util.Iterator;import java.io.PrintWriter;import java.io.StringWriter;// RI importimport javax.management.* ; import com.sun.jmx.trace.Trace; /** * The DynamicMetaDataImpl class provides local access to the metadata  * service in an agent.  * The DynamicMetaDataImpl only handles DynamicMBeans. * * @since 1.5 * @since.unbundled JMX RI 1.2 */class DynamicMetaDataImpl extends BaseMetaDataImpl {    /** The name of this class to be used for tracing */    private final static String dbgTag = "DynamicMetaDataImpl";        /**     * Creates a Metadata Service.     */    public DynamicMetaDataImpl()  {	// ------------------------------ 	// ------------------------------     }         /**      * This methods tests if the MBean is JMX compliant     */        public void testCompliance(Class c) 	throws NotCompliantMBeanException {	// ------------------------------ 	// ------------------------------ 	if (DynamicMBean.class.isAssignableFrom(c)) return;	throw new NotCompliantMBeanException(	       "Only DynamicMBeans are supported by this implementation");    }      //---------------------------------------------------------------------    //    // From the MetaData interface    //    //---------------------------------------------------------------------    public MBeanInfo getMBeanInfo(Object moi) 	throws IntrospectionException {	try {	    return (MBeanInfo) 		((javax.management.DynamicMBean)moi).getMBeanInfo();	} catch (RuntimeMBeanException r) {	    throw r;	} catch (RuntimeErrorException r) {	    throw r;	} catch (RuntimeException r) {	    debugX("getMBeanInfo",r);	    throw new RuntimeMBeanException((RuntimeException)r,            "Runtime Exception thrown by getMBeanInfo method of Dynamic MBean");	} catch (Error e ) {	    debugX("getMBeanInfo",e);	    throw new RuntimeErrorException((Error)e,                       "Error thrown by getMBeanInfo method of Dynamic MBean");	}    }    public Object getAttribute(Object instance, String attribute)	throws MBeanException, AttributeNotFoundException, 	       ReflectionException {        if (attribute == null) {	    final RuntimeException r = 		new IllegalArgumentException("Attribute name cannot be null");            throw new RuntimeOperationsException(r,                 "Exception occured trying to invoke the getter on the MBean");        }   	try {	    return ((javax.management.DynamicMBean)instance).		getAttribute(attribute);	} catch (RuntimeOperationsException r) {	    throw r;	} catch (RuntimeErrorException r) {	    throw r;	} catch (RuntimeException e) {	    debugX("getAttribute",e);	    throw new RuntimeMBeanException(e, "RuntimeException" +		    " thrown by the getAttribute method of the DynamicMBean" +		    " for the attribute " + attribute);	} catch (Error e) {	    debugX("getAttribute",e);	    throw new RuntimeErrorException((Error)e, "Error" +                     " thrown by the getAttribute method of the DynamicMBean "+                    " for the attribute " + attribute);                  	}    }    public AttributeList getAttributes(Object instance, String[] attributes) 	throws ReflectionException {        if (attributes == null) {            throw new RuntimeOperationsException(new 		IllegalArgumentException("Attributes cannot be null"),                 "Exception occured trying to invoke the getter on the MBean");        }	try {	    return ((javax.management.DynamicMBean)instance).		getAttributes(attributes);	} catch (RuntimeOperationsException r) {	    throw r;	} catch (RuntimeErrorException r) {	    throw r;	} catch (RuntimeException e) {	    debugX("getAttributes",e);	    throw new RuntimeOperationsException(e, "RuntimeException" +                   " thrown by the getAttributes method of the DynamicMBean");	} catch (Error e) {	    debugX("getAttributes",e);	    throw new RuntimeErrorException((Error)e, "Error" +                    " thrown by the getAttributes method of the DynamicMBean");	}    }    public AttributeList setAttributes(Object instance, 				       AttributeList attributes) 	throws ReflectionException {	try {	    return ((javax.management.DynamicMBean)instance).		setAttributes(attributes);	} catch (RuntimeOperationsException r) {	    throw r;	} catch (RuntimeErrorException r) {	    throw r;	} catch (RuntimeException e) {	    debugX("setAttributes",e);	    throw new RuntimeOperationsException(e, 		     "RuntimeException thrown by the setAttributes " + 		     "method of the Dynamic MBean");	} catch (Error e) {	    debugX("setAttributes",e);	    throw new RuntimeErrorException((Error)e,                       "Error thrown by the setAttributes " + 		      "method of the Dynamic MBean");	}    }        public Object setAttribute(Object instance, Attribute attribute)  	throws AttributeNotFoundException, InvalidAttributeValueException, 	       MBeanException, ReflectionException {        if (attribute == null) {	    final RuntimeException r = 		new IllegalArgumentException("Attribute name cannot be null");            throw new RuntimeOperationsException(r,                 "Exception occured trying to invoke the setter on the MBean");        }   	try {	    ((javax.management.DynamicMBean)instance).		setAttribute(attribute);	    return attribute.getValue();	} catch (RuntimeOperationsException r) {	    throw r;	} catch (RuntimeErrorException r) {	    throw r;	} catch (RuntimeException e) {	    debugX("setAttribute",e);	    throw new RuntimeMBeanException(e, 		      "RuntimeException thrown by the setAttribute " + 		      attribute + "method of the Dynamic MBean");	} catch (Error e) {	    debugX("setAttribute",e);	    throw new RuntimeErrorException((Error)e,                       "Error thrown by the setAttribute " + attribute + 		      "method of the Dynamic MBean");	}    }    public Object invoke(Object instance, String operationName, 			 Object params[], String signature[]) 	throws  MBeanException, ReflectionException {        if (operationName == null) {	    final RuntimeException r = 	      new IllegalArgumentException("Operation name  cannot be null");            throw new RuntimeOperationsException(r,               "Exception occured trying to invoke the operation on the MBean");        } 	try {	    return (((javax.management.DynamicMBean)instance).		    invoke(operationName, params, signature));	} catch (ReflectionException e) {	    debugX("invoke",e);	    throw e;	} catch (MBeanException e) {	    debugX("invoke",e);	    throw e;	} catch (RuntimeOperationsException r) {	    throw r;	} catch (RuntimeErrorException r) {	    throw r;	} catch (RuntimeException e) {	    debugX("invoke",e);	    throw new RuntimeMBeanException(e, "RuntimeException" +		      " thrown by the invoke method of the Dynamic MBean");	} catch (Error e) {	    debugX("invoke",e);	    throw new RuntimeErrorException((Error)e, "Error" +                      " thrown by the invoke method of the Dynamic MBean");	}    }    // TRACES & DEBUG    //---------------        private static boolean isTraceOn() {        return Trace.isSelected(Trace.LEVEL_TRACE, Trace.INFO_MBEANSERVER);    }    private static void trace(String clz, String func, String info) {        Trace.send(Trace.LEVEL_TRACE, Trace.INFO_MBEANSERVER, clz, func, info);    }        private static void trace(String func, String info) {        trace(dbgTag, func, info);    }        private static boolean isDebugOn() {        return Trace.isSelected(Trace.LEVEL_DEBUG, Trace.INFO_MBEANSERVER);    }        private static void debug(String clz, String func, String info) {        Trace.send(Trace.LEVEL_DEBUG, Trace.INFO_MBEANSERVER, clz, func, info);    }        private static void debug(String func, String info) {        debug(dbgTag, func, info);    }        private static void debugX(String func,Throwable e) {	if (isDebugOn()) {	    final StringWriter s = new StringWriter();	    e.printStackTrace(new PrintWriter(s));	    final String stack = s.toString();	    	    debug(dbgTag,func,"Exception caught in "+ func+"(): "+e);	    debug(dbgTag,func,stack);	    // java.lang.System.err.println("**** Exception caught in "+	    //			     func+"(): "+e);	    // java.lang.System.err.println(stack);	}    } }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -