objname = new ObjectName("org.apache.openjpa:type=DataCache,cfgid=openjpa-integration-jmx,*");
Set<ObjectName> ons = mbs.queryNames(objname, null);
assertEquals(1, ons.size());
ObjectName on = ons.iterator().next();
DataCacheJMXInstrumentMBean mbean = JMX.newMBeanProxy(mbs, on, DataCacheJMXInstrumentMBean.class);
// Assert data cache attributes can be accessed and are being updated through the MBean
assertTrue(mbean.getHitCount() > 0);
assertTrue(mbean.getReadCount() > 0);
assertTrue(mbean.getWriteCount() > 0);
// Assert data cache MBean methods can be invoked
assertTrue(mbean.getHitCount(clsName) > 0);
assertTrue(mbean.getReadCount(clsName) > 0);
assertTrue(mbean.getWriteCount(clsName) > 0);
Map<String,long[]> stats = mbean.getCacheStatistics();
assertNotNull(stats);
// Comment out classNames portion of the test which is currently broken.
Set<String> classNames = stats.keySet();
assertNotNull(classNames);
assertTrue(classNames.contains(clsName));
// Invoke the reset method and recollect stats
mbean.reset();
assertEquals(0, mbean.getHitCount());
assertEquals(0, mbean.getReadCount());
assertEquals(0, mbean.getWriteCount());
assertEquals(0,mbean.getHitCount(clsName));
assertEquals(0,mbean.getReadCount(clsName));
assertEquals(0,mbean.getWriteCount(clsName));
} catch (Exception e) {
fail("Unexpected exception: " + e);
return false;
}
return true;