package zx.soft.zk.manager.controller; import java.io.IOException; import java.io.PrintWriter; import java.util.Date; import java.util.Properties; import java.util.Set; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.zookeeper.KeeperException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import zx.soft.zk.manager.domain.LeafBean; import zx.soft.zk.manager.utils.ServletUtil; import zx.soft.zk.manager.utils.ZooKeeperUtil; @WebServlet(urlPatterns = { "/export" }) public class Export extends HttpServlet { private static final long serialVersionUID = 8776755363631646813L; private final static Logger logger = LoggerFactory.getLogger(Export.class); @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { logger.debug("Export Get Action!"); try { Properties globalProps = (Properties) this.getServletContext().getAttribute("globalProps"); String zkServer = globalProps.getProperty("zkServer"); String[] zkServerLst = zkServer.split(","); String authRole = (String) request.getSession().getAttribute("authRole"); if (authRole == null) { authRole = ZooKeeperUtil.ROLE_USER; } String zkPath = request.getParameter("zkPath"); StringBuilder output = new StringBuilder(); output.append("#App Config Dashboard (ACD) dump created on :").append(new Date()).append("\n"); Set<LeafBean> leaves = ZooKeeperUtil.INSTANCE.exportTree(zkPath, ServletUtil.INSTANCE.getZookeeper(request, response, zkServerLst[0]), authRole); for (LeafBean leaf : leaves) { output.append(leaf.getPath()).append('=').append(leaf.getName()).append('=') .append(ServletUtil.INSTANCE.externalizeNodeValue(new String(leaf.getValue()))).append('\n'); }// for all leaves response.setContentType("text/plain"); try (PrintWriter out = response.getWriter()) { out.write(output.toString()); } } catch (InterruptedException | KeeperException ex) { ServletUtil.INSTANCE.renderError(request, response, ex.getMessage()); } } }