Author: curtisr7
Date: Mon Oct 25 16:07:44 2010
New Revision: 1027180
URL: http://svn.apache.org/viewvc?rev=1027180&view=rev
Log:
OPENJPA-1844: Fix TestJMXPlatformMBeans.
Modified:
openjpa/trunk/openjpa-integration/jmx/src/test/java/org/apache/openjpa/integration/jmx/TestJMXPlatformMBeans.java
Modified:
openjpa/trunk/openjpa-integration/jmx/src/test/java/org/apache/openjpa/integration/jmx/TestJMXPlatformMBeans.java
URL:
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-integration/jmx/src/test/java/org/apache/openjpa/integration/jmx/TestJMXPlatformMBeans.java?rev=1027180&r1=1027179&r2=1027180&view=diff
==============================================================================
---
openjpa/trunk/openjpa-integration/jmx/src/test/java/org/apache/openjpa/integration/jmx/TestJMXPlatformMBeans.java
(original)
+++
openjpa/trunk/openjpa-integration/jmx/src/test/java/org/apache/openjpa/integration/jmx/TestJMXPlatformMBeans.java
Mon Oct 25 16:07:44 2010
@@ -27,14 +27,17 @@ import java.util.concurrent.ExecutorServ
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
+import javax.management.JMX;
import javax.management.MBeanServer;
import javax.management.ObjectName;
import javax.persistence.Query;
+import org.apache.openjpa.datacache.CacheStatistics;
import org.apache.openjpa.instrumentation.DataCacheInstrument;
import org.apache.openjpa.instrumentation.InstrumentationManager;
import org.apache.openjpa.instrumentation.PreparedQueryCacheInstrument;
import org.apache.openjpa.instrumentation.QueryCacheInstrument;
+import org.apache.openjpa.instrumentation.jmx.DataCacheJMXInstrumentMBean;
import org.apache.openjpa.instrumentation.jmx.JMXProvider;
import org.apache.openjpa.lib.instrumentation.Instrument;
import org.apache.openjpa.lib.instrumentation.InstrumentationProvider;
@@ -43,7 +46,7 @@ import org.apache.openjpa.persistence.Op
import org.apache.openjpa.persistence.test.AbstractPersistenceTestCase;
public class TestJMXPlatformMBeans extends AbstractPersistenceTestCase {
-
+ private static String clsName = CachedEntity.class.getName();
/**
* Verifies data cache metrics are available through simple
instrumentation.
*/
@@ -83,9 +86,9 @@ public class TestJMXPlatformMBeans exten
ce = oem.find(CachedEntity.class, id);
assertTrue(dci.getHitCount() > 0);
- assertTrue(dci.getHitCount(CachedEntity.class.getName()) > 0);
+ assertTrue(dci.getHitCount(clsName) > 0);
assertTrue(dci.getWriteCount() > 0);
-
assertTrue(dci.getCacheStatistics().classNames().contains(CachedEntity.class.getName()));
+ assertTrue(dci.getCacheStatistics().classNames().contains(clsName));
// 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.
@@ -259,43 +262,35 @@ public class TestJMXPlatformMBeans exten
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
- long hitCount = (Long)mbs.getAttribute(on, "HitCount");
- long readCount = (Long)mbs.getAttribute(on, "ReadCount");
- long writeCount = (Long)mbs.getAttribute(on, "WriteCount");
- assertTrue(hitCount > 0);
- assertTrue(readCount > 0);
- assertTrue(writeCount > 0);
+ assertTrue(mbean.getHitCount() > 0);
+ assertTrue(mbean.getReadCount() > 0);
+ assertTrue(mbean.getWriteCount() > 0);
+
// Assert data cache MBean methods can be invoked
- Object[] parms = new Object[] { CachedEntity.class.getName() };
- String[] sigs = new String[] { "java.lang.String" };
- long clsHitCount = (Long)mbs.invoke(on, "getHitCount", parms,
sigs);
- long clsReadCount = (Long)mbs.invoke(on, "getReadCount",
parms, sigs);
- long clsWriteCount = (Long)mbs.invoke(on, "getWriteCount",
parms, sigs);
- assertTrue(clsHitCount > 0);
- assertTrue(clsReadCount > 0);
- assertTrue(clsWriteCount > 0);
+ assertTrue(mbean.getHitCount(clsName) > 0);
+ assertTrue(mbean.getReadCount(clsName) > 0);
+ assertTrue(mbean.getWriteCount(clsName) > 0);
+ CacheStatistics stats = mbean.getCacheStatistics();
+ assertNotNull(stats);
// Comment out classNames portion of the test which is
currently broken.
- // Set<String> classNames = (Set<String>)mbs.invoke(on,
"classNames", null, null);
- // assertNotNull(classNames);
- //
assertTrue(classNames.contains(CachedEntity.class.getName()));
+ Set<String> classNames = stats.classNames();
+ assertNotNull(classNames);
+ assertTrue(classNames.contains(clsName));
// Invoke the reset method and recollect stats
- mbs.invoke(on, "reset", null, null);
- hitCount = (Long)mbs.getAttribute(on, "HitCount");
- readCount = (Long)mbs.getAttribute(on, "ReadCount");
- writeCount = (Long)mbs.getAttribute(on, "WriteCount");
- assertEquals(0, hitCount);
- assertEquals(0, readCount);
- assertEquals(0, writeCount);
+ mbean.reset();
- clsHitCount = (Long)mbs.invoke(on, "getHitCount", parms, sigs);
- clsReadCount = (Long)mbs.invoke(on, "getReadCount", parms,
sigs);
- clsWriteCount = (Long)mbs.invoke(on, "getWriteCount", parms,
sigs);
- assertEquals(0, clsHitCount);
- assertEquals(0, clsReadCount);
- assertEquals(0, clsWriteCount);
+ 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;