You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Brian Fox (JIRA)" <ji...@codehaus.org> on 2008/03/05 22:50:28 UTC

[jira] Created: (MNG-3439) incorrect child dependency selected when parent is not selected

incorrect child dependency selected when parent is not selected
---------------------------------------------------------------

                 Key: MNG-3439
                 URL: http://jira.codehaus.org/browse/MNG-3439
             Project: Maven 2
          Issue Type: Bug
          Components: Artifacts and Repositories
    Affects Versions: 2.0.8
            Reporter: Brian Fox


I'm writing unit tests to reproduce MNG-2123 and I found a separate issue. I did the following
a 1.0 ->b 1.0->c3.2->d1.1 
a 1.0 ->e1.0->c[1.0,3.0]->d1.0

The available versions are c2.5,c3.2,d1.0,d1.1

The resulting list is including d1.1 not 1.0

d1.1 comes from the c3.2 which is not included, c2.5 was and thus d1.0 should have been.

{noformat}
    public void testCompatibleRecommendedVersionWithChildren()
        throws ArtifactResolutionException, InvalidVersionSpecificationException
    {

        // this test puts two dependencies on C with 3.2 and [1.0,3.0] as the version.
        // it puts 2.5 in the pretend repo...we should get back 2.5
        ArtifactSpec a = createArtifactSpec( "a", "1.0" );
        ArtifactSpec b = a.addDependency( "b", "1.0" );
        ArtifactSpec e = a.addDependency( "e", "1.0" );
        ArtifactSpec c1 = b.addDependency( "c", "3.2" );
        ArtifactSpec d1 = c1.addDependency( "d","1.1" );
        e.addDependency( "c", "[1.0,3.0]" );

        // put it in the repo
        ArtifactSpec c = createArtifactSpec( "c", "2.5" );
        ArtifactSpec d = c.addDependency( "d","1.0" );
        
        source.addArtifact( c );
        source.addArtifact( d );
        source.addArtifact( c1 );
        source.addArtifact( d1 );

        ArtifactResolutionResult res = collect( a );

        assertEquals( "Check artifact list",
                      createSet( new Object[] { a.artifact, b.artifact, e.artifact, c.artifact,d.artifact } ), res.getArtifacts() );
        assertEquals( "Check version", "2.5", getArtifact( "c", res.getArtifacts() ).getVersion() );
    }
{noformat}

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] Closed: (MNG-3439) incorrect child dependency selected when parent is not selected

Posted by "Brian Fox (JIRA)" <ji...@codehaus.org>.
     [ http://jira.codehaus.org/browse/MNG-3439?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Brian Fox closed MNG-3439.
--------------------------

         Assignee: Brian Fox
       Resolution: Fixed
    Fix Version/s: 2.0.9

this is a bug in the mock source object. Should not affect runtime.

> incorrect child dependency selected when parent is not selected
> ---------------------------------------------------------------
>
>                 Key: MNG-3439
>                 URL: http://jira.codehaus.org/browse/MNG-3439
>             Project: Maven 2
>          Issue Type: Bug
>          Components: Artifacts and Repositories
>    Affects Versions: 2.0.8
>            Reporter: Brian Fox
>            Assignee: Brian Fox
>             Fix For: 2.0.9
>
>
> I'm writing unit tests to reproduce MNG-2123 and I found a separate issue. I did the following
> a 1.0 ->b 1.0->c3.2->d1.1 
> a 1.0 ->e1.0->c[1.0,3.0]->d1.0
> The available versions are c2.5,c3.2,d1.0,d1.1
> The resulting list is including d1.1 not 1.0
> d1.1 comes from the c3.2 which is not included, c2.5 was and thus d1.0 should have been.
> {noformat}
>     public void testCompatibleRecommendedVersionWithChildren()
>         throws ArtifactResolutionException, InvalidVersionSpecificationException
>     {
>         // this test puts two dependencies on C with 3.2 and [1.0,3.0] as the version.
>         // it puts 2.5 in the pretend repo...we should get back 2.5
>         ArtifactSpec a = createArtifactSpec( "a", "1.0" );
>         ArtifactSpec b = a.addDependency( "b", "1.0" );
>         ArtifactSpec e = a.addDependency( "e", "1.0" );
>         ArtifactSpec c1 = b.addDependency( "c", "3.2" );
>         ArtifactSpec d1 = c1.addDependency( "d","1.1" );
>         e.addDependency( "c", "[1.0,3.0]" );
>         // put it in the repo
>         ArtifactSpec c = createArtifactSpec( "c", "2.5" );
>         ArtifactSpec d = c.addDependency( "d","1.0" );
>         
>         source.addArtifact( c );
>         source.addArtifact( d );
>         source.addArtifact( c1 );
>         source.addArtifact( d1 );
>         ArtifactResolutionResult res = collect( a );
>         assertEquals( "Check artifact list",
>                       createSet( new Object[] { a.artifact, b.artifact, e.artifact, c.artifact,d.artifact } ), res.getArtifacts() );
>         assertEquals( "Check version", "2.5", getArtifact( "c", res.getArtifacts() ).getVersion() );
>     }
> {noformat}

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira