You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by tv...@apache.org on 2012/02/21 00:08:15 UTC

svn commit: r1291513 - in /openejb/trunk/openejb/tomee: tomee-loader/src/main/java/org/apache/tomee/loader/dto/ tomee-loader/src/main/java/org/apache/tomee/loader/servlet/ tomee-webapp/src/main/webapp/staging/js/tomee/ tomee-webapp/src/main/webapp/stag...

Author: tveronezi
Date: Mon Feb 20 23:08:14 2012
New Revision: 1291513

URL: http://svn.apache.org/viewvc?rev=1291513&view=rev
Log:
https://issues.apache.org/jira/browse/TOMEE-130

viewejb.jsp and viewjndi.jsp are done.

Modified:
    openejb/trunk/openejb/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/dto/JndiDTO.java
    openejb/trunk/openejb/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/servlet/JndiServlet.java
    openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/staging/js/tomee/ApplicationI18N.js
    openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/staging/js/tomee/view/ApplicationJndiPanel.js

Modified: openejb/trunk/openejb/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/dto/JndiDTO.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/dto/JndiDTO.java?rev=1291513&r1=1291512&r2=1291513&view=diff
==============================================================================
--- openejb/trunk/openejb/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/dto/JndiDTO.java (original)
+++ openejb/trunk/openejb/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/dto/JndiDTO.java Mon Feb 20 23:08:14 2012
@@ -16,10 +16,20 @@
  */
 package org.apache.tomee.loader.dto;
 
+import java.util.List;
+
 public class JndiDTO {
     public String deploymentId;
     public String path;
     public String name;
     public String value;
     public String beanType;
+    
+    public String remoteInterface;
+    public String homeInterface;
+    public String beanCls;
+    public List<String> businessLocal;
+    public List<String> businessRemote;
+
+    public String primaryKeyCls;
 }

Modified: openejb/trunk/openejb/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/servlet/JndiServlet.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/servlet/JndiServlet.java?rev=1291513&r1=1291512&r2=1291513&view=diff
==============================================================================
--- openejb/trunk/openejb/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/servlet/JndiServlet.java (original)
+++ openejb/trunk/openejb/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/servlet/JndiServlet.java Mon Feb 20 23:08:14 2012
@@ -26,7 +26,6 @@ import org.apache.openejb.util.proxy.Pro
 import org.apache.tomee.loader.dto.JndiDTO;
 
 import javax.naming.Context;
-import javax.naming.InitialContext;
 import javax.naming.NameClassPair;
 import javax.naming.NamingEnumeration;
 import javax.naming.NamingException;
@@ -40,7 +39,6 @@ import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-import java.util.Properties;
 
 @WebServlet(name = "jndi", urlPatterns = "/ws/jndi", asyncSupported = false)
 public class JndiServlet extends HttpServlet {
@@ -94,17 +92,38 @@ public class JndiServlet extends HttpSer
 
                 dto.path = key;
                 dto.name = pair.getName();
-                dto.value = String.valueOf(obj);
+                dto.value = getStr(obj);
                 dto.deploymentId = getDeploymentId(obj);
 
                 final BeanContext beanContext = getDeployment(dto.deploymentId);
-                dto.beanType = String.valueOf(beanContext.getComponentType());
-                
+                dto.beanType = getStr(beanContext.getComponentType());
+
+                dto.remoteInterface = getStr(beanContext.getRemoteInterface());
+                dto.homeInterface = getStr(beanContext.getHomeInterface());
+                dto.beanCls = getStr(beanContext.getBeanClass());
+
+                dto.businessLocal = new ArrayList<String>();
+                populateClassList(dto.businessLocal, beanContext.getBusinessLocalInterfaces());
+
+                dto.businessRemote = new ArrayList<String>();
+                populateClassList(dto.businessRemote, beanContext.getBusinessRemoteInterfaces());
+
+                dto.primaryKeyCls = getStr(beanContext.getPrimaryKeyClass());
+
                 jndi.add(dto);
             }
         }
     }
 
+    private void populateClassList(List<String> list, List<Class> classes) {
+        if (classes == null) {
+            return;
+        }
+        for (Class<?> cls : classes) {
+            list.add(getStr(cls));
+        }
+    }
+
     private BeanContext getDeployment(String deploymentID) {
         ContainerSystem containerSystem = SystemInstance.get().getComponent(ContainerSystem.class);
         BeanContext ejb = containerSystem.getBeanContext(deploymentID);
@@ -113,7 +132,14 @@ public class JndiServlet extends HttpSer
 
     private String getDeploymentId(Object ejbObj) throws NamingException {
         final BaseEjbProxyHandler handler = (BaseEjbProxyHandler) ProxyManager.getInvocationHandler(ejbObj);
-        return String.valueOf(handler.deploymentID);
+        return getStr(handler.deploymentID);
+    }
+
 
+    private String getStr(Object value) {
+        if(value == null) {
+            return null;
+        }
+        return String.valueOf(value);
     }
 }

Modified: openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/staging/js/tomee/ApplicationI18N.js
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/staging/js/tomee/ApplicationI18N.js?rev=1291513&r1=1291512&r2=1291513&view=diff
==============================================================================
--- openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/staging/js/tomee/ApplicationI18N.js (original)
+++ openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/staging/js/tomee/ApplicationI18N.js Mon Feb 20 23:08:14 2012
@@ -51,6 +51,10 @@ TOMEE.ApplicationI18N = (function () {
         'app.home.menu.tools.jndi.browser.bean': 'Bean',
         'app.home.menu.tools.jndi.browser.bean.details': 'See your bean details',
 
+        'app.home.menu.tools.jndi.browser.back': 'Back',
+        'app.home.menu.tools.jndi.browser.invoke': 'Invoke',
+        'app.home.menu.tools.jndi.browser.class': 'View class',
+
         'dummy': 'dummy'
     };
 

Modified: openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/staging/js/tomee/view/ApplicationJndiPanel.js
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/staging/js/tomee/view/ApplicationJndiPanel.js?rev=1291513&r1=1291512&r2=1291513&view=diff
==============================================================================
--- openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/staging/js/tomee/view/ApplicationJndiPanel.js (original)
+++ openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/staging/js/tomee/view/ApplicationJndiPanel.js Mon Feb 20 23:08:14 2012
@@ -27,6 +27,8 @@ TOMEE.ApplicationJndiPanel = function (c
         var tbodyUid = TOMEE.Sequence.next();
         var tpl = [
             '<div class="well">',
+            '<div class="row-fluid">',
+            '<div class="span12">',
 
             '<div class="carousel slide">',
             '    <div id="' + carouselUid + '" class="carousel-inner">',
@@ -45,6 +47,9 @@ TOMEE.ApplicationJndiPanel = function (c
             '        </div>',
             '    </div>',
             '</div>',
+
+            '</div>',
+            '</div>',
             '</div>'
         ];
 
@@ -92,20 +97,116 @@ TOMEE.ApplicationJndiPanel = function (c
     };
 
     var showBeanPanel = function (bean) {
+        var fieldTpl = [
+            '    <div class="control-group">',
+            '        <label class="control-label" for="{2}">{0}</label>',
+            '         <div class="controls">',
+            '            <input class="input-xlarge" id="{2}" type="text" placeholder="{1}" style="width:80%;">',
+            '        </div>',
+            '    </div>'
+        ].join('');
+
+        var listFieldTpl = [
+            '    <div class="control-group">',
+            '        <label class="control-label" for="{2}">{0}</label>',
+            '         <div class="controls">',
+            '            <select multiple="multiple" id="{2}" style="width:80%;">',
+            '            {1}',
+            '            </select>',
+            '        </div>',
+            '    </div>'
+        ].join('');
+
+        var mountOptions = function(beanArray) {
+            var myArray = [];
+            $.each(TOMEE.utils.getArray(beanArray), function(index, value) {
+                myArray.push('<option>');
+                myArray.push(value);
+                myArray.push('</option>');
+            });
+            return myArray.join('');
+        };
+
+        var getSafeValue = function(value) {
+            if(value) {
+                return value;
+            }
+            return '';
+        };
+
+        var fields = [
+            TOMEE.utils.stringFormat(fieldTpl,
+                "deploymentId",
+                getSafeValue(bean['deploymentId']),
+                TOMEE.Sequence.next('FIELD')
+            ),
+            TOMEE.utils.stringFormat(fieldTpl,
+                "path",
+                getSafeValue(bean['path']),
+                TOMEE.Sequence.next('FIELD')
+            ),
+            TOMEE.utils.stringFormat(fieldTpl,
+                "name",
+                getSafeValue(bean['name']),
+                TOMEE.Sequence.next('FIELD')
+            ),
+            TOMEE.utils.stringFormat(fieldTpl,
+                "value",
+                getSafeValue(bean['value']),
+                TOMEE.Sequence.next('FIELD')
+            ),
+            TOMEE.utils.stringFormat(fieldTpl,
+                "beanType",
+                getSafeValue(bean['beanType']),
+                TOMEE.Sequence.next('FIELD')
+            ),
+            TOMEE.utils.stringFormat(fieldTpl,
+                "remoteInterface",
+                getSafeValue(bean['remoteInterface']),
+                TOMEE.Sequence.next('FIELD')
+            ),
+            TOMEE.utils.stringFormat(fieldTpl,
+                "homeInterface",
+                getSafeValue(bean['homeInterface']),
+                TOMEE.Sequence.next('FIELD')
+            ),
+            TOMEE.utils.stringFormat(fieldTpl,
+                "beanCls",
+                getSafeValue(bean['beanCls']),
+                TOMEE.Sequence.next('FIELD')
+            ),
+            TOMEE.utils.stringFormat(fieldTpl,
+                "primaryKeyCls",
+                getSafeValue(bean['primaryKeyCls']),
+                TOMEE.Sequence.next('FIELD')
+            ),
+
+            TOMEE.utils.stringFormat(listFieldTpl,
+                "businessLocal",
+                mountOptions(bean['businessLocal']),
+                TOMEE.Sequence.next('FIELD')
+            ),
+            TOMEE.utils.stringFormat(listFieldTpl,
+                "businessRemote",
+                mountOptions(bean['businessRemote']),
+                TOMEE.Sequence.next('FIELD')
+            )
+        ].join('');
+
         var bodyTpl = [
-            '<p>deploymentId: ' + bean.deploymentId + '</p>',
-            '<p>path: ' + bean['path'] + '</p>',
-            '<p>name: ' + bean['name'] + '</p>',
-            '<p>value: ' + bean['value'] + '</p>',
-            '<p>beanType: ' + bean['beanType'] + '</p>'
+            '<form class="form-horizontal">',
+            '<fieldset>',
+            fields,
+            '</fieldset>',
+            '</form>'
         ].join('');
 
         var backUid = TOMEE.Sequence.next('CAROUSEL-BACK');
         var captionTpl = [
             '<div class="btn-group">',
-            '<a class="btn" id="' + backUid + '" href="#">Back</a>',
-            '<a class="btn" href="#">Invoke</a>',
-            '<a class="btn" href="#">View class</a>',
+            '<a class="btn" id="' + backUid + '" href="#">' + TOMEE.ApplicationI18N.get('app.home.menu.tools.jndi.browser.back') + '</a>',
+            '<a class="btn" href="#">' + TOMEE.ApplicationI18N.get('app.home.menu.tools.jndi.browser.invoke') + '</a>',
+            '<a class="btn" href="#">' + TOMEE.ApplicationI18N.get('app.home.menu.tools.jndi.browser.class') + '</a>',
             '</div>'
         ].join('');
 
@@ -115,11 +216,11 @@ TOMEE.ApplicationJndiPanel = function (c
         });
 
         var backBtn = item.find("#" + backUid);
-        backBtn.on('click', function() {
+        backBtn.on('click', function () {
             elements.carousel.carousel('prev');
 
             var task = TOMEE.DelayedTask({
-                callback:function() {
+                callback: function () {
                     item.remove();
                 }
             });