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"> </td>
+ <td align="left" valign="top" width="40"> </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> Public
+<font color='red'>*</font> Private
+<font color='blue'>*</font> Protected
+<font color='yellow'>*</font> Default
+<BR>
+<%}%>
+<BR>
+</FONT>
+
+ </td>
+ <td align="left" valign="top" height="5" width="120">
+
+
+ </td>
+ </tr>
+ </table>
+ </body>
+</html>
+
+<%!
+ String tab = " ";
+ 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(" <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(" <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())+" ");
+
+ out.print(""+m.getName()+" ");
+ 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(", ");
+ }
+ }
+ out.print("<font color='gray'>)</font>");
+
+ Class[] excp = m.getExceptionTypes();
+ if (excp.length > 0) {
+ out.print(" <font color='gray'>throws</font> ");
+ for (int j=0; j < excp.length; j++){
+ out.print(getShortClassRef(excp[j]));
+ if (j != excp.length-1) {
+ out.print(", ");
+ }
+ }
+ }
+ 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"> </td>
+ <td align="left" valign="top" width="40"> </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">
+
+
+ </td>
+ </tr>
+ </table>
+ </body>
+</html>
+
+<%!
+ String tab = " ";
+
+ 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"> </td>
+ <td align="left" valign="top" width="40"> </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">
+
+
+ </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+" "+node.getName()+"</a><br>");
+ } else {
+ out.print(tabs+"<a href='viewjndi.jsp?selected="+id+"'>"+openImg+" "+node.getName()+"</a><br>");
+ }
+ for (int i=0; i < node.children.length; i++){
+ Node child = node.children[i];
+ printNodes(child,out,tabs+" ",selected);
+ }
+ } else {
+ if (ctxID != null) {
+ out.print(tabs+"<a href='viewjndi.jsp?ctx="+ctxID+"&selected="+id+"'>"+closedImg+" "+node.getName()+"</a><br>");
+ } else {
+ out.print(tabs+"<a href='viewjndi.jsp?selected="+id+"'>"+closedImg+" "+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+" "+node.getName()+"</a><br>");
+ } catch (Exception e){
+ out.print(tabs+ejbImg+" "+node.getName()+"<br>");
+ }
+ } else {
+ out.print(tabs+"<a href='viewejb.jsp?ejb="+id+"'>"+ejbImg+" "+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+" "+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>