package org.radargun.sysmonitor;
import org.radargun.state.ServiceListener;
import org.radargun.state.SlaveState;
import org.radargun.traits.Lifecycle;
/**
* Retrieves JMX statistics from slave nodes.
*/
public class SlaveMonitors extends AbstractMonitors<SlaveState, ServiceListener> implements ServiceListener {
public static final String MONITORS = SlaveMonitors.class.getName();
public SlaveMonitors(SlaveState state, long period) {
super(state, period);
}
@Override
public synchronized void start() {
state.addListener(this);
state.put(MONITORS, this);
Lifecycle lifecycle = state.getTrait(Lifecycle.class);
if (lifecycle != null && lifecycle.isRunning()) {
startInternal();
}
}
@Override
public void afterServiceStart() {
startInternal();
}
@Override
public void beforeServiceStop(boolean graceful) {
stopInternal();
}
@Override
public void serviceDestroyed() {
stop();
}
public String getName() {
return MONITORS;
}
}