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 2009/04/08 06:45:36 UTC
svn commit: r763103 - in /maven/components/trunk:
maven-repository-mercury/src/main/java/org/apache/maven/repository/mercury/
maven-repository/src/main/java/org/apache/maven/repository/
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 )