[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