You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@continuum.apache.org by ol...@apache.org on 2007/11/13 17:36:15 UTC

svn commit: r594573 [1/3] - in /maven/continuum/trunk: ./ continuum-core/ continuum-core/src/main/java/org/apache/maven/continuum/notification/mail/ continuum-core/src/main/resources/org/apache/maven/continuum/notification/mail/templates/ continuum-cor...

Author: olamy
Date: Tue Nov 13 08:36:11 2007
New Revision: 594573

URL: http://svn.apache.org/viewvc?rev=594573&view=rev
Log:
[CONTINUUM-1563] add two new parameters in the mail notifier includeTestSummary and includeOutput
[CONTINUUM-1544] Email Summary no longer includes the Test Summary statistics.
In order to achieve this a new module called continuum-reports has been created which parse surefire test files to create some beans

Added:
    maven/continuum/trunk/continuum-reports/
    maven/continuum/trunk/continuum-reports/pom.xml   (with props)
    maven/continuum/trunk/continuum-reports/src/
    maven/continuum/trunk/continuum-reports/src/main/
    maven/continuum/trunk/continuum-reports/src/main/java/
    maven/continuum/trunk/continuum-reports/src/main/java/org/
    maven/continuum/trunk/continuum-reports/src/main/java/org/apache/
    maven/continuum/trunk/continuum-reports/src/main/java/org/apache/maven/
    maven/continuum/trunk/continuum-reports/src/main/java/org/apache/maven/continuum/
    maven/continuum/trunk/continuum-reports/src/main/java/org/apache/maven/continuum/reports/
    maven/continuum/trunk/continuum-reports/src/main/java/org/apache/maven/continuum/reports/surefire/
    maven/continuum/trunk/continuum-reports/src/main/java/org/apache/maven/continuum/reports/surefire/DefaultReportTestSuiteGenerator.java   (with props)
    maven/continuum/trunk/continuum-reports/src/main/java/org/apache/maven/continuum/reports/surefire/ReportFailure.java   (with props)
    maven/continuum/trunk/continuum-reports/src/main/java/org/apache/maven/continuum/reports/surefire/ReportTest.java   (with props)
    maven/continuum/trunk/continuum-reports/src/main/java/org/apache/maven/continuum/reports/surefire/ReportTestCase.java   (with props)
    maven/continuum/trunk/continuum-reports/src/main/java/org/apache/maven/continuum/reports/surefire/ReportTestResult.java   (with props)
    maven/continuum/trunk/continuum-reports/src/main/java/org/apache/maven/continuum/reports/surefire/ReportTestSuite.java   (with props)
    maven/continuum/trunk/continuum-reports/src/main/java/org/apache/maven/continuum/reports/surefire/ReportTestSuiteGenerator.java   (with props)
    maven/continuum/trunk/continuum-reports/src/main/java/org/apache/maven/continuum/reports/surefire/ReportTestSuiteGeneratorException.java   (with props)
    maven/continuum/trunk/continuum-reports/src/test/
    maven/continuum/trunk/continuum-reports/src/test/java/
    maven/continuum/trunk/continuum-reports/src/test/java/org/
    maven/continuum/trunk/continuum-reports/src/test/java/org/apache/
    maven/continuum/trunk/continuum-reports/src/test/java/org/apache/maven/
    maven/continuum/trunk/continuum-reports/src/test/java/org/apache/maven/continuum/
    maven/continuum/trunk/continuum-reports/src/test/java/org/apache/maven/continuum/reports/
    maven/continuum/trunk/continuum-reports/src/test/java/org/apache/maven/continuum/reports/surefire/
    maven/continuum/trunk/continuum-reports/src/test/java/org/apache/maven/continuum/reports/surefire/DefaultReportTestSuiteGeneratorTest.java   (with props)
    maven/continuum/trunk/continuum-reports/src/test/java/org/apache/maven/continuum/reports/surefire/MockConfigurationService.java   (with props)
    maven/continuum/trunk/continuum-reports/src/test/resources/
    maven/continuum/trunk/continuum-reports/src/test/resources/continuum-core/
    maven/continuum/trunk/continuum-reports/src/test/resources/continuum-core/TEST-org.apache.maven.continuum.DefaultContinuumTest.xml   (with props)
    maven/continuum/trunk/continuum-reports/src/test/resources/continuum-core/TEST-org.apache.maven.continuum.TestAction.xml   (with props)
    maven/continuum/trunk/continuum-reports/src/test/resources/continuum-core/TEST-org.apache.maven.continuum.buildcontroller.DefaultBuildControllerTest.xml   (with props)
    maven/continuum/trunk/continuum-reports/src/test/resources/continuum-core/TEST-org.apache.maven.continuum.builddefinition.DefaultBuildDefinitionServiceTest.xml   (with props)
    maven/continuum/trunk/continuum-reports/src/test/resources/continuum-core/TEST-org.apache.maven.continuum.buildqueue.BuildQueueTest.xml   (with props)
    maven/continuum/trunk/continuum-reports/src/test/resources/continuum-core/TEST-org.apache.maven.continuum.core.action.CreateProjectsFromMetadataTest.xml   (with props)
    maven/continuum/trunk/continuum-reports/src/test/resources/continuum-core/TEST-org.apache.maven.continuum.execution.manager.DefaultBuildExecutorManagerTest.xml   (with props)
    maven/continuum/trunk/continuum-reports/src/test/resources/continuum-core/TEST-org.apache.maven.continuum.execution.maven.m1.MavenOneBuildExecutorTest.xml   (with props)
    maven/continuum/trunk/continuum-reports/src/test/resources/continuum-core/TEST-org.apache.maven.continuum.initialization.DefaultContinuumInitializerTest.xml   (with props)
    maven/continuum/trunk/continuum-reports/src/test/resources/continuum-core/TEST-org.apache.maven.continuum.installation.DefaultInstallationServiceTest.xml   (with props)
    maven/continuum/trunk/continuum-reports/src/test/resources/continuum-core/TEST-org.apache.maven.continuum.notification.ContinuumNotificationDispatcherTest.xml   (with props)
    maven/continuum/trunk/continuum-reports/src/test/resources/continuum-core/TEST-org.apache.maven.continuum.notification.mail.FormatterToolTest.xml   (with props)
    maven/continuum/trunk/continuum-reports/src/test/resources/continuum-core/TEST-org.apache.maven.continuum.notification.mail.MailContinuumNotifierTest.xml   (with props)
    maven/continuum/trunk/continuum-reports/src/test/resources/continuum-core/TEST-org.apache.maven.continuum.profile.DefaultProfileServiceTest.xml   (with props)
    maven/continuum/trunk/continuum-reports/src/test/resources/continuum-core/TEST-org.apache.maven.continuum.project.builder.maven.MavenOneContinuumProjectBuilderTest.xml   (with props)
    maven/continuum/trunk/continuum-reports/src/test/resources/continuum-core/TEST-org.apache.maven.continuum.project.builder.maven.MavenTwoContinuumProjectBuilderTest.xml   (with props)
    maven/continuum/trunk/continuum-reports/src/test/resources/continuum-core/TEST-org.apache.maven.continuum.scm.ContinuumScmTest.xml   (with props)
    maven/continuum/trunk/continuum-reports/src/test/resources/continuum-core/TEST-org.apache.maven.continuum.utils.ProjectSorterTest.xml   (with props)
    maven/continuum/trunk/continuum-reports/src/test/resources/continuum-core/org.apache.maven.continuum.TestAction.txt   (with props)
    maven/continuum/trunk/continuum-reports/src/test/resources/continuum-core/org.apache.maven.continuum.project.builder.maven.MavenTwoContinuumProjectBuilderTest.txt   (with props)
    maven/continuum/trunk/continuum-reports/src/test/resources/continuum-core/org.apache.maven.continuum.scm.ContinuumScmTest.txt   (with props)
    maven/continuum/trunk/continuum-reports/src/test/resources/continuum-core/org.apache.maven.continuum.utils.ProjectSorterTest.txt   (with props)
    maven/continuum/trunk/continuum-reports/src/test/resources/org/
    maven/continuum/trunk/continuum-reports/src/test/resources/org/apache/
    maven/continuum/trunk/continuum-reports/src/test/resources/org/apache/maven/
    maven/continuum/trunk/continuum-reports/src/test/resources/org/apache/maven/continuum/
    maven/continuum/trunk/continuum-reports/src/test/resources/org/apache/maven/continuum/reports/
    maven/continuum/trunk/continuum-reports/src/test/resources/org/apache/maven/continuum/reports/surefire/
    maven/continuum/trunk/continuum-reports/src/test/resources/org/apache/maven/continuum/reports/surefire/DefaultReportTestSuiteGeneratorTest.xml   (with props)
    maven/continuum/trunk/continuum-reports/src/test/resources/simplereport/
    maven/continuum/trunk/continuum-reports/src/test/resources/simplereport/TEST-org.apache.maven.continuum.AppTest.xml   (with props)
Modified:
    maven/continuum/trunk/continuum-core/pom.xml
    maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/notification/mail/MailContinuumNotifier.java
    maven/continuum/trunk/continuum-core/src/main/resources/org/apache/maven/continuum/notification/mail/templates/common.vm
    maven/continuum/trunk/continuum-core/src/test/resources/org/apache/maven/continuum/notification/mail/MailContinuumNotifierTest.xml
    maven/continuum/trunk/continuum-data-management/data-management-cli/src/main/java/org/apache/maven/continuum/management/DataManagementCli.java
    maven/continuum/trunk/continuum-webapp/pom.xml
    maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/SurefireReportAction.java
    maven/continuum/trunk/continuum-webapp/src/main/resources/META-INF/plexus/application.xml
    maven/continuum/trunk/pom.xml

Modified: maven/continuum/trunk/continuum-core/pom.xml
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-core/pom.xml?rev=594573&r1=594572&r2=594573&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-core/pom.xml (original)
+++ maven/continuum/trunk/continuum-core/pom.xml Tue Nov 13 08:36:11 2007
@@ -33,6 +33,10 @@
       <artifactId>continuum-notifier-api</artifactId>
     </dependency>
     <dependency>
+      <groupId>org.apache.maven.continuum</groupId>
+      <artifactId>continuum-reports</artifactId>
+    </dependency>    
+    <dependency>
       <groupId>org.apache.maven</groupId>
       <artifactId>maven-model</artifactId>
     </dependency>

Modified: maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/notification/mail/MailContinuumNotifier.java
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/notification/mail/MailContinuumNotifier.java?rev=594573&r1=594572&r2=594573&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/notification/mail/MailContinuumNotifier.java (original)
+++ maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/notification/mail/MailContinuumNotifier.java Tue Nov 13 08:36:11 2007
@@ -19,6 +19,16 @@
  * under the License.
  */
 
+import java.io.StringWriter;
+import java.net.InetAddress;
+import java.net.UnknownHostException;
+import java.util.Arrays;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+import java.util.Set;
+
 import org.apache.maven.continuum.Continuum;
 import org.apache.maven.continuum.configuration.ConfigurationService;
 import org.apache.maven.continuum.execution.ExecutorConfigurator;
@@ -37,6 +47,8 @@
 import org.apache.maven.continuum.notification.ContinuumNotificationDispatcher;
 import org.apache.maven.continuum.notification.ContinuumRecipientSource;
 import org.apache.maven.continuum.project.ContinuumProjectState;
+import org.apache.maven.continuum.reports.surefire.ReportTestResult;
+import org.apache.maven.continuum.reports.surefire.ReportTestSuiteGenerator;
 import org.apache.velocity.VelocityContext;
 import org.apache.velocity.exception.ResourceNotFoundException;
 import org.codehaus.plexus.mailsender.MailMessage;
@@ -47,16 +59,6 @@
 import org.codehaus.plexus.util.StringUtils;
 import org.codehaus.plexus.velocity.VelocityComponent;
 
-import java.io.StringWriter;
-import java.net.InetAddress;
-import java.net.UnknownHostException;
-import java.util.Arrays;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-import java.util.Set;
-
 /**
  * @author <a href="mailto:jason@maven.org">Jason van Zyl</a>
  * @version $Id$
@@ -88,6 +90,11 @@
      * @plexus.configuration
      */
     private MailSender mailSender;
+    
+    /**
+     * @plexus.requirement
+     */    
+    private ReportTestSuiteGenerator reportTestSuiteGenerator;
 
     /**
      * @plexus.requirement role-hint="default"
@@ -120,6 +127,16 @@
      * @plexus.configuration
      */
     private boolean includeBuildSummary = true;
+    
+    /**
+     * @plexus.configuration
+     */
+    private boolean includeTestSummary = true;
+    
+    /**
+     * @plexus.configuration
+     */
+    private boolean includeOutput = false;    
 
     /**
      * Customizable mail subject.  Use any combination of literal text, project or build attributes.
@@ -270,6 +287,10 @@
         try
         {
             VelocityContext context = new VelocityContext();
+            
+            context.put( "includeTestSummary", includeTestSummary );
+            
+            context.put( "includeOutput", includeOutput );
 
             if ( includeBuildResult )
             {
@@ -280,6 +301,11 @@
             {
                 context.put( "build", build );
 
+                ReportTestResult reportTestResult = reportTestSuiteGenerator.generateReportTestResult( build.getId(),
+                                                                                                       project.getId() );
+
+                context.put( "testResult", reportTestResult );
+                
                 context.put( "project", project );
 
                 context.put( "changesSinceLastSuccess", continuum.getChangesSinceLastSuccess( project.getId(), build

Modified: maven/continuum/trunk/continuum-core/src/main/resources/org/apache/maven/continuum/notification/mail/templates/common.vm
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-core/src/main/resources/org/apache/maven/continuum/notification/mail/templates/common.vm?rev=594573&r1=594572&r2=594573&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-core/src/main/resources/org/apache/maven/continuum/notification/mail/templates/common.vm (original)
+++ maven/continuum/trunk/continuum-core/src/main/resources/org/apache/maven/continuum/notification/mail/templates/common.vm Tue Nov 13 08:36:11 2007
@@ -154,14 +154,13 @@
 #end
 #end
 
-
-#if ( $build.testResult )
+#if ( $testResult )
 ****************************************************************************
 Test Summary:
 ****************************************************************************
-Tests: $build.testResult.testCount
-Failures: $build.testResult.failureCount
-Total time: $build.testResult.totalTime
+Tests: $testResult.testCount
+Failures: $testResult.failureCount
+Total time: $testResult.totalTime
 
 #end
 #if ( $build.state == 4 )
@@ -170,16 +169,19 @@
 ****************************************************************************
 $build.error
 
-#if ( $build.testResult && $build.testResult.failureCount > 0)
+#end
+#if ( $includeTestSummary )
+#if ( $testResult && $testResult.failureCount > 0 )
 ****************************************************************************
 Test Failures:
 ****************************************************************************
 
-#foreach( $suite in $build.testResult.suiteResults )
-#if ( $suite.failureCount > 0)
+#foreach( $suite in $testResult.suiteResults )
+#if ( $suite.numberOfFailures > 0)
 $suite.name
-  #foreach( $failure in $suite.failures )
-  $failure.name
+  #foreach( $failure in $suite.reportFailures )
+  $failure.testName :
+  $failure.type
   $failure.exception
 
   #end
@@ -188,12 +190,15 @@
 #end
 #end
 #end
+
+#if ( $includeOutput )
 #if ( $buildOutput && $buildOutput != "" )
 ****************************************************************************
 Output:
 ****************************************************************************
 $buildOutput
 ****************************************************************************
+#end
 #end
 
 #end ## #macro( shellBuildResult )

Modified: maven/continuum/trunk/continuum-core/src/test/resources/org/apache/maven/continuum/notification/mail/MailContinuumNotifierTest.xml
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-core/src/test/resources/org/apache/maven/continuum/notification/mail/MailContinuumNotifierTest.xml?rev=594573&r1=594572&r2=594573&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-core/src/test/resources/org/apache/maven/continuum/notification/mail/MailContinuumNotifierTest.xml (original)
+++ maven/continuum/trunk/continuum-core/src/test/resources/org/apache/maven/continuum/notification/mail/MailContinuumNotifierTest.xml Tue Nov 13 08:36:11 2007
@@ -54,6 +54,11 @@
         <requirement>
           <role>org.apache.maven.continuum.configuration.ConfigurationService</role>
         </requirement>
+        <requirement>
+          <role>org.apache.maven.continuum.reports.surefire.ReportTestSuiteGenerator</role>
+          <field-name>reportTestSuiteGenerator</field-name>
+          <role-hint>default</role-hint>
+        </requirement>         
       </requirements>
       <configuration>
         <fromMailbox>continuum@localhost</fromMailbox>

Modified: maven/continuum/trunk/continuum-data-management/data-management-cli/src/main/java/org/apache/maven/continuum/management/DataManagementCli.java
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-data-management/data-management-cli/src/main/java/org/apache/maven/continuum/management/DataManagementCli.java?rev=594573&r1=594572&r2=594573&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-data-management/data-management-cli/src/main/java/org/apache/maven/continuum/management/DataManagementCli.java (original)
+++ maven/continuum/trunk/continuum-data-management/data-management-cli/src/main/java/org/apache/maven/continuum/management/DataManagementCli.java Tue Nov 13 08:36:11 2007
@@ -70,6 +70,7 @@
 /**
  * An application for performing database upgrades from old Continuum and Redback versions. A suitable tool until it
  * is natively incorporated into Continuum itself.
+ * @version $Id$
  */
 public class DataManagementCli
 {

Added: maven/continuum/trunk/continuum-reports/pom.xml
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-reports/pom.xml?rev=594573&view=auto
==============================================================================
--- maven/continuum/trunk/continuum-reports/pom.xml (added)
+++ maven/continuum/trunk/continuum-reports/pom.xml Tue Nov 13 08:36:11 2007
@@ -0,0 +1,57 @@
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one
+  ~ or more contributor license agreements.  See the NOTICE file
+  ~ distributed with this work for additional information
+  ~ regarding copyright ownership.  The ASF licenses this file
+  ~ to you under the Apache License, Version 2.0 (the
+  ~ "License"); you may not use this file except in compliance
+  ~ with the License.  You may obtain a copy of the License at
+  ~
+  ~   http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing,
+  ~ software distributed under the License is distributed on an
+  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  ~ KIND, either express or implied.  See the License for the
+  ~ specific language governing permissions and limitations
+  ~ under the License.
+  -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <artifactId>continuum-parent</artifactId>
+    <groupId>org.apache.maven.continuum</groupId>
+    <version>1.1-beta-5-SNAPSHOT</version>
+  </parent>
+  <artifactId>continuum-reports</artifactId>
+  <name>Continuum Reports</name>
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven.continuum</groupId>
+      <artifactId>continuum-api</artifactId>
+    </dependency>
+    <!-- Not needed for the moment
+    <dependency>
+      <groupId>org.apache.maven.continuum</groupId>
+      <artifactId>continuum-store</artifactId>
+    </dependency>
+    -->
+  </dependencies>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.codehaus.plexus</groupId>
+        <artifactId>plexus-maven-plugin</artifactId>
+        <executions>
+          <execution>
+            <id>generate</id>
+            <goals>
+              <goal>descriptor</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+</project>
\ No newline at end of file

Propchange: maven/continuum/trunk/continuum-reports/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = LF

Propchange: maven/continuum/trunk/continuum-reports/pom.xml
------------------------------------------------------------------------------
    svn:executable = *

Propchange: maven/continuum/trunk/continuum-reports/pom.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/continuum/trunk/continuum-reports/src/main/java/org/apache/maven/continuum/reports/surefire/DefaultReportTestSuiteGenerator.java
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-reports/src/main/java/org/apache/maven/continuum/reports/surefire/DefaultReportTestSuiteGenerator.java?rev=594573&view=auto
==============================================================================
--- maven/continuum/trunk/continuum-reports/src/main/java/org/apache/maven/continuum/reports/surefire/DefaultReportTestSuiteGenerator.java (added)
+++ maven/continuum/trunk/continuum-reports/src/main/java/org/apache/maven/continuum/reports/surefire/DefaultReportTestSuiteGenerator.java Tue Nov 13 08:36:11 2007
@@ -0,0 +1,200 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.maven.continuum.reports.surefire;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.LinkedList;
+import java.util.List;
+
+import javax.xml.parsers.ParserConfigurationException;
+
+import org.apache.maven.continuum.configuration.ConfigurationException;
+import org.apache.maven.continuum.configuration.ConfigurationService;
+import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable;
+import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException;
+import org.codehaus.plexus.util.DirectoryScanner;
+import org.xml.sax.SAXException;
+
+/**
+ * @author <a href="mailto:olamy@apache.org">olamy</a>
+ * @since 12 nov. 07
+ * @version $Id$
+ * 
+ * @plexus.component 
+ *    role="org.apache.maven.continuum.reports.surefire.ReportTestSuiteGenerator" role-hint="default"
+ */
+public class DefaultReportTestSuiteGenerator
+    implements ReportTestSuiteGenerator, Initializable
+{
+    
+    /**
+     * @plexus.requirement
+     */
+    private ConfigurationService configurationService;
+
+    private List<String> defaultIncludes;
+    
+    private List<String> defaultexcludes;
+
+    // -----------------------------
+    //  Plexus Lifecycle
+    // -----------------------------
+    
+    public void initialize()
+        throws InitializationException
+    {
+        defaultIncludes = new ArrayList<String>( 1 );
+        defaultIncludes.add( "*.xml" );
+        defaultexcludes = new ArrayList<String>( 1 );
+        defaultexcludes.add( "*.txt" );
+    }
+
+    /** 
+     * @see org.apache.maven.continuum.reports.surefire.ReportTestSuiteGenerator#generateReports(java.io.File, java.util.List, java.util.List)
+     */
+    public List<ReportTestSuite> generateReports( File directory, List<String> includes, List<String> excludes )
+        throws ReportTestSuiteGeneratorException
+    {
+        if ( directory == null )
+        {
+            return Collections.EMPTY_LIST;
+        }
+        if ( !directory.exists() )
+        {
+            return Collections.EMPTY_LIST;
+        }
+        List<ReportTestSuite> reportTestSuites = new LinkedList<ReportTestSuite>();
+        String[] includesArray = null;
+        if ( includes == null )
+        {
+            includesArray = new String[0];
+        }
+        else
+        {
+            includesArray = includes.toArray( new String[includes.size()] );
+        }
+        String[] excludesArray = null;
+        if ( excludes == null )
+        {
+            excludesArray = new String[0];
+        }
+        else
+        {
+            excludesArray = excludes.toArray( new String[excludes.size()] );
+        }
+        String[] xmlReportFiles = getIncludedFiles( directory, includesArray, excludesArray );
+
+        if (xmlReportFiles == null )
+        {
+            return Collections.EMPTY_LIST;
+        }
+        if (xmlReportFiles.length == 0)
+        {
+            return Collections.EMPTY_LIST;
+        }
+        for ( int index = 0; index < xmlReportFiles.length; index++ )
+        {
+            ReportTestSuite testSuite = new ReportTestSuite();
+
+            String currentReport = xmlReportFiles[index];
+
+            try
+            {
+                testSuite.parse( directory + File.separator + currentReport );
+            }
+            catch ( ParserConfigurationException e )
+            {
+                throw new ReportTestSuiteGeneratorException( "Error setting up parser for Surefire XML report", e );
+            }
+            catch ( SAXException e )
+            {
+                throw new ReportTestSuiteGeneratorException( "Error parsing Surefire XML report " + currentReport, e );
+            }
+            catch ( IOException e )
+            {
+                throw new ReportTestSuiteGeneratorException( "Error reading Surefire XML report " + currentReport, e );
+            }
+
+            reportTestSuites.add( testSuite );
+        }
+        return reportTestSuites;
+    }
+
+    /** 
+     * @see org.apache.maven.continuum.reports.surefire.ReportTestSuiteGenerator#generateReports(java.io.File)
+     */
+    public List<ReportTestSuite> generateReports( File directory )
+        throws ReportTestSuiteGeneratorException
+    {
+        return generateReports( directory, defaultIncludes, defaultexcludes );
+    }
+    
+    
+
+    /** 
+     * @see org.apache.maven.continuum.reports.surefire.ReportTestSuiteGenerator#generateReports(int, int)
+     */
+    public List<ReportTestSuite> generateReports( int buildId, int projectId )
+        throws ReportTestSuiteGeneratorException
+    {
+        try
+        {
+            File directory = configurationService.getTestReportsDirectory( buildId, projectId );
+            return generateReports( directory );
+        }
+        catch ( ConfigurationException e )
+        {
+            throw new ReportTestSuiteGeneratorException( e.getMessage(), e );
+        }
+    }
+    
+    /** 
+     * @see org.apache.maven.continuum.reports.surefire.ReportTestSuiteGenerator#generateTestResult(int, int)
+     */
+    public ReportTestResult generateReportTestResult( int buildId, int projectId )
+        throws ReportTestSuiteGeneratorException
+    {
+        List<ReportTestSuite> reportTestSuites = generateReports( buildId, projectId );
+        ReportTestResult reportTestResult = new ReportTestResult();
+        for (ReportTestSuite reportTestSuite : reportTestSuites)
+        {
+            reportTestResult.addReportTestSuite( reportTestSuite );
+        }
+        return reportTestResult;
+    }
+
+    private String[] getIncludedFiles( File directory, String[] includes, String[] excludes )
+    {
+        DirectoryScanner scanner = new DirectoryScanner();
+
+        scanner.setBasedir( directory );
+
+        scanner.setIncludes( includes );
+
+        scanner.setExcludes( excludes );
+
+        scanner.scan();
+
+        return scanner.getIncludedFiles();
+    }
+    
+}

Propchange: maven/continuum/trunk/continuum-reports/src/main/java/org/apache/maven/continuum/reports/surefire/DefaultReportTestSuiteGenerator.java
------------------------------------------------------------------------------
    svn:eol-style = LF

Propchange: maven/continuum/trunk/continuum-reports/src/main/java/org/apache/maven/continuum/reports/surefire/DefaultReportTestSuiteGenerator.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: maven/continuum/trunk/continuum-reports/src/main/java/org/apache/maven/continuum/reports/surefire/DefaultReportTestSuiteGenerator.java
------------------------------------------------------------------------------
--- svn:keywords (added)
+++ svn:keywords Tue Nov 13 08:36:11 2007
@@ -0,0 +1 @@
+URL HeadURL Author LastChangedBy Date LastChangedDate Rev Revision LastChangedRevision Id

Added: maven/continuum/trunk/continuum-reports/src/main/java/org/apache/maven/continuum/reports/surefire/ReportFailure.java
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-reports/src/main/java/org/apache/maven/continuum/reports/surefire/ReportFailure.java?rev=594573&view=auto
==============================================================================
--- maven/continuum/trunk/continuum-reports/src/main/java/org/apache/maven/continuum/reports/surefire/ReportFailure.java (added)
+++ maven/continuum/trunk/continuum-reports/src/main/java/org/apache/maven/continuum/reports/surefire/ReportFailure.java Tue Nov 13 08:36:11 2007
@@ -0,0 +1,70 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.maven.continuum.reports.surefire;
+
+/**
+ * @author <a href="mailto:olamy@apache.org">olamy</a>
+ * @since 13 nov. 07
+ * @version $Id$
+ */
+public class ReportFailure
+{
+    private String type;
+
+    private String exception;
+    
+    private String testName;
+
+    public ReportFailure( String type, String exception, String testName )
+    {
+        this.type = type;
+        this.exception = exception;
+        this.testName = testName;
+    }
+
+    public String getType()
+    {
+        return type;
+    }
+
+    public void setType( String type )
+    {
+        this.type = type;
+    }
+
+    public String getException()
+    {
+        return exception;
+    }
+
+    public void setException( String exception )
+    {
+        this.exception = exception;
+    }
+    
+    public String getTestName()
+    {
+        return testName;
+    }
+
+    public void setTestName( String testName )
+    {
+        this.testName = testName;
+    }    
+}

Propchange: maven/continuum/trunk/continuum-reports/src/main/java/org/apache/maven/continuum/reports/surefire/ReportFailure.java
------------------------------------------------------------------------------
    svn:eol-style = LF

Propchange: maven/continuum/trunk/continuum-reports/src/main/java/org/apache/maven/continuum/reports/surefire/ReportFailure.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: maven/continuum/trunk/continuum-reports/src/main/java/org/apache/maven/continuum/reports/surefire/ReportFailure.java
------------------------------------------------------------------------------
--- svn:keywords (added)
+++ svn:keywords Tue Nov 13 08:36:11 2007
@@ -0,0 +1 @@
+URL HeadURL Author LastChangedBy Date LastChangedDate Rev Revision LastChangedRevision Id

Added: maven/continuum/trunk/continuum-reports/src/main/java/org/apache/maven/continuum/reports/surefire/ReportTest.java
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-reports/src/main/java/org/apache/maven/continuum/reports/surefire/ReportTest.java?rev=594573&view=auto
==============================================================================
--- maven/continuum/trunk/continuum-reports/src/main/java/org/apache/maven/continuum/reports/surefire/ReportTest.java (added)
+++ maven/continuum/trunk/continuum-reports/src/main/java/org/apache/maven/continuum/reports/surefire/ReportTest.java Tue Nov 13 08:36:11 2007
@@ -0,0 +1,134 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.maven.continuum.reports.surefire;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author <a href="mailto:olamy@apache.org">olamy</a>
+ * @since 12 nov. 07
+ * @version $Id$
+ */
+public class ReportTest
+{
+    private String id;
+
+    private String name;
+
+    private int tests;
+
+    private int errors;
+
+    private int failures;
+
+    private float elapsedTime;
+
+    private List children;
+
+    public String getName()
+    {
+        return name;
+    }
+
+    public void setName( String name )
+    {
+        this.name = name;
+    }
+
+    public int getTests()
+    {
+        return tests;
+    }
+
+    public void setTests( int tests )
+    {
+        this.tests = tests;
+    }
+
+    public int getErrors()
+    {
+        return errors;
+    }
+
+    public void setErrors( int errors )
+    {
+        this.errors = errors;
+    }
+
+    public int getFailures()
+    {
+        return failures;
+    }
+
+    public void setFailures( int failures )
+    {
+        this.failures = failures;
+    }
+
+    public float getSuccessRate()
+    {
+        float percentage;
+        if ( tests == 0 )
+        {
+            percentage = 0;
+        }
+        else
+        {
+            percentage = ( (float) ( tests - errors - failures ) / (float) tests ) * 100;
+        }
+
+        return percentage;
+    }
+
+    public float getElapsedTime()
+    {
+        return elapsedTime;
+    }
+
+    public void setElapsedTime( float elapsedTime )
+    {
+        this.elapsedTime = elapsedTime;
+    }
+
+    public List getChildren()
+    {
+        if ( children == null )
+        {
+            children = new ArrayList();
+        }
+
+        return children;
+    }
+
+    public void setChildren( List children )
+    {
+        this.children = children;
+    }
+
+    public String getId()
+    {
+        return id;
+    }
+
+    public void setId( String id )
+    {
+        this.id = id;
+    }
+}

Propchange: maven/continuum/trunk/continuum-reports/src/main/java/org/apache/maven/continuum/reports/surefire/ReportTest.java
------------------------------------------------------------------------------
    svn:eol-style = LF

Propchange: maven/continuum/trunk/continuum-reports/src/main/java/org/apache/maven/continuum/reports/surefire/ReportTest.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: maven/continuum/trunk/continuum-reports/src/main/java/org/apache/maven/continuum/reports/surefire/ReportTest.java
------------------------------------------------------------------------------
--- svn:keywords (added)
+++ svn:keywords Tue Nov 13 08:36:11 2007
@@ -0,0 +1 @@
+URL HeadURL Author LastChangedBy Date LastChangedDate Rev Revision LastChangedRevision Id

Added: maven/continuum/trunk/continuum-reports/src/main/java/org/apache/maven/continuum/reports/surefire/ReportTestCase.java
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-reports/src/main/java/org/apache/maven/continuum/reports/surefire/ReportTestCase.java?rev=594573&view=auto
==============================================================================
--- maven/continuum/trunk/continuum-reports/src/main/java/org/apache/maven/continuum/reports/surefire/ReportTestCase.java (added)
+++ maven/continuum/trunk/continuum-reports/src/main/java/org/apache/maven/continuum/reports/surefire/ReportTestCase.java Tue Nov 13 08:36:11 2007
@@ -0,0 +1,124 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.maven.continuum.reports.surefire;
+
+/**
+ * Taken from maven-surefire-report-plugin
+ * @author <a href="mailto:olamy@apache.org">olamy</a>
+ * @since 12 nov. 07
+ * @version $Id$
+ */
+public class ReportTestCase
+{
+    private String fullClassName;
+
+    private String className;
+
+    private String fullName;
+
+    private String name;
+
+    private float time;
+
+    private String failureType;
+
+    private String failureMessage;
+
+    private String failureDetails;
+
+    public String getName()
+    {
+        return name;
+    }
+
+    public void setName( String name )
+    {
+        this.name = name;
+    }
+
+    public String getFullClassName()
+    {
+        return fullClassName;
+    }
+
+    public void setFullClassName( String name )
+    {
+        this.fullClassName = name;
+    }
+
+    public String getClassName()
+    {
+        return className;
+    }
+
+    public void setClassName( String name )
+    {
+        this.className = name;
+    }
+
+    public float getTime()
+    {
+        return time;
+    }
+
+    public void setTime( float time )
+    {
+        this.time = time;
+    }
+
+    public String getFullName()
+    {
+        return fullName;
+    }
+
+    public void setFullName( String fullName )
+    {
+        this.fullName = fullName;
+    }
+
+    public String getFailureType()
+    {
+        return failureType;
+    }
+
+    public void setFailureType( String failureType )
+    {
+        this.failureType = failureType;
+    }
+
+    public String getFailureMessage()
+    {
+        return failureMessage;
+    }
+
+    public void setFailureMessage( String failureMessage )
+    {
+        this.failureMessage = failureMessage;
+    }
+
+    public String getFailureDetails()
+    {
+        return failureDetails;
+    }
+
+    public void setFailureDetails( String failureDetails )
+    {
+        this.failureDetails = failureDetails;
+    }
+}

Propchange: maven/continuum/trunk/continuum-reports/src/main/java/org/apache/maven/continuum/reports/surefire/ReportTestCase.java
------------------------------------------------------------------------------
    svn:eol-style = LF

Propchange: maven/continuum/trunk/continuum-reports/src/main/java/org/apache/maven/continuum/reports/surefire/ReportTestCase.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: maven/continuum/trunk/continuum-reports/src/main/java/org/apache/maven/continuum/reports/surefire/ReportTestCase.java
------------------------------------------------------------------------------
--- svn:keywords (added)
+++ svn:keywords Tue Nov 13 08:36:11 2007
@@ -0,0 +1 @@
+URL HeadURL Author LastChangedBy Date LastChangedDate Rev Revision LastChangedRevision Id

Added: maven/continuum/trunk/continuum-reports/src/main/java/org/apache/maven/continuum/reports/surefire/ReportTestResult.java
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-reports/src/main/java/org/apache/maven/continuum/reports/surefire/ReportTestResult.java?rev=594573&view=auto
==============================================================================
--- maven/continuum/trunk/continuum-reports/src/main/java/org/apache/maven/continuum/reports/surefire/ReportTestResult.java (added)
+++ maven/continuum/trunk/continuum-reports/src/main/java/org/apache/maven/continuum/reports/surefire/ReportTestResult.java Tue Nov 13 08:36:11 2007
@@ -0,0 +1,93 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.maven.continuum.reports.surefire;
+
+import java.util.LinkedList;
+import java.util.List;
+
+/**
+ * @author <a href="mailto:olamy@apache.org">olamy</a>
+ * @since 13 nov. 07
+ * @version $Id$
+ */
+public class ReportTestResult
+{
+
+    private int testCount = 0;
+    
+    private int failureCount = 0;
+    
+    private float totalTime = 0;
+    
+    private List<ReportTestSuite> suiteResults;
+
+    public void addReportTestSuite(ReportTestSuite reportTestSuite)
+    {
+        if (this.suiteResults == null)
+        {
+            this.suiteResults = new LinkedList<ReportTestSuite>();
+        }
+        this.suiteResults.add( reportTestSuite );
+        this.testCount = this.testCount + reportTestSuite.getNumberOfTests();
+        this.failureCount = this.failureCount + reportTestSuite.getNumberOfFailures();
+        this.totalTime = this.totalTime + reportTestSuite.getTimeElapsed();
+    }
+    
+
+    public int getTestCount()
+    {
+        return testCount;
+    }
+
+    public void setTestCount( int testCount )
+    {
+        this.testCount = testCount;
+    }
+
+    public int getFailureCount()
+    {
+        return failureCount;
+    }
+
+    public void setFailureCount( int failureCount )
+    {
+        this.failureCount = failureCount;
+    }
+
+    public List<ReportTestSuite> getSuiteResults()
+    {
+        return suiteResults;
+    }
+
+    public void setSuiteResults( List<ReportTestSuite> suiteResults )
+    {
+        this.suiteResults = suiteResults;
+    }
+    
+    public float getTotalTime()
+    {
+        return totalTime;
+    }
+
+    public void setTotalTime( float totalTime )
+    {
+        this.totalTime = totalTime;
+    }    
+    
+}

Propchange: maven/continuum/trunk/continuum-reports/src/main/java/org/apache/maven/continuum/reports/surefire/ReportTestResult.java
------------------------------------------------------------------------------
    svn:eol-style = LF

Propchange: maven/continuum/trunk/continuum-reports/src/main/java/org/apache/maven/continuum/reports/surefire/ReportTestResult.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: maven/continuum/trunk/continuum-reports/src/main/java/org/apache/maven/continuum/reports/surefire/ReportTestResult.java
------------------------------------------------------------------------------
--- svn:keywords (added)
+++ svn:keywords Tue Nov 13 08:36:11 2007
@@ -0,0 +1 @@
+URL HeadURL Author LastChangedBy Date LastChangedDate Rev Revision LastChangedRevision Id

Added: maven/continuum/trunk/continuum-reports/src/main/java/org/apache/maven/continuum/reports/surefire/ReportTestSuite.java
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-reports/src/main/java/org/apache/maven/continuum/reports/surefire/ReportTestSuite.java?rev=594573&view=auto
==============================================================================
--- maven/continuum/trunk/continuum-reports/src/main/java/org/apache/maven/continuum/reports/surefire/ReportTestSuite.java (added)
+++ maven/continuum/trunk/continuum-reports/src/main/java/org/apache/maven/continuum/reports/surefire/ReportTestSuite.java Tue Nov 13 08:36:11 2007
@@ -0,0 +1,328 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.maven.continuum.reports.surefire;
+
+import java.io.File;
+import java.io.IOException;
+import java.text.NumberFormat;
+import java.text.ParseException;
+import java.util.Collections;
+import java.util.LinkedList;
+import java.util.List;
+
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.parsers.SAXParser;
+import javax.xml.parsers.SAXParserFactory;
+
+import org.xml.sax.Attributes;
+import org.xml.sax.SAXException;
+import org.xml.sax.helpers.DefaultHandler;
+
+/**
+ * @author <a href="mailto:olamy@apache.org">olamy</a>
+ * @since 12 nov. 07
+ * @version $Id$
+ */
+public class ReportTestSuite
+    extends DefaultHandler
+{
+    private List<ReportTestCase> testCases;
+
+    private int numberOfErrors;
+
+    private int numberOfFailures;
+
+    private int numberOfTests;
+
+    private String name;
+
+    private String fullClassName;
+
+    private String packageName;
+
+    private float timeElapsed;
+
+    private NumberFormat numberFormat = NumberFormat.getInstance();
+
+    /**
+     * @noinspection StringBufferField
+     */
+    private StringBuffer currentElement;
+
+    private ReportTestCase testCase;
+    
+    private List<ReportFailure> reportFailures;
+
+
+    public void parse( String xmlPath )
+        throws ParserConfigurationException, SAXException, IOException
+    {
+        SAXParserFactory factory = SAXParserFactory.newInstance();
+
+        SAXParser saxParser = factory.newSAXParser();
+
+        saxParser.parse( new File( xmlPath ), this );
+    }
+
+    public void startElement( String uri, String localName, String qName, Attributes attributes )
+        throws SAXException
+    {
+        try
+        {
+            if ( "testsuite".equals( qName ) )
+            {
+                numberOfErrors = Integer.parseInt( attributes.getValue( "errors" ) );
+
+                numberOfFailures = Integer.parseInt( attributes.getValue( "failures" ) );
+
+                numberOfTests = Integer.parseInt( attributes.getValue( "tests" ) );
+
+                Number time = numberFormat.parse( attributes.getValue( "time" ) );
+
+                timeElapsed = time.floatValue();
+
+                //check if group attribute is existing
+                if ( attributes.getValue( "group" ) != null && !"".equals( attributes.getValue( "group" ) ) )
+                {
+                    packageName = attributes.getValue( "group" );
+
+                    name = attributes.getValue( "name" );
+
+                    fullClassName = packageName + "." + name;
+                }
+                else
+                {
+                    fullClassName = attributes.getValue( "name" );
+
+                    name = fullClassName.substring( fullClassName.lastIndexOf( "." ) + 1, fullClassName.length() );
+
+                    int lastDotPosition = fullClassName.lastIndexOf( "." );
+                    if ( lastDotPosition < 0 )
+                    {
+                        /* no package name */
+                        packageName = "";
+                    }
+                    else
+                    {
+                        packageName = fullClassName.substring( 0, lastDotPosition );
+                    }
+                }
+
+                testCases = new LinkedList<ReportTestCase>();
+            }
+            else if ( "testcase".equals( qName ) )
+            {
+                currentElement = new StringBuffer();
+
+                testCase = new ReportTestCase();
+
+                testCase.setFullClassName( fullClassName );
+
+                testCase.setName( attributes.getValue( "name" ) );
+
+                testCase.setClassName( name );
+
+                String timeAsString = attributes.getValue( "time" );
+
+                Number time = new Integer( 0 );
+
+                if ( timeAsString != null )
+                {
+                    time = numberFormat.parse( timeAsString );
+                }
+
+                testCase.setTime( time.floatValue() );
+
+                testCase.setFullName( packageName + "." + name + "." + testCase.getName() );
+            }
+            else if ( "failure".equals( qName ) )
+            {
+                testCase.setFailureType( attributes.getValue( "type" ) );
+                testCase.setFailureMessage( attributes.getValue( "message" ) );
+            }
+            else if ( "error".equals( qName ) )
+            {
+                testCase.setFailureType( attributes.getValue( "type" ) );
+                testCase.setFailureMessage( attributes.getValue( "message" ) );
+            }
+        }
+        catch ( ParseException e )
+        {
+            throw new SAXException( e.getMessage(), e );
+        }
+    }
+
+    public void endElement( String uri, String localName, String qName )
+        throws SAXException
+    {
+        if ( "testcase".equals( qName ) )
+        {
+            testCases.add( testCase );
+        }
+        else if ( "failure".equals( qName ) )
+        {
+            testCase.setFailureDetails( currentElement.toString() );
+            this.addReportFailure( new ReportFailure( testCase.getFailureType(), testCase.getFailureDetails(), testCase.getName() ) );
+        }
+        else if ( "error".equals( qName ) )
+        {
+            this.addReportFailure( new ReportFailure( testCase.getFailureType(), testCase.getFailureDetails(), testCase.getName() ) );
+            testCase.setFailureDetails( currentElement.toString() );
+        }
+    }
+
+    public void characters( char[] ch, int start, int length )
+        throws SAXException
+    {
+        String s = new String( ch, start, length );
+
+        if ( !"".equals( s.trim() ) )
+        {
+            currentElement.append( s );
+        }
+    }
+
+    public List<ReportTestCase> getTestCases()
+    {
+        return this.testCases;
+    }
+
+    public int getNumberOfErrors()
+    {
+        return numberOfErrors;
+    }
+
+    public void setNumberOfErrors( int numberOfErrors )
+    {
+        this.numberOfErrors = numberOfErrors;
+    }
+
+    public int getNumberOfFailures()
+    {
+        return numberOfFailures;
+    }
+
+    public void setNumberOfFailures( int numberOfFailures )
+    {
+        this.numberOfFailures = numberOfFailures;
+    }
+
+    public int getNumberOfTests()
+    {
+        return numberOfTests;
+    }
+
+    public void setNumberOfTests( int numberOfTests )
+    {
+        this.numberOfTests = numberOfTests;
+    }
+
+    public String getName()
+    {
+        return name;
+    }
+
+    public void setName( String name )
+    {
+        this.name = name;
+    }
+
+    public String getFName()
+    {
+        return name;
+    }
+
+    public void setFName( String name )
+    {
+        this.name = name;
+    }
+
+    public String getPackageName()
+    {
+        return packageName;
+    }
+
+    public void setPackageName( String packageName )
+    {
+        this.packageName = packageName;
+    }
+
+    public float getTimeElapsed()
+    {
+        return this.timeElapsed;
+    }
+
+    public void setTimeElapsed( float timeElapsed )
+    {
+        this.timeElapsed = timeElapsed;
+    }
+
+    /*
+    private List<String> parseCause( String detail )
+    {
+        String fullName = testCase.getFullName();
+        String name = fullName.substring( fullName.lastIndexOf( "." ) + 1 );
+        return parseCause( detail, name );
+    }
+    
+
+    private List<String> parseCause( String detail, String compareTo )
+    {
+        StringTokenizer stringTokenizer = new StringTokenizer( detail, "\n" );
+        List<String> parsedDetail = new ArrayList<String>( stringTokenizer.countTokens() );
+
+        while ( stringTokenizer.hasMoreTokens() )
+        {
+            String lineString = stringTokenizer.nextToken().trim();
+            parsedDetail.add( lineString );
+            if ( lineString.indexOf( compareTo ) >= 0 )
+            {
+                break;
+            }
+        }
+
+        return parsedDetail;
+    }
+    */
+
+    public void setTestCases( List<ReportTestCase> testCases )
+    {
+        this.testCases = Collections.unmodifiableList( testCases );
+    }
+    
+    @SuppressWarnings ("unchecked")
+    public List<ReportFailure> getReportFailures()
+    {
+        return reportFailures == null ? Collections.EMPTY_LIST : reportFailures;
+    }
+
+    public void setReportFailures( List<ReportFailure> reportFailures )
+    {
+        this.reportFailures = reportFailures;
+    }
+
+    public void addReportFailure( ReportFailure reportFailure )
+    {
+        if ( this.reportFailures == null )
+        {
+            this.reportFailures = new LinkedList<ReportFailure>();
+        }
+        this.reportFailures.add( reportFailure );
+    }
+}

Propchange: maven/continuum/trunk/continuum-reports/src/main/java/org/apache/maven/continuum/reports/surefire/ReportTestSuite.java
------------------------------------------------------------------------------
    svn:eol-style = LF

Propchange: maven/continuum/trunk/continuum-reports/src/main/java/org/apache/maven/continuum/reports/surefire/ReportTestSuite.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: maven/continuum/trunk/continuum-reports/src/main/java/org/apache/maven/continuum/reports/surefire/ReportTestSuite.java
------------------------------------------------------------------------------
--- svn:keywords (added)
+++ svn:keywords Tue Nov 13 08:36:11 2007
@@ -0,0 +1 @@
+URL HeadURL Author LastChangedBy Date LastChangedDate Rev Revision LastChangedRevision Id

Added: maven/continuum/trunk/continuum-reports/src/main/java/org/apache/maven/continuum/reports/surefire/ReportTestSuiteGenerator.java
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-reports/src/main/java/org/apache/maven/continuum/reports/surefire/ReportTestSuiteGenerator.java?rev=594573&view=auto
==============================================================================
--- maven/continuum/trunk/continuum-reports/src/main/java/org/apache/maven/continuum/reports/surefire/ReportTestSuiteGenerator.java (added)
+++ maven/continuum/trunk/continuum-reports/src/main/java/org/apache/maven/continuum/reports/surefire/ReportTestSuiteGenerator.java Tue Nov 13 08:36:11 2007
@@ -0,0 +1,68 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.maven.continuum.reports.surefire;
+
+import java.io.File;
+import java.util.List;
+
+/**
+ * @author <a href="mailto:olamy@apache.org">olamy</a>
+ * @since 12 nov. 07
+ * @version $Id$
+ */
+public interface ReportTestSuiteGenerator
+{
+
+    /**
+     * @param directory directory containing surefire tests files
+     * @param includes file types to include
+     * @param excludes file types to exclude
+     * @return List of {@link ReportTestSuite}
+     * @throws ReportTestSuiteGeneratorException
+     */
+    List<ReportTestSuite> generateReports( File directory, List<String> includes, List<String> excludes )
+        throws ReportTestSuiteGeneratorException;
+    
+    /**
+     * Use generateReports with default includes *.xml and default excludes *.txt
+     * @param directory directory containing surefire tests files
+     * @return List of {@link ReportTestSuite}
+     * @throws ReportTestSuiteGeneratorException
+     */
+    List<ReportTestSuite> generateReports( File directory )
+        throws ReportTestSuiteGeneratorException;  
+    
+    /**
+     * @param buildId
+     * @param projectId
+     * @return List of {@link ReportTestSuite}
+     * @throws ReportTestSuiteGeneratorException
+     */
+    List<ReportTestSuite> generateReports( int buildId, int projectId )
+        throws ReportTestSuiteGeneratorException;
+    
+    /**
+     * @param buildId
+     * @param projectId
+     * @return List of {@link TestResult}
+     * @throws ReportTestSuiteGeneratorException
+     */
+    ReportTestResult generateReportTestResult( int buildId, int projectId )
+        throws ReportTestSuiteGeneratorException;
+}

Propchange: maven/continuum/trunk/continuum-reports/src/main/java/org/apache/maven/continuum/reports/surefire/ReportTestSuiteGenerator.java
------------------------------------------------------------------------------
    svn:eol-style = LF

Propchange: maven/continuum/trunk/continuum-reports/src/main/java/org/apache/maven/continuum/reports/surefire/ReportTestSuiteGenerator.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: maven/continuum/trunk/continuum-reports/src/main/java/org/apache/maven/continuum/reports/surefire/ReportTestSuiteGenerator.java
------------------------------------------------------------------------------
--- svn:keywords (added)
+++ svn:keywords Tue Nov 13 08:36:11 2007
@@ -0,0 +1 @@
+URL HeadURL Author LastChangedBy Date LastChangedDate Rev Revision LastChangedRevision Id

Added: maven/continuum/trunk/continuum-reports/src/main/java/org/apache/maven/continuum/reports/surefire/ReportTestSuiteGeneratorException.java
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-reports/src/main/java/org/apache/maven/continuum/reports/surefire/ReportTestSuiteGeneratorException.java?rev=594573&view=auto
==============================================================================
--- maven/continuum/trunk/continuum-reports/src/main/java/org/apache/maven/continuum/reports/surefire/ReportTestSuiteGeneratorException.java (added)
+++ maven/continuum/trunk/continuum-reports/src/main/java/org/apache/maven/continuum/reports/surefire/ReportTestSuiteGeneratorException.java Tue Nov 13 08:36:11 2007
@@ -0,0 +1,63 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.maven.continuum.reports.surefire;
+
+/**
+ * @author <a href="mailto:olamy@apache.org">olamy</a>
+ * @since 12 nov. 07
+ * @version $Id$
+ */
+public class ReportTestSuiteGeneratorException
+    extends Exception
+{
+
+    /**
+     * 
+     */
+    public ReportTestSuiteGeneratorException()
+    {
+        // nothing
+    }
+
+    /**
+     * @param message
+     */
+    public ReportTestSuiteGeneratorException( String message )
+    {
+        super( message );
+    }
+
+    /**
+     * @param cause
+     */
+    public ReportTestSuiteGeneratorException( Throwable cause )
+    {
+        super( cause );
+    }
+
+    /**
+     * @param message
+     * @param cause
+     */
+    public ReportTestSuiteGeneratorException( String message, Throwable cause )
+    {
+        super( message, cause );
+    }
+
+}

Propchange: maven/continuum/trunk/continuum-reports/src/main/java/org/apache/maven/continuum/reports/surefire/ReportTestSuiteGeneratorException.java
------------------------------------------------------------------------------
    svn:eol-style = LF

Propchange: maven/continuum/trunk/continuum-reports/src/main/java/org/apache/maven/continuum/reports/surefire/ReportTestSuiteGeneratorException.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: maven/continuum/trunk/continuum-reports/src/main/java/org/apache/maven/continuum/reports/surefire/ReportTestSuiteGeneratorException.java
------------------------------------------------------------------------------
--- svn:keywords (added)
+++ svn:keywords Tue Nov 13 08:36:11 2007
@@ -0,0 +1 @@
+URL HeadURL Author LastChangedBy Date LastChangedDate Rev Revision LastChangedRevision Id

Added: maven/continuum/trunk/continuum-reports/src/test/java/org/apache/maven/continuum/reports/surefire/DefaultReportTestSuiteGeneratorTest.java
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-reports/src/test/java/org/apache/maven/continuum/reports/surefire/DefaultReportTestSuiteGeneratorTest.java?rev=594573&view=auto
==============================================================================
--- maven/continuum/trunk/continuum-reports/src/test/java/org/apache/maven/continuum/reports/surefire/DefaultReportTestSuiteGeneratorTest.java (added)
+++ maven/continuum/trunk/continuum-reports/src/test/java/org/apache/maven/continuum/reports/surefire/DefaultReportTestSuiteGeneratorTest.java Tue Nov 13 08:36:11 2007
@@ -0,0 +1,102 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.maven.continuum.reports.surefire;
+
+import java.io.File;
+import java.util.List;
+
+import org.codehaus.plexus.PlexusTestCase;
+
+/**
+ * @author <a href="mailto:olamy@apache.org">olamy</a>
+ * @since 12 nov. 07
+ * @version $Id$
+ */
+public class DefaultReportTestSuiteGeneratorTest
+    extends PlexusTestCase
+{
+
+    private File getReportsDirectory( String pathDir )
+    {
+        return new File( getBasedir() + File.separatorChar + "src" + File.separatorChar + "test" + File.separatorChar
+            + "resources" + File.separatorChar + pathDir );
+    }
+
+    public void testSimpleFile()
+        throws Exception
+    {
+        File testDirectory = getReportsDirectory( "simplereport" );
+
+        ReportTestSuiteGenerator generator = (ReportTestSuiteGenerator) lookup( ReportTestSuiteGenerator.class,
+                                                                                "default" );
+
+        List<ReportTestSuite> reports = generator.generateReports( testDirectory );
+        assertEquals( 1, reports.size() );
+
+        ReportTestSuite report = reports.get( 0 );
+
+        assertEquals( "AppTest", report.getName() );
+
+        assertEquals( 1, report.getNumberOfTests() );
+    }
+
+    public void testContinuumCore()
+        throws Exception
+    {
+        ReportTestSuiteGenerator generator = (ReportTestSuiteGenerator) lookup( ReportTestSuiteGenerator.class,
+                                                                                "default" );
+        List<ReportTestSuite> reports = generator.generateReports( 1, 1 );
+
+        assertEquals( 18, reports.size() );
+
+        for ( ReportTestSuite report : reports )
+        {
+            if ( report.getName().equals( "MailContinuumNotifierTest" )
+                && report.getPackageName().equals( "org.apache.maven.continuum.notification.mail" ) )
+            {
+                assertEquals( 1, report.getNumberOfFailures() );
+                // don't test this because can plate forme dependant
+                //assertEquals( 11.578, report.getTimeElapsed() );
+                assertEquals( 3, report.getNumberOfTests() );
+
+                for ( ReportTestCase testCase : report.getTestCases() )
+                {
+                    if ( testCase.getName().equals( "testSuccessfulBuild" ) )
+                    {
+                        assertEquals( "junit.framework.ComparisonFailure", testCase.getFailureType() );
+                        assertEquals( "expected:&lt;...s&gt; but was:&lt;...&gt;", testCase.getFailureMessage() );
+                        assertTrue( testCase.getFailureDetails().startsWith( "junit.framework.ComparisonFailure" ) );
+                    }
+                }
+            }
+
+        }
+    }
+    
+    public void testgenerateReportTestResult()
+    throws Exception
+    {
+        ReportTestSuiteGenerator generator = (ReportTestSuiteGenerator) lookup( ReportTestSuiteGenerator.class,
+                                                                                "default" );
+        ReportTestResult reportTestResult = generator.generateReportTestResult( 1, 1 );
+        assertEquals( 18, reportTestResult.getSuiteResults().size() );
+        assertEquals( 1, reportTestResult.getFailureCount() );
+        assertEquals( 61, reportTestResult.getTestCount() );
+    }
+}

Propchange: maven/continuum/trunk/continuum-reports/src/test/java/org/apache/maven/continuum/reports/surefire/DefaultReportTestSuiteGeneratorTest.java
------------------------------------------------------------------------------
    svn:eol-style = LF

Propchange: maven/continuum/trunk/continuum-reports/src/test/java/org/apache/maven/continuum/reports/surefire/DefaultReportTestSuiteGeneratorTest.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: maven/continuum/trunk/continuum-reports/src/test/java/org/apache/maven/continuum/reports/surefire/DefaultReportTestSuiteGeneratorTest.java
------------------------------------------------------------------------------
--- svn:keywords (added)
+++ svn:keywords Tue Nov 13 08:36:11 2007
@@ -0,0 +1 @@
+URL HeadURL Author LastChangedBy Date LastChangedDate Rev Revision LastChangedRevision Id

Added: maven/continuum/trunk/continuum-reports/src/test/java/org/apache/maven/continuum/reports/surefire/MockConfigurationService.java
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-reports/src/test/java/org/apache/maven/continuum/reports/surefire/MockConfigurationService.java?rev=594573&view=auto
==============================================================================
--- maven/continuum/trunk/continuum-reports/src/test/java/org/apache/maven/continuum/reports/surefire/MockConfigurationService.java (added)
+++ maven/continuum/trunk/continuum-reports/src/test/java/org/apache/maven/continuum/reports/surefire/MockConfigurationService.java Tue Nov 13 08:36:11 2007
@@ -0,0 +1,206 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.maven.continuum.reports.surefire;
+
+import java.io.File;
+
+import org.apache.maven.continuum.configuration.ConfigurationException;
+import org.apache.maven.continuum.configuration.ConfigurationLoadingException;
+import org.apache.maven.continuum.configuration.ConfigurationService;
+import org.apache.maven.continuum.configuration.ConfigurationStoringException;
+import org.apache.maven.continuum.model.project.Schedule;
+import org.apache.maven.continuum.store.ContinuumStoreException;
+
+/**
+ * @author <a href="mailto:olamy@apache.org">olamy</a>
+ * @since 12 nov. 07
+ * @version $Id$
+ */
+public class MockConfigurationService
+    implements ConfigurationService
+{
+
+    /** 
+     * @see org.apache.maven.continuum.configuration.ConfigurationService#getApplicationHome()
+     */
+    public File getApplicationHome()
+    {
+        return null;
+    }
+
+    /** 
+     * @see org.apache.maven.continuum.configuration.ConfigurationService#getBuildOutput(int, int)
+     */
+    public String getBuildOutput( int buildId, int projectId )
+        throws ConfigurationException
+    {
+        return null;
+    }
+
+    /** 
+     * @see org.apache.maven.continuum.configuration.ConfigurationService#getBuildOutputDirectory()
+     */
+    public File getBuildOutputDirectory()
+    {
+        return null;
+    }
+
+    /** 
+     * @see org.apache.maven.continuum.configuration.ConfigurationService#getBuildOutputDirectory(int)
+     */
+    public File getBuildOutputDirectory( int projectId )
+    {
+        return null;
+    }
+
+    /** 
+     * @see org.apache.maven.continuum.configuration.ConfigurationService#getBuildOutputFile(int, int)
+     */
+    public File getBuildOutputFile( int buildId, int projectId )
+        throws ConfigurationException
+    {
+        return null;
+    }
+
+    /** 
+     * @see org.apache.maven.continuum.configuration.ConfigurationService#getDefaultSchedule()
+     */
+    public Schedule getDefaultSchedule()
+        throws ContinuumStoreException, ConfigurationLoadingException
+    {
+        return null;
+    }
+
+    /** 
+     * @see org.apache.maven.continuum.configuration.ConfigurationService#getDeploymentRepositoryDirectory()
+     */
+    public File getDeploymentRepositoryDirectory()
+    {
+        return null;
+    }
+
+    /** 
+     * @see org.apache.maven.continuum.configuration.ConfigurationService#getFile(java.lang.String)
+     */
+    public File getFile( String filename )
+    {
+        return null;
+    }
+
+    /** 
+     * @see org.apache.maven.continuum.configuration.ConfigurationService#getTestReportsDirectory(int, int)
+     */
+    public File getTestReportsDirectory( int buildId, int projectId )
+        throws ConfigurationException
+    {
+        return new File( "src" + File.separatorChar + "test" + File.separatorChar
+                         + "resources" + File.separatorChar + "continuum-core" );
+    }
+
+    /** 
+     * @see org.apache.maven.continuum.configuration.ConfigurationService#getUrl()
+     */
+    public String getUrl()
+    {
+        return null;
+    }
+
+    /** 
+     * @see org.apache.maven.continuum.configuration.ConfigurationService#getWorkingDirectory()
+     */
+    public File getWorkingDirectory()
+    {
+        return null;
+    }
+
+    /** 
+     * @see org.apache.maven.continuum.configuration.ConfigurationService#isInitialized()
+     */
+    public boolean isInitialized()
+    {
+        return false;
+    }
+
+    /** 
+     * @see org.apache.maven.continuum.configuration.ConfigurationService#isLoaded()
+     */
+    public boolean isLoaded()
+    {
+        return false;
+    }
+
+    /** 
+     * @see org.apache.maven.continuum.configuration.ConfigurationService#load()
+     */
+    public void load()
+        throws ConfigurationLoadingException
+    {
+        // nothing
+    }
+
+    /** 
+     * @see org.apache.maven.continuum.configuration.ConfigurationService#setBuildOutputDirectory(java.io.File)
+     */
+    public void setBuildOutputDirectory( File buildOutputDirectory )
+    {
+        // nothing
+    }
+
+    /** 
+     * @see org.apache.maven.continuum.configuration.ConfigurationService#setDeploymentRepositoryDirectory(java.io.File)
+     */
+    public void setDeploymentRepositoryDirectory( File deploymentRepositoryDirectory )
+    {
+        // nothing
+    }
+
+    /** 
+     * @see org.apache.maven.continuum.configuration.ConfigurationService#setInitialized(boolean)
+     */
+    public void setInitialized( boolean initialized )
+    {
+        // nothing
+    }
+
+    /** 
+     * @see org.apache.maven.continuum.configuration.ConfigurationService#setUrl(java.lang.String)
+     */
+    public void setUrl( String url )
+    {
+        // nothing
+    }
+
+    /** 
+     * @see org.apache.maven.continuum.configuration.ConfigurationService#setWorkingDirectory(java.io.File)
+     */
+    public void setWorkingDirectory( File workingDirectory )
+    {
+        // nothing
+    }
+
+    /** 
+     * @see org.apache.maven.continuum.configuration.ConfigurationService#store()
+     */
+    public void store()
+        throws ConfigurationStoringException
+    {
+        // nothing
+    }
+
+}

Propchange: maven/continuum/trunk/continuum-reports/src/test/java/org/apache/maven/continuum/reports/surefire/MockConfigurationService.java
------------------------------------------------------------------------------
    svn:eol-style = LF

Propchange: maven/continuum/trunk/continuum-reports/src/test/java/org/apache/maven/continuum/reports/surefire/MockConfigurationService.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: maven/continuum/trunk/continuum-reports/src/test/java/org/apache/maven/continuum/reports/surefire/MockConfigurationService.java
------------------------------------------------------------------------------
--- svn:keywords (added)
+++ svn:keywords Tue Nov 13 08:36:11 2007
@@ -0,0 +1 @@
+URL HeadURL Author LastChangedBy Date LastChangedDate Rev Revision LastChangedRevision Id

Added: maven/continuum/trunk/continuum-reports/src/test/resources/continuum-core/TEST-org.apache.maven.continuum.DefaultContinuumTest.xml
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-reports/src/test/resources/continuum-core/TEST-org.apache.maven.continuum.DefaultContinuumTest.xml?rev=594573&view=auto
==============================================================================
--- maven/continuum/trunk/continuum-reports/src/test/resources/continuum-core/TEST-org.apache.maven.continuum.DefaultContinuumTest.xml (added)
+++ maven/continuum/trunk/continuum-reports/src/test/resources/continuum-core/TEST-org.apache.maven.continuum.DefaultContinuumTest.xml Tue Nov 13 08:36:11 2007
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<testsuite errors="0" skipped="0" tests="10" time="23.781" failures="0" name="org.apache.maven.continuum.DefaultContinuumTest">
+  <properties>
+    <property value="sa" name="javax.jdo.option.ConnectionUserName"/>
+    <property value="Java(TM) 2 Runtime Environment, Standard Edition" name="java.runtime.name"/>
+    <property value="c:\jdk1.5.0_08\jre\bin" name="sun.boot.library.path"/>
+    <property value="1.5.0_08-b03" name="java.vm.version"/>
+    <property value="Sun Microsystems Inc." name="java.vm.vendor"/>
+    <property value="http://java.sun.com/" name="java.vendor.url"/>
+    <property value=";" name="path.separator"/>
+    <property value="" name="javax.jdo.option.ConnectionPassword"/>
+    <property value="Java HotSpot(TM) Client VM" name="java.vm.name"/>
+    <property value="sun.io" name="file.encoding.pkg"/>
+    <property value="FR" name="user.country"/>
+    <property value="Service Pack 2" name="sun.os.patch.level"/>
+    <property value="Java Virtual Machine Specification" name="java.vm.specification.name"/>
+    <property value="c:\maven-svn\continuum\continuum-core" name="user.dir"/>
+    <property value="1.5.0_08-b03" name="java.runtime.version"/>
+    <property value="sun.awt.Win32GraphicsEnvironment" name="java.awt.graphicsenv"/>
+    <property value="c:\maven-svn\continuum\continuum-core" name="basedir"/>
+    <property value="c:\jdk1.5.0_08\jre\lib\endorsed" name="java.endorsed.dirs"/>
+    <property value="x86" name="os.arch"/>
+    <property value="c:\DOCUME~1\olamy\LOCALS~1\Temp\" name="java.io.tmpdir"/>
+    <property value="
+" name="line.separator"/>
+    <property value="Sun Microsystems Inc." name="java.vm.specification.vendor"/>
+    <property value="" name="user.variant"/>
+    <property value="Windows XP" name="os.name"/>
+    <property value="Cp1252" name="sun.jnu.encoding"/>
+    <property value="c:\jdk1.5.0_08\jre\bin;.;C:\WINDOWS\system32;C:\WINDOWS;C:\cygwin\usr\local\bin;C:\cygwin\bin;C:\cygwin\bin;C:\cygwin\usr\X11R6\bin;c:\WINDOWS\system32;c:\WINDOWS;c:\WINDOWS\System32\Wbem;c:\Program Files\Wave Systems Corp\Dell Preboot Manager\Access Client\v5\;c:\WINDOWS\wbat;c:\WINDOWS\reskit;c:\Program Files\WinZip;c:\Program Files\ActivCard\ActivCard Gold\resources;c:\sybase\OCS-12_5\lib3p;c:\sybase\OCS-12_5\dll;c:\sybase\OCS-12_5\bin;c:\nsdkwin\dll;c:\j2sdk1.4.2_12\bin;c:\apache-maven-2.0.8-SNAPSHOT\bin;c:\maven-1.0.2\bin;c:\local\olamy\apache-forrest-0.7\bin;c:\apache-ant-1.6.5\bin;c:\Program Files\GPGshell;c:\Subversion\bin;c:\Program Files\Fichiers communs\GTK\2.0\bin;c:\PROGRA~1\ATT\Graphviz\bin;c:\Program Files\QuickTime\QTSystem\;c:\Sun\SunOneApp\bin" name="java.library.path"/>
+    <property value="Java Platform API Specification" name="java.specification.name"/>
+    <property value="49.0" name="java.class.version"/>
+    <property value="READ_UNCOMMITTED" name="org.jpox.transactionIsolation"/>
+    <property value="HotSpot Client Compiler" name="sun.management.compiler"/>
+    <property value="READ_UNCOMMITTED" name="org.jpox.poid.transactionIsolation"/>
+    <property value="5.1" name="os.version"/>
+    <property value="c:\apache-maven-2.0.8-SNAPSHOT" name="M2_HOME"/>
+    <property value="C:\Documents and Settings\olamy" name="user.home"/>
+    <property value="Europe/Paris" name="user.timezone"/>
+    <property value="sun.awt.windows.WPrinterJob" name="java.awt.printerjob"/>
+    <property value="1.5" name="java.specification.version"/>
+    <property value="Cp1252" name="file.encoding"/>
+    <property value="org.hsqldb.jdbcDriver" name="javax.jdo.option.ConnectionDriverName"/>
+    <property value="OLAMY" name="user.name"/>
+    <property value="C:\Documents and Settings\olamy\.m2\repository\org\codehaus\plexus\plexus-archiver\1.0-alpha-7\plexus-archiver-1.0-alpha-7.jar;C:\Documents and Settings\olamy\.m2\repository\junit\junit\3.8.1\junit-3.8.1.jar;C:\Documents and Settings\olamy\.m2\repository\org\codehaus\plexus\plexus-container-default\1.0-alpha-8\plexus-container-default-1.0-alpha-8.jar;C:\Documents and Settings\olamy\.m2\repository\org\apache\maven\surefire\surefire-api\2.3\surefire-api-2.3.jar;C:\Documents and Settings\olamy\.m2\repository\classworlds\classworlds\1.1-alpha-2\classworlds-1.1-alpha-2.jar;C:\Documents and Settings\olamy\.m2\repository\org\codehaus\plexus\plexus-utils\1.1\plexus-utils-1.1.jar;C:\Documents and Settings\olamy\.m2\repository\commons-lang\commons-lang\2.1\commons-lang-2.1.jar;C:\Documents and Settings\olamy\.m2\repository\org\apache\maven\surefire\surefire-booter\2.3\surefire-booter-2.3.jar" name="java.class.path"/>
+    <property value="org.jpox.PersistenceManagerFactoryImpl" name="javax.jdo.PersistenceManagerFactoryClass"/>
+    <property value="1.0" name="java.vm.specification.version"/>
+    <property value="32" name="sun.arch.data.model"/>
+    <property value="c:\jdk1.5.0_08\jre" name="java.home"/>
+    <property value="Sun Microsystems Inc." name="java.specification.vendor"/>
+    <property value="fr" name="user.language"/>
+    <property value="sun.awt.windows.WToolkit" name="awt.toolkit"/>
+    <property value="mixed mode" name="java.vm.info"/>
+    <property value="jdbc:hsqldb:mem:org.apache.maven.continuum.DefaultContinuumTest.testAddAntProjectWithdefaultBuildDef" name="javax.jdo.option.ConnectionURL"/>
+    <property value="true" name="org.jpox.autoCreateTables"/>
+    <property value="1.5.0_08" name="java.version"/>
+    <property value="c:\jdk1.5.0_08\jre\lib\ext" name="java.ext.dirs"/>
+    <property value="c:\jdk1.5.0_08\jre\lib\rt.jar;c:\jdk1.5.0_08\jre\lib\i18n.jar;c:\jdk1.5.0_08\jre\lib\sunrsasign.jar;c:\jdk1.5.0_08\jre\lib\jsse.jar;c:\jdk1.5.0_08\jre\lib\jce.jar;c:\jdk1.5.0_08\jre\lib\charsets.jar;c:\jdk1.5.0_08\jre\classes" name="sun.boot.class.path"/>
+    <property value="Sun Microsystems Inc." name="java.vendor"/>
+    <property value="C:\Documents and Settings\olamy\.m2\repository" name="localRepository"/>
+    <property value="\" name="file.separator"/>
+    <property value="http://java.sun.com/cgi-bin/bugreport.cgi" name="java.vendor.url.bug"/>
+    <property value="little" name="sun.cpu.endian"/>
+    <property value="UnicodeLittle" name="sun.io.unicode.encoding"/>
+    <property value="c:\jdk1.5.0_08" name="JAVA_HOME"/>
+    <property value="windows" name="sun.desktop"/>
+    <property value="pentium_pro+mmx pentium_pro pentium+mmx pentium i486 i386 i86" name="sun.cpu.isalist"/>
+  </properties>
+  <testcase time="1.891" name="testContinuumConfiguration"/>
+  <testcase time="2.015" name="testLookups"/>
+  <testcase time="3.735" name="testAddMavenTwoProjectSet"/>
+  <testcase time="2.468" name="testUpdateMavenTwoProject"/>
+  <testcase time="2.391" name="testBuildDefinitions"/>
+  <testcase time="2.234" name="testProjectGroups"/>
+  <testcase time="2.141" name="testProjectAndGroupNotifiers"/>
+  <testcase time="1.953" name="testExecuteAction"/>
+  <testcase time="2.11" name="testRemoveProjectFromCheckoutQueue"/>
+  <testcase time="2.843" name="testAddAntProjectWithdefaultBuildDef"/>
+</testsuite>
\ No newline at end of file

Propchange: maven/continuum/trunk/continuum-reports/src/test/resources/continuum-core/TEST-org.apache.maven.continuum.DefaultContinuumTest.xml
------------------------------------------------------------------------------
    svn:executable = *

Propchange: maven/continuum/trunk/continuum-reports/src/test/resources/continuum-core/TEST-org.apache.maven.continuum.DefaultContinuumTest.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"