bodewig 01/09/27 04:08:38
Modified: src/main/org/apache/tools/ant/taskdefs/optional/sitraka Tag:
ANT_14_BRANCH CovReport.java
Log:
Make picky compiler happy.
PR: 3480
This patch looks a *lot* bigger than it is (I changed a single line,
341) - the rest are removed tabs.
Revision Changes Path
No revision
No revision
1.1.2.1 +299 -299
jakarta-ant/src/main/org/apache/tools/ant/taskdefs/optional/sitraka/CovReport.java
Index: CovReport.java
===================================================================
RCS file:
/home/cvs/jakarta-ant/src/main/org/apache/tools/ant/taskdefs/optional/sitraka/CovReport.java,v
retrieving revision 1.1
retrieving revision 1.1.2.1
diff -u -r1.1 -r1.1.2.1
--- CovReport.java 2001/07/31 08:40:12 1.1
+++ CovReport.java 2001/09/27 11:08:38 1.1.2.1
@@ -84,303 +84,303 @@
* @author <a href="[EMAIL PROTECTED]">Stephane Bailliez</a>
*/
public class CovReport extends Task {
-/*
-jpcoverport [options] -output=file -snapshot=snapshot.jpc
-jpcovreport [options] [-paramfile=file] -output=<fileName>
-snapshot=<fileName>
-
- Generate a report based on the indicated snapshot
-
- -paramfile=file
- A text file containing the
report generation options.
-
- -format=(html|text|xml) defaults to html
- The format of the generated
report.
-
- -type=(executive|summary|detailed|verydetailed) defaults to
detailed
- The type of report to be
generated. For -format=xml,
- use -type=verydetailed to
include source code lines.
-
- Note: A very detailed report
can be VERY large.
-
- -percent=num Min 1 Max 101 Default 101
- An integer representing a
percentage of coverage.
- Only methods with test case
coverage less than the
- percentage are included in
reports.
-
- -filters=string
- A comma-separated list of
filters in the form
- <package>.<class>:V, where V
can be I for Include or
- E for Exclude. For the default
package, omit <package>.
-
- -filters_method=string
- Optional. A comma-separated
list of methods that
- correspond one-to-one with the
entries in -filters.
-
- -output=string Must be specified
- The absolute path and file name
for the generated
- report file.
-
- -snapshot=string Must be specified
- The absolute path and file name
of the snapshot file.
-
- -inc_src_text=(on|off) defaults to on
- Include text of the source code
lines.
- Only applies for -format=xml
and -type=verydetailed.
-
- -sourcepath=string defaults to .
- A semicolon-separated list of
source paths.
-
-/*
-
- /** coverage home, mandatory */
- private File home = null;
-
- /** format of generated report, optional */
- private String format = null;
-
- /** the name of the output snapshot, mandatory */
- private File tofile = null;
-
- /** type of report, optional */
- private String type = null;
-
- /** threshold value for printing methods, optional */
- private Integer percent = null;
-
- /** comma separated list of filters (???)*/
- private String filters = null;
-
- /** name of the snapshot file to create report from */
- private File snapshot = null;
-
- /** sourcepath to use */
- private Path sourcePath = null;
-
- /** include the text for each line of code (xml report verydetailed)*/
- private boolean includeSource = true;
-
- private Path coveragePath = null;
-
- /** */
- private Reference reference = null;
-
-
- /**
- * Set the coverage home. it must point to JProbe coverage
- * directories where are stored native libraries and jars.
- */
- public void setHome(File value) {
- this.home = value;
- }
-
- public static class ReportFormat extends EnumeratedAttribute {
- public String[] getValues(){
- return new String[]{"html", "text", "xml"};
- }
- }
- /** set the format of the report html|text|xml*/
- public void setFormat(ReportFormat value){
- this.format = value.getValue();
- }
-
- public static class ReportType extends EnumeratedAttribute {
- public String[] getValues(){
- return new String[]{"executive", "summary", "detailed",
"verydetailed"};
- }
- }
- /** sets the report type executive|summary|detailed|verydetailed */
- public void setType(ReportType value){
- this.type = value.getValue();
- }
-
- /** include source code lines. XML report only */
- public void setIncludesource(boolean value){
- this.includeSource = value;
- }
-
- /** sets the threshold printing method 0-100*/
- public void setPercent(Integer value){
- this.percent = value;
- }
-
- /** set the filters */
- public void setFilters(String values){
- this.filters = values;
- }
-
- public Path createSourcepath(){
- if (sourcePath == null) {
- sourcePath = new Path(project);
- }
- return sourcePath.createPath();
- }
-
- public void setSnapshot(File value){
- this.snapshot = value;
- }
-
- /**
- * Set the output snapshot file
- */
- public void setTofile(File value) {
- this.tofile = value;
- }
-
- //@todo to remove
- public Path createCoveragepath(){
- if (coveragePath == null) {
- coveragePath = new Path(project);
- }
- return coveragePath.createPath();
- }
-
- public Reference createReference(){
- if (reference == null){
- reference = new Reference();
- }
- return reference;
- }
-
-
- public CovReport() {
- }
-
- /** check for mandatory options */
- protected void checkOptions() throws BuildException {
- if (tofile == null) {
- throw new BuildException("'tofile' attribute must be
set.");
- }
- if (snapshot == null) {
- throw new BuildException("'snapshot' attribute must be
set.");
- }
- if (home == null) {
- throw new BuildException("'home' attribute must be set
to JProbe home directory");
- }
- home = new File(home,"Coverage");
- File jar = new File(home, "coverage.jar");
- if (!jar.exists()) {
- throw new BuildException("Cannot find Coverage
directory: " + home);
- }
- if (reference != null && !"xml".equals(format)){
- log("Ignored reference. It cannot be used in non XML
report.");
- reference = null; // nullify it so that there is no
ambiguity
- }
-
- }
-
- public void execute() throws BuildException {
- checkOptions();
- try {
- Commandline cmdl = new Commandline();
- // we need to run Coverage from his directory due to
dll/jar issues
- cmdl.setExecutable( new File(home,
"jpcovreport").getAbsolutePath() );
- String[] params = getParameters();
- for (int i = 0; i < params.length; i++) {
- cmdl.createArgument().setValue(params[i]);
- }
-
- // use the custom handler for stdin issues
- LogStreamHandler handler = new
LogStreamHandler(this,Project.MSG_INFO,Project.MSG_WARN);
- Execute exec = new Execute( handler );
- log(cmdl.toString(), Project.MSG_VERBOSE);
- exec.setCommandline(cmdl.getCommandline());
- int exitValue = exec.execute();
- if (exitValue != 0) {
- throw new BuildException("JProbe Coverage
Report failed (" + exitValue + ")");
- }
- log("coveragePath: " + coveragePath,
Project.MSG_VERBOSE);
- log("format: " + format, Project.MSG_VERBOSE);
- if (reference != null && "xml".equals(format)){
- reference.createEnhancedXMLReport();
- }
-
- } catch (IOException e){
- throw new BuildException("Failed to execute JProbe
Coverage Report.", e);
- }
- }
-
-
- protected String[] getParameters(){
- Vector v = new Vector();
- if (format != null) {
- v.addElement("-format=" + format);
- }
- if (type != null) {
- v.addElement("-type=" + type);
- }
- if (percent != null) {
- v.addElement("-percent=" + percent);
- }
- if (filters != null) {
- v.addElement("-filters=" + filters);
- }
- v.addElement("-output=" +
project.resolveFile(tofile.getPath()));
- v.addElement("-snapshot=" +
project.resolveFile(snapshot.getPath()));
- // as a default -sourcepath use . in JProbe, so use project .
- if (sourcePath == null) {
- sourcePath = new Path(project);
-
sourcePath.createPath().setLocation(project.resolveFile("."));
- }
- v.addElement("-sourcepath=" + sourcePath);
-
- if ("verydetailed".equalsIgnoreCase(format) &&
"xml".equalsIgnoreCase(type)) {
- v.addElement("-inc_src_text=" + (includeSource ? "on" :
"off"));
- }
-
- String[] params = new String[v.size()];
- v.copyInto(params);
- return params;
- }
-
-
- public class Reference {
- protected Path classPath;
- protected ReportFilters filters;
- public Path createClasspath(){
- if (classPath == null) {
- classPath = new Path(project);
- }
- return classPath.createPath();
- }
- public ReportFilters createFilters(){
- if (filters == null){
- filters = new ReportFilters();
- }
- return filters;
- }
- protected void createEnhancedXMLReport() throws BuildException {
- // we need a classpath element
- if (classPath == null){
- throw new BuildException("Need a 'classpath'
element.");
- }
- // and a valid one...
- String[] paths = classPath.list();
- if (paths.length == 0){
- throw new BuildException("Coverage path is
invalid. It does not contain any existing path.");
- }
- // and we need at least one filter include/exclude.
- if (filters == null || filters.size() == 0){
- createFilters();
- log("Adding default include filter to *.*()",
Project.MSG_VERBOSE);
- ReportFilters.Include include = new
ReportFilters.Include();
- filters.addInclude( include );
- }
- try {
- log("Creating enhanced XML report",
Project.MSG_VERBOSE);
- XMLReport report = new
XMLReport(CovReport.this, tofile);
- report.setReportFilters(filters);
- report.setJProbehome( new
File(home.getParent()) );
- Document doc = report.createDocument(paths);
- TransformerFactory tfactory =
TransformerFactory.newInstance();
- Transformer transformer =
tfactory.newTransformer();
-
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
-
transformer.setOutputProperty(OutputKeys.METHOD, "xml");
- Source src = new DOMSource(doc);
- Result res = new StreamResult( "file:///" +
tofile.toString() );
- transformer.transform(src, res);
- } catch (Exception e){
- throw new BuildException("Error while
performing enhanced XML report from file " + tofile, e);
- }
- }
- }
+ /*
+ jpcoverport [options] -output=file -snapshot=snapshot.jpc
+ jpcovreport [options] [-paramfile=file] -output=<fileName>
-snapshot=<fileName>
+
+ Generate a report based on the indicated snapshot
+
+ -paramfile=file
+ A text file containing the report generation options.
+
+ -format=(html|text|xml) defaults to html
+ The format of the generated report.
+
+ -type=(executive|summary|detailed|verydetailed) defaults to detailed
+ The type of report to be generated. For -format=xml,
+ use -type=verydetailed to include source code lines.
+
+ Note: A very detailed report can be VERY large.
+
+ -percent=num Min 1 Max 101 Default 101
+ An integer representing a percentage of coverage.
+ Only methods with test case coverage less than the
+ percentage are included in reports.
+
+ -filters=string
+ A comma-separated list of filters in the form
+ <package>.<class>:V, where V can be I for Include or
+ E for Exclude. For the default package, omit <package>.
+
+ -filters_method=string
+ Optional. A comma-separated list of methods that
+ correspond one-to-one with the entries in -filters.
+
+ -output=string Must be specified
+ The absolute path and file name for the generated
+ report file.
+
+ -snapshot=string Must be specified
+ The absolute path and file name of the snapshot file.
+
+ -inc_src_text=(on|off) defaults to on
+ Include text of the source code lines.
+ Only applies for -format=xml and -type=verydetailed.
+
+ -sourcepath=string defaults to .
+ A semicolon-separated list of source paths.
+
+ /*
+
+ /** coverage home, mandatory */
+ private File home = null;
+
+ /** format of generated report, optional */
+ private String format = null;
+
+ /** the name of the output snapshot, mandatory */
+ private File tofile = null;
+
+ /** type of report, optional */
+ private String type = null;
+
+ /** threshold value for printing methods, optional */
+ private Integer percent = null;
+
+ /** comma separated list of filters (???)*/
+ private String filters = null;
+
+ /** name of the snapshot file to create report from */
+ private File snapshot = null;
+
+ /** sourcepath to use */
+ private Path sourcePath = null;
+
+ /** include the text for each line of code (xml report verydetailed)*/
+ private boolean includeSource = true;
+
+ private Path coveragePath = null;
+
+ /** */
+ private Reference reference = null;
+
+
+ /**
+ * Set the coverage home. it must point to JProbe coverage
+ * directories where are stored native libraries and jars.
+ */
+ public void setHome(File value) {
+ this.home = value;
+ }
+
+ public static class ReportFormat extends EnumeratedAttribute {
+ public String[] getValues(){
+ return new String[]{"html", "text", "xml"};
+ }
+ }
+ /** set the format of the report html|text|xml*/
+ public void setFormat(ReportFormat value){
+ this.format = value.getValue();
+ }
+
+ public static class ReportType extends EnumeratedAttribute {
+ public String[] getValues(){
+ return new String[]{"executive", "summary", "detailed",
"verydetailed"};
+ }
+ }
+ /** sets the report type executive|summary|detailed|verydetailed */
+ public void setType(ReportType value){
+ this.type = value.getValue();
+ }
+
+ /** include source code lines. XML report only */
+ public void setIncludesource(boolean value){
+ this.includeSource = value;
+ }
+
+ /** sets the threshold printing method 0-100*/
+ public void setPercent(Integer value){
+ this.percent = value;
+ }
+
+ /** set the filters */
+ public void setFilters(String values){
+ this.filters = values;
+ }
+
+ public Path createSourcepath(){
+ if (sourcePath == null) {
+ sourcePath = new Path(project);
+ }
+ return sourcePath.createPath();
+ }
+
+ public void setSnapshot(File value){
+ this.snapshot = value;
+ }
+
+ /**
+ * Set the output snapshot file
+ */
+ public void setTofile(File value) {
+ this.tofile = value;
+ }
+
+ //@todo to remove
+ public Path createCoveragepath(){
+ if (coveragePath == null) {
+ coveragePath = new Path(project);
+ }
+ return coveragePath.createPath();
+ }
+
+ public Reference createReference(){
+ if (reference == null){
+ reference = new Reference();
+ }
+ return reference;
+ }
+
+
+ public CovReport() {
+ }
+
+ /** check for mandatory options */
+ protected void checkOptions() throws BuildException {
+ if (tofile == null) {
+ throw new BuildException("'tofile' attribute must be set.");
+ }
+ if (snapshot == null) {
+ throw new BuildException("'snapshot' attribute must be set.");
+ }
+ if (home == null) {
+ throw new BuildException("'home' attribute must be set to JProbe
home directory");
+ }
+ home = new File(home,"Coverage");
+ File jar = new File(home, "coverage.jar");
+ if (!jar.exists()) {
+ throw new BuildException("Cannot find Coverage directory: " +
home);
+ }
+ if (reference != null && !"xml".equals(format)){
+ log("Ignored reference. It cannot be used in non XML report.");
+ reference = null; // nullify it so that there is no ambiguity
+ }
+
+ }
+
+ public void execute() throws BuildException {
+ checkOptions();
+ try {
+ Commandline cmdl = new Commandline();
+ // we need to run Coverage from his directory due to dll/jar
issues
+ cmdl.setExecutable( new File(home,
"jpcovreport").getAbsolutePath() );
+ String[] params = getParameters();
+ for (int i = 0; i < params.length; i++) {
+ cmdl.createArgument().setValue(params[i]);
+ }
+
+ // use the custom handler for stdin issues
+ LogStreamHandler handler = new
LogStreamHandler(this,Project.MSG_INFO,Project.MSG_WARN);
+ Execute exec = new Execute( handler );
+ log(cmdl.toString(), Project.MSG_VERBOSE);
+ exec.setCommandline(cmdl.getCommandline());
+ int exitValue = exec.execute();
+ if (exitValue != 0) {
+ throw new BuildException("JProbe Coverage Report failed (" +
exitValue + ")");
+ }
+ log("coveragePath: " + coveragePath, Project.MSG_VERBOSE);
+ log("format: " + format, Project.MSG_VERBOSE);
+ if (reference != null && "xml".equals(format)){
+ reference.createEnhancedXMLReport();
+ }
+
+ } catch (IOException e){
+ throw new BuildException("Failed to execute JProbe Coverage
Report.", e);
+ }
+ }
+
+
+ protected String[] getParameters(){
+ Vector v = new Vector();
+ if (format != null) {
+ v.addElement("-format=" + format);
+ }
+ if (type != null) {
+ v.addElement("-type=" + type);
+ }
+ if (percent != null) {
+ v.addElement("-percent=" + percent);
+ }
+ if (filters != null) {
+ v.addElement("-filters=" + filters);
+ }
+ v.addElement("-output=" + project.resolveFile(tofile.getPath()));
+ v.addElement("-snapshot=" + project.resolveFile(snapshot.getPath()));
+ // as a default -sourcepath use . in JProbe, so use project .
+ if (sourcePath == null) {
+ sourcePath = new Path(project);
+ sourcePath.createPath().setLocation(project.resolveFile("."));
+ }
+ v.addElement("-sourcepath=" + sourcePath);
+
+ if ("verydetailed".equalsIgnoreCase(format) &&
"xml".equalsIgnoreCase(type)) {
+ v.addElement("-inc_src_text=" + (includeSource ? "on" : "off"));
+ }
+
+ String[] params = new String[v.size()];
+ v.copyInto(params);
+ return params;
+ }
+
+
+ public class Reference {
+ protected Path classPath;
+ protected ReportFilters filters;
+ public Path createClasspath(){
+ if (classPath == null) {
+ classPath = new Path(CovReport.this.project);
+ }
+ return classPath.createPath();
+ }
+ public ReportFilters createFilters(){
+ if (filters == null){
+ filters = new ReportFilters();
+ }
+ return filters;
+ }
+ protected void createEnhancedXMLReport() throws BuildException {
+ // we need a classpath element
+ if (classPath == null){
+ throw new BuildException("Need a 'classpath' element.");
+ }
+ // and a valid one...
+ String[] paths = classPath.list();
+ if (paths.length == 0){
+ throw new BuildException("Coverage path is invalid. It does
not contain any existing path.");
+ }
+ // and we need at least one filter include/exclude.
+ if (filters == null || filters.size() == 0){
+ createFilters();
+ log("Adding default include filter to *.*()",
Project.MSG_VERBOSE);
+ ReportFilters.Include include = new ReportFilters.Include();
+ filters.addInclude( include );
+ }
+ try {
+ log("Creating enhanced XML report", Project.MSG_VERBOSE);
+ XMLReport report = new XMLReport(CovReport.this, tofile);
+ report.setReportFilters(filters);
+ report.setJProbehome( new File(home.getParent()) );
+ Document doc = report.createDocument(paths);
+ TransformerFactory tfactory =
TransformerFactory.newInstance();
+ Transformer transformer = tfactory.newTransformer();
+ transformer.setOutputProperty(OutputKeys.INDENT, "yes");
+ transformer.setOutputProperty(OutputKeys.METHOD, "xml");
+ Source src = new DOMSource(doc);
+ Result res = new StreamResult( "file:///" +
tofile.toString() );
+ transformer.transform(src, res);
+ } catch (Exception e){
+ throw new BuildException("Error while performing enhanced
XML report from file " + tofile, e);
+ }
+ }
+ }
}