package com.alibaba.doris.common.adminservice; import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.lang.StringUtils; import com.alibaba.doris.common.NodeRouteStatus; import com.alibaba.doris.common.RouteConfigInstance; import com.alibaba.doris.common.StoreNode; import com.alibaba.doris.common.StoreNodeSequenceEnum; import com.alibaba.fastjson.JSON; public class RouterConfigServiceServlet extends HttpServlet { /** * */ private static final long serialVersionUID = -5446749189586775818L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String actionName = request.getParameter("actionName"); String[] actions = StringUtils.split(actionName, ","); String resTxt = StringUtils.EMPTY; if (actionName != null && actionName.length() > 0) { String configVersion = request.getParameter("configVersion"); String[] configVersions = StringUtils.split(configVersion, ","); boolean noVersion = false; if (configVersions == null || actions.length != configVersions.length) { noVersion = true; } Map<String, String> resultMap = new HashMap<String, String>(); for (int i = 0; i < actions.length; i++) { String config = mockLoadConfig(actions[i], noVersion ? 0L : Long.parseLong(configVersions[i])); resultMap.put(actions[i], config); } response.setCharacterEncoding("UTF-8"); response.setContentType("text/plain;charset=UTF-8"); resTxt = JSON.toJSONString(resultMap); } else { resTxt = JSON.toJSONString(new HashMap<String, String>()); } PrintWriter writer = response.getWriter(); writer.write(resTxt); writer.close(); } private String mockLoadConfig(String action, Long version) { StoreNode node = new StoreNode(); node.setIp("127.0.0.1"); node.setLogicId(1); node.setPhId("phId"); node.setPort(8081); node.setSequence(StoreNodeSequenceEnum.NORMAL_SEQUENCE_1); node.setStatus(NodeRouteStatus.OK); node.setURL("http://localhos/data"); List<StoreNode> nodeLists = new ArrayList<StoreNode>(); nodeLists.add(node); RouteConfigInstance routeConfig = new RouteConfigInstance(); routeConfig.setVersion(1111); routeConfig.setStoreNodes(nodeLists); if (version >= 1111) { return null; } return JSON.toJSONString(routeConfig); } protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req, resp); } }