diff options
Diffstat (limited to 'plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/SystemManagerServlet.java')
-rw-r--r-- | plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/SystemManagerServlet.java | 475 |
1 files changed, 237 insertions, 238 deletions
diff --git a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/SystemManagerServlet.java b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/SystemManagerServlet.java index 6b38c422b59..efe6109ee88 100644 --- a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/SystemManagerServlet.java +++ b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/SystemManagerServlet.java @@ -42,262 +42,261 @@ import org.eclipse.osee.framework.manager.servlet.internal.Activator; */ public class SystemManagerServlet extends UnsecuredOseeHttpServlet { - private static final long serialVersionUID = 3334123351267606890L; + private static final long serialVersionUID = 3334123351267606890L; - private static enum Command { - user, - delete, - alive, - invalid, - overview; - } + private static enum Command { + user, + delete, + alive, + invalid, + overview; + } - private final ISessionManager sessionManager; + private final ISessionManager sessionManager; - public SystemManagerServlet(ISessionManager sessionManager) { - this.sessionManager = sessionManager; - } + public SystemManagerServlet(ISessionManager sessionManager) { + this.sessionManager = sessionManager; + } - @Override - protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { - try { - Command command = Command.overview; - String cmd = request.getParameter("cmd"); - if (Strings.isValid(cmd)) { - command = Command.valueOf(cmd); - } - switch (command) { - case user: - displayUser(request, response); - break; - case delete: - deleteSession(request, response); - break; - case alive: - sessionAlive(request, response); - break; - default: - displayOverview(request, response); - break; - } - } catch (Exception ex) { - OseeLog.log(Activator.class, Level.SEVERE, - String.format("Error processing request for protocols [%s]", request.toString()), ex); - response.setStatus(HttpServletResponse.SC_BAD_REQUEST); - response.setContentType("text/plain"); - response.getWriter().write(Lib.exceptionToString(ex)); - } finally { - response.getWriter().flush(); - response.getWriter().close(); - } - } + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { + try { + Command command = Command.overview; + String cmd = request.getParameter("cmd"); + if (Strings.isValid(cmd)) { + command = Command.valueOf(cmd); + } + switch (command) { + case user: + displayUser(request, response); + break; + case delete: + deleteSession(request, response); + break; + case alive: + sessionAlive(request, response); + break; + default: + displayOverview(request, response); + break; + } + } catch (Exception ex) { + OseeLog.log(Activator.class, Level.SEVERE, + String.format("Error processing request for protocols [%s]", request.toString()), ex); + response.setStatus(HttpServletResponse.SC_BAD_REQUEST); + response.setContentType("text/plain"); + response.getWriter().write(Lib.exceptionToString(ex)); + } finally { + response.getWriter().flush(); + response.getWriter().close(); + } + } - private void displayOverview(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - String requestAddress = request.getLocalAddr(); - String requestPort = String.valueOf(request.getLocalPort()); + private void displayOverview(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + String requestAddress = request.getLocalAddr(); + String requestPort = String.valueOf(request.getLocalPort()); - StringBuffer sb = new StringBuffer(1000); - try { - sb.append(AHTML.heading(2, "OSEE Dashboard")); - sb.append(createAnchor(AnchorType.MANAGER_HOME_ANCHOR, null, requestAddress, requestPort)); - sb.append(AHTML.newline(2)); - sb.append(getSessionByUserIdEntry(request, response)); - sb.append(getSessions(requestAddress, requestPort)); - } catch (Exception ex) { - sb.append("Exception: "); - sb.append(Lib.exceptionToString(ex)); - } - displayResults(sb.toString(), request, response); - } + StringBuffer sb = new StringBuffer(1000); + try { + sb.append(AHTML.heading(2, "OSEE Dashboard")); + sb.append(createAnchor(AnchorType.MANAGER_HOME_ANCHOR, null, requestAddress, requestPort)); + sb.append(AHTML.newline(2)); + sb.append(getSessionByUserIdEntry(request, response)); + sb.append(getSessions(requestAddress, requestPort)); + } catch (Exception ex) { + sb.append("Exception: "); + sb.append(Lib.exceptionToString(ex)); + } + displayResults(sb.toString(), request, response); + } - private String getSessionByUserIdEntry(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - StringBuffer sb = new StringBuffer(1000); - try { - sb.append("<form METHOD=GET ACTION=\"http://" + request.getLocalAddr() + ":" + request.getLocalPort() + "/osee/manager\">"); - sb.append("By UserId: <input TYPE=\"text\" NAME=\"userId\" SIZE=\"10\" MAXLENGTH=\"10\">"); - sb.append("<input TYPE=\"hidden\" NAME=\"cmd\" VALUE=\"user\">"); - sb.append("<INPUT TYPE=SUBMIT></form>"); - } catch (Exception ex) { - sb.append("Exception: "); - sb.append(Lib.exceptionToString(ex)); - } - return sb.toString(); - } + private String getSessionByUserIdEntry(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + StringBuffer sb = new StringBuffer(1000); + try { + sb.append("<form METHOD=GET ACTION=\"http://" + request.getLocalAddr() + ":" + request.getLocalPort() + "/osee/manager\">"); + sb.append("By UserId: <input TYPE=\"text\" NAME=\"userId\" SIZE=\"10\" MAXLENGTH=\"10\">"); + sb.append("<input TYPE=\"hidden\" NAME=\"cmd\" VALUE=\"user\">"); + sb.append("<INPUT TYPE=SUBMIT></form>"); + } catch (Exception ex) { + sb.append("Exception: "); + sb.append(Lib.exceptionToString(ex)); + } + return sb.toString(); + } - private void displayUser(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - StringBuffer sb = new StringBuffer(1000); - try { - HttpSystemManagerCreationInfo info = new HttpSystemManagerCreationInfo(request); - String requestAddress = request.getLocalAddr(); - String requestPort = String.valueOf(request.getLocalPort()); - String userId = info.getUserId(); - if (!Strings.isValid(userId)) { - sb.append("Invalid userId [" + userId + "]"); - } else { - sb.append(AHTML.heading(2, "OSEE System Manager")); - sb.append(createAnchor(AnchorType.MANAGER_HOME_ANCHOR, null, requestAddress, requestPort)); - sb.append(AHTML.newline(1)); - sb.append(getSessionsByUserId(userId, requestAddress, requestPort)); - } - } catch (Exception ex) { - sb.append("Exception: "); - sb.append(Lib.exceptionToString(ex)); - } - displayResults(sb.toString(), request, response); - } + private void displayUser(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + StringBuffer sb = new StringBuffer(1000); + try { + HttpSystemManagerCreationInfo info = new HttpSystemManagerCreationInfo(request); + String requestAddress = request.getLocalAddr(); + String requestPort = String.valueOf(request.getLocalPort()); + String userId = info.getUserId(); + if (!Strings.isValid(userId)) { + sb.append("Invalid userId [" + userId + "]"); + } else { + sb.append(AHTML.heading(2, "OSEE System Manager")); + sb.append(createAnchor(AnchorType.MANAGER_HOME_ANCHOR, null, requestAddress, requestPort)); + sb.append(AHTML.newline(1)); + sb.append(getSessionsByUserId(userId, requestAddress, requestPort)); + } + } catch (Exception ex) { + sb.append("Exception: "); + sb.append(Lib.exceptionToString(ex)); + } + displayResults(sb.toString(), request, response); + } - private void deleteSession(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - StringBuffer sb = new StringBuffer(1000); - try { - HttpSystemManagerCreationInfo info = new HttpSystemManagerCreationInfo(request); - if (!Strings.isValid(info.getSessionId())) { - sb.append("Invalid userId [" + info.getSessionId() + "]"); - } else { - sessionManager.releaseSessionImmediate(info.getSessionId()); - sb.append("Deleted session [" + info.getSessionId() + "]"); - } - } catch (OseeCoreException ex) { - sb.append("Exception: " + ex.getLocalizedMessage()); - } - displayResults(sb.toString(), request, response); - } + private void deleteSession(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + StringBuffer sb = new StringBuffer(1000); + try { + HttpSystemManagerCreationInfo info = new HttpSystemManagerCreationInfo(request); + if (!Strings.isValid(info.getSessionId())) { + sb.append("Invalid userId [" + info.getSessionId() + "]"); + } else { + sessionManager.releaseSessionImmediate(info.getSessionId()); + sb.append("Deleted session [" + info.getSessionId() + "]"); + } + } catch (OseeCoreException ex) { + sb.append("Exception: " + ex.getLocalizedMessage()); + } + displayResults(sb.toString(), request, response); + } - private void sessionAlive(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - StringBuffer sb = new StringBuffer(1000); - try { - HttpSystemManagerCreationInfo info = new HttpSystemManagerCreationInfo(request); - if (!Strings.isValid(info.getSessionId())) { - sb.append("Invalid userId [" + info.getSessionId() + "]"); - } else { - try { - ISession session = sessionManager.getSessionById(info.getSessionId()); - if (session == null) { - sb.append("Can't retrieve SessionData for [" + info.getSessionId() + "]"); - return; - } - String clientAddress = session.getClientAddress(); - String clientPort = String.valueOf(session.getClientPort()); - String url = String.format("http://%s:%s/osee/request?cmd=pingId", clientAddress, clientPort); - String responseStr = HttpProcessor.acquireString(new URL(url)); - if (responseStr == null || responseStr.equals("")) { - sb.append("[" + info.getSessionId() + "] not responding to info request"); - } else if (!responseStr.contains(info.getSessionId())) { - sb.append("NOT ALIVE - [" + info.getSessionId() + "] (response, but mismatched sessionId)"); - } else { - sb.append("ALIVE - [" + info.getSessionId() + "]"); - } - } catch (Exception ex) { - OseeLog.log(this.getClass(), Level.SEVERE, ex); - sb.append("Exception: " + ex.getLocalizedMessage()); - } - } - } catch (OseeCoreException ex) { - sb.append("Exception: " + ex.getLocalizedMessage()); - } - displayResults(sb.toString(), request, response); - } + private void sessionAlive(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + StringBuffer sb = new StringBuffer(1000); + try { + HttpSystemManagerCreationInfo info = new HttpSystemManagerCreationInfo(request); + if (!Strings.isValid(info.getSessionId())) { + sb.append("Invalid userId [" + info.getSessionId() + "]"); + } else { + try { + ISession session = sessionManager.getSessionById(info.getSessionId()); + if (session == null) { + sb.append("Can't retrieve SessionData for [" + info.getSessionId() + "]"); + return; + } + String clientAddress = session.getClientAddress(); + String clientPort = String.valueOf(session.getClientPort()); + String url = String.format("http://%s:%s/osee/request?cmd=pingId", clientAddress, clientPort); + String responseStr = HttpProcessor.acquireString(new URL(url)); + if (responseStr == null || responseStr.equals("")) { + sb.append("[" + info.getSessionId() + "] not responding to info request"); + } else if (!responseStr.contains(info.getSessionId())) { + sb.append("NOT ALIVE - [" + info.getSessionId() + "] (response, but mismatched sessionId)"); + } else { + sb.append("ALIVE - [" + info.getSessionId() + "]"); + } + } catch (Exception ex) { + OseeLog.log(this.getClass(), Level.SEVERE, ex); + sb.append("Exception: " + ex.getLocalizedMessage()); + } + } + } catch (OseeCoreException ex) { + sb.append("Exception: " + ex.getLocalizedMessage()); + } + displayResults(sb.toString(), request, response); + } - private void displayResults(String results, HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - try { - response.setStatus(HttpServletResponse.SC_OK); - response.setContentType("text/html"); - response.setCharacterEncoding("UTF-8"); - response.getWriter().write(results + AHTML.newline() + "As of: " + new Date()); - } catch (Exception ex) { - OseeLog.log(Activator.class, Level.SEVERE, - String.format("Error processing request for protocols [%s]", request.toString()), ex); - response.setStatus(HttpServletResponse.SC_BAD_REQUEST); - response.setContentType("text/plain"); - response.getWriter().write(Lib.exceptionToString(ex)); - } finally { - response.getWriter().flush(); - response.getWriter().close(); - } - } + private void displayResults(String results, HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + try { + response.setStatus(HttpServletResponse.SC_OK); + response.setContentType("text/html"); + response.setCharacterEncoding("UTF-8"); + response.getWriter().write(results + AHTML.newline() + "As of: " + new Date()); + } catch (Exception ex) { + OseeLog.log(Activator.class, Level.SEVERE, + String.format("Error processing request for protocols [%s]", request.toString()), ex); + response.setStatus(HttpServletResponse.SC_BAD_REQUEST); + response.setContentType("text/plain"); + response.getWriter().write(Lib.exceptionToString(ex)); + } finally { + response.getWriter().flush(); + response.getWriter().close(); + } + } - private String getSessions(String requestAddress, String requestPort) throws Exception { - Collection<ISession> sessionData = sessionManager.getAllSessions(true); - return createSessionTable(sessionData, "Sessions", requestAddress, requestPort); - } + private String getSessions(String requestAddress, String requestPort) throws Exception { + Collection<ISession> sessionData = sessionManager.getAllSessions(true); + return createSessionTable(sessionData, "Sessions", requestAddress, requestPort); + } - private String getSessionsByUserId(String userId, String requestAddress, String requestPort) throws Exception { - Collection<ISession> sessionData = sessionManager.getSessionsByUserId(userId, true); - return createSessionTable(sessionData, "Sessions for [" + userId + "]", requestAddress, requestPort); - } + private String getSessionsByUserId(String userId, String requestAddress, String requestPort) throws Exception { + Collection<ISession> sessionData = sessionManager.getSessionsByUserId(userId, true); + return createSessionTable(sessionData, "Sessions for [" + userId + "]", requestAddress, requestPort); + } - private static SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd hh:mm a"); + private static SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd hh:mm a"); - enum AnchorType { - INFO_ANCHOR, - ALIVE_ANCHOR, - LOG_ANCHOR, - DELETE_ANCHOR, - MANAGER_HOME_ANCHOR; - } + enum AnchorType { + INFO_ANCHOR, + ALIVE_ANCHOR, + LOG_ANCHOR, + DELETE_ANCHOR, + MANAGER_HOME_ANCHOR; + } - private String createAnchor(AnchorType anchorType, String sessionId, String address, String port) throws UnsupportedEncodingException { - String toReturn = Strings.emptyString(); - switch (anchorType) { - case INFO_ANCHOR: - toReturn = String.format("<a href=\"http://%s:%s/osee/request?cmd=info\">info</a>", address, port); - break; - case LOG_ANCHOR: - toReturn = String.format("<a href=\"http://%s:%s/osee/request?cmd=log\">log</a>", address, port); - break; - case ALIVE_ANCHOR: - String eSessionId = URLEncoder.encode(sessionId, "UTF-8"); - toReturn = - String.format("<a href=\"http://%s:%s/%s?cmd=alive&sessionId=%s\">alive</a>", address, port, - OseeServerContext.MANAGER_CONTEXT, eSessionId); - break; - case DELETE_ANCHOR: - String encodedSessionId = URLEncoder.encode(sessionId, "UTF-8"); - toReturn = - String.format("<a href=\"http://%s:%s/%s?cmd=delete&sessionId=%s\">delete</a>", address, port, - OseeServerContext.MANAGER_CONTEXT, encodedSessionId); - break; - case MANAGER_HOME_ANCHOR: - toReturn = - String.format("<a href=\"http://%s:%s/%s\">Home</a>", address, port, - OseeServerContext.MANAGER_CONTEXT); - break; - default: - break; - } - return toReturn; - } + private String createAnchor(AnchorType anchorType, String sessionId, String address, String port) throws UnsupportedEncodingException { + String toReturn = Strings.emptyString(); + switch (anchorType) { + case INFO_ANCHOR: + toReturn = String.format("<a href=\"http://%s:%s/osee/request?cmd=info\">info</a>", address, port); + break; + case LOG_ANCHOR: + toReturn = String.format("<a href=\"http://%s:%s/osee/request?cmd=log\">log</a>", address, port); + break; + case ALIVE_ANCHOR: + String eSessionId = URLEncoder.encode(sessionId, "UTF-8"); + toReturn = + String.format("<a href=\"http://%s:%s/%s?cmd=alive&sessionId=%s\">alive</a>", address, port, + OseeServerContext.MANAGER_CONTEXT, eSessionId); + break; + case DELETE_ANCHOR: + String encodedSessionId = URLEncoder.encode(sessionId, "UTF-8"); + toReturn = + String.format("<a href=\"http://%s:%s/%s?cmd=delete&sessionId=%s\">delete</a>", address, port, + OseeServerContext.MANAGER_CONTEXT, encodedSessionId); + break; + case MANAGER_HOME_ANCHOR: + toReturn = + String.format("<a href=\"http://%s:%s/%s\">Home</a>", address, port, OseeServerContext.MANAGER_CONTEXT); + break; + default: + break; + } + return toReturn; + } - private String createSessionTable(Collection<ISession> sessionDatas, String title, String requestAddress, String requestPort) throws Exception { - StringBuffer sb = new StringBuffer(1000); - sb.append(AHTML.heading(3, title)); - sb.append(AHTML.beginMultiColumnTable(100, 1)); - sb.append(AHTML.addHeaderRowMultiColumnTable(new String[] {"Created", "Cmds", "User", "Version", "Machine", - "Last Interaction", "IP", "Port", "Delete"})); + private String createSessionTable(Collection<ISession> sessionDatas, String title, String requestAddress, String requestPort) throws Exception { + StringBuffer sb = new StringBuffer(1000); + sb.append(AHTML.heading(3, title)); + sb.append(AHTML.beginMultiColumnTable(100, 1)); + sb.append(AHTML.addHeaderRowMultiColumnTable(new String[] {"Created", "Cmds", "User", "Version", "Machine", + "Last Interaction", "IP", "Port", "Delete"})); - List<String> items = new ArrayList<String>(); - for (ISession session : sessionDatas) { - String sessionId = session.getGuid(); - String clientAddress = session.getClientAddress(); - String clientPort = String.valueOf(session.getClientPort()); + List<String> items = new ArrayList<String>(); + for (ISession session : sessionDatas) { + String sessionId = session.getGuid(); + String clientAddress = session.getClientAddress(); + String clientPort = String.valueOf(session.getClientPort()); - items.add(AHTML.addRowMultiColumnTable(new String[] {dateFormat.format(session.getCreationDate()), - createCmds(sessionId, clientAddress, clientPort, requestAddress, requestPort), session.getUserId(), - session.getClientVersion(), session.getClientMachineName(), - dateFormat.format(session.getLastInteractionDate()), clientAddress, clientPort, - createAnchor(AnchorType.DELETE_ANCHOR, sessionId, requestAddress, requestPort)})); - } - String[] sortedItems = items.toArray(new String[items.size()]); - Arrays.sort(sortedItems); - for (int x = sortedItems.length - 1; x >= 0; x--) { - sb.append(sortedItems[x]); - } - sb.append(AHTML.endMultiColumnTable()); - return sb.toString(); - } + items.add(AHTML.addRowMultiColumnTable(new String[] {dateFormat.format(session.getCreationDate()), + createCmds(sessionId, clientAddress, clientPort, requestAddress, requestPort), session.getUserId(), + session.getClientVersion(), session.getClientMachineName(), + dateFormat.format(session.getLastInteractionDate()), clientAddress, clientPort, + createAnchor(AnchorType.DELETE_ANCHOR, sessionId, requestAddress, requestPort)})); + } + String[] sortedItems = items.toArray(new String[items.size()]); + Arrays.sort(sortedItems); + for (int x = sortedItems.length - 1; x >= 0; x--) { + sb.append(sortedItems[x]); + } + sb.append(AHTML.endMultiColumnTable()); + return sb.toString(); + } - private String createCmds(String sessionId, String clientAddress, String clientPort, String requestAddress, String requestPort) throws Exception { - return createAnchor(AnchorType.ALIVE_ANCHOR, sessionId, requestAddress, requestPort) + " - " + createAnchor( - AnchorType.INFO_ANCHOR, sessionId, clientAddress, clientPort) + " - " + createAnchor( - AnchorType.LOG_ANCHOR, sessionId, clientAddress, clientPort); - } + private String createCmds(String sessionId, String clientAddress, String clientPort, String requestAddress, String requestPort) throws Exception { + return createAnchor(AnchorType.ALIVE_ANCHOR, sessionId, requestAddress, requestPort) + " - " + createAnchor( + AnchorType.INFO_ANCHOR, sessionId, clientAddress, clientPort) + " - " + createAnchor(AnchorType.LOG_ANCHOR, + sessionId, clientAddress, clientPort); + } } |