package kg.apc.jmeter.jmxmon;
import org.apache.jmeter.samplers.SampleEvent;
import org.apache.jmeter.testelement.property.JMeterProperty;
import javax.management.MBeanServerConnection;
import java.io.IOException;
import java.util.Hashtable;
class TestJMXMonCollector extends JMXMonCollector {
private final JMXMonTest jmxMonTest;
public TestJMXMonCollector(JMXMonTest jmxMonTest) {
this.jmxMonTest = jmxMonTest;
}
@Override
public void run() {
try {
// Override run to controll the entire flow from the test
Thread.sleep(24 * 60 * 60 * 1000);
} catch (InterruptedException ex) {
synchronized (jmxMonTest) {
jmxMonTest.setThreadStoped(true);
jmxMonTest.notifyAll();
}
}
}
@Override
protected void initiateConnector(Hashtable attributes, JMeterProperty jmxUrl, String name, boolean delta, String objectName, String attribute, String key, boolean canRetry) throws IOException {
MBeanServerConnection conn = new MBeanServerConnectionEmul(jmxMonTest.getQueryResults());
jmxMonSamplers.add(new JMXMonSampler(conn, null, jmxUrl, name, objectName, attribute, key, delta));
}
@Override
public void jmxMonSampleOccurred(SampleEvent event) {
super.sampleOccurred(event);
double value = JMXMonSampleResult.getValue(event.getResult());
jmxMonTest.getLatestSamples().put(event.getResult().getSampleLabel(), value);
}
@Override
public void testEnded() {
super.testEnded(); //To change body of generated methods, choose Tools | Templates.
}
}