public class

JmxConnectionPoolMonitor

extends Object
implements JmxConnectionPoolMonitorMBean
package com.netflix.astyanax.connectionpool;

import org.apache.commons.lang.StringUtils;

import com.google.common.base.Function;
import com.google.common.collect.Lists;

/**
 * MBean monitoring for a connection pool
 * 
 * @author elandau
 * 
 */
public class JmxConnectionPoolMonitor implements JmxConnectionPoolMonitorMBean {
    private final ConnectionPool<?> pool;

    private final static int DEFAULT_PORT = 7102;

    public JmxConnectionPoolMonitor(ConnectionPool<?> pool) {
        this.pool = pool;
    }

    @Override
    public boolean addHost(String host) {
        return pool.addHost(new Host(host, DEFAULT_PORT), true);
    }

    @Override
    public boolean removeHost(String host) {
        return pool.addHost(new Host(host, DEFAULT_PORT), true);
    }

    @Override
    public boolean isHostUp(String host) {
        return pool.isHostUp(new Host(host, DEFAULT_PORT));
    }

    @Override
    public boolean hasHost(String host) {
        return pool.hasHost(new Host(host, DEFAULT_PORT));
    }

    @Override
    public String getActiveHosts() {
        return StringUtils.join(Lists.transform(pool.getActivePools(), new Function<HostConnectionPool<?>, String>() {
            @Override
            public String apply(HostConnectionPool<?> host) {
                return host.getHost().getName();
            }
        }), ",");
    }
}