/**
*
*/
package jframe.httpclient;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
import java.util.Random;
import jframe.core.util.PropsConf;
/**
* TODO 配置文件验证
*
* @author dzh
* @date Dec 3, 2014 11:07:29 AM
* @since 1.0
*/
public class HttpClientConfig {
private static final PropsConf CONFIG = new PropsConf();
public static final String IP = "ip";
public static final String PORT = "port";
public static final String GROUP = "group";
public static final String M_POST = "post";
public static final String M_GET = "get";
public static final String HTTP_METHOD = "http.method";
public static final String HTTP_MAX_CONN = "http.max.conn";
public static final String HTTP_MAX_CONN_ROUTE = "http.max.conn.route";
public static final String HTTP_IDLE_CONN_CLOSE = "http.idle.conn.close";
public static final String HTTP_KEEP_ALIVE = "http.keep-alive";
public static final String HTTP_CHARSET = "http.charset";
public static final String HTTP_SO_TIMEOUT = "http.so.timeout";
public static final String HTTP_CONN_TIMEOUT = "http.conn.timeout";
public static void init(String file) throws Exception {
CONFIG.init(file);
}
public static String getRandomHost() {
return Arrays.asList(getHosts()).get(new Random().nextInt(getHosts().length));
}
public static String[] getHosts() {
return CONFIG.getGroupIds();
}
public static String getConf(String group, String key, String defVal) {
return CONFIG.getConf(group, key, defVal);
}
public static String getConf(String group, String key) {
return CONFIG.getConf(group, key, "");
}
/**
*
* @param gid
* @return
*/
public static List<String> getHostByGroup(String gid) {
List<String> hosts = new LinkedList<String>();
for (String host : getHosts()) {
if (gid.equals(CONFIG.getConf(host, GROUP))) {
hosts.add(host);
}
}
return hosts;
}
}