1 16 package scriptella.execution; 17 18 import scriptella.AbstractTestCase; 19 import scriptella.interactive.ProgressIndicator; 20 21 import javax.management.MBeanServer ; 22 import javax.management.MalformedObjectNameException ; 23 import javax.management.ObjectName ; 24 import java.lang.management.ManagementFactory ; 25 import java.util.Date ; 26 import java.util.Set ; 27 28 29 35 public class JmxEtlManagerITest extends AbstractTestCase { 36 public void test() throws EtlExecutorException, MalformedObjectNameException { 37 final EtlExecutor e = newEtlExecutor(); 38 e.setJmxEnabled(true); 39 40 final ObjectName name = JmxEtlManager.toObjectName(e.getConfiguration().getDocumentUrl().toString(), 0); 41 final MBeanServer srv = ManagementFactory.getPlatformMBeanServer(); 42 final long started = System.currentTimeMillis(); 43 e.execute(new ProgressIndicator() { 44 public void showProgress(final double progress, final String message) { 45 if (progress==1) { final Set set = srv.queryMBeans(name, null); 48 assertEquals(1, set.size()); 49 50 try { 51 final Number n = (Number ) srv.getAttribute(name, "ExecutedStatementsCount"); 52 assertEquals(2, n.intValue()); 53 } catch (Exception e) { 54 fail(e.getMessage()); 55 } 56 try { 57 final Date d = (Date ) srv.getAttribute(name, "StartDate"); 58 assertTrue(d.getTime()>=started && d.getTime()<=System.currentTimeMillis()); 59 } catch (Exception e) { 60 fail(e.getMessage()); 61 } 62 try { 63 final Number n = (Number ) srv.getAttribute(name, "Throughput"); 64 assertTrue(n.doubleValue()>0); 65 } catch (Exception e) { 66 fail(e.getMessage()); 67 } 68 69 70 71 } 72 } 73 }); 74 assertFalse(srv.isRegistered(name)); 76 77 } 78 79 80 81 } 82
| Popular Tags
|