package com.vmware.springsource.hyperic.plugin.gemfire.collectors;
import com.vmware.springsource.hyperic.plugin.gemfire.GemFireUtils;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import javax.management.MBeanServerConnection;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.hyperic.hq.product.Collector;
import org.hyperic.hq.product.PluginException;
import org.hyperic.hq.product.jmx.MxUtil;
public class GatewayCollector extends Collector {
static Log log = LogFactory.getLog(GatewayCollector.class);
@Override
protected void init() throws PluginException {
Properties props = getProperties();
log.debug("[init] props=" + props);
super.init();
}
public void collect() {
Properties props = getProperties();
log.debug("[collect] props=" + props);
try {
MBeanServerConnection mServer = MxUtil.getMBeanServer(props);
String memberID = GemFireUtils.memberNameToMemberID(props.getProperty("member.name"), mServer);
Map memberDetails = GemFireUtils.getMemberDetails(memberID, mServer);
List<Map> gateways = (List) memberDetails.get("gemfire.member.gatewayhub.gateways.collection");
String id = (String) props.get("gatewayID");
for (Map gateway : gateways) {
if (((String) gateway.get("gemfire.member.gateway.id.string")).equals(id)) {
setAvailability(((Boolean) gateway.get("gemfire.member.gateway.isconnected.boolean")));
setValue("queuesize", (Integer) gateway.get("gemfire.member.gateway.queuesize.int"));
}
}
} catch (Exception ex) {
setAvailability(false);
log.debug("[collect] " + ex.getMessage(), ex);
}
}
}