You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jd...@apache.org on 2007/01/17 02:36:08 UTC

svn commit: r496910 [2/2] - in /maven/components/trunk/maven-project: ./ src/main/java/org/apache/maven/profiles/ src/main/java/org/apache/maven/profiles/activation/ src/main/java/org/apache/maven/project/ src/main/java/org/apache/maven/project/build/ ...

Added: maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/build/model/AbstractModelLineageTest.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/build/model/AbstractModelLineageTest.java?view=auto&rev=496910
==============================================================================
--- maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/build/model/AbstractModelLineageTest.java (added)
+++ maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/build/model/AbstractModelLineageTest.java Tue Jan 16 17:36:07 2007
@@ -0,0 +1,360 @@
+package org.apache.maven.project.build.model;
+
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.artifact.repository.DefaultArtifactRepository;
+import org.apache.maven.artifact.repository.layout.DefaultRepositoryLayout;
+import org.apache.maven.model.Model;
+import org.apache.maven.project.build.model.ModelLineage;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
+
+import junit.framework.TestCase;
+
+public abstract class AbstractModelLineageTest
+    extends TestCase
+{
+
+    protected abstract ModelLineage newModelLineage();
+
+    public void testAddParent_ShouldThrowIllegalStateExceptionWhenSetOriginNotCalled()
+    {
+        ModelLineage ml = newModelLineage();
+
+        assertEquals( 0, ml.size() );
+
+        try
+        {
+            ml.addParent( new Model(), null, null );
+
+            fail( "Should throw IllegalStateException when setOrigin(..) is not called first." );
+        }
+        catch ( IllegalStateException e )
+        {
+            // expected
+        }
+    }
+
+    public void testSetOrigin_ShouldThrowIllegalStateExceptionWhenSetOriginCalledRepeatedly()
+    {
+        ModelLineage ml = newModelLineage();
+
+        assertEquals( 0, ml.size() );
+
+        ml.setOrigin( new Model(), null, null );
+
+        assertEquals( 1, ml.size() );
+
+        try
+        {
+            ml.setOrigin( new Model(), null, null );
+
+            fail( "Should throw IllegalStateException when setOrigin(..) called multiple times." );
+        }
+        catch ( IllegalStateException e )
+        {
+            // expected
+        }
+    }
+
+    public void testSetOriginAndSize_SizeShouldIncrementByOneWhenOriginSet()
+    {
+        ModelLineage ml = newModelLineage();
+
+        assertEquals( 0, ml.size() );
+
+        ml.setOrigin( new Model(), null, null );
+
+        assertEquals( 1, ml.size() );
+    }
+
+    public void testModelIterator_ShouldAddTwoModelsAndIterateInFIFOOrder()
+    {
+        ModelLineage ml = newModelLineage();
+
+        String gOne = "group1";
+        String aOne = "artifact1";
+        String vOne = "1";
+
+        Model mOne = new Model();
+
+        mOne.setGroupId( gOne );
+        mOne.setArtifactId( aOne );
+        mOne.setVersion( vOne );
+
+        ml.setOrigin( mOne, null, null );
+
+        String gTwo = "group2";
+        String aTwo = "artifact2";
+        String vTwo = "2";
+
+        Model mTwo = new Model();
+
+        mOne.setGroupId( gTwo );
+        mOne.setArtifactId( aTwo );
+        mOne.setVersion( vTwo );
+
+        ml.addParent( mTwo, null, null );
+
+        Iterator it = ml.modelIterator();
+
+        assertTrue( it.hasNext() );
+        assertEquals( mOne.getId(), ( (Model) it.next() ).getId() );
+
+        assertTrue( it.hasNext() );
+        assertEquals( mTwo.getId(), ( (Model) it.next() ).getId() );
+    }
+
+    public void testFileIterator_ShouldAddTwoParentsAndIterateInFIFOOrder()
+        throws IOException
+    {
+        ModelLineage ml = newModelLineage();
+
+        File fOne = File.createTempFile( "ModelLineageTest.fileIterator-test.", "" );
+        fOne.deleteOnExit();
+
+        ml.setOrigin( new Model(), fOne, null );
+
+        File fTwo = File.createTempFile( "ModelLineageTest.fileIterator-test.", "" );
+        fTwo.deleteOnExit();
+
+        ml.addParent( new Model(), fTwo, null );
+
+        Iterator it = ml.fileIterator();
+
+        assertTrue( it.hasNext() );
+        assertEquals( fOne, (File) it.next() );
+
+        assertTrue( it.hasNext() );
+        assertEquals( fTwo, (File) it.next() );
+    }
+
+    public void testArtifactRepositoryListIterator_ShouldAddTwoParentsAndIterateInFIFOOrder()
+    {
+        DefaultRepositoryLayout layout = new DefaultRepositoryLayout();
+
+        ModelLineage ml = newModelLineage();
+
+        ArtifactRepository arOne = new DefaultArtifactRepository( "", "", layout );
+
+        ml.setOrigin( new Model(), null, Collections.singletonList( arOne ) );
+
+        ArtifactRepository arTwo = new DefaultArtifactRepository( "", "", layout );
+
+        ml.addParent( new Model(), null, Collections.singletonList( arTwo ) );
+
+        Iterator it = ml.artifactRepositoryListIterator();
+
+        assertTrue( it.hasNext() );
+        assertSame( arOne, ( (List) it.next() ).get( 0 ) );
+
+        assertTrue( it.hasNext() );
+        assertSame( arTwo, ( (List) it.next() ).get( 0 ) );
+    }
+
+    public void testAddParentAndGetFile_ShouldRetrieveCorrectFileForModel()
+        throws IOException
+    {
+        ModelLineage ml = newModelLineage();
+
+        File fOne = File.createTempFile( "ModelLineageTest.fileIterator-test.", "" );
+        fOne.deleteOnExit();
+        
+        Model mOne = new Model();
+
+        String gOne = "group";
+        String aOne = "artifact";
+        String vOne = "1";
+
+        mOne.setGroupId( gOne );
+        mOne.setArtifactId( aOne );
+        mOne.setVersion( vOne );
+
+        ml.setOrigin( mOne, fOne, null );
+
+        File fTwo = File.createTempFile( "ModelLineageTest.fileIterator-test.", "" );
+        fTwo.deleteOnExit();
+
+        ml.addParent( new Model(), fTwo, null );
+
+        Model retriever = new Model();
+
+        retriever.setGroupId( gOne );
+        retriever.setArtifactId( aOne );
+        retriever.setVersion( vOne );
+
+        assertEquals( fOne, ml.getFile( retriever ) );
+    }
+
+    public void testAddParentAndGetArtifactRepositories_ShouldRetrieveCorrectRepoListForModel()
+        throws IOException
+    {
+        DefaultRepositoryLayout layout = new DefaultRepositoryLayout();
+
+        ModelLineage ml = newModelLineage();
+
+        Model mOne = new Model();
+
+        String gOne = "group";
+        String aOne = "artifact";
+        String vOne = "1";
+
+        mOne.setGroupId( gOne );
+        mOne.setArtifactId( aOne );
+        mOne.setVersion( vOne );
+
+        ArtifactRepository arOne = new DefaultArtifactRepository( "", "", layout );
+
+        ml.setOrigin( mOne, null, Collections.singletonList( arOne ) );
+
+        ArtifactRepository arTwo = new DefaultArtifactRepository( "", "", layout );
+
+        ml.addParent( new Model(), null, Collections.singletonList( arTwo ) );
+
+        Model retriever = new Model();
+
+        retriever.setGroupId( gOne );
+        retriever.setArtifactId( aOne );
+        retriever.setVersion( vOne );
+
+        assertSame( arOne, ( (List) ml.getArtifactRepositories( retriever ) ).get( 0 ) );
+    }
+
+    public void testSetOriginAndGetOriginatingModel()
+    {
+        Model model = new Model();
+        model.setGroupId( "group" );
+        model.setArtifactId( "artifact" );
+        model.setVersion( "1" );
+
+        ModelLineage ml = newModelLineage();
+
+        ml.setOrigin( model, null, null );
+
+        assertEquals( model.getId(), ml.getOriginatingModel().getId() );
+    }
+
+    public void testSetOriginAndGetOriginatingFile()
+        throws IOException
+    {
+        ModelLineage ml = newModelLineage();
+
+        File pomFile = File.createTempFile( "ModelLineage.test.", ".pom" );
+        pomFile.deleteOnExit();
+
+        ml.setOrigin( null, pomFile, null );
+
+        assertEquals( pomFile, ml.getOriginatingPOMFile() );
+    }
+
+    public void testSetOriginAndGetOriginatingArtifactRepositoryList()
+    {
+        DefaultRepositoryLayout layout = new DefaultRepositoryLayout();
+
+        ModelLineage ml = newModelLineage();
+
+        Model mOne = new Model();
+
+        String gOne = "group";
+        String aOne = "artifact";
+        String vOne = "1";
+
+        mOne.setGroupId( gOne );
+        mOne.setArtifactId( aOne );
+        mOne.setVersion( vOne );
+
+        ArtifactRepository arOne = new DefaultArtifactRepository( "", "", layout );
+
+        ml.setOrigin( mOne, null, Collections.singletonList( arOne ) );
+
+        assertSame( arOne, ml.getOriginatingArtifactRepositoryList().get( 0 ) );
+    }
+    
+    public void testGetModelsInDescendingOrder_ShouldAddTwoAndRetrieveInLIFOOrder()
+    {
+        ModelLineage ml = newModelLineage();
+
+        String gOne = "group1";
+        String aOne = "artifact1";
+        String vOne = "1";
+
+        Model mOne = new Model();
+
+        mOne.setGroupId( gOne );
+        mOne.setArtifactId( aOne );
+        mOne.setVersion( vOne );
+
+        ml.setOrigin( mOne, null, null );
+
+        String gTwo = "group2";
+        String aTwo = "artifact2";
+        String vTwo = "2";
+
+        Model mTwo = new Model();
+
+        mOne.setGroupId( gTwo );
+        mOne.setArtifactId( aTwo );
+        mOne.setVersion( vTwo );
+
+        ml.addParent( mTwo, null, null );
+
+        Iterator it = ml.getModelsInDescendingOrder().iterator();
+        
+        assertTrue( it.hasNext() );
+        assertEquals( mTwo.getId(), ( (Model) it.next() ).getId() );
+
+        assertTrue( it.hasNext() );
+        assertEquals( mOne.getId(), ( (Model) it.next() ).getId() );
+    }
+
+    public void testGetFilesInDescendingOrder_ShouldAddTwoAndRetrieveInLIFOOrder()
+        throws IOException
+    {
+        ModelLineage ml = newModelLineage();
+
+        File fOne = File.createTempFile( "ModelLineageTest.fileIterator-test.", "" );
+        fOne.deleteOnExit();
+
+        ml.setOrigin( new Model(), fOne, null );
+
+        File fTwo = File.createTempFile( "ModelLineageTest.fileIterator-test.", "" );
+        fTwo.deleteOnExit();
+
+        ml.addParent( new Model(), fTwo, null );
+
+        Iterator it = ml.getFilesInDescendingOrder().iterator();
+
+        assertTrue( it.hasNext() );
+        assertEquals( fTwo, (File) it.next() );
+
+        assertTrue( it.hasNext() );
+        assertEquals( fOne, (File) it.next() );
+    }
+
+    public void testGetArtifactRepositoryListsInDescendingOrder_ShouldAddTwoAndRetrieveInLIFOOrder()
+    {
+        DefaultRepositoryLayout layout = new DefaultRepositoryLayout();
+
+        ModelLineage ml = newModelLineage();
+
+        ArtifactRepository arOne = new DefaultArtifactRepository( "", "", layout );
+
+        ml.setOrigin( new Model(), null, Collections.singletonList( arOne ) );
+
+        ArtifactRepository arTwo = new DefaultArtifactRepository( "", "", layout );
+
+        ml.addParent( new Model(), null, Collections.singletonList( arTwo ) );
+
+        Iterator it = ml.getArtifactRepositoryListsInDescendingOrder().iterator();
+
+        assertTrue( it.hasNext() );
+        assertSame( arTwo, ( (List) it.next() ).get( 0 ) );
+
+        assertTrue( it.hasNext() );
+        assertSame( arOne, ( (List) it.next() ).get( 0 ) );
+    }
+
+}

Propchange: maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/build/model/AbstractModelLineageTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/build/model/AbstractModelLineageTest.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/build/model/DefaultModelLineageBuilderTest.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/build/model/DefaultModelLineageBuilderTest.java?view=auto&rev=496910
==============================================================================
--- maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/build/model/DefaultModelLineageBuilderTest.java (added)
+++ maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/build/model/DefaultModelLineageBuilderTest.java Tue Jan 16 17:36:07 2007
@@ -0,0 +1,313 @@
+package org.apache.maven.project.build.model;
+
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.artifact.repository.DefaultArtifactRepository;
+import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
+import org.apache.maven.model.Model;
+import org.apache.maven.model.Parent;
+import org.apache.maven.model.io.xpp3.MavenXpp3Writer;
+import org.apache.maven.project.ProjectBuildingException;
+import org.codehaus.plexus.PlexusTestCase;
+import org.codehaus.plexus.logging.Logger;
+import org.codehaus.plexus.util.FileUtils;
+import org.codehaus.plexus.util.IOUtil;
+
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.util.Collections;
+import java.util.Iterator;
+
+public class DefaultModelLineageBuilderTest
+    extends PlexusTestCase
+{
+
+    private DefaultModelLineageBuilder modelLineageBuilder;
+
+    private ArtifactRepositoryLayout defaultLayout;
+
+    public void setUp()
+        throws Exception
+    {
+        super.setUp();
+        getContainer().getLoggerManager().setThresholds( Logger.LEVEL_DEBUG );
+
+        modelLineageBuilder = (DefaultModelLineageBuilder) lookup( ModelLineageBuilder.ROLE,
+                                                                   DefaultModelLineageBuilder.ROLE_HINT );
+
+        defaultLayout = (ArtifactRepositoryLayout) lookup( ArtifactRepositoryLayout.ROLE, "default" );
+    }
+
+    public void testShouldReadSinglePomWithNoParents()
+        throws IOException, ProjectBuildingException
+    {
+        String groupId = "groupId";
+        String artifactId = "artifactId";
+        String version = "1.0";
+
+        Model model = new Model();
+
+        model.setGroupId( groupId );
+        model.setArtifactId( artifactId );
+        model.setVersion( version );
+
+        File pomFile = File.createTempFile( "DefaultModelLineageBuilder.test.", ".pom" );
+        pomFile.deleteOnExit();
+
+        FileWriter writer = null;
+        try
+        {
+            writer = new FileWriter( pomFile );
+
+            new MavenXpp3Writer().write( writer, model );
+        }
+        finally
+        {
+            IOUtil.close( writer );
+        }
+
+        ModelLineage lineage = modelLineageBuilder.buildModelLineage( pomFile, null, null, null );
+
+        assertEquals( 1, lineage.size() );
+
+        assertEquals( model.getId(), lineage.getOriginatingModel().getId() );
+    }
+
+    public void testReadPOMWithTwoAncestorsInLocalRepository()
+        throws IOException, ProjectBuildingException
+    {
+        // 1. create local repository directory
+        File localRepoDirectory = File.createTempFile( "DefaultModelLineageBuilder.localRepository.", "" );
+
+        localRepoDirectory.delete();
+        localRepoDirectory.mkdirs();
+
+        deleteDirOnExit( localRepoDirectory );
+
+        // 2. create and write the ancestor model to the local repo directory
+
+        Model ancestor = createModel( "group", "ancestor", "1" );
+        writeModel( ancestor, new File( localRepoDirectory, "group/ancestor/1/ancestor-1.pom" ) );
+
+        // 3. create the parent model with a parent-ref to the ancestor model
+
+        Model parent = createModel( "group", "parent", "1" );
+
+        Parent parentParent = new Parent();
+        parentParent.setGroupId( "group" );
+        parentParent.setArtifactId( "ancestor" );
+        parentParent.setVersion( "1" );
+
+        parent.setParent( parentParent );
+
+        // 4. write the parent model to the local repo directory
+        writeModel( parent, new File( localRepoDirectory, "group/parent/1/parent-1.pom" ) );
+
+        // 5. create the current pom with a parent-ref on the parent model
+        Model current = createModel( "group", "current", "1" );
+
+        Parent currentParent = new Parent();
+        currentParent.setGroupId( "group" );
+        currentParent.setArtifactId( "parent" );
+        currentParent.setVersion( "1" );
+
+        current.setParent( currentParent );
+
+        // 6. write the current pom somewhere
+        File currentPOM = File.createTempFile( "DefaultModelLineageBuilder.test.", ".pom" );
+        currentPOM.deleteOnExit();
+
+        writeModel( current, currentPOM );
+
+        // 7. build the lineage.
+        ArtifactRepository localRepository = new DefaultArtifactRepository( "local", localRepoDirectory.toURL()
+            .toExternalForm(), defaultLayout );
+
+        ModelLineage lineage = modelLineageBuilder.buildModelLineage( currentPOM, localRepository,
+                                                                      Collections.EMPTY_LIST, null );
+
+        assertEquals( 3, lineage.size() );
+
+        Iterator modelIterator = lineage.modelIterator();
+
+        assertEquals( current.getId(), ( (Model) modelIterator.next() ).getId() );
+        assertEquals( parent.getId(), ( (Model) modelIterator.next() ).getId() );
+        assertEquals( ancestor.getId(), ( (Model) modelIterator.next() ).getId() );
+    }
+
+    public void testReadPOMWithParentInLocalRepositoryAndAncestorInRemoteRepository()
+        throws IOException, ProjectBuildingException
+    {
+        // 1. create local and remote repository directories
+        File localRepoDirectory = File.createTempFile( "DefaultModelLineageBuilder.localRepository.", "" );
+
+        localRepoDirectory.delete();
+        localRepoDirectory.mkdirs();
+
+        deleteDirOnExit( localRepoDirectory );
+
+        File remoteRepoDirectory = File.createTempFile( "DefaultModelLineageBuilder.remoteRepository.", "" );
+
+        remoteRepoDirectory.delete();
+        remoteRepoDirectory.mkdirs();
+
+        deleteDirOnExit( remoteRepoDirectory );
+
+        // 2. create and write the ancestor model to the local repo directory
+
+        Model ancestor = createModel( "group", "ancestor", "1" );
+        writeModel( ancestor, new File( remoteRepoDirectory, "group/ancestor/1/ancestor-1.pom" ) );
+
+        // 3. create the parent model with a parent-ref to the ancestor model
+
+        Model parent = createModel( "group", "parent", "1" );
+
+        Parent parentParent = new Parent();
+        parentParent.setGroupId( "group" );
+        parentParent.setArtifactId( "ancestor" );
+        parentParent.setVersion( "1" );
+
+        parent.setParent( parentParent );
+
+        // 4. write the parent model to the local repo directory
+        writeModel( parent, new File( localRepoDirectory, "group/parent/1/parent-1.pom" ) );
+
+        // 5. create the current pom with a parent-ref on the parent model
+        Model current = createModel( "group", "current", "1" );
+
+        Parent currentParent = new Parent();
+        currentParent.setGroupId( "group" );
+        currentParent.setArtifactId( "parent" );
+        currentParent.setVersion( "1" );
+
+        current.setParent( currentParent );
+
+        // 6. write the current pom somewhere
+        File currentPOM = File.createTempFile( "DefaultModelLineageBuilder.test.", ".pom" );
+        currentPOM.deleteOnExit();
+
+        writeModel( current, currentPOM );
+
+        // 7. build the lineage.
+        ArtifactRepository localRepository = new DefaultArtifactRepository( "local", localRepoDirectory.toURL()
+            .toExternalForm(), defaultLayout );
+
+        ArtifactRepository remoteRepository = new DefaultArtifactRepository( "test", remoteRepoDirectory.toURL()
+            .toExternalForm(), defaultLayout );
+
+        ModelLineage lineage = modelLineageBuilder.buildModelLineage( currentPOM, localRepository, Collections
+            .singletonList( remoteRepository ), null );
+
+        assertEquals( 3, lineage.size() );
+
+        Iterator modelIterator = lineage.modelIterator();
+
+        assertEquals( current.getId(), ( (Model) modelIterator.next() ).getId() );
+        assertEquals( parent.getId(), ( (Model) modelIterator.next() ).getId() );
+        assertEquals( ancestor.getId(), ( (Model) modelIterator.next() ).getId() );
+    }
+
+    public void testReadPOMWithParentInSiblingDirectoryUsingSpecifiedRelativePathThatIsADirectory()
+        throws IOException, ProjectBuildingException
+    {
+        // 1. create project-root directory.
+        File projectRootDirectory = File.createTempFile( "DefaultModelLineageBuilder.projectRootDir.", "" );
+
+        projectRootDirectory.delete();
+        projectRootDirectory.mkdirs();
+
+        deleteDirOnExit( projectRootDirectory );
+        
+        // 2. create dir for parent POM within project root directory.
+        File parentDir = new File( projectRootDirectory, "parent" );
+        parentDir.mkdirs();
+        
+        // 2. create dir for child project within project root directory.
+        File childDir = new File( projectRootDirectory, "child" );
+        childDir.mkdirs();
+
+        // 3. create the parent model in the parent-POM directory
+        Model parent = createModel( "group", "parent", "1" );
+
+        writeModel( parent, new File( parentDir, "pom.xml" ) );
+
+        // 5. create the current pom with a parent-ref on the parent model
+        Model current = createModel( "group", "child", "1" );
+
+        Parent currentParent = new Parent();
+        currentParent.setGroupId( "group" );
+        currentParent.setArtifactId( "parent" );
+        currentParent.setVersion( "1" );
+        currentParent.setRelativePath( "../parent" );
+
+        current.setParent( currentParent );
+
+        // 6. write the current POM to the child directory
+        File currentPOM = new File( childDir, "pom.xml" );
+        writeModel( current, currentPOM );
+
+        // 7. build the lineage.
+        ArtifactRepository localRepository = new DefaultArtifactRepository( "local", projectRootDirectory.toURL()
+            .toExternalForm(), defaultLayout );
+
+        ModelLineage lineage = modelLineageBuilder.buildModelLineage( currentPOM, localRepository, Collections
+            .EMPTY_LIST, null );
+
+        assertEquals( 2, lineage.size() );
+
+        Iterator modelIterator = lineage.modelIterator();
+
+        assertEquals( current.getId(), ( (Model) modelIterator.next() ).getId() );
+        assertEquals( parent.getId(), ( (Model) modelIterator.next() ).getId() );
+    }
+
+    private void deleteDirOnExit( final File localRepoDirectory )
+    {
+        Runtime.getRuntime().addShutdownHook( new Thread( new Runnable()
+        {
+            public void run()
+            {
+                try
+                {
+                    FileUtils.deleteDirectory( localRepoDirectory );
+                }
+                catch ( IOException e )
+                {
+                    // ignore this.
+                }
+            }
+        } ) );
+    }
+
+    private void writeModel( Model model, File file )
+        throws IOException
+    {
+        FileWriter writer = null;
+        try
+        {
+            file.getParentFile().mkdirs();
+
+            writer = new FileWriter( file );
+            new MavenXpp3Writer().write( writer, model );
+
+            writer.flush();
+        }
+        finally
+        {
+            IOUtil.close( writer );
+        }
+
+        System.out.println( "Verifying that: " + file.getAbsolutePath() + " exists: " + file.exists() );
+    }
+
+    private Model createModel( String groupId, String artifactId, String version )
+    {
+        Model model = new Model();
+        model.setGroupId( groupId );
+        model.setArtifactId( artifactId );
+        model.setVersion( version );
+
+        return model;
+    }
+
+}

Propchange: maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/build/model/DefaultModelLineageBuilderTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/build/model/DefaultModelLineageBuilderTest.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/build/model/DefaultModelLineageTest.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/build/model/DefaultModelLineageTest.java?view=auto&rev=496910
==============================================================================
--- maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/build/model/DefaultModelLineageTest.java (added)
+++ maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/build/model/DefaultModelLineageTest.java Tue Jan 16 17:36:07 2007
@@ -0,0 +1,16 @@
+package org.apache.maven.project.build.model;
+
+import org.apache.maven.project.build.model.DefaultModelLineage;
+import org.apache.maven.project.build.model.ModelLineage;
+
+
+public class DefaultModelLineageTest
+    extends AbstractModelLineageTest
+{
+
+    protected ModelLineage newModelLineage()
+    {
+        return new DefaultModelLineage();
+    }
+
+}

Propchange: maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/build/model/DefaultModelLineageTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/build/model/DefaultModelLineageTest.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Modified: maven/components/trunk/maven-project/src/test/resources/inheritance-repo/t02/p0/p1/p2/p3/p4/p5/pom.xml
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/resources/inheritance-repo/t02/p0/p1/p2/p3/p4/p5/pom.xml?view=diff&rev=496910&r1=496909&r2=496910
==============================================================================
--- maven/components/trunk/maven-project/src/test/resources/inheritance-repo/t02/p0/p1/p2/p3/p4/p5/pom.xml (original)
+++ maven/components/trunk/maven-project/src/test/resources/inheritance-repo/t02/p0/p1/p2/p3/p4/p5/pom.xml Tue Jan 16 17:36:07 2007
@@ -1,6 +1,6 @@
 <project>
   <parent>
-    <artifactId>p3</artifactId>
+    <artifactId>p4</artifactId>
     <groupId>maven</groupId>
     <version>1.0</version>
   </parent>

Modified: maven/components/trunk/maven-project/src/test/resources/org/apache/maven/project/ProjectClasspathTest.xml
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/resources/org/apache/maven/project/ProjectClasspathTest.xml?view=diff&rev=496910&r1=496909&r2=496910
==============================================================================
--- maven/components/trunk/maven-project/src/test/resources/org/apache/maven/project/ProjectClasspathTest.xml (original)
+++ maven/components/trunk/maven-project/src/test/resources/org/apache/maven/project/ProjectClasspathTest.xml Tue Jan 16 17:36:07 2007
@@ -43,6 +43,14 @@
       <implementation>org.apache.maven.project.TestProjectBuilder</implementation>
       <requirements>
         <requirement>
+          <role>org.apache.maven.project.build.model.ModelLineageBuilder</role>
+          <role-hint>default</role-hint>
+        </requirement>
+        <requirement>
+          <role>org.apache.maven.project.build.profile.ProfileAdvisor</role>
+          <role-hint>default</role-hint>
+        </requirement>
+        <requirement>
           <role>org.apache.maven.profiles.MavenProfilesBuilder</role>
         </requirement>
         <requirement>

Modified: maven/components/trunk/maven-project/src/test/resources/org/apache/maven/project/canonical/CanonicalProjectBuilderTest.xml
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/resources/org/apache/maven/project/canonical/CanonicalProjectBuilderTest.xml?view=diff&rev=496910&r1=496909&r2=496910
==============================================================================
--- maven/components/trunk/maven-project/src/test/resources/org/apache/maven/project/canonical/CanonicalProjectBuilderTest.xml (original)
+++ maven/components/trunk/maven-project/src/test/resources/org/apache/maven/project/canonical/CanonicalProjectBuilderTest.xml Tue Jan 16 17:36:07 2007
@@ -43,6 +43,14 @@
       <implementation>org.apache.maven.project.TestProjectBuilder</implementation>
       <requirements>
         <requirement>
+          <role>org.apache.maven.project.build.model.ModelLineageBuilder</role>
+          <role-hint>default</role-hint>
+        </requirement>
+        <requirement>
+          <role>org.apache.maven.project.build.profile.ProfileAdvisor</role>
+          <role-hint>default</role-hint>
+        </requirement>
+        <requirement>
           <role>org.apache.maven.profiles.MavenProfilesBuilder</role>
         </requirement>
         <requirement>