Author: tveronezi
Date: Mon Jun 11 20:49:45 2012
New Revision: 1349003
URL: http://svn.apache.org/viewvc?rev=1349003&view=rev
Log:
https://issues.apache.org/jira/browse/TOMEE-224
* load class/ejb info
* add "pretty json" option
Modified:
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/ErrorServlet.java
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/JsonExecutor.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/DeployServlet.java
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/FileUploadServlet.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/java/org/apache/tomee/webapp/servlet/LogServlet.java
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/LogoutServlet.java
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/SessionDataServlet.java
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/SystemInfoServlet.java
Modified:
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/ErrorServlet.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/ErrorServlet.java?rev=1349003&r1=1349002&r2=1349003&view=diff
==============================================================================
---
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/ErrorServlet.java
(original)
+++
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/ErrorServlet.java
Mon Jun 11 20:49:45 2012
@@ -18,6 +18,7 @@
package org.apache.tomee.webapp;
import com.google.gson.Gson;
+import com.google.gson.GsonBuilder;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
@@ -62,6 +63,13 @@ public class ErrorServlet extends HttpSe
resp.setContentType("text/plain");
resp.setCharacterEncoding("UTF-8");
- resp.getWriter().write(new Gson().toJson(result));
+
+ final Gson gson;
+ if(Boolean.valueOf(req.getParameter("pretty"))) {
+ gson = new GsonBuilder().setPrettyPrinting().create();
+ } else {
+ gson = new Gson();
+ }
+ resp.getWriter().write(gson.toJson(result));
}
}
Modified:
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/JsonExecutor.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/JsonExecutor.java?rev=1349003&r1=1349002&r2=1349003&view=diff
==============================================================================
---
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/JsonExecutor.java
(original)
+++
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/JsonExecutor.java
Mon Jun 11 20:49:45 2012
@@ -18,7 +18,9 @@
package org.apache.tomee.webapp;
import com.google.gson.Gson;
+import com.google.gson.GsonBuilder;
+import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.HashMap;
import java.util.Map;
@@ -33,7 +35,7 @@ public class JsonExecutor {
void call(Map<String, Object> json) throws Exception;
}
- public static void execute(final HttpServletResponse resp, final Executor
executor) {
+ public static void execute(final HttpServletRequest req, final
HttpServletResponse resp, final Executor executor) {
try {
final Map<String, Object> result = new HashMap<String, Object>();
@@ -41,7 +43,14 @@ public class JsonExecutor {
resp.setContentType("application/json");
resp.setCharacterEncoding("UTF-8");
- resp.getWriter().write(new Gson().toJson(result));
+
+ final Gson gson;
+ if(Boolean.valueOf(req.getParameter("pretty"))) {
+ gson = new GsonBuilder().setPrettyPrinting().create();
+ } else {
+ gson = new Gson();
+ }
+ resp.getWriter().write(gson.toJson(result));
} catch (Exception e) {
//this will redirect the result to the ErrorServlet
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=1349003&r1=1349002&r2=1349003&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
Mon Jun 11 20:49:45 2012
@@ -36,7 +36,7 @@ public class ConsoleServlet extends Http
@Override
protected void doPost(final HttpServletRequest req, final
HttpServletResponse resp) throws ServletException, IOException {
- JsonExecutor.execute(resp, new JsonExecutor.Executor() {
+ JsonExecutor.execute(req, resp, new JsonExecutor.Executor() {
@Override
public void call(Map<String, Object> json) throws Exception {
final String scriptCode = req.getParameter("scriptCode");
Modified:
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/DeployServlet.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/DeployServlet.java?rev=1349003&r1=1349002&r2=1349003&view=diff
==============================================================================
---
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/DeployServlet.java
(original)
+++
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/DeployServlet.java
Mon Jun 11 20:49:45 2012
@@ -44,7 +44,7 @@ public class DeployServlet extends HttpS
@Override
protected void doPost(final HttpServletRequest req, final
HttpServletResponse resp) throws ServletException, IOException {
- JsonExecutor.execute(resp, new JsonExecutor.Executor() {
+ JsonExecutor.execute(req, resp, new JsonExecutor.Executor() {
@Override
public void call(Map<String, Object> json) throws Exception {
final AppInfo info = deployer.deploy(req.getParameter("path"));
Modified:
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/FileUploadServlet.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/FileUploadServlet.java?rev=1349003&r1=1349002&r2=1349003&view=diff
==============================================================================
---
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/FileUploadServlet.java
(original)
+++
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/FileUploadServlet.java
Mon Jun 11 20:49:45 2012
@@ -33,7 +33,7 @@ public class FileUploadServlet extends H
@Override
protected void doPost(final HttpServletRequest req, final
HttpServletResponse resp) throws ServletException, IOException {
- JsonExecutor.execute(resp, new JsonExecutor.Executor() {
+ JsonExecutor.execute(req, resp, new JsonExecutor.Executor() {
@Override
public void call(Map<String, Object> json) throws Exception {
final File tempDir = (File)
getServletContext().getAttribute("javax.servlet.context.tempdir");
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=1349003&r1=1349002&r2=1349003&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
Mon Jun 11 20:49:45 2012
@@ -17,7 +17,12 @@
package org.apache.tomee.webapp.servlet;
+import org.apache.openejb.BeanContext;
+import org.apache.openejb.core.ivm.BaseEjbProxyHandler;
+import org.apache.openejb.loader.SystemInstance;
+import org.apache.openejb.spi.ContainerSystem;
import org.apache.openejb.util.proxy.LocalBeanProxyGeneratorImpl;
+import org.apache.openejb.util.proxy.ProxyManager;
import org.apache.tomee.webapp.JsonExecutor;
import javax.naming.*;
@@ -26,6 +31,7 @@ import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
+import java.lang.reflect.Method;
import java.util.*;
public class JndiServlet extends HttpServlet {
@@ -71,14 +77,81 @@ public class JndiServlet extends HttpSer
}
}
+ private void buildNames(Context ctx, Map<String, Object> json) throws
NamingException {
+ final List<Map<String, Object>> objs = new ArrayList<Map<String,
Object>>();
+ json.put("names", objs);
+
+ final NamingEnumeration<NameClassPair> namingEnumeration =
ctx.list("");
+ if (namingEnumeration != null) {
+ while (namingEnumeration.hasMoreElements()) {
+ objs.add(buildNode(namingEnumeration.next(), ctx));
+ }
+ }
+ }
+
+ private void buildClass(Context ctx, String name, Map<String, Object>
json) throws NamingException {
+ final Map<String, Object> values = new HashMap<String, Object>();
+ json.put("cls", values);
+
+ final Object obj = ctx.lookup(name);
+
+ final List<String> interfaces = new ArrayList<String>();
+ values.put("interfaces", interfaces);
+
+ Class<?> cls;
+ {
+ try {
+ final BaseEjbProxyHandler handler = (BaseEjbProxyHandler)
ProxyManager.getInvocationHandler(obj);
+ final ContainerSystem containerSystem =
SystemInstance.get().getComponent(ContainerSystem.class);
+ final BeanContext ejb =
containerSystem.getBeanContext(handler.deploymentID);
+
+ values.put("componentType", ejb.getComponentType().name());
+
+ cls = ejb.getBeanClass();
+
+ } catch (Exception e) {
+ cls = obj.getClass();
+
+ }
+
+ values.put("beanClass", cls.getCanonicalName());
+ for (Class<?> myInterface : cls.getInterfaces()) {
+ interfaces.add(myInterface.getCanonicalName());
+ }
+ }
+
+ {
+ final List<Map<String, Object>> methods = new
ArrayList<Map<String, Object>>();
+ values.put("methods", methods);
+
+ for (Method method : cls.getDeclaredMethods()) {
+ final Map<String, Object> methodMap = new HashMap<String,
Object>();
+ methods.add(methodMap);
+
+ final Class<?> returnType = method.getReturnType();
+ if (returnType != null) {
+ methodMap.put("returns", returnType.getCanonicalName());
+ }
+ methodMap.put("name", method.getName());
+
+ final List<String> parameterTypes = new ArrayList<String>();
+ methodMap.put("parameters", parameterTypes);
+
+ for (Class<?> parameter : method.getParameterTypes()) {
+ parameterTypes.add(parameter.getCanonicalName());
+
+ }
+ }
+ }
+ }
+
@Override
protected void doGet(final HttpServletRequest req, final
HttpServletResponse resp) throws ServletException, IOException {
- JsonExecutor.execute(resp, new JsonExecutor.Executor() {
+ JsonExecutor.execute(req, 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("names", objs);
+
final Properties p = new Properties();
p.put(Context.INITIAL_CONTEXT_FACTORY,
"org.apache.openejb.core.LocalInitialContextFactory");
@@ -95,11 +168,12 @@ public class JndiServlet extends HttpSer
ctx = getContext(initCtx, path);
}
- final NamingEnumeration<NameClassPair> namingEnumeration =
ctx.list("");
- if (namingEnumeration != null) {
- while (namingEnumeration.hasMoreElements()) {
- objs.add(buildNode(namingEnumeration.next(), ctx));
- }
+ final String name = req.getParameter("name");
+ if (name == null) {
+ buildNames(ctx, json);
+
+ } else {
+ buildClass(ctx, name, json);
}
}
});
Modified:
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/LogServlet.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/LogServlet.java?rev=1349003&r1=1349002&r2=1349003&view=diff
==============================================================================
---
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/LogServlet.java
(original)
+++
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/LogServlet.java
Mon Jun 11 20:49:45 2012
@@ -35,7 +35,7 @@ public class LogServlet extends HttpServ
@Override
protected void doGet(final HttpServletRequest req, final
HttpServletResponse resp) throws ServletException, IOException {
- JsonExecutor.execute(resp, new JsonExecutor.Executor() {
+ JsonExecutor.execute(req, resp, new JsonExecutor.Executor() {
@Override
public void call(Map<String, Object> json) throws Exception {
Modified:
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/LogoutServlet.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/LogoutServlet.java?rev=1349003&r1=1349002&r2=1349003&view=diff
==============================================================================
---
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/LogoutServlet.java
(original)
+++
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/LogoutServlet.java
Mon Jun 11 20:49:45 2012
@@ -32,7 +32,7 @@ public class LogoutServlet extends HttpS
@Override
protected void doGet(final HttpServletRequest req, final
HttpServletResponse resp) throws ServletException, IOException {
- JsonExecutor.execute(resp, new JsonExecutor.Executor() {
+ JsonExecutor.execute(req, resp, new JsonExecutor.Executor() {
@Override
public void call(Map<String, Object> json) {
final HttpSession session = req.getSession(false);
Modified:
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/SessionDataServlet.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/SessionDataServlet.java?rev=1349003&r1=1349002&r2=1349003&view=diff
==============================================================================
---
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/SessionDataServlet.java
(original)
+++
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/SessionDataServlet.java
Mon Jun 11 20:49:45 2012
@@ -31,7 +31,7 @@ public class SessionDataServlet extends
@Override
protected void doGet(final HttpServletRequest req, final
HttpServletResponse resp) throws ServletException, IOException {
- JsonExecutor.execute(resp, new JsonExecutor.Executor() {
+ JsonExecutor.execute(req, resp, new JsonExecutor.Executor() {
@Override
public void call(Map<String, Object> json) throws Exception {
Modified:
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/SystemInfoServlet.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/SystemInfoServlet.java?rev=1349003&r1=1349002&r2=1349003&view=diff
==============================================================================
---
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/SystemInfoServlet.java
(original)
+++
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/SystemInfoServlet.java
Mon Jun 11 20:49:45 2012
@@ -39,7 +39,7 @@ public class SystemInfoServlet extends H
@Override
protected void doGet(final HttpServletRequest req, final
HttpServletResponse resp) throws ServletException, IOException {
- JsonExecutor.execute(resp, new JsonExecutor.Executor() {
+ JsonExecutor.execute(req, resp, new JsonExecutor.Executor() {
@Override
public void call(Map<String, Object> json) throws Exception {