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));
}
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));
}
}
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;
}
}
Aggregations