You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by co...@apache.org on 2001/04/21 20:28:44 UTC

cvs commit: jakarta-tomcat/src/admin/contextAdmin restart.jsp threadList.jsp

costin      01/04/21 11:28:44

  Added:       src/admin/WEB-INF/classes/tadm ThreadAdmin.java
               src/admin/contextAdmin restart.jsp threadList.jsp
  Log:
  Some more admin pages, showing threads and for "soft" restart ( to test threads
  are cleaned up on shutdown - all modules must be reviewed for resource leaks
  on shutdown ).
  
  Of course, the admin is still looking bad - it's not difficult to add some nice
  html, but the intention is to start a small revolution after 3.3 is done and
  separate the ui from the (trusted ) admin.
  
  Revision  Changes    Path
  1.1                  jakarta-tomcat/src/admin/WEB-INF/classes/tadm/ThreadAdmin.java
  
  Index: ThreadAdmin.java
  ===================================================================
  package tadm;
  import java.util.Vector;
  import java.util.Enumeration;
  import java.io.*;
  import java.net.URL;
  import javax.servlet.http.*;
  
  import javax.servlet.jsp.*;
  import javax.servlet.jsp.tagext.*;
  
  /**
   *
   */
  public class ThreadAdmin extends TagSupport {
      
      public ThreadAdmin() {}
  
      public int doStartTag() throws JspException {
  	return EVAL_BODY_INCLUDE;
      }
  
      public int doEndTag() throws JspException {
  	return EVAL_PAGE;
      }
  
      // -------------------- Implementation --------------------
  
      public static Thread[] findThreads() {
  	Thread thr=Thread.currentThread();
  	ThreadGroup tg=thr.getThreadGroup();
  	while( tg.getParent() != null ) {
  	    tg=tg.getParent();
  	}
  	// tg is now the top thread group
  	int count=tg.activeGroupCount() + 5;
  	ThreadGroup childs[] = new ThreadGroup[count];
  
  	int tcount=tg.activeCount() + 5;
  	Thread threads[]=new Thread[tcount];
  
  	int realC=tg.enumerate( threads, true );
  	Thread realThreads[]=new Thread[realC ];
  	System.arraycopy( threads, 0, realThreads, 0, realC );
  	return realThreads;
      }
  }
  
  
  
  1.1                  jakarta-tomcat/src/admin/contextAdmin/restart.jsp
  
  Index: restart.jsp
  ===================================================================
  <html>
  <%@ taglib uri="http://jakarta.apache.org/taglibs/tomcat_admin-1.0" 
             prefix="adm" %>
  <%@ page buffer="none" %>
  <!--
    Copyright (c) 1999 The Apache Software Foundation.  All rights 
    reserved.
  -->
  
  <head>
  
      <title>Context list</title>
  </head>
  
  <body bgcolor="white">
  
  <adm:admin/>
  
  <h2>Prepare to restart</h2>
  
  <%
  try {
    cm.stop(); // all contexts stopped
    cm.shutdown(); // all contexts removed
    cm.init();
    cm.start();
  } catch(Exception ex) {
    ex.printStackTrace();
  }
   System.out.println("Done restarting ");
  %>
  
  <h1>Server restarted </h1>
  
  </body>
  </html>
  
  
  
  1.1                  jakarta-tomcat/src/admin/contextAdmin/threadList.jsp
  
  Index: threadList.jsp
  ===================================================================
  <html>
  <%@ taglib uri="http://jakarta.apache.org/taglibs/tomcat_admin-1.0" 
             prefix="adm" %>
  
  <!--
    Copyright (c) 1999 The Apache Software Foundation.  All rights 
    reserved.
  -->
  
  <head>
  
      <title>Context list</title>
  </head>
  
  <body bgcolor="white">
  
  <adm:admin/>
  
    <h3>Threads</h3>
       
      <table>
        <adm:iterate name="th" 
                    array="<%= tadm.ThreadAdmin.findThreads() %>" 
                    type="java.lang.Thread" >
        <tr>
  	  <td><%= th.getName() %></td>
  	  <td><%= th.getThreadGroup().getName() %></td>
        </tr>
       </adm:iterate>
      </table>
  
  </body>
  </html>