Search in sources :

Example 21 with MBeanOperationInfo

use of javax.management.MBeanOperationInfo in project tomee by apache.

the class StatelessInvocationStatsTest method testBasic.

/**
     * This whole method is a template, feel free to split it anyway you like
     * Fine to have one big
     *
     * @throws Exception
     */
public void testBasic() throws Exception {
    // some pre-load to avoid to load the class lazily with the first invocation
    new CounterBean().red();
    new CounterBean().blue();
    new CounterBean().green();
    // end preload
    System.setProperty(javax.naming.Context.INITIAL_CONTEXT_FACTORY, org.apache.openejb.core.LocalInitialContextFactory.class.getName());
    final ConfigurationFactory config = new ConfigurationFactory();
    final Assembler assembler = new Assembler();
    assembler.createTransactionManager(config.configureService(TransactionServiceInfo.class));
    assembler.createSecurityService(config.configureService(SecurityServiceInfo.class));
    // containers
    final StatelessSessionContainerInfo statelessContainerInfo = config.configureService(StatelessSessionContainerInfo.class);
    statelessContainerInfo.properties.setProperty("AccessTimeout", "100");
    statelessContainerInfo.properties.setProperty("MaxSize", "15");
    statelessContainerInfo.properties.setProperty("MinSize", "3");
    statelessContainerInfo.properties.setProperty("StrictPooling", "true");
    assembler.createContainer(statelessContainerInfo);
    // Setup the descriptor information
    CounterBean.instances.set(0);
    final EjbJar ejbJar = new EjbJar("StatsModule");
    ejbJar.addEnterpriseBean(new StatelessBean(CounterBean.class));
    assembler.createApplication(config.configureApplication(ejbJar));
    final javax.naming.Context context = new InitialContext();
    final CounterBean bean = (CounterBean) context.lookup("CounterBeanLocalBean");
    // Invoke each method once
    bean.red();
    bean.green();
    bean.blue();
    final MBeanServer server = LocalMBeanServer.get();
    final ObjectName invocationsName = new ObjectName("openejb.management:J2EEServer=openejb,J2EEApplication=<empty>,EJBModule=StatsModule,StatelessSessionBean=CounterBean,j2eeType=Invocations,name=CounterBean");
    // Grab the mbeanInfo and check the expected attributes exist and have the correct return types and parameters
    /*
        * Invocation MBeanInfo
        *
        */
    final List<MBeanAttributeInfo> expectedAttributes = new ArrayList<MBeanAttributeInfo>();
    expectedAttributes.add(new MBeanAttributeInfo("InvocationCount", "long", "", true, false, false));
    expectedAttributes.add(new MBeanAttributeInfo("InvocationTime", "long", "", true, false, false));
    expectedAttributes.add(new MBeanAttributeInfo("MonitoredMethods", "long", "", true, false, false));
    final Map<String, Object> expectedValues = new TreeMap<String, Object>();
    expectedValues.put("InvocationCount", (long) 6);
    expectedValues.put("InvocationTime", (long) 0);
    expectedValues.put("MonitoredMethods", (long) 4);
    final String[] methods = { "PostConstruct()", "blue()", "green()", "red()" };
    for (final String s : methods) {
        expectedAttributes.add(new MBeanAttributeInfo(s + ".Count", "long", "", true, false, false));
        expectedAttributes.add(new MBeanAttributeInfo(s + ".GeometricMean", "double", "", true, false, false));
        expectedAttributes.add(new MBeanAttributeInfo(s + ".Kurtosis", "double", "", true, false, false));
        expectedAttributes.add(new MBeanAttributeInfo(s + ".Max", "double", "", true, false, false));
        expectedAttributes.add(new MBeanAttributeInfo(s + ".Mean", "double", "", true, false, false));
        expectedAttributes.add(new MBeanAttributeInfo(s + ".Min", "double", "", true, false, false));
        expectedAttributes.add(new MBeanAttributeInfo(s + ".Percentile01", "double", "", true, false, false));
        expectedAttributes.add(new MBeanAttributeInfo(s + ".Percentile10", "double", "", true, false, false));
        expectedAttributes.add(new MBeanAttributeInfo(s + ".Percentile25", "double", "", true, false, false));
        expectedAttributes.add(new MBeanAttributeInfo(s + ".Percentile50", "double", "", true, false, false));
        expectedAttributes.add(new MBeanAttributeInfo(s + ".Percentile75", "double", "", true, false, false));
        expectedAttributes.add(new MBeanAttributeInfo(s + ".Percentile90", "double", "", true, false, false));
        expectedAttributes.add(new MBeanAttributeInfo(s + ".Percentile99", "double", "", true, false, false));
        expectedAttributes.add(new MBeanAttributeInfo(s + ".SampleSize", "int", "", true, false, false));
        expectedAttributes.add(new MBeanAttributeInfo(s + ".Skewness", "double", "", true, false, false));
        expectedAttributes.add(new MBeanAttributeInfo(s + ".StandardDeviation", "double", "", true, false, false));
        expectedAttributes.add(new MBeanAttributeInfo(s + ".Sum", "double", "", true, false, false));
        expectedAttributes.add(new MBeanAttributeInfo(s + ".Sumsq", "double", "", true, false, false));
        expectedAttributes.add(new MBeanAttributeInfo(s + ".Variance", "double", "", true, false, false));
        if (s.equals("PostConstruct()")) {
            expectedValues.put(s + ".Count", (long) 3);
        } else {
            expectedValues.put(s + ".Count", (long) 1);
        }
        expectedValues.put(s + ".GeometricMean", 0.0);
        expectedValues.put(s + ".Kurtosis", Double.NaN);
        expectedValues.put(s + ".Max", 0.0);
        expectedValues.put(s + ".Mean", 0.0);
        expectedValues.put(s + ".Min", 0.0);
        expectedValues.put(s + ".Percentile01", 0.0);
        expectedValues.put(s + ".Percentile10", 0.0);
        expectedValues.put(s + ".Percentile25", 0.0);
        expectedValues.put(s + ".Percentile50", 0.0);
        expectedValues.put(s + ".Percentile75", 0.0);
        expectedValues.put(s + ".Percentile90", 0.0);
        expectedValues.put(s + ".Percentile99", 0.0);
        expectedValues.put(s + ".SampleSize", 2000);
        expectedValues.put(s + ".Skewness", Double.NaN);
        expectedValues.put(s + ".StandardDeviation", 0.0);
        expectedValues.put(s + ".Sum", 0.0);
        expectedValues.put(s + ".Sumsq", 0.0);
        expectedValues.put(s + ".Variance", 0.0);
    }
    final List<MBeanAttributeInfo> actualAttributes = new ArrayList<MBeanAttributeInfo>();
    final Map<String, Object> actualValues = new TreeMap<String, Object>();
    final MBeanInfo beanInfo = server.getMBeanInfo(invocationsName);
    for (final MBeanAttributeInfo info : beanInfo.getAttributes()) {
        actualAttributes.add(info);
        actualValues.put(info.getName(), server.getAttribute(invocationsName, info.getName()));
    }
    //Verify invocation attributes and values
    assertEquals(expectedAttributes, actualAttributes);
    boolean ok = true;
    for (final Map.Entry<String, Object> entry : actualValues.entrySet()) {
        final Number value = (Number) expectedValues.get(entry.getKey());
        final Number real = (Number) actualValues.get(entry.getKey());
        if (!value.equals(real)) {
            // tolerating a 1 wide range
            Logger.getLogger(StatelessInvocationStatsTest.class.getName()).log(Level.WARNING, "Test tolerance: " + entry.getKey() + " => " + entry.getValue() + "/" + expectedValues.get(entry.getKey()));
            final Double abs = Math.abs(real.doubleValue() - value.doubleValue());
            if (abs.intValue() > 1) {
                ok = false;
            }
        }
    }
    // assertEquals(expectedValues, actualValues);
    assertTrue(ok);
    // Grab invocation mbean operations
    final MBeanParameterInfo[] invocationParameters1 = { new MBeanParameterInfo("excludeRegex", "java.lang.String", "\"\""), new MBeanParameterInfo("includeRegex", "java.lang.String", "\"\"") };
    final MBeanParameterInfo[] invocationParameters2 = { new MBeanParameterInfo("p1", "int", "") };
    final List<MBeanOperationInfo> expectedOperations = new ArrayList<MBeanOperationInfo>();
    expectedOperations.add(new MBeanOperationInfo("FilterAttributes", "Filters the attributes that show up in the MBeanInfo.  The exclude is applied first, then any attributes that match the include are re-added.  It may be required to disconnect and reconnect the JMX console to force a refresh of the MBeanInfo", invocationParameters1, "void", MBeanOperationInfo.UNKNOWN));
    for (final String s : methods) {
        expectedOperations.add(new MBeanOperationInfo(s + ".setSampleSize", "", invocationParameters2, "void", MBeanOperationInfo.UNKNOWN));
        expectedOperations.add(new MBeanOperationInfo(s + ".sortedValues", "", new MBeanParameterInfo[0], "[D", MBeanOperationInfo.UNKNOWN));
        expectedOperations.add(new MBeanOperationInfo(s + ".values", "", new MBeanParameterInfo[0], "[D", MBeanOperationInfo.UNKNOWN));
    }
    final List<MBeanOperationInfo> actualOperations1 = new ArrayList<MBeanOperationInfo>();
    actualOperations1.addAll(Arrays.asList(beanInfo.getOperations()));
    //Verify invocation operation information and remove bean.
    assertEquals(expectedOperations, actualOperations1);
}
Also used : StatelessSessionContainerInfo(org.apache.openejb.assembler.classic.StatelessSessionContainerInfo) MBeanInfo(javax.management.MBeanInfo) ArrayList(java.util.ArrayList) ConfigurationFactory(org.apache.openejb.config.ConfigurationFactory) SecurityServiceInfo(org.apache.openejb.assembler.classic.SecurityServiceInfo) EjbJar(org.apache.openejb.jee.EjbJar) MBeanServer(javax.management.MBeanServer) LocalMBeanServer(org.apache.openejb.monitoring.LocalMBeanServer) MBeanOperationInfo(javax.management.MBeanOperationInfo) TreeMap(java.util.TreeMap) InitialContext(javax.naming.InitialContext) MBeanAttributeInfo(javax.management.MBeanAttributeInfo) ObjectName(javax.management.ObjectName) TransactionServiceInfo(org.apache.openejb.assembler.classic.TransactionServiceInfo) StatelessBean(org.apache.openejb.jee.StatelessBean) Assembler(org.apache.openejb.assembler.classic.Assembler) Map(java.util.Map) TreeMap(java.util.TreeMap) MBeanParameterInfo(javax.management.MBeanParameterInfo)

Example 22 with MBeanOperationInfo

use of javax.management.MBeanOperationInfo in project tomee by apache.

the class StatelessPoolStatsTest method testBasic.

/**
     * @throws Exception On error
     */
public void testBasic() throws Exception {
    final Properties properties = new Properties();
    properties.setProperty("AccessTimeout", "100");
    properties.setProperty("MaxSize", "15");
    properties.setProperty("SweepInterval", "10 ms");
    properties.setProperty("MinSize", "3");
    properties.setProperty("StrictPooling", "true");
    deploy("testBasic", properties);
    // Grab the mbeanInfo and check the expected attributes exist and have the correct return types and parameters
    final MBeanInfo poolMBeanInfo = server.getMBeanInfo(objectName);
    /*
        * Pool MBeanInfo
        *
        */
    final List<MBeanAttributeInfo> expectedAttributes = new ArrayList<MBeanAttributeInfo>();
    expectedAttributes.add(new MBeanAttributeInfo("AccessTimeouts", "long", "", true, false, false));
    expectedAttributes.add(new MBeanAttributeInfo("AccessTimeouts.Latest", "java.lang.String", "", true, false, false));
    expectedAttributes.add(new MBeanAttributeInfo("AccessTimeouts.LatestTime", "long", "", true, false, false));
    expectedAttributes.add(new MBeanAttributeInfo("Aged", "long", "", true, false, false));
    expectedAttributes.add(new MBeanAttributeInfo("Aged.Latest", "java.lang.String", "", true, false, false));
    expectedAttributes.add(new MBeanAttributeInfo("Aged.LatestTime", "long", "", true, false, false));
    expectedAttributes.add(new MBeanAttributeInfo("AvailablePermits", "int", "", true, false, false));
    expectedAttributes.add(new MBeanAttributeInfo("Flushed", "long", "", true, false, false));
    expectedAttributes.add(new MBeanAttributeInfo("Flushed.Latest", "java.lang.String", "", true, false, false));
    expectedAttributes.add(new MBeanAttributeInfo("Flushed.LatestTime", "long", "", true, false, false));
    expectedAttributes.add(new MBeanAttributeInfo("Flushes", "long", "", true, false, false));
    expectedAttributes.add(new MBeanAttributeInfo("Flushes.Latest", "java.lang.String", "", true, false, false));
    expectedAttributes.add(new MBeanAttributeInfo("Flushes.LatestTime", "long", "", true, false, false));
    expectedAttributes.add(new MBeanAttributeInfo("GarbageCollected", "long", "", true, false, false));
    expectedAttributes.add(new MBeanAttributeInfo("GarbageCollected.Latest", "java.lang.String", "", true, false, false));
    expectedAttributes.add(new MBeanAttributeInfo("GarbageCollected.LatestTime", "long", "", true, false, false));
    expectedAttributes.add(new MBeanAttributeInfo("GarbageCollection", "boolean", "", true, false, false));
    expectedAttributes.add(new MBeanAttributeInfo("IdleTimeout", "long", "", true, false, false));
    expectedAttributes.add(new MBeanAttributeInfo("IdleTimeouts", "long", "", true, false, false));
    expectedAttributes.add(new MBeanAttributeInfo("IdleTimeouts.Latest", "java.lang.String", "", true, false, false));
    expectedAttributes.add(new MBeanAttributeInfo("IdleTimeouts.LatestTime", "long", "", true, false, false));
    expectedAttributes.add(new MBeanAttributeInfo("InstancesActive", "int", "", true, false, false));
    expectedAttributes.add(new MBeanAttributeInfo("InstancesIdle", "int", "", true, false, false));
    expectedAttributes.add(new MBeanAttributeInfo("InstancesInitializing", "int", "", true, false, false));
    expectedAttributes.add(new MBeanAttributeInfo("InstancesPooled", "int", "", true, false, false));
    expectedAttributes.add(new MBeanAttributeInfo("MaxAge", "long", "", true, false, false));
    expectedAttributes.add(new MBeanAttributeInfo("MaxAgeOffset", "double", "", true, false, false));
    expectedAttributes.add(new MBeanAttributeInfo("MaxSize", "int", "", true, false, false));
    expectedAttributes.add(new MBeanAttributeInfo("MinSize", "int", "", true, false, false));
    expectedAttributes.add(new MBeanAttributeInfo("MinimumInstances", "int", "", true, false, false));
    expectedAttributes.add(new MBeanAttributeInfo("Overdrafts", "long", "", true, false, false));
    expectedAttributes.add(new MBeanAttributeInfo("Overdrafts.Latest", "java.lang.String", "", true, false, false));
    expectedAttributes.add(new MBeanAttributeInfo("Overdrafts.LatestTime", "long", "", true, false, false));
    expectedAttributes.add(new MBeanAttributeInfo("PoolVersion", "int", "", true, false, false));
    expectedAttributes.add(new MBeanAttributeInfo("ReplaceAged", "boolean", "", true, false, false));
    expectedAttributes.add(new MBeanAttributeInfo("ReplaceFlushed", "boolean", "", true, false, false));
    expectedAttributes.add(new MBeanAttributeInfo("Replaced", "long", "", true, false, false));
    expectedAttributes.add(new MBeanAttributeInfo("Replaced.Latest", "java.lang.String", "", true, false, false));
    expectedAttributes.add(new MBeanAttributeInfo("Replaced.LatestTime", "long", "", true, false, false));
    expectedAttributes.add(new MBeanAttributeInfo("StrictPooling", "boolean", "", true, false, false));
    expectedAttributes.add(new MBeanAttributeInfo("SweepInterval", "long", "", true, false, false));
    expectedAttributes.add(new MBeanAttributeInfo("Sweeps", "long", "", true, false, false));
    expectedAttributes.add(new MBeanAttributeInfo("Sweeps.Latest", "java.lang.String", "", true, false, false));
    expectedAttributes.add(new MBeanAttributeInfo("Sweeps.LatestTime", "long", "", true, false, false));
    // The hardest part, check the values of each, PoolVersion is AtomicaInteger, *.Latest are time-sensitive, so not verified.
    final Map<String, Object> expectedAttributesValue = new TreeMap<String, Object>();
    expectedAttributesValue.put("AccessTimeouts", (long) 0);
    expectedAttributesValue.put("Aged", (long) 0);
    expectedAttributesValue.put("AvailablePermits", 15);
    expectedAttributesValue.put("Flushed", (long) 0);
    expectedAttributesValue.put("Flushes", (long) 0);
    expectedAttributesValue.put("GarbageCollected", (long) 0);
    expectedAttributesValue.put("GarbageCollection", false);
    expectedAttributesValue.put("IdleTimeout", (long) 0);
    expectedAttributesValue.put("IdleTimeouts", (long) 0);
    expectedAttributesValue.put("InstancesPooled", 3);
    expectedAttributesValue.put("InstancesActive", 0);
    expectedAttributesValue.put("InstancesIdle", 3);
    expectedAttributesValue.put("InstancesInitializing", 0);
    expectedAttributesValue.put("MaxAge", (long) 0);
    expectedAttributesValue.put("MaxAgeOffset", -1.0);
    expectedAttributesValue.put("MaxSize", 15);
    expectedAttributesValue.put("MinSize", 3);
    expectedAttributesValue.put("MinimumInstances", 3);
    expectedAttributesValue.put("Overdrafts", (long) 0);
    expectedAttributesValue.put("PoolVersion", 0);
    expectedAttributesValue.put("ReplaceAged", true);
    expectedAttributesValue.put("ReplaceFlushed", false);
    expectedAttributesValue.put("Replaced", (long) 0);
    expectedAttributesValue.put("SweepInterval", (long) 10);
    // expectedAttributesValue.put("Sweeps", (long) 1);
    expectedAttributesValue.put("StrictPooling", true);
    final List<MBeanAttributeInfo> actualAttributes = new ArrayList<MBeanAttributeInfo>();
    final Map<String, Object> actualAttributesValue = new TreeMap<String, Object>();
    for (final MBeanAttributeInfo info : poolMBeanInfo.getAttributes()) {
        actualAttributes.add(info);
        if (!info.getName().endsWith(".Latest") && !info.getName().endsWith(".LatestTime") && !info.getName().equals("Sweeps")) {
            actualAttributesValue.put(info.getName(), server.getAttribute(objectName, info.getName()));
        }
    }
    assertEquals(expectedAttributes, actualAttributes);
    assertEquals(expectedAttributesValue, actualAttributesValue);
    // Grab pool mbean operations
    final MBeanParameterInfo[] operations = { new MBeanParameterInfo("excludeRegex", "java.lang.String", "\"\""), new MBeanParameterInfo("includeRegex", "java.lang.String", "\"\"") };
    final List<MBeanOperationInfo> expectedOperations = new ArrayList<MBeanOperationInfo>();
    expectedOperations.add(new MBeanOperationInfo("FilterAttributes", "Filters the attributes that show up in the MBeanInfo.  The exclude is applied first, then any attributes that match the include are re-added.  It may be required to disconnect and reconnect the JMX console to force a refresh of the MBeanInfo", operations, "void", MBeanOperationInfo.UNKNOWN));
    expectedOperations.add(new MBeanOperationInfo("flush", "", new MBeanParameterInfo[0], "void", MBeanOperationInfo.UNKNOWN));
    final List<MBeanOperationInfo> actualOperations = new ArrayList<MBeanOperationInfo>();
    actualOperations.addAll(Arrays.asList(poolMBeanInfo.getOperations()));
    assertEquals(expectedOperations, actualOperations);
}
Also used : MBeanInfo(javax.management.MBeanInfo) MBeanOperationInfo(javax.management.MBeanOperationInfo) ArrayList(java.util.ArrayList) Properties(java.util.Properties) TreeMap(java.util.TreeMap) MBeanAttributeInfo(javax.management.MBeanAttributeInfo) MBeanParameterInfo(javax.management.MBeanParameterInfo)

Example 23 with MBeanOperationInfo

use of javax.management.MBeanOperationInfo in project tomee by apache.

the class RemoteResourceMonitor method buildMBeanInfo.

private void buildMBeanInfo() {
    final List<MBeanOperationInfo> operationInfos = new ArrayList<MBeanOperationInfo>();
    for (final String host : hosts) {
        operationInfos.add(new MBeanOperationInfo(host, "ping host " + host, EMPTY_PARAMETERS, String.class.getName(), MBeanOperationInfo.INFO));
    }
    operationInfos.add(PING_INFO);
    info = new MBeanInfo(RemoteResourceMonitor.class.getName(), "Monitor remote resources", EMPTY_ATTRIBUTES, null, operationInfos.toArray(new MBeanOperationInfo[operationInfos.size()]), EMPTY_NOTIFICATIONS);
}
Also used : MBeanInfo(javax.management.MBeanInfo) MBeanOperationInfo(javax.management.MBeanOperationInfo) ArrayList(java.util.ArrayList)

Example 24 with MBeanOperationInfo

use of javax.management.MBeanOperationInfo in project tomcat by apache.

the class ManagedBean method getMBeanInfo.

/**
     * Create and return a <code>ModelMBeanInfo</code> object that
     * describes this entire managed bean.
     * @return the MBean info
     */
MBeanInfo getMBeanInfo() {
    // Return our cached information (if any)
    mBeanInfoLock.readLock().lock();
    try {
        if (info != null) {
            return info;
        }
    } finally {
        mBeanInfoLock.readLock().unlock();
    }
    mBeanInfoLock.writeLock().lock();
    try {
        if (info == null) {
            // Create subordinate information descriptors as required
            AttributeInfo[] attrs = getAttributes();
            MBeanAttributeInfo[] attributes = new MBeanAttributeInfo[attrs.length];
            for (int i = 0; i < attrs.length; i++) attributes[i] = attrs[i].createAttributeInfo();
            OperationInfo[] opers = getOperations();
            MBeanOperationInfo[] operations = new MBeanOperationInfo[opers.length];
            for (int i = 0; i < opers.length; i++) operations[i] = opers[i].createOperationInfo();
            NotificationInfo[] notifs = getNotifications();
            MBeanNotificationInfo[] notifications = new MBeanNotificationInfo[notifs.length];
            for (int i = 0; i < notifs.length; i++) notifications[i] = notifs[i].createNotificationInfo();
            // Construct and return a new ModelMBeanInfo object
            info = new MBeanInfo(getClassName(), getDescription(), attributes, new MBeanConstructorInfo[] {}, operations, notifications);
        }
        return info;
    } finally {
        mBeanInfoLock.writeLock().unlock();
    }
}
Also used : MBeanOperationInfo(javax.management.MBeanOperationInfo) MBeanInfo(javax.management.MBeanInfo) MBeanOperationInfo(javax.management.MBeanOperationInfo) MBeanAttributeInfo(javax.management.MBeanAttributeInfo) MBeanConstructorInfo(javax.management.MBeanConstructorInfo) MBeanAttributeInfo(javax.management.MBeanAttributeInfo) MBeanNotificationInfo(javax.management.MBeanNotificationInfo) MBeanNotificationInfo(javax.management.MBeanNotificationInfo)

Example 25 with MBeanOperationInfo

use of javax.management.MBeanOperationInfo in project tomcat by apache.

the class JMXProxyServlet method invokeOperationInternal.

/**
     * Invokes an operation on an MBean.
     *
     * @param onameStr The name of the MBean.
     * @param operation The name of the operation to invoke.
     * @param parameters An array of Strings containing the parameters to the
     *            operation. They will be converted to the appropriate types to
     *            call the requested operation.
     * @return The value returned by the requested operation.
     */
private Object invokeOperationInternal(String onameStr, String operation, String[] parameters) throws OperationsException, MBeanException, ReflectionException {
    ObjectName oname = new ObjectName(onameStr);
    MBeanOperationInfo methodInfo = registry.getMethodInfo(oname, operation);
    MBeanParameterInfo[] signature = methodInfo.getSignature();
    String[] signatureTypes = new String[signature.length];
    Object[] values = new Object[signature.length];
    for (int i = 0; i < signature.length; i++) {
        MBeanParameterInfo pi = signature[i];
        signatureTypes[i] = pi.getType();
        values[i] = registry.convertValue(pi.getType(), parameters[i]);
    }
    return mBeanServer.invoke(oname, operation, values, signatureTypes);
}
Also used : MBeanOperationInfo(javax.management.MBeanOperationInfo) ObjectName(javax.management.ObjectName) MBeanParameterInfo(javax.management.MBeanParameterInfo)

Aggregations

MBeanOperationInfo (javax.management.MBeanOperationInfo)46 MBeanInfo (javax.management.MBeanInfo)33 MBeanAttributeInfo (javax.management.MBeanAttributeInfo)24 ObjectName (javax.management.ObjectName)18 MBeanParameterInfo (javax.management.MBeanParameterInfo)17 Test (org.junit.Test)10 ArrayList (java.util.ArrayList)8 MBeanServer (javax.management.MBeanServer)8 MBeanConstructorInfo (javax.management.MBeanConstructorInfo)7 MBeanNotificationInfo (javax.management.MBeanNotificationInfo)7 ReflectionException (javax.management.ReflectionException)5 Method (java.lang.reflect.Method)4 Descriptor (javax.management.Descriptor)4 TreeMap (java.util.TreeMap)3 Attribute (javax.management.Attribute)3 InstanceNotFoundException (javax.management.InstanceNotFoundException)3 IntrospectionException (javax.management.IntrospectionException)3 MalformedObjectNameException (javax.management.MalformedObjectNameException)3 OpenType (javax.management.openmbean.OpenType)3 IOException (java.io.IOException)2