You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by db...@apache.org on 2007/08/03 07:22:00 UTC

svn commit: r562334 [8/8] - in /openejb/trunk/openejb3/server: ./ openejb-webadmin/ openejb-webadmin/src/ openejb-webadmin/src/main/ openejb-webadmin/src/main/etc/ openejb-webadmin/src/main/java/ openejb-webadmin/src/main/java/org/ openejb-webadmin/src...

Added: openejb/trunk/openejb3/server/openejb-webadmin/src/main/webapp/viewclass.jsp
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/server/openejb-webadmin/src/main/webapp/viewclass.jsp?view=auto&rev=562334
==============================================================================
--- openejb/trunk/openejb3/server/openejb-webadmin/src/main/webapp/viewclass.jsp (added)
+++ openejb/trunk/openejb3/server/openejb-webadmin/src/main/webapp/viewclass.jsp Thu Aug  2 22:21:56 2007
@@ -0,0 +1,243 @@
+<%@ page import="
+javax.naming.InitialContext,
+javax.naming.Context,
+javax.naming.*,
+java.util.Properties,
+javax.naming.Context,
+javax.naming.InitialContext,
+javax.servlet.ServletConfig,
+javax.servlet.ServletException,
+javax.servlet.http.HttpServlet,
+javax.servlet.http.HttpServletRequest,
+javax.servlet.http.HttpServletResponse,
+java.io.PrintWriter,
+java.io.*,
+java.lang.reflect.Method,
+java.lang.reflect.Modifier
+"%>
+<html>
+<head>
+    <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+    <title>OpenEJB Tomcat Integration/1.0</title>
+    <link href="default.css" rel="stylesheet">
+    <!-- $Id: viewclass.jsp 445516 2005-07-04 08:10:54Z dblevins $ -->
+    <!-- Author: David Blevins (david.blevins@visi.com) -->
+</head>
+    <body marginwidth="0" marginheight="0" leftmargin="0" bottommargin="0" topmargin="0" vlink="#6763a9" link="#6763a9" bgcolor="#ffffff">
+    <a name="top"></a>
+    <table width="712" cellspacing="0" cellpadding="0" border="0">
+        <tr>
+            <td bgcolor="#5A5CB8" align="left" valign="top" width="7"><img height="9" width="1" border="0" src="images/dotTrans.gif"></td>
+            <td bgcolor="#5A5CB8" align="left" valign="top" width="40"><img border="0" height="6" width="40" src="images/dotTrans.gif"></td>
+            <td bgcolor="#5A5CB8" align="left" valign="top" height="2" width="530"><img border="0" height="6" width="530" src="images/top_2.gif"></td>
+            <td bgcolor="#E24717" align="left" valign="top" height="2" width="120"><img src="images/top_3.gif" width="120" height="6" border="0"></td>
+        </tr>
+        <tr>
+            <td bgcolor="#5A5CB8" align="left" valign="top" bgcolor="#ffffff" width="13"><img border="0" height="15" width="13" src="images/dotTrans.gif"></td>
+            <td align="left" valign="top" width="40"><img border="0" height="1" width="1" src="images/dotTrans.gif"></td>
+            <td align="left" valign="middle" width="530"><a href="http://www.openejb.org"><span class="menuTopOff">OpenEJB</span></a><img border="0" height="2" width="20" src="images/dotTrans.gif"><a href="index.html"><span class="menuTopOff">Index</span></a><img border="0" height="2" width="20" src="images/dotTrans.gif"><a href="viewjndi.jsp"><span class="menuTopOff">JNDI</span></a><img border="0" height="2" width="20" src="images/dotTrans.gif"><a href="viewejb.jsp"><span class="menuTopOff">EJB</span></a><img border="0" height="2" width="20" src="images/dotTrans.gif"><a href="viewclass.jsp"><span class="menuTopOff">Class</span></a><img border="0" height="2" width="20" src="images/dotTrans.gif"><a href="invokeobj.jsp"><span class="menuTopOff">Invoke</span></a><img border="0" height="2" width="20" src="images/dotTrans.gif"></td>
+            <td align="left" valign="top" height="20" width="120"><img border="0" height="2" width="10" src="images/dotTrans.gif"></td>
+        </tr>
+        <tr>
+            <td align="left" valign="top" bgcolor="#a9a5de" width="7"><img border="0" height="3" width="7" src="images/line_sm.gif"></td>
+            <td align="left" valign="top" height="3" width="40"><img border="0" height="3" width="40" src="images/line_light.gif"></td>
+            <td align="left" valign="top" height="3" width="530"><img border="0" height="3" width="530" src="images/line_light.gif"></td>
+            <td align="left" valign="top" height="3" width="120"><img height="1" width="1" border="0" src="images/dotTrans.gif"></td>
+        </tr>
+        <tr>
+            <td align="left" valign="top" bgcolor="#a9a5de" width="7">&nbsp;</td>
+            <td align="left" valign="top" width="40">&nbsp;</td>
+            <td valign="top" width="530" rowspan="4">
+                <table width="530" cellspacing="0" cellpadding="0" border="0" rows="2" cols="1">
+                    <tr>
+                        <td align="left" valign="top"><br>
+                            <img width="200" vspace="0" src="./images/logo_ejb2.gif" hspace="0" height="55" border="0">
+                            <br>
+                            <img src="images/dotTrans.gif" hspace="0" height="7" border="0"><br>
+                            <span class="pageTitle">
+                            OpenEJB Class Viewer
+                            </span>
+                            <br>
+                            <img src="images/dotTrans.gif" hspace="0" height="1" border="0"></td>
+                    </tr>
+                </table>
+                <p>
+                </p>
+                <FONT SIZE="2">
+                
+<%
+    try{
+        String className = request.getParameter("class");
+        if (className == null) {
+            out.print("<b>Enter a class name to browse:</b>");
+            out.print("<FORM NAME='view' METHOD='GET' ACTION='viewclass.jsp'>");
+            out.print("<INPUT type='text' NAME='class' size='40' VALUE=''>");
+            out.print("<INPUT type='SUBMIT' NAME='view' value='View'>");
+            out.print("</form>");
+            out.print("<b>Or browse one of these fun classes:</b><br><br>");
+            out.print(tab+getClassRef("javax.ejb.EJBHome")+"<br>");
+            out.print(tab+getClassRef("javax.ejb.EJBObject")+"<br>");
+            out.print(tab+getClassRef("javax.ejb.EnterpriseBean")+"<br>");
+            out.print(tab+getClassRef("javax.ejb.SessionBean")+"<br>");
+            out.print(tab+getClassRef("javax.ejb.EntityBean")+"<br>");
+            out.print(tab+getClassRef("javax.servlet.http.HttpServlet")+"<br>");
+            out.print(tab+getClassRef("javax.servlet.http.HttpServletRequest")+"<br>");
+            out.print(tab+getClassRef("javax.servlet.http.HttpServletResponse")+"<br>");
+            out.print(tab+getClassRef("javax.servlet.http.HttpSession")+"<br>");
+            out.print(tab+getClassRef("javax.naming.InitialContext")+"<br>");
+            out.print(tab+getClassRef("javax.naming.Context")+"<br>");
+
+        } else {
+            Class clazz = this.getClass().forName(className);
+            printClass(clazz,out);
+        }
+    } catch (Exception e){
+        out.println("FAIL");
+        return;
+    }
+%>
+<BR><BR>
+<% if (hasMethods) { %>
+<font color='green'>*</font>&nbsp;Public &nbsp; 
+<font color='red'>*</font>&nbsp;Private &nbsp;
+<font color='blue'>*</font>&nbsp;Protected &nbsp;
+<font color='yellow'>*</font>&nbsp;Default 
+<BR>
+<%}%>
+<BR>
+</FONT>
+
+            </td>
+            <td align="left" valign="top" height="5" width="120">
+
+
+                &nbsp;</td>
+        </tr>
+    </table>
+    </body>
+</html>
+
+<%!
+    String tab = "&nbsp;&nbsp;&nbsp;&nbsp;";
+    boolean hasMethods;
+
+    public void printClass(Class clazz, javax.servlet.jsp.JspWriter out) throws Exception {
+        out.print("<b>"+clazz.getName()+"</b><br>");
+        Method[] methods = clazz.getDeclaredMethods();
+        hasMethods = (methods.length > 0);
+        for (int i=0; i < methods.length; i++){
+            printMethod( methods[i], out );
+        }
+
+/*        //out.print("&nbsp;&nbsp;<font color='gray'><u>Public Methods:</u></font><br>");
+        for (int i=0; i < methods.length; i++){
+            if (Modifier.isPublic(methods[i].getModifiers())){
+                printMethod( methods[i], out );
+            }
+        }
+        //out.print("&nbsp;&nbsp;<font color='gray'><u>Private Methods:</u></font><br>");
+        for (int i=0; i < methods.length; i++){
+            if (Modifier.isPrivate(methods[i].getModifiers())){
+                printMethod( methods[i], out );
+            }
+        }
+        for (int i=0; i < methods.length; i++){
+            if (Modifier.isProtected(methods[i].getModifiers())){
+                printMethod( methods[i], out );
+            }
+        }
+        for (int i=0; i < methods.length; i++){
+            if (!Modifier.isSrict(methods[i].getModifiers())){
+                printMethod( methods[i], out );
+            }
+        }
+*/         
+        Class sup = clazz.getSuperclass();
+        if (sup != null) {
+            out.print("<br><b>Extends:</b><br>");
+            out.print(tab+getClassRef(sup)+"<br>");
+        }
+
+        Class[] intf = clazz.getInterfaces();
+        if (intf.length > 0) {
+            out.print("<br><b>Implements:</b><br>");
+            for (int i=0; i < intf.length; i++){
+                out.print(tab+getClassRef(intf[i])+"<br>");
+            }
+        }
+    }
+
+    public void printMethod(Method m, javax.servlet.jsp.JspWriter out) throws Exception {
+        out.print(tab);
+        out.print(" "+getModifier(m));
+        
+        out.print(" "+getShortClassRef(m.getReturnType())+"&nbsp;&nbsp;");
+
+        out.print(""+m.getName()+"&nbsp;");
+        Class[] params = m.getParameterTypes();
+        out.print("<font color='gray'>(</font>");
+        for (int j=0; j < params.length; j++){
+            out.print(getShortClassRef(params[j]));
+            if (j != params.length-1) {
+                out.print(",&nbsp;");
+            }
+        }
+        out.print("<font color='gray'>)</font>");
+
+        Class[] excp = m.getExceptionTypes();
+        if (excp.length > 0) {
+            out.print(" <font color='gray'>throws</font>&nbsp;&nbsp;");
+            for (int j=0; j < excp.length; j++){
+                out.print(getShortClassRef(excp[j]));
+                if (j != excp.length-1) {
+                    out.print(",&nbsp;");
+                }
+            }
+        }
+        out.print("<br>");
+    }
+    public String getModifier(Method m) throws Exception {
+        int mod = m.getModifiers();
+        String color = "";
+
+        if (Modifier.isPublic(mod)) {
+            color = "green";
+        } else if (Modifier.isPrivate(mod)) {
+            color = "red";
+        } else if (Modifier.isProtected(mod)) {
+            color = "blue";
+        } else {
+            color = "yellow";
+        }
+        return "<font color='"+color+"'>*</font>";
+    }
+
+    public String getClassRef(Class clazz) throws Exception {
+            String name = clazz.getName();
+            return "<a href='viewclass.jsp?class="+name+"'>"+name+"</a>";
+    }
+    
+    public String getClassRef(String name) throws Exception {
+            return "<a href='viewclass.jsp?class="+name+"'>"+name+"</a>";
+    }
+    
+    public String getShortClassRef(Class clazz) throws Exception {
+        if (clazz.isPrimitive()) {
+            return "<font color='gray'>"+clazz.getName()+"</font>";
+        } else if (clazz.isArray() && clazz.getComponentType().isPrimitive()) {
+            return "<font color='gray'>"+clazz.getComponentType()+"[]</font>";
+        } else if (clazz.isArray()) {
+            String name = clazz.getComponentType().getName();
+            int dot = name.lastIndexOf(".")+1;
+            String shortName = name.substring(dot,name.length());
+            return "<a href='viewclass.jsp?class="+name+"'>"+shortName+"[]</a>";
+        } else {
+            String name = clazz.getName();
+            int dot = name.lastIndexOf(".")+1;
+            String shortName = name.substring(dot,name.length());
+            return "<a href='viewclass.jsp?class="+name+"'>"+shortName+"</a>";
+        }
+    }
+
+%>
+

Propchange: openejb/trunk/openejb3/server/openejb-webadmin/src/main/webapp/viewclass.jsp
------------------------------------------------------------------------------
    svn:executable = *

Added: openejb/trunk/openejb3/server/openejb-webadmin/src/main/webapp/viewejb.jsp
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/server/openejb-webadmin/src/main/webapp/viewejb.jsp?view=auto&rev=562334
==============================================================================
--- openejb/trunk/openejb3/server/openejb-webadmin/src/main/webapp/viewejb.jsp (added)
+++ openejb/trunk/openejb3/server/openejb-webadmin/src/main/webapp/viewejb.jsp Thu Aug  2 22:21:56 2007
@@ -0,0 +1,208 @@
+<%@ page import="
+javax.naming.InitialContext,
+javax.naming.Context,
+javax.naming.*,
+java.util.Properties,
+javax.naming.Context,
+javax.naming.InitialContext,
+javax.servlet.ServletConfig,
+javax.servlet.ServletException,
+javax.servlet.http.HttpSession,
+javax.servlet.http.HttpServlet,
+javax.servlet.http.HttpServletRequest,
+javax.servlet.http.HttpServletResponse,
+org.openejb.DeploymentInfo,
+java.io.PrintWriter,
+java.io.*,
+java.lang.reflect.Method,
+java.lang.reflect.Modifier,
+javax.ejb.*,
+java.util.HashMap
+"%>
+<html>
+<head>
+    <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+    <title>OpenEJB Tomcat Integration/1.0</title>
+    <link href="default.css" rel="stylesheet">
+    <!-- $Id: viewejb.jsp 445516 2005-07-04 08:10:54Z dblevins $ -->
+    <!-- Author: David Blevins (david.blevins@visi.com) -->
+</head>
+    <body marginwidth="0" marginheight="0" leftmargin="0" bottommargin="0" topmargin="0" vlink="#6763a9" link="#6763a9" bgcolor="#ffffff">
+    <a name="top"></a>
+    <table width="712" cellspacing="0" cellpadding="0" border="0">
+        <tr>
+            <td bgcolor="#5A5CB8" align="left" valign="top" width="7"><img height="9" width="1" border="0" src="images/dotTrans.gif"></td>
+            <td bgcolor="#5A5CB8" align="left" valign="top" width="40"><img border="0" height="6" width="40" src="images/dotTrans.gif"></td>
+            <td bgcolor="#5A5CB8" align="left" valign="top" height="2" width="430"><img border="0" height="6" width="430" src="images/top_2.gif"></td>
+            <td bgcolor="#E24717" align="left" valign="top" height="2" width="120"><img src="images/top_3.gif" width="120" height="6" border="0"></td>
+        </tr>
+        <tr>
+            <td bgcolor="#5A5CB8" align="left" valign="top" bgcolor="#ffffff" width="13"><img border="0" height="15" width="13" src="images/dotTrans.gif"></td>
+            <td align="left" valign="top" width="40"><img border="0" height="1" width="1" src="images/dotTrans.gif"></td>
+            <td align="left" valign="middle" width="430"><a href="http://www.openejb.org"><span class="menuTopOff">OpenEJB</span></a><img border="0" height="2" width="20" src="images/dotTrans.gif"><a href="index.html"><span class="menuTopOff">Index</span></a><img border="0" height="2" width="20" src="images/dotTrans.gif"><a href="viewjndi.jsp"><span class="menuTopOff">JNDI</span></a><img border="0" height="2" width="20" src="images/dotTrans.gif"><a href="viewejb.jsp"><span class="menuTopOff">EJB</span></a><img border="0" height="2" width="20" src="images/dotTrans.gif"><a href="viewclass.jsp"><span class="menuTopOff">Class</span></a><img border="0" height="2" width="20" src="images/dotTrans.gif"><a href="invokeobj.jsp"><span class="menuTopOff">Invoke</span></a><img border="0" height="2" width="20" src="images/dotTrans.gif"></td>
+            <td align="left" valign="top" height="20" width="120"><img border="0" height="2" width="10" src="images/dotTrans.gif"></td>
+        </tr>
+        <tr>
+            <td align="left" valign="top" bgcolor="#a9a5de" width="7"><img border="0" height="3" width="7" src="images/line_sm.gif"></td>
+            <td align="left" valign="top" height="3" width="40"><img border="0" height="3" width="40" src="images/line_light.gif"></td>
+            <td align="left" valign="top" height="3" width="430"><img border="0" height="3" width="430" src="images/line_light.gif"></td>
+            <td align="left" valign="top" height="3" width="120"><img height="1" width="1" border="0" src="images/dotTrans.gif"></td>
+        </tr>
+        <tr>
+            <td align="left" valign="top" bgcolor="#a9a5de" width="7">&nbsp;</td>
+            <td align="left" valign="top" width="40">&nbsp;</td>
+            <td valign="top" width="430" rowspan="4">
+                <table width="430" cellspacing="0" cellpadding="0" border="0" rows="2" cols="1">
+                    <tr>
+                        <td align="left" valign="top"><br>
+                            <img width="200" vspace="0" src="./images/logo_ejb2.gif" hspace="0" height="55" border="0">
+                            <br>
+                            <img src="images/dotTrans.gif" hspace="0" height="7" border="0"><br>
+                            <span class="pageTitle">
+                            OpenEJB Enterprise JavaBeans Viewer
+                            </span>
+                            <br>
+                            <img src="images/dotTrans.gif" hspace="0" height="1" border="0"></td>
+                    </tr>
+                </table>
+                <p>
+                </p>
+                <FONT SIZE="2">
+<%
+    try{
+        String ejb = request.getParameter("ejb");
+        if (ejb == null) {
+            out.print("No EJB specified");
+        } else {
+            printEjb(ejb,out, session);
+        }
+    } catch (Exception e){
+        
+        out.println("FAIL: ");
+        out.print(e.getMessage());
+        throw e;
+        //return;
+    }
+%>
+<BR><BR>
+<BR>
+</FONT>
+
+            </td>
+            <td align="left" valign="top" height="5" width="120">
+
+
+                &nbsp;</td>
+        </tr>
+    </table>
+    </body>
+</html>
+
+<%!
+    String tab = "&nbsp;&nbsp;&nbsp;&nbsp;";
+
+    public void printEjb(String name, javax.servlet.jsp.JspWriter out, HttpSession session) throws Exception {
+        String id = (name.startsWith("/"))?name.substring(1,name.length()):name;
+        org.openejb.DeploymentInfo ejb = org.openejb.OpenEJB.getDeploymentInfo(id);
+
+        if (ejb == null) {
+            out.print("No such EJB: "+id);
+            return;
+        }
+        String type = null;
+
+        switch (ejb.getComponentType()) {
+            case org.openejb.core.DeploymentInfo.CMP_ENTITY :
+                type = "EntityBean with Container-Managed Persistence";
+                break;
+            case org.openejb.core.DeploymentInfo.BMP_ENTITY :
+                type = "EntityBean with Bean-Managed Persistence";
+                break;
+            case org.openejb.core.DeploymentInfo.STATEFUL :
+                type = "Stateful SessionBean";
+                break;
+            case org.openejb.core.DeploymentInfo.STATELESS :
+                type = "Stateless SessionBean";
+                break;
+            default :
+                type = "Unkown Bean Type";
+                break;
+        }
+        out.print("<b>"+type+"</b><br>");
+        out.print("<table>");
+        printRow("JNDI Name",name,out);
+        printRow("Remote Interface", getClassRef(ejb.getRemoteInterface()) ,out);
+        printRow("Home Interface", getClassRef(ejb.getHomeInterface()) ,out);
+        printRow("Bean Class", getClassRef(ejb.getBeanClass()) ,out);
+        if (ejb.getComponentType() == DeploymentInfo.BMP_ENTITY || 
+            ejb.getComponentType() == DeploymentInfo.CMP_ENTITY ) {
+            printRow("Primary Key", getClassRef(ejb.getPrimaryKeyClass()) ,out);
+        }
+        String pepperImg = "<img src='images/pepper.gif' border='0'>";
+        out.print("</table>");
+        out.print("<br><br><b>Actions:</b><br>");
+        out.print("<table>");
+        
+        // Browse JNDI with this ejb
+        //javax.servlet.http.HttpSession session = this.session;
+        HashMap objects = (HashMap)session.getAttribute("objects");
+        if (objects == null) {
+            objects = new HashMap();
+            session.setAttribute("objects",objects);
+        }
+
+        InitialContext ctx;
+        Properties p = new Properties();
+
+        p.put(Context.INITIAL_CONTEXT_FACTORY, "org.openejb.client.LocalInitialContextFactory");
+        p.put("openejb.loader", "embed");
+
+        ctx = new InitialContext( p );
+        Object obj = ctx.lookup(name);
+        String objID = ejb.getHomeInterface().getName()+"@"+obj.hashCode();
+        objects.put(objID,obj);
+        String invokerURL = "<a href='invokeobj.jsp?obj="+objID+"'>Invoke this EJB</a>";
+        printRow(pepperImg,invokerURL, out);
+        
+        Context enc = ((org.openejb.core.DeploymentInfo)ejb).getJndiEnc();
+        String ctxID = "enc"+enc.hashCode();
+        session.setAttribute(ctxID, enc);
+        String jndiURL = "<a href='viewjndi.jsp?ctx="+ctxID+"'>Browse this EJB's private JNDI namespace</a>";
+        printRow(pepperImg,jndiURL, out);
+        out.print("</table>");
+
+    }
+
+    protected void printRow(String col1, String col2, javax.servlet.jsp.JspWriter out) throws IOException{
+        out.print("<tr><td><font size='2'>"  );
+        out.print(col1);
+        out.print("</font></td><td><font size='2'>");
+        out.print(col2);
+        out.print("</font></td></tr>");
+    }
+
+    public String getClassRef(Class clazz) throws Exception {
+            String name = clazz.getName();
+            return "<a href='viewclass.jsp?class="+name+"'>"+name+"</a>";
+    }
+    
+    public String getShortClassRef(Class clazz) throws Exception {
+        if (clazz.isPrimitive()) {
+            return "<font color='gray'>"+clazz.getName()+"</font>";
+        } else if (clazz.isArray() && clazz.getComponentType().isPrimitive()) {
+            return "<font color='gray'>"+clazz.getComponentType()+"[]</font>";
+        } else if (clazz.isArray()) {
+            String name = clazz.getComponentType().getName();
+            int dot = name.lastIndexOf(".")+1;
+            String shortName = name.substring(dot,name.length());
+            return "<a href='viewclass.jsp?class="+name+"'>"+shortName+"[]</a>";
+        } else {
+            String name = clazz.getName();
+            int dot = name.lastIndexOf(".")+1;
+            String shortName = name.substring(dot,name.length());
+            return "<a href='viewclass.jsp?class="+name+"'>"+shortName+"</a>";
+        }
+    }
+
+%>
+

Propchange: openejb/trunk/openejb3/server/openejb-webadmin/src/main/webapp/viewejb.jsp
------------------------------------------------------------------------------
    svn:executable = *

Added: openejb/trunk/openejb3/server/openejb-webadmin/src/main/webapp/viewjndi.jsp
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/server/openejb-webadmin/src/main/webapp/viewjndi.jsp?view=auto&rev=562334
==============================================================================
--- openejb/trunk/openejb3/server/openejb-webadmin/src/main/webapp/viewjndi.jsp (added)
+++ openejb/trunk/openejb3/server/openejb-webadmin/src/main/webapp/viewjndi.jsp Thu Aug  2 22:21:56 2007
@@ -0,0 +1,247 @@
+<%@ page import="
+javax.naming.InitialContext,
+javax.naming.Context,
+javax.naming.*,
+java.util.Properties,
+javax.naming.Context,
+javax.naming.InitialContext,
+javax.servlet.ServletConfig,
+javax.servlet.ServletException,
+javax.servlet.http.HttpServlet,
+javax.servlet.http.HttpServletRequest,
+javax.servlet.http.HttpServletResponse,
+java.io.PrintWriter,
+java.io.*,
+java.lang.reflect.Method
+"%>
+<html>
+<head>
+    <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+    <title>OpenEJB Tomcat Integration/1.0</title>
+    <link href="default.css" rel="stylesheet">
+</head>
+    <body marginwidth="0" marginheight="0" leftmargin="0" bottommargin="0" topmargin="0" vlink="#6763a9" link="#6763a9" bgcolor="#ffffff">
+    <a name="top"></a>
+    <table width="712" cellspacing="0" cellpadding="0" border="0">
+        <tr>
+            <td bgcolor="#5A5CB8" align="left" valign="top" width="7"><img height="9" width="1" border="0" src="images/dotTrans.gif"></td>
+            <td bgcolor="#5A5CB8" align="left" valign="top" width="40"><img border="0" height="6" width="40" src="images/dotTrans.gif"></td>
+            <td bgcolor="#5A5CB8" align="left" valign="top" height="2" width="430"><img border="0" height="6" width="430" src="images/top_2.gif"></td>
+            <td bgcolor="#E24717" align="left" valign="top" height="2" width="120"><img src="images/top_3.gif" width="120" height="6" border="0"></td>
+        </tr>
+        <tr>
+            <td bgcolor="#5A5CB8" align="left" valign="top" bgcolor="#ffffff" width="13"><img border="0" height="15" width="13" src="images/dotTrans.gif"></td>
+            <td align="left" valign="top" width="40"><img border="0" height="1" width="1" src="images/dotTrans.gif"></td>
+            <td align="left" valign="middle" width="430"><a href="http://www.openejb.org"><span class="menuTopOff">OpenEJB</span></a><img border="0" height="2" width="20" src="images/dotTrans.gif"><a href="index.html"><span class="menuTopOff">Index</span></a><img border="0" height="2" width="20" src="images/dotTrans.gif"><a href="viewjndi.jsp"><span class="menuTopOff">JNDI</span></a><img border="0" height="2" width="20" src="images/dotTrans.gif"><a href="viewejb.jsp"><span class="menuTopOff">EJB</span></a><img border="0" height="2" width="20" src="images/dotTrans.gif"><a href="viewclass.jsp"><span class="menuTopOff">Class</span></a><img border="0" height="2" width="20" src="images/dotTrans.gif"><a href="invokeobj.jsp"><span class="menuTopOff">Invoke</span></a><img border="0" height="2" width="20" src="images/dotTrans.gif"></td>
+            <td align="left" valign="top" height="20" width="120"><img border="0" height="2" width="10" src="images/dotTrans.gif"></td>
+        </tr>
+        <tr>
+            <td align="left" valign="top" bgcolor="#a9a5de" width="7"><img border="0" height="3" width="7" src="images/line_sm.gif"></td>
+            <td align="left" valign="top" height="3" width="40"><img border="0" height="3" width="40" src="images/line_light.gif"></td>
+            <td align="left" valign="top" height="3" width="430"><img border="0" height="3" width="430" src="images/line_light.gif"></td>
+            <td align="left" valign="top" height="3" width="120"><img height="1" width="1" border="0" src="images/dotTrans.gif"></td>
+        </tr>
+        <tr>
+            <td align="left" valign="top" bgcolor="#a9a5de" width="7">&nbsp;</td>
+            <td align="left" valign="top" width="40">&nbsp;</td>
+            <td valign="top" width="430" rowspan="4">
+                <table width="430" cellspacing="0" cellpadding="0" border="0" rows="2" cols="1">
+                    <tr>
+                        <td align="left" valign="top"><br>
+                            <img width="200" vspace="0" src="./images/logo_ejb2.gif" hspace="0" height="55" border="0">
+                            <br>
+                            <img src="images/dotTrans.gif" hspace="0" height="7" border="0"><br>
+                            <span class="pageTitle">
+                            OpenEJB JNDI Namespace Browser
+                            </span>
+                            <br>
+                            <img src="images/dotTrans.gif" hspace="0" height="1" border="0"></td>
+                    </tr>
+                </table>
+                <p>
+                </p>
+                <FONT SIZE="2">
+<%
+    try{
+        String selected = request.getParameter("selected");
+        if (selected == null) {
+            selected = "";
+        } 
+
+        ctxID = request.getParameter("ctx");
+        ctx = null;
+        String title = null;
+
+        if (ctxID == null) {
+            Properties p = new Properties();
+            p.put(Context.INITIAL_CONTEXT_FACTORY, "org.openejb.client.LocalInitialContextFactory");
+            p.put("openejb.loader", "embed");
+            ctx = new InitialContext( p );
+            ctxID = null;
+            out.print("<b>OpenEJB Global JNDI Namespace</b><br><br>");
+        } else {
+            ctx = (Context)session.getAttribute(ctxID);
+            if (ctxID.startsWith("enc")) {
+%>
+<b>JNDI Environment Naming Context (ENC)</b>
+<a href="enc-help.html">[Info]</A>
+<br><BR>
+This is the private namespace of an Enterprise JavaBean. 
+<BR><BR>
+<%
+            }
+        }
+
+        Node root = new RootNode();
+        buildNode(root,ctx);
+
+        printNodes(root, out, "",selected);
+    } catch (Exception e){
+        out.println("FAIL");
+        throw e;
+        //return;
+    }
+%>
+</FONT>
+
+            </td>
+            <td align="left" valign="top" height="5" width="120">
+
+
+                &nbsp;</td>
+        </tr>
+    </table>
+    </body>
+</html>
+
+<%!
+
+    String ctxID;
+    Context ctx;
+
+    class Node {
+        static final int CONTEXT = 1;
+        static final int BEAN = 2;
+        static final int OTHER = 3;
+        Node parent;
+        Node[] children = new Node[0];
+        String name;
+        int type = 0;
+
+        public String getID(){
+            if (parent instanceof RootNode) {
+                return name;
+            } else {
+                return parent.getID()+"/"+name;
+            }
+        }
+        public String getName(){
+            return name;
+        }
+        public int getType(){
+            return type;
+        }
+        public void addChild(Node child){
+            int len = children.length;
+            Node[] newChildren = new Node[len+1];
+            System.arraycopy(children,0,newChildren,0,len);
+            newChildren[len] = child;
+            children = newChildren;
+            child.parent = this;
+        }
+    }
+
+    class RootNode extends Node{
+        public String getID() {
+            return "";
+        }
+        public String getName() {
+            return "";
+        }
+        public int getType() {
+            return Node.CONTEXT;
+        }
+    }
+    public void buildNode(Node parent, Context ctx) throws Exception{
+        if (false) throw new NullPointerException();
+        NamingEnumeration enum = ctx.list( "" );
+        while (enum.hasMoreElements()){
+            NameClassPair pair = (NameClassPair)enum.next();
+            Node node = new Node();
+            parent.addChild(node);
+            node.name = pair.getName();
+            
+            Object obj = ctx.lookup(node.getName());
+            if ( obj instanceof Context ){
+                node.type = Node.CONTEXT;
+                buildNode(node,(Context)obj);
+            } else if (obj instanceof java.rmi.Remote) {
+                node.type = Node.BEAN;
+            } else {
+                node.type = Node.OTHER;
+            }
+        }
+    }
+    
+    String openImg = "<img src='images/TreeOpen.gif' border='0'>";
+    String closedImg = "<img src='images/TreeClosed.gif' border='0'>";
+    String ejbImg = "<img src='images/ejb.gif' border='0'>";
+    String javaImg = "<img src='images/JavaCup.gif' border='0'>";
+    
+
+    public void printNodes(Node node, javax.servlet.jsp.JspWriter out, String tabs, String selected) throws Exception {
+        switch (node.getType()) {
+        case Node.CONTEXT: printContextNode(node,out,tabs,selected); break;
+        case Node.BEAN: printBeanNode(node,out,tabs,selected); break;
+        default: printOtherNode(node,out,tabs,selected); break;
+        }
+        
+    }
+
+    public void printContextNode(Node node, javax.servlet.jsp.JspWriter out, String tabs, String selected) throws Exception {
+        String id = node.getID();
+        if ( selected.startsWith(id) ) {
+            if (ctxID != null) {
+                out.print(tabs+"<a href='viewjndi.jsp?ctx="+ctxID+"&selected="+id+"'>"+openImg+"&nbsp;&nbsp;"+node.getName()+"</a><br>");
+            } else {
+                out.print(tabs+"<a href='viewjndi.jsp?selected="+id+"'>"+openImg+"&nbsp;&nbsp;"+node.getName()+"</a><br>");
+            }
+            for (int i=0; i < node.children.length; i++){
+                Node child = node.children[i];
+                printNodes(child,out,tabs+"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;",selected);
+            }
+        } else {
+            if (ctxID != null) {
+                out.print(tabs+"<a href='viewjndi.jsp?ctx="+ctxID+"&selected="+id+"'>"+closedImg+"&nbsp;&nbsp;"+node.getName()+"</a><br>");
+            } else {
+                out.print(tabs+"<a href='viewjndi.jsp?selected="+id+"'>"+closedImg+"&nbsp;&nbsp;"+node.getName()+"</a><br>");
+            }
+        }
+    }
+
+    public void printBeanNode(Node node, javax.servlet.jsp.JspWriter out, String tabs, String selected) throws Exception {
+        String id = node.getID();
+        if (ctxID != null && ctxID.startsWith("enc")) {
+            // HACK!
+            try{
+                Object ejb = ctx.lookup(id);
+                Object handler = org.openejb.util.proxy.ProxyManager.getInvocationHandler(ejb);
+                Object deploymentID = ((org.openejb.core.ivm.BaseEjbProxyHandler)handler).deploymentID;
+                out.print(tabs+"<a href='viewejb.jsp?ejb="+deploymentID+"'>"+ejbImg+"&nbsp;&nbsp;"+node.getName()+"</a><br>");
+            } catch (Exception e){
+                out.print(tabs+ejbImg+"&nbsp;&nbsp;"+node.getName()+"<br>");
+            }
+        } else {
+            out.print(tabs+"<a href='viewejb.jsp?ejb="+id+"'>"+ejbImg+"&nbsp;&nbsp;"+node.getName()+"</a><br>");
+        }
+    }
+    
+    public void printOtherNode(Node node, javax.servlet.jsp.JspWriter out, String tabs, String selected) throws Exception {
+        String id = node.getID();
+        Object obj = ctx.lookup(id);
+        String clazz = obj.getClass().getName();
+        out.print(tabs+"<a href='viewclass.jsp?class="+clazz+"'>"+javaImg+"&nbsp;&nbsp;"+node.getName()+"</a><br>");
+    }
+
+%>
+

Propchange: openejb/trunk/openejb3/server/openejb-webadmin/src/main/webapp/viewjndi.jsp
------------------------------------------------------------------------------
    svn:executable = *

Modified: openejb/trunk/openejb3/server/pom.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/server/pom.xml?view=diff&rev=562334&r1=562333&r2=562334
==============================================================================
--- openejb/trunk/openejb3/server/pom.xml (original)
+++ openejb/trunk/openejb3/server/pom.xml Thu Aug  2 22:21:56 2007
@@ -30,6 +30,7 @@
   <modules>
     <module>openejb-ejbd</module>
     <module>openejb-admin</module>
+    <module>openejb-webadmin</module>
     <module>openejb-server</module>
     <module>openejb-client</module>
     <module>openejb-http</module>