diff --git a/jcoverage/src/main/org/apache/maven/jcoveragereport/CoverageReport.java b/jcoverage/src/main/org/apache/maven/jcoveragereport/CoverageReport.java index 6c70443f..37ed92f4 100644 --- a/jcoverage/src/main/org/apache/maven/jcoveragereport/CoverageReport.java +++ b/jcoverage/src/main/org/apache/maven/jcoveragereport/CoverageReport.java @@ -33,7 +33,7 @@ import org.apache.oro.text.perl.Perl5Util; /** * @author Emmanuel Venisse - * @version $Id: CoverageReport.java,v 1.11 2004/10/15 14:49:17 evenisse Exp $ + * @version $Id$ */ public class CoverageReport { @@ -280,7 +280,7 @@ public class CoverageReport Clazz cl = (Clazz) it.next(); if (cl.getFile().indexOf("[Unknown]")<0) { - String classFilename = cl.getFile().substring(cl.getFile().lastIndexOf("/")+1, cl.getFile().lastIndexOf(".")) + ".html"; + String classFilename = getShortFilename(cl); pw.println(""); pw.println("" + cl.getName() + ""); pw.println("" + generatePercentResult(getPercentValue(cl.getLineRate())) + ""); @@ -331,7 +331,7 @@ public class CoverageReport Clazz cl = (Clazz) iter.next(); if (cl.getFile().indexOf("[Unknown]")<0) { - String classFilename = cl.getFile().substring(cl.getFile().lastIndexOf("/")+1, cl.getFile().lastIndexOf(".")) + ".html"; + String classFilename = getShortFilename(cl); pw.println(""); pw.println("" + cl.getName() + ""); pw.println("" + generatePercentResult(getPercentValue(cl.getLineRate())) + ""); @@ -349,6 +349,34 @@ public class CoverageReport pw.close(); } + /** + * Gets the name to output the file to. + * + * @param cl the class to get the filename for + * @return the filename + */ + private String getShortFilename(Clazz cl) { + String name = cl.getFile().substring(cl.getFile().lastIndexOf("/")+1, cl.getFile().lastIndexOf(".")); + if (cl.getName().indexOf('$') >= 0) { + name = name + "_" + cl.getName().substring(cl.getName().indexOf('$') + 1); + } + return name + ".html"; + } + + /** + * Gets the name to output the file to. + * + * @param cl the class to get the filename for + * @return the filename + */ + private String getFullFilename(Clazz cl) { + String name = cl.getFile().substring(0, cl.getFile().lastIndexOf(".")); + if (cl.getName().indexOf('$') >= 0) { + name = name + "_" + cl.getName().substring(cl.getName().indexOf('$') + 1); + } + return name + ".html"; + } + private void generateSourceFiles(File dir) throws IOException { for (Iterator iter = coverage.getClasses().iterator(); iter.hasNext(); ) @@ -364,7 +392,7 @@ public class CoverageReport private void generateSourceFile(File directory, Clazz theClass) throws IOException { - String srcOutputFilename = theClass.getFile().substring(0, theClass.getFile().lastIndexOf(".")) + ".html"; + String srcOutputFilename = getFullFilename(theClass); File srcOutputFile = new File(directory, srcOutputFilename); File dirOutputFile = srcOutputFile.getParentFile(); if (dirOutputFile != null) diff --git a/jcoverage/xdocs/changes.xml b/jcoverage/xdocs/changes.xml index 6ef2e196..1ff73735 100644 --- a/jcoverage/xdocs/changes.xml +++ b/jcoverage/xdocs/changes.xml @@ -28,6 +28,7 @@ Open report in a new window. Allow comma separeted values for maven.jcoverage.instrumentation.excludes. Fix tests failures when user use maven.jcoverage.instrumentation.excludes + Fix report for Inner/anonymous classes. Fix incorrect usage of maven:addPath tag