package com.bagri.server.hazelcast.task.schema; import static com.bagri.server.hazelcast.serialize.DataSerializationFactoryImpl.cli_AggregateSchemaHealthTask; import java.util.HashMap; import java.util.Map; import java.util.concurrent.Callable; import javax.management.openmbean.CompositeData; import org.springframework.beans.factory.annotation.Autowired; import com.bagri.server.hazelcast.impl.HealthManagementImpl; import com.bagri.support.util.JMXUtils; import com.hazelcast.core.HazelcastInstance; import com.hazelcast.core.Member; import com.hazelcast.spring.context.SpringAware; @SpringAware public class SchemaHealthAggregator extends SchemaProcessingTask implements Callable<CompositeData> { private HazelcastInstance hzInstance; private HealthManagementImpl hMgr; @Override public int getId() { return cli_AggregateSchemaHealthTask; } @Autowired public void setHealthManager(HealthManagementImpl hMgr) { this.hMgr = hMgr; } @Autowired public void setHazelcastInstance(HazelcastInstance hzInstance) { this.hzInstance = hzInstance; } @Override public CompositeData call() throws Exception { int[] counters = hMgr.getCounters(); Map<String, Object> result = new HashMap<>(3); result.put("Active docs", counters[0]); result.put("Inactive docs", counters[1]); Member m = hzInstance.getCluster().getLocalMember(); result.put("Member", m.getSocketAddress().toString() + " [" + m.getUuid() + "]"); return JMXUtils.mapToComposite("Counters", "Description", result); } }