[P-unit-devel] SF.net SVN: p-unit: [119] trunk/punit
Status: Beta
Brought to you by:
zhanghuangzhu
|
From: <zha...@us...> - 2007-05-18 17:45:12
|
Revision: 119
http://p-unit.svn.sourceforge.net/p-unit/?rev=119&view=rev
Author: zhanghuangzhu
Date: 2007-05-18 10:45:10 -0700 (Fri, 18 May 2007)
Log Message:
-----------
Andrew Zhang: pdf is done.
Modified Paths:
--------------
trunk/punit/src/org/punit/exception/ConcurrentException.java
trunk/punit/src/org/punit/reporter/stream/StreamLoggerListener.java
trunk/punit/src/org/punit/reporter/stream/file/FileLoggerListener.java
trunk/punit/src/punit.properties
trunk/punit.extension/.classpath
trunk/punit.extension/src/org/punit/reporter/chart/AbstractChartReporter.java
trunk/punit.extension/src/org/punit/reporter/chart/pdf/PDFRender.java
trunk/punit.test/src/extension/tests/samples/TestSuiteVMsSample.java
trunk/punit.test/src/tests/api/org/punit/exception/ConcurrentExceptionTest.java
trunk/punit.test/src/tests/api/org/punit/util/LoggerUtilTest.java
Added Paths:
-----------
trunk/punit/src/org/punit/util/ReporterUtil.java
trunk/punit.extension/lib/itext-2.0.2.jar
trunk/punit.extension/src/org/punit/reporter/chart/pdf/PDFConstants.java
Removed Paths:
-------------
trunk/punit/src/org/punit/util/LoggerUtil.java
Modified: trunk/punit/src/org/punit/exception/ConcurrentException.java
===================================================================
--- trunk/punit/src/org/punit/exception/ConcurrentException.java 2007-05-18 16:00:59 UTC (rev 118)
+++ trunk/punit/src/org/punit/exception/ConcurrentException.java 2007-05-18 17:45:10 UTC (rev 119)
@@ -54,7 +54,7 @@
final StringBuffer sb = new StringBuffer();
public void traverse(Object obj) {
sb.append(((Throwable) obj));
- sb.append(LoggerUtil.LINE_SEPERATOR);
+ sb.append(ReporterUtil.LINE_SEPERATOR);
}
}
}
Modified: trunk/punit/src/org/punit/reporter/stream/StreamLoggerListener.java
===================================================================
--- trunk/punit/src/org/punit/reporter/stream/StreamLoggerListener.java 2007-05-18 16:00:59 UTC (rev 118)
+++ trunk/punit/src/org/punit/reporter/stream/StreamLoggerListener.java 2007-05-18 17:45:10 UTC (rev 119)
@@ -39,7 +39,7 @@
sb.append(Messages.getString("logger.01")); //$NON-NLS-1$
sb.append(" "); //$NON-NLS-1$
sb.append(clazz.getName());
- sb.append(LoggerUtil.LINE_SEPERATOR);
+ sb.append(ReporterUtil.LINE_SEPERATOR);
log(sb.toString(), Level.INFO);
}
@@ -52,7 +52,7 @@
StringBuffer sb = new StringBuffer();
sb.append(Messages.getString("logger.06")); //$NON-NLS-1$
sb.append(suite.getClass().getName());
- sb.append(LoggerUtil.LINE_SEPERATOR);
+ sb.append(ReporterUtil.LINE_SEPERATOR);
log(sb.toString(), Level.INFO);
}
@@ -61,7 +61,7 @@
}
public void onClassStart(Class clazz) {
- log(clazz.getName() + LoggerUtil.LINE_SEPERATOR, Level.INFO);
+ log(clazz.getName() + ReporterUtil.LINE_SEPERATOR, Level.INFO);
}
public void onClassEnd(Class clazz) {
@@ -69,7 +69,7 @@
}
public void onMethodStart(Method method, Object instance, Object[] params) {
- log(LoggerUtil.simpleMethodName(method, params), Level.INFO);
+ log(ReporterUtil.simpleMethodName(method, params), Level.INFO);
}
public void onMethodEnd(Method method, Object instance, Object[] params, Throwable t) {
@@ -115,11 +115,11 @@
}
public void logln(Level level) {
- log(LoggerUtil.LINE_SEPERATOR, level);
+ log(ReporterUtil.LINE_SEPERATOR, level);
}
public void logln(String message, Level level) {
- log(message + LoggerUtil.LINE_SEPERATOR, level);
+ log(message + ReporterUtil.LINE_SEPERATOR, level);
}
public void log(String message, Level level) {
@@ -170,7 +170,7 @@
}
sb.append(") "); //$NON-NLS-1$
sb.append(_timeWatcher.stringValue());
- sb.append(LoggerUtil.LINE_SEPERATOR);
+ sb.append(ReporterUtil.LINE_SEPERATOR);
logger.log(sb.toString(), Level.INFO);
TraverserUtil.traverse(_throwableList.iterator(), new Traverser() {
int count = 0;
Modified: trunk/punit/src/org/punit/reporter/stream/file/FileLoggerListener.java
===================================================================
--- trunk/punit/src/org/punit/reporter/stream/file/FileLoggerListener.java 2007-05-18 16:00:59 UTC (rev 118)
+++ trunk/punit/src/org/punit/reporter/stream/file/FileLoggerListener.java 2007-05-18 17:45:10 UTC (rev 119)
@@ -9,7 +9,7 @@
public class FileLoggerListener extends StreamLoggerListener {
public void onRunnerStart(Class clazz, Runner runner) {
- String fileName = generateFileName(clazz, runner);
+ String fileName = ReporterUtil.generateFileName(clazz, runner) + ".txt"; //$NON-NLS-1$
try {
PrintStream ps = new PrintStream(fileName);
setOutputStream(ps);
@@ -24,24 +24,6 @@
_ps.close();
}
- private String generateFileName(Class clazz, Runner runner) {
- RunnerProperties properties = runner.properties();
- StringBuffer sb = new StringBuffer();
- sb.append(IOUtil.getCurrentPath());
- sb.append(File.separator);
- sb.append(RunnerConstants.RESULT_FOLDER);
- sb.append(File.separator);
- sb.append(clazz.getName());
- sb.append("."); //$NON-NLS-1$
- sb.append(runner.punitName());
- if(properties.vmName != null) {
- sb.append("."); //$NON-NLS-1$
- sb.append(properties.vmName);
- }
- sb.append(".txt"); //$NON-NLS-1$
- return sb.toString();
- }
-
public boolean supportParentRunner() {
return false;
}
Deleted: trunk/punit/src/org/punit/util/LoggerUtil.java
===================================================================
--- trunk/punit/src/org/punit/util/LoggerUtil.java 2007-05-18 16:00:59 UTC (rev 118)
+++ trunk/punit/src/org/punit/util/LoggerUtil.java 2007-05-18 17:45:10 UTC (rev 119)
@@ -1,36 +0,0 @@
-package org.punit.util;
-
-import java.lang.reflect.*;
-
-public class LoggerUtil {
- public final static String LINE_SEPERATOR;
-
- static {
- LINE_SEPERATOR = System.getProperty("line.separator"); //$NON-NLS-1$
- }
-
- public static String simpleMethodName(Method method) {
- Class[] params = method.getParameterTypes();
- String[] paramsNames = new String[params.length];
- for(int i = 0; i < params.length; ++i) {
- paramsNames[i] = params[i].getSimpleName();
- }
- return simpleMethodName(method, paramsNames);
- }
-
- public static String simpleMethodName(Method method, Object[] params) {
- StringBuffer sb = new StringBuffer();
- sb.append(method.getName());
- sb.append("("); //$NON-NLS-1$
- for(int i = 0; i < params.length - 1 ; ++i) {
- sb.append(params[i]);
- sb.append(", "); //$NON-NLS-1$
- }
- if(params.length > 0) {
- sb.append(params[params.length - 1]);
- }
- sb.append(")"); //$NON-NLS-1$
- return sb.toString();
- }
-
-}
Copied: trunk/punit/src/org/punit/util/ReporterUtil.java (from rev 101, trunk/punit/src/org/punit/util/LoggerUtil.java)
===================================================================
--- trunk/punit/src/org/punit/util/ReporterUtil.java (rev 0)
+++ trunk/punit/src/org/punit/util/ReporterUtil.java 2007-05-18 17:45:10 UTC (rev 119)
@@ -0,0 +1,56 @@
+package org.punit.util;
+
+import java.io.*;
+import java.lang.reflect.*;
+
+import org.punit.runner.*;
+
+public class ReporterUtil {
+ public final static String LINE_SEPERATOR;
+
+ static {
+ LINE_SEPERATOR = System.getProperty("line.separator"); //$NON-NLS-1$
+ }
+
+ public static String simpleMethodName(Method method) {
+ Class[] params = method.getParameterTypes();
+ String[] paramsNames = new String[params.length];
+ for(int i = 0; i < params.length; ++i) {
+ paramsNames[i] = params[i].getSimpleName();
+ }
+ return simpleMethodName(method, paramsNames);
+ }
+
+ public static String simpleMethodName(Method method, Object[] params) {
+ StringBuffer sb = new StringBuffer();
+ sb.append(method.getName());
+ sb.append("("); //$NON-NLS-1$
+ for(int i = 0; i < params.length - 1 ; ++i) {
+ sb.append(params[i]);
+ sb.append(", "); //$NON-NLS-1$
+ }
+ if(params.length > 0) {
+ sb.append(params[params.length - 1]);
+ }
+ sb.append(")"); //$NON-NLS-1$
+ return sb.toString();
+ }
+
+ public static String generateFileName(Class clazz, Runner runner) {
+ RunnerProperties properties = runner.properties();
+ StringBuffer sb = new StringBuffer();
+ sb.append(IOUtil.getCurrentPath());
+ sb.append(File.separator);
+ sb.append(RunnerConstants.RESULT_FOLDER);
+ sb.append(File.separator);
+ sb.append(clazz.getName());
+ sb.append("."); //$NON-NLS-1$
+ sb.append(runner.punitName());
+ if(properties.vmName != null) {
+ sb.append("."); //$NON-NLS-1$
+ sb.append(properties.vmName);
+ }
+ return sb.toString();
+ }
+
+}
Modified: trunk/punit/src/punit.properties
===================================================================
--- trunk/punit/src/punit.properties 2007-05-18 16:00:59 UTC (rev 118)
+++ trunk/punit/src/punit.properties 2007-05-18 17:45:10 UTC (rev 119)
@@ -15,4 +15,6 @@
watcher.03=memory
watcher.04=time
reporter.01=result
-reporter.02=overview
\ No newline at end of file
+reporter.02=overview
+PDFRender.01=PUnit result\n
+PDFRender.02=the open source performance benchmark framework\n
Modified: trunk/punit.extension/.classpath
===================================================================
--- trunk/punit.extension/.classpath 2007-05-18 16:00:59 UTC (rev 118)
+++ trunk/punit.extension/.classpath 2007-05-18 17:45:10 UTC (rev 119)
@@ -5,5 +5,6 @@
<classpathentry path="/punit" exported="true" combineaccessrules="false" kind="src"/>
<classpathentry path="lib/jfreechart-1.0.5.jar" exported="true" kind="lib"/>
<classpathentry path="lib/jcommon-1.0.9.jar" exported="true" kind="lib"/>
+ <classpathentry path="lib/itext-2.0.2.jar" kind="lib"/>
<classpathentry path="bin" kind="output"/>
</classpath>
Added: trunk/punit.extension/lib/itext-2.0.2.jar
===================================================================
(Binary files differ)
Property changes on: trunk/punit.extension/lib/itext-2.0.2.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified: trunk/punit.extension/src/org/punit/reporter/chart/AbstractChartReporter.java
===================================================================
--- trunk/punit.extension/src/org/punit/reporter/chart/AbstractChartReporter.java 2007-05-18 16:00:59 UTC (rev 118)
+++ trunk/punit.extension/src/org/punit/reporter/chart/AbstractChartReporter.java 2007-05-18 17:45:10 UTC (rev 119)
@@ -47,12 +47,15 @@
}
double value = watcher.value();
String yname = _currentInstance.getClass().getSimpleName();
- String xname = LoggerUtil.simpleMethodName(_currentMethod, _currentParams);
+ String xname = ReporterUtil.simpleMethodName(_currentMethod, _currentParams);
dataset.addValue(value, yname, xname); // value, y, x
}
public void onRunnerStart(Class clazz, Runner runner) {
_runnerProperties = runner.properties();
+ if(!isIntermediate()) {
+ _render.onRunnerStart(clazz, runner);
+ }
}
public void onRunnerEnd(final Class clazz, final Runner runner) {
@@ -65,6 +68,9 @@
storeDataset(dataset, fileName, key);
}
});
+ if(!isIntermediate()) {
+ _render.onRunnerEnd(clazz, runner);
+ }
}
private DefaultCategoryDataset getDataset(final Runner runner, DatasetKey key) {
Added: trunk/punit.extension/src/org/punit/reporter/chart/pdf/PDFConstants.java
===================================================================
--- trunk/punit.extension/src/org/punit/reporter/chart/pdf/PDFConstants.java (rev 0)
+++ trunk/punit.extension/src/org/punit/reporter/chart/pdf/PDFConstants.java 2007-05-18 17:45:10 UTC (rev 119)
@@ -0,0 +1,22 @@
+package org.punit.reporter.chart.pdf;
+
+import com.lowagie.text.*;
+
+public class PDFConstants {
+ public static final Font H1_FONT = FontFactory.getFont(FontFactory.HELVETICA, 15, Font.BOLD);
+
+ public static final Font H2_FONT = FontFactory.getFont(FontFactory.HELVETICA, 12, Font.BOLD);
+
+ public static final Font BIG_FONT = FontFactory.getFont(FontFactory.HELVETICA, 10, Font.BOLD);
+
+ public static final Font SMALL_FONT = FontFactory.getFont(FontFactory.HELVETICA, 9, Font.DEFAULTSIZE);
+
+ public static final int DEFAULT_HEIGHT = 500;
+
+ public static final int DEFAULT_WIDTH = 500;
+
+ static final String WEBSITE = "https://sourceforge.net/projects/p-unit/"; //$NON-NLS-1$
+
+ static final String POSTFIX = ".pdf"; //$NON-NLS-1$
+
+}
Modified: trunk/punit.extension/src/org/punit/reporter/chart/pdf/PDFRender.java
===================================================================
--- trunk/punit.extension/src/org/punit/reporter/chart/pdf/PDFRender.java 2007-05-18 16:00:59 UTC (rev 118)
+++ trunk/punit.extension/src/org/punit/reporter/chart/pdf/PDFRender.java 2007-05-18 17:45:10 UTC (rev 119)
@@ -1,19 +1,95 @@
package org.punit.reporter.chart.pdf;
+import java.awt.*;
+import java.awt.Rectangle;
+import java.io.*;
+
import org.jfree.chart.*;
+import org.punit.exception.*;
+import org.punit.message.*;
import org.punit.reporter.chart.*;
import org.punit.runner.*;
+import org.punit.util.*;
+import com.lowagie.text.*;
+import com.lowagie.text.pdf.*;
+
public class PDFRender implements ChartRender {
+
+ private int _height;
+
+ private int _width;
+
+ private transient Document _document;
+
+ private transient PdfWriter _writer;
+
+ public PDFRender() {
+ this(PDFConstants.DEFAULT_HEIGHT, PDFConstants.DEFAULT_WIDTH);
+ }
+
+ public PDFRender(int height, int width) {
+ _height = height;
+ _width = width;
+ }
+
+ public void onRunnerStart(Class clazz, Runner runner) {
+ String fileName = ReporterUtil.generateFileName(clazz, runner)
+ + PDFConstants.POSTFIX;
+ initPDFDocument(fileName);
+ renderPreface();
+ }
+
+ private void initPDFDocument(String fileName) {
+ _document = new Document();
+ try {
+ _writer = PdfWriter.getInstance(_document, new FileOutputStream(
+ fileName));
+ } catch (Exception e) {
+ throw new PUnitIOException(e);
+ }
+ _document.open();
+ }
+
public void renderChart(JFreeChart chart, String prefixFileName) {
- throw new UnsupportedOperationException();
+ PdfTemplate template = _writer.getDirectContent().createTemplate(_width, _height);
+ Graphics2D graphics = template.createGraphics(_width, _height, new DefaultFontMapper());
+ Rectangle area = new Rectangle(0, 0, _width, _height);
+ chart.draw(graphics, area);
+ graphics.dispose();
+ try {
+ _document.add(new ImgTemplate(template));
+ } catch (BadElementException e) {
+ throw new PUnitIOException(e);
+ } catch (DocumentException e) {
+ throw new PUnitIOException(e);
+ }
+ _document.newPage();
}
public void onRunnerEnd(Class clazz, Runner runner) {
- throw new UnsupportedOperationException();
+ _document.close();
+ _writer.close();
}
- public void onRunnerStart(Class clazz, Runner runner) {
- throw new UnsupportedOperationException();
+ private void renderPreface() {
+ Paragraph paragraph = new Paragraph();
+ paragraph.add(new Chunk(Messages.getString("PDFRender.01"), PDFConstants.H1_FONT)); //$NON-NLS-1$
+ paragraph.add(new Chunk("\n\n\n", PDFConstants.H1_FONT)); //$NON-NLS-1$
+ paragraph.add(new Chunk(Messages.getString("PDFRender.02"), PDFConstants.H1_FONT));//$NON-NLS-1$
+ paragraph.add(new Chunk("\n\n\n", PDFConstants.H1_FONT)); //$NON-NLS-1$
+ paragraph.add(url(PDFConstants.WEBSITE));
+ try {
+ _document.add(paragraph);
+ } catch (DocumentException e) {
+ throw new PUnitIOException(e);
+ }
+ _document.newPage();
}
+
+ private Element url(String url) {
+ Anchor anchor = new Anchor(new Chunk(url));
+ anchor.setReference(url);
+ return anchor;
+ }
}
Modified: trunk/punit.test/src/extension/tests/samples/TestSuiteVMsSample.java
===================================================================
--- trunk/punit.test/src/extension/tests/samples/TestSuiteVMsSample.java 2007-05-18 16:00:59 UTC (rev 118)
+++ trunk/punit.test/src/extension/tests/samples/TestSuiteVMsSample.java 2007-05-18 17:45:10 UTC (rev 119)
@@ -4,6 +4,7 @@
import org.punit.reporter.chart.*;
import org.punit.reporter.chart.image.*;
+import org.punit.reporter.chart.pdf.*;
import org.punit.runner.*;
import org.punit.type.*;
import org.punit.util.*;
@@ -28,7 +29,7 @@
VM harmonyIBMVM = new VM(HARMONY_IBMVME, "HarmonyIBM"); //$NON-NLS-1$
VM sunVM = new VM(SUN, "SUN"); //$NON-NLS-1$
PUnitSoloRunner runner = new PUnitSoloRunner();
- runner.addPUnitEventListener(new TestSuiteReporter(new ImageRender()));
+ runner.addPUnitEventListener(new TestSuiteReporter(new PDFRender()));
runner.runVMs(TestSuite2.class, new VM[] { harmonyVM, sunVM });
}
@@ -56,6 +57,7 @@
sb.append("D:\\tools\\eclipse3.2\\plugins\\org.junit_3.8.1\\junit.jar;"); //$NON-NLS-1$
sb.append("D:\\workspace_3.2\\punit.extension\\lib\\jcommon-1.0.9.jar;"); //$NON-NLS-1$
sb.append("D:\\workspace_3.2\\punit.extension\\lib\\jfreechart-1.0.5.jar;"); //$NON-NLS-1$
+ sb.append("D:\\workspace_3.2\\punit.extension\\lib\\itext-2.0.2.jar;"); //$NON-NLS-1$
return sb.toString();
}
Modified: trunk/punit.test/src/tests/api/org/punit/exception/ConcurrentExceptionTest.java
===================================================================
--- trunk/punit.test/src/tests/api/org/punit/exception/ConcurrentExceptionTest.java 2007-05-18 16:00:59 UTC (rev 118)
+++ trunk/punit.test/src/tests/api/org/punit/exception/ConcurrentExceptionTest.java 2007-05-18 17:45:10 UTC (rev 119)
@@ -13,6 +13,6 @@
IllegalArgumentException iae = new IllegalArgumentException("IAE"); //$NON-NLS-1$
concurrentException.add(iae);
String message = concurrentException.getMessage();
- assertEquals(npe + LoggerUtil.LINE_SEPERATOR + iae + LoggerUtil.LINE_SEPERATOR, message);
+ assertEquals(npe + ReporterUtil.LINE_SEPERATOR + iae + ReporterUtil.LINE_SEPERATOR, message);
}
}
Modified: trunk/punit.test/src/tests/api/org/punit/util/LoggerUtilTest.java
===================================================================
--- trunk/punit.test/src/tests/api/org/punit/util/LoggerUtilTest.java 2007-05-18 16:00:59 UTC (rev 118)
+++ trunk/punit.test/src/tests/api/org/punit/util/LoggerUtilTest.java 2007-05-18 17:45:10 UTC (rev 119)
@@ -12,22 +12,22 @@
public void testSimpleMethodName() {
Method method = ReflectionUtil.getMethod(LoggerUtilTest.class, "f", //$NON-NLS-1$
new Class[] {});
- String simpleMethodName = LoggerUtil.simpleMethodName(method);
+ String simpleMethodName = ReporterUtil.simpleMethodName(method);
assertEquals("f()", simpleMethodName); //$NON-NLS-1$
method = ReflectionUtil.getMethod(LoggerUtilTest.class, "f", //$NON-NLS-1$
new Class[] { Parameter.class });
- simpleMethodName = LoggerUtil.simpleMethodName(method);
+ simpleMethodName = ReporterUtil.simpleMethodName(method);
assertEquals("f(Parameter)", simpleMethodName); //$NON-NLS-1$
method = ReflectionUtil.getMethod(LoggerUtilTest.class, "f", //$NON-NLS-1$
new Class[] { int.class });
- simpleMethodName = LoggerUtil.simpleMethodName(method);
+ simpleMethodName = ReporterUtil.simpleMethodName(method);
assertEquals("f(int)", simpleMethodName); //$NON-NLS-1$
method = ReflectionUtil.getMethod(LoggerUtilTest.class, "f", //$NON-NLS-1$
new Class[] { int[].class });
- simpleMethodName = LoggerUtil.simpleMethodName(method);
+ simpleMethodName = ReporterUtil.simpleMethodName(method);
assertEquals("f(int[])", simpleMethodName); //$NON-NLS-1$
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|