You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by da...@apache.org on 2003/09/18 06:45:26 UTC
cvs commit: incubator-geronimo/modules/console-web/src/webapp/images geronimo_logo_console.gif
dain 2003/09/17 21:45:26
Added: modules/console-web maven.xml project.xml
modules/console-web/src/java/org/apache/geronimo/console/web/taglib
ClearFilterTag.java MBeanAttributesTag.java
MBeanServerContentsTag.java
MBeanServerContextSupport.java
MBeanServerContextTag.java
MBeanServerContextValueTag.java
modules/console-web/src/java/org/apache/geronimo/console/web/util
MBeanAttributesComparator.java MBeanComparator.java
modules/console-web/src/webapp faq.jsp index.jsp
leftNavigation.jsp mbeanInfo.jsp style.css
template.html template2.html
modules/console-web/src/webapp/WEB-INF
geronimo_jmx-console_v0-1.tld web.xml
modules/console-web/src/webapp/images
geronimo_logo_console.gif
Log:
Initial revision of web console from N. Alex Rupp
Revision Changes Path
1.1 incubator-geronimo/modules/console-web/maven.xml
Index: maven.xml
===================================================================
<?xml version="1.0" encoding="UTF-8"?>
<!-- $Revision: 1.1 $ $Date: 2003/09/18 04:45:26 $ -->
<project default="default"
xmlns:j="jelly:core"
xmlns:u="jelly:util"
xmlns:ant="jelly:ant">
<goal name="default">
<attainGoal name="war"/>
</goal>
</project>
1.1 incubator-geronimo/modules/console-web/project.xml
Index: project.xml
===================================================================
<?xml version="1.0" encoding="UTF-8"?>
<!-- $Revision: 1.1 $ $Date: 2003/09/18 04:45:26 $ -->
<project>
<pomVersion>3</pomVersion>
<extend>${basedir}/../../etc/project.xml</extend>
<!-- ===================== -->
<!-- Module Identification -->
<!-- ===================== -->
<name>Geronimo :: Web Console</name>
<id>geronimo-web-console</id>
<shortDescription></shortDescription>
<description></description>
<siteDirectory></siteDirectory>
<distributionDirectory></distributionDirectory>
<package>org.apache.geronimo.console.web</package>
<currentVersion>DEV</currentVersion>
<!-- ============ -->
<!-- Dependencies -->
<!-- ============ -->
<dependencies>
<!-- Plugin Dependencies -->
<!-- Module Dependencies -->
<dependency>
<groupId>geronimo-spec</groupId>
<artifactId>geronimo-spec-servlet</artifactId>
<version>DEV</version>
<properties>
<runtime>false</runtime>
</properties>
</dependency>
<dependency>
<groupId>geronimo-spec</groupId>
<artifactId>geronimo-spec-jsp</artifactId>
<version>DEV</version>
<properties>
<runtime>false</runtime>
</properties>
</dependency>
<!-- Thirdparty Dependencies -->
<dependency>
<groupId>mx4j</groupId>
<artifactId>mx4j-jmx</artifactId>
<version>SNAPSHOT</version>
<url>http://mx4j.sourceforge.net</url>
<properties>
<runtime>false</runtime>
</properties>
</dependency>
<dependency>
<id>commons-logging</id>
<version>1.0.3</version>
<url>http://jakarta.apache.org/commons/logging</url>
<properties>
<runtime>false</runtime>
</properties>
</dependency>
</dependencies>
</project>
1.1 incubator-geronimo/modules/console-web/src/java/org/apache/geronimo/console/web/taglib/ClearFilterTag.java
Index: ClearFilterTag.java
===================================================================
package org.apache.geronimo.console.web.taglib;
import java.io.IOException;
import javax.management.MBeanServer;
import javax.servlet.jsp.JspWriter;
/**
* If the application detects that a filter other than "*:*" has been used in
* the console for limiting the components displayed, this button will appear,
* allowing the user to revert to the default filter. If the default filter is
* being used, no button shall appear.
*/
public final class ClearFilterTag extends MBeanServerContextSupport {
private MBeanServerContextTag ctx;
private MBeanServer server;
public int doStartTag() {
ctx = getMBeanServerContext();
server = ctx.getMBeanServer();
JspWriter out = pageContext.getOut();
try {
if (server != null) {
if (filtered()) {
out.println("<input class=\"submit\" type=\"button\" " +
"tabindex=\"2\" value=\"Clear Filter\" " +
"onclick=\"window.location='index.jsp'\"/>");
}
}
} catch (IOException e) {
e.printStackTrace();
}
return EVAL_BODY_INCLUDE;
}
public int doEndTag() {
return EVAL_PAGE;
}
private boolean filtered() {
return (!ctx.getObjectNameFilter().equals("*:*"));
}
}
1.1 incubator-geronimo/modules/console-web/src/java/org/apache/geronimo/console/web/taglib/MBeanAttributesTag.java
Index: MBeanAttributesTag.java
===================================================================
package org.apache.geronimo.console.web.taglib;
import java.io.IOException;
import java.net.URLDecoder;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Hashtable;
import java.util.List;
import java.util.Set;
import javax.management.MBeanAttributeInfo;
import javax.management.MBeanInfo;
import javax.management.MBeanServer;
import javax.management.MalformedObjectNameException;
import javax.management.ObjectInstance;
import javax.management.ObjectName;
import javax.management.QueryExp;
import javax.servlet.jsp.JspWriter;
import org.apache.geronimo.console.web.util.MBeanAttributesComparator;
/**
* This tag will display the contents of an MBean in a simple table of
* name/value pairs. The style of the table can be controlled with CSS.
*/
public final class MBeanAttributesTag
extends MBeanServerContextSupport {
private Hashtable properties;
private MBeanServerContextTag ctx;
private ObjectInstance instance;
private Object[] keys;
private Set keySet;
private ObjectName name;
private MBeanServer server;
public int doEndTag() {
return EVAL_PAGE;
}
public int doStartTag() {
ctx = getMBeanServerContext();
server = ctx.getMBeanServer();
JspWriter out = pageContext.getOut();
printMBeanProperties(out);
printMBeanAttributes(out);
return EVAL_BODY_INCLUDE;
}
/*
* This seems like a very backwards way to do this. I don't know
* that creating an ObjectName, using it to get an ObjectInstance
* then creating another ObjectName is necessarily the way to go.
*
*/
private String getDomain() {
try {
ObjectName mbeanName = new ObjectName(getMBeanName());
QueryExp query = null;
Set results = server.queryMBeans(mbeanName, query);
instance = (ObjectInstance) results.iterator().next();
name = instance.getObjectName();
return name.getDomain();
} catch (MalformedObjectNameException e) {
return "No object to introspect. Choose one from the MBean Stack View.";
}
}
/*
* This gets the value of the MBeanName request parameter. If it
* Doesn't find anything, it returns null.
*/
private String getMBeanName() {
String s =
pageContext.getRequest().getParameter("MBeanName");
if (s == null || s == "") {
return null;
}
return s;
}
private void printMBeanProperties(JspWriter out) {
try {
//String mbeanName;
//out.println("<strong>MBean Name </strong>" + getMBeanName());
out.println("<table cellpadding=\"0\" cellspacing=\"0\">");
out.println("\t<tr class=\"head\">");
out.println("\t\t<td class=\"head\" colspan=\"3\">" +
"MBean Properties</td>");
out.println("\t</tr>");
out.println("\t<tr class=\"one\">");
out.println("\t\t<td class=\"name\">MBean Domain</td>");
out.println("\t\t<td class=\"center\">=</td>");
out.println("\t\t<td class=\"value\">" + getDomain() + "</td>");
out.println("\t</tr>");
printMBeanPropertiesStack(out);
out.println("</table>");
} catch (IOException e) {
e.printStackTrace();
}
}
private void printMBeanPropertiesStack(JspWriter out) {
properties = name.getKeyPropertyList();
keySet = properties.keySet();
keys = toList(keySet).toArray();
try {
//out.println("Hello");
String key;
String property;
String trClass = "one";
for (int i = 0; i < keys.length; i++) {
key = (String) keys[i];
property = (String) name.getKeyProperty(key);
if (i % 2 == 0) {
trClass = "two";
} else if (i % 2 == 1) {
trClass = "one";
}
out.println("\t<tr class=\"" + trClass + "\">");
out.println("\t\t<td class=\"name\">" + key + "</td>");
out.println("\t\t<td class=\"center\">=</td>");
out.println("\t\t<td class=\"value\">" +
URLDecoder.decode(property, "UTF-8") + "</td>");
out.println("\t</tr>");
}
/*
out.println("\t<tr class=\"one\">");
out.println("\t\t<td class=\"name\">About</td>");
out.println("\t\t<td class=\"center\">=</td>");
out.println("\t\t<td class=\"value\">Now</td>");
out.println("\t</tr>");
*/
} catch (IOException e) {
e.printStackTrace();
}
}
private void printMBeanAttributes(JspWriter out) {
try {
//String mbeanName;
//out.println("<strong>MBean Name </strong>" + getMBeanName());
out.println("<table cellpadding=\"0\" cellspacing=\"0\">");
out.println("\t<tr class=\"head\">");
out.println("\t\t<td class=\"head\" colspan=\"3\">" +
"MBean Attributes & Info</td>");
out.println("\t</tr>");
printMBeanAttributesStack(out);
out.println("</table>");
} catch (IOException e) {
e.printStackTrace();
}
}
private void printMBeanAttributesStack(JspWriter out) {
try {
MBeanInfo info = server.getMBeanInfo(name);
MBeanAttributeInfo[] attributes = info.getAttributes();
String className = info.getClassName();
String description = info.getDescription();
out.println("\t<tr class=\"one\">");
out.println("\t\t<td class=\"name\">Class Name</td>");
out.println("\t\t<td class=\"center\">=</td>");
out.println("\t\t<td class=\"value\">" + className + "</td>");
out.println("\t</tr>");
out.println("\t<tr class=\"two\">");
out.println("\t\t<td class=\"name\">Description</td>");
out.println("\t\t<td class=\"center\">=</td>");
out.println("\t\t<td class=\"value\">" + description + "</td>");
out.println("\t</tr>");
String attributeName = "name";
String value = "value";
String trClass = "one";
for (int i = 0; i < attributes.length; i++) {
attributeName = attributes[i].getName();
//value = attributes[i].toString();
value = server.getAttribute(name, attributeName).toString();
;
if (i % 2 == 0) {
trClass = "one";
} else if (i % 2 == 1) {
trClass = "two";
}
out.println("\t<tr class=\"" + trClass + "\">");
out.println("\t\t<td class=\"name\">" + attributeName + "</td>");
out.println("\t\t<td class=\"center\">=</td>");
out.println("\t\t<td class=\"value\">" +
URLDecoder.decode(value, "UTF-8") + "</td>");
out.println("\t</tr>");
}
} catch (Exception e) {
e.printStackTrace();
}
}
private List toList(Set set) {
List list = new ArrayList();
MBeanAttributesComparator comp = new MBeanAttributesComparator();
list.addAll(set);
Collections.sort(list, comp);
return list;
}
}
1.1 incubator-geronimo/modules/console-web/src/java/org/apache/geronimo/console/web/taglib/MBeanServerContentsTag.java
Index: MBeanServerContentsTag.java
===================================================================
package org.apache.geronimo.console.web.taglib;
import java.io.IOException;
import java.net.URLDecoder;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import javax.management.MBeanServer;
import javax.management.MalformedObjectNameException;
import javax.management.ObjectInstance;
import javax.management.ObjectName;
import javax.management.QueryExp;
import javax.servlet.jsp.JspWriter;
import org.apache.geronimo.console.web.util.MBeanComparator;
/**
* This class displays the contents of the MBeanServer, arranged in groups, in
* alphabetical order by MBean domain and then by the MBean's canonical name.
*
*/
public final class MBeanServerContentsTag extends MBeanServerContextSupport {
private MBeanServerContextTag ctx;
private MBeanServer server;
public int doStartTag() {
ctx = getMBeanServerContext();
server = ctx.getMBeanServer();
JspWriter out = pageContext.getOut();
try {
if (server != null) {
ObjectName objectName = new ObjectName(ctx.getObjectNameFilter());
QueryExp query = null;
Set results = server.queryMBeans(objectName, query);
List mbeans = toList(results);
printMBeanStack(out, mbeans);
}
} catch (MalformedObjectNameException e) {
try {
String s = "Your query string was improperly formatted. " +
"Please try another query.";
out.println("<div class='paragraphHead'> " +
"Invalid Query String </div>");
out.println("<p>" + s + "</p>");
} catch (IOException ex) {
e.printStackTrace();
}
} catch (IOException e) {
e.printStackTrace();
}
return EVAL_BODY_INCLUDE;
}
public int doEndTag() {
return EVAL_PAGE;
}
private void printMBeanStack(JspWriter out, List mbeans)
throws IOException {
Iterator iter = mbeans.iterator();
String currentDomain = "";
int i = 0;
while (iter.hasNext()) {
ObjectInstance instance = (ObjectInstance) iter.next();
ObjectName name = instance.getObjectName();
if (!(name.getDomain().equals(currentDomain))) {
if (i != 0) {
out.println("</ul>\n");
}
currentDomain = name.getDomain();
out.println(
"\n<div class='paragraphHead'>" + currentDomain + "</div>");
out.println("<ul class='mbeanList'>");
}
String cName = name.getCanonicalName();
String encodedName = URLEncoder.encode(cName, "UTF-8");
String output = cName.substring(cName.indexOf(":") + 1);
out.println("<li><a href=\"mbeanInfo.jsp?MBeanName=" +
encodedName + "\">" + URLDecoder.decode(output, "UTF-8") + "</a></li>");
i++;
}
out.println("</ul>\n");
out.println("<br/> Number of MBeans == " + i);
}
/*
* The idea behind this method is to build a tree structure in the list
* of MBeans and sort out the objects by subgroups. This would make them
* a lot easier to read on the screen.
*
* Unfortunately, this method isn't ready yet.
*/
private void printCascadingDefinition(JspWriter out, String output) {
//TODO: Format the JSR77 stuff so it's more readable.
}
private List toList(Set set) {
List list = new ArrayList();
list.addAll(set);
MBeanComparator comparator = new MBeanComparator();
Collections.sort(list, comparator);
return list;
}
}
1.1 incubator-geronimo/modules/console-web/src/java/org/apache/geronimo/console/web/taglib/MBeanServerContextSupport.java
Index: MBeanServerContextSupport.java
===================================================================
package org.apache.geronimo.console.web.taglib;
import javax.management.MBeanServer;
import javax.servlet.jsp.tagext.BodyTagSupport;
/*
* This class provides a set of common methods for accessing the
* MBeanServerContextTag and its contents, as well as for accessing
* the BodyTagSupport class required for JSP tag libraries.
*/
public class MBeanServerContextSupport extends BodyTagSupport {
protected MBeanServerContextTag getMBeanServerContext() {
return (MBeanServerContextTag)
findAncestorWithClass(this, MBeanServerContextTag.class);
}
protected MBeanServer getMBeanServer() {
return getMBeanServerContext().getMBeanServer();
}
}
1.1 incubator-geronimo/modules/console-web/src/java/org/apache/geronimo/console/web/taglib/MBeanServerContextTag.java
Index: MBeanServerContextTag.java
===================================================================
package org.apache.geronimo.console.web.taglib;
import java.util.Iterator;
import java.util.Set;
import javax.management.MBeanServer;
import javax.management.MBeanServerFactory;
import javax.management.ObjectName;
import javax.management.QueryExp;
import javax.servlet.jsp.tagext.BodyTagSupport;
public class MBeanServerContextTag extends BodyTagSupport {
private MBeanServer server;
public int doStartTag() {
server = getMBeanServer();
return EVAL_BODY_INCLUDE;
}
public int doEndTag() {
return EVAL_PAGE;
}
public MBeanServer getMBeanServer() {
Iterator servers = MBeanServerFactory.findMBeanServer(null).iterator();
MBeanServer server = null;
while (servers.hasNext()) {
server = (MBeanServer) servers.next();
}
return server;
}
public String getObjectNameFilter() {
String filter =
pageContext.getRequest().getParameter("ObjectNameFilter");
if (filter == null || filter == "") {
return "*:*";
}
return filter;
}
public Set getMBeans() {
try {
if (server != null) {
ObjectName objectName = new ObjectName(getObjectNameFilter());
QueryExp query = null;
return server.queryMBeans(objectName, query);
} else {
throw new Exception("MBean server has not been initialized");
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
1.1 incubator-geronimo/modules/console-web/src/java/org/apache/geronimo/console/web/taglib/MBeanServerContextValueTag.java
Index: MBeanServerContextValueTag.java
===================================================================
package org.apache.geronimo.console.web.taglib;
import java.io.IOException;
import javax.management.MBeanServer;
import javax.servlet.jsp.JspWriter;
/**
* This tag presents the contents of an attribute from the MBeanServerContext
* tag to the screen. The attribute type is defined with the "type" parameter
* in the attribute tag.
*
*/
public final class MBeanServerContextValueTag extends MBeanServerContextSupport {
private String type = "";
private MBeanServerContextTag ctx;
private MBeanServer server;
public int doStartTag() {
ctx = getMBeanServerContext();
server = ctx.getMBeanServer();
JspWriter out = pageContext.getOut();
try {
if (server != null) {
String output = getContextValue(getType());
out.print(output);
}
} catch (IOException e) {
e.printStackTrace();
}
return EVAL_BODY_INCLUDE;
}
public int doEndTag() {
return EVAL_PAGE;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
private String getContextValue(String type) {
if (type.equals("ObjectNameFilter")) {
return ctx.getObjectNameFilter();
}
return "error, attribute [" + type + "] not recognized";
}
}
1.1 incubator-geronimo/modules/console-web/src/java/org/apache/geronimo/console/web/util/MBeanAttributesComparator.java
Index: MBeanAttributesComparator.java
===================================================================
package org.apache.geronimo.console.web.util;
import java.util.Comparator;
/*
* Sort Attribute Strings while ignoring case. Later may be changed to
* better handle the JSR-77 attributes.
*
*/
public class MBeanAttributesComparator implements Comparator {
private static final int LEFT_GREATER = 1;
private static final int RIGHT_GREATER = -1;
private static final int EQUAL = 0;
public int compare(Object o1, Object o2) {
String s1 = (String) o1;
String s2 = (String) o2;
return s1.compareToIgnoreCase(s2);
}
}
1.1 incubator-geronimo/modules/console-web/src/java/org/apache/geronimo/console/web/util/MBeanComparator.java
Index: MBeanComparator.java
===================================================================
package org.apache.geronimo.console.web.util;
import java.util.Comparator;
import java.util.StringTokenizer;
import javax.management.ObjectInstance;
import javax.management.ObjectName;
/*
* This class is supposed to sort by Canonical Name. Unfortunately, it
* will not place single token domains before multiple token domains of
* the same type (foo.bar > foo at the moment).
*/
public class MBeanComparator implements Comparator {
private static final int LEFT_GREATER = 1;
private static final int RIGHT_GREATER = -1;
private static final int EQUAL = 0;
public int compare(Object o1, Object o2) {
ObjectName left = ((ObjectInstance) o1).getObjectName();
ObjectName right = ((ObjectInstance) o2).getObjectName();
String leftName = left.getCanonicalName();
String rightName = right.getCanonicalName();
StringTokenizer leftDomainTokenizer =
new StringTokenizer(leftName, ".");
StringTokenizer rightDomainTokenizer =
new StringTokenizer(rightName, ".");
while (leftDomainTokenizer.hasMoreTokens()) {
if (!rightDomainTokenizer.hasMoreTokens()) {
return RIGHT_GREATER;
}
String leftToken = leftDomainTokenizer.nextToken();
String rightToken = rightDomainTokenizer.nextToken();
int comparison = leftToken.compareToIgnoreCase(rightToken);
if (comparison != 0) {
return comparison;
}
}
// left has no more tokens
if (rightDomainTokenizer.hasMoreTokens()) {
return LEFT_GREATER;
}
// both ran out of tokens so they are equal
return EQUAL;
}
}
1.1 incubator-geronimo/modules/console-web/src/webapp/faq.jsp
Index: faq.jsp
===================================================================
<%@ page language="java" contentType="text/html" session="false" %>
<%@ taglib uri="/WEB-INF/geronimo_jmx-console_v0-1.tld" prefix="jmx" %>
<html>
<head>
<title>Geronimo Management Console -- Frequently Asked Questions</title>
<link rel="stylesheet" href="/jmx-console/style.css"/>
</head>
<body>
<img src="images/geronimo_logo_console.gif" border="0" alt="geronimo jmx console"/>
<div id="topNavBar"><div class="topNav">JMX Agent View</div></div>
<jsp:include page="leftNavigation.jsp"/>
<div id="panelTitle">Frequently Asked Questions</div>
<div id="panel"><a name="objectName"></a>
<p><strong>How do I construct an ObjectName filter?</strong></p>
<p>To construct an ObjectName filter you must first list the domain of the MBean. The domain is the part of the MBean's CanonicalName which comes before the colon (:). The part which comes after the colon is a list of the MBean's properties. In order to create a query, you must type in a domain substring, a colon, and a "<name>=<value>" pair followed by a comma. Wildcards (*) are also accepted as substrings in a limited fashion.</p>
<div class="listHead">These queries will work:</div>
<ul>
<li>*:*</li>
<li>jmi*:*</li>
<li>*:name=RMI,*</li>
</ul>
<div class="listHead">These queries will not:</div>
<ul>
<li>*</li>
<li>jmi*</li>
<li>*:*name*</li>
</ul>
<p>The console's capacity to filter the display results through this method is limited by the functionality of the underlying JMX implementation and the details of the JMX specification.</p>
</div>
</body>
</html>
1.1 incubator-geronimo/modules/console-web/src/webapp/index.jsp
Index: index.jsp
===================================================================
<%@ page language="java" contentType="text/html" session="false" %>
<%@ taglib uri="/WEB-INF/geronimo_jmx-console_v0-1.tld" prefix="jmx" %>
<html>
<head>
<title>Geronimo Management Console</title>
<link rel="stylesheet" href="/jmx-console/style.css"/>
</head>
<body>
<jmx:MBeanServerContext>
<img src="images/geronimo_logo_console.gif" border="0" alt="geronimo jmx console"/>
<div id="topNavBar"><div class="topNav">JMX Agent View</div></div>
<jsp:include page="leftNavigation.jsp"/>
<div id="panelTitle">MBean Stack</div>
<div id="panel">
<form method="GET" action="index.jsp">
<input class="textInput" type="text" size="30" name="ObjectNameFilter" value="<jmx:MBeanServerContextValue type='ObjectNameFilter'/>"/>
<input class="submit" type="submit" tabindex="1" value="Filter Output"/>
<jmx:ClearFilter/>
(<a href="/jmx-console/faq.jsp#objectName"/>help</a>)
</form>
<jmx:MBeanServerContents/>
</div>
</jmx:MBeanServerContext>
</body>
</html>
1.1 incubator-geronimo/modules/console-web/src/webapp/leftNavigation.jsp
Index: leftNavigation.jsp
===================================================================
<div id="left">
<div id="leftNavBar">
<div class="leftNav">
<h2>Managed Resources</h2>
<div class="links">
<a href="/jmx-console/index.jsp">MBean Stack</a>
<br/>Relationships
<br/>Dependencies
<br/>Deployments
<br/>Cluster
<br/>Remote Resources
</div>
<h2> Configuration </h2>
<div class="links">
Local Services
<br/>Add / Remove Modules
</div>
<h2> Help </h2>
<div class="links">
Managing Geronimo
<br/><a href="/jmx-console/faq.jsp">JMX-Console FAQ</a>
<br/>Contact us
</div>
</div>
</div>
</div>
1.1 incubator-geronimo/modules/console-web/src/webapp/mbeanInfo.jsp
Index: mbeanInfo.jsp
===================================================================
<%@ page language="java" contentType="text/html" session="false" %>
<%@ taglib uri="/WEB-INF/geronimo_jmx-console_v0-1.tld" prefix="jmx" %>
<html>
<head>
<title>Geronimo Management Console</title>
<link rel="stylesheet" href="/jmx-console/style.css"/>
</head>
<body>
<jmx:MBeanServerContext>
<img src="images/geronimo_logo_console.gif" border="0" alt="geronimo jmx console"/>
<div id="topNavBar"><div class="topNav">JMX Web Console</div></div>
<jsp:include page="leftNavigation.jsp"/>
<div id="panelTitle">MBean Attributes View</div>
<div id="panel" class="two">
<jmx:MBeanAttributes/>
</div>
</jmx:MBeanServerContext>
</body>
</html>
1.1 incubator-geronimo/modules/console-web/src/webapp/style.css
Index: style.css
===================================================================
a { color: #2a3542;
text-decoration: none;}
a:link { }
a:hover { text-decoration: underline; }
a:active { text-decoration: underline; }
a:visited { }
body { margin: 0px 0px 8px 0px;
font-family: verdana, arial;
font-size: 11px;}
form { margin: 0px;
padding: 0px;}
h1 { font-size: 18px; }
h2 { font-size: 11px;
margin: 0px;
line-height: 16px;
border-bottom: 1px solid #829DBD;
width: 160px; }
#graph { border: 1px solid black;
padding: 0px;
margin: 0px;
font-size: 11px;}
p { margin-top: 0px;
margin-bottom: 8px; }
ul { margin: 0px 0px 16px 0px;
padding: 0px 0px 0px 16px; }
#topNavBar { background-color: #556F8F;
padding-top: 4px;
padding-bottom: 3px;
border-top: 1px solid #242D39;
border-bottom: 1px solid #242D39; }
.topNav { color: #fff;
padding-left: 16px;
font-weight: bold; }
#leftNavBar { background-color: #F4F9FE;
width: 176px;
border-right: 1px solid #242D39;
border-bottom: 1px solid #242D39;
margin-bottom: 8px;}
#left { width: 176px;
margin: 0px;
float: left;
line-height: 16px; }
.leftNav { margin: 0px 8px 8px 8px;
padding-top: 8px; }
.links { padding-left: 16px;
margin-bottom: 8px;
color: #aaa;}
#panelTitle { padding: 4px 8px 3px 8px;
background-color: #85A1BD;
border: 1px solid #242D39;
color: #fff;
margin: 8px 8px 0px 184px;
font-weight: bold; }
#panel { padding: 8px 8px 8px 6px;
background-color: #fff;
margin: 0px 8px 8px 186px; }
#panel.two { padding: 0px;
background-color: #fff;
margin: 0px 8px 8px 184px; }
#panel.two table { font-size: 11px;
margin-top: 8px;
border-left: 1px solid #242D39;
border-bottom: 1px solid #242D39;
border-right: 1px solid #242D39;}
.question { font-weight: bold;
margin: 0px;
padding: 8px 0px 0px 0px;
color: #444;}
.sponsor { margin: 16px 0px 0px 0px;
text-align: center;}
.textInput { font-size: 11px;
font-family: verdana, arial;
border-top: 2px solid #242D39;
border-right: 1px solid #242D39;
border-bottom: 1px solid #242D39;
border-left: 2px solid #242D39;
margin: 2px 8px 1px 0px;
padding: 0px 8px 0px 8px;;}
.submit { font-size: 11px;
font-family: verdana, arial;
background-color: #DBE4EE;
padding: 0px 8px 0px 8px;
margin: 0px 8px 1px 0px;
border: 1px solid #242D39; }
.paragraphHead { margin: 16px 0px 0px 0px;
color: #242D39;
font-size: 14px;
font-weight: bold; }
.listHead { margin: 16px 0px 0px 0px;
color: #242D39;
font-weight: bold; }
.mbeanList { margin: 0px 0px 0px 0px;
padding: 0px 0px 0px 16px;
color: #242D39; }
.mbeanInfo { background-color: #F6FBFD;
border: 1px solid #242D39;}
td.name { padding: 4px 4px 4px 16px;
text-align: right;
border-top: 1px solid #242D39; }
td.value { padding: 4px 16px 4px 4px;
border-top: 1px solid #242D39; }
td.center { padding: 4px 4px 4px 4px;
border-top: 1px solid #242D39; }
td.head { padding: 4px 16px 4px 16px;
text-align: left;
border-top: 1px solid #242D39;}
tr.head { background-color: #DBE4F2;
color: #000;
font-weight: bold; }
tr.head td.name { padding-left: 16px; }
tr.head td.value { padding-right: 16px; }
tr.one { background-color: #fff; }
tr.two { background-color: #F2F7FC; }
1.1 incubator-geronimo/modules/console-web/src/webapp/template.html
Index: template.html
===================================================================
<html>
<head>
<title>Geronimo JMX Console</title>
<style>
a { color: #2a3542; }
a:link { text-decoration: none; }
a:hover { text-decoration: underline; }
a:active { color: #242D39; }
body { margin: 0px 0px 8px 0px;
font-family: verdana, arial;
font-size: 11px;}
form { margin: 0px;
padding: 0px;}
h1 { font-size: 18px; }
h2 { font-size: 11px;
margin: 0px;
line-height: 16px;
border-bottom: 1px solid #829DBD;
width: 160px; }
p { margin-top: 0px;
margin-bottom: 8px; }
#topNavBar { background-color: #627789;
padding-top: 4px;
padding-bottom: 3px;
border-top: 1px solid #242D39;
border-bottom: 1px solid #242D39; }
.topNav { color: #fff;
padding-left: 16px;
font-weight: bold; }
#leftNavBar { background-color: #F6FBFD;
width: 176px;
border-right: 1px solid #242D39;
border-bottom: 1px solid #242D39;
margin-bottom: 8px;}
#left { width: 176px;
margin: 0px;
float: left;
line-height: 16px; }
.leftNav { margin: 0px 8px 8px 8px;
padding-top: 8px; }
.links { padding-left: 16px;
margin-bottom: 8px; }
#panelTitle { padding: 4px 8px 3px 8px;
background-color: #8299AC;
border: 1px solid #242D39;
color: #fff;
margin: 8px 8px 0px 184px;
font-weight: bold; }
#panel { padding: 8px 8px 8px 8px;
background-color: #fff;
margin: 0px 8px 8px 184px; }
.question { font-weight: bold;
margin: 0px;
padding: 8px 0px 0px 0px;
color: #444;}
.sponsor { margin: 16px 0px 0px 0px;
text-align: center;}
.textInput { font-size: 11px;
font-family: verdana, arial;
border-top: 2px solid #242D39;
border-right: 1px solid #242D39;
border-bottom: 1px solid #242D39;
border-left: 2px solid #242D39;
margin: 2px 8px 1px 0px;
padding: 0px 8px 0px 8px;;}
.submit { font-size: 11px;
font-family: verdana, arial;
background-color: #DBE4EE;
padding: 0px 8px 0px 8px;
margin: 0px 0px 1px 0px;
border: 1px solid #242D39; }
.mbeanDomain { margin: 16px 0px 0px 0px;
color: #242D39;
font-size: 14px;
font-weight: bold;}
.mbeanList { margin: 0px 0px 0px 24px;
color: #242D39;
list-style-type: disc;}
</style>
</head>
<body>
<img src="images/geronimo_logo_console.gif" border="0" alt="geronimo jmx console"/>
<div id="topNavBar"><div class="topNav">JMX Agent View</div></div>
<div id="left">
<div id="leftNavBar">
<div class="leftNav">
<h2>Managed Resources</h2>
<div class="links">
<a href="/index.jsp">MBean Stack</a>
<br/>Relationships
<br/>Dependencies
<br/>Deployments
<br/>Cluster
<br/>Remote Resources
</div>
<h2> Configuration </h2>
<div class="links">
Local Services
<br/>Add / Remove Modules
</div>
<h2> Help </h2>
<div class="links">
Managing Geronimo
<br/>JMX-Console FAQ
<br/>Contact us
</div>
</div>
</div>
</div>
<div id="panelTitle">MBean Stack</div>
<div id="panel">
<form method="GET" action="index.jsp">
<input class="textInput" type="text" size="30"/>
<input class="submit" type="submit" tabindex="1" value="Filter Output"/>
</form>
<div class='mbeanDomain'>elba.admin</div>
<ul class='mbeanList'>
<li>service=PluginManager</li>
</ul>
<div class='mbeanDomain'>elba.cache</div>
<ul class='mbeanList'>
<li>service=InvalidationManager</li>
</ul>
<div class='mbeanDomain'>elba.deployment</div>
<ul class='mbeanList'>
<li>flavor=URL,type=DeploymentScanner</li>
</ul>
<div class='mbeanDomain'>elba.ejb</div>
<ul class='mbeanList'>
<li>service=EJBDeployer
<ul class='mbeanList'>
<li>something=repetetive</li>
<ul class='mbeanList'>
<li>somethin=else</li>
<ul class='mbeanList'>
<li>something=again</li>
<li>funk=soul</li>
<li>brother=check</li>
<li>it=outnow</li>
</ul>
</ul>
<li>somethin=else</li>
<ul class='mbeanList'>
<li>something=again</li>
<li>funk=soul</li>
<li>brother=check</li>
<li>it=outnow</li>
</ul>
</ul>
</ul>
<div class='mbeanDomain'>elba.j2ee</div>
<ul class='mbeanList'>
<li>jndiName=ejb/mgmt/MEJB,plugin=pool,service=EJB</li>
<li>jndiName=ejb/mgmt/MEJB,service=EJB</li>
<li>module=ejb-management.jar,service=EjbModule</li>
<li>service=EARDeployer</li>
</ul>
<div class='mbeanDomain'>elba.jca</div>
<ul class='mbeanList'>
<li>name=DefaultDS,service=LocalTxCM</li>
<li>name=DefaultDS,service=ManagedConnectionFactory</li>
<li>name=DefaultDS,service=ManagedConnectionPool</li>
<li>name=Elba JDBC XATransaction ResourceAdapter,service=RARDeployment</li>
<li>name=Elba LocalTransaction JDBC Wrapper,service=RARDeployment</li>
<li>name=JMS Adapter,service=RARDeployment</li>
<li>name=JmsXA,service=ManagedConnectionFactory</li>
<li>name=JmsXA,service=ManagedConnectionPool</li>
<li>name=JmsXA,service=TxCM</li>
<li>service=CachedConnectionManager</li>
<li>service=ConnectionFactoryDeployer</li>
<li>service=RARDeployer</li>
</ul>
<div class='mbeanDomain'>elba.jdbc</div>
<ul class='mbeanList'>
<li>service=SQLExceptionProcessor</li>
</ul>
<div class='mbeanDomain'>elba.jmx</div>
<ul class='mbeanList'>
<li>name=Invoker,protocol=jrmp,service=proxyFactory,type=adaptor</li>
<li>name=Invoker,type=adaptor</li>
<li>name=RMI,type=Connector</li>
</ul>
<div class='mbeanDomain'>elba.management.local</div>
<ul class='mbeanList'>
<li>EJBModule=ejb-management.jar,J2EEApplication=null,J2EEServer=Local,j2eeType=StatelessSessionBean,name=ejb/mgmt/MEJB</li>
<li>J2EEApplication=elbamq-httpil.sar,J2EEServer=Local,j2eeType=WebModule,name=elbamq-httpil.war</li>
<li>J2EEApplication=elbamq-httpil.sar,J2EEServer=Local,WebModule=elbamq-httpil.war,j2eeType=Servlet,name=default</li>
<li>J2EEApplication=elbamq-httpil.sar,J2EEServer=Local,WebModule=elbamq-httpil.war,j2eeType=Servlet,name=HTTPServerILServlet</li>
<li>J2EEApplication=elbamq-httpil.sar,J2EEServer=Local,WebModule=elbamq-httpil.war,j2eeType=Servlet,name=invoker</li>
<li>J2EEApplication=elbamq-httpil.sar,J2EEServer=Local,WebModule=elbamq-httpil.war,j2eeType=Servlet,name=jsp</li>
<li>J2EEApplication=http-invoker.sar,J2EEServer=Local,j2eeType=WebModule,name=invoker.war</li>
<li>J2EEApplication=http-invoker.sar,J2EEServer=Local,WebModule=invoker.war,j2eeType=Servlet,name=default</li>
<li>J2EEApplication=http-invoker.sar,J2EEServer=Local,WebModule=invoker.war,j2eeType=Servlet,name=EJBInvokerHAServlet</li>
<li>J2EEApplication=http-invoker.sar,J2EEServer=Local,WebModule=invoker.war,j2eeType=Servlet,name=EJBInvokerServlet</li>
<li>J2EEApplication=http-invoker.sar,J2EEServer=Local,WebModule=invoker.war,j2eeType=Servlet,name=invoker</li>
<li>J2EEApplication=http-invoker.sar,J2EEServer=Local,WebModule=invoker.war,j2eeType=Servlet,name=JMXInvokerServlet</li>
<li>J2EEApplication=http-invoker.sar,J2EEServer=Local,WebModule=invoker.war,j2eeType=Servlet,name=JNDIFactory</li>
<li>J2EEApplication=http-invoker.sar,J2EEServer=Local,WebModule=invoker.war,j2eeType=Servlet,name=jsp</li>
<li>J2EEApplication=http-invoker.sar,J2EEServer=Local,WebModule=invoker.war,j2eeType=Servlet,name=ReadOnlyJNDIFactory</li>
<li>J2EEApplication=null,J2EEServer=Local,j2eeType=EJBModule,name=ejb-management.jar</li>
<li>J2EEApplication=null,J2EEServer=Local,j2eeType=ResourceAdapterModule,name=elba-local-jdbc.rar</li>
<li>J2EEApplication=null,J2EEServer=Local,j2eeType=ResourceAdapterModule,name=elba-xa-jdbc.rar</li>
<li>J2EEApplication=null,J2EEServer=Local,j2eeType=ResourceAdapterModule,name=jms-ra.rar</li>
<li>J2EEApplication=null,J2EEServer=Local,j2eeType=WebModule,name=jmx-console.war</li>
<li>J2EEApplication=null,J2EEServer=Local,j2eeType=WebModule,name=was-jmx-console.war</li>
<li>J2EEApplication=null,J2EEServer=Local,j2eeType=WebModule,name=web-console.war</li>
<li>J2EEApplication=null,J2EEServer=Local,ResourceAdapterModule=elba-local-jdbc.rar,j2eeType=ResourceAdapter,name=Elba LocalTransaction JDBC Wrapper</li>
<li>J2EEApplication=null,J2EEServer=Local,ResourceAdapterModule=elba-xa-jdbc.rar,j2eeType=ResourceAdapter,name=Elba JDBC XATransaction ResourceAdapter</li>
<li>J2EEApplication=null,J2EEServer=Local,ResourceAdapterModule=jms-ra.rar,j2eeType=ResourceAdapter,name=JMS Adapter</li>
<li>J2EEApplication=null,J2EEServer=Local,ServiceModule=cache-invalidation-service.xml,j2eeType=MBean,name=elba.cache%3aservice%3dInvalidationManager</li>
<li>J2EEApplication=null,J2EEServer=Local,ServiceModule=console-mgr.sar,j2eeType=MBean,name=elba.admin%3aservice%3dPluginManager</li>
<li>J2EEApplication=null,J2EEServer=Local,ServiceModule=elba-jca.sar,j2eeType=MBean,name=elba.jca%3aservice%3dConnectionFactoryDeployer</li>
<li>J2EEApplication=null,J2EEServer=Local,ServiceModule=elba-jca.sar,j2eeType=MBean,name=elba.jca%3aservice%3dRARDeployer</li>
<li>J2EEApplication=null,J2EEServer=Local,ServiceModule=elba-service.xml,j2eeType=MBean,name=elba.deployment%3atype%3dDeploymentScanner%2cflavor%3dURL</li>
<li>J2EEApplication=null,J2EEServer=Local,ServiceModule=elba-service.xml,j2eeType=MBean,name=elba.ejb%3aservice%3dEJBDeployer</li>
<li>J2EEApplication=null,J2EEServer=Local,ServiceModule=elba-service.xml,j2eeType=MBean,name=elba.j2ee%3aservice%3dEARDeployer</li>
<li>J2EEApplication=null,J2EEServer=Local,ServiceModule=elba-service.xml,j2eeType=MBean,name=elba.management.local%3aj2eeType%3dJ2EEDomain%2cname%3dManager</li>
<li>J2EEApplication=null,J2EEServer=Local,ServiceModule=elba-service.xml,j2eeType=MBean,name=elba.rmi%3atype%3dRMIClassLoader</li>
<li>J2EEApplication=null,J2EEServer=Local,ServiceModule=elba-service.xml,j2eeType=MBean,name=elba.scripts%3aservice%3dBSHDeployer</li>
<li>J2EEApplication=null,J2EEServer=Local,ServiceModule=elba-service.xml,j2eeType=MBean,name=elba.security%3aservice%3dJaasSecurityManager</li>
<li>J2EEApplication=null,J2EEServer=Local,ServiceModule=elba-service.xml,j2eeType=MBean,name=elba.security%3aservice%3dSecurityConfig</li>
<li>J2EEApplication=null,J2EEServer=Local,ServiceModule=elba-service.xml,j2eeType=MBean,name=elba.security%3aservice%3dXMLLoginConfig</li>
<li>J2EEApplication=null,J2EEServer=Local,ServiceModule=elba-service.xml,j2eeType=MBean,name=elba.system%3atype%3dLog4jService%2cservice%3dLogging</li>
<li>J2EEApplication=null,J2EEServer=Local,ServiceModule=elba-service.xml,j2eeType=MBean,name=elba%3aservice%3dinvoker%2ctype%3djrmp</li>
<li>J2EEApplication=null,J2EEServer=Local,ServiceModule=elba-service.xml,j2eeType=MBean,name=elba%3aservice%3dinvoker%2ctype%3dlocal</li>
<li>J2EEApplication=null,J2EEServer=Local,ServiceModule=elba-service.xml,j2eeType=MBean,name=elba%3aservice%3dinvoker%2ctype%3dpooled</li>
<li>J2EEApplication=null,J2EEServer=Local,ServiceModule=elba-service.xml,j2eeType=MBean,name=elba%3aservice%3dJNDIView</li>
<li>J2EEApplication=null,J2EEServer=Local,ServiceModule=elba-service.xml,j2eeType=MBean,name=elba%3aservice%3dNaming</li>
<li>J2EEApplication=null,J2EEServer=Local,ServiceModule=elba-service.xml,j2eeType=MBean,name=elba%3aservice%3dWebService</li>
<li>J2EEApplication=null,J2EEServer=Local,ServiceModule=elbamq-destinations-service.xml,j2eeType=MBean,name=elba.mq.destination%3aservice%3dQueue%2cname%3dA</li>
<li>J2EEApplication=null,J2EEServer=Local,ServiceModule=elbamq-destinations-service.xml,j2eeType=MBean,name=elba.mq.destination%3aservice%3dQueue%2cname%3dB</li>
<li>J2EEApplication=null,J2EEServer=Local,ServiceModule=elbamq-destinations-service.xml,j2eeType=MBean,name=elba.mq.destination%3aservice%3dQueue%2cname%3dC</li>
<li>J2EEApplication=null,J2EEServer=Local,ServiceModule=elbamq-destinations-service.xml,j2eeType=MBean,name=elba.mq.destination%3aservice%3dQueue%2cname%3dD</li>
<li>J2EEApplication=null,J2EEServer=Local,ServiceModule=elbamq-destinations-service.xml,j2eeType=MBean,name=elba.mq.destination%3aservice%3dQueue%2cname%3dex</li>
<li>J2EEApplication=null,J2EEServer=Local,ServiceModule=elbamq-destinations-service.xml,j2eeType=MBean,name=elba.mq.destination%3aservice%3dQueue%2cname%3dtestQueue</li>
<li>J2EEApplication=null,J2EEServer=Local,ServiceModule=elbamq-destinations-service.xml,j2eeType=MBean,name=elba.mq.destination%3aservice%3dTopic%2cname%3dsecuredTopic</li>
<li>J2EEApplication=null,J2EEServer=Local,ServiceModule=elbamq-destinations-service.xml,j2eeType=MBean,name=elba.mq.destination%3aservice%3dTopic%2cname%3dtestDurableTopic</li>
<li>J2EEApplication=null,J2EEServer=Local,ServiceModule=elbamq-destinations-service.xml,j2eeType=MBean,name=elba.mq.destination%3aservice%3dTopic%2cname%3dtestTopic</li>
<li>J2EEApplication=null,J2EEServer=Local,ServiceModule=elbamq-httpil.sar,j2eeType=MBean,name=elba.mq%3aservice%3dInvocationLayer%2ctype%3dHTTP</li>
<li>J2EEApplication=null,J2EEServer=Local,ServiceModule=elbamq-service.xml,j2eeType=MBean,name=elba.mq.destination%3aservice%3dQueue%2cname%3dDLQ</li>
<li>J2EEApplication=null,J2EEServer=Local,ServiceModule=elbamq-service.xml,j2eeType=MBean,name=elba.mq%3aservice%3dCacheStore</li>
<li>J2EEApplication=null,J2EEServer=Local,ServiceModule=elbamq-service.xml,j2eeType=MBean,name=elba.mq%3aservice%3dDestinationManager</li>
<li>J2EEApplication=null,J2EEServer=Local,ServiceModule=elbamq-service.xml,j2eeType=MBean,name=elba.mq%3aservice%3dInvocationLayer%2ctype%3dJVM</li>
<li>J2EEApplication=null,J2EEServer=Local,ServiceModule=elbamq-service.xml,j2eeType=MBean,name=elba.mq%3aservice%3dInvocationLayer%2ctype%3dOIL</li>
<li>J2EEApplication=null,J2EEServer=Local,ServiceModule=elbamq-service.xml,j2eeType=MBean,name=elba.mq%3aservice%3dInvocationLayer%2ctype%3dOIL2</li>
<li>J2EEApplication=null,J2EEServer=Local,ServiceModule=elbamq-service.xml,j2eeType=MBean,name=elba.mq%3aservice%3dInvocationLayer%2ctype%3dRMI</li>
<li>J2EEApplication=null,J2EEServer=Local,ServiceModule=elbamq-service.xml,j2eeType=MBean,name=elba.mq%3aservice%3dInvocationLayer%2ctype%3dUIL</li>
<li>J2EEApplication=null,J2EEServer=Local,ServiceModule=elbamq-service.xml,j2eeType=MBean,name=elba.mq%3aservice%3dInvocationLayer%2ctype%3dUIL2</li>
<li>J2EEApplication=null,J2EEServer=Local,ServiceModule=elbamq-service.xml,j2eeType=MBean,name=elba.mq%3aservice%3dInvoker</li>
<li>J2EEApplication=null,J2EEServer=Local,ServiceModule=elbamq-service.xml,j2eeType=MBean,name=elba.mq%3aservice%3dMessageCache</li>
<li>J2EEApplication=null,J2EEServer=Local,ServiceModule=elbamq-service.xml,j2eeType=MBean,name=elba.mq%3aservice%3dPersistenceManager</li>
<li>J2EEApplication=null,J2EEServer=Local,ServiceModule=elbamq-service.xml,j2eeType=MBean,name=elba.mq%3aservice%3dSecurityManager</li>
<li>J2EEApplication=null,J2EEServer=Local,ServiceModule=elbamq-service.xml,j2eeType=MBean,name=elba.mq%3aservice%3dStateManager</li>
<li>J2EEApplication=null,J2EEServer=Local,ServiceModule=elbamq-service.xml,j2eeType=MBean,name=elba.mq%3aservice%3dTracingInterceptor</li>
<li>J2EEApplication=null,J2EEServer=Local,ServiceModule=elbaweb-tomcat41.sar,j2eeType=MBean,name=elba.web%3aservice%3dWebServer</li>
<li>J2EEApplication=null,J2EEServer=Local,ServiceModule=http-invoker.sar,j2eeType=MBean,name=elba%3aservice%3dinvoker%2ctype%3dhttp</li>
<li>J2EEApplication=null,J2EEServer=Local,ServiceModule=http-invoker.sar,j2eeType=MBean,name=elba%3aservice%3dinvoker%2ctype%3dhttp%2ctarget%3dNaming</li>
<li>J2EEApplication=null,J2EEServer=Local,ServiceModule=http-invoker.sar,j2eeType=MBean,name=elba%3aservice%3dinvoker%2ctype%3dhttp%2ctarget%3dNaming%2creadonly%3dtrue</li>
<li>J2EEApplication=null,J2EEServer=Local,ServiceModule=http-invoker.sar,j2eeType=MBean,name=elba%3aservice%3dinvoker%2ctype%3dhttpHA</li>
<li>J2EEApplication=null,J2EEServer=Local,ServiceModule=jmx-invoker-adaptor-server.sar,j2eeType=MBean,name=elba.jmx%3atype%3dadaptor%2cname%3dInvoker</li>
<li>J2EEApplication=null,J2EEServer=Local,ServiceModule=jmx-invoker-adaptor-server.sar,j2eeType=MBean,name=elba.jmx%3atype%3dadaptor%2cname%3dInvoker%2cprotocol%3djrmp%2cservice%3dproxyFactory</li>
<li>J2EEApplication=null,J2EEServer=Local,ServiceModule=jmx-rmi-adaptor.sar,j2eeType=MBean,name=elba.jmx%3atype%3dConnector%2cname%3dRMI</li>
<li>J2EEApplication=null,J2EEServer=Local,ServiceModule=mail-service.xml,j2eeType=MBean,name=elba%3aservice%3dMail</li>
<li>J2EEApplication=null,J2EEServer=Local,ServiceModule=properties-service.xml,j2eeType=MBean,name=elba%3atype%3dService%2cname%3dPropertyEditorManager</li>
<li>J2EEApplication=null,J2EEServer=Local,ServiceModule=properties-service.xml,j2eeType=MBean,name=elba%3atype%3dService%2cname%3dSystemProperties</li>
<li>J2EEApplication=null,J2EEServer=Local,ServiceModule=sqlexception-service.xml,j2eeType=MBean,name=elba.jdbc%3aservice%3dSQLExceptionProcessor</li>
<li>J2EEApplication=null,J2EEServer=Local,ServiceModule=transaction-service.xml,j2eeType=MBean,name=elba.jca%3aservice%3dCachedConnectionManager</li>
<li>J2EEApplication=null,J2EEServer=Local,ServiceModule=transaction-service.xml,j2eeType=MBean,name=elba%3aservice%3dClientUserTransaction</li>
<li>J2EEApplication=null,J2EEServer=Local,ServiceModule=transaction-service.xml,j2eeType=MBean,name=elba%3aservice%3dTransactionManager</li>
<li>J2EEApplication=null,J2EEServer=Local,ServiceModule=transaction-service.xml,j2eeType=MBean,name=elba%3aservice%3dXidFactory</li>
<li>J2EEApplication=null,J2EEServer=Local,ServiceModule=uuid-key-generator.sar,j2eeType=MBean,name=elba%3aservice%3dUUIDKeyGeneratorFactory</li>
<li>J2EEApplication=null,J2EEServer=Local,WebModule=jmx-console.war,j2eeType=Servlet,name=default</li>
<li>J2EEApplication=null,J2EEServer=Local,WebModule=jmx-console.war,j2eeType=Servlet,name=invoker</li>
<li>J2EEApplication=null,J2EEServer=Local,WebModule=jmx-console.war,j2eeType=Servlet,name=jsp</li>
<li>J2EEApplication=null,J2EEServer=Local,WebModule=was-jmx-console.war,j2eeType=Servlet,name=default</li>
<li>J2EEApplication=null,J2EEServer=Local,WebModule=was-jmx-console.war,j2eeType=Servlet,name=DisplayMBeans</li>
<li>J2EEApplication=null,J2EEServer=Local,WebModule=was-jmx-console.war,j2eeType=Servlet,name=DisplayOpResult</li>
<li>J2EEApplication=null,J2EEServer=Local,WebModule=was-jmx-console.war,j2eeType=Servlet,name=HtmlAdaptor</li>
<li>J2EEApplication=null,J2EEServer=Local,WebModule=was-jmx-console.war,j2eeType=Servlet,name=InspectMBean</li>
<li>J2EEApplication=null,J2EEServer=Local,WebModule=was-jmx-console.war,j2eeType=Servlet,name=invoker</li>
<li>J2EEApplication=null,J2EEServer=Local,WebModule=was-jmx-console.war,j2eeType=Servlet,name=jsp</li>
<li>J2EEApplication=null,J2EEServer=Local,WebModule=web-console.war,j2eeType=Servlet,name=default</li>
<li>J2EEApplication=null,J2EEServer=Local,WebModule=web-console.war,j2eeType=Servlet,name=HTTP Invocation</li>
<li>J2EEApplication=null,J2EEServer=Local,WebModule=web-console.war,j2eeType=Servlet,name=invoker</li>
<li>J2EEApplication=null,J2EEServer=Local,WebModule=web-console.war,j2eeType=Servlet,name=J2EEFolder</li>
<li>J2EEApplication=null,J2EEServer=Local,WebModule=web-console.war,j2eeType=Servlet,name=jsp</li>
<li>J2EEApplication=null,J2EEServer=Local,WebModule=web-console.war,j2eeType=Servlet,name=JSR77 Domains and Servers</li>
<li>J2EEApplication=null,J2EEServer=Local,WebModule=web-console.war,j2eeType=Servlet,name=JSR77 EJBModules and EJBs</li>
<li>J2EEApplication=null,J2EEServer=Local,WebModule=web-console.war,j2eeType=Servlet,name=MBeans</li>
<li>J2EEApplication=null,J2EEServer=Local,WebModule=web-console.war,j2eeType=Servlet,name=SystemFolder</li>
<li>J2EEApplication=null,J2EEServer=Local,WebModule=web-console.war,j2eeType=Servlet,name=UCLs</li>
<li>J2EEServer=Local,j2eeType=J2EEApplication,name=elbamq-httpil.sar</li>
<li>J2EEServer=Local,j2eeType=J2EEApplication,name=http-invoker.sar</li>
<li>J2EEServer=Local,j2eeType=JavaMailResource,name=DefaultMail</li>
<li>J2EEServer=Local,j2eeType=JCAManagedConnectionFactory,name=DefaultDS</li>
<li>J2EEServer=Local,j2eeType=JCAManagedConnectionFactory,name=JmsXA</li>
<li>J2EEServer=Local,j2eeType=JMSResource,name=LocalJMS</li>
<li>J2EEServer=Local,j2eeType=JNDIResource,name=LocalJNDI</li>
<li>J2EEServer=Local,j2eeType=JTAResource,name=ClientUserTransaction</li>
<li>J2EEServer=Local,j2eeType=JTAResource,name=TransactionManager</li>
<li>J2EEServer=Local,j2eeType=JVM,name=localhost</li>
<li>J2EEServer=Local,j2eeType=ServiceModule,name=cache-invalidation-service.xml</li>
<li>J2EEServer=Local,j2eeType=ServiceModule,name=console-mgr.sar</li>
<li>J2EEServer=Local,j2eeType=ServiceModule,name=elba-jca.sar</li>
<li>J2EEServer=Local,j2eeType=ServiceModule,name=elba-service.xml</li>
<li>J2EEServer=Local,j2eeType=ServiceModule,name=elbamq-destinations-service.xml</li>
<li>J2EEServer=Local,j2eeType=ServiceModule,name=elbamq-httpil.sar</li>
<li>J2EEServer=Local,j2eeType=ServiceModule,name=elbamq-service.xml</li>
<li>J2EEServer=Local,j2eeType=ServiceModule,name=elbaweb-tomcat41.sar</li>
<li>J2EEServer=Local,j2eeType=ServiceModule,name=http-invoker.sar</li>
<li>J2EEServer=Local,j2eeType=ServiceModule,name=jmx-ejb-connector-server.sar</li>
<li>J2EEServer=Local,j2eeType=ServiceModule,name=jmx-invoker-adaptor-server.sar</li>
<li>J2EEServer=Local,j2eeType=ServiceModule,name=jmx-rmi-adaptor.sar</li>
<li>J2EEServer=Local,j2eeType=ServiceModule,name=mail-service.xml</li>
<li>J2EEServer=Local,j2eeType=ServiceModule,name=properties-service.xml</li>
<li>J2EEServer=Local,j2eeType=ServiceModule,name=schedule-manager-service.xml</li>
<li>J2EEServer=Local,j2eeType=ServiceModule,name=scheduler-service.xml</li>
<li>J2EEServer=Local,j2eeType=ServiceModule,name=sqlexception-service.xml</li>
<li>J2EEServer=Local,j2eeType=ServiceModule,name=transaction-service.xml</li>
<li>J2EEServer=Local,j2eeType=ServiceModule,name=user-service.xml</li>
<li>J2EEServer=Local,j2eeType=ServiceModule,name=uuid-key-generator.sar</li>
<li>J2EEServer=Local,JCAResource=DefaultDS,j2eeType=JCAConnectionFactory,name=DefaultDS</li>
<li>J2EEServer=Local,JCAResource=JmsXA,j2eeType=JCAConnectionFactory,name=JmsXA</li>
<li>J2EEServer=Local,ResourceAdapter=Elba LocalTransaction JDBC Wrapper,j2eeType=JCAResource,name=DefaultDS</li>
<li>J2EEServer=Local,ResourceAdapter=JMS Adapter,j2eeType=JCAResource,name=JmsXA</li>
<li>j2eeType=J2EEDomain,name=Manager</li>
<li>j2eeType=J2EEServer,name=Local</li>
</ul>
<div class='mbeanDomain'>elba.mq.destination</div>
<ul class='mbeanList'>
<li>name=A,service=Queue</li>
<li>name=B,service=Queue</li>
<li>name=C,service=Queue</li>
<li>name=D,service=Queue</li>
<li>name=DLQ,service=Queue</li>
<li>name=ex,service=Queue</li>
<li>name=securedTopic,service=Topic</li>
<li>name=testDurableTopic,service=Topic</li>
<li>name=testQueue,service=Queue</li>
<li>name=testTopic,service=Topic</li>
</ul>
<div class='mbeanDomain'>elba.mq</div>
<ul class='mbeanList'>
<li>name=elbamqProvider,service=JMSProviderLoader</li>
<li>name=StdJMSPool,service=ServerSessionPoolMBean</li>
<li>service=CacheStore</li>
<li>service=DestinationManager</li>
<li>service=InvocationLayer,type=HTTP</li>
<li>service=InvocationLayer,type=JVM</li>
<li>service=InvocationLayer,type=OIL</li>
<li>service=InvocationLayer,type=OIL2</li>
<li>service=InvocationLayer,type=RMI</li>
<li>service=InvocationLayer,type=UIL</li>
<li>service=InvocationLayer,type=UIL2</li>
<li>service=Invoker</li>
<li>service=MessageCache</li>
<li>service=PersistenceManager</li>
<li>service=SecurityManager</li>
<li>service=StateManager</li>
<li>service=TracingInterceptor</li>
</ul>
<div class='mbeanDomain'>elba.rmi</div>
<ul class='mbeanList'>
<li>type=RMIClassLoader</li>
</ul>
<div class='mbeanDomain'>elba.scripts</div>
<ul class='mbeanList'>
<li>service=BSHDeployer</li>
</ul>
<div class='mbeanDomain'>elba.security</div>
<ul class='mbeanList'>
<li>service=JaasSecurityManager</li>
<li>service=SecurityConfig</li>
<li>service=XMLLoginConfig</li>
</ul>
<div class='mbeanDomain'>elba.system</div>
<ul class='mbeanList'>
<li>service=JARDeployer</li>
<li>service=Logging,type=Log4jService</li>
<li>service=MainDeployer</li>
<li>service=ServiceController</li>
<li>service=ServiceDeployer</li>
<li>type=Server</li>
<li>type=ServerConfig</li>
<li>type=ServerInfo</li>
</ul>
<div class='mbeanDomain'>elba.web</div>
<ul class='mbeanList'>
<li>context=/elbamq-httpil,name=default,vhost=localhost</li>
<li>context=/elbamq-httpil,name=HTTPServerILServlet,vhost=localhost</li>
<li>context=/elbamq-httpil,name=invoker,vhost=localhost</li>
<li>context=/elbamq-httpil,name=jsp,vhost=localhost</li>
<li>context=/invoker,name=default,vhost=localhost</li>
<li>context=/invoker,name=EJBInvokerHAServlet,vhost=localhost</li>
<li>context=/invoker,name=EJBInvokerServlet,vhost=localhost</li>
<li>context=/invoker,name=invoker,vhost=localhost</li>
<li>context=/invoker,name=JMXInvokerServlet,vhost=localhost</li>
<li>context=/invoker,name=JNDIFactory,vhost=localhost</li>
<li>context=/invoker,name=jsp,vhost=localhost</li>
<li>context=/invoker,name=ReadOnlyJNDIFactory,vhost=localhost</li>
<li>context=/jmx-console,name=default,vhost=localhost</li>
<li>context=/jmx-console,name=invoker,vhost=localhost</li>
<li>context=/jmx-console,name=jsp,vhost=localhost</li>
<li>context=/was-jmx-console,name=default,vhost=localhost</li>
<li>context=/was-jmx-console,name=DisplayMBeans,vhost=localhost</li>
<li>context=/was-jmx-console,name=DisplayOpResult,vhost=localhost</li>
<li>context=/was-jmx-console,name=HtmlAdaptor,vhost=localhost</li>
<li>context=/was-jmx-console,name=InspectMBean,vhost=localhost</li>
<li>context=/was-jmx-console,name=invoker,vhost=localhost</li>
<li>context=/was-jmx-console,name=jsp,vhost=localhost</li>
<li>context=/web-console,name=default,vhost=localhost</li>
<li>context=/web-console,name=HTTP Invocation,vhost=localhost</li>
<li>context=/web-console,name=invoker,vhost=localhost</li>
<li>context=/web-console,name=J2EEFolder,vhost=localhost</li>
<li>context=/web-console,name=jsp,vhost=localhost</li>
<li>context=/web-console,name=JSR77 Domains and Servers,vhost=localhost</li>
<li>context=/web-console,name=JSR77 EJBModules and EJBs,vhost=localhost</li>
<li>context=/web-console,name=MBeans,vhost=localhost</li>
<li>context=/web-console,name=SystemFolder,vhost=localhost</li>
<li>context=/web-console,name=UCLs,vhost=localhost</li>
<li>service=WebServer</li>
</ul>
<div class='mbeanDomain'>elba</div>
<ul class='mbeanList'>
<li>name=PropertyEditorManager,type=Service</li>
<li>name=SystemProperties,type=Service</li>
<li>readonly=true,service=invoker,target=Naming,type=http</li>
<li>service=ClientUserTransaction</li>
<li>service=Hypersonic</li>
<li>service=invoker,target=Naming,type=http</li>
<li>service=invoker,type=http</li>
<li>service=invoker,type=httpHA</li>
<li>service=invoker,type=jrmp</li>
<li>service=invoker,type=local</li>
<li>service=invoker,type=pooled</li>
<li>service=JNDIView</li>
<li>service=Mail</li>
<li>service=Naming</li>
<li>service=TransactionManager</li>
<li>service=UUIDKeyGeneratorFactory</li>
<li>service=WebService</li>
<li>service=XidFactory</li>
</ul>
<div class='mbeanDomain'>JMImplementation</div>
<ul class='mbeanList'>
<li>name=Default,service=LoaderRepository</li>
<li>type=MBeanRegistry</li>
<li>type=MBeanServerDelegate</li>
</ul>
<div class='mbeanDomain'>jmx.loading</div>
<ul class='mbeanList'>
<li>UCL=102a0a5</li>
<li>UCL=1148603</li>
<li>UCL=118223d</li>
<li>UCL=14b6bed</li>
<li>UCL=15b1773</li>
<li>UCL=16dc861</li>
<li>UCL=176e552</li>
<li>UCL=18a6e6e</li>
<li>UCL=18b8914</li>
<li>UCL=1922f46</li>
<li>UCL=1955970</li>
<li>UCL=1972e3a</li>
<li>UCL=1c486f2</li>
<li>UCL=1f01a29</li>
<li>UCL=1f03691</li>
<li>UCL=39be68</li>
<li>UCL=8ceeea</li>
<li>UCL=9a8a68</li>
<li>UCL=c4d04d</li>
<li>UCL=cffc79</li>
<li>UCL=d1e233</li>
<li>UCL=f1916f</li>
</ul>
<br/> Number of MBeans == 283
</div>
</body>
</html>
1.1 incubator-geronimo/modules/console-web/src/webapp/template2.html
Index: template2.html
===================================================================
<html>
<head>
<title>Geronimo Management Console</title>
<link rel="stylesheet" href="/jmx-console/style.css"/>
</head>
<body>
<img src="images/geronimo_logo_console.gif" border="0" alt="geronimo jmx console"/>
<div id="topNavBar"><div class="topNav">JMX Web Console</div></div>
<div id="left">
<div id="leftNavBar">
<div class="leftNav">
<h2>Managed Resources</h2>
<div class="links">
<a href="/jmx-console/index.jsp">MBean Stack</a>
<br/>Relationships
<br/>Dependencies
<br/>Deployments
<br/>Cluster
<br/>Remote Resources
</div>
<h2> Configuration </h2>
<div class="links">
Local Services
<br/>Add / Remove Modules
</div>
<h2> Help </h2>
<div class="links">
Managing Geronimo
<br/><a href="/jmx-console/faq.jsp">JMX-Console FAQ</a>
<br/>Contact us
</div>
</div>
</div>
</div>
<div id="panelTitle">MBean Attributes View</div>
<div id="panel" class="two">
<table cellpadding="0" cellspacing="0">
<tr class="head">
<td class="name">Name /</td>
<td class="value">Value</td>
</tr>
<tr class="one">
<td class="name">Funk =</td>
<td class="value">Soul</td>
</tr>
<tr class="two">
<td class="name">Brother =</td>
<td class="value">Right</td>
</tr>
<tr class="one">
<td class="name">About =</td>
<td class="value">Now</td>
</tr>
</table>
</div>
</body>
</html>
1.1 incubator-geronimo/modules/console-web/src/webapp/WEB-INF/geronimo_jmx-console_v0-1.tld
Index: geronimo_jmx-console_v0-1.tld
===================================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">
<taglib>
<tlibversion>0.1</tlibversion>
<jspversion>1.2</jspversion>
<shortname>geronimo_jmx-console</shortname>
<uri>http://geronimo.apache.org/tlds/geronimo_jmx-console_v0-1.tld</uri>
<tag>
<name>MBeanServerContents</name>
<tagclass>org.apache.geronimo.console.web.taglib.MBeanServerContentsTag</tagclass>
</tag>
<tag>
<name>MBeanServerContext</name>
<tagclass>org.apache.geronimo.console.web.taglib.MBeanServerContextTag</tagclass>
</tag>
<tag>
<name>ClearFilter</name>
<tagclass>org.apache.geronimo.console.web.taglib.ClearFilterTag</tagclass>
</tag>
<tag>
<name>MBeanServerContextValue</name>
<tagclass>org.apache.geronimo.console.web.taglib.MBeanServerContextValueTag</tagclass>
<attribute>
<name>type</name>
<required>true</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
</tag>
<tag>
<name>MBeanAttributes</name>
<tagclass>org.apache.geronimo.console.web.taglib.MBeanAttributesTag</tagclass>
</tag>
</taglib>
1.1 incubator-geronimo/modules/console-web/src/webapp/WEB-INF/web.xml
Index: web.xml
===================================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<!-- Welcome File List -->
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<taglib>
<taglib-uri>jmx-console</taglib-uri>
<taglib-location>/WEB-INF/lib/jmx-console-servlet.jar</taglib-location>
</taglib>
</web-app>
1.1 incubator-geronimo/modules/console-web/src/webapp/images/geronimo_logo_console.gif
<<Binary file>>
Re: cvs commit: incubator-geronimo/modules/console-web/src/webapp/images geronimo_logo_console.gif
Posted by Dain Sundstrom <da...@coredevelopers.net>.
On Thursday, September 18, 2003, at 12:35 AM, Greg Stein wrote:
> On Thu, Sep 18, 2003 at 04:45:26AM -0000, dain@apache.org wrote:
> I see two issues here:
>
> 1) not a single file has an ASF copyright or license
Oops, my bad. I forgot. I'll add it now.
> 2) these "power plant" commits of large bodies of code are *very* hard
> to
> review. it is much nicer from a review standpoint to have this code
> developed from scratch within the CVS repository. that provides a
> way
> to begin to gather input during development. as it stands, it will
> be
> very hard for somebody to review this whole thing and provide
> credible
> feedback, if any.
An initial import in a new area is an exception to the normal rule.
The console did not work until last week and I just got the time to
commit it. Besides that, it is not much code to review (I did it in 30
minutes).
-dain
Re: cvs commit: incubator-geronimo/modules/console-web/src/webapp/images geronimo_logo_console.gif
Posted by Greg Stein <gs...@lyra.org>.
On Thu, Sep 18, 2003 at 04:45:26AM -0000, dain@apache.org wrote:
> dain 2003/09/17 21:45:26
>
> Added: modules/console-web maven.xml project.xml
> modules/console-web/src/java/org/apache/geronimo/console/web/taglib
> ClearFilterTag.java MBeanAttributesTag.java
> MBeanServerContentsTag.java
> MBeanServerContextSupport.java
> MBeanServerContextTag.java
> MBeanServerContextValueTag.java
> modules/console-web/src/java/org/apache/geronimo/console/web/util
> MBeanAttributesComparator.java MBeanComparator.java
> modules/console-web/src/webapp faq.jsp index.jsp
> leftNavigation.jsp mbeanInfo.jsp style.css
> template.html template2.html
> modules/console-web/src/webapp/WEB-INF
> geronimo_jmx-console_v0-1.tld web.xml
> modules/console-web/src/webapp/images
> geronimo_logo_console.gif
> Log:
> Initial revision of web console from N. Alex Rupp
I see two issues here:
1) not a single file has an ASF copyright or license
2) these "power plant" commits of large bodies of code are *very* hard to
review. it is much nicer from a review standpoint to have this code
developed from scratch within the CVS repository. that provides a way
to begin to gather input during development. as it stands, it will be
very hard for somebody to review this whole thing and provide credible
feedback, if any.
Cheers,
-g
--
Greg Stein, http://www.lyra.org/