Author: ogusakov
Date: Wed Apr  8 04:45:36 2009
New Revision: 763103

URL: http://svn.apache.org/viewvc?rev=763103&view=rev
Log:
intermediate commit to revert lagacy repo system to default status

Modified:
    
maven/components/trunk/maven-repository-mercury/src/main/java/org/apache/maven/repository/mercury/MercuryAdaptor.java
    
maven/components/trunk/maven-repository-mercury/src/main/java/org/apache/maven/repository/mercury/MercuryRepositorySystem.java
    
maven/components/trunk/maven-repository/src/main/java/org/apache/maven/repository/LegacyRepositorySystem.java

Modified: 
maven/components/trunk/maven-repository-mercury/src/main/java/org/apache/maven/repository/mercury/MercuryAdaptor.java
URL: 
http://svn.apache.org/viewvc/maven/components/trunk/maven-repository-mercury/src/main/java/org/apache/maven/repository/mercury/MercuryAdaptor.java?rev=763103&r1=763102&r2=763103&view=diff
==============================================================================
--- 
maven/components/trunk/maven-repository-mercury/src/main/java/org/apache/maven/repository/mercury/MercuryAdaptor.java
 (original)
+++ 
maven/components/trunk/maven-repository-mercury/src/main/java/org/apache/maven/repository/mercury/MercuryAdaptor.java
 Wed Apr  8 04:45:36 2009
@@ -27,13 +27,18 @@
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.HashMap;
+import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Map.Entry;
 
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.factory.ArtifactFactory;
 import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
+import org.apache.maven.artifact.resolver.filter.ScopeArtifactFilter;
 import org.apache.maven.mercury.artifact.ArtifactMetadata;
+import org.apache.maven.mercury.artifact.ArtifactScopeEnum;
 import org.apache.maven.mercury.artifact.MetadataTreeNode;
 import org.apache.maven.mercury.builder.api.DependencyProcessor;
 import org.apache.maven.mercury.repository.api.Repository;
@@ -61,11 +66,12 @@
     {
         if ( localRepository == null && Util.isEmpty( remoteRepositories ) )
             return null;
-
+        
         int nRepos =
             ( localRepository == null ? 0 : 1 ) + ( Util.isEmpty( 
remoteRepositories ) ? 0 : remoteRepositories.size() );
 
-        List<Repository> res = new ArrayList<Repository>( nRepos );
+        Map<String, Repository> repos = new LinkedHashMap<String, 
Repository>(nRepos);
+        
 
         if ( localRepository != null )
         {
@@ -88,7 +94,7 @@
                 {
                     throw new IllegalArgumentException( e );
                 }
-            res.add( lr );
+                repos.put( url, lr );
         }
 
         if ( !Util.isEmpty( remoteRepositories ) )
@@ -114,10 +120,17 @@
                     _repos.put( url, rr );
                 }
 
-                res.add( rr );
+                repos.put( url, rr );
             }
         }
 
+        List<Repository> res = new ArrayList<Repository>( repos.size() );
+
+        for( Entry<String, Repository> e : repos.entrySet() )
+            res.add( e.getValue() );
+        
+//System.out.println("Converted "+nRepos+" -> "+res.size());
+//
         return res;
     }
 
@@ -154,6 +167,10 @@
         ma.setScope( a.getScope() );
         
         ma.setFile( a.getFile() );
+        
+        ma.setResolved( true );
+        
+        ma.setResolvedVersion( a.getVersion() );
 
         return ma;
     }
@@ -245,4 +262,45 @@
         }
     }
 
+    /**
+     * @param reqArtifact 
+     * @param isPlugin 
+     * @param filter
+     * @return
+     */
+    public static ArtifactScopeEnum extractScope( Artifact reqArtifact, 
boolean isPlugin, ArtifactFilter filter )
+    {
+        String scopeStr = reqArtifact.getScope(); 
//org.apache.maven.mercury.artifact.Artifact.SCOPE_COMPILE;
+        
+        if( filter != null )
+        {
+            if( ScopeArtifactFilter.class.isAssignableFrom( filter.getClass() 
) )
+                scopeStr = ((ScopeArtifactFilter)filter).getScope(); 
+        }
+        
+        if( "org.apache.maven.plugins:maven-remote-resources-plugin".equals( 
+                                                      
reqArtifact.getGroupId()+":"+reqArtifact.getArtifactId() 
+                                                                           )
+        ) scopeStr = null;
+        
+//        else if( isPlugin )
+//            scopeStr = 
org.apache.maven.mercury.artifact.Artifact.SCOPE_RUNTIME;
+        
+        if( scopeStr != null )
+        {
+            if( 
org.apache.maven.mercury.artifact.Artifact.SCOPE_COMPILE.equals( scopeStr ) )
+                return ArtifactScopeEnum.compile;
+            else if( 
org.apache.maven.mercury.artifact.Artifact.SCOPE_TEST.equals( scopeStr ) )
+                return ArtifactScopeEnum.test;
+            else if( 
org.apache.maven.mercury.artifact.Artifact.SCOPE_PROVIDED.equals( scopeStr ) )
+                return ArtifactScopeEnum.provided;
+            else if( 
org.apache.maven.mercury.artifact.Artifact.SCOPE_RUNTIME.equals( scopeStr ) )
+                return ArtifactScopeEnum.runtime;
+            else if( 
org.apache.maven.mercury.artifact.Artifact.SCOPE_SYSTEM.equals( scopeStr ) )
+                return ArtifactScopeEnum.system;
+        }
+
+        return null;
+    }
+
 }

Modified: 
maven/components/trunk/maven-repository-mercury/src/main/java/org/apache/maven/repository/mercury/MercuryRepositorySystem.java
URL: 
http://svn.apache.org/viewvc/maven/components/trunk/maven-repository-mercury/src/main/java/org/apache/maven/repository/mercury/MercuryRepositorySystem.java?rev=763103&r1=763102&r2=763103&view=diff
==============================================================================
--- 
maven/components/trunk/maven-repository-mercury/src/main/java/org/apache/maven/repository/mercury/MercuryRepositorySystem.java
 (original)
+++ 
maven/components/trunk/maven-repository-mercury/src/main/java/org/apache/maven/repository/mercury/MercuryRepositorySystem.java
 Wed Apr  8 04:45:36 2009
@@ -25,7 +25,6 @@
 import org.apache.maven.artifact.resolver.ArtifactResolutionException;
 import org.apache.maven.artifact.resolver.ArtifactResolutionRequest;
 import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
-import org.apache.maven.mercury.artifact.Artifact;
 import org.apache.maven.mercury.artifact.ArtifactMetadata;
 import org.apache.maven.mercury.artifact.ArtifactQueryList;
 import org.apache.maven.mercury.artifact.ArtifactScopeEnum;
@@ -49,7 +48,7 @@
  * @author Oleg Gusakov
  * @version $Id$
  */
-...@component( role = RepositorySystem.class, hint = "default" )
+...@component( role = RepositorySystem.class, hint = "mercury" )
 public class MercuryRepositorySystem
     extends LegacyRepositorySystem
     implements RepositorySystem
@@ -71,38 +70,79 @@
         if ( request == null )
             throw new IllegalArgumentException( LANG.getMessage( 
"null.request" ) );
 
+System.out.println("mercury: request for "+request.getArtifact()
++"("+request.getArtifactDependencies()+") 
repos="+request.getRemoteRepostories().size()
++" repos, map=" + request.getManagedVersionMap() 
+);
+
         if ( request.getArtifact() == null )
             throw new IllegalArgumentException( LANG.getMessage( 
"null.request.artifact" ) );
 
         ArtifactResolutionResult result = new ArtifactResolutionResult();
 
         List<Repository> repos =
-            MercuryAdaptor.toMercuryRepos( request.getLocalRepository()
+            MercuryAdaptor.toMercuryRepos(   request.getLocalRepository()
                                            , request.getRemoteRepostories()
                                            , _dependencyProcessor
                                          );
 
         try
         {
+long start = System.currentTimeMillis();
             org.apache.maven.artifact.Artifact mavenRootArtifact = 
request.getArtifact();
+            org.apache.maven.artifact.Artifact mavenPluginArtifact = 
mavenRootArtifact;
+            
+            boolean isPlugin = "maven-plugin".equals( 
mavenRootArtifact.getType() ); 
+            
+            ArtifactScopeEnum scope = MercuryAdaptor.extractScope( 
mavenRootArtifact, isPlugin, request.getFilter() );
             
+            if( isPlugin  )
+                mavenRootArtifact = createArtifact( 
mavenRootArtifact.getGroupId()
+                                                    , 
mavenRootArtifact.getArtifactId()
+                                                    , 
mavenRootArtifact.getVersion()
+                                                    , 
mavenRootArtifact.getScope()
+                                                    , "jar"
+                                                  );
+
             ArtifactMetadata rootMd = MercuryAdaptor.toMercuryMetadata( 
mavenRootArtifact );
             
-            List<ArtifactMetadata> mercuryMetadataList = _mercury.resolve( 
repos, null,  rootMd );
+            List<ArtifactMetadata> mercuryMetadataList = _mercury.resolve( 
repos, scope,  rootMd );
 
             List<org.apache.maven.mercury.artifact.Artifact> 
mercuryArtifactList =
                 _mercury.read( repos, mercuryMetadataList );
 
+long diff = System.currentTimeMillis() - start;
+
+            org.apache.maven.artifact.Artifact root = null;
+            
             if ( !Util.isEmpty( mercuryArtifactList ) )
             {
                 for ( org.apache.maven.mercury.artifact.Artifact a : 
mercuryArtifactList )
-                    result.addArtifact( MercuryAdaptor.toMavenArtifact( 
_artifactFactory, a ) );
-                
-                // maven likes the original artifact instance - fill it in
-                Artifact mercuryRootArtifact = mercuryArtifactList.get( 0 );
-                
-                mavenRootArtifact.setFile( mercuryRootArtifact.getFile() );
+                {
+                    if( a.getGroupId().equals( rootMd.getGroupId() ) && 
a.getArtifactId().equals( rootMd.getArtifactId() ) )
+                    { // root artifact processing
+                        root = isPlugin ? mavenPluginArtifact : 
mavenRootArtifact;
+                        
+                        root.setFile( a.getFile() );
+                        root.setResolved( true );
+                        root.setResolvedVersion( a.getVersion() );
+
+                        result.addArtifact( root );
+                    }
+                    else
+                    {
+                        result.addArtifact( MercuryAdaptor.toMavenArtifact( 
_artifactFactory, a ) );
+                    }
+                }
+
+System.out.println("mercury: resolved("+diff+") "+root+"("+scope+") as file 
"+root.getFile() );
             }
+            else
+            {
+                result.addMissingArtifact( mavenRootArtifact );
+System.out.println("mercury: missing artifact("+diff+") 
"+mavenRootArtifact+"("+scope+")" );
+            }
+            
         }
         catch ( RepositoryException e )
         {

Modified: 
maven/components/trunk/maven-repository/src/main/java/org/apache/maven/repository/LegacyRepositorySystem.java
URL: 
http://svn.apache.org/viewvc/maven/components/trunk/maven-repository/src/main/java/org/apache/maven/repository/LegacyRepositorySystem.java?rev=763103&r1=763102&r2=763103&view=diff
==============================================================================
--- 
maven/components/trunk/maven-repository/src/main/java/org/apache/maven/repository/LegacyRepositorySystem.java
 (original)
+++ 
maven/components/trunk/maven-repository/src/main/java/org/apache/maven/repository/LegacyRepositorySystem.java
 Wed Apr  8 04:45:36 2009
@@ -59,7 +59,7 @@
 /**
  * @author Jason van Zyl
  */
-...@component( role = RepositorySystem.class, hint = "legacy" )
+...@component( role = RepositorySystem.class, hint = "default" )
 public class LegacyRepositorySystem
     implements RepositorySystem
 {
@@ -373,8 +373,12 @@
     }
 
     public ArtifactResolutionResult resolve( ArtifactResolutionRequest request 
)
-    {                        
-        return artifactResolver.resolve( request );
+    {             
+        
+//System.out.println("legacy: request with 
"+request.getRemoteRepostories().size()+" repos" );
+        ArtifactResolutionResult res = artifactResolver.resolve( request );
+//System.out.println( "legacy resolved: "+request.getArtifact() );
+        return res;
     }
 
     public void setOnline( boolean online )


Reply via email to