You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@turbine.apache.org by sg...@apache.org on 2007/09/09 19:33:05 UTC
svn commit: r574038 -
/turbine/fulcrum/trunk/yaafi/src/java/org/apache/fulcrum/yaafi/interceptor/jamon/Jamon2PerformanceMonitorImpl.java
Author: sgoeschl
Date: Sun Sep 9 10:33:05 2007
New Revision: 574038
URL: http://svn.apache.org/viewvc?rev=574038&view=rev
Log:
Adding skeleton for JAMon 2.x integration
Added:
turbine/fulcrum/trunk/yaafi/src/java/org/apache/fulcrum/yaafi/interceptor/jamon/Jamon2PerformanceMonitorImpl.java
Added: turbine/fulcrum/trunk/yaafi/src/java/org/apache/fulcrum/yaafi/interceptor/jamon/Jamon2PerformanceMonitorImpl.java
URL: http://svn.apache.org/viewvc/turbine/fulcrum/trunk/yaafi/src/java/org/apache/fulcrum/yaafi/interceptor/jamon/Jamon2PerformanceMonitorImpl.java?rev=574038&view=auto
==============================================================================
--- turbine/fulcrum/trunk/yaafi/src/java/org/apache/fulcrum/yaafi/interceptor/jamon/Jamon2PerformanceMonitorImpl.java (added)
+++ turbine/fulcrum/trunk/yaafi/src/java/org/apache/fulcrum/yaafi/interceptor/jamon/Jamon2PerformanceMonitorImpl.java Sun Sep 9 10:33:05 2007
@@ -0,0 +1,93 @@
+package org.apache.fulcrum.yaafi.interceptor.jamon;
+
+import com.jamonapi.Monitor;
+import com.jamonapi.MonitorFactory;
+
+import java.lang.reflect.Method;
+
+import org.apache.fulcrum.yaafi.interceptor.util.MethodToStringBuilderImpl;
+
+/**
+ * Ecapsulating the JAMon 2.x related API calls. JAMon 2.x allows for a much
+ * more powerful integration with Avalon services :
+ * <ul>
+ * <li>custom ranges/units</li>
+ * <li>exception monitoring</li>
+ * <li>smooth web interface</li>
+ * </ul>
+ *
+ * @author <a href="mailto:siegfried.goeschl@it20one.at">Siegfried Goeschl</a>
+ */
+
+public class Jamon2PerformanceMonitorImpl implements JamonPerformanceMonitor
+{
+ /** is monitoring enabled */
+ private boolean isActive;
+
+ /** the method currenty monitored */
+ private Method method;
+
+ /** the global JAMON monitor */
+ private Monitor monitor;
+
+ /**
+ * Constructor.
+ *
+ * @param serviceName the service name of the service being monitored
+ * @param method the method to be monitored
+ * @param isActive is this an active monitor
+ */
+ public Jamon2PerformanceMonitorImpl(String serviceName, Method method, Boolean isActive) {
+ this.method = method;
+ this.isActive = isActive.booleanValue();
+ }
+
+ /**
+ * Start the monitor.
+ */
+ public void start()
+ {
+ if(this.isActive)
+ {
+ MethodToStringBuilderImpl methodToStringBuilder = new MethodToStringBuilderImpl(this.method, 0);
+ String methodSignature = methodToStringBuilder.toString();
+ this.monitor = MonitorFactory.start(methodSignature);
+ }
+ }
+
+ /**
+ * Start the monitor.
+ */
+ public void stop()
+ {
+ if(this.isActive)
+ {
+ this.monitor.stop();
+ }
+ }
+
+ /**
+ * Stop the monitor based on an Throwable.
+ */
+ public void stop(Throwable throwable)
+ {
+ this.stop();
+ }
+
+ /**
+ * Create a performance report
+ */
+ public String createReport() throws Exception
+ {
+ String result = "";
+ try
+ {
+ result = MonitorFactory.getRootMonitor().getReport();
+ }
+ catch (Exception e)
+ {
+
+ }
+ return result;
+ }
+}