Author: ogusakov
Date: Tue Dec  9 21:19:39 2008
New Revision: 724991

URL: http://svn.apache.org/viewvc?rev=724991&view=rev
Log:
MERCURY-49 - modifications to simplify usage for ant tasks

Modified:
    maven/mercury/trunk/mercury-it/pom.xml
    
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/DependencyTreeBuilder.java
    
maven/mercury/trunk/mercury-repo/mercury-repo-remote-m2/src/main/java/org/apache/maven/mercury/repository/remote/m2/RemoteRepositoryReaderM2.java
    
maven/mercury/trunk/mercury-transport/mercury-transport-http/src/test/java/org/apache/maven/mercury/spi/http/server/SimpleTestServer.java

Modified: maven/mercury/trunk/mercury-it/pom.xml
URL: 
http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-it/pom.xml?rev=724991&r1=724990&r2=724991&view=diff
==============================================================================
--- maven/mercury/trunk/mercury-it/pom.xml (original)
+++ maven/mercury/trunk/mercury-it/pom.xml Tue Dec  9 21:19:39 2008
@@ -4,7 +4,7 @@
   <parent>
     <groupId>org.apache.maven.mercury</groupId>
     <artifactId>mercury</artifactId>
-    <version>1.0.0-alpha-2-SNAPSHOT</version>
+    <version>1.0.0-alpha-3-SNAPSHOT</version>
   </parent>
 
   <artifactId>mercury-it</artifactId>

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=724991&r1=724990&r2=724991&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
 Tue Dec  9 21:19:39 2008
@@ -60,6 +60,19 @@
   throws MetadataTreeException;
 
   /**
+   * consolidated entry point: give it a collection of GAVs, it 
+   * will create a classpath out of it
+   * 
+   * @param root the tree to resolve conflicts on
+   * @return list of resolved GAVs
+   * @throws MetadataTreeException
+   */
+  public abstract List<ArtifactMetadata> resolveConflicts( ArtifactScopeEnum 
scope, ArtifactBasicMetadata... startMDs )
+  throws MetadataTreeException;
+  public abstract List<ArtifactMetadata> resolveConflicts( ArtifactScopeEnum 
scope, List<ArtifactBasicMetadata> startMDs )
+  throws MetadataTreeException;
+
+  /**
    *  this one resolves the conflicts, removing all duplicate GAVs from the 
tree and
    *  returning a copy of the resulting subtree - original tree should be 
intact
    * 

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=724991&r1=724990&r2=724991&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
 Tue Dec  9 21:19:39 2008
@@ -60,6 +60,8 @@
 class DependencyTreeBuilder
 implements DependencyBuilder, EventGenerator
 {
+  public static final ArtifactMetadata DUMMY_ROOT = new 
ArtifactMetadata("__fake:__fake:1.0");
+  
   private static final Language _lang = new 
DefaultLanguage(DependencyTreeBuilder.class);
   private static final IMercuryLogger _log = MercuryLoggerManager.getLogger( 
DependencyTreeBuilder.class ); 
   
@@ -132,11 +134,14 @@
     
     _existingNodes = new HashMap<String, MetadataTreeNode>(256);
     
-    GenericEvent treeBuildEvent = new GenericEvent( 
EventTypeEnum.dependencyBuilder, TREE_BUILD_EVENT, startMD.getGAV() );
+    GenericEvent treeBuildEvent = null;
+    if( _eventManager != null )
+      treeBuildEvent = new GenericEvent( EventTypeEnum.dependencyBuilder, 
TREE_BUILD_EVENT, startMD.getGAV() );
     
     MetadataTreeNode root = createNode( startMD, null, startMD, treeScope );
     
-    treeBuildEvent.stop();
+    if( _eventManager != null )
+      treeBuildEvent.stop();
     
     if( _eventManager != null )
       _eventManager.fireEvent( treeBuildEvent );
@@ -146,41 +151,37 @@
     return root;
   }
   //------------------------------------------------------------------------
-  private MetadataTreeNode buildTree( Collection<ArtifactBasicMetadata> 
startMDs, ArtifactScopeEnum treeScope )
+  public List<ArtifactMetadata> resolveConflicts( ArtifactScopeEnum scope, 
ArtifactBasicMetadata... startMDs )
+  throws MetadataTreeException
+  {
+    return resolveConflicts( scope, Arrays.asList( startMDs ) );
+  }
+  //------------------------------------------------------------------------
+  public List<ArtifactMetadata> resolveConflicts( ArtifactScopeEnum scope, 
List<ArtifactBasicMetadata> startMDs )
   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 );
+    if( Util.isEmpty( startMDs ) )
+      throw new MetadataTreeException( _lang.getMessage( 
"empty.md.collection") );
+
+    List<MetadataTreeNode> deps = new ArrayList<MetadataTreeNode>( 
startMDs.size() );
+
+    // build all trees
+    for( ArtifactBasicMetadata bmd : startMDs )
+    {
+      MetadataTreeNode rooty = buildTree( bmd, scope ); 
+      
+      deps.add( rooty );
+    }
     
-//    return root;
-    return null;
+    DUMMY_ROOT.setDependencies( startMDs );
+    
+    // combine into one tree
+    MetadataTreeNode root = new MetadataTreeNode( DUMMY_ROOT, null, null );
+    
+    for( MetadataTreeNode kid : deps )
+      root.addChild( kid );
+    
+    return resolveConflicts( root );
   }
   //-----------------------------------------------------
   private MetadataTreeNode createNode( ArtifactBasicMetadata nodeMD, 
MetadataTreeNode parent, ArtifactBasicMetadata nodeQuery, ArtifactScopeEnum 
globalScope )
@@ -428,49 +429,6 @@
     return _comparators;
   }
   //-----------------------------------------------------
-  protected List<ArtifactMetadata> resolveConflicts( 
List<ArtifactBasicMetadata> bmds )
-  throws MetadataTreeException
-  {
-    if( Util.isEmpty( bmds ) )
-      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( bmds );
-    
-    MetadataTreeNode root = new MetadataTreeNode( dummyMd, null, query );
-    
-    try
-    {
-      DefaultSatSolver solver = new DefaultSatSolver( root, _eventManager );
-      
-      solver.applyPolicies( getComparators() );
-
-      List<ArtifactMetadata> res = solver.solve();
-      
-      res.remove( dummyMd );
-      
-      return res;
-    }
-    catch (SatException e)
-    {
-      throw new MetadataTreeException(e);
-    }
-    
-  }
-  //-----------------------------------------------------
-  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
   {

Modified: 
maven/mercury/trunk/mercury-repo/mercury-repo-remote-m2/src/main/java/org/apache/maven/mercury/repository/remote/m2/RemoteRepositoryReaderM2.java
URL: 
http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-repo/mercury-repo-remote-m2/src/main/java/org/apache/maven/mercury/repository/remote/m2/RemoteRepositoryReaderM2.java?rev=724991&r1=724990&r2=724991&view=diff
==============================================================================
--- 
maven/mercury/trunk/mercury-repo/mercury-repo-remote-m2/src/main/java/org/apache/maven/mercury/repository/remote/m2/RemoteRepositoryReaderM2.java
 (original)
+++ 
maven/mercury/trunk/mercury-repo/mercury-repo-remote-m2/src/main/java/org/apache/maven/mercury/repository/remote/m2/RemoteRepositoryReaderM2.java
 Tue Dec  9 21:19:39 2008
@@ -461,10 +461,11 @@
       _log.debug( _repo.getId()+": did not find in the cache - go out for 
"+bmd );
 
     // no cached data, or it has expired - read from repository
-    byte[] mavenMetadata = readRawData( 
loc.getGaPath()+FileUtil.SEP+_repo.getMetadataName() );
+    String mdPath = loc.getGaPath()+FileUtil.SEP+_repo.getMetadataName();
+    byte[] mavenMetadata = readRawData( mdPath );
     
     if( mavenMetadata == null )
-      throw new MetadataReaderException();
+      throw new MetadataReaderException( _lang.getMessage( "no.group.md", 
_repo.getServer().getURL().toString(), mdPath ) );
     
     Metadata mmd = MetadataBuilder.getMetadata( mavenMetadata );
 

Modified: 
maven/mercury/trunk/mercury-transport/mercury-transport-http/src/test/java/org/apache/maven/mercury/spi/http/server/SimpleTestServer.java
URL: 
http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-transport/mercury-transport-http/src/test/java/org/apache/maven/mercury/spi/http/server/SimpleTestServer.java?rev=724991&r1=724990&r2=724991&view=diff
==============================================================================
--- 
maven/mercury/trunk/mercury-transport/mercury-transport-http/src/test/java/org/apache/maven/mercury/spi/http/server/SimpleTestServer.java
 (original)
+++ 
maven/mercury/trunk/mercury-transport/mercury-transport-http/src/test/java/org/apache/maven/mercury/spi/http/server/SimpleTestServer.java
 Tue Dec  9 21:19:39 2008
@@ -75,6 +75,21 @@
         context.setResourceBase( base.getCanonicalPath() );
     }
 
+    public SimpleTestServer( File localBase, String remotePathFragment )
+        throws Exception
+    {
+        super( 0 );
+
+        HandlerCollection handlers = new HandlerCollection();
+        setHandler( handlers );
+
+        context = new Context( handlers, remotePathFragment );
+        handlers.addHandler( new DefaultHandler() );
+
+        context.addServlet( DefaultServlet.class, "/" );
+        context.setResourceBase( localBase.getCanonicalPath() );
+    }
+
     public int getPort()
     {
         return getConnectors()[0].getLocalPort();


Reply via email to