package com.baidu.disconf.core.common.path; import java.util.HashMap; import java.util.LinkedHashMap; import java.util.Map; import com.baidu.disconf.core.common.constants.Constants; import com.baidu.disconf.core.common.constants.DisConfigTypeEnum; /** * disconf web path 管理 * * @author liaoqiqi * @version 2014-6-10 */ public class DisconfWebPathMgr { public DisconfWebPathMgr() { } /** * 获取 配置项 或者 是配置ITEM 的远程URL * * @return */ public static String getRemoteUrlParameter(String urlPrefix, String app, String version, String env, String key, DisConfigTypeEnum disConfigTypeEnum) { Map<String, String> parameterMap = getConfServerBasePathMap(app, version, env, key); // 配置文件或配置项 parameterMap.put(Constants.TYPE, String.valueOf(disConfigTypeEnum.getType())); StringBuffer sb = new StringBuffer(); sb.append(urlPrefix); if (disConfigTypeEnum.getType() == DisConfigTypeEnum.FILE.getType()) { sb.append(Constants.SEP_STRING + Constants.STORE_FILE_URL_KEY); } else { sb.append(Constants.SEP_STRING + Constants.STORE_ITEM_URL_KEY); } sb.append("?"); for (String thisKey : parameterMap.keySet()) { String cur = thisKey + "=" + parameterMap.get(thisKey); cur += "&"; sb.append(cur); } if (sb.length() > 0) { sb.deleteCharAt(sb.length() - 1); } return sb.toString(); } /** * @return String * * @Description: 获取基本配置路径 的MAP * @author liaoqiqi * @date 2013-6-16 */ private static Map<String, String> getConfServerBasePathMap(String app, String version, String env, String key) { Map<String, String> parameterMap = new LinkedHashMap<String, String>(); parameterMap.put(Constants.VERSION, version); parameterMap.put(Constants.APP, app); parameterMap.put(Constants.ENV, env); parameterMap.put(Constants.KEY, key); return parameterMap; } /** * 获取 Disconf-Web 上的ZOO获取URL地址 * * @return */ public static String getZooHostsUrl(String urlPrefix) { return urlPrefix + Constants.SEP_STRING + Constants.ZOO_HOSTS_URL_KEY; } /** * 获取 Disconf-Web 上的ZOO PrefixURL * * @return */ public static String getZooPrefixUrl(String urlPrefix) { return urlPrefix + Constants.SEP_STRING + Constants.ZOO_HOSTS_URL_PREFIX_KEY; } }