You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by ev...@apache.org on 2004/01/14 11:54:52 UTC

cvs commit: maven-components/maven-mboot/src/main Bootstrapper.java TestRunnerBooter.java

evenisse    2004/01/14 02:54:52

  Modified:    maven-mboot build
               maven-mboot/src/bash maven.functions
               maven-mboot/src/main Bootstrapper.java TestRunnerBooter.java
  Log:
  Add tests run to mboot.
  
  Revision  Changes    Path
  1.4       +1 -1      maven-components/maven-mboot/build
  
  Index: build
  ===================================================================
  RCS file: /home/cvs/maven-components/maven-mboot/build,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- build	13 Jan 2004 17:38:30 -0000	1.3
  +++ build	14 Jan 2004 10:54:51 -0000	1.4
  @@ -20,7 +20,7 @@
     repoLocal=`cygpath -pu "$repoLocal"`
   fi
   
  -compile .:$repoLocal/junit/jars/junit-3.8.1.jar:$repoLocal/maven/jars/surefire-runner-1.0.jar:$repoLocal/plexus/jars/plexus-utils-1.0-beta-1.jar target/classes src/main
  +compile ".:$repoLocal/junit/jars/junit-3.8.1.jar:$repoLocal/maven/jars/surefire-runner-1.0.jar:$repoLocal/plexus/jars/plexus-utils-1.0-beta-1.jar" target/classes src/main
   
   isCommandSuccessful $? "Failed compiling Maven bootstrapper classes!"
   
  
  
  
  1.8       +18 -4     maven-components/maven-mboot/src/bash/maven.functions
  
  Index: maven.functions
  ===================================================================
  RCS file: /home/cvs/maven-components/maven-mboot/src/bash/maven.functions,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- maven.functions	13 Jan 2004 17:38:30 -0000	1.7
  +++ maven.functions	14 Jan 2004 10:54:52 -0000	1.8
  @@ -20,7 +20,7 @@
   {
     # $1 == classpath
     # $2 == Main class
  -  # $3 == Mail args
  +  # $3 == Main args
   
     if $cygwin; then
       CP=`cygpath -pw "$1"`
  @@ -33,7 +33,20 @@
   
   runTests()
   {
  -#  TO DO 
  +  # $1 == classpath
  +  # $2 == home args
  +  # $3 == repo local
  +  # $4 == dependencies file
  +  # $5 == includes file
  +  # $6 == excludes file
  +
  +  if $cygwin; then
  +    CP=`cygpath -pw "$1"`
  +  else
  +    CP=$1
  +  fi
  +  
  +  "${JAVACMD}" -classpath "$CP" TestRunnerBooter "$2" "$3" $4 $5 $6
   }
   
   compile()
  @@ -156,7 +169,7 @@
         
         copyResources
         
  -      runTests
  +      runTests ".:${MBOOT_HOME}/classes:$repoLocal/junit/jars/junit-3.8.1.jar:$repoLocal/maven/jars/surefire-runner-1.0.jar:$repoLocal/plexus/jars/plexus-utils-1.0-beta-1.jar" "$home" "$repoLocal" bootstrap.libs bootstrap.tests.includes bootstrap.tests.excludes
         
         if [ "$2" = "default" ]
         then
  @@ -173,7 +186,8 @@
           rm -f bootstrap.libs > /dev/null 2>&1
           rm -f bootstrap.resources > /dev/null 2>&1
           rm -f bootstrap.repo > /dev/null 2>&1
  -        rm -f bootstrap.test > /dev/null 2>&1
  +        rm -f bootstrap.tests.includes > /dev/null 2>&1
  +        rm -f bootstrap.tests.excludes > /dev/null 2>&1
         fi
       )
   }
  
  
  
  1.7       +126 -1    maven-components/maven-mboot/src/main/Bootstrapper.java
  
  Index: Bootstrapper.java
  ===================================================================
  RCS file: /home/cvs/maven-components/maven-mboot/src/main/Bootstrapper.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- Bootstrapper.java	13 Jan 2004 17:38:30 -0000	1.6
  +++ Bootstrapper.java	14 Jan 2004 10:54:52 -0000	1.7
  @@ -26,6 +26,8 @@
       private BootstrapPomParser bootstrapPomParser;
   
       private List dependencies;
  +    
  +    private UnitTests unitTests;
   
       private List resources;
   
  @@ -77,6 +79,62 @@
           writeFile( "bootstrap.classpath", classPath.toString() );
   
           writeFile( "bootstrap.libs", libs.toString() );
  +        
  +        unitTests = bootstrapPomParser.getUnitTests();
  +        
  +        StringBuffer tests = new StringBuffer();
  +        
  +        tests.append(unitTests.getDirectory());
  +        
  +        tests.append("@");
  +        
  +        int size = unitTests.getIncludes().size();
  +
  +        // If there are no includes specified then we want it all.
  +        if ( size == 0 )
  +        {
  +            tests.append( "'*'" );
  +        }
  +
  +        for ( int j = 0; j < size; j++ )
  +        {
  +            String include = (String) unitTests.getIncludes().get( j );
  +
  +            tests.append( include );
  +
  +            if ( j != size - 1 )
  +            {
  +                tests.append( "," );
  +            }
  +        }
  +
  +        tests.append( "\n" );
  +        
  +        writeFile( "bootstrap.tests.includes", tests.toString() );
  +
  +        tests = new StringBuffer();
  +        
  +        tests.append(unitTests.getDirectory());
  +        
  +        tests.append("@");
  +        
  +        size = unitTests.getExcludes().size();
  +
  +        for ( int j = 0; j < size; j++ )
  +        {
  +            String exclude = (String) unitTests.getExcludes().get( j );
  +
  +            tests.append( exclude );
  +
  +            if ( j != size - 1 )
  +            {
  +                tests.append( "," );
  +            }
  +        }
  +
  +        tests.append( "\n" );
  +        
  +        writeFile( "bootstrap.tests.excludes", tests.toString() );
   
           resources = bootstrapPomParser.getResources();
   
  @@ -101,7 +159,7 @@
   
               res.append( "@" );
   
  -            int size = r.getIncludes().size();
  +            size = r.getIncludes().size();
   
               // If there are no includes specified then we want it all.
               if ( size == 0 )
  @@ -153,6 +211,8 @@
           extends DefaultHandler
       {
           private List dependencies = new ArrayList();
  +        
  +        private UnitTests unitTests;
   
           private List resources = new ArrayList();
   
  @@ -176,6 +236,11 @@
           {
               return dependencies;
           }
  +        
  +        public UnitTests getUnitTests()
  +        {
  +            return unitTests;
  +        }
   
           public List getResources()
           {
  @@ -208,8 +273,13 @@
               {
                   return;
               }
  +            else if ( rawName.equals( "unitTestSourceDirectory" ) )
  +            {
  +                unitTests = new UnitTests();
  +            }
               else if ( rawName.equals( "unitTest" ) )
               {
  +                unitTests = new UnitTests();
                   insideUnitTest = true;
               }
               else if ( rawName.equals( "dependency" ) )
  @@ -252,6 +322,10 @@
   
                   resources.addAll( p.getResources() );
               }
  +            else if ( rawName.equals( "unitTestSourceDirectory" ) )
  +            {
  +                unitTests.setDirectory(getBodyText());
  +            }
               else if ( rawName.equals( "unitTest" ) )
               {
                   insideUnitTest = false;
  @@ -296,6 +370,17 @@
                   }
   
               }
  +            else if ( insideUnitTest )
  +            {
  +                if ( rawName.equals( "include" ) )
  +                {
  +                    unitTests.addInclude( getBodyText() );
  +                }
  +                else if ( rawName.equals( "exclude" ) )
  +                {
  +                    unitTests.addExclude( getBodyText() );
  +                }
  +            }
               else if ( insideResource )
               {
                   if ( rawName.equals( "directory" ) )
  @@ -492,6 +577,46 @@
               }
   
               return false;
  +        }
  +    }
  +    
  +    public static class UnitTests
  +        implements Serializable
  +    {
  +        private String directory;
  +
  +        private List includes = new ArrayList();
  +
  +        private List excludes = new ArrayList();
  +
  +        public void addInclude( String pattern )
  +        {
  +            this.includes.add( pattern );
  +        }
  +
  +        public void addExclude( String pattern )
  +        {
  +            this.excludes.add( pattern );
  +        }
  +
  +        public List getIncludes()
  +        {
  +            return this.includes;
  +        }
  +
  +        public List getExcludes()
  +        {
  +            return this.excludes;
  +        }
  +
  +        public void setDirectory( String directory )
  +        {
  +            this.directory = directory;
  +        }
  +
  +        public String getDirectory()
  +        {
  +            return this.directory;
           }
       }
   
  
  
  
  1.2       +32 -3     maven-components/maven-mboot/src/main/TestRunnerBooter.java
  
  Index: TestRunnerBooter.java
  ===================================================================
  RCS file: /home/cvs/maven-components/maven-mboot/src/main/TestRunnerBooter.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- TestRunnerBooter.java	13 Jan 2004 17:38:30 -0000	1.1
  +++ TestRunnerBooter.java	14 Jan 2004 10:54:52 -0000	1.2
  @@ -2,11 +2,14 @@
   import org.codehaus.plexus.util.DirectoryScanner;
   import org.codehaus.plexus.util.StringUtils;
   
  +import java.io.BufferedReader;
   import java.io.File;
  +import java.io.FileReader;
   import java.lang.reflect.Method;
   import java.util.ArrayList;
   import java.util.Iterator;
   import java.util.List;
  +import java.util.StringTokenizer;
   
   public class TestRunnerBooter
   {
  @@ -34,15 +37,40 @@
           
           File dependenciesFile = new File(args[2]);
           
  +        List dependencies = new ArrayList();
  +        BufferedReader buf = new BufferedReader(new FileReader(dependenciesFile));
  +        String line;
  +        while ((line = buf.readLine()) != null)
  +        {
  +            dependencies.add(line);
  +        }
  +        buf.close();
  +        
           processDependencies( dependencies, classLoader );
   
           File includesFile = new File(args[3]);
  -
  -        File excludesFile = new File(args[4]);
  -        
           List includes = new ArrayList();
  +        buf = new BufferedReader(new FileReader(includesFile));
  +        line = buf.readLine();
  +        String includesStr = line.substring(line.indexOf("@")+1);
  +        StringTokenizer st = new StringTokenizer( includesStr, "," );
  +        while ( st.hasMoreTokens() )
  +        {
  +            includes.add( st.nextToken().trim() );
  +        }
  +        buf.close();
   
  +        File excludesFile = new File(args[4]);
           List excludes = new ArrayList();
  +        buf = new BufferedReader(new FileReader(excludesFile));
  +        line = buf.readLine();
  +        String excludesStr = line.substring(line.indexOf("@")+1);
  +        st = new StringTokenizer( excludesStr, "," );
  +        while ( st.hasMoreTokens() )
  +        {
  +            excludes.add( st.nextToken().trim() );
  +        }
  +        buf.close();
           
           String[] tests = collectTests( basedir,
                                          includes,
  @@ -64,6 +92,7 @@
       }
       
       private void processDependencies(List dependencies, IsolatedClassLoader classLoader)
  +        throws Exception
       {
           for (Iterator i=dependencies.iterator(); i.hasNext(); )
           {
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org