summaryrefslogtreecommitdiff
path: root/qpid/java/perftests/visualisation-jfc
diff options
context:
space:
mode:
authorKeith Wall <kwall@apache.org>2012-07-02 14:26:36 +0000
committerKeith Wall <kwall@apache.org>2012-07-02 14:26:36 +0000
commit220f542e8e00932cfcd3d4c4f7832c58b7fef4cd (patch)
tree257838ce9fa6491e2333ef15fd0203c24bb23297 /qpid/java/perftests/visualisation-jfc
parent7d96daca11cde3df099c652b671e3bf8ab2627b6 (diff)
downloadqpid-python-220f542e8e00932cfcd3d4c4f7832c58b7fef4cd.tar.gz
QPID-4089: Add latency tests into java performance test framework
Applied patch from Oleksandr Rudyy <orudyy@gmail.com>. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1356250 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/perftests/visualisation-jfc')
-rw-r--r--qpid/java/perftests/visualisation-jfc/src/main/java/org/apache/qpid/disttest/charting/ChartType.java2
-rw-r--r--qpid/java/perftests/visualisation-jfc/src/main/java/org/apache/qpid/disttest/charting/chartbuilder/CategoryDataSetBasedChartBuilder.java9
-rw-r--r--qpid/java/perftests/visualisation-jfc/src/main/java/org/apache/qpid/disttest/charting/chartbuilder/ChartBuilderFactory.java2
-rw-r--r--qpid/java/perftests/visualisation-jfc/src/main/java/org/apache/qpid/disttest/charting/chartbuilder/StatisticalBarCharBuilder.java108
-rw-r--r--qpid/java/perftests/visualisation-jfc/src/main/java/org/apache/qpid/disttest/charting/chartbuilder/XYDataSetBasedChartBuilder.java6
-rw-r--r--qpid/java/perftests/visualisation-jfc/src/main/java/org/apache/qpid/disttest/charting/seriesbuilder/JdbcCsvSeriesBuilder.java11
-rw-r--r--qpid/java/perftests/visualisation-jfc/src/main/java/org/apache/qpid/disttest/charting/seriesbuilder/SeriesBuilderCallback.java2
-rw-r--r--qpid/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/chartbuilder/ChartProductionTest.java10
-rw-r--r--qpid/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/seriesbuilder/JdbcCsvSeriesBuilderTest.java6
9 files changed, 135 insertions, 21 deletions
diff --git a/qpid/java/perftests/visualisation-jfc/src/main/java/org/apache/qpid/disttest/charting/ChartType.java b/qpid/java/perftests/visualisation-jfc/src/main/java/org/apache/qpid/disttest/charting/ChartType.java
index 8bddfd1379..ed09f4a77e 100644
--- a/qpid/java/perftests/visualisation-jfc/src/main/java/org/apache/qpid/disttest/charting/ChartType.java
+++ b/qpid/java/perftests/visualisation-jfc/src/main/java/org/apache/qpid/disttest/charting/ChartType.java
@@ -21,5 +21,5 @@ package org.apache.qpid.disttest.charting;
public enum ChartType
{
- LINE, LINE3D, BAR, BAR3D, XYLINE
+ LINE, LINE3D, BAR, BAR3D, XYLINE, STATISTICAL_BAR
}
diff --git a/qpid/java/perftests/visualisation-jfc/src/main/java/org/apache/qpid/disttest/charting/chartbuilder/CategoryDataSetBasedChartBuilder.java b/qpid/java/perftests/visualisation-jfc/src/main/java/org/apache/qpid/disttest/charting/chartbuilder/CategoryDataSetBasedChartBuilder.java
index ad33da8311..5617b9c330 100644
--- a/qpid/java/perftests/visualisation-jfc/src/main/java/org/apache/qpid/disttest/charting/chartbuilder/CategoryDataSetBasedChartBuilder.java
+++ b/qpid/java/perftests/visualisation-jfc/src/main/java/org/apache/qpid/disttest/charting/chartbuilder/CategoryDataSetBasedChartBuilder.java
@@ -19,6 +19,7 @@
*/
package org.apache.qpid.disttest.charting.chartbuilder;
+
import org.apache.qpid.disttest.charting.definition.ChartingDefinition;
import org.apache.qpid.disttest.charting.definition.SeriesDefinition;
import org.apache.qpid.disttest.charting.seriesbuilder.SeriesBuilderCallback;
@@ -47,11 +48,10 @@ public abstract class CategoryDataSetBasedChartBuilder extends BaseChartBuilder
_seriesBuilder.setSeriesBuilderCallback(new SeriesBuilderCallback()
{
@Override
- public void addDataPointToSeries(SeriesDefinition seriesDefinition,
- Object xValue, Object yValue)
+ public void addDataPointToSeries(SeriesDefinition seriesDefinition, Object[] row)
{
- String x = String.valueOf(xValue);
- double y = Double.parseDouble(yValue.toString());
+ String x = String.valueOf(row[0]);
+ double y = Double.parseDouble(row[1].toString());
dataset.addValue( y, seriesDefinition.getSeriesLegend(), x);
}
@@ -66,6 +66,7 @@ public abstract class CategoryDataSetBasedChartBuilder extends BaseChartBuilder
{
// unused
}
+
});
_seriesBuilder.build(chartingDefinition.getSeries());
diff --git a/qpid/java/perftests/visualisation-jfc/src/main/java/org/apache/qpid/disttest/charting/chartbuilder/ChartBuilderFactory.java b/qpid/java/perftests/visualisation-jfc/src/main/java/org/apache/qpid/disttest/charting/chartbuilder/ChartBuilderFactory.java
index f9d5a5a0df..f4e11a2c4d 100644
--- a/qpid/java/perftests/visualisation-jfc/src/main/java/org/apache/qpid/disttest/charting/chartbuilder/ChartBuilderFactory.java
+++ b/qpid/java/perftests/visualisation-jfc/src/main/java/org/apache/qpid/disttest/charting/chartbuilder/ChartBuilderFactory.java
@@ -39,6 +39,8 @@ public class ChartBuilderFactory
return new BarChart3DBuilder(seriesBuilder);
case XYLINE:
return new XYLineChartBuilder(seriesBuilder);
+ case STATISTICAL_BAR:
+ return new StatisticalBarCharBuilder(seriesBuilder);
default:
throw new IllegalArgumentException("Unknown chart type " + chartType);
}
diff --git a/qpid/java/perftests/visualisation-jfc/src/main/java/org/apache/qpid/disttest/charting/chartbuilder/StatisticalBarCharBuilder.java b/qpid/java/perftests/visualisation-jfc/src/main/java/org/apache/qpid/disttest/charting/chartbuilder/StatisticalBarCharBuilder.java
new file mode 100644
index 0000000000..843b57939f
--- /dev/null
+++ b/qpid/java/perftests/visualisation-jfc/src/main/java/org/apache/qpid/disttest/charting/chartbuilder/StatisticalBarCharBuilder.java
@@ -0,0 +1,108 @@
+/*
+ *
+ * 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.qpid.disttest.charting.chartbuilder;
+
+import java.awt.Font;
+
+import org.apache.qpid.disttest.charting.definition.ChartingDefinition;
+import org.apache.qpid.disttest.charting.definition.SeriesDefinition;
+import org.apache.qpid.disttest.charting.seriesbuilder.SeriesBuilder;
+import org.apache.qpid.disttest.charting.seriesbuilder.SeriesBuilderCallback;
+import org.jfree.chart.JFreeChart;
+import org.jfree.chart.axis.CategoryAxis;
+import org.jfree.chart.axis.NumberAxis;
+import org.jfree.chart.axis.ValueAxis;
+import org.jfree.chart.plot.CategoryPlot;
+import org.jfree.chart.plot.PlotOrientation;
+import org.jfree.chart.renderer.category.CategoryItemRenderer;
+import org.jfree.chart.renderer.category.StatisticalBarRenderer;
+import org.jfree.data.general.Dataset;
+import org.jfree.data.statistics.DefaultStatisticalCategoryDataset;
+import org.jfree.data.statistics.StatisticalCategoryDataset;
+
+public class StatisticalBarCharBuilder extends BaseChartBuilder
+{
+ private final SeriesBuilder _seriesBuilder;
+
+ public StatisticalBarCharBuilder(SeriesBuilder seriesBuilder)
+ {
+ _seriesBuilder = seriesBuilder;
+ }
+
+ @Override
+ public JFreeChart buildChart(ChartingDefinition chartingDefinition)
+ {
+ String title = chartingDefinition.getChartTitle();
+ String xAxisTitle = chartingDefinition.getXAxisTitle();
+ String yAxisTitle = chartingDefinition.getYAxisTitle();
+
+ final DefaultStatisticalCategoryDataset dataset = new DefaultStatisticalCategoryDataset();
+
+ _seriesBuilder.setSeriesBuilderCallback(new SeriesBuilderCallback()
+ {
+ @Override
+ public void addDataPointToSeries(SeriesDefinition seriesDefinition, Object[] row)
+ {
+ String x = String.valueOf(row[0]);
+ double mean = Double.parseDouble(row[1].toString());
+ double stdDev = Double.parseDouble(row[2].toString());
+ dataset.add(mean, stdDev, seriesDefinition.getSeriesLegend(), x);
+ }
+
+ @Override
+ public void beginSeries(SeriesDefinition seriesDefinition)
+ {
+ // unused
+ }
+
+ @Override
+ public void endSeries(SeriesDefinition seriesDefinition)
+ {
+ // unused
+ }
+
+ });
+
+ _seriesBuilder.build(chartingDefinition.getSeries());
+
+ JFreeChart chart = createChartImpl(title, xAxisTitle, yAxisTitle, dataset, PLOT_ORIENTATION, SHOW_LEGEND,
+ SHOW_TOOL_TIPS, SHOW_URLS);
+
+ addCommonChartAttributes(chart, chartingDefinition);
+
+ return chart;
+ }
+
+ @Override
+ public JFreeChart createChartImpl(String title, String xAxisTitle, String yAxisTitle, final Dataset dataset,
+ PlotOrientation plotOrientation, boolean showLegend, boolean showToolTips, boolean showUrls)
+ {
+ CategoryAxis xAxis = new CategoryAxis(xAxisTitle);
+ ValueAxis yAxis = new NumberAxis(yAxisTitle);
+ CategoryItemRenderer renderer = new StatisticalBarRenderer();
+
+ CategoryPlot plot = new CategoryPlot((StatisticalCategoryDataset) dataset, xAxis, yAxis, renderer);
+
+ JFreeChart chart = new JFreeChart(title, new Font("Arial", Font.PLAIN, 10), plot, true);
+ return chart;
+ }
+
+}
diff --git a/qpid/java/perftests/visualisation-jfc/src/main/java/org/apache/qpid/disttest/charting/chartbuilder/XYDataSetBasedChartBuilder.java b/qpid/java/perftests/visualisation-jfc/src/main/java/org/apache/qpid/disttest/charting/chartbuilder/XYDataSetBasedChartBuilder.java
index 6814272b8e..8d5332c126 100644
--- a/qpid/java/perftests/visualisation-jfc/src/main/java/org/apache/qpid/disttest/charting/chartbuilder/XYDataSetBasedChartBuilder.java
+++ b/qpid/java/perftests/visualisation-jfc/src/main/java/org/apache/qpid/disttest/charting/chartbuilder/XYDataSetBasedChartBuilder.java
@@ -60,10 +60,10 @@ public abstract class XYDataSetBasedChartBuilder extends BaseChartBuilder
@Override
public void addDataPointToSeries(SeriesDefinition seriesDefinition,
- Object xValue, Object yValue)
+ Object[] row)
{
- double x = Double.parseDouble(xValue.toString());
- double y = Double.parseDouble(yValue.toString());
+ double x = Double.parseDouble(row[0].toString());
+ double y = Double.parseDouble(row[1].toString());
_xyPairs.add(new Double[] {x, y});
}
diff --git a/qpid/java/perftests/visualisation-jfc/src/main/java/org/apache/qpid/disttest/charting/seriesbuilder/JdbcCsvSeriesBuilder.java b/qpid/java/perftests/visualisation-jfc/src/main/java/org/apache/qpid/disttest/charting/seriesbuilder/JdbcCsvSeriesBuilder.java
index 8b4c2ab382..a9adce0afc 100644
--- a/qpid/java/perftests/visualisation-jfc/src/main/java/org/apache/qpid/disttest/charting/seriesbuilder/JdbcCsvSeriesBuilder.java
+++ b/qpid/java/perftests/visualisation-jfc/src/main/java/org/apache/qpid/disttest/charting/seriesbuilder/JdbcCsvSeriesBuilder.java
@@ -71,14 +71,17 @@ public class JdbcCsvSeriesBuilder implements SeriesBuilder
stmt = conn.createStatement();
ResultSet results = stmt.executeQuery(seriesStatement);
-
+ int columnCount = results.getMetaData().getColumnCount();
_callback.beginSeries(seriesDefinition);
while (results.next())
{
- Object xValue = results.getObject(1);
- Object yValue = results.getObject(2);
+ Object[] row = new Object[columnCount];
+ for (int i = 0; i < row.length; i++)
+ {
+ row[i] = results.getObject(i+1);
+ }
- _callback.addDataPointToSeries(seriesDefinition, xValue, yValue);
+ _callback.addDataPointToSeries(seriesDefinition, row);
}
_callback.endSeries(seriesDefinition);
}
diff --git a/qpid/java/perftests/visualisation-jfc/src/main/java/org/apache/qpid/disttest/charting/seriesbuilder/SeriesBuilderCallback.java b/qpid/java/perftests/visualisation-jfc/src/main/java/org/apache/qpid/disttest/charting/seriesbuilder/SeriesBuilderCallback.java
index 22c99deca0..7e23953fdb 100644
--- a/qpid/java/perftests/visualisation-jfc/src/main/java/org/apache/qpid/disttest/charting/seriesbuilder/SeriesBuilderCallback.java
+++ b/qpid/java/perftests/visualisation-jfc/src/main/java/org/apache/qpid/disttest/charting/seriesbuilder/SeriesBuilderCallback.java
@@ -24,7 +24,7 @@ import org.apache.qpid.disttest.charting.definition.SeriesDefinition;
public interface SeriesBuilderCallback
{
public void beginSeries(SeriesDefinition seriesDefinition);
- public void addDataPointToSeries(SeriesDefinition seriesDefinition, Object xValue, Object yValue);
+ public void addDataPointToSeries(SeriesDefinition seriesDefinition, Object[] row);
public void endSeries(SeriesDefinition seriesDefinition);
}
diff --git a/qpid/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/chartbuilder/ChartProductionTest.java b/qpid/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/chartbuilder/ChartProductionTest.java
index 51bde1327b..d2f988f7c8 100644
--- a/qpid/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/chartbuilder/ChartProductionTest.java
+++ b/qpid/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/chartbuilder/ChartProductionTest.java
@@ -146,11 +146,11 @@ public class ChartProductionTest extends TestCase
{
SeriesDefinition seriesDefinition = iterator.next();
_dataPointCallback.beginSeries(seriesDefinition);
- _dataPointCallback.addDataPointToSeries(seriesDefinition, Double.valueOf(1), Double.valueOf(1));
- _dataPointCallback.addDataPointToSeries(seriesDefinition, Double.valueOf(2), Double.valueOf(2));
- _dataPointCallback.addDataPointToSeries(seriesDefinition, Double.valueOf(4), Double.valueOf(4));
- _dataPointCallback.addDataPointToSeries(seriesDefinition, Double.valueOf(5), Double.valueOf(5));
- _dataPointCallback.addDataPointToSeries(seriesDefinition, Double.valueOf(6), Double.valueOf(3));
+ _dataPointCallback.addDataPointToSeries(seriesDefinition, new Object[]{1d, 1d});
+ _dataPointCallback.addDataPointToSeries(seriesDefinition, new Object[]{2d, 2d});
+ _dataPointCallback.addDataPointToSeries(seriesDefinition, new Object[]{4d, 4d});
+ _dataPointCallback.addDataPointToSeries(seriesDefinition, new Object[]{5d, 5d});
+ _dataPointCallback.addDataPointToSeries(seriesDefinition, new Object[]{6d, 3d});
_dataPointCallback.endSeries(seriesDefinition);
}
}
diff --git a/qpid/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/seriesbuilder/JdbcCsvSeriesBuilderTest.java b/qpid/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/seriesbuilder/JdbcCsvSeriesBuilderTest.java
index ae241b453d..5148a25bec 100644
--- a/qpid/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/seriesbuilder/JdbcCsvSeriesBuilderTest.java
+++ b/qpid/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/seriesbuilder/JdbcCsvSeriesBuilderTest.java
@@ -59,9 +59,9 @@ public class JdbcCsvSeriesBuilderTest extends TestCase
_seriesBuilder.build(Collections.singletonList(seriesDefinition));
verify(_seriesWalkerCallback).beginSeries(seriesDefinition);
- verify(_seriesWalkerCallback).addDataPointToSeries(seriesDefinition, (Object)"elephant", (Object)"2");
- verify(_seriesWalkerCallback).addDataPointToSeries(seriesDefinition, (Object)"lion", (Object)"3");
- verify(_seriesWalkerCallback).addDataPointToSeries(seriesDefinition, (Object)"tiger", (Object)"4");
+ verify(_seriesWalkerCallback).addDataPointToSeries(seriesDefinition, new Object[]{"elephant", "2"});
+ verify(_seriesWalkerCallback).addDataPointToSeries(seriesDefinition, new Object[]{"lion", "3"});
+ verify(_seriesWalkerCallback).addDataPointToSeries(seriesDefinition, new Object[]{"tiger", "4"});
verify(_seriesWalkerCallback).endSeries(seriesDefinition);
}