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) {