{
if ( (reportConfiguration == null ) || "".equals( reportConfiguration.trim()))
reportConfiguration = "Features=Task"+":Feature;Todo=Task:"+"Todo,Task:"+"TODO,Task:"+"todo;Mock Implementation=Task:"+"Mock;Bugs=Task:"+"Bug;Optimization=Task:"+"Optimization";
//default configuration, the string concatention is there so that reports over this class work
FindTextReport report = new FindTextReport();
report.createReport(sourcedir, spaceSeparatedIncludeFileSuffixes, reportConfiguration, new InvocationContext());
Sink sink = getSink();
MavenReportUtils.startReport(sink, "Taskslist");
MavenReportUtils.addTitleWithAnchor(sink, 1, "Feature and Task lists (" + new Date() +")", "main");
String encoding = "utf-8";
ByteArrayOutputStream xmlBytes = new ByteArrayOutputStream();
XMLStreamWriter xml= XMLOutputFactory.newInstance().createXMLStreamWriter(xmlBytes, encoding);
xml.writeStartDocument(encoding, "1.0");
xml.writeStartElement("reports");
//StringBuffer xml= new StringBuffer( "<?xml version='1.0' encoding='" + encoding + "' ?><reports>\n");
for( String header: report.getReportHeadings())
{
MavenReportUtils.addTitleWithAnchor(sink, 2, header, header);
//xml.append( "<report type='").append(header).append("'>\n");
xml.writeStartElement("report");
xml.writeAttribute("type", header);
MavenReportUtils.startTable(sink);
for ( BoostObject<File, String> row: report.getReportList( header)) {
String text = row.getWrappedObject();
String filename = row.getIndex().getName();
MavenReportUtils.tableRow(sink, new String[]{ text, filename});
//xml.append( "<entry file='").append(filename).append("'>").append(text ). append("</entry>\n");
xml.writeStartElement("entry");