You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by mp...@apache.org on 2007/01/16 18:11:53 UTC

svn commit: r496772 [1/3] - in /maven/sandbox/maven/patches/MNG-1577/trunk: maven-artifact/src/main/java/org/apache/maven/artifact/resolver/ maven-artifact/src/main/java/org/apache/maven/artifact/versioning/ maven-artifact/src/test/java/org/apache/mave...

Author: mperham
Date: Tue Jan 16 09:11:41 2007
New Revision: 496772

URL: http://svn.apache.org/viewvc?view=rev&rev=496772
Log:
Reapply patch, this time with attitude

Added:
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/ManagedVersionMap.java   (with props)
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t04/
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t04/ProjectInheritanceTest.java   (with props)
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t05/
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t05/ProjectInheritanceTest.java   (with props)
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t06/
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t06/ProjectInheritanceTest.java   (with props)
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t07/
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t07/ProjectInheritanceTest.java   (with props)
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t08/
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t08/ProjectInheritanceTest.java   (with props)
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t09/
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t09/ProjectInheritanceTest.java   (with props)
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t10/
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t10/ProjectInheritanceTest.java   (with props)
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t04/
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t04/maven-test/
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t04/maven-test/jars/
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t04/maven-test/jars/maven-test-a-1.0.jar
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t04/maven-test/jars/maven-test-b-1.0.jar
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t04/maven-test/jars/maven-test-b-2.0.jar
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t04/maven-test/jars/maven-test-c-1.0.jar
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t04/maven-test/jars/maven-test-c-2.0.jar
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t04/maven-test/poms/
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t04/maven-test/poms/maven-test-a-1.0.pom
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t04/maven-test/poms/maven-test-b-1.0.pom
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t04/maven-test/poms/maven-test-b-2.0.pom
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t04/maven-test/poms/maven-test-c-1.0.pom
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t04/maven-test/poms/maven-test-c-2.0.pom
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t04/p0/
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t04/p0/p1/
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t04/p0/p1/pom.xml   (with props)
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t04/p0/pom.xml   (with props)
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t05/
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t05/maven-test/
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t05/maven-test/jars/
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t05/maven-test/jars/maven-test-a-1.0.jar
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t05/maven-test/jars/maven-test-a-2.0.jar
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t05/maven-test/jars/maven-test-b-1.0.jar
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t05/maven-test/jars/maven-test-b-1.1.jar
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t05/maven-test/jars/maven-test-b-2.0.jar
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t05/maven-test/jars/maven-test-c-1.0.jar
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t05/maven-test/jars/maven-test-d-1.0.jar
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t05/maven-test/jars/maven-test-d-1.1.jar
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t05/maven-test/jars/maven-test-d-1.2.jar
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t05/maven-test/poms/
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t05/maven-test/poms/maven-test-a-1.0.pom
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t05/maven-test/poms/maven-test-a-2.0.pom
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t05/maven-test/poms/maven-test-b-1.0.pom
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t05/maven-test/poms/maven-test-b-1.1.pom
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t05/maven-test/poms/maven-test-b-2.0.pom
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t05/maven-test/poms/maven-test-c-1.0.pom
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t05/maven-test/poms/maven-test-d-1.0.pom
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t05/maven-test/poms/maven-test-d-1.1.pom
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t05/maven-test/poms/maven-test-d-1.2.pom
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t05/p0/
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t05/p0/p1/
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t05/p0/p1/pom.xml   (with props)
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t05/p0/pom.xml   (with props)
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t06/
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t06/maven-test/
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t06/maven-test/jars/
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t06/maven-test/jars/maven-test-a-1.0.jar
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t06/maven-test/jars/maven-test-b-1.0.jar
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t06/maven-test/jars/maven-test-b-1.1.jar
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t06/maven-test/jars/maven-test-c-1.0.jar
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t06/maven-test/jars/maven-test-d-1.0.jar
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t06/maven-test/jars/maven-test-d-1.1.jar
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t06/maven-test/jars/maven-test-d-1.2.jar
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t06/maven-test/poms/
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t06/maven-test/poms/maven-test-a-1.0.pom
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t06/maven-test/poms/maven-test-b-1.0.pom
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t06/maven-test/poms/maven-test-b-1.1.pom
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t06/maven-test/poms/maven-test-c-1.0.pom
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t06/maven-test/poms/maven-test-d-1.0.pom
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t06/maven-test/poms/maven-test-d-1.1.pom
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t06/maven-test/poms/maven-test-d-1.2.pom
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t06/p0/
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t06/p0/p1/
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t06/p0/p1/pom.xml   (with props)
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t06/p0/pom.xml   (with props)
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t07/
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t07/maven-test/
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t07/maven-test/jars/
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t07/maven-test/jars/maven-test-a-1.0.jar
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t07/maven-test/jars/maven-test-b-1.0.jar
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t07/maven-test/jars/maven-test-b-1.1.jar
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t07/maven-test/jars/maven-test-c-1.0.jar
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t07/maven-test/jars/maven-test-d-1.0.jar
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t07/maven-test/jars/maven-test-d-1.1.jar
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t07/maven-test/jars/maven-test-d-1.2.jar
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t07/maven-test/poms/
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t07/maven-test/poms/maven-test-a-1.0.pom
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t07/maven-test/poms/maven-test-b-1.0.pom
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t07/maven-test/poms/maven-test-b-1.1.pom
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t07/maven-test/poms/maven-test-c-1.0.pom
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t07/maven-test/poms/maven-test-d-1.0.pom
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t07/maven-test/poms/maven-test-d-1.1.pom
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t07/maven-test/poms/maven-test-d-1.2.pom
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t07/p0/
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t07/p0/p1/
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t07/p0/p1/pom.xml   (with props)
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t07/p0/pom.xml   (with props)
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t08/
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t08/maven-test/
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t08/maven-test/jars/
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t08/maven-test/jars/maven-test-a-1.0.jar
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t08/maven-test/jars/maven-test-b-1.0.jar
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t08/maven-test/jars/maven-test-b-1.1.jar
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t08/maven-test/jars/maven-test-c-1.0.jar
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t08/maven-test/jars/maven-test-d-1.0.jar
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t08/maven-test/jars/maven-test-d-1.1.jar
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t08/maven-test/jars/maven-test-d-1.2.jar
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t08/maven-test/poms/
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t08/maven-test/poms/maven-test-a-1.0.pom
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t08/maven-test/poms/maven-test-b-1.0.pom
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t08/maven-test/poms/maven-test-b-1.1.pom
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t08/maven-test/poms/maven-test-c-1.0.pom
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t08/maven-test/poms/maven-test-d-1.0.pom
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t08/maven-test/poms/maven-test-d-1.1.pom
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t08/maven-test/poms/maven-test-d-1.2.pom
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t08/p0/
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t08/p0/p1/
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t08/p0/p1/pom.xml   (with props)
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t08/p0/pom.xml   (with props)
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t09/
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t09/maven-test/
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t09/maven-test/jars/
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t09/maven-test/jars/maven-test-a-1.0.jar
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t09/maven-test/jars/maven-test-b-1.0.jar
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t09/maven-test/jars/maven-test-c-1.0.jar
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t09/maven-test/jars/maven-test-d-1.0.jar
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t09/maven-test/poms/
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t09/maven-test/poms/maven-test-a-1.0.pom
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t09/maven-test/poms/maven-test-b-1.0.pom
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t09/maven-test/poms/maven-test-c-1.0.pom
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t09/maven-test/poms/maven-test-d-1.0.pom
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t09/p0/
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t09/p0/p1/
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t09/p0/p1/pom.xml   (with props)
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t09/p0/p2/
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t09/p0/p2/pom.xml   (with props)
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t09/p0/pom.xml   (with props)
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t10/
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t10/maven-test/
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t10/maven-test/jars/
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t10/maven-test/jars/maven-test-a-1.0.jar
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t10/maven-test/jars/maven-test-b-1.0.jar
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t10/maven-test/jars/maven-test-c-1.0.jar
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t10/maven-test/poms/
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t10/maven-test/poms/maven-test-a-1.0.pom
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t10/maven-test/poms/maven-test-b-1.0.pom
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t10/maven-test/poms/maven-test-c-1.0.pom
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t10/p0/
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t10/p0/p1/
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t10/p0/p1/pom.xml   (with props)
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t10/p0/pom.xml   (with props)
Modified:
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-artifact/src/test/java/org/apache/maven/artifact/resolver/DefaultArtifactCollectorTest.java
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-core/src/main/java/org/apache/maven/extension/DefaultExtensionManager.java
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProject.java
    maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/java/org/apache/maven/project/MavenProjectTest.java

Modified: maven/sandbox/maven/patches/MNG-1577/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java
URL: http://svn.apache.org/viewvc/maven/sandbox/maven/patches/MNG-1577/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java?view=diff&rev=496772&r1=496771&r2=496772
==============================================================================
--- maven/sandbox/maven/patches/MNG-1577/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java (original)
+++ maven/sandbox/maven/patches/MNG-1577/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java Tue Jan 16 09:11:41 2007
@@ -22,9 +22,11 @@
 import org.apache.maven.artifact.metadata.ResolutionGroup;
 import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
+import org.apache.maven.artifact.resolver.filter.AndArtifactFilter;
 import org.apache.maven.artifact.versioning.ArtifactVersion;
 import org.apache.maven.artifact.versioning.OverConstrainedVersionException;
 import org.apache.maven.artifact.versioning.VersionRange;
+import org.apache.maven.artifact.versioning.ManagedVersionMap;
 
 import java.util.ArrayList;
 import java.util.Collections;
@@ -64,7 +66,10 @@
 
         root.addDependencies( artifacts, remoteRepositories, filter );
 
-        recurse( root, resolvedArtifacts, managedVersions, localRepository, remoteRepositories, source, filter,
+        ManagedVersionMap versionMap = (managedVersions != null && managedVersions instanceof ManagedVersionMap) ?
+            (ManagedVersionMap)managedVersions : new ManagedVersionMap(managedVersions);
+
+        recurse( root, resolvedArtifacts, versionMap, localRepository, remoteRepositories, source, filter,
                  listeners );
 
         Set set = new HashSet();
@@ -99,7 +104,7 @@
         return result;
     }
 
-    private void recurse( ResolutionNode node, Map resolvedArtifacts, Map managedVersions,
+    private void recurse( ResolutionNode node, Map resolvedArtifacts, ManagedVersionMap managedVersions,
                           ArtifactRepository localRepository, List remoteRepositories, ArtifactMetadataSource source,
                           ArtifactFilter filter, List listeners )
         throws CyclicDependencyException, ArtifactResolutionException, OverConstrainedVersionException
@@ -114,11 +119,20 @@
 
             fireEvent( ResolutionListener.MANAGE_ARTIFACT, listeners, node, artifact );
 
-            if ( artifact.getVersion() != null )
+            // Before we update the version of the artifact, we need to know
+            // whether we are working on a transitive dependency or not.  This
+            // allows depMgmt to always override transitive dependencies, while
+            // explicit child override depMgmt.  (viz. depMgmt should only
+            // provide defaults to children, but should override transitives)
+
+            if ( artifact.getVersion() != null
+                            && ( node.isChildOfRootNode() ? node.getArtifact().getVersion() == null : true ) )
             {
                 node.getArtifact().setVersion( artifact.getVersion() );
             }
-            if ( artifact.getScope() != null )
+
+            if ( artifact.getScope() != null
+                            && ( node.isChildOfRootNode() ? node.getArtifact().getScope() == null : true ) )
             {
                 node.getArtifact().setScope( artifact.getScope() );
             }
@@ -271,6 +285,31 @@
                             fireEvent( ResolutionListener.SELECT_VERSION_FROM_RANGE, listeners, child );
                         }
 
+                        if ( managedVersions.containsKey( child.getKey() ) )
+                        {
+                            // If this child node is a managed dependency, then we
+                            // need to ensure that any exclusions it presents are
+                            // added to the artifact before we retrive the metadata
+                            // for the artifact; otherwise we may end up with unwanted
+                            // dependencies.
+                            Artifact ma = (Artifact) managedVersions.get( child.getKey() );
+                            ArtifactFilter managedExclusionFilter = ma.getDependencyFilter();
+                            if ( null != managedExclusionFilter )
+                            {
+                                if ( null != artifact.getDependencyFilter() )
+                                {
+                                    AndArtifactFilter aaf = new AndArtifactFilter();
+                                    aaf.add( artifact.getDependencyFilter() );
+                                    aaf.add( managedExclusionFilter );
+                                    artifact.setDependencyFilter( aaf );
+                                }
+                                else
+                                {
+                                    artifact.setDependencyFilter( managedExclusionFilter );
+                                }
+                            }
+                        }
+                        
                         artifact.setDependencyTrail( node.getDependencyTrail() );
                         ResolutionGroup rGroup = source.retrieve( artifact, localRepository, remoteRepositories );
 
@@ -283,6 +322,7 @@
                         }
 
                         child.addDependencies( rGroup.getArtifacts(), rGroup.getResolutionRepositories(), filter );
+
                     }
                     catch ( CyclicDependencyException e )
                     {

Added: maven/sandbox/maven/patches/MNG-1577/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/ManagedVersionMap.java
URL: http://svn.apache.org/viewvc/maven/sandbox/maven/patches/MNG-1577/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/ManagedVersionMap.java?view=auto&rev=496772
==============================================================================
--- maven/sandbox/maven/patches/MNG-1577/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/ManagedVersionMap.java (added)
+++ maven/sandbox/maven/patches/MNG-1577/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/ManagedVersionMap.java Tue Jan 16 09:11:41 2007
@@ -0,0 +1,52 @@
+package org.apache.maven.artifact.versioning;
+
+/*
+ * 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.
+ */
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Iterator;
+
+public class ManagedVersionMap extends HashMap
+{
+    public ManagedVersionMap(Map map)
+    {
+        super();
+        if (map != null)
+        {
+            putAll(map);
+        }
+    }
+
+    public String toString()
+    {
+        StringBuffer buffer = new StringBuffer("ManagedVersionMap\n");
+        Iterator iter = this.keySet().iterator();
+        while (iter.hasNext())
+        {
+            String key = (String)iter.next();
+            buffer.append(key).append("=").append(get(key));
+            if (iter.hasNext())
+            {
+                buffer.append("\n");
+            }
+        }
+        return buffer.toString();
+    }
+}

Propchange: maven/sandbox/maven/patches/MNG-1577/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/ManagedVersionMap.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: maven/sandbox/maven/patches/MNG-1577/trunk/maven-artifact/src/test/java/org/apache/maven/artifact/resolver/DefaultArtifactCollectorTest.java
URL: http://svn.apache.org/viewvc/maven/sandbox/maven/patches/MNG-1577/trunk/maven-artifact/src/test/java/org/apache/maven/artifact/resolver/DefaultArtifactCollectorTest.java?view=diff&rev=496772&r1=496771&r2=496772
==============================================================================
--- maven/sandbox/maven/patches/MNG-1577/trunk/maven-artifact/src/test/java/org/apache/maven/artifact/resolver/DefaultArtifactCollectorTest.java (original)
+++ maven/sandbox/maven/patches/MNG-1577/trunk/maven-artifact/src/test/java/org/apache/maven/artifact/resolver/DefaultArtifactCollectorTest.java Tue Jan 16 09:11:41 2007
@@ -28,6 +28,7 @@
 import org.apache.maven.artifact.versioning.DefaultArtifactVersion;
 import org.apache.maven.artifact.versioning.InvalidVersionSpecificationException;
 import org.apache.maven.artifact.versioning.VersionRange;
+import org.apache.maven.artifact.versioning.ManagedVersionMap;
 import org.codehaus.plexus.PlexusTestCase;
 
 import java.util.ArrayList;

Modified: maven/sandbox/maven/patches/MNG-1577/trunk/maven-core/src/main/java/org/apache/maven/extension/DefaultExtensionManager.java
URL: http://svn.apache.org/viewvc/maven/sandbox/maven/patches/MNG-1577/trunk/maven-core/src/main/java/org/apache/maven/extension/DefaultExtensionManager.java?view=diff&rev=496772&r1=496771&r2=496772
==============================================================================
--- maven/sandbox/maven/patches/MNG-1577/trunk/maven-core/src/main/java/org/apache/maven/extension/DefaultExtensionManager.java (original)
+++ maven/sandbox/maven/patches/MNG-1577/trunk/maven-core/src/main/java/org/apache/maven/extension/DefaultExtensionManager.java Tue Jan 16 09:11:41 2007
@@ -81,6 +81,7 @@
 
             ArtifactResolutionResult result = artifactResolver.resolveTransitively( Collections.singleton( artifact ),
                                                                                     project.getArtifact(),
+                                                                                    project.getManagedVersionMap(),
                                                                                     localRepository,
                                                                                     project.getRemoteArtifactRepositories(),
                                                                                     artifactMetadataSource, filter );

Modified: maven/sandbox/maven/patches/MNG-1577/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java
URL: http://svn.apache.org/viewvc/maven/sandbox/maven/patches/MNG-1577/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java?view=diff&rev=496772&r1=496771&r2=496772
==============================================================================
--- maven/sandbox/maven/patches/MNG-1577/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java (original)
+++ maven/sandbox/maven/patches/MNG-1577/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java Tue Jan 16 09:11:41 2007
@@ -621,6 +621,7 @@
             repositories.addAll( project.getRemoteArtifactRepositories() );
 
             ArtifactResolutionResult result = artifactResolver.resolveTransitively( dependencies, pluginArtifact,
+                                                                                    project.getManagedVersionMap(),
                                                                                     localRepository, repositories,
                                                                                     artifactMetadataSource,
                                                                                     artifactFilter );
@@ -1157,7 +1158,9 @@
             project.setDependencyArtifacts( project.createArtifacts( artifactFactory, null, null ) );
         }
         ArtifactResolutionResult result = artifactResolver.resolveTransitively( project.getDependencyArtifacts(),
-                                                                                artifact, context.getLocalRepository(),
+                                                                                artifact,
+                                                                                project.getManagedVersionMap(),
+                                                                                context.getLocalRepository(),
                                                                                 project.getRemoteArtifactRepositories(),
                                                                                 artifactMetadataSource, filter );
 

Modified: maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
URL: http://svn.apache.org/viewvc/maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java?view=diff&rev=496772&r1=496771&r2=496772
==============================================================================
--- maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java (original)
+++ maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java Tue Jan 16 09:11:41 2007
@@ -30,12 +30,15 @@
 import org.apache.maven.artifact.resolver.ArtifactResolutionException;
 import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
 import org.apache.maven.artifact.resolver.ArtifactResolver;
+import org.apache.maven.artifact.resolver.filter.ExcludesArtifactFilter;
 import org.apache.maven.artifact.versioning.InvalidVersionSpecificationException;
 import org.apache.maven.artifact.versioning.VersionRange;
+import org.apache.maven.artifact.versioning.ManagedVersionMap;
 import org.apache.maven.model.Build;
 import org.apache.maven.model.Dependency;
 import org.apache.maven.model.DependencyManagement;
 import org.apache.maven.model.DistributionManagement;
+import org.apache.maven.model.Exclusion;
 import org.apache.maven.model.Extension;
 import org.apache.maven.model.Model;
 import org.apache.maven.model.Parent;
@@ -268,6 +271,8 @@
 
         MavenProject project = new MavenProject( superModel );
 
+        project.setManagedVersionMap(createManagedVersionMap(projectId, superModel.getDependencyManagement(), null));
+
         project.setActiveProfiles( activeProfiles );
 
         project.setOriginalModel( superModel );
@@ -328,7 +333,8 @@
 
         String projectId = safeVersionlessKey( project.getGroupId(), project.getArtifactId() );
 
-        Map managedVersions = createManagedVersionMap( projectId, project.getDependencyManagement() );
+        // Map managedVersions = createManagedVersionMap( projectId, project.getDependencyManagement() );
+        Map managedVersions = project.getManagedVersionMap();
 
         ensureMetadataSourceIsInitialized();
 
@@ -380,13 +386,22 @@
         }
     }
 
-    private Map createManagedVersionMap( String projectId, DependencyManagement dependencyManagement )
+    private Map createManagedVersionMap( String projectId, DependencyManagement dependencyManagement, MavenProject parent)
         throws ProjectBuildingException
     {
-        Map map;
-        if ( dependencyManagement != null && dependencyManagement.getDependencies() != null )
-        {
-            map = new HashMap();
+        Map map = null;
+        List deps;
+        if ( dependencyManagement != null && (deps = dependencyManagement.getDependencies()) != null && deps.size() > 0)
+        {
+            map = new ManagedVersionMap(map);
+            org.codehaus.plexus.logging.Logger logger = getLogger();
+            boolean isDebug = logger.isDebugEnabled();
+
+            if (isDebug)
+            {
+                logger.debug("Adding managed depedendencies for " + projectId);
+            }
+
             for ( Iterator i = dependencyManagement.getDependencies().iterator(); i.hasNext(); )
             {
                 Dependency d = (Dependency) i.next();
@@ -398,6 +413,26 @@
                                                                                   versionRange, d.getType(),
                                                                                   d.getClassifier(), d.getScope(),
                                                                                   d.isOptional() );
+                    if (isDebug)
+                    {
+                        logger.debug("  " + artifact);
+                    }
+
+                    // If the dependencyManagement section listed exclusions,
+                    // add them to the managed artifacts here so that transitive
+                    // dependencies will be excluded if necessary.
+                    if ( null != d.getExclusions() && !d.getExclusions().isEmpty() ) {
+                    	List exclusions = new ArrayList();
+                    	Iterator exclItr = d.getExclusions().iterator();
+                    	while (exclItr.hasNext()) {
+                    		Exclusion e = (Exclusion) exclItr.next();
+                    		exclusions.add(e.getGroupId() + ":" + e.getArtifactId());
+                    	}
+                        ExcludesArtifactFilter eaf = new ExcludesArtifactFilter( exclusions );
+                        artifact.setDependencyFilter( eaf );
+                    } else {
+                    	artifact.setDependencyFilter( null );
+                    }
                     map.put( d.getManagementKey(), artifact );
                 }
                 catch ( InvalidVersionSpecificationException e )
@@ -407,7 +442,7 @@
                 }
             }
         }
-        else
+        else if (map == null)
         {
             map = Collections.EMPTY_MAP;
         }
@@ -798,6 +833,8 @@
             }
         }
 
+        project.setManagedVersionMap(createManagedVersionMap(projectId, project.getDependencyManagement(), project.getParent()));
+
         return project;
     }
     
@@ -1026,10 +1063,10 @@
 
         Parent parentModel = model.getParent();
 
+        String projectId = safeVersionlessKey( model.getGroupId(), model.getArtifactId() );
+
         if ( parentModel != null )
         {
-            String projectId = safeVersionlessKey( model.getGroupId(), model.getArtifactId() );
-
             if ( StringUtils.isEmpty( parentModel.getGroupId() ) )
             {
                 throw new ProjectBuildingException( projectId, "Missing groupId element from parent element" );

Modified: maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProject.java
URL: http://svn.apache.org/viewvc/maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProject.java?view=diff&rev=496772&r1=496771&r2=496772
==============================================================================
--- maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProject.java (original)
+++ maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProject.java Tue Jan 16 09:11:41 2007
@@ -19,6 +19,7 @@
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.ArtifactUtils;
 import org.apache.maven.artifact.DependencyResolutionRequiredException;
+import org.apache.maven.artifact.versioning.ManagedVersionMap;
 import org.apache.maven.artifact.factory.ArtifactFactory;
 import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
@@ -136,6 +137,8 @@
 
     private Map extensionArtifactMap;
 
+    private Map managedVersionMap;
+
     private Map projectReferences = new HashMap();
 
     private Build buildOverlay;
@@ -249,7 +252,12 @@
         if ( project.artifact != null )
         {
             this.artifact = ArtifactUtils.copyArtifact( project.artifact );
-        }        
+        }
+
+        if ( project.getManagedVersionMap() != null )
+        {
+            setManagedVersionMap( new ManagedVersionMap( project.getManagedVersionMap() ) );
+        }
     }
     
     // TODO: Find a way to use <relativePath/> here...it's tricky, because the moduleProject
@@ -1474,6 +1482,16 @@
     public Model getOriginalModel()
     {
         return originalModel;
+    }
+
+    public void setManagedVersionMap( Map map )
+    {
+        this.managedVersionMap = map;
+    }
+
+    public Map getManagedVersionMap()
+    {
+        return this.managedVersionMap;
     }
 
     public boolean equals( Object other )

Modified: maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/java/org/apache/maven/project/MavenProjectTest.java
URL: http://svn.apache.org/viewvc/maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/java/org/apache/maven/project/MavenProjectTest.java?view=diff&rev=496772&r1=496771&r2=496772
==============================================================================
--- maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/java/org/apache/maven/project/MavenProjectTest.java (original)
+++ maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/java/org/apache/maven/project/MavenProjectTest.java Tue Jan 16 09:11:41 2007
@@ -18,9 +18,15 @@
 
 import java.io.File;
 import java.io.IOException;
+import java.util.Map;
+import java.util.Iterator;
+import java.util.List;
 
 import org.apache.maven.model.Model;
 import org.apache.maven.model.Parent;
+import org.apache.maven.model.DependencyManagement;
+import org.apache.maven.model.Dependency;
+import org.apache.maven.artifact.versioning.ManagedVersionMap;
 
 public class MavenProjectTest
     extends AbstractMavenProjectTestCase
@@ -38,7 +44,7 @@
         childModel.setArtifactId( "artifact" );
 
         MavenProject childProject = new MavenProject( childModel );
-        
+
         File childFile = new File( System.getProperty( "java.io.tmpdir" ), "maven-project-tests" + System.currentTimeMillis() + "/child/pom.xml" );
 
         childProject.setFile( childFile );
@@ -46,7 +52,7 @@
         String adjustment = parentProject.getModulePathAdjustment( childProject );
 
         assertNotNull( adjustment );
-        
+
         assertEquals( "..", adjustment );
     }
 
@@ -89,6 +95,33 @@
 
         MavenProject clonedProject = new MavenProject( projectToClone );
         assertEquals( "maven-core", clonedProject.getArtifactId() );
+        Map clonedMap = clonedProject.getManagedVersionMap();
+        assertNotNull("ManagedVersionMap not copied", clonedMap);
+        assertTrue("ManagedVersionMap is not empty", clonedMap.isEmpty());
+    }
+
+    public void testCopyConstructorWithDependencyManagement()
+        throws Exception
+    {
+        File f = getFileForClasspathResource( "dependencyManagement-pom.xml" );
+        MavenProject projectToClone = getProjectWithDependencies( f );
+        DependencyManagement dep = projectToClone.getDependencyManagement();
+        assertNotNull("No dependencyManagement", dep);
+        List list = dep.getDependencies();
+        assertNotNull("No dependencies", list);
+        assertTrue("Empty dependency list", !list.isEmpty());
+
+        Map map = projectToClone.getManagedVersionMap();
+        assertNotNull("No ManagedVersionMap", map);
+        assertTrue("ManagedVersionMap is empty", !map.isEmpty());
+
+        MavenProject clonedProject = new MavenProject( projectToClone );
+        assertEquals( "maven-core", clonedProject.getArtifactId() );
+        Map clonedMap = clonedProject.getManagedVersionMap();
+        assertNotNull("ManagedVersionMap not copied", clonedMap);
+        assertTrue("ManagedVersionMap is empty", !clonedMap.isEmpty());
+        assertTrue("Not a ManagedVersionMap", clonedMap instanceof ManagedVersionMap);
+        assertTrue("ManagedVersionMap does not contain test key", clonedMap.containsKey("maven-test:maven-test-b:jar"));
     }
 
     public void testGetModulePathAdjustment()

Added: maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t04/ProjectInheritanceTest.java
URL: http://svn.apache.org/viewvc/maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t04/ProjectInheritanceTest.java?view=auto&rev=496772
==============================================================================
--- maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t04/ProjectInheritanceTest.java (added)
+++ maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t04/ProjectInheritanceTest.java Tue Jan 16 09:11:41 2007
@@ -0,0 +1,83 @@
+package org.apache.maven.project.inheritance.t04;
+
+/*
+ * 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.
+ */
+
+import java.io.File;
+import java.util.Set;
+import java.util.Iterator;
+
+import org.apache.maven.project.MavenProject;
+import org.apache.maven.project.inheritance.AbstractProjectInheritanceTestCase;
+import org.apache.maven.artifact.Artifact;
+
+/**
+ * Verifies the version of a dependency listed in a parent's
+ * dependencyManagement section is chosen over another version of the same
+ * dependency, listed transitively.	
+ *
+ * @author <a href="mailto:pschneider@gmail.com">Patrick Schneider</a>
+ * @version $Id$
+ */
+public class ProjectInheritanceTest
+    extends AbstractProjectInheritanceTestCase
+{
+    // ----------------------------------------------------------------------
+    //
+    // p1 inherits from p0
+    // p0 inhertis from super model
+    //
+    // or we can show it graphically as:
+    //
+    // p1 ---> p0 --> super model
+    //
+    // p1 has a depMgmt section that specifies versions 1.0 of jars "a" & "b"
+    // jar "a" has a transitive dependency on 2.0 of jar "b", but maven should
+    // prefer to use version 1.0.
+    //
+    // ----------------------------------------------------------------------
+
+    public void testDependencyManagementOverridesTransitiveDependencyVersion()
+        throws Exception
+    {
+        File localRepo = getLocalRepositoryPath();
+        File pom0 = new File( localRepo, "p0/pom.xml" );
+        File pom0Basedir = pom0.getParentFile();
+        File pom1 = new File( pom0Basedir, "p1/pom.xml" );
+
+        // load the child project, which inherits from p0...
+        MavenProject project0 = getProjectWithDependencies( pom0 );
+        MavenProject project1 = getProjectWithDependencies( pom1 );
+
+        assertEquals( pom0Basedir, project1.getParent().getBasedir() );
+        Set set = project1.getArtifacts();
+        assertNotNull("No artifacts", set);
+        assertTrue("No Artifacts", set.size() > 0);
+        assertTrue("Set size should be 3, is " + set.size(), set.size() == 3);
+        
+        Iterator iter = set.iterator();
+        while (iter.hasNext()) {
+            Artifact artifact = (Artifact)iter.next();
+            System.out.println("Artifact: " + artifact.getDependencyConflictId() + " " + artifact.getVersion() +
+              " Optional=" + (artifact.isOptional() ? "true" : "false"));
+            assertTrue("Incorrect version for " + artifact.getDependencyConflictId(), artifact.getVersion().equals("1.0"));
+        }
+
+    }
+}
\ No newline at end of file

Propchange: maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t04/ProjectInheritanceTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t05/ProjectInheritanceTest.java
URL: http://svn.apache.org/viewvc/maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t05/ProjectInheritanceTest.java?view=auto&rev=496772
==============================================================================
--- maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t05/ProjectInheritanceTest.java (added)
+++ maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t05/ProjectInheritanceTest.java Tue Jan 16 09:11:41 2007
@@ -0,0 +1,79 @@
+package org.apache.maven.project.inheritance.t05;
+
+/*
+ * 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.
+ */
+
+import java.io.File;
+import java.util.Set;
+import java.util.Iterator;
+
+import org.apache.maven.project.MavenProject;
+import org.apache.maven.project.inheritance.AbstractProjectInheritanceTestCase;
+import org.apache.maven.artifact.Artifact;
+
+/**
+ * A test which demonstrates maven's dependency management
+ *
+ * @author <a href="rgoers@apache.org">Ralph Goers</a>
+ * @version $Id$
+ */
+public class ProjectInheritanceTest
+    extends AbstractProjectInheritanceTestCase
+{
+    // ----------------------------------------------------------------------
+    //
+    // p1 inherits from p0
+    // p0 inhertis from super model
+    //
+    // or we can show it graphically as:
+    //
+    // p1 ---> p0 --> super model
+    //
+    // ----------------------------------------------------------------------
+
+    public void testDependencyManagement()
+        throws Exception
+    {
+        File localRepo = getLocalRepositoryPath();
+        File pom0 = new File( localRepo, "p0/pom.xml" );
+
+        File pom0Basedir = pom0.getParentFile();
+
+        File pom1 = new File( pom0Basedir, "p1/pom.xml" );
+
+        // load everything...
+        MavenProject project0 = getProjectWithDependencies( pom0 );
+        MavenProject project1 = getProjectWithDependencies( pom1 );
+
+        assertEquals( pom0Basedir, project1.getParent().getBasedir() );
+        Set set = project1.getArtifacts();
+        assertNotNull("No artifacts", set);
+        assertTrue("No Artifacts", set.size() > 0);
+        Iterator iter = set.iterator();
+
+        while (iter.hasNext())
+        {
+            Artifact artifact = (Artifact)iter.next();
+            System.out.println("Artifact: " + artifact.getDependencyConflictId() + " " +
+                    artifact.getVersion() + " Scope: " + artifact.getScope());
+            assertTrue("Incorrect version for " + artifact.getDependencyConflictId(), artifact.getVersion().equals("1.0"));
+        }
+
+    }
+}

Propchange: maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t05/ProjectInheritanceTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t06/ProjectInheritanceTest.java
URL: http://svn.apache.org/viewvc/maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t06/ProjectInheritanceTest.java?view=auto&rev=496772
==============================================================================
--- maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t06/ProjectInheritanceTest.java (added)
+++ maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t06/ProjectInheritanceTest.java Tue Jan 16 09:11:41 2007
@@ -0,0 +1,81 @@
+package org.apache.maven.project.inheritance.t06;
+
+/*
+ * 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.
+ */
+
+import java.io.File;
+import java.util.Set;
+import java.util.Iterator;
+
+import org.apache.maven.project.MavenProject;
+import org.apache.maven.project.inheritance.AbstractProjectInheritanceTestCase;
+import org.apache.maven.artifact.Artifact;
+
+/**
+ * A test which demonstrates maven's dependency management
+ *
+ * @author <a href="rgoers@apache.org">Ralph Goers</a>
+ * @version $Id$
+ */
+public class ProjectInheritanceTest
+    extends AbstractProjectInheritanceTestCase
+{
+    // ----------------------------------------------------------------------
+    //
+    // p1 inherits from p0
+    // p0 inhertis from super model
+    //
+    // or we can show it graphically as:
+    //
+    // p1 ---> p0 --> super model
+    //
+    // ----------------------------------------------------------------------
+
+    public void testDependencyManagement()
+        throws Exception
+    {
+        File localRepo = getLocalRepositoryPath();
+        File pom0 = new File( localRepo, "p0/pom.xml" );
+
+        File pom0Basedir = pom0.getParentFile();
+
+        File pom1 = new File( pom0Basedir, "p1/pom.xml" );
+
+        // load everything...
+        MavenProject project0 = getProjectWithDependencies( pom0 );
+        MavenProject project1 = getProjectWithDependencies( pom1 );
+
+        assertEquals( pom0Basedir, project1.getParent().getBasedir() );
+        System.out.println("Project " + project1.getId() + " " + project1);
+        Set set = project1.getArtifacts();
+        assertNotNull("No artifacts", set);
+        assertTrue("No Artifacts", set.size() > 0);
+        Iterator iter = set.iterator();
+        assertTrue("Set size should be 4, is " + set.size(), set.size() == 4);
+
+        while (iter.hasNext())
+        {
+            Artifact artifact = (Artifact)iter.next();
+            System.out.println("Artifact: " + artifact.getDependencyConflictId() + " " + artifact.getVersion() +
+              " Optional=" + (artifact.isOptional() ? "true" : "false"));
+            assertTrue("Incorrect version for " + artifact.getDependencyConflictId(), artifact.getVersion().equals("1.0"));
+        }
+
+    }
+}

Propchange: maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t06/ProjectInheritanceTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t07/ProjectInheritanceTest.java
URL: http://svn.apache.org/viewvc/maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t07/ProjectInheritanceTest.java?view=auto&rev=496772
==============================================================================
--- maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t07/ProjectInheritanceTest.java (added)
+++ maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t07/ProjectInheritanceTest.java Tue Jan 16 09:11:41 2007
@@ -0,0 +1,91 @@
+package org.apache.maven.project.inheritance.t07;
+
+/*
+ * 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.
+ */
+
+import java.io.File;
+import java.util.List;
+import java.util.Set;
+import java.util.Iterator;
+
+import org.apache.maven.model.Build;
+import org.apache.maven.model.MailingList;
+import org.apache.maven.model.Plugin;
+import org.apache.maven.model.PluginExecution;
+import org.apache.maven.model.Dependency;
+import org.apache.maven.project.MavenProject;
+import org.apache.maven.project.inheritance.AbstractProjectInheritanceTestCase;
+import org.apache.maven.artifact.Artifact;
+import org.codehaus.plexus.util.xml.Xpp3Dom;
+import org.codehaus.plexus.logging.LoggerManager;
+import org.codehaus.plexus.logging.Logger;
+
+/**
+ * A test which demonstrates maven's dependency management
+ *
+ * @author <a href="mailto:jason@maven.org">Jason van Zyl</a>
+ * @version $Id: ProjectInheritanceTest.java 391202 2006-04-04 00:40:13Z jdcasey $
+ */
+public class ProjectInheritanceTest
+    extends AbstractProjectInheritanceTestCase
+{
+    // ----------------------------------------------------------------------
+    //
+    // p1 inherits from p0
+    // p0 inhertis from super model
+    //
+    // or we can show it graphically as:
+    //
+    // p1 ---> p0 --> super model
+    //
+    // ----------------------------------------------------------------------
+
+    public void testDependencyManagement()
+        throws Exception
+    {
+        File localRepo = getLocalRepositoryPath();
+        File pom0 = new File( localRepo, "p0/pom.xml" );
+
+        File pom0Basedir = pom0.getParentFile();
+
+        File pom1 = new File( pom0Basedir, "p1/pom.xml" );
+
+        // load everything...
+        MavenProject project0 = getProjectWithDependencies( pom0 );
+        MavenProject project1 = getProjectWithDependencies( pom1 );
+
+        assertEquals( pom0Basedir, project1.getParent().getBasedir() );
+        System.out.println("Project " + project1.getId() + " " + project1);
+        Set set = project1.getArtifacts();
+        assertNotNull("No artifacts", set);
+        assertTrue("No Artifacts", set.size() > 0);
+        Iterator iter = set.iterator();
+        assertTrue("Set size should be 3, is " + set.size(), set.size() == 3);
+        
+        while (iter.hasNext())
+        {
+            Artifact artifact = (Artifact)iter.next();
+            assertFalse("", artifact.getArtifactId().equals("maven-test-d"));
+            System.out.println("Artifact: " + artifact.getDependencyConflictId() + " " + artifact.getVersion() +
+              " Optional=" + (artifact.isOptional() ? "true" : "false"));
+            assertTrue("Incorrect version for " + artifact.getDependencyConflictId(), artifact.getVersion().equals("1.0"));
+        }
+
+    }
+}

Propchange: maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t07/ProjectInheritanceTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t08/ProjectInheritanceTest.java
URL: http://svn.apache.org/viewvc/maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t08/ProjectInheritanceTest.java?view=auto&rev=496772
==============================================================================
--- maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t08/ProjectInheritanceTest.java (added)
+++ maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t08/ProjectInheritanceTest.java Tue Jan 16 09:11:41 2007
@@ -0,0 +1,81 @@
+package org.apache.maven.project.inheritance.t08;
+
+/*
+ * 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.
+ */
+
+import java.io.File;
+import java.util.Set;
+import java.util.Iterator;
+
+import org.apache.maven.project.MavenProject;
+import org.apache.maven.project.inheritance.AbstractProjectInheritanceTestCase;
+import org.apache.maven.artifact.Artifact;
+
+/**
+ * A test which demonstrates maven's dependency management
+ *
+ * @author <a href="rgoers@apache.org">Ralph Goers</a>
+ * @version $Id$
+ */
+public class ProjectInheritanceTest
+    extends AbstractProjectInheritanceTestCase
+{
+    // ----------------------------------------------------------------------
+    //
+    // p1 inherits from p0
+    // p0 inhertis from super model
+    //
+    // or we can show it graphically as:
+    //
+    // p1 ---> p0 --> super model
+    //
+    // ----------------------------------------------------------------------
+
+    public void testDependencyManagement()
+        throws Exception
+    {
+        File localRepo = getLocalRepositoryPath();
+        File pom0 = new File( localRepo, "p0/pom.xml" );
+
+        File pom0Basedir = pom0.getParentFile();
+
+        File pom1 = new File( pom0Basedir, "p1/pom.xml" );
+
+        // load everything...
+        MavenProject project0 = getProjectWithDependencies( pom0 );
+        MavenProject project1 = getProjectWithDependencies( pom1 );
+
+        assertEquals( pom0Basedir, project1.getParent().getBasedir() );
+        System.out.println("Project " + project1.getId() + " " + project1);
+        Set set = project1.getArtifacts();
+        assertNotNull("No artifacts", set);
+        assertTrue("No Artifacts", set.size() > 0);
+        Iterator iter = set.iterator();
+        assertTrue("Set size should be 4, is " + set.size(), set.size() == 4);
+        
+        while (iter.hasNext())
+        {
+            Artifact artifact = (Artifact)iter.next();
+            System.out.println("Artifact: " + artifact.getDependencyConflictId() + " " + artifact.getVersion() +
+              " Optional=" + (artifact.isOptional() ? "true" : "false"));
+            assertTrue("Incorrect version for " + artifact.getDependencyConflictId(), artifact.getVersion().equals("1.0"));
+        }
+
+    }
+}

Propchange: maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t08/ProjectInheritanceTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t09/ProjectInheritanceTest.java
URL: http://svn.apache.org/viewvc/maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t09/ProjectInheritanceTest.java?view=auto&rev=496772
==============================================================================
--- maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t09/ProjectInheritanceTest.java (added)
+++ maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t09/ProjectInheritanceTest.java Tue Jan 16 09:11:41 2007
@@ -0,0 +1,133 @@
+package org.apache.maven.project.inheritance.t09;
+
+/*
+ * 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.
+ */
+import java.io.File;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+import java.util.Iterator;
+
+import org.apache.maven.model.Build;
+import org.apache.maven.model.MailingList;
+import org.apache.maven.model.Plugin;
+import org.apache.maven.model.PluginExecution;
+import org.apache.maven.model.Dependency;
+import org.apache.maven.project.MavenProject;
+import org.apache.maven.project.inheritance.AbstractProjectInheritanceTestCase;
+import org.apache.maven.artifact.Artifact;
+import org.codehaus.plexus.util.xml.Xpp3Dom;
+import org.codehaus.plexus.logging.LoggerManager;
+import org.codehaus.plexus.logging.Logger;
+
+/**
+ * Verifies exclusions listed in dependencyManagement are valid for
+ * transitive dependencies.
+ *
+ * @author <a href="mailto:pschneider@gmail.com">Patrick Schneider</a>
+ * @version $Id$
+ */
+public class ProjectInheritanceTest
+    extends AbstractProjectInheritanceTestCase
+{
+    // ----------------------------------------------------------------------
+    //
+    // p1 inherits from p0
+    // p0 inhertis from super model
+    //
+    // or we can show it graphically as:
+    //
+    // p1 ---> p0 --> super model
+	//
+    // ----------------------------------------------------------------------
+
+    /**
+     * How the test project is set up:
+     * 
+     * 1. dependencyManagement lists dependencies on a & b,
+     *    with an exclusion on c in b.
+     * 2. the child project lists a dependency on project a only
+     * 3. a depends on b (which is transitive to the child project),
+     *    and b depends on c.
+     *
+     * We should see that the resulting size of collected artifacts is two:
+     * a & b only.
+     */
+    public void testDependencyManagementExclusionsExcludeTransitively()
+        throws Exception
+    {
+        File localRepo = getLocalRepositoryPath();
+
+        File pom0 = new File( localRepo, "p0/pom.xml" );
+        File pom0Basedir = pom0.getParentFile();
+        File pom1 = new File( pom0Basedir, "p1/pom.xml" );
+
+        // load the child project, which inherits from p0...
+        MavenProject project0 = getProjectWithDependencies( pom0 );
+        MavenProject project1 = getProjectWithDependencies( pom1 );
+
+        assertEquals( pom0Basedir, project1.getParent().getBasedir() );
+        System.out.println("Project " + project1.getId() + " " + project1);
+        Map map = project1.getArtifactMap();
+
+        assertNotNull("No artifacts", map);
+        assertTrue("No Artifacts", map.size() > 0);
+        assertTrue("Set size should be 2, is " + map.size(), map.size() == 2);
+        
+        assertTrue("maven-test-a is not in the project", map.containsKey( "maven-test:maven-test-a" ));
+        assertTrue("maven-test-b is not in the project", map.containsKey( "maven-test:maven-test-b" ));
+
+    }
+
+    /**
+     * Setup exactly the same as the above test, except that the child project
+     * now depends upon d, which has a transitive dependency on c.  Even though
+     * we did list an exclusion on c, it was only from within the context of
+     * project b.  We will pick up project c in this case because no
+     * restrictions were placed on d.  This demonstrates that a, b, c, & d will
+     * all be collected.
+     * 
+     * @throws Exception
+     */
+    public void testDependencyManagementExclusionDoesNotOverrideGloballyForTransitives()
+        throws Exception
+    {
+        File localRepo = getLocalRepositoryPath();
+
+        File pom0 = new File( localRepo, "p0/pom.xml" );
+        File pom0Basedir = pom0.getParentFile();
+        File pom2 = new File( pom0Basedir, "p2/pom.xml" );
+
+        // load the child project, which inherits from p0...
+        MavenProject project0 = getProjectWithDependencies( pom0 );
+        MavenProject project2 = getProjectWithDependencies( pom2 );
+
+        assertEquals( pom0Basedir, project2.getParent().getBasedir() );
+        System.out.println( "Project " + project2.getId() + " " + project2 );
+        Map map = project2.getArtifactMap();
+        assertNotNull( "No artifacts", map );
+        assertTrue( "No Artifacts", map.size() > 0 );
+        assertTrue( "Set size should be 4, is " + map.size(), map.size() == 4 );
+
+        assertTrue( "maven-test-a is not in the project", map.containsKey( "maven-test:maven-test-a" ) );
+        assertTrue( "maven-test-b is not in the project", map.containsKey( "maven-test:maven-test-b" ) );
+        assertTrue( "maven-test-c is not in the project", map.containsKey( "maven-test:maven-test-c" ) );
+        assertTrue( "maven-test-d is not in the project", map.containsKey( "maven-test:maven-test-d" ) );
+    }
+}
\ No newline at end of file

Propchange: maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t09/ProjectInheritanceTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t10/ProjectInheritanceTest.java
URL: http://svn.apache.org/viewvc/maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t10/ProjectInheritanceTest.java?view=auto&rev=496772
==============================================================================
--- maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t10/ProjectInheritanceTest.java (added)
+++ maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t10/ProjectInheritanceTest.java Tue Jan 16 09:11:41 2007
@@ -0,0 +1,101 @@
+package org.apache.maven.project.inheritance.t10;
+
+/*
+ * 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.
+ */
+
+import java.io.File;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+import java.util.Iterator;
+
+import org.apache.maven.model.Build;
+import org.apache.maven.model.MailingList;
+import org.apache.maven.model.Plugin;
+import org.apache.maven.model.PluginExecution;
+import org.apache.maven.model.Dependency;
+import org.apache.maven.project.MavenProject;
+import org.apache.maven.project.inheritance.AbstractProjectInheritanceTestCase;
+import org.apache.maven.artifact.Artifact;
+import org.codehaus.plexus.util.xml.Xpp3Dom;
+import org.codehaus.plexus.logging.LoggerManager;
+import org.codehaus.plexus.logging.Logger;
+
+/**
+ * Verifies scope inheritence of direct and transitive dependencies.
+ * 
+ * Should show three behaviors:
+ * 
+ * 1. dependencyManagement should override the scope of transitive dependencies.
+ * 2. Direct dependencies should override the scope of dependencyManagement.
+ * 3. Direct dependencies should inherit scope from dependencyManagement when
+ *    they do not explicitly state a scope.
+ *
+ * @author <a href="mailto:pschneider@gmail.com">Patrick Schneider</a>
+ * @version $Id$
+ */
+public class ProjectInheritanceTest
+    extends AbstractProjectInheritanceTestCase
+{
+    // ----------------------------------------------------------------------
+    //
+    // p1 inherits from p0
+    // p0 inhertis from super model
+    //
+    // or we can show it graphically as:
+    //
+    // p1 ---> p0 --> super model
+	//
+    // ----------------------------------------------------------------------
+
+    public void testDependencyManagementOverridesTransitiveDependencyVersion()
+        throws Exception
+    {
+        File localRepo = getLocalRepositoryPath();
+
+        File pom0 = new File( localRepo, "p0/pom.xml" );
+        File pom0Basedir = pom0.getParentFile();
+        File pom1 = new File( pom0Basedir, "p1/pom.xml" );
+
+        // load the child project, which inherits from p0...
+        MavenProject project0 = getProjectWithDependencies( pom0 );
+        MavenProject project1 = getProjectWithDependencies( pom1 );
+
+        assertEquals( pom0Basedir, project1.getParent().getBasedir() );
+        System.out.println("Project " + project1.getId() + " " + project1);
+        Map map = project1.getArtifactMap();
+        assertNotNull("No artifacts", map);
+        assertTrue("No Artifacts", map.size() > 0);
+        assertTrue("Set size should be 3, is " + map.size(), map.size() == 3);
+        
+        Artifact a = (Artifact) map.get("maven-test:maven-test-a");
+        Artifact b = (Artifact) map.get("maven-test:maven-test-b");
+        Artifact c = (Artifact) map.get("maven-test:maven-test-c");
+        
+        // inherited from depMgmt
+        assertTrue("Incorrect scope for " + a.getDependencyConflictId(), a.getScope().equals("test"));
+        
+        // transitive dep, overridden b depMgmt
+        assertTrue("Incorrect scope for " + b.getDependencyConflictId(), b.getScope().equals("runtime"));
+        
+        // direct dep, overrides depMgmt
+        assertTrue("Incorrect scope for " + c.getDependencyConflictId(), c.getScope().equals("runtime"));
+
+    }
+}
\ No newline at end of file

Propchange: maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/java/org/apache/maven/project/inheritance/t10/ProjectInheritanceTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t04/maven-test/jars/maven-test-a-1.0.jar
URL: http://svn.apache.org/viewvc/maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t04/maven-test/jars/maven-test-a-1.0.jar?view=auto&rev=496772
==============================================================================
--- maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t04/maven-test/jars/maven-test-a-1.0.jar (added)
+++ maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t04/maven-test/jars/maven-test-a-1.0.jar Tue Jan 16 09:11:41 2007
@@ -0,0 +1 @@
+foo

Added: maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t04/maven-test/jars/maven-test-b-1.0.jar
URL: http://svn.apache.org/viewvc/maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t04/maven-test/jars/maven-test-b-1.0.jar?view=auto&rev=496772
==============================================================================
--- maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t04/maven-test/jars/maven-test-b-1.0.jar (added)
+++ maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t04/maven-test/jars/maven-test-b-1.0.jar Tue Jan 16 09:11:41 2007
@@ -0,0 +1 @@
+foo

Added: maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t04/maven-test/jars/maven-test-b-2.0.jar
URL: http://svn.apache.org/viewvc/maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t04/maven-test/jars/maven-test-b-2.0.jar?view=auto&rev=496772
==============================================================================
--- maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t04/maven-test/jars/maven-test-b-2.0.jar (added)
+++ maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t04/maven-test/jars/maven-test-b-2.0.jar Tue Jan 16 09:11:41 2007
@@ -0,0 +1 @@
+foo

Added: maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t04/maven-test/jars/maven-test-c-1.0.jar
URL: http://svn.apache.org/viewvc/maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t04/maven-test/jars/maven-test-c-1.0.jar?view=auto&rev=496772
==============================================================================
--- maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t04/maven-test/jars/maven-test-c-1.0.jar (added)
+++ maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t04/maven-test/jars/maven-test-c-1.0.jar Tue Jan 16 09:11:41 2007
@@ -0,0 +1 @@
+foo

Added: maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t04/maven-test/jars/maven-test-c-2.0.jar
URL: http://svn.apache.org/viewvc/maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t04/maven-test/jars/maven-test-c-2.0.jar?view=auto&rev=496772
==============================================================================
--- maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t04/maven-test/jars/maven-test-c-2.0.jar (added)
+++ maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t04/maven-test/jars/maven-test-c-2.0.jar Tue Jan 16 09:11:41 2007
@@ -0,0 +1 @@
+foo

Added: maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t04/maven-test/poms/maven-test-a-1.0.pom
URL: http://svn.apache.org/viewvc/maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t04/maven-test/poms/maven-test-a-1.0.pom?view=auto&rev=496772
==============================================================================
--- maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t04/maven-test/poms/maven-test-a-1.0.pom (added)
+++ maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t04/maven-test/poms/maven-test-a-1.0.pom Tue Jan 16 09:11:41 2007
@@ -0,0 +1,21 @@
+<project>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>maven-test</groupId>
+  <artifactId>maven-test-a</artifactId>
+  <packaging>jar</packaging>
+  <version>1.0</version>
+  <repositories>
+    <repository>
+      <id>central</id>
+      <name>Fake Maven Central Repository</name>
+      <url>file://dummy</url>
+    </repository>
+  </repositories>
+  <dependencies>
+    <dependency>
+      <groupId>maven-test</groupId>
+      <artifactId>maven-test-b</artifactId>
+      <version>2.0</version>
+    </dependency>
+  </dependencies>
+</project>
\ No newline at end of file

Added: maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t04/maven-test/poms/maven-test-b-1.0.pom
URL: http://svn.apache.org/viewvc/maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t04/maven-test/poms/maven-test-b-1.0.pom?view=auto&rev=496772
==============================================================================
--- maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t04/maven-test/poms/maven-test-b-1.0.pom (added)
+++ maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t04/maven-test/poms/maven-test-b-1.0.pom Tue Jan 16 09:11:41 2007
@@ -0,0 +1,7 @@
+<project>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>maven-test</groupId>
+  <artifactId>maven-test-b</artifactId>
+  <packaging>jar</packaging>
+  <version>1.0</version>
+</project>
\ No newline at end of file

Added: maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t04/maven-test/poms/maven-test-b-2.0.pom
URL: http://svn.apache.org/viewvc/maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t04/maven-test/poms/maven-test-b-2.0.pom?view=auto&rev=496772
==============================================================================
--- maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t04/maven-test/poms/maven-test-b-2.0.pom (added)
+++ maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t04/maven-test/poms/maven-test-b-2.0.pom Tue Jan 16 09:11:41 2007
@@ -0,0 +1,7 @@
+<project>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>maven-test</groupId>
+  <artifactId>maven-test-b</artifactId>
+  <packaging>jar</packaging>
+  <version>2.0</version>
+</project>
\ No newline at end of file

Added: maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t04/maven-test/poms/maven-test-c-1.0.pom
URL: http://svn.apache.org/viewvc/maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t04/maven-test/poms/maven-test-c-1.0.pom?view=auto&rev=496772
==============================================================================
--- maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t04/maven-test/poms/maven-test-c-1.0.pom (added)
+++ maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t04/maven-test/poms/maven-test-c-1.0.pom Tue Jan 16 09:11:41 2007
@@ -0,0 +1,7 @@
+<project>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>maven-test</groupId>
+  <artifactId>maven-test-c</artifactId>
+  <packaging>jar</packaging>
+  <version>1.0</version>
+</project>
\ No newline at end of file

Added: maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t04/maven-test/poms/maven-test-c-2.0.pom
URL: http://svn.apache.org/viewvc/maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t04/maven-test/poms/maven-test-c-2.0.pom?view=auto&rev=496772
==============================================================================
--- maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t04/maven-test/poms/maven-test-c-2.0.pom (added)
+++ maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t04/maven-test/poms/maven-test-c-2.0.pom Tue Jan 16 09:11:41 2007
@@ -0,0 +1,7 @@
+<project>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>maven-test</groupId>
+  <artifactId>maven-test-b</artifactId>
+  <packaging>jar</packaging>
+  <version>2.0</version>
+</project>
\ No newline at end of file

Added: maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t04/p0/p1/pom.xml
URL: http://svn.apache.org/viewvc/maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t04/p0/p1/pom.xml?view=auto&rev=496772
==============================================================================
--- maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t04/p0/p1/pom.xml (added)
+++ maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t04/p0/p1/pom.xml Tue Jan 16 09:11:41 2007
@@ -0,0 +1,41 @@
+<project>
+  <parent>
+    <artifactId>p0</artifactId>
+    <groupId>maven</groupId>
+    <version>1.0</version>
+  </parent>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>maven</groupId>
+  <artifactId>p1</artifactId>
+  <packaging>pom</packaging>
+  <name>p1</name>
+  <version>1.0</version>
+  <scm>
+    <url>scm-url</url>
+  </scm>
+
+  <dependencies>
+
+    <dependency>
+      <groupId>maven-test</groupId>
+      <artifactId>maven-test-a</artifactId>
+    </dependency>
+
+    <dependency>
+      <groupId>maven-test</groupId>
+      <artifactId>maven-test-c</artifactId>
+      <version>1.0</version>
+    </dependency>
+
+  </dependencies>
+  <build>
+    <plugins>
+      <plugin>
+        <artifactId>maven-antrun-plugin</artifactId>
+        <configuration>
+          <tasks><echo>${project.parent.basedir}</echo></tasks>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+</project>
\ No newline at end of file

Propchange: maven/sandbox/maven/patches/MNG-1577/trunk/maven-project/src/test/resources/inheritance-repo/t04/p0/p1/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native