Search in sources :

Example 11 with ModelMBean

use of javax.management.modelmbean.ModelMBean in project Activiti by Activiti.

the class DefaultManagementMBeanAssemblerTest method testHappyPath.

@Test
public void testHappyPath() throws MalformedObjectNameException, JMException {
    TestMbean testMbean = new TestMbean();
    ModelMBean mbean = defaultManagementMBeanAssembler.assemble(testMbean, new ObjectName("org.activiti.jmx.Mbeans:type=something"));
    assertNotNull(mbean);
    assertNotNull(mbean.getMBeanInfo());
    assertNotNull(mbean.getMBeanInfo().getAttributes());
    MBeanAttributeInfo[] attributes = mbean.getMBeanInfo().getAttributes();
    assertEquals(2, attributes.length);
    assertTrue((attributes[0].getName().equals("TestAttributeString") && attributes[1].getName().equals("TestAttributeBoolean") || (attributes[1].getName().equals("TestAttributeString") && attributes[0].getName().equals("TestAttributeBoolean"))));
    assertNotNull(mbean.getMBeanInfo().getOperations());
    MBeanOperationInfo[] operations = mbean.getMBeanInfo().getOperations();
    assertNotNull(operations);
    assertEquals(3, operations.length);
}
Also used : ModelMBean(javax.management.modelmbean.ModelMBean) MBeanOperationInfo(javax.management.MBeanOperationInfo) TestMbean(org.activiti.management.jmx.testMbeans.TestMbean) MBeanAttributeInfo(javax.management.MBeanAttributeInfo) ObjectName(javax.management.ObjectName) Test(org.junit.Test)

Example 12 with ModelMBean

use of javax.management.modelmbean.ModelMBean in project Activiti by Activiti.

the class DefaultManagementMBeanAssemblerTest method testNotificationAware.

@Test
public void testNotificationAware() throws MalformedObjectNameException, JMException {
    NotificationSenderAware mockedNotificationAwareMbean = mock(NotificationSenderAware.class);
    ModelMBean modelBean = defaultManagementMBeanAssembler.assemble(mockedNotificationAwareMbean, new ObjectName("org.activiti.jmx.Mbeans:type=something"));
    assertNotNull(modelBean);
    ArgumentCaptor<NotificationSender> argument = ArgumentCaptor.forClass(NotificationSender.class);
    verify(mockedNotificationAwareMbean).setNotificationSender(argument.capture());
    assertNotNull(argument);
    assertNotNull(argument.getValue());
}
Also used : ModelMBean(javax.management.modelmbean.ModelMBean) NotificationSenderAware(org.activiti.management.jmx.annotations.NotificationSenderAware) ObjectName(javax.management.ObjectName) Test(org.junit.Test)

Example 13 with ModelMBean

use of javax.management.modelmbean.ModelMBean in project jdk8u_jdk by JetBrains.

the class RequiredModelMBeanSetAttributeTest method main.

public static void main(String[] args) throws Exception {
    boolean ok = true;
    MBeanServer mbs = MBeanServerFactory.createMBeanServer();
    // ModelMBeanAttributeInfo
    Descriptor somethingAttributeDescriptor = new DescriptorSupport(new String[] { "name=Something", "descriptorType=attribute", "getMethod=getSomething" });
    ModelMBeanAttributeInfo somethingAttributeInfo = new ModelMBeanAttributeInfo("Something", "java.lang.String", "Something attribute", true, true, false, somethingAttributeDescriptor);
    Descriptor somethingCachedAttributeDescriptor = new DescriptorSupport(new String[] { "name=SomethingCached", "descriptorType=attribute", "getMethod=getSomethingCached", "currencyTimeLimit=5000" });
    ModelMBeanAttributeInfo somethingCachedAttributeInfo = new ModelMBeanAttributeInfo("SomethingCached", "java.lang.String", "Something cached attribute", true, true, false, somethingCachedAttributeDescriptor);
    // ModelMBeanInfo
    ModelMBeanInfo mmbi = new ModelMBeanInfoSupport(Resource.class.getName(), "Resource MBean", new ModelMBeanAttributeInfo[] { somethingAttributeInfo, somethingCachedAttributeInfo }, null, new ModelMBeanOperationInfo[] {}, null);
    // RequiredModelMBean
    ModelMBean mmb = new RequiredModelMBean(mmbi);
    mmb.setManagedResource(resource, "ObjectReference");
    ObjectName mmbName = new ObjectName(":type=ResourceMBean");
    mbs.registerMBean(mmb, mmbName);
    // Run tests
    System.out.println("\nTest that we receive ServiceNotFoundException");
    try {
        Attribute attr = new Attribute("Something", "Some string");
        mbs.setAttribute(mmbName, attr);
        System.out.println("TEST FAILED: Didn't caught exception");
        ok = false;
    } catch (MBeanException mbex) {
        Exception e = mbex.getTargetException();
        if (e == null || !(e instanceof ServiceNotFoundException)) {
            System.out.println("TEST FAILED: Caught wrong exception:" + e);
            ok = false;
        } else
            System.out.println("Received expected ServiceNotFoundException");
    } catch (Exception e) {
        System.out.println("TEST FAILED: Caught wrong exception: " + e);
        e.printStackTrace(System.out);
        ok = false;
    }
    //Now check that when caching is enabled, setAttribute is working
    System.out.println("\nTest that we are not receiving ServiceNotFoundException");
    try {
        Attribute attr = new Attribute("SomethingCached", "Some string");
        mbs.setAttribute(mmbName, attr);
        System.out.println("No exception thrown");
    } catch (Exception e) {
        System.out.println("TEST FAILED: Caught an exception: " + e);
        e.printStackTrace(System.out);
        ok = false;
    }
    if (ok)
        System.out.println("Test passed");
    else {
        System.out.println("TEST FAILED");
        throw new Exception("TEST FAILED");
    }
}
Also used : RequiredModelMBean(javax.management.modelmbean.RequiredModelMBean) ModelMBean(javax.management.modelmbean.ModelMBean) Attribute(javax.management.Attribute) DescriptorSupport(javax.management.modelmbean.DescriptorSupport) ModelMBeanInfo(javax.management.modelmbean.ModelMBeanInfo) ServiceNotFoundException(javax.management.ServiceNotFoundException) MBeanException(javax.management.MBeanException) RequiredModelMBean(javax.management.modelmbean.RequiredModelMBean) ObjectName(javax.management.ObjectName) ModelMBeanAttributeInfo(javax.management.modelmbean.ModelMBeanAttributeInfo) ServiceNotFoundException(javax.management.ServiceNotFoundException) Descriptor(javax.management.Descriptor) MBeanException(javax.management.MBeanException) ModelMBeanInfoSupport(javax.management.modelmbean.ModelMBeanInfoSupport) MBeanServer(javax.management.MBeanServer)

Aggregations

ModelMBean (javax.management.modelmbean.ModelMBean)13 ObjectName (javax.management.ObjectName)9 RequiredModelMBean (javax.management.modelmbean.RequiredModelMBean)8 ModelMBeanInfo (javax.management.modelmbean.ModelMBeanInfo)4 ModelMBeanInfoSupport (javax.management.modelmbean.ModelMBeanInfoSupport)4 Test (org.junit.Test)4 Descriptor (javax.management.Descriptor)3 MBeanAttributeInfo (javax.management.MBeanAttributeInfo)3 MBeanException (javax.management.MBeanException)3 MBeanOperationInfo (javax.management.MBeanOperationInfo)3 MBeanServer (javax.management.MBeanServer)3 DescriptorSupport (javax.management.modelmbean.DescriptorSupport)3 ModelMBeanAttributeInfo (javax.management.modelmbean.ModelMBeanAttributeInfo)3 Method (java.lang.reflect.Method)2 Attribute (javax.management.Attribute)2 MBeanInfo (javax.management.MBeanInfo)2 ModelMBeanOperationInfo (javax.management.modelmbean.ModelMBeanOperationInfo)2 InvocationTargetException (java.lang.reflect.InvocationTargetException)1 Hashtable (java.util.Hashtable)1 Map (java.util.Map)1