Search in sources :

Example 1 with NotificationServiceMgr

use of com.sun.appserv.management.base.NotificationServiceMgr in project Payara by payara.

the class NotificationServiceMgrTest method testCreateRemove.

public void testCreateRemove() throws Exception {
    final NotificationServiceMgr proxy = getNotificationServiceMgr();
    final NotificationService service = proxy.createNotificationService("test1", 512);
    final ObjectName objectName = Util.getObjectName(service);
    proxy.removeNotificationService(service.getName());
    assert (!getConnection().isRegistered(objectName));
}
Also used : NotificationServiceMgr(com.sun.appserv.management.base.NotificationServiceMgr) NotificationService(com.sun.appserv.management.base.NotificationService) ObjectName(javax.management.ObjectName)

Example 2 with NotificationServiceMgr

use of com.sun.appserv.management.base.NotificationServiceMgr in project Payara by payara.

the class MiscTest method testProxyDetectsMBeanRemoved.

/**
 *     Hangs were occuring in getPropertyNames().  Repeatedly invoke it to see if the hang
 *     can be reproduced.
 *     public void
 *     testGetPropertyNames()
 *     throws ClassNotFoundException
 *     {
 *     final Set	s	= getQueryMgr().queryInterfaceSet( PropertiesAccess.class.getName(), null );
 *
 *     for( int i = 0; i < 5000; ++i )
 *     {
 *     final Iterator iter	= s.iterator();
 *     while ( iter.hasNext() )
 *     {
 *     final PropertiesAccess	pa	= (PropertiesAccess)iter.next();
 *
 *     pa.getPropertyNames();
 *     }
 *     }
 *     }
 */
/**
 *     Verify that when an MBean is removed, the proxy
 *     throws an InstanceNotFoundException.  This test is included here because
 *     it otherwise causes problems when running other unit tests that want to operate
 *     on all MBeans--this test creates and removes one, which causes the other
 *     tests to fail.
 */
public void testProxyDetectsMBeanRemoved() throws InstanceNotFoundException {
    // use the NotificationServiceMgr as a convenient way of making
    // an MBean (a NotificationService) come and go.
    final NotificationServiceMgr mgr = getDomainRoot().getNotificationServiceMgr();
    final NotificationService ns = mgr.createNotificationService("UserData", 10);
    assert (ns.getUserData().equals("UserData"));
    final ObjectName nsObjectName = Util.getObjectName(ns);
    mgr.removeNotificationService(ns.getName());
    try {
        // all calls should fail
        Util.getObjectName(ns);
        ns.getName();
        ns.getUserData();
        failure("expecting exception due to missing MBean");
    } catch (Exception e) {
        // root cause should be an InstanceNotFoundException containing the ObjectName
        final Throwable t = ExceptionUtil.getRootCause(e);
        assert (t instanceof InstanceNotFoundException);
        final InstanceNotFoundException inf = (InstanceNotFoundException) t;
        final String msg = inf.getMessage();
        final int objectNameStart = msg.indexOf("amx:");
        final String objectNameString = msg.substring(objectNameStart, msg.length());
        final ObjectName on = Util.newObjectName(objectNameString);
        assert (on.equals(nsObjectName));
    }
}
Also used : NotificationServiceMgr(com.sun.appserv.management.base.NotificationServiceMgr) InstanceNotFoundException(javax.management.InstanceNotFoundException) NotificationService(com.sun.appserv.management.base.NotificationService) IOException(java.io.IOException) InstanceNotFoundException(javax.management.InstanceNotFoundException) ObjectName(javax.management.ObjectName)

Example 3 with NotificationServiceMgr

use of com.sun.appserv.management.base.NotificationServiceMgr in project Payara by payara.

the class ProxyFactoryTest method testProxyFactoryDetectsMBeanRemoved.

/**
 *     Verify that when an MBean is removed, the ProxyFactory
 *     detects this, and removes any proxy from its cache.
 */
public void testProxyFactoryDetectsMBeanRemoved() throws InstanceNotFoundException {
    // use the NotificationServiceMgr as a convenient way of making
    // an MBean (a NotificationService) come and go.
    final NotificationServiceMgr mgr = getDomainRoot().getNotificationServiceMgr();
    final NotificationService ns = mgr.createNotificationService("UserData", 10);
    final ObjectName nsObjectName = Util.getObjectName(ns);
    assert (ns.getUserData().equals("UserData"));
    final ProxyFactory factory = getProxyFactory();
    final NotificationService proxy = factory.getProxy(nsObjectName, NotificationService.class, false);
    assert (proxy == ns) : "proxies differ: " + ns + "\n" + proxy;
    mgr.removeNotificationService(ns.getName());
    int iterations = 0;
    long sleepMillis = 10;
    while (factory.getProxy(nsObjectName, NotificationService.class, false) != null) {
        mySleep(sleepMillis);
        if (sleepMillis >= 400) {
            trace("testProxyFactoryDetectsMBeanRemoved: waiting for proxy to be removed");
        }
        sleepMillis *= 2;
    }
}
Also used : NotificationServiceMgr(com.sun.appserv.management.base.NotificationServiceMgr) ProxyFactory(com.sun.appserv.management.client.ProxyFactory) NotificationService(com.sun.appserv.management.base.NotificationService) ObjectName(javax.management.ObjectName)

Aggregations

NotificationService (com.sun.appserv.management.base.NotificationService)3 NotificationServiceMgr (com.sun.appserv.management.base.NotificationServiceMgr)3 ObjectName (javax.management.ObjectName)3 ProxyFactory (com.sun.appserv.management.client.ProxyFactory)1 IOException (java.io.IOException)1 InstanceNotFoundException (javax.management.InstanceNotFoundException)1