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]>