You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by og...@apache.org on 2008/11/04 01:31:52 UTC

svn commit: r711143 - in /maven/mercury/trunk: mercury-it/src/test/java/org/apache/maven/mercury/dependency/tests/ mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/ mercury-md/mercury-md-sat/src/test/java/org/apache/maven/mercu...

Author: ogusakov
Date: Mon Nov  3 16:31:51 2008
New Revision: 711143

URL: http://svn.apache.org/viewvc?rev=711143&view=rev
Log:
scoping, filtering work

Modified:
    maven/mercury/trunk/mercury-it/src/test/java/org/apache/maven/mercury/dependency/tests/DependencyTreeBuilderTest.java
    maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/DependencyBuilderFactory.java
    maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/DependencyTreeBuilder.java
    maven/mercury/trunk/mercury-md/mercury-md-sat/src/test/java/org/apache/maven/mercury/metadata/DependencyTreeBuilderTest.java
    maven/mercury/trunk/mercury-plexus/src/main/java/org/apache/maven/mercury/plexus/DefaultPlexusMercury.java
    maven/mercury/trunk/mercury-plexus/src/test/java/org/apache/maven/mercury/plexus/DefaultPlexusMercuryTest.java

Modified: maven/mercury/trunk/mercury-it/src/test/java/org/apache/maven/mercury/dependency/tests/DependencyTreeBuilderTest.java
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-it/src/test/java/org/apache/maven/mercury/dependency/tests/DependencyTreeBuilderTest.java?rev=711143&r1=711142&r2=711143&view=diff
==============================================================================
--- maven/mercury/trunk/mercury-it/src/test/java/org/apache/maven/mercury/dependency/tests/DependencyTreeBuilderTest.java (original)
+++ maven/mercury/trunk/mercury-it/src/test/java/org/apache/maven/mercury/dependency/tests/DependencyTreeBuilderTest.java Mon Nov  3 16:31:51 2008
@@ -77,7 +77,7 @@
 //    RemoteRepositoryM2 centralRepo = new RemoteRepositoryM2(central);
 //    reps.add(centralRepo);
 
-    depBuilder = DependencyBuilderFactory.create( DependencyBuilderFactory.JAVA_DEPENDENCY_MODEL, null, null, null, reps );
+    depBuilder = DependencyBuilderFactory.create( DependencyBuilderFactory.JAVA_DEPENDENCY_MODEL, reps, null, null, null );
     
     vReader = new VirtualRepositoryReader( reps );
   }

Modified: maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/DependencyBuilderFactory.java
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/DependencyBuilderFactory.java?rev=711143&r1=711142&r2=711143&view=diff
==============================================================================
--- maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/DependencyBuilderFactory.java (original)
+++ maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/DependencyBuilderFactory.java Mon Nov  3 16:31:51 2008
@@ -28,15 +28,15 @@
   
   public static final DependencyBuilder create(
         final String dependencyModel
+      , final Collection<Repository> repositories
       , final Collection<MetadataTreeArtifactFilter> filters
       , final List<Comparator<MetadataTreeNode>> comparators
       , final Map<String,ArtifactListProcessor> processors
-      , final Collection<Repository> repositories
                      )
   throws RepositoryException
   {
     if( JAVA_DEPENDENCY_MODEL.equals( dependencyModel ) )
-      return new DependencyTreeBuilder( filters,  comparators, processors, repositories );
+      return new DependencyTreeBuilder( repositories,  filters, comparators, processors );
     
     throw new IllegalArgumentException( _lang.getMessage( "dependency.model.not.implemented", dependencyModel ) );
   }

Modified: maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/DependencyTreeBuilder.java
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/DependencyTreeBuilder.java?rev=711143&r1=711142&r2=711143&view=diff
==============================================================================
--- maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/DependencyTreeBuilder.java (original)
+++ maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/DependencyTreeBuilder.java Mon Nov  3 16:31:51 2008
@@ -57,10 +57,10 @@
    * @throws RepositoryException
    */
   protected DependencyTreeBuilder(
-        Collection<MetadataTreeArtifactFilter> filters
+        Collection<Repository> repositories
+      , Collection<MetadataTreeArtifactFilter> filters
       , List<Comparator<MetadataTreeNode>> comparators
       , Map<String,ArtifactListProcessor> processors
-      , Collection<Repository> repositories
                      )
   throws RepositoryException
   {
@@ -239,10 +239,10 @@
     {
       ArtifactBasicMetadata md = n.getQuery();
       
-      if( md.allowDependency( ver ) )
-        return false;
+      if( !md.allowDependency( ver ) ) // veto it
+        return true;
     }
-    return true;
+    return false; // allow because all parents are OK with it
   }
   //-----------------------------------------------------
   public List<ArtifactMetadata> resolveConflicts( MetadataTreeNode root, ArtifactScopeEnum scope )
@@ -282,7 +282,7 @@
     return _comparators;
   }
   //-----------------------------------------------------
-  public List<ArtifactMetadata> resolveConflicts( List<ArtifactBasicMetadata>trees, ArtifactScopeEnum scope )
+  private List<ArtifactMetadata> resolveConflicts( List<ArtifactBasicMetadata>trees, ArtifactScopeEnum scope )
   throws MetadataTreeException
   {
     if( Util.isEmpty( trees ) )

Modified: maven/mercury/trunk/mercury-md/mercury-md-sat/src/test/java/org/apache/maven/mercury/metadata/DependencyTreeBuilderTest.java
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-md/mercury-md-sat/src/test/java/org/apache/maven/mercury/metadata/DependencyTreeBuilderTest.java?rev=711143&r1=711142&r2=711143&view=diff
==============================================================================
--- maven/mercury/trunk/mercury-md/mercury-md-sat/src/test/java/org/apache/maven/mercury/metadata/DependencyTreeBuilderTest.java (original)
+++ maven/mercury/trunk/mercury-md/mercury-md-sat/src/test/java/org/apache/maven/mercury/metadata/DependencyTreeBuilderTest.java Mon Nov  3 16:31:51 2008
@@ -42,12 +42,12 @@
   {
     processor = new MetadataProcessorMock();
     localRepo = new LocalRepositoryM2( "local", repoDir );
-    localRepo.setDependencyProcessor( new MetadataProcessorMock() );
+//    localRepo.setDependencyProcessor( new MetadataProcessorMock() );
     
     reps = new ArrayList<Repository>(4);
     reps.add(  localRepo );
 
-    mt = new DependencyTreeBuilder( null, null, null, reps );
+    mt = new DependencyTreeBuilder( reps, null, null, null );
   }
   //----------------------------------------------------------------------------------------------
   @Override

Modified: maven/mercury/trunk/mercury-plexus/src/main/java/org/apache/maven/mercury/plexus/DefaultPlexusMercury.java
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-plexus/src/main/java/org/apache/maven/mercury/plexus/DefaultPlexusMercury.java?rev=711143&r1=711142&r2=711143&view=diff
==============================================================================
--- maven/mercury/trunk/mercury-plexus/src/main/java/org/apache/maven/mercury/plexus/DefaultPlexusMercury.java (original)
+++ maven/mercury/trunk/mercury-plexus/src/main/java/org/apache/maven/mercury/plexus/DefaultPlexusMercury.java Mon Nov  3 16:31:51 2008
@@ -212,10 +212,10 @@
   //---------------------------------------------------------------
 
   public List<ArtifactMetadata> resolve(
-                                        List<Repository> repos,
-                                        ArtifactScopeEnum scope,
-                                        List<ArtifactBasicMetadata> artifacts
-                                                      )
+                          List<Repository> repos,
+                          ArtifactScopeEnum scope,
+                          List<ArtifactBasicMetadata> artifacts
+                                        )
   throws RepositoryException
   {
     if( Util.isEmpty( artifacts ) )
@@ -226,7 +226,7 @@
     
     try
     {
-      DependencyBuilder depBuilder = DependencyBuilderFactory.create( DependencyBuilderFactory.JAVA_DEPENDENCY_MODEL, null, null, null, repos );
+      DependencyBuilder depBuilder = DependencyBuilderFactory.create( DependencyBuilderFactory.JAVA_DEPENDENCY_MODEL, repos, null, null, null );
       
       MetadataTreeNode root = depBuilder.buildTree( artifacts.get(0) );
       List<ArtifactMetadata> res = depBuilder.resolveConflicts( root, scope );

Modified: maven/mercury/trunk/mercury-plexus/src/test/java/org/apache/maven/mercury/plexus/DefaultPlexusMercuryTest.java
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-plexus/src/test/java/org/apache/maven/mercury/plexus/DefaultPlexusMercuryTest.java?rev=711143&r1=711142&r2=711143&view=diff
==============================================================================
--- maven/mercury/trunk/mercury-plexus/src/test/java/org/apache/maven/mercury/plexus/DefaultPlexusMercuryTest.java (original)
+++ maven/mercury/trunk/mercury-plexus/src/test/java/org/apache/maven/mercury/plexus/DefaultPlexusMercuryTest.java Mon Nov  3 16:31:51 2008
@@ -122,6 +122,17 @@
     
     super.tearDown();
   }
+  //----------------------------------------------------------------------------------------------
+  private static boolean assertHasArtifact( List<ArtifactBasicMetadata> res, String gav )
+  {
+    ArtifactMetadata gavMd = new ArtifactMetadata(gav);
+    
+    for( ArtifactBasicMetadata md : res )
+      if( md.sameGAV( gavMd ) )
+        return true;
+    
+    return false;
+  }
   //-------------------------------------------------------------------------------------
   public void notestWrite()
   throws RepositoryException
@@ -180,16 +191,35 @@
     assertTrue( assertHasArtifact( res, "asm:asm-tree:3.0" ) );
     assertTrue( assertHasArtifact( res, "asm:asm:3.0" ) );
   }
-  //----------------------------------------------------------------------------------------------
-  private static boolean assertHasArtifact( List<ArtifactBasicMetadata> res, String gav )
+  //-------------------------------------------------------------------------------------
+  @SuppressWarnings("unchecked")
+  public void testResolveWithExclusion()
+  throws Exception
   {
-    ArtifactMetadata gavMd = new ArtifactMetadata(gav);
+//    Server central = new Server( "central", new URL("http://repo1.maven.org/maven2") );
+    Server central = new Server( "central", new URL("http://repository.sonatype.org/content/groups/public") );
     
-    for( ArtifactBasicMetadata md : res )
-      if( md.sameGAV( gavMd ) )
-        return true;
+    repos.add( new RemoteRepositoryM2(central) );
+
+    String artifactId = "asm:asm-xml:3.0";
+
+    ArtifactBasicMetadata bmd = new ArtifactBasicMetadata( artifactId );
     
-    return false;
+    List<ArtifactBasicMetadata> exclusions = new ArrayList<ArtifactBasicMetadata>();
+    exclusions.add( new ArtifactBasicMetadata("asm:asm:3.0") );
+    
+    bmd.setExclusions( exclusions );
+    
+    List<ArtifactBasicMetadata> res = (List<ArtifactBasicMetadata>)pm.resolve( repos, ArtifactScopeEnum.compile, bmd );
+    
+    System.out.println("Resolved as "+res);
+
+    assertEquals( 3, res.size() );
+    
+    assertTrue( assertHasArtifact( res, "asm:asm-xml:3.0" ) );
+    assertTrue( assertHasArtifact( res, "asm:asm-util:3.0" ) );
+    assertTrue( assertHasArtifact( res, "asm:asm-tree:3.0" ) );
+    assertFalse( assertHasArtifact( res, "asm:asm:3.0" ) );
   }
   //-------------------------------------------------------------------------------------
   //-------------------------------------------------------------------------------------