patrickl 02/01/09 19:41:14 Modified: webapps/admin connector.jsp server.jsp service.jsp webapps/admin/WEB-INF struts-config.xml webapps/admin/WEB-INF/classes/org/apache/webapp/admin ApplicationResources_en.properties ApplicationResources_es.properties ConnectorForm.java LabelValueBean.java ServerForm.java ServiceForm.java SetUpConnectorAction.java SetUpServerAction.java SetUpServiceAction.java TomcatTreeBuilder.java Added: webapps/admin host.jsp webapps/admin/WEB-INF/classes/org/apache/webapp/admin HostAction.java HostForm.java SetUpHostAction.java Log: * Made the main page title for each screen the same as (i.e. in sync with) the label of the node that is selected. * Added Host editing and viewing functionality. The values are read/written to the corresponding mBean. Submitted by: Manveen Kaur Revision Changes Path 1.2 +3 -3 jakarta-tomcat-4.0/webapps/admin/connector.jsp Index: connector.jsp =================================================================== RCS file: /home/cvs/jakarta-tomcat-4.0/webapps/admin/connector.jsp,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- connector.jsp 5 Jan 2002 20:45:03 -0000 1.1 +++ connector.jsp 10 Jan 2002 03:41:13 -0000 1.2 @@ -21,9 +21,9 @@ <tr bgcolor="7171A5"> <td width="81%"> <html:hidden property="connectorName"/> - <div class="page-title-text" align="left">Connector ( - <bean:write name="connectorForm" property="scheme" scope="session"/> - ) </div> + <div class="page-title-text" align="left"> + <bean:write name="connectorForm" property="nodeLabel" scope="session"/> + </div> </td> <td width="19%"> <div align="right"> 1.6 +3 -1 jakarta-tomcat-4.0/webapps/admin/server.jsp Index: server.jsp =================================================================== RCS file: /home/cvs/jakarta-tomcat-4.0/webapps/admin/server.jsp,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- server.jsp 5 Jan 2002 21:09:15 -0000 1.5 +++ server.jsp 10 Jan 2002 03:41:13 -0000 1.6 @@ -21,7 +21,9 @@ <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr class="page-title-row"> <td align="left" nowrap> - <div class="page-title-text"><bean:message key="server.heading"/></div> + <div class="page-title-text"> + <bean:write name="serverForm" property="nodeLabel" scope="session"/> + </div> </td> <td align="right" nowrap> <div class="page-title-text"> 1.4 +2 -4 jakarta-tomcat-4.0/webapps/admin/service.jsp Index: service.jsp =================================================================== RCS file: /home/cvs/jakarta-tomcat-4.0/webapps/admin/service.jsp,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- service.jsp 3 Jan 2002 23:21:53 -0000 1.3 +++ service.jsp 10 Jan 2002 03:41:13 -0000 1.4 @@ -22,10 +22,8 @@ <tr class="page-title-row"> <td width="81%"> <div class="page-title-text" align="left"> - <bean:message key="service.service"/> ( - <bean:write name="serviceForm" property="serviceName" - scope="session"/> - ) </div> + <bean:write name="serviceForm" property="nodeLabel" scope="session"/> + </div> </td> <td width="19%"> <div align="right"> 1.1 jakarta-tomcat-4.0/webapps/admin/host.jsp Index: host.jsp =================================================================== <!-- Standard Struts Entries --> <%@ page language="java" %> <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %> <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %> <%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %> <%@ taglib uri="/WEB-INF/controls.tld" prefix="controls" %> <html:html locale="true"> <%@ include file="header.jsp" %> <!-- Body --> <body bgcolor="white"> <!--Form --> <html:errors/> <html:form method="POST" action="/host" focus="name"> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr class="page-title-row"> <td align="left" nowrap> <div class="page-title-text"> <html:hidden property="hostName"/> <bean:write name="hostForm" property="nodeLabel" scope="session"/> </div> </td> <td align="right" nowrap> <div align="right"> <controls:actions> <controls:action selected="true"> -----<bean:message key="actions.available.actions"/>----- </controls:action> <controls:action> ------------------------------------- </controls:action> <!-- will add the urls later once those screens get implemented --> <controls:action url=""> <bean:message key="actions.accesslogger.create"/> </controls:action> <controls:action url=""> <bean:message key="actions.accesslogger.delete"/> </controls:action> <controls:action> ------------------------------------- </controls:action> <controls:action url=""> <bean:message key="actions.alias.create"/> </controls:action> <controls:action url=""> <bean:message key="actions.alias.delete"/> </controls:action> <controls:action> ------------------------------------- </controls:action> <controls:action url=""> <bean:message key="actions.logger.create"/> </controls:action> <controls:action url=""> <bean:message key="actions.logger.delete"/> </controls:action> <controls:action> ------------------------------------- </controls:action> <controls:action url=""> <bean:message key="actions.requestfilter.create"/> </controls:action> <controls:action url=""> <bean:message key="actions.requestfilter.delete"/> </controls:action> <controls:action> ------------------------------------- </controls:action> <controls:action url=""> <bean:message key="actions.userrealm.create"/> </controls:action> <controls:action url=""> <bean:message key="actions.userrealm.delete"/> </controls:action> <controls:action> ------------------------------------- </controls:action> <controls:action url=""> <bean:message key="actions.valve.create"/> </controls:action> <controls:action url=""> <bean:message key="actions.valve.delete"/> </controls:action> <controls:action> ------------------------------------- </controls:action> <controls:action url=""> <bean:message key="actions.host.delete"/> </controls:action> </controls:actions> </div> </td> </tr> </table> <%@ include file="buttons.jsp" %> <br> <table border="0" cellspacing="0" cellpadding="0" width="100%"> <tr> <td> <div class="table-title-text"> <bean:message key="host.properties"/> </div> </td> </tr> </table> <table class="back-table" border="0" cellspacing="0" cellpadding="1" width="100%"> <tr> <td> <controls:table tableStyle="front-table" lineStyle="line-row"> <controls:row header="true" labelStyle="table-header-text" dataStyle="table-header-text"> <controls:label><bean:message key="service.property"/></controls:label> <controls:data><bean:message key="service.value"/></controls:data> </controls:row> <controls:row labelStyle="table-label-text" dataStyle="table-normal-text"> <controls:label><bean:message key="host.name"/>:</controls:label> <controls:data> <html:text property="name" size="24" maxlength="24"/> </controls:data> </controls:row> <controls:row labelStyle="table-label-text" dataStyle="table-normal-text"> <controls:label><bean:message key="host.base"/>:</controls:label> <controls:data> <html:text property="appBase" size="24" maxlength="24"/> </controls:data> </controls:row> <controls:row labelStyle="table-label-text" dataStyle="table-normal-text"> <controls:label><bean:message key="server.debuglevel"/>:</controls:label> <controls:data> <html:select property="debugLvl"> <bean:define id="debugLvlVals" name="hostForm" property="debugLvlVals"/> <html:options collection="debugLvlVals" property="value" labelProperty="label"/> </html:select> </controls:data> </controls:row> <controls:row labelStyle="table-label-text" dataStyle="table-normal-text"> <controls:label><bean:message key="host.wars"/>:</controls:label> <controls:data> <html:select property="unpackWARs"> <bean:define id="booleanVals" name="hostForm" property="booleanVals"/> <html:options collection="booleanVals" property="value" labelProperty="label"/> </html:select> </controls:data> </controls:row> </controls:table> </td> </tr> </table> <br> <br> <!-- Aliases --> <table border="0" cellspacing="0" cellpadding="0" width="100%"> <tr> <td> <div class="table-title-text"> <bean:message key="host.aliases"/> </div> </td> </tr> </table> <table class="back-table" border="0" cellspacing="0" cellpadding="1" width="100%"> <tr> <td> <table class="front-table" border="1" cellspacing="0" cellpadding="0" width="100%"> <tr class="header-row"> <td width="27%"> <div class="table-header-text" align="left"><bean:message key="host.alias.name"/> </div> </td> </tr> <logic:iterate id="aliasVal" name="hostForm" property="aliasVals"> <tr> <td width="27%" valign="top" colspan=2> <div class="table-normal-text"> <%= aliasVal %> </div> </td> </tr> </logic:iterate> </table> </td> </tr> </table> <!-- Alias table end --> <%@ include file="buttons.jsp" %> </html:form> <!-- Standard Footer --> <%@ include file="footer.jsp" %> </body> </html:html> 1.14 +29 -3 jakarta-tomcat-4.0/webapps/admin/WEB-INF/struts-config.xml Index: struts-config.xml =================================================================== RCS file: /home/cvs/jakarta-tomcat-4.0/webapps/admin/WEB-INF/struts-config.xml,v retrieving revision 1.13 retrieving revision 1.14 diff -u -r1.13 -r1.14 --- struts-config.xml 5 Jan 2002 20:45:03 -0000 1.13 +++ struts-config.xml 10 Jan 2002 03:41:13 -0000 1.14 @@ -27,6 +27,10 @@ <form-bean name="connectorForm" type="org.apache.webapp.admin.ConnectorForm"/> + <!-- Host form bean --> + <form-bean name="hostForm" + type="org.apache.webapp.admin.HostForm"/> + <!-- Set Locale form bean --> <form-bean name="setLocaleForm" type="org.apache.webapp.admin.SetLocaleForm"/> @@ -65,7 +69,11 @@ <forward name="Connector" path="/connector.jsp" redirect="false"/> - + + <forward name="Host" + path="/host.jsp" + redirect="false"/> + <forward name="Save Successful" path="/saved.jsp" redirect="false"/> @@ -124,6 +132,16 @@ redirect="true"/> </action> + <!-- Set up Host datastructure --> + <action path="/setUpHost" + type="org.apache.webapp.admin.SetUpHostAction" + name="hostForm" + scope="session"> + <forward name="SetUpHost" + path="/host.jsp" + redirect="true"/> + </action> + <!-- Log out of the application --> <action path="/logOut" type="org.apache.webapp.admin.LogOutAction"> @@ -156,6 +174,14 @@ input="/connector.jsp"> </action> + <!-- Process a host change --> + <action path="/host" + type="org.apache.webapp.admin.HostAction" + name="hostForm" + scope="session" + input="/host.jsp"> + </action> + <!-- Process a set-locale action --> <action path="/setLocale" type="org.apache.webapp.admin.SetLocaleAction" @@ -168,6 +194,6 @@ type="org.apache.webapp.admin.TreeControlTestAction"/> </action-mappings> - - + + </struts-config> 1.12 +11 -2 jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/ApplicationResources_en.properties Index: ApplicationResources_en.properties =================================================================== RCS file: /home/cvs/jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/ApplicationResources_en.properties,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- ApplicationResources_en.properties 5 Jan 2002 20:45:03 -0000 1.11 +++ ApplicationResources_en.properties 10 Jan 2002 03:41:13 -0000 1.12 @@ -22,7 +22,6 @@ sample.someText.required=<li>"Some Text" cannot be empty</li> sample.moreText.required=<li>"More Text" cannot be empty</li> save.success=Save sucessful! -server.heading=Tomcat Server server.portnumber=Port Number server.debuglevel=Debug Level server.shutdown=Shutdown @@ -55,7 +54,8 @@ error.proxyPortText.required=<li>Proxy Port Number cannot be empty</li> error.proxyPortText.format=<li>Proxy Port Number not a valid integer!</li> error.proxyPortText.range=<li>Proxy Port Number seems out of range. Valid range is 1-65535. </li> -service.service=Service +error.hostName.required=<li>Hostname is required</li> +error.appBase.required=<li>Application Base is required</li> service.name=Name service.engine.props=Engine properties service.defaulthostname=Default Hostname @@ -81,6 +81,9 @@ actions.valve.delete=Delete Valves actions.service.delete=Delete This Service actions.thisconnector.delete=Delete This connector +actions.alias.create=Create New Aliases +actions.alias.delete=Delete Aliases +actions.host.delete=Delete This Host connector.type=Type connector.accept.count=Accept Count connector.connection.timeout=Connection Timeout @@ -92,3 +95,9 @@ connector.max=Maximum connector.proxy.name=Proxy Name connector.proxy.portnumber=Proxy Port Number +host.properties=Host Properties +host.name=Name +host.base=Application Base +host.wars=Unpack WARs +host.aliases=Aliases +host.alias.name=Alias Name 1.15 +11 -2 jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/ApplicationResources_es.properties Index: ApplicationResources_es.properties =================================================================== RCS file: /home/cvs/jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/ApplicationResources_es.properties,v retrieving revision 1.14 retrieving revision 1.15 diff -u -r1.14 -r1.15 --- ApplicationResources_es.properties 9 Jan 2002 20:07:12 -0000 1.14 +++ ApplicationResources_es.properties 10 Jan 2002 03:41:13 -0000 1.15 @@ -22,7 +22,6 @@ sample.someText.required=<li>\u00abAlg\u00fan Texto\u00bb no puede ser vac\u00edo</li> sample.moreText.required=<li>\u00abM\u00e1s Texto\u00bb no puede ser vac\u00edo</li> save.success=\u00a1Guardar fue \u00e9xitoso! -server.heading=Servidor de Tomcat server.portnumber=Numero de Puerto server.debuglevel=Nivel de Depuracion server.shutdown=Detener @@ -55,7 +54,8 @@ error.proxyName.invalid=<li>El nombre del proxy es invalido</li> error.proxyPortText.format=<li>Numero del puerto del proxy es un numero entero no valido!</li> error.proxyPortText.range=<li>El numero del puerto del proxy esta fuera de rango. El rango valido es 1-65535.</li> -service.service=Servicio +error.hostName.required=<li>Se requiere el hostname</li> +error.appBase.required=<li>Se requiere la base de la aplicacion</li> service.name=Nombre service.engine.props=Propiedades del motor service.defaulthostname=Hostname por defecto @@ -81,6 +81,9 @@ actions.valve.delete=Eliminar Valvulas actions.service.delete=Eliminar este servicio actions.thisconnector.delete=Eliminar este conector +actions.alias.create=Cree Los Nuevos Pseudonimos +actions.alias.delete=Pseudonimos De la Cancelacion +actions.host.delete=Suprima Este Ordenador principal connector.type=Tipo connector.accept.count=Valide La Cuenta connector.connection.timeout=Descanso De la Conexi\u00f3n @@ -92,3 +95,9 @@ connector.max=Maximo connector.proxy.name=Nombre del Proxy connector.proxy.portnumber=Numero de Puerto del Proxy +host.properties=Caracteristicas Del Ordenador principal +host.name=Nombre +host.base=Base De la Aplicacion +host.wars=Desempaquete WARs +host.aliases=Pseudonimos +host.alias.name=Alias Nombre 1.2 +28 -4 jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/ConnectorForm.java Index: ConnectorForm.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/ConnectorForm.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- ConnectorForm.java 5 Jan 2002 20:45:03 -0000 1.1 +++ ConnectorForm.java 10 Jan 2002 03:41:13 -0000 1.2 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/ConnectorForm.java,v 1.1 2002/01/05 20:45:03 remm Exp $ - * $Revision: 1.1 $ - * $Date: 2002/01/05 20:45:03 $ + * $Header: /home/cvs/jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/ConnectorForm.java,v 1.2 2002/01/10 03:41:13 patrickl Exp $ + * $Revision: 1.2 $ + * $Date: 2002/01/10 03:41:13 $ * * ==================================================================== * @@ -74,7 +74,7 @@ * Form bean for the connector page. * * @author Manveen Kaur - * @version $Revision: 1.1 $ $Date: 2002/01/05 20:45:03 $ + * @version $Revision: 1.2 $ $Date: 2002/01/10 03:41:13 $ */ public final class ConnectorForm extends ActionForm { @@ -86,6 +86,12 @@ */ private String scheme = null; + /** + * The text for the node label. + */ + private String nodeLabel = null; + + /** * The text for the accept Count. */ @@ -168,7 +174,7 @@ // ------------------------------------------------------------- Properties /** - * Return the Class Name. + * Return the Scheme. */ public String getScheme() { @@ -182,6 +188,24 @@ public void setScheme(String scheme) { this.scheme = scheme; + + } + + /** + * Return the label of the node that was clicked. + */ + public String getNodeLabel() { + + return this.nodeLabel; + + } + + /** + * Set the node label. + */ + public void setNodeLabel(String nodeLabel) { + + this.nodeLabel = nodeLabel; } 1.2 +4 -5 jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/LabelValueBean.java Index: LabelValueBean.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/LabelValueBean.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- LabelValueBean.java 6 Dec 2001 22:55:57 -0000 1.1 +++ LabelValueBean.java 10 Jan 2002 03:41:13 -0000 1.2 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/LabelValueBean.java,v 1.1 2001/12/06 22:55:57 patrickl Exp $ - * $Revision: 1.1 $ - * $Date: 2001/12/06 22:55:57 $ + * $Header: /home/cvs/jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/LabelValueBean.java,v 1.2 2002/01/10 03:41:13 patrickl Exp $ + * $Revision: 1.2 $ + * $Date: 2002/01/10 03:41:13 $ * * ==================================================================== * @@ -62,13 +62,12 @@ package org.apache.webapp.admin; - /** * Simple JavaBean to represent label-value pairs for use in collections * that are utilized by the <code><form:options></code> tag. * * @author Craig R. McClanahan - * @version $Revision: 1.1 $ $Date: 2001/12/06 22:55:57 $ + * @version $Revision: 1.2 $ $Date: 2002/01/10 03:41:13 $ */ public class LabelValueBean { 1.6 +28 -4 jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/ServerForm.java Index: ServerForm.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/ServerForm.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- ServerForm.java 5 Jan 2002 20:45:03 -0000 1.5 +++ ServerForm.java 10 Jan 2002 03:41:13 -0000 1.6 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/ServerForm.java,v 1.5 2002/01/05 20:45:03 remm Exp $ - * $Revision: 1.5 $ - * $Date: 2002/01/05 20:45:03 $ + * $Header: /home/cvs/jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/ServerForm.java,v 1.6 2002/01/10 03:41:13 patrickl Exp $ + * $Revision: 1.6 $ + * $Date: 2002/01/10 03:41:13 $ * * ==================================================================== * @@ -74,13 +74,21 @@ * Form bean for the server form page. * @author Patrick Luby * @author Manveen Kaur - * @version $Revision: 1.5 $ $Date: 2002/01/05 20:45:03 $ + * @version $Revision: 1.6 $ $Date: 2002/01/10 03:41:13 $ */ public final class ServerForm extends ActionForm { // ----------------------------------------------------- Instance Variables + /** + * The text for the node label. + */ + private String nodeLabel = null; + + /** + * The text for the port number. + */ private String portNumberText = "8080"; /** @@ -97,7 +105,23 @@ private ArrayList debugLvlVals = null; // ------------------------------------------------------------- Properties + /** + * Return the label of the node that was clicked. + */ + public String getNodeLabel() { + + return this.nodeLabel; + + } + /** + * Set the node label. + */ + public void setNodeLabel(String nodeLabel) { + + this.nodeLabel = nodeLabel; + + } /** * Return the debugVals. 1.3 +26 -6 jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/ServiceForm.java Index: ServiceForm.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/ServiceForm.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- ServiceForm.java 20 Dec 2001 09:31:52 -0000 1.2 +++ ServiceForm.java 10 Jan 2002 03:41:13 -0000 1.3 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/ServiceForm.java,v 1.2 2001/12/20 09:31:52 remm Exp $ - * $Revision: 1.2 $ - * $Date: 2001/12/20 09:31:52 $ + * $Header: /home/cvs/jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/ServiceForm.java,v 1.3 2002/01/10 03:41:13 patrickl Exp $ + * $Revision: 1.3 $ + * $Date: 2002/01/10 03:41:13 $ * * ==================================================================== * @@ -73,19 +73,22 @@ * Form bean for the service page. * * @author Manveen Kaur - * @version $Revision: 1.2 $ $Date: 2001/12/20 09:31:52 $ + * @version $Revision: 1.3 $ $Date: 2002/01/10 03:41:13 $ */ public final class ServiceForm extends ActionForm { // ----------------------------------------------------- Instance Variables - /** * The text for the serviceName. */ - private String serviceName = null; + private String serviceName = null; + /** + * The text for the node label. + */ + private String nodeLabel = null; /** * The text for the engine Name. @@ -107,7 +110,24 @@ private ArrayList hostNameVals = null; // ------------------------------------------------------------- Properties + /** + * Return the label of the node that was clicked. + */ + public String getNodeLabel() { + + return this.nodeLabel; + + } + /** + * Set the node label. + */ + public void setNodeLabel(String nodeLabel) { + + this.nodeLabel = nodeLabel; + + } + /** * Return the debugVals. */ 1.2 +8 -5 jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/SetUpConnectorAction.java Index: SetUpConnectorAction.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/SetUpConnectorAction.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- SetUpConnectorAction.java 5 Jan 2002 20:45:03 -0000 1.1 +++ SetUpConnectorAction.java 10 Jan 2002 03:41:13 -0000 1.2 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/SetUpConnectorAction.java,v 1.1 2002/01/05 20:45:03 remm Exp $ - * $Revision: 1.1 $ - * $Date: 2002/01/05 20:45:03 $ + * $Header: /home/cvs/jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/SetUpConnectorAction.java,v 1.2 2002/01/10 03:41:13 patrickl Exp $ + * $Revision: 1.2 $ + * $Date: 2002/01/10 03:41:13 $ * * ==================================================================== * @@ -99,7 +99,7 @@ * a connector is chosen. * * @author Manveen Kaur - * @version $Revision: 1.1 $ $Date: 2002/01/05 20:45:03 $ + * @version $Revision: 1.2 $ $Date: 2002/01/10 03:41:13 $ */ public class SetUpConnectorAction extends Action { @@ -165,6 +165,8 @@ } String selectedName = request.getParameter("select"); + // label of the node that was clicked on. + String nodeLabel = request.getParameter("nodeLabel"); ConnectorForm connectorFm = (ConnectorForm) form; @@ -190,7 +192,7 @@ booleanList.add(new LabelValueBean("False", "false")); } - String connectorName = null; + String connectorName = null; String scheme = null; Integer debug = null; String acceptCountText = null; @@ -284,6 +286,7 @@ //setting values obtained from the mBean to be displayed in the form. connectorFm.setScheme(scheme); + connectorFm.setNodeLabel(nodeLabel); connectorFm.setAcceptCountText(acceptCountText); connectorFm.setConnTimeOutText(connTimeOut.toString()); 1.7 +54 -51 jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/SetUpServerAction.java Index: SetUpServerAction.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/SetUpServerAction.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- SetUpServerAction.java 20 Dec 2001 09:31:52 -0000 1.6 +++ SetUpServerAction.java 10 Jan 2002 03:41:13 -0000 1.7 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/SetUpServerAction.java,v 1.6 2001/12/20 09:31:52 remm Exp $ - * $Revision: 1.6 $ - * $Date: 2001/12/20 09:31:52 $ + * $Header: /home/cvs/jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/SetUpServerAction.java,v 1.7 2002/01/10 03:41:13 patrickl Exp $ + * $Revision: 1.7 $ + * $Date: 2002/01/10 03:41:13 $ * * ==================================================================== * @@ -98,21 +98,21 @@ * * @author Jazmin Jonson * @author Manveen Kaur - * @version $Revision: 1.6 $ $Date: 2001/12/20 09:31:52 $ + * @version $Revision: 1.7 $ $Date: 2002/01/10 03:41:13 $ */ public class SetUpServerAction extends Action { - + private static MBeanServer mBServer = null; - - public final static String PORT_PROP_NAME = "port"; + + public final static String PORT_PROP_NAME = "port"; public final static String SHUTDOWN_PROP_NAME = "shutdown"; public final static String DEBUG_PROP_NAME = "debug"; - - private ArrayList debugLvlList = null; - + + private ArrayList debugLvlList = null; + // --------------------------------------------------------- Public Methods - + /** * Process the specified HTTP request, and create the corresponding HTTP * response (or forward to another web component that will create it). @@ -129,30 +129,33 @@ * @exception ServletException if a servlet exception occurs */ public ActionForward perform(ActionMapping mapping, - ActionForm form, - HttpServletRequest request, - HttpServletResponse response) - throws IOException, ServletException { - + ActionForm form, + HttpServletRequest request, + HttpServletResponse response) + throws IOException, ServletException { + HttpSession session = request.getSession(); - + // Do I have to do this part ?? if (form == null) { getServlet().log(" Creating new ServerForm bean under key " - + mapping.getAttribute()); + + mapping.getAttribute()); form = new ServerForm(); - + if ("request".equals(mapping.getScope())) request.setAttribute(mapping.getAttribute(), form); else request.getSession().setAttribute(mapping.getAttribute(), form); - + } - + + // label of the node that was clicked on. + String nodeLabel = request.getParameter("nodeLabel"); + // Do transaction stuff before this - + ServerForm serverFm = (ServerForm) form; - + if(debugLvlList == null) { debugLvlList = new ArrayList(); debugLvlList.add(new LabelValueBean("0", "0")); @@ -165,55 +168,55 @@ debugLvlList.add(new LabelValueBean("7", "7")); debugLvlList.add(new LabelValueBean("8", "8")); debugLvlList.add(new LabelValueBean("9", "9")); - + } - + Integer portNumb = null; Integer debug = null; String shutdown = null; try{ - + if(mBServer == null) { - ApplicationServlet servlet = (ApplicationServlet)getServlet(); + ApplicationServlet servlet = (ApplicationServlet)getServlet(); mBServer = servlet.getServer(); } - - Iterator serverItr = - mBServer.queryMBeans(new ObjectName(TomcatTreeBuilder.SERVER_TYPE + - TomcatTreeBuilder. WILDCARD), - null).iterator(); - + + Iterator serverItr = + mBServer.queryMBeans(new ObjectName(TomcatTreeBuilder.SERVER_TYPE + + TomcatTreeBuilder. WILDCARD), + null).iterator(); + ObjectName serverObjName = - ((ObjectInstance)serverItr.next()).getObjectName(); - + ((ObjectInstance)serverItr.next()).getObjectName(); + /* - ModelMBeanInfo info = (ModelMBeanInfo) mBServer.getMBeanInfo(serverObjName); + ModelMBeanInfo info = (ModelMBeanInfo) mBServer.getMBeanInfo(serverObjName); MBeanAttributeInfo attrs[] = info.getAttributes(); for (int i = 0; i < attrs.length; i++) System.out.println(" AttributeInfo=" + attrs[i]); - + MBeanOperationInfo opers[] = info.getOperations(); for (int i = 0; i < opers.length; i++) System.out.println(" Operation=" + opers[i]); - */ - + */ + portNumb = (Integer)mBServer.getAttribute(serverObjName, - PORT_PROP_NAME); - + PORT_PROP_NAME); + debug = (Integer)mBServer.getAttribute(serverObjName, - DEBUG_PROP_NAME); - + DEBUG_PROP_NAME); + shutdown = (String)mBServer.getAttribute(serverObjName, - SHUTDOWN_PROP_NAME); - + SHUTDOWN_PROP_NAME); + request.setAttribute("debugLvlVals", debugLvlList); - + }catch(Throwable t){ t.printStackTrace(System.out); //forward to error page - } - + } + serverFm.setNodeLabel(nodeLabel); serverFm.setPortNumberText(portNumb.toString()); // Hardcode debuglvl for now serverFm.setDebugLvl(debug.toString()); @@ -222,8 +225,8 @@ // Forward back to the test page return (mapping.findForward("Server")); - + } - - + + } 1.5 +10 -7 jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/SetUpServiceAction.java Index: SetUpServiceAction.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/SetUpServiceAction.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- SetUpServiceAction.java 20 Dec 2001 09:31:52 -0000 1.4 +++ SetUpServiceAction.java 10 Jan 2002 03:41:13 -0000 1.5 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/SetUpServiceAction.java,v 1.4 2001/12/20 09:31:52 remm Exp $ - * $Revision: 1.4 $ - * $Date: 2001/12/20 09:31:52 $ + * $Header: /home/cvs/jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/SetUpServiceAction.java,v 1.5 2002/01/10 03:41:13 patrickl Exp $ + * $Revision: 1.5 $ + * $Date: 2002/01/10 03:41:13 $ * * ==================================================================== * @@ -99,7 +99,7 @@ * page. * * @author Manveen Kaur - * @version $Revision: 1.4 $ $Date: 2001/12/20 09:31:52 $ + * @version $Revision: 1.5 $ $Date: 2002/01/10 03:41:13 $ */ public class SetUpServiceAction extends Action { @@ -136,7 +136,7 @@ HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { - + HttpSession session = request.getSession(); if (form == null) { @@ -152,10 +152,12 @@ } // The message resources for this package. - // MessageResources messages = getResources(); - // Locale locale = (Locale)session.getAttribute(Action.LOCALE_KEY); + // MessageResources messages = getResources(); + // Locale locale = (Locale)session.getAttribute(Action.LOCALE_KEY); String selectedName = request.getParameter("select"); + // label of the node that was clicked on. + String nodeLabel = request.getParameter("nodeLabel"); ServiceForm serviceFm = (ServiceForm) form; @@ -257,6 +259,7 @@ //forward to error page } + serviceFm.setNodeLabel(nodeLabel); serviceFm.setServiceName(serviceName); serviceFm.setDefaultHost(defaultHost); serviceFm.setDebugLvl(debug.toString()); 1.5 +64 -15 jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/TomcatTreeBuilder.java Index: TomcatTreeBuilder.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/TomcatTreeBuilder.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- TomcatTreeBuilder.java 5 Jan 2002 20:45:03 -0000 1.4 +++ TomcatTreeBuilder.java 10 Jan 2002 03:41:13 -0000 1.5 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/TomcatTreeBuilder.java,v 1.4 2002/01/05 20:45:03 remm Exp $ - * $Revision: 1.4 $ - * $Date: 2002/01/05 20:45:03 $ + * $Header: /home/cvs/jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/TomcatTreeBuilder.java,v 1.5 2002/01/10 03:41:13 patrickl Exp $ + * $Revision: 1.5 $ + * $Date: 2002/01/10 03:41:13 $ * * ==================================================================== * @@ -91,7 +91,7 @@ * * @author Jazmin Jonson * @author Manveen Kaur - * @version $Revision: 1.4 $ $Date: 2002/01/05 20:45:03 $ + * @version $Revision: 1.5 $ $Date: 2002/01/10 03:41:13 $ */ @@ -143,7 +143,8 @@ TreeControlNode serverNode = new TreeControlNode(serverObjName, "folder_16_pad.gif", SERVER_LABEL, - "setUpServer.do?select=" + encodedServerName, + "setUpServer.do?select=" + encodedServerName + +"&nodeLabel=" + SERVER_LABEL, "content", true); return serverNode; @@ -173,23 +174,26 @@ encodedServiceName = URLEncoder.encode(service.getObjectName().toString()); + String nodeLabel = "Service (" + serviceName + ")"; + TreeControlNode serviceNode = new TreeControlNode(service.getObjectName().toString(), "folder_16_pad.gif", - "Service(" + serviceName + ")", - "setUpService.do?select=" + encodedServiceName, + nodeLabel, + "setUpService.do?select=" + encodedServiceName + +"&nodeLabel=" + nodeLabel, "content", true); serverNode.addChild(serviceNode); getConnectors(serviceNode, serviceName); - + getHosts(serviceNode, serviceName); + } } - public void getConnectors(TreeControlNode serviceNode, - String serviceName) - throws JMException{ + public void getConnectors(TreeControlNode serviceNode, String serviceName) + throws JMException{ Iterator ConnectorItr = (mBServer.queryMBeans(new ObjectName(CONNECTOR_TYPE + WILDCARD + @@ -213,12 +217,13 @@ // This is because warp connector doesn't conform to the // standard Engine/Host/Context hierarchy and we don't support it. if (!"warp".equalsIgnoreCase(connectorName)) { + String nodeLabel = "Connector (" + connectorName + ")"; connectorNode = new TreeControlNode(connectorObj.getObjectName().toString(), - "folder_16_pad.gif", - "Connector(" + connectorName + ")", - "setUpConnector.do?select=" + - encodedConnectorName, + "folder_16_pad.gif", + nodeLabel, + "setUpConnector.do?select=" + encodedConnectorName + + "&nodeLabel="+nodeLabel, "content", true); serviceNode.addChild(connectorNode); @@ -227,4 +232,48 @@ } + public void getHosts(TreeControlNode serviceNode, String serviceName) + throws JMException{ + + /* + System.out.println("** There are " + mBServer.getMBeanCount().intValue() + + " registered MBeans **"); + Iterator instances = mBServer.queryMBeans(null, null).iterator(); + while (instances.hasNext()) { + ObjectInstance instance = (ObjectInstance) instances.next(); + System.out.println(" objectName=" + instance.getObjectName() + + ", className=" + instance.getClassName()); + } + */ + + Iterator HostItr = + (mBServer.queryMBeans(new ObjectName(HOST_TYPE + WILDCARD + + ",service=" + serviceName), null)).iterator(); + + TreeControlNode hostNode = null; + String encodedHostName; + + while(HostItr.hasNext()){ + + ObjectInstance hostObj = (ObjectInstance)HostItr.next(); + + String hostName = + (String)mBServer.getAttribute(hostObj.getObjectName(), + "name"); + + encodedHostName = URLEncoder.encode(hostObj.getObjectName().toString()); + + String nodeLabel="Host (" + hostName + ")"; + + hostNode = + new TreeControlNode(hostObj.getObjectName().toString(), + "folder_16_pad.gif", + nodeLabel, + "setUpHost.do?select=" + encodedHostName + +"&nodeLabel="+nodeLabel, + "content", true); + + serviceNode.addChild(hostNode); + } + } } 1.1 jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/HostAction.java Index: HostAction.java =================================================================== /* * $Header: /home/cvs/jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/HostAction.java,v 1.1 2002/01/10 03:41:13 patrickl Exp $ * $Revision: 1.1 $ * $Date: 2002/01/10 03:41:13 $ * * ==================================================================== * * The Apache Software License, Version 1.1 * * Copyright (c) 2001 The Apache Software Foundation. All rights * reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * 3. The end-user documentation included with the redistribution, if * any, must include the following acknowlegement: * "This product includes software developed by the * Apache Software Foundation (http://www.apache.org/)." * Alternately, this acknowlegement may appear in the software itself, * if and wherever such third-party acknowlegements normally appear. * * 4. The names "The Jakarta Project", "Struts", and "Apache Software * Foundation" must not be used to endorse or promote products derived * from this software without prior written permission. For written * permission, please contact [EMAIL PROTECTED] * * 5. Products derived from this software may not be called "Apache" * nor may "Apache" appear in their names without prior written * permission of the Apache Group. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * ==================================================================== * * This software consists of voluntary contributions made by many * individuals on behalf of the Apache Software Foundation. For more * information on the Apache Software Foundation, please see * <http://www.apache.org/>. * */ package org.apache.webapp.admin; import java.util.Iterator; import java.util.Locale; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.Action; import org.apache.struts.action.ActionErrors; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import javax.management.Attribute; import javax.management.MBeanServer; import javax.management.MBeanServerFactory; import javax.management.QueryExp; import javax.management.Query; import javax.management.ObjectInstance; import javax.management.ObjectName; import javax.management.JMException; import javax.management.MBeanAttributeInfo; import javax.management.MBeanOperationInfo; import javax.management.MBeanInfo; import org.apache.struts.util.MessageResources; /** * Implementation of <strong>Action</strong> that validates * actions on a Host. * * @author Manveen Kaur * @version $Revision: 1.1 $Date: 2002/01/10 03:41:13 $ */ public final class HostAction extends Action { private static MBeanServer mBServer = null; // --------------------------------------------------------- Public Methods /** * Process the specified HTTP request, and create the corresponding HTTP * response (or forward to another web component that will create it). * Return an <code>ActionForward</code> instance describing where and how * control should be forwarded, or <code>null</code> if the response has * already been completed. * * @param mapping The ActionMapping used to select this instance * @param actionForm The optional ActionForm bean for this request (if any) * @param request The HTTP request we are processing * @param response The HTTP response we are creating * * @exception IOException if an input/output error occurs * @exception ServletException if a servlet exception occurs */ public ActionForward perform(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { try{ // front end validation and checking. // =================================================== MessageResources messages = getResources(); Locale locale = (Locale)request.getSession().getAttribute(Action.LOCALE_KEY); // Validate the request parameters specified by the user ActionErrors errors = new ActionErrors(); // Report any errors we have discovered back to the original form if (!errors.empty()) { saveErrors(request, errors); return (new ActionForward(mapping.getInput())); } if(mBServer == null) { ApplicationServlet servlet = (ApplicationServlet)getServlet(); mBServer = servlet.getServer(); } /** * Get the host Name from the form. * This is used to lookup the MBeanServer and * retrieve this connector's MBean. */ String hostName = request.getParameter("hostName"); Iterator hostItr = mBServer.queryMBeans(new ObjectName(hostName), null).iterator(); ObjectInstance objInstance = (ObjectInstance)hostItr.next(); ObjectName hostObjName = (objInstance).getObjectName(); /** * Extracting the values from the form and * updating the MBean with the new values. */ String nameText = request.getParameter("name"); if(nameText != null) { mBServer.setAttribute(hostObjName, new Attribute(SetUpHostAction.NAME_PROP_NAME, nameText)); } String appBaseText = request.getParameter("appBase"); if(appBaseText != null) { mBServer.setAttribute(hostObjName, new Attribute(SetUpHostAction.APPBASE_PROP_NAME, appBaseText)); } String debugLvlText = request.getParameter("debugLvl"); if(debugLvlText != null) { Integer debugLvl = new Integer(debugLvlText); mBServer.setAttribute(hostObjName, new Attribute(SetUpHostAction.DEBUG_PROP_NAME, debugLvl)); } String unpackWARsText = request.getParameter("unpackWARs"); if(unpackWARsText != null) { Boolean unpackWARs = Boolean.valueOf(unpackWARsText); mBServer.setAttribute(hostObjName, new Attribute(SetUpHostAction.UNPACKWARS_PROP_NAME, unpackWARs)); } }catch(Throwable t){ t.printStackTrace(System.out); //forward to error page } if (servlet.getDebug() >= 1) servlet.log(" Forwarding to success page"); // Forward back to the test page return (mapping.findForward("Save Successful")); } } 1.1 jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/HostForm.java Index: HostForm.java =================================================================== /* * $Header: /home/cvs/jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/HostForm.java,v 1.1 2002/01/10 03:41:13 patrickl Exp $ * $Revision: 1.1 $ * $Date: 2002/01/10 03:41:13 $ * * ==================================================================== * * The Apache Software License, Version 1.1 * * Copyright (c) 2001 The Apache Software Foundation. All rights * reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * 3. The end-user documentation included with the redistribution, if * any, must include the following acknowlegement: * "This product includes software developed by the * Apache Software Foundation (http://www.apache.org/)." * Alternately, this acknowlegement may appear in the software itself, * if and wherever such third-party acknowlegements normally appear. * * 4. The names "The Jakarta Project", "Struts", and "Apache Software * Foundation" must not be used to endorse or promote products derived * from this software without prior written permission. For written * permission, please contact [EMAIL PROTECTED] * * 5. Products derived from this software may not be called "Apache" * nor may "Apache" appear in their names without prior written * permission of the Apache Group. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * ==================================================================== * * This software consists of voluntary contributions made by many * individuals on behalf of the Apache Software Foundation. For more * information on the Apache Software Foundation, please see * <http://www.apache.org/>. * */ package org.apache.webapp.admin; import javax.servlet.http.HttpServletRequest; import org.apache.struts.action.ActionError; import org.apache.struts.action.ActionErrors; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionMapping; import java.net.InetAddress; import java.util.ArrayList; /** * Form bean for the host page. * * @author Manveen Kaur * @version $Revision: 1.1 $ $Date: 2002/01/10 03:41:13 $ */ public final class HostForm extends ActionForm { // ----------------------------------------------------- Instance Variables /** * The text for the node label. */ private String nodeLabel = null; /** * The text for the hostName. */ private String name = null; /** * The text for the selected host name that is used to lookup the MBean info. * This contains all information including the service name to which this host belongs etc. */ private String hostName = null; /** * The directory for the appBase. */ private String appBase = null; /** * The text for the debug level. */ private String debugLvl = "0"; /** * Boolean for unpack WARs. */ private String unpackWARs = "false"; /** * The text for the port. -- TBD */ private String findAliases = null; /** * Set of valid values for debug level. */ private ArrayList debugLvlVals = null; /* * Represent boolean (true, false) values for unpackWARs etc. */ private ArrayList booleanVals = null; /* * Represent aliases as a List. */ private ArrayList aliasVals = null; // ------------------------------------------------------------- Properties /** * Return the label of the node that was clicked. */ public String getNodeLabel() { return this.nodeLabel; } /** * Set the node label. */ public void setNodeLabel(String nodeLabel) { this.nodeLabel = nodeLabel; } /** * Return the selected node host name to lookup mBean. */ public String getHostName() { return this.hostName; } /** * Set the selected node host name to lookup mBean. */ public void setHostName(String hostName) { this.hostName = hostName; } /** * Return the host name. */ public String getName() { return this.name; } /** * Set the host name. */ public void setName(String name) { this.name = name; } /** * Return the appBase. */ public String getAppBase() { return this.appBase; } /** * Set the appBase. */ public void setAppBase(String appBase) { this.appBase = appBase; } /** * Return the unpackWARs. */ public String getUnpackWARs() { return this.unpackWARs; } /** * Set the unpackWARs. */ public void setUnpackWARs(String unpackWARs) { this.unpackWARs = unpackWARs; } /** * Return the debugVals. */ public ArrayList getDebugLvlVals() { return this.debugLvlVals; } /** * Set the debugVals. */ public void setDebugLvlVals(ArrayList debugLvlVals) { this.debugLvlVals = debugLvlVals; } /** * Return the Debug Level Text. */ public String getDebugLvl() { return this.debugLvl; } /** * Set the Debug Level Text. */ public void setDebugLvl(String debugLvl) { this.debugLvl = debugLvl; } /** * Return the booleanVals. */ public ArrayList getBooleanVals() { return this.booleanVals; } /** * Set the booleanVals. */ public void setBooleanVals(ArrayList booleanVals) { this.booleanVals = booleanVals; } /** * Return the List of alias Vals. */ public ArrayList getAliasVals() { return this.aliasVals; } /** * Set the alias Vals. */ public void setAliasVals(ArrayList aliasVals) { this.aliasVals = aliasVals; } // --------------------------------------------------------- Public Methods /** * Reset all properties to their default values. * * @param mapping The mapping used to select this instance * @param request The servlet request we are processing */ public void reset(ActionMapping mapping, HttpServletRequest request) { this.name = null; this.appBase = null; this.debugLvl = "0"; this.unpackWARs = "false"; } /** * Validate the properties that have been set from this HTTP request, * and return an <code>ActionErrors</code> object that encapsulates any * validation errors that have been found. If no errors are found, return * <code>null</code> or an <code>ActionErrors</code> object with no * recorded error messages. * * @param mapping The mapping used to select this instance * @param request The servlet request we are processing */ public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) { ActionErrors errors = new ActionErrors(); String submit = request.getParameter("submit"); // front end validation when save is clicked. if (submit != null) { // name cannot be null if ((name== null) || (name.length() < 1)) { errors.add("name", new ActionError("error.hostName.required")); } // appBase cannot be null if ((appBase == null) || (appBase.length() < 1)) { errors.add("appBase", new ActionError("error.appBase.required")); } } return errors; } } 1.1 jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/SetUpHostAction.java Index: SetUpHostAction.java =================================================================== /* * $Header: /home/cvs/jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/SetUpHostAction.java,v 1.1 2002/01/10 03:41:13 patrickl Exp $ * $Revision: 1.1 $ * $Date: 2002/01/10 03:41:13 $ * * ==================================================================== * * The Apache Software License, Version 1.1 * * Copyright (c) 2001 The Apache Software Foundation. All rights * reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * 3. The end-user documentation included with the redistribution, if * any, must include the following acknowlegement: * "This product includes software developed by the * Apache Software Foundation (http://www.apache.org/)." * Alternately, this acknowlegement may appear in the software itself, * if and wherever such third-party acknowlegements normally appear. * * 4. The names "The Jakarta Project", "Tomcat", and "Apache Software * Foundation" must not be used to endorse or promote products derived * from this software without prior written permission. For written * permission, please contact [EMAIL PROTECTED] * * 5. Products derived from this software may not be called "Apache" * nor may "Apache" appear in their names without prior written * permission of the Apache Group. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * ==================================================================== * * This software consists of voluntary contributions made by many * individuals on behalf of the Apache Software Foundation. For more * information on the Apache Software Foundation, please see * <http://www.apache.org/>. * */ package org.apache.webapp.admin; import java.io.IOException; import java.util.Iterator; import java.util.List; import java.util.Locale; import java.util.Arrays; import java.util.ArrayList; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.apache.struts.action.Action; import org.apache.struts.action.ActionErrors; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import javax.management.MBeanServer; import javax.management.MBeanServerFactory; import javax.management.QueryExp; import javax.management.Query; import javax.management.ObjectInstance; import javax.management.ObjectName; import javax.management.JMException; import javax.management.MBeanAttributeInfo; import javax.management.MBeanOperationInfo; import javax.management.MBeanInfo; import javax.management.modelmbean.ModelMBean; import javax.management.modelmbean.ModelMBeanInfo; import org.apache.struts.util.MessageResources; /** * Test <code>Action</code> that handles events from the tree control test * page when a node linking to a host is selected. * @author Manveen Kaur * @version $Revision: 1.1 $ $Date: 2002/01/10 03:41:13 $ */ public class SetUpHostAction extends Action { private static MBeanServer mBServer = null; public final static String NAME_PROP_NAME = "name"; public final static String APPBASE_PROP_NAME = "appBase"; public final static String DEBUG_PROP_NAME = "debug"; public final static String UNPACKWARS_PROP_NAME = "unpackWARs"; public final static String FINDALIASES_OPERATION_NAME = "findAliases"; private ArrayList debugLvlList = null; private ArrayList booleanList = null; private ArrayList aliasList = null; // --------------------------------------------------------- Public Methods /** * Process the specified HTTP request, and create the corresponding HTTP * response (or forward to another web component that will create it). * Return an <code>ActionForward</code> instance describing where and how * control should be forwarded, or <code>null</code> if the response has * already been completed. * * @param mapping The ActionMapping used to select this instance * @param actionForm The optional ActionForm bean for this request (if any) * @param request The HTTP request we are processing * @param response The HTTP response we are creating * * @exception IOException if an input/output error occurs * @exception ServletException if a servlet exception occurs */ public ActionForward perform(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { HttpSession session = request.getSession(); // Do I have to do this part ?? if (form == null) { getServlet().log(" Creating new hostForm bean under key " + mapping.getAttribute()); form = new HostForm(); if ("request".equals(mapping.getScope())) request.setAttribute(mapping.getAttribute(), form); else request.getSession().setAttribute(mapping.getAttribute(), form); } String selectedName = request.getParameter("select"); // label of the node that was clicked on. String nodeLabel = request.getParameter("nodeLabel"); // Do transaction stuff before this HostForm hostFm = (HostForm) form; if(debugLvlList == null) { debugLvlList = new ArrayList(); debugLvlList.add(new LabelValueBean("0", "0")); debugLvlList.add(new LabelValueBean("1", "1")); debugLvlList.add(new LabelValueBean("2", "2")); debugLvlList.add(new LabelValueBean("3", "3")); debugLvlList.add(new LabelValueBean("4", "4")); debugLvlList.add(new LabelValueBean("5", "5")); debugLvlList.add(new LabelValueBean("6", "6")); debugLvlList.add(new LabelValueBean("7", "7")); debugLvlList.add(new LabelValueBean("8", "8")); debugLvlList.add(new LabelValueBean("9", "9")); } /* Boolean (true.false) list for unpackWARs */ if(booleanList == null) { booleanList = new ArrayList(); booleanList.add(new LabelValueBean("True", "true")); booleanList.add(new LabelValueBean("False", "false")); } String name= null; String appBase = null; Integer debug = null; Boolean unpackWARs = null; try{ if(mBServer == null) { ApplicationServlet servlet = (ApplicationServlet)getServlet(); mBServer = servlet.getServer(); } Iterator hostItr = mBServer.queryMBeans(new ObjectName(TomcatTreeBuilder.HOST_TYPE + TomcatTreeBuilder. WILDCARD), null).iterator(); ObjectName hostObjName = ((ObjectInstance)hostItr.next()).getObjectName(); name = (String)mBServer.getAttribute(hostObjName, NAME_PROP_NAME); appBase = (String)mBServer.getAttribute(hostObjName, APPBASE_PROP_NAME); debug = (Integer)mBServer.getAttribute(hostObjName, DEBUG_PROP_NAME); unpackWARs = (Boolean) mBServer.getAttribute(hostObjName, UNPACKWARS_PROP_NAME); // retrieve all aliases String aliases[] = (String[]) mBServer.invoke(hostObjName, FINDALIASES_OPERATION_NAME, null, null); // convert the alias string array into an alias ArrayList if (aliasList == null) aliasList = new ArrayList(Arrays.asList(aliases)); request.setAttribute("debugLvlVals", debugLvlList); request.setAttribute("booleanVals", booleanList); request.setAttribute("aliasVals", aliasList); }catch(Throwable t){ t.printStackTrace(System.out); //forward to error page -- TBD // return (mapping.findForward("error")); } hostFm.setNodeLabel(nodeLabel); hostFm.setHostName(selectedName); hostFm.setName(name); hostFm.setAppBase(appBase); hostFm.setDebugLvl(debug.toString()); hostFm.setUnpackWARs(unpackWARs.toString()); hostFm.setDebugLvlVals(debugLvlList); hostFm.setBooleanVals(booleanList); hostFm.setAliasVals(aliasList); // Forward back to the test page return (mapping.findForward("Host")); } }
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>