Search in sources :

Example 56 with MBeanInfo

use of javax.management.MBeanInfo 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 57 with MBeanInfo

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

the class StatelessInvocationStatsTest method testInvocation.

/**
 * @throws Exception On error
 */
@Test
public void testInvocation() throws Exception {
    System.setProperty(javax.naming.Context.INITIAL_CONTEXT_FACTORY, OpenEJBInitialContextFactory.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", "0");
    statelessContainerInfo.properties.setProperty("MaxSize", "2");
    statelessContainerInfo.properties.setProperty("MinSize", "0");
    statelessContainerInfo.properties.setProperty("StrictPooling", "true");
    statelessContainerInfo.properties.setProperty("IdleTimeout", "0");
    assembler.createContainer(statelessContainerInfo);
    // Setup the descriptor information
    CounterBean.instances.set(0);
    final EjbJar ejbJar = new EjbJar("StatsInvocModule");
    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
    bean.waitSecs();
    final MBeanServer server = ManagementFactory.getPlatformMBeanServer();
    final ObjectName invocationsName = new ObjectName("openejb.management:J2EEServer=openejb,J2EEApplication=<empty>,EJBModule=StatsInvocModule,StatelessSessionBean=CounterBean," + "j2eeType=Invocations,name=CounterBean");
    // Grab the mbeanInfo and check the expected attributes exist and have the correct return types and parameters
    final MBeanInfo invocationsMBeanInfo = server.getMBeanInfo(invocationsName);
    for (final MBeanAttributeInfo info : invocationsMBeanInfo.getAttributes()) {
        // System.out.println("//" + info.getName() + " " + server.getAttribute(invocationsName, info.getName()));
        if (info.getName().equals("waitSecs().GeometricMean") || info.getName().equals("waitSecs().Max") || info.getName().equals("waitSecs().Mean") || info.getName().equals("waitSecs().Min") || info.getName().equals("waitSecs().Percentile01") || info.getName().equals("waitSecs().Percentile10") || info.getName().equals("waitSecs().Percentile25") || info.getName().equals("waitSecs().Percentile50") || info.getName().equals("waitSecs().Percentile75") || info.getName().equals("waitSecs().Percentile90") || info.getName().equals("waitSecs().Percentile99") || info.getName().equals("waitSecs().Sum")) {
            final Double actual = (Double) (server.getAttribute(invocationsName, info.getName()));
            Assert.assertTrue("Expected: " + actual + " >= 999", actual >= 999);
        }
    }
    ejbJar.removeEnterpriseBean("StatsInvocModule");
}
Also used : StatelessSessionContainerInfo(org.apache.openejb.assembler.classic.StatelessSessionContainerInfo) MBeanInfo(javax.management.MBeanInfo) OpenEJBInitialContextFactory(org.apache.openejb.core.OpenEJBInitialContextFactory) 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) ConfigurationFactory(org.apache.openejb.config.ConfigurationFactory) Assembler(org.apache.openejb.assembler.classic.Assembler) SecurityServiceInfo(org.apache.openejb.assembler.classic.SecurityServiceInfo) EjbJar(org.apache.openejb.jee.EjbJar) MBeanServer(javax.management.MBeanServer) LocalMBeanServer(org.apache.openejb.monitoring.LocalMBeanServer) Test(org.junit.Test)

Example 58 with MBeanInfo

use of javax.management.MBeanInfo 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 On error
 */
@Test
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, OpenEJBInitialContextFactory.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<>();
    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<>();
    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<>();
    final Map<String, Object> actualValues = new TreeMap<>();
    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
    Assert.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;
            }
        }
    }
    Assert.assertTrue("Expected status to be true, but was: " + ok, 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<>();
    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<>();
    actualOperations1.addAll(Arrays.asList(beanInfo.getOperations()));
    // Verify invocation operation information and remove bean.
    Assert.assertEquals(expectedOperations, actualOperations1);
}
Also used : StatelessSessionContainerInfo(org.apache.openejb.assembler.classic.StatelessSessionContainerInfo) MBeanInfo(javax.management.MBeanInfo) ArrayList(java.util.ArrayList) OpenEJBInitialContextFactory(org.apache.openejb.core.OpenEJBInitialContextFactory) 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) Test(org.junit.Test)

Example 59 with MBeanInfo

use of javax.management.MBeanInfo 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 60 with MBeanInfo

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

the class JMXDataSourceTest method getDatasourceJmxMap.

private Map<String, Object> getDatasourceJmxMap() throws MalformedObjectNameException, InstanceNotFoundException, IntrospectionException, ReflectionException, MBeanException, AttributeNotFoundException {
    final ObjectName on = new ObjectName("openejb.management:ObjectType=datasources,DataSource=JMXDataSourceTest");
    final MBeanInfo mBeanInfo = ManagementFactory.getPlatformMBeanServer().getMBeanInfo(on);
    assertNotNull(mBeanInfo);
    final Map<String, Object> map = new HashMap<String, Object>();
    for (final MBeanAttributeInfo mBeanAttributeInfo : mBeanInfo.getAttributes()) {
        final String name = mBeanAttributeInfo.getName();
        final Object value = ManagementFactory.getPlatformMBeanServer().getAttribute(on, name);
        map.put(name, value);
    }
    return map;
}
Also used : MBeanInfo(javax.management.MBeanInfo) HashMap(java.util.HashMap) MBeanAttributeInfo(javax.management.MBeanAttributeInfo) ObjectName(javax.management.ObjectName)

Aggregations

MBeanInfo (javax.management.MBeanInfo)154 MBeanAttributeInfo (javax.management.MBeanAttributeInfo)87 ObjectName (javax.management.ObjectName)79 MBeanOperationInfo (javax.management.MBeanOperationInfo)38 MBeanServer (javax.management.MBeanServer)27 Test (org.junit.Test)27 Attribute (javax.management.Attribute)19 ArrayList (java.util.ArrayList)17 IntrospectionException (javax.management.IntrospectionException)16 ReflectionException (javax.management.ReflectionException)16 HashMap (java.util.HashMap)15 InstanceNotFoundException (javax.management.InstanceNotFoundException)15 IOException (java.io.IOException)12 MBeanNotificationInfo (javax.management.MBeanNotificationInfo)12 MBeanParameterInfo (javax.management.MBeanParameterInfo)12 MBeanServerConnection (javax.management.MBeanServerConnection)10 MalformedObjectNameException (javax.management.MalformedObjectNameException)10 AttributeList (javax.management.AttributeList)9 AttributeNotFoundException (javax.management.AttributeNotFoundException)9 Descriptor (javax.management.Descriptor)8