[jboss-cvs] JBossAS SVN: r61713 - in branches/JBoss_4_0_5_GA_CP/console/src: resources/webconsole.war and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Mar 26 13:23:47 EDT 2007


Author: darran.lofthouse at jboss.com
Date: 2007-03-26 13:23:46 -0400 (Mon, 26 Mar 2007)
New Revision: 61713

Modified:
   branches/JBoss_4_0_5_GA_CP/console/src/main/org/jboss/console/plugins/EJBModuleLister.java
   branches/JBoss_4_0_5_GA_CP/console/src/resources/webconsole.war/EntityEjb.jsp
   branches/JBoss_4_0_5_GA_CP/console/src/resources/webconsole.war/MdbEjb.jsp
   branches/JBoss_4_0_5_GA_CP/console/src/resources/webconsole.war/StatefulEjb.jsp
   branches/JBoss_4_0_5_GA_CP/console/src/resources/webconsole.war/StatelessEjb.jsp
Log:
ASPATCH-174 - Web Console causes an error when navigating entity beans or message driven beans.

Modified: branches/JBoss_4_0_5_GA_CP/console/src/main/org/jboss/console/plugins/EJBModuleLister.java
===================================================================
--- branches/JBoss_4_0_5_GA_CP/console/src/main/org/jboss/console/plugins/EJBModuleLister.java	2007-03-26 17:07:48 UTC (rev 61712)
+++ branches/JBoss_4_0_5_GA_CP/console/src/main/org/jboss/console/plugins/EJBModuleLister.java	2007-03-26 17:23:46 UTC (rev 61713)
@@ -32,6 +32,7 @@
 
 import javax.management.ObjectInstance;
 import javax.management.ObjectName;
+
 /**
  * As the number of MBeans is very big, we use a real Java class which is far
  * faster than beanshell
@@ -48,100 +49,126 @@
  * <li> First implementation </li>
  * </ul>
  */
-public class EJBModuleLister 
-   extends AbstractPluginWrapper
+public class EJBModuleLister extends AbstractPluginWrapper
 {
 
    protected final static String JMX_JSR77_DOMAIN = "jboss.management.local";
-   
-   public EJBModuleLister () { super(); }
-      
-   ResourceTreeNode[] createBeans (ObjectName parent)  throws Exception
+
+   public EJBModuleLister()
    {
+      super();
+   }
+
+   ResourceTreeNode[] createBeans(ObjectName parent) throws Exception
+   {
       // there is a bug in the current jsr77 implementation with regard to naming
       // of EJBModule that are part of EARs => I've used a workaround
       //
-      ObjectInstance[] insts = getMBeansForQuery(JMX_JSR77_DOMAIN + 
-         ":EJBModule="+parent.getKeyProperty("name")+",*", null);
+      ObjectInstance[] insts = getMBeansForQuery(JMX_JSR77_DOMAIN + ":EJBModule=" + parent.getKeyProperty("name")
+            + ",*", null);
 
-      ResourceTreeNode[] ejbs = new ResourceTreeNode[insts.length];      
-      for (int i=0; i<insts.length; i++)
+      ResourceTreeNode[] ejbs = new ResourceTreeNode[insts.length];
+      for (int i = 0; i < insts.length; i++)
       {
          ObjectName objName = insts[i].getObjectName();
          String type = objName.getKeyProperty("j2eeType");
-
          String ejbName = objName.getKeyProperty("name");
-         String containerUrl = "jboss.j2ee:service=EJB,jndiName=" + ejbName;
-         containerUrl = java.net.URLEncoder.encode(containerUrl);
-         containerUrl = "/jmx-console/HtmlAdaptor?action=inspectMBean&name=" + containerUrl;
 
+         String containerName = createContainerName(objName);
+
+         if (containerName == null)
+            continue;
+
+         containerName = encode(containerName);
+         String containerUrl = "/jmx-console/HtmlAdaptor?action=inspectMBean&name=" + containerName;
+
          TreeNodeMenuEntry[] menus = new TreeNodeMenuEntry[]
-            {
-               new SimpleTreeNodeMenuEntryImpl ("View container in other window", 
-                  new HttpLinkTreeAction (containerUrl, "_blank")
-               )
-            };
-            
-         String j2eeType = objName.getKeyProperty ("j2eeType");   
+         {new SimpleTreeNodeMenuEntryImpl("View container in other window", new HttpLinkTreeAction(containerUrl,
+               "_blank"))};
+
+         String j2eeType = objName.getKeyProperty("j2eeType");
          String filename = "EJB.jsp";
-         if (j2eeType.equalsIgnoreCase ("StatelessSessionBean"))
+         if (j2eeType.equalsIgnoreCase("StatelessSessionBean"))
          {
             filename = "StatelessEjb.jsp";
          }
-         else if (j2eeType.equalsIgnoreCase ("StatefulSessionBean"))
+         else if (j2eeType.equalsIgnoreCase("StatefulSessionBean"))
          {
             filename = "StatefulEjb.jsp";
          }
-         else if (j2eeType.equalsIgnoreCase ("EntityBean"))
+         else if (j2eeType.equalsIgnoreCase("EntityBean"))
          {
             filename = "EntityEjb.jsp";
          }
-         else if (j2eeType.equalsIgnoreCase ("MessageDrivenBean"))
+         else if (j2eeType.equalsIgnoreCase("MessageDrivenBean"))
          {
             filename = "MdbEjb.jsp";
          }
-         
-         ejbs[i] = createResourceNode(
-               ejbName,  // name
+
+         ejbs[i] = createResourceNode(ejbName, // name
                type, // description
                "images/bean.gif", // Icon URL
-               filename+"?ObjectName=" + encode(objName.toString()), // Default URL
-               menus,
-               null, // sub nodes
-               null,   // Sub-Resources                  
-               objName.toString(), 
-               insts[i].getClassName()
-            );                  
-         
+               filename + "?ObjectName=" + encode(objName.toString()) + "&ContainerObjectName=" + containerName, // Default URL
+               menus, null, // sub nodes
+               null, // Sub-Resources                  
+               objName.toString(), insts[i].getClassName());
+
       }
-          
-      return ejbs;  
+
+      return ejbs;
    }
 
+   protected String createContainerName(ObjectName objName) throws Exception
+   {
+      String jndiName = (String) mbeanServer.getAttribute(objName, "JndiName");
+      String localJndiName = (String) mbeanServer.getAttribute(objName, "LocalJndiName");
+
+      String containerUrl = null;
+
+      String defaultContainerUrl = "jboss.j2ee:service=EJB,jndiName=" + jndiName;
+      ObjectName defaultObjectName = new ObjectName(defaultContainerUrl);
+      String localContainerUrl = "jboss.j2ee:service=EJB,jndiName=" + localJndiName;
+      ObjectName localObjectName = new ObjectName(localContainerUrl);
+
+      if (mbeanServer.isRegistered(defaultObjectName))
+      {
+         log.debug("Found container with default JNDI name URL for - " + objName.toString());
+         containerUrl = defaultContainerUrl;
+      }
+      else if (mbeanServer.isRegistered(localObjectName))
+      {
+         log.debug("Found container with local JNDI name URL for - " + objName.toString());
+         containerUrl = localContainerUrl;
+      }
+      else
+      {
+         log.warn("Unable to find container for - " + objName.toString());
+      }
+
+      return containerUrl;
+   }
+
    protected TreeNode getTreeForResource(String profile, ManageableResource resource)
    {
       try
       {
-         ObjectName objName = ((MBeanResource)resource).getObjectName();
+         ObjectName objName = ((MBeanResource) resource).getObjectName();
 
-         return createTreeNode
-            (
-               objName.getKeyProperty("name"),  // name
+         return createTreeNode(objName.getKeyProperty("name"), // name
                "", // description
                "images/beans.gif", // Icon URL
                "EJBModule.jsp?ObjectName=" + encode(objName.toString()), // Default URL
-               null,
-               null, // sub nodes
-               createBeans (objName)   // Sub-Resources                  
-            ).setMasterNode(true);                  
-         
+               null, null, // sub nodes
+               createBeans(objName) // Sub-Resources                  
+         ).setMasterNode(true);
+
       }
       catch (Exception e)
       {
-         e.printStackTrace ();
-         System.out.println (checker);
+         e.printStackTrace();
+         System.out.println(checker);
          return null;
-         
+
       }
    }
 

Modified: branches/JBoss_4_0_5_GA_CP/console/src/resources/webconsole.war/EntityEjb.jsp
===================================================================
--- branches/JBoss_4_0_5_GA_CP/console/src/resources/webconsole.war/EntityEjb.jsp	2007-03-26 17:07:48 UTC (rev 61712)
+++ branches/JBoss_4_0_5_GA_CP/console/src/resources/webconsole.war/EntityEjb.jsp	2007-03-26 17:23:46 UTC (rev 61713)
@@ -1,11 +1,10 @@
 <%@ taglib uri="/webconsole" prefix="jb" %>
 <jb:mbean id="ejb" intf="org.jboss.management.j2ee.EntityBeanMBean" />
-<jb:mbean id="container" mbean='<%="jboss.j2ee:service=EJB,jndiName=" + (new javax.management.ObjectName(request.getParameter("ObjectName")).getKeyProperty ("name"))%>' intf="org.jboss.ejb.ContainerMBean" />
+<jb:mbean id="container" mbean='<%=request.getParameter("ContainerObjectName")%>' intf="org.jboss.ejb.ContainerMBean" />
 <%
    String ejbName = new javax.management.ObjectName(request.getParameter("ObjectName")).getKeyProperty ("name");
    String ejbModule = new javax.management.ObjectName(request.getParameter("ObjectName")).getKeyProperty ("EJBModule");
-   String containerUrl = "jboss.j2ee:service=EJB,jndiName=" + ejbName;
-   containerUrl = java.net.URLEncoder.encode(containerUrl);
+   String containerUrl = java.net.URLEncoder.encode(request.getParameter("ContainerObjectName"));
    containerUrl = "../jmx-console/HtmlAdaptor?action=inspectMBean&name=" + containerUrl;
 
    org.jboss.invocation.InvocationStatistics invokeStats= container.getInvokeStats ();
@@ -21,9 +20,12 @@
    	 invokeStats.resetStats ();
    }
 
-   String resetUrl = response.encodeURL(request.getRequestURI()) + "?doReset=true&ObjectName=" + java.net.URLEncoder.encode(request.getParameter("ObjectName"));
-   String resetInvocUrl = response.encodeURL(request.getRequestURI()) + "?doResetInvoc=true&ObjectName=" + java.net.URLEncoder.encode(request.getParameter("ObjectName"));
-   String myUrl = response.encodeURL(request.getRequestURI()) + "?" + "&ObjectName=" + java.net.URLEncoder.encode(request.getParameter("ObjectName"));
+   String parameters = "&ObjectName=" + java.net.URLEncoder.encode(request.getParameter("ObjectName"));
+   parameters = parameters + "&ContainerObjectName=" + java.net.URLEncoder.encode(request.getParameter("ContainerObjectName"));
+   
+   String resetUrl = response.encodeURL(request.getRequestURI()) + "?doReset=true" + parameters;
+   String resetInvocUrl = response.encodeURL(request.getRequestURI()) + "?doResetInvoc=true" + parameters;
+   String myUrl = response.encodeURL(request.getRequestURI()) + "?" + parameters;
    org.jboss.metadata.BeanMetaData beanMetaData = container.getBeanMetaData();
 
 %>

Modified: branches/JBoss_4_0_5_GA_CP/console/src/resources/webconsole.war/MdbEjb.jsp
===================================================================
--- branches/JBoss_4_0_5_GA_CP/console/src/resources/webconsole.war/MdbEjb.jsp	2007-03-26 17:07:48 UTC (rev 61712)
+++ branches/JBoss_4_0_5_GA_CP/console/src/resources/webconsole.war/MdbEjb.jsp	2007-03-26 17:23:46 UTC (rev 61713)
@@ -7,15 +7,11 @@
 
 <%@ taglib uri="/webconsole" prefix="jb" %>
 <jb:mbean id="ejb" intf="org.jboss.management.j2ee.MessageDrivenBeanMBean" />
-<jb:mbean id="container" mbean='<%="jboss.j2ee:service=EJB,jndiName=" + (new javax.management.ObjectName(request.getParameter("ObjectName")).getKeyProperty ("name"))%>' intf="org.jboss.ejb.ContainerMBean" />
-
+<jb:mbean id="container" mbean='<%=request.getParameter("ContainerObjectName")%>' intf="org.jboss.ejb.ContainerMBean" />
 <%
-   // Author: Boris Cinkler cinkler at users.sourceforge.net
-   
    String ejbName = new javax.management.ObjectName(request.getParameter("ObjectName")).getKeyProperty ("name");
    String ejbModule = new javax.management.ObjectName(request.getParameter("ObjectName")).getKeyProperty ("EJBModule");
-   String containerUrl = "jboss.j2ee:service=EJB,jndiName=" + ejbName;
-   containerUrl = java.net.URLEncoder.encode(containerUrl);
+   String containerUrl = java.net.URLEncoder.encode(request.getParameter("ContainerObjectName"));
    containerUrl = "../jmx-console/HtmlAdaptor?action=inspectMBean&name=" + containerUrl;
 
    org.jboss.invocation.InvocationStatistics invokeStats= container.getInvokeStats ();
@@ -31,12 +27,15 @@
    	 invokeStats.resetStats ();
    }
 
-   String resetUrl = response.encodeURL(request.getRequestURI()) + "?doReset=true&ObjectName=" + java.net.URLEncoder.encode(request.getParameter("ObjectName"));
-   String resetInvocUrl = response.encodeURL(request.getRequestURI()) + "?doResetInvoc=true&ObjectName=" + java.net.URLEncoder.encode(request.getParameter("ObjectName"));
-   String myUrl = response.encodeURL(request.getRequestURI()) + "?" + "&ObjectName=" + java.net.URLEncoder.encode(request.getParameter("ObjectName"));
+   String parameters = "&ObjectName=" + java.net.URLEncoder.encode(request.getParameter("ObjectName"));
+   parameters = parameters + "&ContainerObjectName=" + java.net.URLEncoder.encode(request.getParameter("ContainerObjectName"));
+   
+   String resetUrl = response.encodeURL(request.getRequestURI()) + "?doReset=true" + parameters;
+   String resetInvocUrl = response.encodeURL(request.getRequestURI()) + "?doResetInvoc=true" + parameters;
+   String myUrl = response.encodeURL(request.getRequestURI()) + "?" + parameters;
    org.jboss.metadata.BeanMetaData beanMetaData = container.getBeanMetaData();
 
-   %>
+%>
 
    <%!
 public String addStatRow (javax.management.j2ee.statistics.Statistic stat)

Modified: branches/JBoss_4_0_5_GA_CP/console/src/resources/webconsole.war/StatefulEjb.jsp
===================================================================
--- branches/JBoss_4_0_5_GA_CP/console/src/resources/webconsole.war/StatefulEjb.jsp	2007-03-26 17:07:48 UTC (rev 61712)
+++ branches/JBoss_4_0_5_GA_CP/console/src/resources/webconsole.war/StatefulEjb.jsp	2007-03-26 17:23:46 UTC (rev 61713)
@@ -1,11 +1,10 @@
 <%@ taglib uri="/webconsole" prefix="jb" %>
 <jb:mbean id="ejb" intf="org.jboss.management.j2ee.StatefulSessionBeanMBean" />
-<jb:mbean id="container" mbean='<%="jboss.j2ee:service=EJB,jndiName=" + (new javax.management.ObjectName(request.getParameter("ObjectName")).getKeyProperty ("name"))%>' intf="org.jboss.ejb.ContainerMBean" />
+<jb:mbean id="container" mbean='<%=request.getParameter("ContainerObjectName")%>' intf="org.jboss.ejb.ContainerMBean" />
 <%
    String ejbName = new javax.management.ObjectName(request.getParameter("ObjectName")).getKeyProperty ("name");
    String ejbModule = new javax.management.ObjectName(request.getParameter("ObjectName")).getKeyProperty ("EJBModule");
-   String containerUrl = "jboss.j2ee:service=EJB,jndiName=" + ejbName;
-   containerUrl = java.net.URLEncoder.encode(containerUrl);
+   String containerUrl = java.net.URLEncoder.encode(request.getParameter("ContainerObjectName"));
    containerUrl = "../jmx-console/HtmlAdaptor?action=inspectMBean&name=" + containerUrl;
 
    org.jboss.invocation.InvocationStatistics invokeStats= container.getInvokeStats ();
@@ -21,9 +20,12 @@
    	 invokeStats.resetStats ();
    }
 
-   String resetUrl = response.encodeURL(request.getRequestURI()) + "?doReset=true&ObjectName=" + java.net.URLEncoder.encode(request.getParameter("ObjectName"));
-   String resetInvocUrl = response.encodeURL(request.getRequestURI()) + "?doResetInvoc=true&ObjectName=" + java.net.URLEncoder.encode(request.getParameter("ObjectName"));
-   String myUrl = response.encodeURL(request.getRequestURI()) + "?" + "&ObjectName=" + java.net.URLEncoder.encode(request.getParameter("ObjectName"));
+   String parameters = "&ObjectName=" + java.net.URLEncoder.encode(request.getParameter("ObjectName"));
+   parameters = parameters + "&ContainerObjectName=" + java.net.URLEncoder.encode(request.getParameter("ContainerObjectName"));
+   
+   String resetUrl = response.encodeURL(request.getRequestURI()) + "?doReset=true" + parameters;
+   String resetInvocUrl = response.encodeURL(request.getRequestURI()) + "?doResetInvoc=true" + parameters;
+   String myUrl = response.encodeURL(request.getRequestURI()) + "?" + parameters;
    org.jboss.metadata.BeanMetaData beanMetaData = container.getBeanMetaData();
 
 %>

Modified: branches/JBoss_4_0_5_GA_CP/console/src/resources/webconsole.war/StatelessEjb.jsp
===================================================================
--- branches/JBoss_4_0_5_GA_CP/console/src/resources/webconsole.war/StatelessEjb.jsp	2007-03-26 17:07:48 UTC (rev 61712)
+++ branches/JBoss_4_0_5_GA_CP/console/src/resources/webconsole.war/StatelessEjb.jsp	2007-03-26 17:23:46 UTC (rev 61713)
@@ -1,11 +1,10 @@
 <%@ taglib uri="/webconsole" prefix="jb" %>
 <jb:mbean id="ejb" intf="org.jboss.management.j2ee.StatelessSessionBeanMBean" />
-<jb:mbean id="container" mbean='<%="jboss.j2ee:service=EJB,jndiName=" + (new javax.management.ObjectName(request.getParameter("ObjectName")).getKeyProperty ("name"))%>' intf="org.jboss.ejb.ContainerMBean" />
+<jb:mbean id="container" mbean='<%=request.getParameter("ContainerObjectName")%>' intf="org.jboss.ejb.ContainerMBean" />
 <%
    String ejbName = new javax.management.ObjectName(request.getParameter("ObjectName")).getKeyProperty ("name");
    String ejbModule = new javax.management.ObjectName(request.getParameter("ObjectName")).getKeyProperty ("EJBModule");
-   String containerUrl = "jboss.j2ee:service=EJB,jndiName=" + ejbName;
-   containerUrl = java.net.URLEncoder.encode(containerUrl);
+   String containerUrl = java.net.URLEncoder.encode(request.getParameter("ContainerObjectName"));
    containerUrl = "../jmx-console/HtmlAdaptor?action=inspectMBean&name=" + containerUrl;
 
    org.jboss.invocation.InvocationStatistics invokeStats= container.getInvokeStats ();
@@ -21,9 +20,12 @@
    	 invokeStats.resetStats ();
    }
 
-   String resetUrl = response.encodeURL(request.getRequestURI()) + "?doReset=true&ObjectName=" + java.net.URLEncoder.encode(request.getParameter("ObjectName"));
-   String resetInvocUrl = response.encodeURL(request.getRequestURI()) + "?doResetInvoc=true&ObjectName=" + java.net.URLEncoder.encode(request.getParameter("ObjectName"));
-   String myUrl = response.encodeURL(request.getRequestURI()) + "?" + "&ObjectName=" + java.net.URLEncoder.encode(request.getParameter("ObjectName"));
+   String parameters = "&ObjectName=" + java.net.URLEncoder.encode(request.getParameter("ObjectName"));
+   parameters = parameters + "&ContainerObjectName=" + java.net.URLEncoder.encode(request.getParameter("ContainerObjectName"));
+   
+   String resetUrl = response.encodeURL(request.getRequestURI()) + "?doReset=true" + parameters;
+   String resetInvocUrl = response.encodeURL(request.getRequestURI()) + "?doResetInvoc=true" + parameters;
+   String myUrl = response.encodeURL(request.getRequestURI()) + "?" + parameters;
    org.jboss.metadata.BeanMetaData beanMetaData = container.getBeanMetaData();
 
 %>




More information about the jboss-cvs-commits mailing list