You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by be...@apache.org on 2010/09/17 00:19:05 UTC
svn commit: r997938 - in /maven/maven-3/trunk:
maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionResolver.java
maven-core/src/main/java/org/apache/maven/project/DefaultProjectDependenciesResolver.java
Author: bentmann
Date: Thu Sep 16 22:19:04 2010
New Revision: 997938
URL: http://svn.apache.org/viewvc?rev=997938&view=rev
Log:
[MNG-4814] Eary dependency resolution attempts for reactor projects prevent their later resolution from the reactor
Modified:
maven/maven-3/trunk/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionResolver.java
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectDependenciesResolver.java
Modified: maven/maven-3/trunk/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionResolver.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionResolver.java?rev=997938&r1=997937&r2=997938&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionResolver.java (original)
+++ maven/maven-3/trunk/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionResolver.java Thu Sep 16 22:19:04 2010
@@ -36,9 +36,11 @@ import org.codehaus.plexus.component.ann
import org.codehaus.plexus.component.annotations.Requirement;
import org.codehaus.plexus.util.IOUtil;
import org.codehaus.plexus.util.StringUtils;
+import org.sonatype.aether.ConfigurationProperties;
import org.sonatype.aether.RepositoryCache;
import org.sonatype.aether.RepositoryListener;
import org.sonatype.aether.RepositorySystemSession;
+import org.sonatype.aether.util.artifact.SubArtifact;
import org.sonatype.aether.util.listener.DefaultRepositoryEvent;
import org.sonatype.aether.util.metadata.DefaultMetadata;
import org.sonatype.aether.artifact.Artifact;
@@ -116,7 +118,7 @@ public class DefaultVersionResolver
Key cacheKey = null;
RepositoryCache cache = session.getCache();
- if ( cache != null )
+ if ( cache != null && !ConfigurationProperties.get( session, "aether.versionResolver.noCache", false ) )
{
cacheKey = new Key( session, request );
@@ -248,7 +250,7 @@ public class DefaultVersionResolver
}
}
- if ( cacheKey != null && metadata != null )
+ if ( cacheKey != null && metadata != null && isSafelyCacheable( session, artifact ) )
{
cache.put( session, cacheKey, new Record( result.getVersion(), result.getRepository() ) );
}
@@ -365,6 +367,28 @@ public class DefaultVersionResolver
return StringUtils.clean( classifier ) + ':' + StringUtils.clean( extension );
}
+ private boolean isSafelyCacheable( RepositorySystemSession session, Artifact artifact )
+ {
+ /*
+ * The workspace/reactor is in flux so we better not assume definitive information for any of its
+ * artifacts/projects.
+ */
+
+ WorkspaceReader workspace = session.getWorkspaceReader();
+ if ( workspace == null )
+ {
+ return true;
+ }
+
+ Artifact pomArtifact = artifact;
+ if ( pomArtifact.getClassifier().length() > 0 || !"pom".equals( pomArtifact.getExtension() ) )
+ {
+ pomArtifact = new SubArtifact( artifact, "", "pom" );
+ }
+
+ return workspace.findArtifact( pomArtifact ) == null;
+ }
+
private static class VersionInfo
{
Modified: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectDependenciesResolver.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectDependenciesResolver.java?rev=997938&r1=997937&r2=997938&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectDependenciesResolver.java (original)
+++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectDependenciesResolver.java Thu Sep 16 22:19:04 2010
@@ -96,7 +96,9 @@ public class DefaultProjectDependenciesR
if ( !JavaScopes.SYSTEM.equals( dep.getScope() ) && dep.getArtifact().getFile() != null )
{
// enable re-resolution
- dep = dep.setArtifact( dep.getArtifact().setFile( null ) );
+ org.sonatype.aether.artifact.Artifact art = dep.getArtifact();
+ art = art.setFile( null ).setVersion( art.getBaseVersion() );
+ dep = dep.setArtifact( art );
}
collect.addDependency( dep );
}