Author: tveronezi
Date: Sat Jun  9 16:07:38 2012
New Revision: 1348442

URL: http://svn.apache.org/viewvc?rev=1348442&view=rev
Log:
https://issues.apache.org/jira/browse/TOMEE-224
* loading first jndi level


Modified:
    
openejb/trunk/openejb/tomee/tomee-plus-webapp/src/main/webapp/WEB-INF/web.xml
    
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/JndiServlet.java
    openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/WEB-INF/web.xml

Modified: 
openejb/trunk/openejb/tomee/tomee-plus-webapp/src/main/webapp/WEB-INF/web.xml
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-plus-webapp/src/main/webapp/WEB-INF/web.xml?rev=1348442&r1=1348441&r2=1348442&view=diff
==============================================================================
--- 
openejb/trunk/openejb/tomee/tomee-plus-webapp/src/main/webapp/WEB-INF/web.xml 
(original)
+++ 
openejb/trunk/openejb/tomee/tomee-plus-webapp/src/main/webapp/WEB-INF/web.xml 
Sat Jun  9 16:07:38 2012
@@ -22,7 +22,7 @@
          version="3.0" metadata-complete="true">
 
     <display-name>Tomee Application</display-name>
-    
+
     <welcome-file-list>
         <welcome-file>index.jsp</welcome-file>
     </welcome-file-list>
@@ -77,6 +77,18 @@
     <!-- 
**************************************************************************************
 -->
 
     <servlet>
+        <servlet-name>JndiServlet</servlet-name>
+        
<servlet-class>org.apache.tomee.webapp.servlet.JndiServlet</servlet-class>
+    </servlet>
+
+    <servlet-mapping>
+        <servlet-name>JndiServlet</servlet-name>
+        <url-pattern>/jndi/*</url-pattern>
+    </servlet-mapping>
+
+    <!-- 
**************************************************************************************
 -->
+
+    <servlet>
         <servlet-name>LogServlet</servlet-name>
         
<servlet-class>org.apache.tomee.webapp.servlet.LogServlet</servlet-class>
     </servlet>

Modified: 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/JndiServlet.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/JndiServlet.java?rev=1348442&r1=1348441&r2=1348442&view=diff
==============================================================================
--- 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/JndiServlet.java
 (original)
+++ 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/JndiServlet.java
 Sat Jun  9 16:07:38 2012
@@ -17,24 +17,63 @@
 
 package org.apache.tomee.webapp.servlet;
 
+import org.apache.openejb.util.proxy.LocalBeanProxyGeneratorImpl;
 import org.apache.tomee.webapp.JsonExecutor;
 
+import javax.naming.*;
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServlet;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
-import java.util.Map;
+import java.util.*;
 
 public class JndiServlet extends HttpServlet {
 
+    private Map<String, Object> buildNode(NameClassPair pair, Context ctx) 
throws NamingException {
+        final String name = pair.getName();
+        final Object obj = ctx.lookup(name);
+
+        final String beanType;
+        if (obj instanceof Context) {
+            beanType = "CONTEXT";
+
+        } else if (obj instanceof java.rmi.Remote
+                || obj instanceof org.apache.openejb.core.ivm.IntraVmProxy
+                || (obj != null && 
LocalBeanProxyGeneratorImpl.isLocalBean(obj.getClass()))) {
+            beanType = "BEAN";
+        } else {
+            beanType = "OTHER";
+        }
+
+        final Map<String, Object> node = new HashMap<String, Object>();
+        node.put("name", name);
+        node.put("type", beanType);
+        if ("CONTEXT".equals(beanType)) {
+            node.put("children", Collections.emptyList());
+        }
+        return node;
+    }
+
     @Override
     protected void doGet(final HttpServletRequest req, final 
HttpServletResponse resp) throws ServletException, IOException {
         JsonExecutor.execute(resp, new JsonExecutor.Executor() {
 
             @Override
             public void call(Map<String, Object> json) throws Exception {
+                final List<Map<String, Object>> objs = new 
ArrayList<Map<String, Object>>();
+                json.put("objs", objs);
 
+                final Properties p = new Properties();
+                p.put(Context.INITIAL_CONTEXT_FACTORY, 
"org.apache.openejb.core.LocalInitialContextFactory");
+                p.put("openejb.loader", "embed");
+
+                final Context ctx = new InitialContext(p);
+                final NamingEnumeration<NameClassPair> namingEnumeration = 
ctx.list("");
+
+                while (namingEnumeration.hasMoreElements()) {
+                    objs.add(buildNode(namingEnumeration.next(), ctx));
+                }
             }
         });
 

Modified: 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/WEB-INF/web.xml
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/WEB-INF/web.xml?rev=1348442&r1=1348441&r2=1348442&view=diff
==============================================================================
--- openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/WEB-INF/web.xml 
(original)
+++ openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/WEB-INF/web.xml 
Sat Jun  9 16:07:38 2012
@@ -22,7 +22,7 @@
          version="3.0" metadata-complete="true">
 
     <display-name>Tomee Application</display-name>
-    
+
     <welcome-file-list>
         <welcome-file>index.jsp</welcome-file>
     </welcome-file-list>
@@ -77,6 +77,18 @@
     <!-- 
**************************************************************************************
 -->
 
     <servlet>
+        <servlet-name>JndiServlet</servlet-name>
+        
<servlet-class>org.apache.tomee.webapp.servlet.JndiServlet</servlet-class>
+    </servlet>
+
+    <servlet-mapping>
+        <servlet-name>JndiServlet</servlet-name>
+        <url-pattern>/jndi/*</url-pattern>
+    </servlet-mapping>
+
+    <!-- 
**************************************************************************************
 -->
+
+    <servlet>
         <servlet-name>LogServlet</servlet-name>
         
<servlet-class>org.apache.tomee.webapp.servlet.LogServlet</servlet-class>
     </servlet>


Reply via email to