costin      00/12/27 13:41:33

  Modified:    src/admin index.html
               src/admin/WEB-INF admin.tld
               src/admin/WEB-INF/classes/tadm TomcatAdmin.java
               src/admin/contextAdmin contextAdmin.html contextAdmin.jsp
                        contextList.jsp ctxDetail.jsp
  Added:       src/admin/contextAdmin contextAdd.jsp contextRemove.jsp
                        moduleList.jsp
  Removed:     src/admin/WEB-INF/classes ContextAdmin.java
  Log:
  - update /admin app
  
  - moved the code from ContextAdmin ( used as bean in contextAdmin.jsp )
  to TomcatAdmin ( tag library )
  
  - added small jsp files to add/remove ( using tag libraries instead of
  bean)
  
  - tested add/remove/add back - the code still needs work ( support for
  virtual hosts, support for adding/removing modules at runtime,
  support for restarting, etc), but at least we have a start.
  Volunteers welcome :-)
  
  Revision  Changes    Path
  1.2       +2 -0      jakarta-tomcat/src/admin/index.html
  
  Index: index.html
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat/src/admin/index.html,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- index.html        2000/02/18 18:33:02     1.1
  +++ index.html        2000/12/27 21:41:23     1.2
  @@ -27,6 +27,8 @@
   <br>
   
   <ul>
  +  <li><a href="./contextAdmin/contextList.jsp">Context list</a>
  +  <li><a href="./contextAdmin/moduleList.jsp">Modules</a>
     <li><a href="./contextAdmin/contextAdmin.html">Context Admin</a>
     <li><a href="/examples/jsp/snp/snoop.jsp">Snoop</a>
   </ul>
  
  
  
  1.2       +17 -0     jakarta-tomcat/src/admin/WEB-INF/admin.tld
  
  Index: admin.tld
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat/src/admin/WEB-INF/admin.tld,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- admin.tld 2000/07/25 20:13:26     1.1
  +++ admin.tld 2000/12/27 21:41:26     1.2
  @@ -23,11 +23,28 @@
         Admin
       </info>
       <attribute>
  +       <name>action</name>
  +       <required>false</required>
  +    </attribute>
  +    <attribute>
          <name>ctxPathParam</name>
          <required>false</required>
       </attribute>
       <attribute>
  +       <name>docBaseParam</name>
  +       <required>false</required>
  +    </attribute>
  +    <attribute>
  +       <name>docBase</name>
  +       <required>false</required>
  +    </attribute>
  +    <attribute>
          <name>ctxPath</name>
  +       <required>false</required>
  +       <rtexprvalue>true</rtexprvalue>
  +    </attribute>
  +    <attribute>
  +       <name>ctxHost</name>
          <required>false</required>
          <rtexprvalue>true</rtexprvalue>
       </attribute>
  
  
  
  1.5       +60 -8     jakarta-tomcat/src/admin/WEB-INF/classes/tadm/TomcatAdmin.java
  
  Index: TomcatAdmin.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat/src/admin/WEB-INF/classes/tadm/TomcatAdmin.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- TomcatAdmin.java  2000/10/02 02:04:36     1.4
  +++ TomcatAdmin.java  2000/12/27 21:41:29     1.5
  @@ -7,9 +7,7 @@
   
   import javax.servlet.jsp.*;
   import javax.servlet.jsp.tagext.*;
  -import org.apache.tomcat.core.Request;
  -import org.apache.tomcat.core.Context;
  -import org.apache.tomcat.core.ContextManager;
  +import org.apache.tomcat.core.*;
   import org.apache.tomcat.helper.RequestUtil;
   
   /**
  @@ -19,8 +17,12 @@
    */
   public class TomcatAdmin extends TagSupport {
       private ContextManager cm;
  -    String ctxPathParam;
       String ctxPath;
  +    String docBase;
  +    String ctxPathParam;
  +    String docBaseParam;
  +    String action;
  +    String host;
       PageContext pageContext;
       
       public TomcatAdmin() {}
  @@ -31,19 +33,30 @@
                getRequest();
            init(req);
            pageContext.setAttribute("cm", cm);
  -         if( ctxPathParam != null ) {
  +         Context ctx=null;
  +         if( ctxPath==null && ctxPathParam!=null ) {
                ctxPath=req.getParameter( ctxPathParam );
            }
  +         if( docBase==null &&  docBaseParam!=null) {
  +             docBase=req.getParameter( docBaseParam );
  +         }
  +         
            if( ctxPath != null ) {
  +             System.out.println("Finding " + ctxPath );
                Enumeration en=cm.getContexts();
                while( en.hasMoreElements() ) {
  -                 Context ctx=(Context)en.nextElement();
  +                 ctx=(Context)en.nextElement();
  +                 // XXX virtual host
                    if( ctxPath.equals( ctx.getPath())) {
                        pageContext.setAttribute("ctx", ctx);
                        break;
                    }
                }
            }
  +         if("removeContext".equals( action ) )
  +             removeContext( cm , ctx);
  +         if("addContext".equals( action ) )
  +             addContext( cm, host, ctxPath, docBase );
        } catch (Exception ex ) {
            ex.printStackTrace();
        }
  @@ -76,12 +89,51 @@
           return cm;
       }
   
  +    public void setCtxPath( String ctx ) {
  +     ctxPath=ctx;
  +    }
  +
       public void setCtxPathParam( String ctx ) {
        ctxPathParam=ctx;
       }
  +    
  +    public void setDocBaseParam( String ctx ) {
  +     docBaseParam=ctx;
  +    }
   
  -    public void setCtxPath( String ctx ) {
  -     ctxPath=ctx;
  +    public void setCtxHost( String host ) {
  +     this.host=host;
  +    }
  +
  +    public void setAction( String action ) {
  +     this.action=action;
  +    }
  +
  +    public void setDocBase( String docBase ) {
  +     this.docBase=docBase;
       }
   
  +    private void removeContext( ContextManager cm, Context ctx)
  +     throws TomcatException
  +    {
  +     System.out.println("Removing " + ctx );
  +     cm.removeContext( ctx );
  +    }
  +
  +    private void addContext( ContextManager cm, String host, String path,
  +                          String docBase)
  +     throws TomcatException
  +    {
  +     if( ! docBase.startsWith("/") ) {
  +         docBase=cm.getHome() + "/" + docBase;
  +     }
  +     System.out.println("Adding " + path + " " + docBase);
  +     Context context = new Context();
  +     context.setContextManager(cm);
  +     context.setPath(path);
  +     context.setDocBase(docBase);
  +
  +     cm.addContext(context);
  +     context.init();
  +    }
   }
  
  
  
  1.2       +11 -3     jakarta-tomcat/src/admin/contextAdmin/contextAdmin.html
  
  Index: contextAdmin.html
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat/src/admin/contextAdmin/contextAdmin.html,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- contextAdmin.html 2000/02/18 18:33:03     1.1
  +++ contextAdmin.html 2000/12/27 21:41:31     1.2
  @@ -10,8 +10,6 @@
   
   <body bgcolor="white">
   
  -<form type=POST action=contextAdmin.jsp>
  -
   <table border=0 cellspacing=5>
     <tr>
       <td><a href="/">
  @@ -31,7 +29,10 @@
   
   <table border=0 cellspacing=5>
     <tr>
  -    <td><td><INPUT TYPE=submit name="submit" value="View All Contexts">
  +    <td><td>
  +       <FORM type=POST action="contextList.jsp">
  +         <INPUT TYPE=submit name="submit" value="View All Contexts">
  +       </FORM>
     </tr>
     <tr>
       <td><td>
  @@ -39,17 +40,24 @@
       <td><td>Document Base:
     </tr>
     <tr>
  +    <form type=POST action=contextAdd.jsp>
       <td><td><INPUT TYPE=submit name="submit" value="Add Context">
       <td><td><INPUT TYPE=text name="addContextPath" size=20>
       <td><td><INPUT TYPE=text name="addContextDocBase" size=20>
  +    <td><td>
  +    </form>
     </tr>
     <tr>
       <td><td>
       <td><td>Context Name:
  +    <td><td>Virtual host:
     </tr>
     <tr>
  +    <form type=POST action=contextRemove.jsp>
       <td><td><INPUT TYPE=submit name="submit" value="Remove Context">
  +    <td><td><INPUT TYPE=text name="virtualHost" size=20>
       <td><td><INPUT TYPE=text name="removeContextName" size=20>
  +    </form>
     </tr>
   </table>
   
  
  
  
  1.2       +1 -21     jakarta-tomcat/src/admin/contextAdmin/contextAdmin.jsp
  
  Index: contextAdmin.jsp
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat/src/admin/contextAdmin/contextAdmin.jsp,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- contextAdmin.jsp  2000/02/18 18:33:03     1.1
  +++ contextAdmin.jsp  2000/12/27 21:41:31     1.2
  @@ -27,27 +27,7 @@
   
         contextAdmin.init(request);
   
  -      if (param.equals("View All Contexts")) {
  -          Enumeration enum = contextAdmin.getContextNames();
  -          while (enum.hasMoreElements()) {
  -              String name = (String)enum.nextElement();
  -%>
  -              <ul>
  -                  <li><font color="#CC0000"><h2>CONTEXT NAME: <%= name %>
  -                  </h2></font>
  -<%
  -              String[] contextInfoArray = contextAdmin.getContextInfo(name);
  -              for (int i=0; i<contextInfoArray.length; i++) {
  -%>
  -                  <dd><dt> <%= contextInfoArray[i] %>
  -<%
  -              }
  -%>
  -              </ul>
  -<%
  -          }
  -      }
  -      else if (param.equals("Add Context")) {
  +      if (param.equals("Add Context")) {
   %>
             <%= contextAdmin.addContext() %>
   <%
  
  
  
  1.2       +12 -28    jakarta-tomcat/src/admin/contextAdmin/contextList.jsp
  
  Index: contextList.jsp
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat/src/admin/contextAdmin/contextList.jsp,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- contextList.jsp   2000/07/25 20:13:29     1.1
  +++ contextList.jsp   2000/12/27 21:41:31     1.2
  @@ -31,38 +31,22 @@
                <%= ("".equals( context.getPath() )) ? "ROOT" :  context.getPath() %>
              </a></td>
         <td> <%= context.getDocBase() %> </td>
  +      <td>
  +     <a href="contextRemove.jsp?removeContextName=<%= context.getPath() %>">
  +            remove
  +     </a>
  +      </td>
  +      <td>
  +     <form method="POST" action="contextRemove.jsp" >
  +          <INPUT TYPE=hidden name="removeContextName" 
  +                 value="<%= context.getPath() %>">
  +          <INPUT TYPE=submit name="submit" value="Remove">
  +        </form>
  +      </td>
         </tr>
     </adm:iterate>
   
     </table>
   
  -  <h3>Request Interceptors</h3>
  -     
  -    <table>
  -     <adm:iterate name="riA" array="<%= cm.getRequestInterceptors() %>" 
  -               type="org.apache.tomcat.core.RequestInterceptor" >
  -      <tr>
  -       <td><%= riA.getClass().getName() %>
  -       </td>
  -     </tr>
  -      <td>
  -      </tr>
  -     </adm:iterate>
  -    </table>
  -
  -  <h3>Context Interceptors</h3>
  -
  -    <table>
  -     <adm:iterate name="riA" array="<%= cm.getContextInterceptors() %>" 
  -               type="org.apache.tomcat.core.ContextInterceptor" >
  -      <tr>
  -       <td><%= riA.getClass().getName() %>
  -       </td>
  -     </tr>
  -      <td>
  -      </tr>
  -     </adm:iterate>
  -    </table>
  -       
   </body>
   </html>
  
  
  
  1.2       +1 -4      jakarta-tomcat/src/admin/contextAdmin/ctxDetail.jsp
  
  Index: ctxDetail.jsp
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat/src/admin/contextAdmin/ctxDetail.jsp,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ctxDetail.jsp     2000/07/25 20:13:29     1.1
  +++ ctxDetail.jsp     2000/12/27 21:41:31     1.2
  @@ -52,15 +52,12 @@
       <tr>
         <th>Index files</th>
         <td> 
  -     <adm:iterate name="wfile" enumeration="<%= ctx.getWelcomeFiles() %>" 
  +     <adm:iterate name="wfile" array="<%= ctx.getWelcomeFiles() %>" 
                        type="java.lang.String" >
          <%= wfile %>&nbsp;
           </adm:iterate>
         </td>
      </tr>
  -    <tr bgcolor="#e1e1e1">
  -      <th>Protection Domain</th><td><pre><%= ctx.getProtectionDomain() %></pre></td>
  -    </tr>
       <tr>
         <th>Virtual Hosts</th>
         <td> <%= ( null == ctx.getHost())? "DEFAULT" : ctx.getHost() %>&nbsp; 
  
  
  
  1.1                  jakarta-tomcat/src/admin/contextAdmin/contextAdd.jsp
  
  Index: contextAdd.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 remove</title>
  </head>
  
  <body bgcolor="white">
  
  <h3>Adding <%= request.getParameter("addContextPath") %> </h3>
  
  <adm:admin ctxPathParam="addContextPath"
             docBaseParam="addContextDocBase"
             action="addContext" />
  
  </body>
  </html>
  
  
  
  1.1                  jakarta-tomcat/src/admin/contextAdmin/contextRemove.jsp
  
  Index: contextRemove.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 remove</title>
  </head>
  
  <body bgcolor="white">
  
  <h3>Removing <%= request.getParameter("removeContextName") %> </h3>
  <%= request.getParameter("removeContextName") %>
  <adm:admin ctxPathParam="removeContextName"
             action="removeContext" />
  
  </body>
  </html>
  
  
  
  1.1                  jakarta-tomcat/src/admin/contextAdmin/moduleList.jsp
  
  Index: moduleList.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>Interceptors</h3>
       
      <table>
       <adm:iterate name="riA" 
                    array="<%= cm.getContainer().getInterceptors() %>" 
                    type="org.apache.tomcat.core.BaseInterceptor" >
        <tr>
          <td><%= riA.getClass().getName() %></td>
        </tr>
       </adm:iterate>
      </table>
  
  </body>
  </html>
  
  
  

Reply via email to