diff options
| author | Keith Wall <kwall@apache.org> | 2012-06-15 13:57:53 +0000 |
|---|---|---|
| committer | Keith Wall <kwall@apache.org> | 2012-06-15 13:57:53 +0000 |
| commit | f5ffdd2417a8c8dd27f3c623e10cde961163c04a (patch) | |
| tree | 0eb2748e5fc6d5d19dcb9803e1387ac75bee5977 /qpid/java/perftests/visualisation-jfc/src/main | |
| parent | 178f342319aee9f6f85545aa48e4a442b060d6b6 (diff) | |
| download | qpid-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')
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; |
