[jboss-svn-commits] JBoss Portal SVN: r5509 - in trunk: core/src/main/org/jboss/portal/core/management core/src/resources/portal-core-sar/META-INF portlet/src/main/org/jboss/portal/portlet/management
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Mon Oct 30 05:52:23 EST 2006
Author: thomas.heute at jboss.com
Date: 2006-10-30 05:52:11 -0500 (Mon, 30 Oct 2006)
New Revision: 5509
Added:
trunk/portlet/src/main/org/jboss/portal/portlet/management/PortletInfo.java
Modified:
trunk/core/src/main/org/jboss/portal/core/management/InstanceContainerListenerImpl.java
trunk/core/src/main/org/jboss/portal/core/management/WSRPPortletConsumerManager.java
trunk/core/src/main/org/jboss/portal/core/management/WSRPPortletConsumerManagerMBean.java
trunk/core/src/resources/portal-core-sar/META-INF/jboss-service.xml
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
trunk/portlet/src/main/org/jboss/portal/portlet/management/PortletContainerRegistryImpl.java
Log:
Simplified management listeners.
Modified: trunk/core/src/main/org/jboss/portal/core/management/InstanceContainerListenerImpl.java
===================================================================
--- trunk/core/src/main/org/jboss/portal/core/management/InstanceContainerListenerImpl.java 2006-10-30 10:45:08 UTC (rev 5508)
+++ trunk/core/src/main/org/jboss/portal/core/management/InstanceContainerListenerImpl.java 2006-10-30 10:52:11 UTC (rev 5509)
@@ -29,6 +29,7 @@
import javax.management.ObjectName;
+import org.jboss.logging.Logger;
import org.jboss.portal.core.impl.model.instance.InstanceContainerListener;
import org.jboss.portal.core.impl.model.instance.InstanceDefinitionImpl;
import org.jboss.portal.core.model.instance.InstanceContainer;
@@ -43,8 +44,10 @@
*/
public class InstanceContainerListenerImpl extends ServiceMBeanSupport implements InstanceContainerListener
{
- public static final String JMX_PREFIX = "portal:service=Management,type=WSRPPorletConsumer,name=";
+ private Logger log = Logger.getLogger(InstanceContainerListenerImpl.class);
+ public static final String JMX_PREFIX = "portal.management:service=Management,type=WSRPPorletConsumer,name=";
+
private InstanceContainer instanceContainer;
private PortletContainerManagementInterceptor interceptor;
@@ -72,41 +75,51 @@
registerWSRPPortlet(portletRef, portlet);
}
}
-
-
public void stop()
{
- /*
- Iterator it = portletContainers.iterator();
+ Iterator it = portlets.iterator();
while (it.hasNext())
{
- Instance portlet = (Instance)it.next();
- unregisterPortlet(portlet.getPortlet());
+ String portletRef = (String)it.next();
+ try
+ {
+ destroyWSRPPortletConsumerManagemenentMBean(portletRef);
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ }
}
- if (portletContainers.size() != 0)
+ if (portlets.size() != 0)
{
log.error("Unable to remove all the PortletContainer manager MBeans");
}
- */
}
public void portletInstanceCreated(InstanceDefinitionImpl portlet)
{
- /*
- log.debug("Registering Management MBean: " + portlet.getId());
- try
+ String portletRef = portlet.getPortletRef();
+ registerWSRPPortlet(portletRef, portlet);
+ }
+
+ public void portletInstanceDestroyed(InstanceDefinitionImpl portlet)
+ {
+ // The portlet instance has been destroyed, are there other instances of the same WSRP portlet ?
+ if (!remainInstances(portlet.getPortletRef()))
{
- createPortletContainerManagemenentMBean(portlet);
- portletContainers.add(portlet);
+ try
+ {
+ destroyWSRPPortletConsumerManagemenentMBean(portlet.getPortletRef());
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ }
}
- catch (Exception e)
- {
- e.printStackTrace();
- }
- */
+
}
-
+
private void registerWSRPPortlet(String portletRef, InstanceDefinitionImpl portlet)
{
String prefix = portletRef.substring(0, portletRef.indexOf("."));
@@ -123,26 +136,23 @@
}
}
}
-/*
- private void unregisterPortletContainer(Portlet portlet)
+
+ private boolean remainInstances(String portletRef)
{
-
- }
-*/
- public void portletInstanceDestroyed(InstanceDefinitionImpl portlet)
- {
- /*
- log.debug("Unregistering Management MBean: " + portlet.getId());
- try
+ boolean result = false;
+ Collection startedPortletInstances = instanceContainer.getInstances();
+ Iterator it = startedPortletInstances.iterator();
+ while (it.hasNext())
{
- destroyPortletContainerManagemenentMBean(portlet);
- portletContainers.remove(portlet);
+ InstanceDefinitionImpl portlet = (InstanceDefinitionImpl)it.next();
+ String ref = portlet.getPortletRef();
+ if (portletRef.equals(ref))
+ {
+ result = true;
+ break;
+ }
}
- catch (Exception e)
- {
- e.printStackTrace();
- }
- */
+ return result;
}
public void setInstanceContainer(InstanceContainer instanceContainer)
@@ -160,15 +170,15 @@
WSRPPortletConsumerManager manager = new WSRPPortletConsumerManager(portletRef, interceptor);
ObjectName objectName = new ObjectName(getMBeanName(portletRef));
getServer().registerMBean(manager, objectName);
+ log.debug("Registered Management MBean for: " + portletRef);
}
-
- /*
- private void destroyPortletContainerManagemenentMBean(PortletContainer portlet) throws Exception
+
+ private void destroyWSRPPortletConsumerManagemenentMBean(String portletRef) throws Exception
{
- ObjectName objectName = new ObjectName(getMBeanName(portlet));
+ ObjectName objectName = new ObjectName(getMBeanName(portletRef));
getServer().unregisterMBean(objectName);
+ log.debug("Unregistered Management MBean for: " + portletRef);
}
- */
private String getMBeanName(String portletRef)
{
Modified: trunk/core/src/main/org/jboss/portal/core/management/WSRPPortletConsumerManager.java
===================================================================
--- trunk/core/src/main/org/jboss/portal/core/management/WSRPPortletConsumerManager.java 2006-10-30 10:45:08 UTC (rev 5508)
+++ trunk/core/src/main/org/jboss/portal/core/management/WSRPPortletConsumerManager.java 2006-10-30 10:52:11 UTC (rev 5509)
@@ -47,48 +47,32 @@
public float getAverageRenderTime()
{
- Float time = interceptor.getAverageRenderTime(getId());
- return time.floatValue();
+ return interceptor.getPortletInfo(getId()).getAverageRenderTime();
}
public float getAverageActionTime()
{
- Float time = interceptor.getAverageActionTime(getId());
- return time.floatValue();
+ return interceptor.getPortletInfo(getId()).getAverageActionTime();
}
public long getMaxRenderTime()
{
- Long time = interceptor.getMaxRenderTime(getId());
- return time.longValue();
+ return interceptor.getPortletInfo(getId()).getMaxRenderTime();
}
public long getMaxActionTime()
{
- Long time = interceptor.getMaxActionTime(getId());
- return time.longValue();
+ return interceptor.getPortletInfo(getId()).getMaxActionTime();
}
- public long getMinRenderTime()
+ public long getRenderRequestCount()
{
- Long time = interceptor.getMinRenderTime(getId());
- return time.longValue();
+ return interceptor.getPortletInfo(getId()).getRenderRequestCount();
}
- public long getMinActionTime()
+ public long getActionRequestCount()
{
- Long time = interceptor.getMinActionTime(getId());
- return time.longValue();
+ return interceptor.getPortletInfo(getId()).getActionRequestCount();
}
- public long getNbRenderCalls()
- {
- return interceptor.getNbRenderCalls(getId());
- }
-
- public long getNbActionCalls()
- {
- return interceptor.getNbActionCalls(getId());
- }
-
}
Modified: trunk/core/src/main/org/jboss/portal/core/management/WSRPPortletConsumerManagerMBean.java
===================================================================
--- trunk/core/src/main/org/jboss/portal/core/management/WSRPPortletConsumerManagerMBean.java 2006-10-30 10:45:08 UTC (rev 5508)
+++ trunk/core/src/main/org/jboss/portal/core/management/WSRPPortletConsumerManagerMBean.java 2006-10-30 10:52:11 UTC (rev 5509)
@@ -28,8 +28,6 @@
*/
public interface WSRPPortletConsumerManagerMBean
{
- // public String getName();
-
public float getAverageRenderTime();
public float getAverageActionTime();
@@ -38,11 +36,7 @@
public long getMaxActionTime();
- public long getMinRenderTime();
-
- public long getMinActionTime();
+ public long getRenderRequestCount();
- public long getNbRenderCalls();
-
- public long getNbActionCalls();
+ public long getActionRequestCount();
}
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-30 10:45:08 UTC (rev 5508)
+++ trunk/core/src/resources/portal-core-sar/META-INF/jboss-service.xml 2006-10-30 10:52:11 UTC (rev 5509)
@@ -26,7 +26,7 @@
<!-- Management MBean -->
<mbean
code="org.jboss.portal.core.management.PortalImpl"
- name="portal:service=Management,type=Portal,name=Default"
+ name="portal.management:service=Management,type=Portal,name=Default"
xmbean-dd=""
xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
<depends
Modified: trunk/portlet/src/main/org/jboss/portal/portlet/management/PortletContainerManagementInterceptor.java
===================================================================
--- trunk/portlet/src/main/org/jboss/portal/portlet/management/PortletContainerManagementInterceptor.java 2006-10-30 10:45:08 UTC (rev 5508)
+++ trunk/portlet/src/main/org/jboss/portal/portlet/management/PortletContainerManagementInterceptor.java 2006-10-30 10:52:11 UTC (rev 5509)
@@ -28,25 +28,5 @@
*/
public interface PortletContainerManagementInterceptor
{
- public Float getAverageRenderTime(String portletId);
-
- public Float getAverageActionTime(String portletId);
-
- public Long getMaxRenderTime(String portletId);
-
- public Long getMaxActionTime(String portletId);
-
- public Long getMinRenderTime(String portletId);
-
- public Long getMinActionTime(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);
+ public PortletInfo getPortletInfo(String portletName);
}
Modified: trunk/portlet/src/main/org/jboss/portal/portlet/management/PortletContainerManagementInterceptorImpl.java
===================================================================
--- trunk/portlet/src/main/org/jboss/portal/portlet/management/PortletContainerManagementInterceptorImpl.java 2006-10-30 10:45:08 UTC (rev 5508)
+++ trunk/portlet/src/main/org/jboss/portal/portlet/management/PortletContainerManagementInterceptorImpl.java 2006-10-30 10:52:11 UTC (rev 5509)
@@ -22,18 +22,15 @@
******************************************************************************/
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;
+
import EDU.oswego.cs.dl.util.concurrent.ConcurrentHashMap;
/**
@@ -42,11 +39,6 @@
*/
public class PortletContainerManagementInterceptorImpl extends PortletInterceptor implements PortletContainerManagementInterceptor
{
-
- /**
- * Last values to consider
- */
- private int sampleSize = 10;
private Map map = new ConcurrentHashMap();
@@ -55,166 +47,34 @@
PortletContext portlet = (PortletContext)invocation.getAttribute(PortletInvocation.REQUEST_SCOPE, PortletInvocation.PORTLET_CONTEXT_ATTRIBUTE);
String portletName = portlet.getId();
- // todo : LoopCollection usage is not thread safe, it can be updated concurrently by several threads
-
long delta = - System.currentTimeMillis();
Object object = invocation.invokeNext();
delta += System.currentTimeMillis();
if (invocation instanceof RenderInvocation)
{
- Value value = getValue(portletName);
- value.renderTimes.put(new Long(delta));
- value.nbRenderCalls++;
+ PortletInfo info = getPortletInfo(portletName);
+ // TODO: Add error count
+ info.newRenderCall(delta, false);
}
else if (invocation instanceof ActionInvocation)
{
- Value value = getValue(portletName);
- value.actionTimes.put(new Long(delta));
- value.nbActionCalls++;
+ PortletInfo info = getPortletInfo(portletName);
+ // TODO: Add error count
+ info.newActionCall(delta, false);
}
return object;
}
- private Value getValue(String key)
+ public PortletInfo getPortletInfo(String key)
{
- Value value = (Value)map.get(key);
- if (value == null)
+ PortletInfo info = (PortletInfo)map.get(key);
+ if (info == null)
{
- value = new Value(sampleSize);
- map.put(key, value);
+ info = new PortletInfo();
+ map.put(key, info);
}
- return value;
+ return info;
}
-
- public Float getAverageRenderTime(String portletId)
- {
- Value value = (Value)map.get(portletId);
- return getAverage(value.renderTimes);
- }
- public Float getAverageActionTime(String portletId)
- {
- Value value = (Value)map.get(portletId);
- return getAverage(value.actionTimes);
- }
-
- public Long getMaxRenderTime(String portletId)
- {
- Value value = (Value)map.get(portletId);
- return getMax(value.renderTimes);
- }
-
- public Long getMaxActionTime(String portletId)
- {
- Value value = (Value)map.get(portletId);
- return getMax(value.actionTimes);
- }
-
- public Long getMinRenderTime(String portletId)
- {
- Value value = (Value)map.get(portletId);
- return getMin(value.renderTimes);
- }
-
- public Long getMinActionTime(String portletId)
- {
- Value value = (Value)map.get(portletId);
- return getMin(value.actionTimes);
- }
-
- 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);
- }
-
- }
-
- private Float getAverage(LoopCollection loop)
- {
- // todo : implement copy on read here for thread safety
- if (loop.getSize() == 0)
- {
- return null;
- }
-
- float sum = 0;
- for (int i = 0; i < loop.getSize(); i++)
- {
- sum += ((Long)loop.get(i)).longValue();
- }
- return new Float(sum / loop.getSize());
- }
-
- public Long getMax(LoopCollection loop)
- {
- // todo : implement copy on read here for thread safety
- long max = -1;
- for (int i = 0; i < loop.getSize(); i++)
- {
- if (((Long)loop.get(i)).longValue() > max)
- {
- max = ((Long)loop.get(i)).longValue();
- }
- }
- if (max == -1) return null;
- return new Long(max);
- }
-
- public Long getMin(LoopCollection loop)
- {
- // todo : implement copy on read here for thread safety
- long min = Long.MAX_VALUE;
- for (int i = 0; i < loop.getSize(); i++)
- {
- if (((Long)loop.get(i)).longValue() < min)
- {
- min = ((Long)loop.get(i)).longValue();
- }
- }
- if (min == Long.MAX_VALUE) return null;
- return new Long(min);
- }
-
}
Modified: trunk/portlet/src/main/org/jboss/portal/portlet/management/PortletContainerManager.java
===================================================================
--- trunk/portlet/src/main/org/jboss/portal/portlet/management/PortletContainerManager.java 2006-10-30 10:45:08 UTC (rev 5508)
+++ trunk/portlet/src/main/org/jboss/portal/portlet/management/PortletContainerManager.java 2006-10-30 10:52:11 UTC (rev 5509)
@@ -52,48 +52,32 @@
public float getAverageRenderTime()
{
- Float time = interceptor.getAverageRenderTime(getId());
- return time.floatValue();
+ return interceptor.getPortletInfo(getId()).getAverageRenderTime();
}
public float getAverageActionTime()
{
- Float time = interceptor.getAverageActionTime(getId());
- return time.floatValue();
+ return interceptor.getPortletInfo(getId()).getAverageActionTime();
}
public long getMaxRenderTime()
{
- Long time = interceptor.getMaxRenderTime(getId());
- return time.longValue();
+ return interceptor.getPortletInfo(getId()).getMaxRenderTime();
}
public long getMaxActionTime()
{
- Long time = interceptor.getMaxActionTime(getId());
- return time.longValue();
+ return interceptor.getPortletInfo(getId()).getMaxActionTime();
}
- public long getMinRenderTime()
+ public long getRenderRequestCount()
{
- Long time = interceptor.getMinRenderTime(getId());
- return time.longValue();
+ return interceptor.getPortletInfo(getId()).getRenderRequestCount();
}
- public long getMinActionTime()
+ public long getActionRequestCount()
{
- Long time = interceptor.getMinActionTime(getId());
- return time.longValue();
+ return interceptor.getPortletInfo(getId()).getActionRequestCount();
}
- public long getNbRenderCalls()
- {
- return interceptor.getNbRenderCalls(getId());
- }
-
- public long getNbActionCalls()
- {
- return interceptor.getNbActionCalls(getId());
- }
-
}
Modified: trunk/portlet/src/main/org/jboss/portal/portlet/management/PortletContainerManagerMBean.java
===================================================================
--- trunk/portlet/src/main/org/jboss/portal/portlet/management/PortletContainerManagerMBean.java 2006-10-30 10:45:08 UTC (rev 5508)
+++ trunk/portlet/src/main/org/jboss/portal/portlet/management/PortletContainerManagerMBean.java 2006-10-30 10:52:11 UTC (rev 5509)
@@ -38,11 +38,7 @@
public long getMaxActionTime();
- public long getMinRenderTime();
-
- public long getMinActionTime();
+ public long getRenderRequestCount();
- public long getNbRenderCalls();
-
- public long getNbActionCalls();
+ public long getActionRequestCount();
}
Modified: trunk/portlet/src/main/org/jboss/portal/portlet/management/PortletContainerRegistryImpl.java
===================================================================
--- trunk/portlet/src/main/org/jboss/portal/portlet/management/PortletContainerRegistryImpl.java 2006-10-30 10:45:08 UTC (rev 5508)
+++ trunk/portlet/src/main/org/jboss/portal/portlet/management/PortletContainerRegistryImpl.java 2006-10-30 10:52:11 UTC (rev 5509)
@@ -44,7 +44,7 @@
{
private final static Logger log = Logger.getLogger(PortletContainerRegistryImpl.class);
- public static final String JMX_PREFIX = "portal:service=Management,type=PortletContainer,name=";
+ public static final String JMX_PREFIX = "portal.management:service=Management,type=PortletContainer,name=";
private PortletApplicationRegistry registry;
@@ -89,7 +89,6 @@
public void registerPortletContainer(PortletContainer portlet)
{
- log.debug("Registering Management MBean: " + portlet.getContext().getId());
try
{
createPortletContainerManagemenentMBean(portlet);
@@ -103,7 +102,6 @@
public void unregisterPortletContainer(PortletContainer portlet)
{
- log.debug("Unregistering Management MBean: " + portlet.getContext().getId());
try
{
destroyPortletContainerManagemenentMBean(portlet);
@@ -130,12 +128,14 @@
PortletContainerManager manager = new PortletContainerManager(portlet, interceptor);
ObjectName objectName = new ObjectName(getMBeanName(portlet));
getServer().registerMBean(manager, objectName);
+ log.debug("Registered Management MBean for: " + portlet.getContext().getId());
}
private void destroyPortletContainerManagemenentMBean(PortletContainer portlet) throws Exception
{
ObjectName objectName = new ObjectName(getMBeanName(portlet));
getServer().unregisterMBean(objectName);
+ log.debug("Unegistered Management MBean for: " + portlet.getContext().getId());
}
private String getMBeanName(PortletContainer portlet)
Added: trunk/portlet/src/main/org/jboss/portal/portlet/management/PortletInfo.java
===================================================================
--- trunk/portlet/src/main/org/jboss/portal/portlet/management/PortletInfo.java 2006-10-30 10:45:08 UTC (rev 5508)
+++ trunk/portlet/src/main/org/jboss/portal/portlet/management/PortletInfo.java 2006-10-30 10:52:11 UTC (rev 5509)
@@ -0,0 +1,113 @@
+package org.jboss.portal.portlet.management;
+
+public class PortletInfo
+{
+
+ private long renderRequestProcessingTime;
+
+ private long actionRequestProcessingTime;
+
+ private long maxActionTime;
+
+ private long maxRenderTime;
+
+ private String maxRenderRequestUri;
+
+ private String maxActionRequestUri;
+
+ private int actionRequestCount;
+
+ private int renderRequestCount;
+
+ private int renderErrorCount;
+
+ private int actionErrorCount;
+
+ public long getRenderRequestProcessingTime()
+ {
+ return renderRequestProcessingTime;
+ }
+
+ public long getActionRequestProcessingTime()
+ {
+ return actionRequestProcessingTime;
+ }
+
+ public long getMaxRenderTime()
+ {
+ return maxRenderTime;
+ }
+
+ public long getMaxActionTime()
+ {
+ return maxActionTime;
+ }
+
+ public String getMaxRenderRequestUri()
+ {
+ return maxRenderRequestUri;
+ }
+
+ public String getMaxActionRequestUri()
+ {
+ return maxActionRequestUri;
+ }
+
+ public synchronized float getAverageRenderTime()
+ {
+ return (float)renderRequestProcessingTime/renderRequestCount;
+ }
+
+ public synchronized float getAverageActionTime()
+ {
+ return (float)actionRequestProcessingTime/actionRequestCount;
+ }
+
+ public int getRenderRequestCount()
+ {
+ return renderRequestCount;
+ }
+
+ public int getActionRequestCount()
+ {
+ return actionRequestCount;
+ }
+
+ public int getRenderErrorCount()
+ {
+ return renderErrorCount;
+ }
+
+ public int getActionErrorCount()
+ {
+ return actionErrorCount;
+ }
+
+ public synchronized void newRenderCall(long time, boolean error)
+ {
+ renderRequestProcessingTime += time;
+ if (time > maxRenderTime)
+ {
+ maxRenderTime = time;
+ }
+ renderRequestCount++;
+ if (error)
+ {
+ renderErrorCount++;
+ }
+ }
+
+ public synchronized void newActionCall(long time, boolean error)
+ {
+ actionRequestProcessingTime += time;
+ if (time > maxActionTime)
+ {
+ maxActionTime = time;
+ }
+ actionRequestCount++;
+ if (error)
+ {
+ actionErrorCount++;
+ }
+ }
+}
More information about the jboss-svn-commits
mailing list