package com.dianping.pigeon.console.status.checker; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import java.util.List; import java.util.Map; import com.dianping.pigeon.log.Logger; import com.dianping.pigeon.log.LoggerLoader; import com.dianping.pigeon.remoting.provider.ProviderBootStrap; import com.dianping.pigeon.remoting.provider.Server; public class InvokerStatusChecker implements StatusChecker { private static final Logger logger = LoggerLoader.getLogger(InvokerStatusChecker.class); @Override public List<Map<String, Object>> collectStatusInfo() { List<Map<String, Object>> invokers = new ArrayList<Map<String, Object>>(); if (GlobalStatusChecker.isInitialized()) { try { Collection<Server> servers = ProviderBootStrap.getServersMap().values(); for (Server server : servers) { List<String> serverInvokers = server.getInvokerMetaInfo(); if (serverInvokers != null) { for (String invoker : serverInvokers) { Map<String, Object> item = new HashMap<String, Object>(); item.put("server", server.toString()); item.put("from", invoker); invokers.add(item); } } } } catch (Throwable e) { logger.error("", e); } } return invokers; } @Override public String checkError() { return null; } }