[maven-release-plugin]  copy for tag mercury-1.0.0-alpha-2

git-svn-id: https://svn.apache.org/repos/asf/maven/mercury/tags/mercury-1.0.0-alpha-2@724243 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/DependencyTreeBuilder.java b/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/DependencyTreeBuilder.java
index 5b6c3ea..57bc92c 100644
--- a/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/DependencyTreeBuilder.java
+++ b/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/DependencyTreeBuilder.java
@@ -19,6 +19,7 @@
 package org.apache.maven.mercury.metadata;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Collection;
 import java.util.Comparator;
 import java.util.HashMap;
@@ -144,6 +145,43 @@
     
     return root;
   }
+  //------------------------------------------------------------------------
+  private MetadataTreeNode buildTree( Collection<ArtifactBasicMetadata> startMDs, ArtifactScopeEnum treeScope )
+  throws MetadataTreeException
+  {
+//    if( Util.isEmpty( startMDs ) )
+//      throw new MetadataTreeException( _lang.getMessage( "empty.md.collection") );
+//    
+//    List<MetadataTreeNode> deps = new ArrayList<MetadataTreeNode>( startMDs.size() );
+//    for()
+    
+//    try
+//    {
+//      _reader.setEventManager( _eventManager );
+//      _reader.setProcessors( _processors );
+//      _reader.init();
+//    }
+//    catch( RepositoryException e )
+//    {
+//      throw new MetadataTreeException(e);
+//    }
+//    
+//    _existingNodes = new HashMap<String, MetadataTreeNode>(256);
+    
+////    GenericEvent treeBuildEvent = new GenericEvent( EventTypeEnum.dependencyBuilder, TREE_BUILD_EVENT, startMD.getGAV() );
+////    
+////    MetadataTreeNode root = createNode( startMD, null, startMD, treeScope );
+//    
+//    treeBuildEvent.stop();
+//    
+//    if( _eventManager != null )
+//      _eventManager.fireEvent( treeBuildEvent );
+//    
+//    MetadataTreeNode.reNumber( root, 1 );
+    
+//    return root;
+    return null;
+  }
   //-----------------------------------------------------
   private MetadataTreeNode createNode( ArtifactBasicMetadata nodeMD, MetadataTreeNode parent, ArtifactBasicMetadata nodeQuery, ArtifactScopeEnum globalScope )
   throws MetadataTreeException
@@ -390,10 +428,10 @@
     return _comparators;
   }
   //-----------------------------------------------------
-  private List<ArtifactMetadata> resolveConflicts( List<ArtifactBasicMetadata>trees )
+  protected List<ArtifactMetadata> resolveConflicts( List<ArtifactBasicMetadata> bmds )
   throws MetadataTreeException
   {
-    if( Util.isEmpty( trees ) )
+    if( Util.isEmpty( bmds ) )
       throw new MetadataTreeException(_lang.getMessage( "empty.tree.collection" ));
     
     String dummyGAV = "__fake:__fake:0.0.0";
@@ -401,7 +439,7 @@
     ArtifactBasicMetadata query = new ArtifactBasicMetadata( dummyGAV );
     
     ArtifactMetadata dummyMd = new ArtifactMetadata( query );
-    dummyMd.setDependencies( trees );
+    dummyMd.setDependencies( bmds );
     
     MetadataTreeNode root = new MetadataTreeNode( dummyMd, null, query );
     
@@ -424,6 +462,15 @@
     
   }
   //-----------------------------------------------------
+  protected List<ArtifactMetadata> resolveConflicts( ArtifactBasicMetadata... bmds )
+  throws MetadataTreeException
+  {
+    if( Util.isEmpty( bmds ) )
+      return null;
+    
+    return resolveConflicts( Arrays.asList( bmds ) );
+  }
+  //-----------------------------------------------------
   private String showPath( MetadataTreeNode node )
   throws MetadataTreeCircularDependencyException
   {
diff --git a/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/Messages.properties b/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/Messages.properties
index d84e297..7ed95a3 100644
--- a/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/Messages.properties
+++ b/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/Messages.properties
@@ -20,4 +20,5 @@
 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
+empty.md.collection=Empty metadata collection supplied
 
diff --git a/mercury-md/mercury-md-sat/src/test/java/org/apache/maven/mercury/metadata/DependencyTreeBuilderTest.java b/mercury-md/mercury-md-sat/src/test/java/org/apache/maven/mercury/metadata/DependencyTreeBuilderTest.java
index 2fadf9e..b15b724 100644
--- a/mercury-md/mercury-md-sat/src/test/java/org/apache/maven/mercury/metadata/DependencyTreeBuilderTest.java
+++ b/mercury-md/mercury-md-sat/src/test/java/org/apache/maven/mercury/metadata/DependencyTreeBuilderTest.java
@@ -76,6 +76,17 @@
     super.tearDown();
   }
   //----------------------------------------------------------------------------------------------
+  private static boolean assertHasArtifact( List<ArtifactMetadata> res, String gav )
+  {
+    ArtifactMetadata gavMd = new ArtifactMetadata(gav);
+    
+    for( ArtifactMetadata md : res )
+      if( md.sameGAV( gavMd ) )
+        return true;
+    
+    return false;
+  }
+  //----------------------------------------------------------------------------------------------
   public void testCircularDependency()
   {
     ArtifactMetadata circularMd = new ArtifactMetadata( "a:a:1" );
@@ -272,15 +283,26 @@
 //    assertTrue( "no c:c:2 in the result", assertHasArtifact( res, "c:c:2" ) );
   }
   //----------------------------------------------------------------------------------------------
-  private static boolean assertHasArtifact( List<ArtifactMetadata> res, String gav )
+  public void testResolveMultiple()
+  throws MetadataTreeException
   {
-    ArtifactMetadata gavMd = new ArtifactMetadata(gav);
+    ArtifactMetadata md1 = new ArtifactMetadata( "a:a:3" );
+    ArtifactMetadata md2 = new ArtifactMetadata( "a:a:4" );
     
-    for( ArtifactMetadata md : res )
-      if( md.sameGAV( gavMd ) )
-        return true;
+    MetadataTreeNode root = mt.buildTree( md1, ArtifactScopeEnum.compile );
+    assertNotNull( "null tree built", root );
+    assertTrue( "wrong tree size, expected gte 4", 4 <= root.countNodes() );
+
+    List<ArtifactMetadata> res = mt.resolveConflicts( root );
+    assertNotNull( "null resolution", res );
+
+    System.out.println("BigRes: "+res);    
     
-    return false;
+    assertEquals( "wrong tree size", 3, res.size() );
+    
+//    assertTrue( "no a:a:2 in the result", assertHasArtifact( res, "a:a:2" ) );
+//    assertTrue( "no b:b:1 in the result", assertHasArtifact( res, "b:b:1" ) );
+//    assertTrue( "no c:c:2 in the result", assertHasArtifact( res, "c:c:2" ) );
   }
   //----------------------------------------------------------------------------------------------
   //----------------------------------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 5161100..b858792 100644
--- a/pom.xml
+++ b/pom.xml
@@ -375,6 +375,14 @@
     <pluginManagement>
       <plugins>
         <plugin>
+          <artifactId>maven-release-plugin</artifactId>
+          <version>2.0-beta-7</version>
+          <configuration>
+            <tagBase>https://svn.apache.org/repos/asf/maven/mercury/tags</tagBase>
+            <autoVersionSubmodules>true</autoVersionSubmodules>
+          </configuration>
+        </plugin>
+        <plugin>
           <groupId>org.codehaus.plexus</groupId>
           <artifactId>plexus-component-metadata</artifactId>
           <version>${plexus.component.metadata.version}</version>
@@ -606,9 +614,9 @@
   </ciManagement>
 
   <scm>
-    <connection>scm:svn:http://svn.apache.org/repos/asf/maven/pom/tags/mercury-1.0.0-alpha-2</connection>
-    <developerConnection>scm:svn:https://svn.apache.org/repos/asf/maven/pom/tags/mercury-1.0.0-alpha-2</developerConnection>
-    <url>http://svn.apache.org/viewvc/maven/pom/tags/mercury-1.0.0-alpha-2</url>
+    <connection>scm:svn:http://svn.apache.org/repos/asf/maven/mercury/tags/mercury-1.0.0-alpha-2</connection>
+    <developerConnection>scm:svn:https://svn.apache.org/repos/asf/maven/mercury/tags/mercury-1.0.0-alpha-2</developerConnection>
+    <url>http://svn.apache.org/viewvc/maven/mercury/tags/mercury-1.0.0-alpha-2</url>
   </scm>
 
 </project>