craigmcc 02/03/08 16:10:57 Modified: webapps/admin connector.jsp context.jsp webapps/admin/WEB-INF/classes/org/apache/webapp/admin Lists.java TomcatTreeBuilder.java webapps/admin/WEB-INF/classes/org/apache/webapp/admin/connector ConnectorForm.java SetUpConnectorAction.java webapps/admin/WEB-INF/classes/org/apache/webapp/admin/context ContextForm.java webapps/admin/WEB-INF/classes/org/apache/webapp/admin/logger SetUpLoggerAction.java webapps/admin/host host.jsp Log: Refactor logic that builds the tree control to use the common list building methods. Make key properties read-only on edit screens. Tweak validation rules to match the values that are actually supported. Revision Changes Path 1.4 +14 -0 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.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- connector.jsp 13 Feb 2002 00:03:32 -0000 1.3 +++ connector.jsp 9 Mar 2002 00:10:56 -0000 1.4 @@ -106,7 +106,12 @@ <controls:row labelStyle="table-label-text" dataStyle="table-normal-text"> <controls:label><bean:message key="connector.address.ip"/>:</controls:label> <controls:data> +<%-- FIXME - input only allowed on create transaction --%> +<%-- <html:text property="address" size="20"/> +--%> + <bean:write name="connectorForm" property="address"/> + <html:hidden property="address"/> </controls:data> </controls:row> @@ -118,7 +123,12 @@ <controls:row labelStyle="table-label-text" dataStyle="table-normal-text"> <controls:label><bean:message key="server.portnumber"/>:</controls:label> <controls:data> +<%-- FIXME - input only allowed on create transaction --%> +<%-- <html:text property="portText" size="5"/> +--%> + <bean:write name="connectorForm" property="portText"/> + <html:hidden property="portText"/> </controls:data> </controls:row> @@ -148,6 +158,9 @@ </controls:data> </controls:row> +<%-- FIXME - The proxyName and proxyPort properties not supported --%> +<%-- on all connectors, so comment this section out for now --%> +<%-- <controls:row header="true" labelStyle="table-header-text" dataStyle="table-header-text"> <controls:label>Proxy</controls:label> <controls:data> </controls:data> @@ -166,6 +179,7 @@ <html:text property="proxyPortText" size="5"/> </controls:data> </controls:row> +--%> </controls:table> </td> 1.5 +15 -0 jakarta-tomcat-4.0/webapps/admin/context.jsp Index: context.jsp =================================================================== RCS file: /home/cvs/jakarta-tomcat-4.0/webapps/admin/context.jsp,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- context.jsp 13 Feb 2002 00:03:32 -0000 1.4 +++ context.jsp 9 Mar 2002 00:10:56 -0000 1.5 @@ -109,7 +109,12 @@ <controls:row labelStyle="table-label-text" dataStyle="table-normal-text"> <controls:label><bean:message key="context.docBase"/>:</controls:label> <controls:data> +<%-- FIXME - input only allowed on create transaction --%> +<%-- <html:text property="docBase" size="30"/> +--%> + <bean:write name="contextForm" property="docBase"/> + <html:hidden property="docBase"/> </controls:data> </controls:row> @@ -128,7 +133,12 @@ <controls:row labelStyle="table-label-text" dataStyle="table-normal-text"> <controls:label><bean:message key="context.path"/>:</controls:label> <controls:data> +<%-- FIXME - input only allowed on create transaction --%> +<%-- <html:text property="path" size="30"/> +--%> + <bean:write name="contextForm" property="path"/> + <html:hidden property="path"/> </controls:data> </controls:row> @@ -157,7 +167,12 @@ <controls:row labelStyle="table-label-text" dataStyle="table-normal-text"> <controls:label><bean:message key="context.workdir"/>:</controls:label> <controls:data> +<%-- FIXME - input only allowed on create transaction --%> +<%-- <html:text property="workDir" size="30"/> +--%> + <bean:write name="contextForm" property="workDir"/> + <html:hidden property="workDir"/> </controls:data> </controls:row> </controls:table> 1.2 +203 -4 jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/Lists.java Index: Lists.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/Lists.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- Lists.java 8 Mar 2002 00:12:29 -0000 1.1 +++ Lists.java 9 Mar 2002 00:10:56 -0000 1.2 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/Lists.java,v 1.1 2002/03/08 00:12:29 craigmcc Exp $ - * $Revision: 1.1 $ - * $Date: 2002/03/08 00:12:29 $ + * $Header: /home/cvs/jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/Lists.java,v 1.2 2002/03/09 00:10:56 craigmcc Exp $ + * $Revision: 1.2 $ + * $Date: 2002/03/09 00:10:56 $ * * ==================================================================== * @@ -77,7 +77,7 @@ * is returned. * * @author Craig R. McClanahan - * @version $Revision: 1.1 $ $Date: 2002/03/08 00:12:29 $ + * @version $Revision: 1.2 $ $Date: 2002/03/09 00:10:56 $ */ public class Lists { @@ -261,6 +261,205 @@ throws Exception { return (getHosts(mbserver, new ObjectName(service))); + + } + + + /** + * Return a list of <code>Logger</code> object name strings + * for the specified container (service, host, or context) object name. + * + * @param mbserver MBeanServer from which to retrieve the list + * @param container Object name of the container for which to select + * loggers + * + * @exception Exception if thrown while retrieving the list + */ + public static List getLoggers(MBeanServer mbserver, ObjectName container) + throws Exception { + + StringBuffer sb = new StringBuffer(container.getDomain()); + sb.append(":type=Logger"); + String type = container.getKeyProperty("type"); + String path = container.getKeyProperty("path"); + if (path != null) { + sb.append(",path="); + sb.append(path); + } + String host = container.getKeyProperty("host"); + if ("Host".equals(type)) { + host = container.getKeyProperty("name"); + } + if (host != null) { + sb.append(",host="); + sb.append(host); + } + String service = container.getKeyProperty("service"); + if ("Service".equals(type)) { + service = container.getKeyProperty("name"); + } + if (service != null) { + sb.append(",service="); + sb.append(service); + } + ObjectName search = new ObjectName(sb.toString()); + ArrayList loggers = new ArrayList(); + Iterator names = mbserver.queryNames(search, null).iterator(); + while (names.hasNext()) { + loggers.add(names.next().toString()); + } + Collections.sort(loggers); + return (loggers); + + } + + + /** + * Return a list of <code>Logger</code> object name strings + * for the specified container (service, host, or context) object name. + * + * @param mbserver MBeanServer from which to retrieve the list + * @param container Object name of the container for which to select + * loggers + * + * @exception Exception if thrown while retrieving the list + */ + public static List getLoggers(MBeanServer mbserver, String container) + throws Exception { + + return (getLoggers(mbserver, new ObjectName(container))); + + } + + + /** + * Return a list of <code>Realm</code> object name strings + * for the specified container (service, host, or context) object name. + * + * @param mbserver MBeanServer from which to retrieve the list + * @param container Object name of the container for which to select + * realms + * + * @exception Exception if thrown while retrieving the list + */ + public static List getRealms(MBeanServer mbserver, ObjectName container) + throws Exception { + + StringBuffer sb = new StringBuffer(container.getDomain()); + sb.append(":type=Realm"); + String type = container.getKeyProperty("type"); + String path = container.getKeyProperty("path"); + if (path != null) { + sb.append(",path="); + sb.append(path); + } + String host = container.getKeyProperty("host"); + if ("Host".equals(type)) { + host = container.getKeyProperty("name"); + } + if (host != null) { + sb.append(",host="); + sb.append(host); + } + String service = container.getKeyProperty("service"); + if ("Service".equals(type)) { + service = container.getKeyProperty("name"); + } + if (service != null) { + sb.append(",service="); + sb.append(service); + } + ObjectName search = new ObjectName(sb.toString()); + ArrayList realms = new ArrayList(); + Iterator names = mbserver.queryNames(search, null).iterator(); + while (names.hasNext()) { + realms.add(names.next().toString()); + } + Collections.sort(realms); + return (realms); + + } + + + /** + * Return a list of <code>Realm</code> object name strings + * for the specified container (service, host, or context) object name. + * + * @param mbserver MBeanServer from which to retrieve the list + * @param container Object name of the container for which to select + * realms + * + * @exception Exception if thrown while retrieving the list + */ + public static List getRealms(MBeanServer mbserver, String container) + throws Exception { + + return (getRealms(mbserver, new ObjectName(container))); + + } + + + /** + * Return a list of <code>Server</code> object name strings. + * + * @param mbserver MBeanServer from which to retrieve the list + * + * @exception Exception if thrown while retrieving the list + */ + public static List getServers(MBeanServer mbserver) + throws Exception { + + ObjectName search = new ObjectName("Catalina:type=Server,*"); + ArrayList servers = new ArrayList(); + Iterator names = mbserver.queryNames(search, null).iterator(); + while (names.hasNext()) { + servers.add(names.next().toString()); + } + Collections.sort(servers); + return (servers); + + } + + + /** + * Return a list of <code>Service</code> object name strings + * for the specified <code>Server</code> object name. + * + * @param mbserver MBeanServer from which to retrieve the list + * @param server Object name of the server for which to select services + * + * @exception Exception if thrown while retrieving the list + */ + public static List getServices(MBeanServer mbserver, ObjectName server) + throws Exception { + + StringBuffer sb = new StringBuffer(server.getDomain()); + sb.append(":type=Service,*"); + ObjectName search = new ObjectName(sb.toString()); + ArrayList services = new ArrayList(); + Iterator names = mbserver.queryNames(search, null).iterator(); + while (names.hasNext()) { + services.add(names.next().toString()); + } + Collections.sort(services); + return (services); + + } + + + /** + * Return a list of <code>Service</code> object name strings + * for the specified <code>Server</code> object name. + * + * @param mbserver MBeanServer from which to retrieve the list + * @param server Object name of the server for which to select services + * + * @exception Exception if thrown while retrieving the list + */ + public static List getServices(MBeanServer mbserver, String server) + throws Exception { + + return (getServices(mbserver, new ObjectName(server))); } 1.18 +214 -317 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.17 retrieving revision 1.18 diff -u -r1.17 -r1.18 --- TomcatTreeBuilder.java 6 Mar 2002 06:49:11 -0000 1.17 +++ TomcatTreeBuilder.java 9 Mar 2002 00:10:56 -0000 1.18 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/TomcatTreeBuilder.java,v 1.17 2002/03/06 06:49:11 craigmcc Exp $ - * $Revision: 1.17 $ - * $Date: 2002/03/06 06:49:11 $ + * $Header: /home/cvs/jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/TomcatTreeBuilder.java,v 1.18 2002/03/09 00:10:56 craigmcc Exp $ + * $Revision: 1.18 $ + * $Date: 2002/03/09 00:10:56 $ * * ==================================================================== * @@ -96,7 +96,7 @@ * * @author Jazmin Jonson * @author Manveen Kaur - * @version $Revision: 1.17 $ $Date: 2002/03/06 06:49:11 $ + * @version $Revision: 1.18 $ $Date: 2002/03/09 00:10:56 $ */ @@ -122,18 +122,17 @@ private static MBeanServer mBServer = null; public void buildTree(TreeControl treeControl, - ApplicationServlet servlet, - HttpServletRequest request) { - + ApplicationServlet servlet, + HttpServletRequest request) { + try { mBServer = servlet.getServer(); TreeControlNode root = treeControl.getRoot(); - TreeControlNode server = getServer(); - root.addChild(server); - getServices(server); - }catch(Throwable t){ + getServers(root); + } catch(Throwable t){ t.printStackTrace(System.out); } + } public static ObjectInstance getMBeanFactory() @@ -146,351 +145,249 @@ return mBeanFactory; } - public TreeControlNode getServer() - throws JMException, ServletException { - - Iterator serverItr = - mBServer.queryMBeans(new ObjectName(SERVER_TYPE + WILDCARD), - null).iterator(); - String serverObjName = - (((ObjectInstance)serverItr.next()).getObjectName()).toString(); - - // HACK to take into account special characters like = and & - // in the node name, could remove this code if encode URL - // and later request.getParameter() could deal with = and & - // character in parameter values. Decoding name not needed - // because Tomcat does this automatically - - String encodedServerName = URLEncoder.encode(serverObjName); - String encodedNodeLabel = URLEncoder.encode(SERVER_LABEL); - - TreeControlNode serverNode = - new TreeControlNode(serverObjName, - "folder_16_pad.gif", SERVER_LABEL, - "setUpServer.do?select=" + encodedServerName - +"&nodeLabel=" + encodedNodeLabel, - "content", true); + + /** + * Append nodes for all defined servers. + * + * @param rootNode Root node for the tree control + * + * @exception Exception if an exception occurs building the tree + */ + public void getServers(TreeControlNode rootNode) + throws Exception { - return serverNode; + Iterator serverNames = + Lists.getServers(mBServer).iterator(); + while (serverNames.hasNext()) { + String serverName = (String) serverNames.next(); + ObjectName objectName = new ObjectName(serverName); + String nodeLabel = SERVER_LABEL; + TreeControlNode serverNode = + new TreeControlNode(serverName, + "folder_16_pad.gif", + nodeLabel, + "setUpServer.do?select=" + + URLEncoder.encode(serverName) + + "&nodeLabel=" + + URLEncoder.encode(nodeLabel), + "content", + true); + rootNode.addChild(serverNode); + getServices(serverNode, serverName); + } } - public void getServices(TreeControlNode serverNode) - throws JMException, ServletException { - - Iterator serviceItr = - mBServer.queryMBeans(new ObjectName(SERVICE_TYPE + WILDCARD) , - null).iterator(); - - String encodedServiceName; - - while(serviceItr.hasNext()){ - ObjectInstance service = (ObjectInstance)serviceItr.next(); - - String serviceName = - (String)mBServer.getAttribute(service.getObjectName(),"name"); - - // HACK to take into account special characters like = and & - // in the node name, could remove this code if encode URL - // and later request.getParameter() could deal with = and & - // character in parameter values. Decoding name not needed - // because Tomcat does this automatically - - encodedServiceName = URLEncoder.encode(service.getObjectName().toString()); - - String nodeLabel = "Service (" + serviceName + ")"; - String encodedNodeLabel = URLEncoder.encode(nodeLabel); - + + /** + * Append nodes for all defined services for the specified server. + * + * @param serverNode Server node for the tree control + * @param serverName Object name of the parent server + * + * @exception Exception if an exception occurs building the tree + */ + public void getServices(TreeControlNode serverNode, String serverName) + throws Exception { + + Iterator serviceNames = + Lists.getServices(mBServer, serverName).iterator(); + while (serviceNames.hasNext()) { + String serviceName = (String) serviceNames.next(); + ObjectName objectName = new ObjectName(serviceName); + String nodeLabel = + "Service (" + objectName.getKeyProperty("name") + ")"; TreeControlNode serviceNode = - new TreeControlNode(service.getObjectName().toString(), - "folder_16_pad.gif", - nodeLabel, - "EditService.do?select=" + encodedServiceName - +"&nodeLabel=" + encodedNodeLabel, - "content", true); - + new TreeControlNode(serviceName, + "folder_16_pad.gif", + nodeLabel, + "EditService.do?select=" + + URLEncoder.encode(serviceName) + + "&nodeLabel=" + + URLEncoder.encode(nodeLabel), + "content", + true); serverNode.addChild(serviceNode); - getConnectors(serviceNode, serviceName); getHosts(serviceNode, serviceName); - getLoggers(serviceNode, serviceName, null, null, 0); - getRealms(serviceNode, serviceName, null, null, 0); + getLoggers(serviceNode, serviceName); + getRealms(serviceNode, serviceName); } + } + + /** + * Append nodes for all defined connectors for the specified service. + * + * @param serviceNode Service node for the tree control + * @param serviceName Object name of the parent service + * + * @exception Exception if an exception occurs building the tree + */ public void getConnectors(TreeControlNode serviceNode, String serviceName) - throws JMException{ - - Iterator ConnectorItr = - (mBServer.queryMBeans(new ObjectName(CONNECTOR_TYPE + WILDCARD + - ",service=" + serviceName), - null)).iterator(); - - TreeControlNode connectorNode = null; - String encodedConnectorName; + throws Exception{ - while(ConnectorItr.hasNext()){ - - ObjectInstance connectorObj = (ObjectInstance)ConnectorItr.next(); - - String connectorName = - (String)mBServer.getAttribute(connectorObj.getObjectName(), - "scheme"); - - encodedConnectorName = URLEncoder.encode(connectorObj.getObjectName().toString()); - - String nodeLabel = "Connector (" + connectorName + ")"; - String encodedNodeLabel = URLEncoder.encode(nodeLabel); - - connectorNode = - new TreeControlNode(connectorObj.getObjectName().toString(), - "folder_16_pad.gif", - nodeLabel, - "setUpConnector.do?select=" + encodedConnectorName - + "&nodeLabel="+ encodedNodeLabel, - "content", true); - + Iterator connectorNames = + Lists.getConnectors(mBServer, serviceName).iterator(); + while (connectorNames.hasNext()) { + String connectorName = (String) connectorNames.next(); + ObjectName objectName = new ObjectName(connectorName); + String nodeLabel = + "Connector (" + objectName.getKeyProperty("port") + ")"; + TreeControlNode connectorNode = + new TreeControlNode(connectorName, + "folder_16_pad.gif", + nodeLabel, + "setUpConnector.do?select=" + + URLEncoder.encode(connectorName) + + "&nodeLabel=" + + URLEncoder.encode(nodeLabel), + "content", + true); serviceNode.addChild(connectorNode); } } + + /** + * Append nodes for all defined hosts for the specified service. + * + * @param serviceNode Service node for the tree control + * @param serviceName Object name of the parent service + * + * @exception Exception if an exception occurs building the tree + */ public void getHosts(TreeControlNode serviceNode, String serviceName) - throws JMException{ - - Iterator HostItr = - (mBServer.queryMBeans(new ObjectName(HOST_TYPE + WILDCARD + - ",service=" + serviceName), null)).iterator(); - - TreeControlNode hostNode = null; - String encodedHostName; + throws Exception { - 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 + ")"; - String encodedNodeLabel = URLEncoder.encode(nodeLabel); - - hostNode = - new TreeControlNode(hostObj.getObjectName().toString(), - "folder_16_pad.gif", - nodeLabel, - "setUpHost.do?select=" + encodedHostName - +"&nodeLabel="+ encodedNodeLabel, - "content", true); - + Iterator hostNames = + Lists.getHosts(mBServer, serviceName).iterator(); + while (hostNames.hasNext()) { + String hostName = (String) hostNames.next(); + ObjectName objectName = new ObjectName(hostName); + String nodeLabel = + "Host (" + objectName.getKeyProperty("name") + ")"; + TreeControlNode hostNode = + new TreeControlNode(hostName, + "folder_16_pad.gif", + nodeLabel, + "setUpHost.do?select=" + + URLEncoder.encode(hostName) + + "&nodeLabel=" + + URLEncoder.encode(nodeLabel), + "content", + true); serviceNode.addChild(hostNode); - - getContexts(hostNode, hostName, serviceName); - getLoggers(hostNode, serviceName, hostName, null, 1); - getRealms(hostNode, serviceName, hostName, null, 1); + getContexts(hostNode, hostName); + getLoggers(hostNode, hostName); + getRealms(hostNode, hostName); } + } - public void getContexts(TreeControlNode hostNode, String hostName, String serviceName) - throws JMException{ - - Iterator contextItr = - (mBServer.queryMBeans(new ObjectName(CONTEXT_TYPE + WILDCARD + - ",host=" + hostName + ",service=" + serviceName), null)).iterator(); - - TreeControlNode contextNode = null; - String encodedContextName; - - // arraylist to store and sort the list of available contexts. - ArrayList contextList = new ArrayList(); - while(contextItr.hasNext()){ - - ObjectInstance contextObj = (ObjectInstance)contextItr.next(); - contextList.add(contextObj.getObjectName().toString()); - } - // sorting the list so that the contexts displayed in the tree are in - // alphabetic order. - Collections.sort(contextList); + /** + * Append nodes for all defined contexts for the specified host. + * + * @param hostNode Host node for the tree control + * @param hostName Object name of the parent host + * + * @exception Exception if an exception occurs building the tree + */ + public void getContexts(TreeControlNode hostNode, String hostName) + throws Exception { - for (int i=0; i<contextList.size(); i++) { - String context = (String)contextList.get(i); - ObjectName oName = new ObjectName(context); - String contextName = - (String)mBServer.getAttribute(oName , "path"); - - encodedContextName = URLEncoder.encode(context); - String nodeLabel="Context (" + contextName + ")"; - String encodedNodeLabel = URLEncoder.encode(nodeLabel); - - contextNode = - new TreeControlNode(context, - "folder_16_pad.gif", - nodeLabel, - "setUpContext.do?select=" + encodedContextName - +"&nodeLabel="+ encodedNodeLabel, - "content", false); - + Iterator contextNames = + Lists.getContexts(mBServer, hostName).iterator(); + while (contextNames.hasNext()) { + String contextName = (String) contextNames.next(); + ObjectName objectName = new ObjectName(contextName); + String nodeLabel = + "Context (" + objectName.getKeyProperty("path") + ")"; + TreeControlNode contextNode = + new TreeControlNode(contextName, + "folder_16_pad.gif", + nodeLabel, + "setUpContext.do?select=" + + URLEncoder.encode(contextName) + + "&nodeLabel=" + + URLEncoder.encode(nodeLabel), + "content", + false); hostNode.addChild(contextNode); - //get all loggers for this context - if (contextName.length() > 0) { - getLoggers(contextNode, serviceName, hostName, contextName, 2); - getRealms(contextNode, serviceName, hostName, contextName, 2); - } + getLoggers(contextNode, contextName); + getRealms(contextNode, contextName); } - - + } /** - * Add the required logger nodes to the specified node instance. + * Append nodes for any defined loggers for the specified container. + * + * @param containerNode Container node for the tree control + * @param containerName Object name of the parent container * - * @param node The <code>TreeControlNode</code> to which we should - * add our logger nodes. - * @param serviceName The service to which this logger belongs. - * @param hostName The host to which this logger belongs. - * @param contextName The context to which this logger belongs. - * @param type (0,1,2) Get all loggers for a particular service(0), - * host(1), context (2). + * @exception Exception if an exception occurs building the tree */ - public void getLoggers(TreeControlNode node, String serviceName, - String hostName, String contextName, int type) - throws JMException{ - - Iterator loggerItr = null; - - if (type == 0) { - loggerItr = - (mBServer.queryMBeans(new ObjectName(LOGGER_TYPE + - ",service=" + serviceName), null)).iterator(); - } else if (type == 1) { - loggerItr = - (mBServer.queryMBeans(new ObjectName(LOGGER_TYPE + - ",host=" + hostName + ",service=" + serviceName), null)).iterator(); - } else if (type == 2) { - loggerItr = - (mBServer.queryMBeans(new ObjectName(LOGGER_TYPE + - ",path=" + contextName + ",host=" + hostName + - ",service=" + serviceName), null)).iterator(); - } - - TreeControlNode loggerNode = null; - String encodedLoggerName; - - while(loggerItr.hasNext()){ - - ObjectInstance loggerObj = (ObjectInstance)loggerItr.next(); - ObjectName loggerObjName = loggerObj.getObjectName(); - encodedLoggerName = URLEncoder.encode(loggerObj.getObjectName().toString()); - - String className = - (String)mBServer.getAttribute(loggerObj.getObjectName(), - SetUpLoggerAction.CLASSNAME_PROP_NAME); - - String loggerType = null; - int period = className.lastIndexOf("."); - if (period >= 0) - loggerType = className.substring(period + 1); - - String encodedLoggerType = URLEncoder.encode(loggerType); - - String nodeLabel="Logger"; - String encodedNodeLabel = URLEncoder.encode(nodeLabel); - - loggerNode = - new TreeControlNode(loggerObj.getObjectName().toString(), - "folder_16_pad.gif", - nodeLabel, - "setUpLogger.do?select=" + encodedLoggerName - +"&nodeLabel="+ encodedNodeLabel - +"&type="+ encodedLoggerType, - "content", true); - - node.addChild(loggerNode); + public void getLoggers(TreeControlNode containerNode, + String containerName) throws Exception { + + Iterator loggerNames = + Lists.getLoggers(mBServer, containerName).iterator(); + while (loggerNames.hasNext()) { + String loggerName = (String) loggerNames.next(); + ObjectName objectName = new ObjectName(loggerName); + String nodeLabel = "Logger for " + containerNode.getLabel(); + TreeControlNode loggerNode = + new TreeControlNode(loggerName, + "folder_16_pad.gif", + nodeLabel, + "setUpLogger.do?select=" + + URLEncoder.encode(loggerName) + + "&nodeLabel=" + + URLEncoder.encode(nodeLabel), + "content", + false); + containerNode.addChild(loggerNode); } + } - + + /** - * Add the required realm nodes to the specified node instance. + * Append nodes for any defined realms for the specified container. + * + * @param containerNode Container node for the tree control + * @param containerName Object name of the parent container * - * @param node The <code>TreeControlNode</code> to which we should - * add our realm nodes. - * @param serviceName The service to which this realm belongs. - * @param hostName The host to which this realm belongs. - * @param contextName The context to which this realm belongs. - * @param type (0,1,2) Get all realms for a particular service(0), - * host(1), context (2). + * @exception Exception if an exception occurs building the tree */ - public void getRealms(TreeControlNode node, String serviceName, - String hostName, String contextName, int type) - throws JMException{ - - Iterator realmItr = null; - - if (type == 0) { - realmItr = - (mBServer.queryMBeans(new ObjectName(REALM_TYPE + - ",service=" + serviceName), null)).iterator(); - } else if (type == 1) { - realmItr = - (mBServer.queryMBeans(new ObjectName(REALM_TYPE + - ",host=" + hostName + ",service=" + serviceName), null)).iterator(); - } else if (type == 2) { - realmItr = - (mBServer.queryMBeans(new ObjectName(REALM_TYPE + - ",path=" + contextName + ",host=" + hostName + - ",service=" + serviceName), null)).iterator(); - } - - TreeControlNode realmNode = null; - String encodedRealmName; - - while(realmItr.hasNext()){ - - ObjectInstance realmObj = (ObjectInstance)realmItr.next(); - ObjectName realmObjName = realmObj.getObjectName(); - encodedRealmName = URLEncoder.encode(realmObj.getObjectName().toString()); - - String className = - (String)mBServer.getAttribute(realmObj.getObjectName(), - SetUpLoggerAction.CLASSNAME_PROP_NAME); - - String realmType = null; - int period = className.lastIndexOf("."); - if (period >= 0) - realmType = className.substring(period + 1); - - String setUpAction = null; - if ((SetUpUserDBRealmAction.JDBC_REALM).equalsIgnoreCase(realmType)) { - setUpAction = "setUpJDBCRealm"; - } else if ((SetUpUserDBRealmAction.JNDI_REALM).equalsIgnoreCase(realmType)) { - setUpAction = "setUpJNDIRealm"; - } else if ((SetUpUserDBRealmAction.MEMORY_REALM).equalsIgnoreCase(realmType)) { - setUpAction = "setUpMemoryRealm"; - } else { - // UserDatabaseRealm - setUpAction = "setUpUserDBRealm"; - } - - String encodedRealmType = URLEncoder.encode(realmType); - - String nodeLabel= "Realm"; - String encodedNodeLabel = URLEncoder.encode(nodeLabel); - - realmNode = - new TreeControlNode(realmObj.getObjectName().toString(), - "folder_16_pad.gif", - nodeLabel, - setUpAction +".do?select=" + encodedRealmName - +"&nodeLabel="+ encodedNodeLabel - +"&type="+ encodedRealmType, - "content", true); - - node.addChild(realmNode); + public void getRealms(TreeControlNode containerNode, + String containerName) throws Exception { + + Iterator realmNames = + Lists.getRealms(mBServer, containerName).iterator(); + while (realmNames.hasNext()) { + String realmName = (String) realmNames.next(); + ObjectName objectName = new ObjectName(realmName); + String nodeLabel = "Realm for " + containerNode.getLabel(); + TreeControlNode realmNode = + new TreeControlNode(realmName, + "folder_16_pad.gif", + nodeLabel, + "setUpRealm.do?select=" + + URLEncoder.encode(realmName) + + "&nodeLabel=" + + URLEncoder.encode(nodeLabel), + "content", + false); + // FIXME - Need a generic SetUpRealmAction for all types + // containerNode.addChild(realmNode); } + } + } 1.2 +8 -7 jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/connector/ConnectorForm.java Index: ConnectorForm.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/connector/ConnectorForm.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- ConnectorForm.java 13 Feb 2002 00:13:11 -0000 1.1 +++ ConnectorForm.java 9 Mar 2002 00:10:56 -0000 1.2 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/connector/ConnectorForm.java,v 1.1 2002/02/13 00:13:11 manveen Exp $ - * $Revision: 1.1 $ - * $Date: 2002/02/13 00:13:11 $ + * $Header: /home/cvs/jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/connector/ConnectorForm.java,v 1.2 2002/03/09 00:10:56 craigmcc Exp $ + * $Revision: 1.2 $ + * $Date: 2002/03/09 00:10:56 $ * * ==================================================================== * @@ -74,7 +74,7 @@ * Form bean for the connector page. * * @author Manveen Kaur - * @version $Revision: 1.1 $ $Date: 2002/02/13 00:13:11 $ + * @version $Revision: 1.2 $ $Date: 2002/03/09 00:10:56 $ */ public final class ConnectorForm extends ActionForm { @@ -545,7 +545,7 @@ /* general */ numberCheck("acceptCountText", acceptCountText, true, 0, 128); - numberCheck("connTimeOutText", connTimeOutText, true, 0, 60000); + numberCheck("connTimeOutText", connTimeOutText, true, -1, 60000); numberCheck("bufferSizeText", bufferSizeText, true, 1, 8192); /* The IP address can also be null -- which means open the @@ -560,7 +560,7 @@ /* ports */ numberCheck("portNumber", portText, true, 1, 65535); - numberCheck("redirectPortText", redirectPortText, true, 0, 65535); + numberCheck("redirectPortText", redirectPortText, true, -1, 65535); /* processors*/ numberCheck("minProcessorsText", minProcessorsText, true, 1, 512); @@ -581,7 +581,8 @@ errors.add("proxyName", new ActionError("error.proxyName.invalid")); } } - numberCheck("proxyPortText", proxyPortText, true, 0, 65535); + // FIXME - depends on Connector type + // numberCheck("proxyPortText", proxyPortText, true, 0, 65535); } return errors; 1.2 +6 -4 jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/connector/SetUpConnectorAction.java Index: SetUpConnectorAction.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/connector/SetUpConnectorAction.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- SetUpConnectorAction.java 13 Feb 2002 00:13:11 -0000 1.1 +++ SetUpConnectorAction.java 9 Mar 2002 00:10:56 -0000 1.2 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/connector/SetUpConnectorAction.java,v 1.1 2002/02/13 00:13:11 manveen Exp $ - * $Revision: 1.1 $ - * $Date: 2002/02/13 00:13:11 $ + * $Header: /home/cvs/jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/connector/SetUpConnectorAction.java,v 1.2 2002/03/09 00:10:56 craigmcc Exp $ + * $Revision: 1.2 $ + * $Date: 2002/03/09 00:10:56 $ * * ==================================================================== * @@ -93,7 +93,7 @@ * a connector is chosen. * * @author Manveen Kaur - * @version $Revision: 1.1 $ $Date: 2002/02/13 00:13:11 $ + * @version $Revision: 1.2 $ $Date: 2002/03/09 00:10:56 $ */ public class SetUpConnectorAction extends Action { @@ -274,6 +274,7 @@ ((Integer) mBServer.getAttribute(connectorObjName, attribute)).toString()); + /* FIXME - Not supported on all types attribute = PROXY_NAME_PROP_NAME; connectorFm.setProxyName( (String) mBServer.getAttribute(connectorObjName, @@ -283,6 +284,7 @@ connectorFm.setProxyPortText( ((Integer) mBServer.getAttribute(connectorObjName, attribute)).toString()); + */ } catch(Throwable t){ getServlet().log 1.2 +6 -4 jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/context/ContextForm.java Index: ContextForm.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/context/ContextForm.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- ContextForm.java 13 Feb 2002 00:13:11 -0000 1.1 +++ ContextForm.java 9 Mar 2002 00:10:56 -0000 1.2 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/context/ContextForm.java,v 1.1 2002/02/13 00:13:11 manveen Exp $ - * $Revision: 1.1 $ - * $Date: 2002/02/13 00:13:11 $ + * $Header: /home/cvs/jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/context/ContextForm.java,v 1.2 2002/03/09 00:10:56 craigmcc Exp $ + * $Revision: 1.2 $ + * $Date: 2002/03/09 00:10:56 $ * * ==================================================================== * @@ -74,7 +74,7 @@ * Form bean for the context page. * * @author Manveen Kaur - * @version $Revision: 1.1 $ $Date: 2002/02/13 00:13:11 $ + * @version $Revision: 1.2 $ $Date: 2002/03/09 00:10:56 $ */ public final class ContextForm extends ActionForm { @@ -670,9 +670,11 @@ errors.add("docBase", new ActionError("error.docBase.required")); } + /* FIXME - zero length path ok on the root context if ((path == null) || (path.length() < 1)) { errors.add("path", new ActionError("error.path.required")); } + */ if ((workDir == null) || (workDir.length() < 1)) { errors.add("workDir", new ActionError("error.workDir.required")); 1.2 +15 -12 jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/logger/SetUpLoggerAction.java Index: SetUpLoggerAction.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/logger/SetUpLoggerAction.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- SetUpLoggerAction.java 13 Feb 2002 21:37:44 -0000 1.1 +++ SetUpLoggerAction.java 9 Mar 2002 00:10:56 -0000 1.2 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/logger/SetUpLoggerAction.java,v 1.1 2002/02/13 21:37:44 manveen Exp $ - * $Revision: 1.1 $ - * $Date: 2002/02/13 21:37:44 $ + * $Header: /home/cvs/jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/logger/SetUpLoggerAction.java,v 1.2 2002/03/09 00:10:56 craigmcc Exp $ + * $Revision: 1.2 $ + * $Date: 2002/03/09 00:10:56 $ * * ==================================================================== * @@ -92,7 +92,7 @@ * a logger is chosen. * * @author Manveen Kaur - * @version $Revision: 1.1 $ $Date: 2002/02/13 21:37:44 $ + * @version $Revision: 1.2 $ $Date: 2002/03/09 00:10:56 $ */ public class SetUpLoggerAction extends Action { @@ -158,7 +158,8 @@ } String selectedName = request.getParameter("select"); - String loggerType = request.getParameter("type"); + // String loggerType = request.getParameter("type"); + String loggerType = null; // label of the node that was clicked on. String nodeLabel = request.getParameter("nodeLabel"); @@ -215,13 +216,15 @@ String attribute = null; try{ - Iterator loggerItr = - mBServer.queryMBeans(new - ObjectName(selectedName), null).iterator(); - - ObjectInstance objInstance = (ObjectInstance)loggerItr.next(); - ObjectName loggerObjName = (objInstance).getObjectName(); + ObjectName loggerObjName = new ObjectName(selectedName); + // Calculate the type of logger we are managing + attribute = "className"; + String className = (String) mBServer.getAttribute(loggerObjName, + attribute); + int period = className.lastIndexOf('.'); + loggerType = className.substring(period + 1); + // common attributes for all logger types. debug = (Integer) mBServer.getAttribute(loggerObjName, attribute=DEBUG_PROP_NAME); @@ -229,7 +232,7 @@ verbosity = (Integer) mBServer.getAttribute(loggerObjName, attribute=VERBOSITY_PROP_NAME); - if (FILE_LOGGER.equalsIgnoreCase(loggerType)) { + if (FILE_LOGGER.equals(loggerType)) { // Initialize rest of variables. directory = (String) mBServer.getAttribute(loggerObjName, @@ -269,7 +272,7 @@ loggerFm.setLoggerName(selectedName); loggerFm.setNodeLabel(nodeLabel); - if (FILE_LOGGER.equalsIgnoreCase(loggerType)) { + if (FILE_LOGGER.equals(loggerType)) { loggerFm.setDirectory(directory); loggerFm.setPrefix(prefix); 1.3 +11 -1 jakarta-tomcat-4.0/webapps/admin/host/host.jsp Index: host.jsp =================================================================== RCS file: /home/cvs/jakarta-tomcat-4.0/webapps/admin/host/host.jsp,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- host.jsp 6 Mar 2002 06:49:11 -0000 1.2 +++ host.jsp 9 Mar 2002 00:10:57 -0000 1.3 @@ -89,7 +89,12 @@ <controls:row labelStyle="table-label-text" dataStyle="table-normal-text"> <controls:label><bean:message key="host.name"/>:</controls:label> <controls:data> +<%-- FIXME - input only allowed on create transaction --%> +<%-- <html:text property="name" size="24" maxlength="24"/> +--%> + <bean:write name="hostForm" property="name"/> + <html:hidden property="name"/> </controls:data> </controls:row> @@ -97,7 +102,12 @@ <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"/> +<%-- FIXME - input only allowed on create transaction --%> +<%-- + <html:text property="appBase" size="24"/> +--%> + <bean:write name="hostForm" property="appBase"/> + <html:hidden property="appBase"/> </controls:data> </controls:row>
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>