You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by ni...@apache.org on 2008/04/10 11:02:09 UTC
svn commit: r646698 - in /commons/sandbox/monitoring/trunk/src:
main/java/org/apache/commons/monitoring/listeners/
main/java/org/apache/commons/monitoring/reporting/
main/java/org/apache/commons/monitoring/reporting/web/
test/java/org/apache/commons/mo...
Author: nicolas
Date: Thu Apr 10 02:02:07 2008
New Revision: 646698
URL: http://svn.apache.org/viewvc?rev=646698&view=rev
Log:
generate Flot graph output
Added:
commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/FlotRenderer.java (with props)
commons/sandbox/monitoring/trunk/src/test/resources/org/apache/commons/monitoring/reporting/RendererTest.flot
Modified:
commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/listeners/HistorizedRepositoryDecorator.java
commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/AbstractRenderer.java
commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/HtmlRenderer.java
commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/JsonRenderer.java
commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/OptionsSupport.java
commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/Renderer.java
commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/TxtRenderer.java
commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/XmlRenderer.java
commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/web/MonitoringServlet.java
commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/web/NiceHtmlRenderer.java
commons/sandbox/monitoring/trunk/src/test/java/org/apache/commons/monitoring/reporting/RendererTest.java
Modified: commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/listeners/HistorizedRepositoryDecorator.java
URL: http://svn.apache.org/viewvc/commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/listeners/HistorizedRepositoryDecorator.java?rev=646698&r1=646697&r2=646698&view=diff
==============================================================================
--- commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/listeners/HistorizedRepositoryDecorator.java (original)
+++ commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/listeners/HistorizedRepositoryDecorator.java Thu Apr 10 02:02:07 2008
@@ -24,8 +24,10 @@
import java.util.Set;
import org.apache.commons.monitoring.Monitor;
+import org.apache.commons.monitoring.Monitoring;
import org.apache.commons.monitoring.Repository;
import org.apache.commons.monitoring.StopWatch;
+import org.apache.commons.monitoring.Unit;
import org.apache.commons.monitoring.reporting.AbstractPeriodicLogger;
/**
@@ -42,7 +44,6 @@
private int size;
- @SuppressWarnings( "serial" )
public HistorizedRepositoryDecorator( long period, final int size, Observable repository )
{
super( period, repository );
@@ -68,6 +69,8 @@
{
history.remove( history.size() );
}
+
+ Monitoring.getMonitor( "test" ).getCounter( Monitor.PERFORMANCES ).add( (long) (Math.random() * 10), Unit.MILLIS );
}
public void addListener( Listener listener )
Modified: commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/AbstractRenderer.java
URL: http://svn.apache.org/viewvc/commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/AbstractRenderer.java?rev=646698&r1=646697&r2=646698&view=diff
==============================================================================
--- commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/AbstractRenderer.java (original)
+++ commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/AbstractRenderer.java Thu Apr 10 02:02:07 2008
@@ -42,9 +42,17 @@
public abstract class AbstractRenderer
implements Renderer
{
- public final void render( Context ctx, Collection<Monitor> monitors )
+ private String contentType;
+
+
+ protected static final String MONITORS = "monitors";
+
+ protected static final String ROLES = "roles";
+
+ public AbstractRenderer( String contentType )
{
- render( ctx, monitors, new OptionsSupport() );
+ super();
+ this.contentType = contentType;
}
public void render( Context ctx, Collection<Monitor> monitors, Options options )
@@ -68,8 +76,8 @@
protected void prepareRendering( Context ctx, Collection<Monitor> monitors, Options options )
{
List<String> roles = getRoles( monitors, options );
- ctx.put( "roles", roles );
- ctx.put( "monitors", monitors );
+ ctx.put( ROLES, roles );
+ ctx.put( MONITORS, monitors );
}
protected void hasNext( Context ctx, Class<?> type )
@@ -102,7 +110,7 @@
@SuppressWarnings( "unchecked" )
protected void renderStatValues( Context ctx, Monitor monitor, Options options )
{
- List<String> roles = (List<String>) ctx.get( "roles" );
+ List<String> roles = (List<String>) ctx.get( ROLES );
renderStatValues( ctx, monitor, options, roles );
}
@@ -161,35 +169,36 @@
protected void render( Context ctx, StatValue value, Options options )
{
+ String role = value.getRole();
if ( value instanceof Counter )
{
Counter counter = (Counter) value;
- if ( options.render( value, "hits" ) )
+ if ( options.render( role, "hits" ) )
{
render( ctx, value, "hits", counter.getHits(), options, 0 );
}
- if ( options.render( value, "sum" ) )
+ if ( options.render( role, "sum" ) )
{
render( ctx, value, "sum", counter.getSum(), options );
}
}
- if ( options.render( value, "min" ) )
+ if ( options.render( role, "min" ) )
{
render( ctx, value, "min", value.getMin(), options );
}
- if ( options.render( value, "max" ) )
+ if ( options.render( role, "max" ) )
{
render( ctx, value, "max", value.getMax(), options );
}
- if ( options.render( value, "mean" ) )
+ if ( options.render( role, "mean" ) )
{
render( ctx, value, "mean", value.getMean(), options );
}
- if ( options.render( value, "deviation" ) )
+ if ( options.render( role, "deviation" ) )
{
render( ctx, value, "deviation", value.getStandardDeviation(), options, 1 );
}
- if ( options.render( value, "value" ) )
+ if ( options.render( role, "value" ) )
{
render( ctx, value, "value", value.get(), options, 1 );
}
@@ -243,7 +252,7 @@
{
if ( Double.isNaN( d ) )
{
- ctx.print( "-" );
+ renderNaN( ctx );
return;
}
Unit unit = options.unitFor( value );
@@ -258,6 +267,11 @@
ctx.print( options.getDecimalFormat().format( d ) );
}
+ protected void renderNaN( Context ctx )
+ {
+ ctx.print( "-" );
+ }
+
/**
* @param monitors
* @return
@@ -281,5 +295,10 @@
List<String> sorted = new ArrayList<String>( roles );
Collections.sort( sorted );
return sorted;
+ }
+
+ public String getContentType()
+ {
+ return contentType;
}
}
Added: commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/FlotRenderer.java
URL: http://svn.apache.org/viewvc/commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/FlotRenderer.java?rev=646698&view=auto
==============================================================================
--- commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/FlotRenderer.java (added)
+++ commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/FlotRenderer.java Thu Apr 10 02:02:07 2008
@@ -0,0 +1,172 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.commons.monitoring.reporting;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+
+import org.apache.commons.monitoring.Monitor;
+import org.apache.commons.monitoring.StatValue;
+import org.apache.commons.monitoring.Monitor.Key;
+import org.apache.commons.monitoring.listeners.Detachable;
+
+/**
+ * Render as a graph, based on jQuery Flot javascript library
+ * <p>
+ * This renderer produces JavaScript, and expect the HTML page to include
+ * <ul>
+ * <li> the required <script> tags :
+ *
+ * <pre>
+ * <script src="jquery.pack.js" ></script>
+ * <script src="jquery.flot.pack.js" ></script>
+ * <!--[if IE]><script src="excanvas.pack.js" ></script><![endif]-->
+ * </pre>
+ *
+ * </li>
+ * <li>
+ * a <div& id="placeholder"gt; to draw the graph into, having <tt>width</tt> and <tt>height</tt>
+ * style set.
+ * </li>
+ * </ul>
+ *
+ * @see http://code.google.com/p/flot/
+ * @author <a href="mailto:nicolas@apache.org">Nicolas De Loof</a>
+ */
+public class FlotRenderer
+ extends AbstractRenderer
+{
+ private static final String[] ATTRIBUTES = { "hits", "sum", "min", "max", "mean", "deviation", "value" };
+
+ public FlotRenderer()
+ {
+ super( "text/javascript" );
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.apache.commons.monitoring.reporting.Renderer#render(org.apache.commons.monitoring.reporting.Context,
+ * java.util.Collection,
+ * org.apache.commons.monitoring.reporting.Renderer.Options)
+ */
+ @Override
+ public void render( Context ctx, Collection<Monitor> monitors, Options options )
+ {
+ prepareRendering( ctx, monitors, options );
+ ctx.print( "$.plot($('#placeholder'), [" );
+
+ int color = 0;
+ for ( Iterator<String> it = ( (Collection) ctx.get( ROLES ) ).iterator(); it.hasNext(); )
+ {
+ String role = it.next();
+ List<String> attribues = new ArrayList<String>();
+ for ( String attribute : ATTRIBUTES )
+ {
+ if ( !options.render( role, attribute ) )
+ {
+ continue;
+ }
+ attribues.add( attribute );
+ }
+
+ for ( Iterator<String> attr = attribues.iterator(); attr.hasNext(); )
+ {
+ final String attribute = attr.next();
+ ctx.print( "{ color: " + color );
+ ctx.print( ", label: \"" );
+ ctx.print( role + "." + attribute );
+ ctx.print( "\", data: " );
+ ctx.print( "[" );
+ int x = 0;
+ for ( Iterator<Monitor> iterator = monitors.iterator(); iterator.hasNext(); )
+ {
+ Monitor monitor = iterator.next();
+ x++;
+ StatValue value = monitor.getValue( role );
+ if ( value == null )
+ {
+ continue;
+ }
+ ctx.put( "x", x );
+ render( ctx, value, new OptionsSupport()
+ {
+ @Override
+ public boolean render( String role, String string )
+ {
+ return string.equals( attribute );
+ }
+ });
+ if ( iterator.hasNext() )
+ {
+ ctx.print( "," );
+ }
+ }
+ ctx.print( "]" );
+ ctx.print( "}" );
+ if ( attr.hasNext() )
+ {
+ ctx.print( "," );
+ }
+ color++;
+ }
+ if ( it.hasNext() )
+ {
+ ctx.print( "," );
+ }
+ }
+
+ ctx.print( "] );" );
+ }
+
+ protected void render( Context ctx, StatValue value, String attribute, Number number, Options options, int ratio )
+ {
+ ctx.print( "[" + ctx.get( "x" ) + "," );
+ super.render( ctx, value, attribute, number, options, ratio );
+ ctx.print( "]" );
+ }
+
+ @Override
+ protected void renderNaN( Context ctx )
+ {
+ ctx.print( "NaN" );
+ }
+
+ /**
+ * {@inheritDoc}
+ * @see org.apache.commons.monitoring.reporting.AbstractRenderer#render(org.apache.commons.monitoring.reporting.Context, org.apache.commons.monitoring.Monitor.Key)
+ */
+ @Override
+ protected void render( Context ctx, Key key )
+ {
+ // Not used here
+ }
+
+ /**
+ * {@inheritDoc}
+ * @see org.apache.commons.monitoring.reporting.AbstractRenderer#renderDetached(org.apache.commons.monitoring.reporting.Context, org.apache.commons.monitoring.listeners.Detachable, org.apache.commons.monitoring.reporting.Renderer.Options)
+ */
+ @Override
+ protected void renderDetached( Context ctx, Detachable detached, Options options )
+ {
+ // Not used here
+ }
+
+}
Propchange: commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/FlotRenderer.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/FlotRenderer.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Propchange: commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/FlotRenderer.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/HtmlRenderer.java
URL: http://svn.apache.org/viewvc/commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/HtmlRenderer.java?rev=646698&r1=646697&r2=646698&view=diff
==============================================================================
--- commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/HtmlRenderer.java (original)
+++ commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/HtmlRenderer.java Thu Apr 10 02:02:07 2008
@@ -28,7 +28,6 @@
import org.apache.commons.monitoring.Unit;
import org.apache.commons.monitoring.Monitor.Key;
import org.apache.commons.monitoring.listeners.Detachable;
-import org.apache.commons.monitoring.listeners.SecondaryMonitor;
/**
* @author <a href="mailto:nicolas@apache.org">Nicolas De Loof</a>
@@ -37,6 +36,11 @@
extends AbstractRenderer
{
+ public HtmlRenderer()
+ {
+ super( "text/html" );
+ }
+
/**
* {@inheritDoc}
*
@@ -114,14 +118,14 @@
int span = 0;
if ( value instanceof Counter )
{
- span += options.render( value, "hits" ) ? 1 : 0;
- span += options.render( value, "sum" ) ? 1 : 0;
+ span += options.render( role, "hits" ) ? 1 : 0;
+ span += options.render( role, "sum" ) ? 1 : 0;
}
- span += options.render( value, "min" ) ? 1 : 0;
- span += options.render( value, "max" ) ? 1 : 0;
- span += options.render( value, "mean" ) ? 1 : 0;
- span += options.render( value, "deviation" ) ? 1 : 0;
- span += options.render( value, "value" ) ? 1 : 0;
+ span += options.render( role, "min" ) ? 1 : 0;
+ span += options.render( role, "max" ) ? 1 : 0;
+ span += options.render( role, "mean" ) ? 1 : 0;
+ span += options.render( role, "deviation" ) ? 1 : 0;
+ span += options.render( role, "value" ) ? 1 : 0;
ctx.print( "<td colspan='" );
ctx.print( String.valueOf( span ) );
@@ -174,7 +178,7 @@
protected void writeColumnHead( Context ctx, Options options, StatValue value, String attribute )
{
- if ( options.render( value, attribute ) )
+ if ( options.render( value.getRole(), attribute ) )
{
ctx.print( "<th>" );
ctx.print( attribute );
Modified: commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/JsonRenderer.java
URL: http://svn.apache.org/viewvc/commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/JsonRenderer.java?rev=646698&r1=646697&r2=646698&view=diff
==============================================================================
--- commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/JsonRenderer.java (original)
+++ commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/JsonRenderer.java Thu Apr 10 02:02:07 2008
@@ -29,6 +29,12 @@
public class JsonRenderer
extends AbstractRenderer
{
+
+ public JsonRenderer( String contentType )
+ {
+ super( contentType );
+ }
+
@Override
public void render( Context ctx, Collection<Monitor> monitors, Options options )
{
Modified: commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/OptionsSupport.java
URL: http://svn.apache.org/viewvc/commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/OptionsSupport.java?rev=646698&r1=646697&r2=646698&view=diff
==============================================================================
--- commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/OptionsSupport.java (original)
+++ commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/OptionsSupport.java Thu Apr 10 02:02:07 2008
@@ -41,7 +41,7 @@
return true;
}
- public boolean render( StatValue value, String attribute )
+ public boolean render( String role, String attribute )
{
return true;
}
Modified: commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/Renderer.java
URL: http://svn.apache.org/viewvc/commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/Renderer.java?rev=646698&r1=646697&r2=646698&view=diff
==============================================================================
--- commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/Renderer.java (original)
+++ commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/Renderer.java Thu Apr 10 02:02:07 2008
@@ -35,7 +35,7 @@
{
Collection<String> DEFAULT_ROLES = Arrays.asList( new String[] { Monitor.CONCURRENCY, Monitor.PERFORMANCES } );
- void render( Context ctx, Collection<Monitor> monitors );
+ String getContentType();
void render( Context ctx, Collection<Monitor> monitors, Options options );
@@ -43,7 +43,7 @@
{
boolean render( Monitor object );
- boolean render( StatValue value, String attribute );
+ boolean render( String role, String attribute );
boolean renderRole( String role );
Modified: commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/TxtRenderer.java
URL: http://svn.apache.org/viewvc/commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/TxtRenderer.java?rev=646698&r1=646697&r2=646698&view=diff
==============================================================================
--- commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/TxtRenderer.java (original)
+++ commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/TxtRenderer.java Thu Apr 10 02:02:07 2008
@@ -33,6 +33,11 @@
{
private static final String HR = "--------------------------------------------------------------------------------";
+ public TxtRenderer()
+ {
+ super( "text/txt" );
+ }
+
/**
* {@inheritDoc}
* @see org.apache.commons.monitoring.reporting.AbstractRenderer#renderDetached(org.apache.commons.monitoring.reporting.Context, org.apache.commons.monitoring.listeners.SecondaryMonitor, org.apache.commons.monitoring.reporting.Renderer.Options)
Modified: commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/XmlRenderer.java
URL: http://svn.apache.org/viewvc/commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/XmlRenderer.java?rev=646698&r1=646697&r2=646698&view=diff
==============================================================================
--- commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/XmlRenderer.java (original)
+++ commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/XmlRenderer.java Thu Apr 10 02:02:07 2008
@@ -25,11 +25,15 @@
import org.apache.commons.monitoring.StatValue;
import org.apache.commons.monitoring.Monitor.Key;
import org.apache.commons.monitoring.listeners.Detachable;
-import org.apache.commons.monitoring.reporting.Renderer.Options;
public class XmlRenderer
extends AbstractRenderer
{
+
+ public XmlRenderer()
+ {
+ super( "text/xml" );
+ }
/**
* {@inheritDoc}
Modified: commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/web/MonitoringServlet.java
URL: http://svn.apache.org/viewvc/commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/web/MonitoringServlet.java?rev=646698&r1=646697&r2=646698&view=diff
==============================================================================
--- commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/web/MonitoringServlet.java (original)
+++ commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/web/MonitoringServlet.java Thu Apr 10 02:02:07 2008
@@ -38,6 +38,7 @@
import org.apache.commons.monitoring.Unit;
import org.apache.commons.monitoring.Monitor.Key;
import org.apache.commons.monitoring.reporting.Context;
+import org.apache.commons.monitoring.reporting.FlotRenderer;
import org.apache.commons.monitoring.reporting.HtmlRenderer;
import org.apache.commons.monitoring.reporting.JsonRenderer;
import org.apache.commons.monitoring.reporting.OptionsSupport;
@@ -78,8 +79,9 @@
public void init()
throws ServletException
{
- renderers.put( "text/javascript", new JsonRenderer() );
- renderers.put( "application/json", new JsonRenderer() );
+ renderers.put( "text/javascript", new JsonRenderer( "text/javascript" ) );
+ renderers.put( "text/flot", new FlotRenderer() );
+ renderers.put( "application/json", new JsonRenderer( "application/json" ) );
renderers.put( "text/xml", new XmlRenderer() );
renderers.put( "text/html", new HtmlRenderer() );
@@ -201,10 +203,10 @@
&& ( subsystems.isEmpty() || subsystems.contains( key.getSubsystem() ) );
}
- public boolean render( StatValue value, String attribute )
+ public boolean render( String role, String attribute )
{
- String columns = request.getParameter( value.getRole() + ".columns" );
- if ( columns != null )
+ String columns = request.getParameter( role + ".columns" );
+ if ( columns == null )
{
return true;
}
Modified: commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/web/NiceHtmlRenderer.java
URL: http://svn.apache.org/viewvc/commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/web/NiceHtmlRenderer.java?rev=646698&r1=646697&r2=646698&view=diff
==============================================================================
--- commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/web/NiceHtmlRenderer.java (original)
+++ commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/web/NiceHtmlRenderer.java Thu Apr 10 02:02:07 2008
@@ -57,39 +57,39 @@
* @see org.apache.commons.monitoring.reporting.HtmlRenderer#documentHead(java.io.Context)
*/
@Override
- protected void documentHead( Context writer )
+ protected void documentHead( Context ctx )
{
- writer.println( "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" " );
- writer.println( " \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">" );
- writer.println( "<html>" );
- writer.println( "<head>" );
+ ctx.println( "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" " );
+ ctx.println( " \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">" );
+ ctx.println( "<html>" );
+ ctx.println( "<head>" );
if ( title != null )
{
- writer.print( "<title>" );
- writer.print( title );
- writer.println( "</title>" );
+ ctx.print( "<title>" );
+ ctx.print( title );
+ ctx.println( "</title>" );
}
if ( stylesheet != null )
{
- writer.print( "<link rel='stylesheet' type='text/css' href='" );
- writer.print( contextPath );
- writer.print( "/resources/" );
- writer.print( stylesheet );
- writer.println( "' />" );
+ ctx.print( "<link rel='stylesheet' type='text/css' href='" );
+ ctx.print( contextPath );
+ ctx.print( "/resources/" );
+ ctx.print( stylesheet );
+ ctx.println( "' />" );
}
if ( scripts != null )
{
for ( int i = 0; i < scripts.length; i++ )
{
- writer.print( "<script src='" );
- writer.print( contextPath );
- writer.print( "/resources/" );
- writer.print( scripts[i] );
- writer.println( "' ></script>" );
+ ctx.print( "<script src='" );
+ ctx.print( contextPath );
+ ctx.print( "/resources/" );
+ ctx.print( scripts[i] );
+ ctx.println( "' ></script>" );
}
}
- writer.println( "</head>" );
- writer.println( "<body>" );
+ ctx.println( "</head>" );
+ ctx.println( "<body>" );
}
@SuppressWarnings("unchecked")
Modified: commons/sandbox/monitoring/trunk/src/test/java/org/apache/commons/monitoring/reporting/RendererTest.java
URL: http://svn.apache.org/viewvc/commons/sandbox/monitoring/trunk/src/test/java/org/apache/commons/monitoring/reporting/RendererTest.java?rev=646698&r1=646697&r2=646698&view=diff
==============================================================================
--- commons/sandbox/monitoring/trunk/src/test/java/org/apache/commons/monitoring/reporting/RendererTest.java (original)
+++ commons/sandbox/monitoring/trunk/src/test/java/org/apache/commons/monitoring/reporting/RendererTest.java Thu Apr 10 02:02:07 2008
@@ -58,7 +58,7 @@
public void testRenderToJson()
throws Exception
{
- assertExpectedRendering( new JsonRenderer(), "js" );
+ assertExpectedRendering( new JsonRenderer( "text/javascript" ), "js" );
}
public void testRenderToXml()
@@ -79,6 +79,12 @@
assertExpectedRendering( new HtmlRenderer(), "html" );
}
+ public void testRenderToFlot()
+ throws Exception
+ {
+ assertExpectedRendering( new FlotRenderer(), "flot" );
+ }
+
public void testOptions()
throws Exception
{
@@ -105,7 +111,7 @@
{
StringWriter out = new StringWriter();
Context ctx = new Context( new PrintWriter( out ) );
- renderer.render( ctx, monitors );
+ renderer.render( ctx, monitors, new OptionsSupport() );
String actual = out.toString();
actual = StringUtils.remove( StringUtils.remove( actual, "\n" ), "\r" );
Added: commons/sandbox/monitoring/trunk/src/test/resources/org/apache/commons/monitoring/reporting/RendererTest.flot
URL: http://svn.apache.org/viewvc/commons/sandbox/monitoring/trunk/src/test/resources/org/apache/commons/monitoring/reporting/RendererTest.flot?rev=646698&view=auto
==============================================================================
--- commons/sandbox/monitoring/trunk/src/test/resources/org/apache/commons/monitoring/reporting/RendererTest.flot (added)
+++ commons/sandbox/monitoring/trunk/src/test/resources/org/apache/commons/monitoring/reporting/RendererTest.flot Thu Apr 10 02:02:07 2008
@@ -0,0 +1,32 @@
+$.plot($('#placeholder'), [
+
+{ color: 0, label: "concurrency.hits",
+ data: []},
+{ color: 1, label: "concurrency.sum",
+ data: []},
+{ color: 2, label: "concurrency.min",
+ data: [[1,0][2,1]]},
+{ color: 3, label: "concurrency.max",
+ data: [[1,0][2,1]]},
+{ color: 4, label: "concurrency.mean",
+ data: [[1,NaN][2,0.00]]},
+{ color: 5, label: "concurrency.deviation",
+ data: [[1,NaN][2,NaN]]},
+{ color: 6, label: "concurrency.value",
+ data: [[1,0][2,1]]},
+{ color: 7, label: "performances.hits",
+ data: [[1,1][2,0]]},
+{ color: 8, label: "performances.sum",
+ data: [[1,10][2,0]]},
+{ color: 9, label: "performances.min",
+ data: [[1,10][2,0]]},
+{ color: 10, label: "performances.max",
+ data: [[1,10][2,0]]},
+{ color: 11, label: "performances.mean",
+ data: [[1,10.00][2,NaN]]},
+{ color: 12, label: "performances.deviation",
+ data: [[1,NaN][2,NaN]]},
+{ color: 13, label: "performances.value",
+ data: [[1,10][2,0]]}
+
+] );
\ No newline at end of file