Author: tveronezi
Date: Tue Jun 12 22:11:31 2012
New Revision: 1349563

URL: http://svn.apache.org/viewvc?rev=1349563&view=rev
Log:
https://issues.apache.org/jira/browse/TOMEE-224
* lookup the bean and save it as a "saved object".

Modified:
    
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/SessionData.java
    
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/ConsoleServlet.java
    
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/application/js/ApplicationController.js
    
openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/application/js/ApplicationModel.js
    
openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/application/js/view/ApplicationViewHome.js
    
openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/application/js/view/panels/Jndi.js
    
openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/application/js/view/panels/JndiClass.js

Modified: 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/SessionData.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/SessionData.java?rev=1349563&r1=1349562&r2=1349563&view=diff
==============================================================================
--- 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/SessionData.java
 (original)
+++ 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/SessionData.java
 Tue Jun 12 22:11:31 2012
@@ -17,15 +17,39 @@
 
 package org.apache.tomee.webapp;
 
+import javax.naming.Context;
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.Properties;
 
 public class SessionData {
 
     private final Map<String, Object> saved = Collections.synchronizedMap(new 
HashMap<String, Object>());
+    private final Context initCtx;
+
+    public SessionData() {
+        final Properties p = new Properties();
+        p.put(Context.INITIAL_CONTEXT_FACTORY, 
"org.apache.openejb.core.LocalInitialContextFactory");
+        p.put("openejb.loader", "embed");
+
+        final Context initCtx;
+        try {
+            initCtx = new InitialContext(p);
+        } catch (NamingException e) {
+            throw new TomeeException(e);
+        }
+        this.initCtx = initCtx;
+    }
 
     public Map<String, Object> getSaved() {
-        return saved;
+        return this.saved;
+    }
+
+    public Context getUserContext() {
+        return this.initCtx;
+
     }
 }

Modified: 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/ConsoleServlet.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/ConsoleServlet.java?rev=1349563&r1=1349562&r2=1349563&view=diff
==============================================================================
--- 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/ConsoleServlet.java
 (original)
+++ 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/ConsoleServlet.java
 Tue Jun 12 22:11:31 2012
@@ -65,6 +65,11 @@ public class ConsoleServlet extends Http
                     public void save(String key, Object obj) {
                         
UserSessionListener.getServiceContext(req.getSession()).getSaved().put(key, 
obj);
                     }
+
+                    @Override
+                    public Object get(String key) {
+                        return 
UserSessionListener.getServiceContext(req.getSession()).getSaved().get(key);
+                    }
                 });
 
                 SCRIPTER.evaluate(engineName, scriptCode, bindings);
@@ -76,5 +81,7 @@ public class ConsoleServlet extends Http
         void write(Object obj) throws Exception;
 
         void save(String key, Object obj);
+
+        Object get(String key);
     }
 }

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=1349563&r1=1349562&r2=1349563&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
 Tue Jun 12 22:11:31 2012
@@ -24,8 +24,12 @@ import org.apache.openejb.spi.ContainerS
 import org.apache.openejb.util.proxy.LocalBeanProxyGeneratorImpl;
 import org.apache.openejb.util.proxy.ProxyManager;
 import org.apache.tomee.webapp.JsonExecutor;
+import org.apache.tomee.webapp.listener.UserSessionListener;
 
-import javax.naming.*;
+import javax.naming.Context;
+import javax.naming.NameClassPair;
+import javax.naming.NamingEnumeration;
+import javax.naming.NamingException;
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServlet;
 import javax.servlet.http.HttpServletRequest;
@@ -181,12 +185,7 @@ public class JndiServlet extends HttpSer
 
             @Override
             public void call(Map<String, Object> json) throws Exception {
-
-
-                final Properties p = new Properties();
-                p.put(Context.INITIAL_CONTEXT_FACTORY, 
"org.apache.openejb.core.LocalInitialContextFactory");
-                p.put("openejb.loader", "embed");
-                final Context initCtx = new InitialContext(p);
+                final Context initCtx = 
UserSessionListener.getServiceContext(req.getSession()).getUserContext();
 
                 final Context ctx;
                 final String strPath = req.getParameter("path");
@@ -207,6 +206,32 @@ public class JndiServlet extends HttpSer
                 }
             }
         });
+    }
+
+    @Override
+    protected void doPost(final HttpServletRequest req, final 
HttpServletResponse resp) throws ServletException, IOException {
+        JsonExecutor.execute(req, resp, new JsonExecutor.Executor() {
 
+            @Override
+            public void call(Map<String, Object> json) throws Exception {
+                final Context initCtx = 
UserSessionListener.getServiceContext(req.getSession()).getUserContext();
+
+                final Context ctx;
+                final String strPath = req.getParameter("path");
+                if (strPath == null || "".equals(strPath.trim())) {
+                    ctx = initCtx;
+                } else {
+                    final List<String> path = new ArrayList<String>();
+                    
path.addAll(Arrays.asList(req.getParameter("path").split(",")));
+                    ctx = getContext(initCtx, path);
+                }
+
+                final String name = req.getParameter("name");
+                final Object obj = ctx.lookup(name);
+
+                
UserSessionListener.getServiceContext(req.getSession()).getSaved().put(req.getParameter("saveKey"),
 obj);
+                json.put("success", Boolean.TRUE);
+            }
+        });
     }
 }

Modified: 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/application/js/ApplicationController.js
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/application/js/ApplicationController.js?rev=1349563&r1=1349562&r2=1349563&view=diff
==============================================================================
--- 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/application/js/ApplicationController.js
 (original)
+++ 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/application/js/ApplicationController.js
 Tue Jun 12 22:11:31 2012
@@ -109,6 +109,7 @@ TOMEE.ApplicationController = function (
         });
 
         channel.bind('app.new.jndi.class.data', function (params) {
+            //params.cls, params.name, params.path
             homeView.showJndiClassWin(params);
         });
 
@@ -123,10 +124,19 @@ TOMEE.ApplicationController = function (
             var data = params.data;
             model.loadJndiClass({
                 name:data.name,
+                parent: data.parent,
                 path:pathArrayBuilder.build(data.parent)
             });
         });
 
+        channel.bind('lookup.and.save.object', function (params) {
+            model.lookupJndi({
+                name:params.showParams.name,
+                path:pathArrayBuilder.build(params.showParams.parent),
+                saveKey:params.saveKey
+            });
+        });
+
     })();
 
 

Modified: 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/application/js/ApplicationModel.js
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/application/js/ApplicationModel.js?rev=1349563&r1=1349562&r2=1349563&view=diff
==============================================================================
--- 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/application/js/ApplicationModel.js
 (original)
+++ 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/application/js/ApplicationModel.js
 Tue Jun 12 22:11:31 2012
@@ -171,7 +171,29 @@ TOMEE.ApplicationModel = function (cfg) 
                 },
                 success:function (data) {
                     channel.send('app.new.jndi.class.data', {
-                        cls: data.cls
+                        cls:data.cls,
+                        name:params.name,
+                        parent:params.parent,
+                        path:params.path
+                    });
+                }
+            });
+        },
+        lookupJndi:function (params) {
+            //params.path, params.bean, params.parentEl
+            request({
+                method:'POST',
+                url:TOMEE.baseURL('jndi'),
+                data:{
+                    name:params.name,
+                    path:TOMEE.utils.getSafe(params.path, []).join(','),
+                    saveKey:params.saveKey
+                },
+                success:function (data) {
+                    channel.send('app.new.jndi.bean', {
+                        name:params.name,
+                        path:params.path,
+                        saveKey:params.saveKey
                     });
                 }
             });

Modified: 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/application/js/view/ApplicationViewHome.js
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/application/js/view/ApplicationViewHome.js?rev=1349563&r1=1349562&r2=1349563&view=diff
==============================================================================
--- 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/application/js/view/ApplicationViewHome.js
 (original)
+++ 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/application/js/view/ApplicationViewHome.js
 Tue Jun 12 22:11:31 2012
@@ -129,6 +129,7 @@ TOMEE.ApplicationViewHome = function (cf
             jndiPanel.jndiContextMenu(opts);
         },
         showJndiClassWin:function (opts) {
+            //opts.cls, opts.name, opts.path
             jndiPanel.showClassPanel(opts);
         }
     };

Modified: 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/application/js/view/panels/Jndi.js
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/application/js/view/panels/Jndi.js?rev=1349563&r1=1349562&r2=1349563&view=diff
==============================================================================
--- 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/application/js/view/panels/Jndi.js
 (original)
+++ 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/application/js/view/panels/Jndi.js
 Tue Jun 12 22:11:31 2012
@@ -70,9 +70,7 @@ TOMEE.Jndi = function (cfg) {
             TOMEE.JndiClass({
                 parent:parentEl,
                 channel:channel
-            }).show({
-                    data:opts
-                });
+            }).show(opts);
         }
     };
 };
\ No newline at end of file

Modified: 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/application/js/view/panels/JndiClass.js
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/application/js/view/panels/JndiClass.js?rev=1349563&r1=1349562&r2=1349563&view=diff
==============================================================================
--- 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/application/js/view/panels/JndiClass.js
 (original)
+++ 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/application/js/view/panels/JndiClass.js
 Tue Jun 12 22:11:31 2012
@@ -21,6 +21,8 @@ TOMEE.JndiClass = function (cfg) {
 
     var channel = cfg.channel;
 
+    var showParams = null;
+
     var panel = TOMEE.components.Panel({
         title:TOMEE.I18N.get('application.jdni.class'),
         parent:cfg.parent,
@@ -30,6 +32,7 @@ TOMEE.JndiClass = function (cfg) {
         },
         bbar:[
             {
+                elName:'savedObjectName',
                 tag:'input',
                 attributes:{
                     'type':'text',
@@ -44,6 +47,15 @@ TOMEE.JndiClass = function (cfg) {
                 attributes:{
                     'type':'text',
                     style:'margin-right: 2px;'
+                },
+                listeners:{
+                    'click':function () {
+                        channel.send('lookup.and.save.object', {
+                            saveKey: panel.getElement('savedObjectName').val(),
+                            showParams: showParams
+                        });
+                        panel.close(true);
+                    }
                 }
             },
             {
@@ -118,7 +130,9 @@ TOMEE.JndiClass = function (cfg) {
         show:function (params) {
             elements.content.empty();
 
-            var cls = params.data.cls;
+            //params.cls, params.name, params.path
+            showParams = params;
+            var cls = params.cls;
 
             var div = TOMEE.el.getElMap({
                 elName:'main',
@@ -131,11 +145,19 @@ TOMEE.JndiClass = function (cfg) {
                     }
                 ]
             });
+
+            div.fieldset.append(getField(cls, function (bean) {
+                return 'beanClass';
+            }, function (bean) {
+                return bean['beanClass'];
+            }));
+
             div.fieldset.append(getField(cls, function (bean) {
                 return 'type';
             }, function (bean) {
                 return bean['type'];
             }));
+
             div.fieldset.append(getField(cls, function (bean) {
                 return 'componentType';
             }, function (bean) {


Reply via email to