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