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/10/30 23:24:20 UTC

svn commit: r709265 - in /maven/mercury/trunk: mercury-it/ 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...

Author: ogusakov
Date: Thu Oct 30 15:24:18 2008
New Revision: 709265

URL: http://svn.apache.org/viewvc?rev=709265&view=rev
Log:
adjusting plexus component

Modified:
    maven/mercury/trunk/mercury-it/pom.xml
    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/DependencyBuilder.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/main/java/org/apache/maven/mercury/metadata/Messages.properties
    maven/mercury/trunk/mercury-md/mercury-md-sat/src/test/java/org/apache/maven/mercury/metadata/DependencyTreeBuilderTest.java
    maven/mercury/trunk/mercury-pom/pom.xml

Modified: maven/mercury/trunk/mercury-it/pom.xml
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-it/pom.xml?rev=709265&r1=709264&r2=709265&view=diff
==============================================================================
--- maven/mercury/trunk/mercury-it/pom.xml (original)
+++ maven/mercury/trunk/mercury-it/pom.xml Thu Oct 30 15:24:18 2008
@@ -127,6 +127,21 @@
   </build>
 
   <dependencies>
+
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+      <version>1.5.3</version>
+    </dependency>
+
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-jdk14</artifactId>
+      <version>1.5.3</version>
+      <scope>test</scope>
+    </dependency>
+
+
     <dependency>
       <groupId>org.apache.maven.mercury</groupId>
       <artifactId>mercury-repo-api</artifactId>

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=709265&r1=709264&r2=709265&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 Thu Oct 30 15:24:18 2008
@@ -118,7 +118,7 @@
     
 //    assertTrue( "wrong tree size, expected gte 4", 4 <= root.countNodes() );
 
-    List<ArtifactMetadata> res = depBuilder.resolveConflicts( ArtifactScopeEnum.compile );
+    List<ArtifactMetadata> res = depBuilder.resolveConflicts( root, ArtifactScopeEnum.compile );
     
     assertNotNull( res );
     

Modified: maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/DependencyBuilder.java
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/DependencyBuilder.java?rev=709265&r1=709264&r2=709265&view=diff
==============================================================================
--- maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/DependencyBuilder.java (original)
+++ maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/DependencyBuilder.java Thu Oct 30 15:24:18 2008
@@ -15,7 +15,6 @@
  */
 public interface DependencyBuilder
 {
-
   //------------------------------------------------------------------------
   /**
    * build the tree, using the repositories specified in the
@@ -26,14 +25,12 @@
    * @return the root of the tree built
    * @throws MetadataTreeException
    */
-  public abstract MetadataTreeNode buildTree(
-      ArtifactBasicMetadata startMD )
-      throws MetadataTreeException;
+  public abstract MetadataTreeNode buildTree( ArtifactBasicMetadata startMD )
+  throws MetadataTreeException;
 
   //-----------------------------------------------------
-  public abstract List<ArtifactMetadata> resolveConflicts(
-      ArtifactScopeEnum scope )
-      throws MetadataTreeException;
+  public abstract List<ArtifactMetadata> resolveConflicts( MetadataTreeNode root, ArtifactScopeEnum scope )
+  throws MetadataTreeException;
   //-----------------------------------------------------
   //-----------------------------------------------------
 

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=709265&r1=709264&r2=709265&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 Thu Oct 30 15:24:18 2008
@@ -31,7 +31,7 @@
       , final Collection<MetadataTreeArtifactFilter> filters
       , final List<Comparator<MetadataTreeNode>> comparators
       , final Map<String,ArtifactListProcessor> processors
-      , final List<Repository> repositories
+      , final Collection<Repository> repositories
       , final DependencyProcessor processor
                      )
   throws RepositoryException

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=709265&r1=709264&r2=709265&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 Thu Oct 30 15:24:18 2008
@@ -19,6 +19,7 @@
 import org.apache.maven.mercury.repository.api.Repository;
 import org.apache.maven.mercury.repository.api.RepositoryException;
 import org.apache.maven.mercury.repository.virtual.VirtualRepositoryReader;
+import org.apache.maven.mercury.util.Util;
 import org.codehaus.plexus.lang.DefaultLanguage;
 import org.codehaus.plexus.lang.Language;
 
@@ -39,8 +40,6 @@
   
   private VirtualRepositoryReader _reader;
   
-  MetadataTreeNode _root;
-  
   Map< String, MetadataTreeNode > existingNodes;
   
   /**
@@ -61,7 +60,7 @@
         Collection<MetadataTreeArtifactFilter> filters
       , List<Comparator<MetadataTreeNode>> comparators
       , Map<String,ArtifactListProcessor> processors
-      , List<Repository> repositories
+      , Collection<Repository> repositories
       , DependencyProcessor processor
                      )
   throws RepositoryException
@@ -102,8 +101,9 @@
     
     existingNodes = new HashMap<String, MetadataTreeNode>(128);
     
-    _root = createNode( startMD, null, startMD );
-    return _root;
+    MetadataTreeNode root = createNode( startMD, null, startMD );
+    
+    return root;
   }
   //-----------------------------------------------------
   private MetadataTreeNode createNode( ArtifactBasicMetadata nodeMD, MetadataTreeNode parent, ArtifactBasicMetadata nodeQuery )
@@ -246,28 +246,68 @@
     return true;
   }
   //-----------------------------------------------------
-  public List<ArtifactMetadata> resolveConflicts( ArtifactScopeEnum scope )
+  public List<ArtifactMetadata> resolveConflicts( MetadataTreeNode root, ArtifactScopeEnum scope )
   throws MetadataTreeException
   {
-    if( _root == null )
-      throw new MetadataTreeException("null tree");
+    if( root == null )
+      throw new MetadataTreeException(_lang.getMessage( "empty.tree" ));
     
     try
     {
-      DefaultSatSolver solver = new DefaultSatSolver( _root, scope );
+      DefaultSatSolver solver = new DefaultSatSolver( root, scope );
       
-      if( _comparators == null )
-        _comparators = new ArrayList<Comparator<MetadataTreeNode>>(2);
+      solver.applyPolicies( getComparators() );
+
+      List<ArtifactMetadata> res = solver.solve();
       
-      if( _comparators.size() < 1 )
-      {
-        _comparators.add( new ClassicDepthComparator() );
-        _comparators.add( new ClassicVersionComparator() );
-      }
-      solver.applyPolicies( _comparators );
+      return res;
+    }
+    catch (SatException e)
+    {
+      throw new MetadataTreeException(e);
+    }
+    
+  }
+  //-----------------------------------------------------
+  private List<Comparator<MetadataTreeNode>> getComparators()
+  {
+    if( Util.isEmpty( _comparators ) )
+      _comparators = new ArrayList<Comparator<MetadataTreeNode>>(2);
+    
+    if( _comparators.size() < 1 )
+    {
+      _comparators.add( new ClassicDepthComparator() );
+      _comparators.add( new ClassicVersionComparator() );
+    }
+    
+    return _comparators;
+  }
+  //-----------------------------------------------------
+  public List<ArtifactMetadata> resolveConflicts( List<ArtifactBasicMetadata>trees, ArtifactScopeEnum scope )
+  throws MetadataTreeException
+  {
+    if( Util.isEmpty( trees ) )
+      throw new MetadataTreeException(_lang.getMessage( "empty.tree.collection" ));
+    
+    String dummyGAV = "__fake:__fake:0.0.0";
+    
+    ArtifactBasicMetadata query = new ArtifactBasicMetadata( dummyGAV );
+    
+    ArtifactMetadata dummyMd = new ArtifactMetadata( query );
+    dummyMd.setDependencies( trees );
+    
+    MetadataTreeNode root = new MetadataTreeNode( dummyMd, null, query );
+    
+    try
+    {
+      DefaultSatSolver solver = new DefaultSatSolver( root, scope );
+      
+      solver.applyPolicies( getComparators() );
 
       List<ArtifactMetadata> res = solver.solve();
       
+      res.remove( dummyMd );
+      
       return res;
     }
     catch (SatException e)

Modified: maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/Messages.properties
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/Messages.properties?rev=709265&r1=709264&r2=709265&view=diff
==============================================================================
--- maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/Messages.properties (original)
+++ maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/Messages.properties Thu Oct 30 15:24:18 2008
@@ -1,2 +1,5 @@
 artifact.md.not.found=cannot find artifact metadata for query {0}
 dependency.model.not.implemented=the requested dependency model {0} is not yet implemented
+empty.tree=Dependency tree is not populated yet 
+empty.tree.collection=Empty tree collection supplied
+

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=709265&r1=709264&r2=709265&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 Thu Oct 30 15:24:18 2008
@@ -92,7 +92,7 @@
     assertNotNull( "null tree built", root );
     assertEquals( "wrong tree size", 4, root.countNodes() );
 
-    List<ArtifactMetadata> res = mt.resolveConflicts( ArtifactScopeEnum.compile );
+    List<ArtifactMetadata> res = mt.resolveConflicts( root, ArtifactScopeEnum.compile );
     assertNotNull( "null resolution", res );
     assertEquals( "wrong tree size", 3, res.size() );
     
@@ -112,7 +112,7 @@
     assertNotNull( "null tree built", root );
     assertEquals( "wrong tree size", 4, root.countNodes() );
 
-    List<ArtifactMetadata> res = mt.resolveConflicts( ArtifactScopeEnum.compile );
+    List<ArtifactMetadata> res = mt.resolveConflicts( root, ArtifactScopeEnum.compile );
     assertNotNull( "null resolution", res );
     assertEquals( "wrong tree size", 2, res.size() );
 
@@ -137,7 +137,7 @@
     assertNotNull( "null tree built", root );
     assertEquals( "wrong tree size", 3, root.countNodes() );
 
-    List<ArtifactMetadata> res = mt.resolveConflicts( ArtifactScopeEnum.compile );
+    List<ArtifactMetadata> res = mt.resolveConflicts( root, ArtifactScopeEnum.compile );
     assertNotNull( "null resolution", res );
     assertEquals( "wrong tree size", 2, res.size() );
 
@@ -162,7 +162,7 @@
     assertNotNull( "null tree built", root );
     assertEquals( "wrong tree size", 3, root.countNodes() );
 
-    List<ArtifactMetadata> res = mt.resolveConflicts( ArtifactScopeEnum.compile );
+    List<ArtifactMetadata> res = mt.resolveConflicts( root, ArtifactScopeEnum.compile );
     assertNotNull( "null resolution", res );
     assertEquals( "wrong tree size", 2, res.size() );
     
@@ -189,7 +189,7 @@
     assertNotNull( "null tree built", root );
     assertEquals( "wrong tree size", 2, root.countNodes() );
 
-    List<ArtifactMetadata> res = mt.resolveConflicts( ArtifactScopeEnum.compile );
+    List<ArtifactMetadata> res = mt.resolveConflicts( root, ArtifactScopeEnum.compile );
     assertNotNull( "null resolution", res );
     assertEquals( "wrong tree size", 2, res.size() );
     
@@ -218,7 +218,7 @@
     assertNotNull( "null tree built", root );
     assertEquals( "wrong tree size", 1, root.countNodes() );
 
-    List<ArtifactMetadata> res = mt.resolveConflicts( ArtifactScopeEnum.compile );
+    List<ArtifactMetadata> res = mt.resolveConflicts( root, ArtifactScopeEnum.compile );
     assertNotNull( "null resolution", res );
     assertEquals( "wrong tree size", 1, res.size() );
     
@@ -240,7 +240,7 @@
     assertNotNull( "null tree built", root );
     assertTrue( "wrong tree size, expected gte 4", 4 <= root.countNodes() );
 
-    List<ArtifactMetadata> res = mt.resolveConflicts( ArtifactScopeEnum.compile );
+    List<ArtifactMetadata> res = mt.resolveConflicts( root, ArtifactScopeEnum.compile );
     assertNotNull( "null resolution", res );
 
 System.out.println("BigRes: "+res);    

Modified: maven/mercury/trunk/mercury-pom/pom.xml
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-pom/pom.xml?rev=709265&r1=709264&r2=709265&view=diff
==============================================================================
--- maven/mercury/trunk/mercury-pom/pom.xml (original)
+++ maven/mercury/trunk/mercury-pom/pom.xml Thu Oct 30 15:24:18 2008
@@ -259,7 +259,6 @@
  
   </build>
   
-  
   <dependencies>
     <dependency>
       <groupId>org.codehaus.plexus</groupId>
@@ -278,6 +277,7 @@
       <version>3.8.1</version>
       <scope>test</scope>
     </dependency>    
+
     <dependency>
     	<groupId>org.codehaus.plexus</groupId>
     	<artifactId>plexus-lang</artifactId>
@@ -285,17 +285,18 @@
     </dependency>
 
     <dependency>
-    	<groupId>org.slf4j</groupId>
-    	<artifactId>slf4j-jdk14</artifactId>
-    	<version>1.5.2</version>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+      <version>1.5.3</version>
     </dependency>
-<!--     
+
     <dependency>
       <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-simple</artifactId>
-      <version>1.5.2</version>
+      <artifactId>slf4j-jdk14</artifactId>
+      <version>1.5.3</version>
+      <scope>test</scope>
     </dependency>
- -->
+
   </dependencies>
 
 </project>
\ No newline at end of file