Search in sources :

Example 1 with MBeanServerDelegate

use of javax.management.MBeanServerDelegate in project redisson by redisson.

the class JCacheMBeanServerBuilder method newMBeanServer.

@Override
public MBeanServer newMBeanServer(String defaultDomain, MBeanServer outer, MBeanServerDelegate delegate) {
    MBeanServerDelegate wrappedDelegate = new JCacheMBeanServerDelegate(delegate);
    MBeanServerBuilder builder = new MBeanServerBuilder();
    return builder.newMBeanServer(defaultDomain, outer, wrappedDelegate);
}
Also used : MBeanServerDelegate(javax.management.MBeanServerDelegate) MBeanServerBuilder(javax.management.MBeanServerBuilder)

Example 2 with MBeanServerDelegate

use of javax.management.MBeanServerDelegate in project jdk8u_jdk by JetBrains.

the class MXBeanRefTest method main.

public static void main(String[] args) throws Exception {
    MBeanServer mbs = MBeanServerFactory.createMBeanServer();
    ObjectName productName = new ObjectName("d:type=Product,n=1");
    ObjectName product2Name = new ObjectName("d:type=Product,n=2");
    ObjectName moduleName = new ObjectName("d:type=Module");
    mbs.registerMBean(product, productName);
    mbs.registerMBean(product2, product2Name);
    mbs.registerMBean(module, moduleName);
    ModuleMXBean moduleProxy = JMX.newMXBeanProxy(mbs, moduleName, ModuleMXBean.class);
    ObjectName on;
    on = (ObjectName) mbs.getAttribute(moduleName, "Product");
    check("ObjectName attribute value", on.equals(productName));
    ProductMXBean productProxy = moduleProxy.getProduct();
    MBeanServerInvocationHandler mbsih = (MBeanServerInvocationHandler) Proxy.getInvocationHandler(productProxy);
    check("ObjectName in proxy", mbsih.getObjectName().equals(productName));
    mbs.setAttribute(moduleName, new Attribute("Product", product2Name));
    ProductMXBean product2Proxy = module.getProduct();
    mbsih = (MBeanServerInvocationHandler) Proxy.getInvocationHandler(product2Proxy);
    check("Proxy after setAttribute", mbsih.getObjectName().equals(product2Name));
    moduleProxy.setProduct(productProxy);
    ProductMXBean productProxyAgain = module.getProduct();
    mbsih = (MBeanServerInvocationHandler) Proxy.getInvocationHandler(productProxyAgain);
    check("Proxy after proxied set", mbsih.getObjectName().equals(productName));
    MBeanServer mbs2 = MBeanServerFactory.createMBeanServer();
    ProductMXBean productProxy2 = JMX.newMXBeanProxy(mbs2, productName, ProductMXBean.class);
    try {
        moduleProxy.setProduct(productProxy2);
        check("Proxy for wrong MBeanServer worked but shouldn't", false);
    } catch (Exception e) {
        if (e instanceof UndeclaredThrowableException && e.getCause() instanceof OpenDataException)
            check("Proxy for wrong MBeanServer correctly rejected", true);
        else {
            e.printStackTrace(System.out);
            check("Proxy for wrong MBeanServer got wrong exception", false);
        }
    }
    // Test 6283873
    ObjectName dup = new ObjectName("a:b=c");
    mbs.registerMBean(new MBeanServerDelegate(), dup);
    try {
        mbs.registerMBean(new ProductImpl(), dup);
        check("Duplicate register succeeded but should fail", false);
    } catch (InstanceAlreadyExistsException e) {
        check("Got correct exception from duplicate name", true);
    } catch (Exception e) {
        e.printStackTrace(System.out);
        check("Got wrong exception from duplicate name", false);
    }
    if (failure != null)
        throw new Exception("TEST FAILED: " + failure);
    System.out.println("TEST PASSED");
}
Also used : Attribute(javax.management.Attribute) OpenDataException(javax.management.openmbean.OpenDataException) MBeanServerDelegate(javax.management.MBeanServerDelegate) UndeclaredThrowableException(java.lang.reflect.UndeclaredThrowableException) InstanceAlreadyExistsException(javax.management.InstanceAlreadyExistsException) MBeanServerInvocationHandler(javax.management.MBeanServerInvocationHandler) OpenDataException(javax.management.openmbean.OpenDataException) InstanceAlreadyExistsException(javax.management.InstanceAlreadyExistsException) UndeclaredThrowableException(java.lang.reflect.UndeclaredThrowableException) MBeanServer(javax.management.MBeanServer) ObjectName(javax.management.ObjectName)

Aggregations

MBeanServerDelegate (javax.management.MBeanServerDelegate)2 UndeclaredThrowableException (java.lang.reflect.UndeclaredThrowableException)1 Attribute (javax.management.Attribute)1 InstanceAlreadyExistsException (javax.management.InstanceAlreadyExistsException)1 MBeanServer (javax.management.MBeanServer)1 MBeanServerBuilder (javax.management.MBeanServerBuilder)1 MBeanServerInvocationHandler (javax.management.MBeanServerInvocationHandler)1 ObjectName (javax.management.ObjectName)1 OpenDataException (javax.management.openmbean.OpenDataException)1