summaryrefslogtreecommitdiff
path: root/qpid/java/perftests/visualisation-jfc/src/main
diff options
context:
space:
mode:
authorKeith Wall <kwall@apache.org>2012-06-15 13:57:53 +0000
committerKeith Wall <kwall@apache.org>2012-06-15 13:57:53 +0000
commitf5ffdd2417a8c8dd27f3c623e10cde961163c04a (patch)
tree0eb2748e5fc6d5d19dcb9803e1387ac75bee5977 /qpid/java/perftests/visualisation-jfc/src/main
parent178f342319aee9f6f85545aa48e4a442b060d6b6 (diff)
downloadqpid-python-f5ffdd2417a8c8dd27f3c623e10cde961163c04a.tar.gz
QPID-3977: ChartingUtil now generates chart-summary.html file to facilitate chart png browsing from CI server.
Applied patch from Philip Harvey <phil@philharveyonline.com> git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1350625 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/perftests/visualisation-jfc/src/main')
-rw-r--r--qpid/java/perftests/visualisation-jfc/src/main/java/org/apache/qpid/disttest/charting/ChartingUtil.java2
-rw-r--r--qpid/java/perftests/visualisation-jfc/src/main/java/org/apache/qpid/disttest/charting/writer/ChartWriter.java64
2 files changed, 66 insertions, 0 deletions
diff --git a/qpid/java/perftests/visualisation-jfc/src/main/java/org/apache/qpid/disttest/charting/ChartingUtil.java b/qpid/java/perftests/visualisation-jfc/src/main/java/org/apache/qpid/disttest/charting/ChartingUtil.java
index f46bc45583..e00859855e 100644
--- a/qpid/java/perftests/visualisation-jfc/src/main/java/org/apache/qpid/disttest/charting/ChartingUtil.java
+++ b/qpid/java/perftests/visualisation-jfc/src/main/java/org/apache/qpid/disttest/charting/ChartingUtil.java
@@ -100,6 +100,8 @@ public class ChartingUtil
JFreeChart chart = chartBuilder.buildChart(chartingDefinition);
writer.writeChartToFileSystem(chart, chartingDefinition.getChartStemName());
}
+
+ writer.writeHtmlSummaryToFileSystem();
}
private List<ChartingDefinition> loadChartDefinitions(String chartingDefsDir)
diff --git a/qpid/java/perftests/visualisation-jfc/src/main/java/org/apache/qpid/disttest/charting/writer/ChartWriter.java b/qpid/java/perftests/visualisation-jfc/src/main/java/org/apache/qpid/disttest/charting/writer/ChartWriter.java
index 14aa5f3a37..134933ef50 100644
--- a/qpid/java/perftests/visualisation-jfc/src/main/java/org/apache/qpid/disttest/charting/writer/ChartWriter.java
+++ b/qpid/java/perftests/visualisation-jfc/src/main/java/org/apache/qpid/disttest/charting/writer/ChartWriter.java
@@ -20,10 +20,14 @@
package org.apache.qpid.disttest.charting.writer;
import java.io.BufferedOutputStream;
+import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
+import java.io.FileWriter;
import java.io.IOException;
import java.io.OutputStream;
+import java.util.ArrayList;
+import java.util.List;
import org.apache.qpid.disttest.charting.ChartingException;
import org.jfree.chart.ChartUtilities;
@@ -34,7 +38,11 @@ import org.slf4j.LoggerFactory;
public class ChartWriter
{
private static final Logger LOGGER = LoggerFactory.getLogger(ChartWriter.class);
+
+ static final String SUMMARY_FILE_NAME = "chart-summary.html";
+
private File _chartDirectory = new File(".");
+ private List<File> _chartFiles = new ArrayList<File>();
public void writeChartToFileSystem(JFreeChart chart, String chartStemName)
{
@@ -47,6 +55,8 @@ public class ChartWriter
ChartUtilities.writeChartAsPNG(pngOutputStream, chart, 600, 400, true, 0);
pngOutputStream.close();
+ _chartFiles.add(pngFile);
+
LOGGER.info("Written {} chart", pngFile);
}
catch (IOException e)
@@ -69,6 +79,60 @@ public class ChartWriter
}
}
+ public void writeHtmlSummaryToFileSystem()
+ {
+ if(_chartFiles.size() < 2)
+ {
+ LOGGER.info("Only " + _chartFiles.size() + " chart image(s) have been written so no HTML summary file will be produced");
+ return;
+ }
+
+ String htmlHeader =
+ "<html>\n" +
+ " <head>\n" +
+ " <title>Performance Charts</title>\n" +
+ " </head>\n" +
+ " <body>\n";
+
+ String htmlFooter =
+ " </body>\n" +
+ "</html>";
+
+ BufferedWriter writer = null;
+ try
+ {
+ File summaryFile = new File(_chartDirectory, SUMMARY_FILE_NAME);
+ LOGGER.debug("About to produce HTML summary file " + summaryFile.getAbsolutePath() + " from charts " + _chartFiles);
+
+ writer = new BufferedWriter(new FileWriter(summaryFile));
+ writer.write(htmlHeader);
+ for (File chartFile : _chartFiles)
+ {
+ writer.write(" <img src='" + chartFile.getName() + "'/>\n");
+ }
+ writer.write(htmlFooter);
+ writer.close();
+ }
+ catch (Exception e)
+ {
+ throw new ChartingException("Failed to create HTML summary file", e);
+ }
+ finally
+ {
+ if(writer != null)
+ {
+ try
+ {
+ writer.close();
+ }
+ catch(IOException e)
+ {
+ throw new ChartingException("Failed to create HTML summary file", e);
+ }
+ }
+ }
+ }
+
public void setOutputDirectory(final File chartDirectory)
{
_chartDirectory = chartDirectory;