assertEquals(provider.getClass(), JMXProvider.class);
Instrument inst = provider.getInstrumentByName("QueryCache");
assertNotNull(inst);
assertTrue(inst instanceof QueryCacheInstrument);
QueryCacheInstrument qci = (QueryCacheInstrument)inst;
assertEquals(0,qci.getExecutionCount());
assertEquals(0,qci.getTotalExecutionCount());
assertEquals(0,qci.getHitCount());
assertEquals(0,qci.getTotalHitCount());
OpenJPAEntityManagerSPI oem = oemf.createEntityManager();
CachedEntity ce = new CachedEntity();
int id = new Random().nextInt();
ce.setId(id);
CachedEntity ce2 = new CachedEntity();
id = new Random().nextInt();
ce2.setId(id);
oem.getTransaction().begin();
oem.persist(ce);
oem.persist(ce2);
oem.getTransaction().commit();
Query q = oem.createQuery("SELECT ce FROM CachedEntity ce");
List<?> result = q.getResultList();
assertNotNull(result);
assertTrue(result.size() > 1);
oem.clear();
result = q.getResultList();
assertTrue(qci.getExecutionCount() > 0);
assertTrue(qci.getTotalExecutionCount() > 0);
assertTrue(qci.getHitCount() > 0);
assertTrue(qci.getTotalHitCount() > 0);
// Thread out to do out-of-band MBean-based validation. This could
// have been done on the same thread, but threading out makes for a
// more realistic test.
ExecutorService executor = Executors.newFixedThreadPool(1);