[jboss-svn-commits] JBoss Portal SVN: r5458 - in trunk: common/src/main/org/jboss/portal/common/util common/src/main/org/jboss/portal/test/common core/src/resources/portal-cms-sar/META-INF core/src/resources/portal-core-sar/META-INF portlet/src/main/org/jboss/portal/portlet portlet/src/main/org/jboss/portal/portlet/container portlet/src/main/org/jboss/portal/portlet/management

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Mon Oct 16 04:59:14 EDT 2006


Author: thomas.heute at jboss.com
Date: 2006-10-16 04:59:02 -0400 (Mon, 16 Oct 2006)
New Revision: 5458

Added:
   trunk/common/src/main/org/jboss/portal/common/util/LoopCollection.java
   trunk/common/src/main/org/jboss/portal/test/common/LoopCollectionTestCase.java
   trunk/portlet/src/main/org/jboss/portal/portlet/container/PortletContainerRegistryListener.java
   trunk/portlet/src/main/org/jboss/portal/portlet/management/
   trunk/portlet/src/main/org/jboss/portal/portlet/management/PortletContainerManagementInterceptor.java
   trunk/portlet/src/main/org/jboss/portal/portlet/management/PortletContainerManagementInterceptorImpl.java
   trunk/portlet/src/main/org/jboss/portal/portlet/management/PortletContainerManager.java
   trunk/portlet/src/main/org/jboss/portal/portlet/management/PortletContainerManagerMBean.java
Modified:
   trunk/core/src/resources/portal-cms-sar/META-INF/jboss-service.xml
   trunk/core/src/resources/portal-core-sar/META-INF/jboss-service.xml
   trunk/portlet/src/main/org/jboss/portal/portlet/container/PortletApplicationRegistry.java
   trunk/portlet/src/main/org/jboss/portal/portlet/container/PortletApplicationRegistryImpl.java
Log:
Management changes

Added: trunk/common/src/main/org/jboss/portal/common/util/LoopCollection.java
===================================================================
--- trunk/common/src/main/org/jboss/portal/common/util/LoopCollection.java	2006-10-16 08:29:09 UTC (rev 5457)
+++ trunk/common/src/main/org/jboss/portal/common/util/LoopCollection.java	2006-10-16 08:59:02 UTC (rev 5458)
@@ -0,0 +1,101 @@
+package org.jboss.portal.common.util;
+
+public class LoopCollection
+{
+   private long[] array;
+
+   private int index;
+
+   public LoopCollection(int size)
+   {
+      array = new long[size];
+      emptyArray(array);
+      index = 0;
+   }
+
+   public void put(long value)
+   {
+      array[index] = value;
+      index++;
+      if (index == array.length)
+      {
+         index = 0;
+      }
+   }
+
+   public void setSize(int newSize)
+   {
+      long[] newArray = new long[newSize];
+      emptyArray(newArray);
+      for (int i = 0; i < Math.min(newArray.length, array.length); i++)
+      {
+         int cursor = index - 1 - i;
+         if (cursor < 0)
+         {
+            cursor += array.length;
+         }
+         int newCursor = newArray.length - 1 - i;
+         if (newCursor < 0)
+         {
+            break;
+         }
+         if (array[cursor] != -1)
+         {
+            newArray[newCursor] = array[cursor];
+         }
+      }
+      array = newArray;
+      index = 0;
+   }
+
+   public float getAverage()
+   {
+      float sum = 0;
+      int nb = 0;
+      for (int i = 0; i < array.length; i++)
+      {
+         if (array[i] != -1)
+         {
+            sum += array[i];
+            nb++;
+         }
+      }
+      // Division by 0
+      return sum / nb;
+   }
+
+   public long getMax()
+   {
+      long max = -1;
+      for (int i = 0; i < array.length; i++)
+      {
+         if (array[i] > max)
+         {
+            max = array[i];
+         }
+      }
+      return max;
+   }
+
+   public long getMin()
+   {
+      long min = Long.MAX_VALUE;
+      for (int i = 0; i < array.length; i++)
+      {
+         if ((array[i] != -1) && (array[i] < min))
+         {
+            min = array[i];
+         }
+      }
+      return min;
+   }
+
+   private void emptyArray(long[] array)
+   {
+      for (int i = 0; i < array.length; i++)
+      {
+         array[i] = -1;
+      }
+   }
+
+}

Added: trunk/common/src/main/org/jboss/portal/test/common/LoopCollectionTestCase.java
===================================================================
--- trunk/common/src/main/org/jboss/portal/test/common/LoopCollectionTestCase.java	2006-10-16 08:29:09 UTC (rev 5457)
+++ trunk/common/src/main/org/jboss/portal/test/common/LoopCollectionTestCase.java	2006-10-16 08:59:02 UTC (rev 5458)
@@ -0,0 +1,47 @@
+package org.jboss.portal.test.common;
+
+import org.jboss.portal.common.util.LoopCollection;
+import junit.framework.TestCase;
+
+public class LoopCollectionTestCase extends TestCase
+{
+
+   public void test01()
+   {
+      
+      LoopCollection loop = new LoopCollection(6);
+      
+      loop.put(1);
+      loop.put(2);
+      loop.put(3);
+      assertTrue(loop.getAverage() == 2);
+      loop.put(4);
+      loop.put(5);
+      assertTrue(loop.getAverage() == 3);
+      loop.put(6);
+      loop.put(7);
+      loop.put(8);
+      loop.put(0);
+      assertTrue(loop.getAverage() == 5);
+
+      loop.setSize(4);
+      assertTrue(loop.getAverage() == 5.25);
+      loop.setSize(2);
+      assertTrue(loop.getAverage() == 4);
+      loop.setSize(5);
+      loop.put(2);
+      loop.put(7);
+      loop.put(3);
+      assertTrue(loop.getAverage() == 4);
+      loop.setSize(10);
+      loop.put(4);
+      assertTrue(loop.getAverage() == 4);
+      loop.setSize(4);
+      assertTrue(loop.getAverage() == 4);
+      
+      
+
+   }
+   
+   
+}

Modified: trunk/core/src/resources/portal-cms-sar/META-INF/jboss-service.xml
===================================================================
--- trunk/core/src/resources/portal-cms-sar/META-INF/jboss-service.xml	2006-10-16 08:29:09 UTC (rev 5457)
+++ trunk/core/src/resources/portal-cms-sar/META-INF/jboss-service.xml	2006-10-16 08:59:02 UTC (rev 5458)
@@ -22,6 +22,19 @@
   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
 
 <server>
+
+   <!--  Management MBean -->
+   <mbean
+      code="org.jboss.portal.cms.management.CMSImpl"
+      name="portal:service=Management,type=CMS,name=Default"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <depends
+         optional-attribute-name="CMS"
+         proxy-type="attribute">portal:service=CMS</depends>
+      <xmbean/>
+   </mbean>
+   
 	<mbean
       code="org.jboss.portal.jems.hibernate.SessionFactoryBinder"
       name="portal:service=Hibernate,type=CMS"

Modified: trunk/core/src/resources/portal-core-sar/META-INF/jboss-service.xml
===================================================================
--- trunk/core/src/resources/portal-core-sar/META-INF/jboss-service.xml	2006-10-16 08:29:09 UTC (rev 5457)
+++ trunk/core/src/resources/portal-core-sar/META-INF/jboss-service.xml	2006-10-16 08:59:02 UTC (rev 5458)
@@ -194,7 +194,15 @@
    </mbean>
 
    <!-- Instance stack -->
+   <!-- Management MBean, can be removed if management is not used -->
    <mbean
+      code="org.jboss.portal.portlet.management.PortletContainerManagementInterceptorImpl"
+      name="portal:service=ManagementInterceptor,type=Portlet,name=PortletContainer"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+   </mbean>
+   <mbean
       code="org.jboss.portal.core.model.instance.InstanceSecurityInterceptor"
       name="portal:service=Interceptor,type=Portlet,name=InstanceSecurity"
       xmbean-dd=""
@@ -216,6 +224,7 @@
       xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
       <xmbean/>
       <depends-list optional-attribute-name="InterceptorNames">
+         <depends-list-element>portal:service=ManagementInterceptor,type=Portlet,name=PortletContainer</depends-list-element>
          <depends-list-element>portal:service=Interceptor,type=Portlet,name=InstanceSecurity</depends-list-element>
          <depends-list-element>portal:service=Interceptor,type=Portlet,name=PortalSessionSynchronization</depends-list-element>
       </depends-list>
@@ -311,8 +320,8 @@
          <depends-list-element>portal:service=Interceptor,type=Portlet,name=ContextDispatcher</depends-list-element>
          <depends-list-element>portal:service=Interceptor,type=Portlet,name=ContextTracker</depends-list-element>
          <depends-list-element>portal:service=Interceptor,type=Portlet,name=PortletSessionSynchronization</depends-list-element>
-		   <depends-list-element>portal:service=Interceptor,type=Portlet,name=WindowStates</depends-list-element>
-		   <depends-list-element>portal:service=Interceptor,type=Portlet,name=Bridge</depends-list-element>
+		 <depends-list-element>portal:service=Interceptor,type=Portlet,name=WindowStates</depends-list-element>
+		 <depends-list-element>portal:service=Interceptor,type=Portlet,name=Bridge</depends-list-element>
          <depends-list-element>portal:service=Interceptor,type=Portlet,name=Modes</depends-list-element>
          <depends-list-element>portal:service=Interceptor,type=Portlet,name=ProducerCache</depends-list-element>
          <depends-list-element>portal:service=Interceptor,type=Portlet,name=Header</depends-list-element>

Modified: trunk/portlet/src/main/org/jboss/portal/portlet/container/PortletApplicationRegistry.java
===================================================================
--- trunk/portlet/src/main/org/jboss/portal/portlet/container/PortletApplicationRegistry.java	2006-10-16 08:29:09 UTC (rev 5457)
+++ trunk/portlet/src/main/org/jboss/portal/portlet/container/PortletApplicationRegistry.java	2006-10-16 08:59:02 UTC (rev 5458)
@@ -26,6 +26,7 @@
 
 /**
  * @author <a href="mailto:julien at jboss.org">Julien Viet</a>
+ * @author <a href="mailto:theute at jboss.org">Thomas Heute</a>
  * @version $Revision$
  */
 public interface PortletApplicationRegistry
@@ -50,4 +51,13 @@
 
    /** Return a component using its id or null if it does not exist. */
    PortletContainer getPortletContainer(String id);
+
+   /**
+    * Return an immutable list all the known portlet container in the registry.
+    */
+   Collection getPortletContainers();
+
+   void addListener(PortletContainerRegistryListener listener);
+
+   void removeListener(PortletContainerRegistryListener listener);
 }

Modified: trunk/portlet/src/main/org/jboss/portal/portlet/container/PortletApplicationRegistryImpl.java
===================================================================
--- trunk/portlet/src/main/org/jboss/portal/portlet/container/PortletApplicationRegistryImpl.java	2006-10-16 08:29:09 UTC (rev 5457)
+++ trunk/portlet/src/main/org/jboss/portal/portlet/container/PortletApplicationRegistryImpl.java	2006-10-16 08:59:02 UTC (rev 5458)
@@ -24,13 +24,17 @@
 
 import org.jboss.portal.jems.as.system.AbstractJBossService;
 
+import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
 import java.util.Map;
 
 /**
  * @author <a href="mailto:julien at jboss.org">Julien Viet</a>
+ * @author <a href="mailto:theute at jboss.org">Thomas Heute</a>
  * @version $Revision$
  */
 public class PortletApplicationRegistryImpl extends AbstractJBossService implements PortletApplicationRegistry
@@ -38,6 +42,8 @@
 
    private Map portletApplications = new HashMap();
    private Map portlets = new HashMap();
+   
+   private List listeners = new ArrayList();
 
    public void registerPortletApplication(PortletApplication portletApplication)
    {
@@ -86,6 +92,7 @@
          Map componentsCopy = new HashMap(portlets);
          componentsCopy.put(portlet.getContext().getId(), portlet);
          portlets = componentsCopy;
+         raiseRegisterPortletContainerEvent(portlet);
       }
    }
 
@@ -100,6 +107,7 @@
          Map componentsCopy = new HashMap(portlets);
          componentsCopy.remove(portlet.getContext().getId());
          portlets = componentsCopy;
+         raiseUnregisterPortletContainerEvent(portlet);
       }
    }
 
@@ -117,4 +125,61 @@
    {
       return (PortletContainer)portlets.get(id);
    }
+
+   public Collection getPortletContainers()
+   {
+      return Collections.unmodifiableCollection(portlets.values());
+   }
+
+   public void addListener(PortletContainerRegistryListener listener)
+   {
+      if (listener == null)
+      {
+         throw new IllegalArgumentException("No null listener accepted");
+      }
+      else
+      {
+         synchronized (this)
+         {
+            listeners.add(listener);
+         }
+      }
+   }
+
+   public void removeListener(PortletContainerRegistryListener listener)
+   {
+      if (listener == null)
+      {
+         throw new IllegalArgumentException("No null listener accepted");
+      }
+      else
+      {
+         synchronized (this)
+         {
+            listeners.remove(listener);
+         }
+      }
+   }
+
+   private void raiseRegisterPortletContainerEvent(PortletContainer portlet)
+   {
+      Iterator it = listeners.iterator();
+      while (it.hasNext())
+      {
+         PortletContainerRegistryListener listener = (PortletContainerRegistryListener)it.next();
+         listener.registerPortletContainer(portlet);
+      }
+   }
+
+   private void raiseUnregisterPortletContainerEvent(PortletContainer portlet)
+   {
+      Iterator it = listeners.iterator();
+      while (it.hasNext())
+      {
+         PortletContainerRegistryListener listener = (PortletContainerRegistryListener)it.next();
+         listener.unregisterPortletContainer(portlet);
+      }
+   }
+
+
 }

Added: trunk/portlet/src/main/org/jboss/portal/portlet/container/PortletContainerRegistryListener.java
===================================================================
--- trunk/portlet/src/main/org/jboss/portal/portlet/container/PortletContainerRegistryListener.java	2006-10-16 08:29:09 UTC (rev 5457)
+++ trunk/portlet/src/main/org/jboss/portal/portlet/container/PortletContainerRegistryListener.java	2006-10-16 08:59:02 UTC (rev 5458)
@@ -0,0 +1,9 @@
+package org.jboss.portal.portlet.container;
+
+public interface PortletContainerRegistryListener {
+
+   void registerPortletContainer(PortletContainer portlet);
+
+   void unregisterPortletContainer(PortletContainer portlet);
+
+}

Added: trunk/portlet/src/main/org/jboss/portal/portlet/management/PortletContainerManagementInterceptor.java
===================================================================
--- trunk/portlet/src/main/org/jboss/portal/portlet/management/PortletContainerManagementInterceptor.java	2006-10-16 08:29:09 UTC (rev 5457)
+++ trunk/portlet/src/main/org/jboss/portal/portlet/management/PortletContainerManagementInterceptor.java	2006-10-16 08:59:02 UTC (rev 5458)
@@ -0,0 +1,26 @@
+package org.jboss.portal.portlet.management;
+
+public interface PortletContainerManagementInterceptor
+{
+   public float getLocalAverageRenderTime(String portletId);
+   
+   public float getLocalAverageActionTime(String portletId);
+
+   public long getLocalMaxRenderTime(String portletId);
+   
+   public long getLocalMaxActionTime(String portletId);
+
+   public long getLocalMinRenderTime(String portletId);
+   
+   public long getLocalMinActionTime(String portletId);
+   
+   public long getNbRenderCalls(String portletId);
+   
+   public long getNbActionCalls(String portletId);
+   /**
+    * Defines how many values are used to get the max, min and average.
+    */
+   public int getSampleSize();
+   
+   public void setSampleSize(int sampleSize);
+}

Added: trunk/portlet/src/main/org/jboss/portal/portlet/management/PortletContainerManagementInterceptorImpl.java
===================================================================
--- trunk/portlet/src/main/org/jboss/portal/portlet/management/PortletContainerManagementInterceptorImpl.java	2006-10-16 08:29:09 UTC (rev 5457)
+++ trunk/portlet/src/main/org/jboss/portal/portlet/management/PortletContainerManagementInterceptorImpl.java	2006-10-16 08:59:02 UTC (rev 5458)
@@ -0,0 +1,165 @@
+package org.jboss.portal.portlet.management;
+
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+
+import org.jboss.portal.common.invocation.InvocationException;
+import org.jboss.portal.common.util.LoopCollection;
+import org.jboss.portal.portlet.PortletContext;
+import org.jboss.portal.portlet.invocation.ActionInvocation;
+import org.jboss.portal.portlet.invocation.PortletInterceptor;
+import org.jboss.portal.portlet.invocation.PortletInvocation;
+import org.jboss.portal.portlet.invocation.RenderInvocation;
+
+public class PortletContainerManagementInterceptorImpl extends PortletInterceptor implements PortletContainerManagementInterceptor
+{
+   
+   /**
+    * Last values to consider
+    */
+   private int sampleSize = 10;
+
+   private Map map = new HashMap();
+//   private Map localRenderMap = new HashMap();
+//   private Map localActionMap = new HashMap();
+   
+   protected void invoke(PortletInvocation invocation) throws Exception, InvocationException
+   {
+      PortletContext portlet = (PortletContext)invocation.getAttribute(PortletInvocation.REQUEST_SCOPE, PortletInvocation.PORTLET_CONTEXT_ATTRIBUTE);
+      String portletName = portlet.getId();
+      Date start = new Date();
+      invocation.invokeNext();
+      Date done = new Date();
+      System.out.println(invocation);
+      if (invocation instanceof RenderInvocation)
+      {
+         if (portletName.startsWith("local."))
+         {
+            String key = portletName.substring("local.".length());
+            Value value = getValue(key);
+            value.renderTimes.put(done.getTime() - start.getTime());
+            value.nbRenderCalls++;
+         }
+         // TODO: Add WSRP
+      }
+      else if (invocation instanceof ActionInvocation)
+      {
+         if (portletName.startsWith("local."))
+         {
+            String key = portletName.substring("local.".length());
+            Value value = getValue(key);
+            value.actionTimes.put(done.getTime() - start.getTime());
+            value.nbActionCalls++;
+         }
+      }
+   }
+
+   private Value getValue(String key)
+   {
+      Value value = (Value)map.get(key);
+      if (value == null)
+      {
+         value = new Value(sampleSize);
+         map.put(key, value);
+      }
+      return value;
+   }
+
+   private void addToActionMap(String key, long time)
+   {
+      Value value = (Value)map.get(key);
+      if (value == null)
+      {
+         value = new Value(sampleSize);
+      }
+      value.actionTimes.put(time);
+      map.put(key, value);
+   }
+
+   public float getLocalAverageRenderTime(String portletId)
+   {
+      Value value = (Value)map.get(portletId);
+      return value.renderTimes.getAverage();
+   }
+   
+   public float getLocalAverageActionTime(String portletId)
+   {
+      Value value = (Value)map.get(portletId);
+      return value.actionTimes.getAverage();
+   }
+
+   public long getLocalMaxRenderTime(String portletId)
+   {
+      Value value = (Value)map.get(portletId);
+      return value.renderTimes.getMax();
+   }
+   
+   public long getLocalMaxActionTime(String portletId)
+   {
+      Value value = (Value)map.get(portletId);
+      return value.actionTimes.getMax();
+   }
+
+   public long getLocalMinRenderTime(String portletId)
+   {
+      Value value = (Value)map.get(portletId);
+      return value.renderTimes.getMin();
+   }
+   
+   public long getLocalMinActionTime(String portletId)
+   {
+      Value value = (Value)map.get(portletId);
+      return value.actionTimes.getMin();
+   }
+
+   public long getNbRenderCalls(String portletId)
+   {
+      Value value = (Value)map.get(portletId);
+      return value.nbRenderCalls;
+   }
+
+   public long getNbActionCalls(String portletId)
+   {
+      Value value = (Value)map.get(portletId);
+      return value.nbActionCalls;
+   }
+
+   public int getSampleSize()
+   {
+      return sampleSize;
+   }
+   
+   public void setSampleSize(int sampleSize)
+   {
+      this.sampleSize = sampleSize;
+      Iterator it = map.values().iterator();
+      while (it.hasNext())
+      {
+         ((Value)it.next()).setSampleSize(sampleSize);
+      }
+   }
+   
+   private class Value
+   {
+      LoopCollection renderTimes;
+      LoopCollection actionTimes;
+      long nbRenderCalls = 0;
+      long nbActionCalls = 0;
+      
+      public Value(int sampleSize)
+      {
+         renderTimes = new LoopCollection(sampleSize);
+         actionTimes = new LoopCollection(sampleSize);
+      }
+      
+      public void setSampleSize(int sampleSize)
+      {
+         renderTimes.setSize(sampleSize);
+         actionTimes.setSize(sampleSize);
+      }
+
+   }
+
+}

Added: trunk/portlet/src/main/org/jboss/portal/portlet/management/PortletContainerManager.java
===================================================================
--- trunk/portlet/src/main/org/jboss/portal/portlet/management/PortletContainerManager.java	2006-10-16 08:29:09 UTC (rev 5457)
+++ trunk/portlet/src/main/org/jboss/portal/portlet/management/PortletContainerManager.java	2006-10-16 08:59:02 UTC (rev 5458)
@@ -0,0 +1,92 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2005, JBoss Inc., and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+package org.jboss.portal.portlet.management;
+
+import org.jboss.portal.portlet.container.PortletContainer;
+
+/**
+ * @author <a href="mailto:theute at jboss.org">Thomas Heute</a>
+ * @version $Revision$
+ */
+public class PortletContainerManager implements PortletContainerManagerMBean
+{
+   private PortletContainer portlet;
+   
+   private PortletContainerManagementInterceptor interceptor;
+   
+   public PortletContainerManager(PortletContainer portlet, PortletContainerManagementInterceptor interceptor)
+   {
+      this.portlet = portlet;
+      this.interceptor = interceptor;
+   }
+   
+   public String getName()
+   {
+      return portlet.getName();
+   }
+   
+   public String getId()
+   {
+      return portlet.getContext().getId();
+   }
+
+   public float getAverageRenderTime()
+   {
+      return interceptor.getLocalAverageRenderTime(getId());
+   }
+
+   public float getAverageActionTime()
+   {
+      return interceptor.getLocalAverageActionTime(getId());
+   }
+
+   public long getMaxRenderTime()
+   {
+      return interceptor.getLocalMaxRenderTime(getId());
+   }
+
+   public long getMaxActionTime()
+   {
+      return interceptor.getLocalMaxActionTime(getId());
+   }
+
+   public long getMinRenderTime()
+   {
+      return interceptor.getLocalMinRenderTime(getId());
+   }
+
+   public long getMinActionTime()
+   {
+      return interceptor.getLocalMinActionTime(getId());
+   }
+   
+   public long getNbRenderCalls()
+   {
+      return interceptor.getNbRenderCalls(getId());
+   }
+
+   public long getNbActionCalls()
+   {
+      return interceptor.getNbActionCalls(getId());
+   }
+   
+}

Added: trunk/portlet/src/main/org/jboss/portal/portlet/management/PortletContainerManagerMBean.java
===================================================================
--- trunk/portlet/src/main/org/jboss/portal/portlet/management/PortletContainerManagerMBean.java	2006-10-16 08:29:09 UTC (rev 5457)
+++ trunk/portlet/src/main/org/jboss/portal/portlet/management/PortletContainerManagerMBean.java	2006-10-16 08:59:02 UTC (rev 5458)
@@ -0,0 +1,47 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2005, JBoss Inc., and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+package org.jboss.portal.portlet.management;
+
+/**
+ * @author <a href="mailto:theute at jboss.org">Thomas Heute</a>
+ * @version $Revision$
+ */
+public interface PortletContainerManagerMBean
+{
+   public String getName();
+   
+   public float getAverageRenderTime();
+
+   public float getAverageActionTime();
+
+   public long getMaxRenderTime();
+
+   public long getMaxActionTime();
+
+   public long getMinRenderTime();
+
+   public long getMinActionTime();
+   
+   public long getNbRenderCalls();
+   
+   public long getNbActionCalls();
+}




More information about the jboss-svn-commits mailing list