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/03/29 19:29:24 UTC
svn commit: r928842 -
/maven/maven-3/trunk/maven-compat/src/main/java/org/apache/maven/artifact/repository/metadata/DefaultRepositoryMetadataManager.java
Author: bentmann
Date: Mon Mar 29 17:29:24 2010
New Revision: 928842
URL: http://svn.apache.org/viewvc?rev=928842&view=rev
Log:
[MNG-4326] Maven should not check snapshot repositories for dependencies in the reactor
Modified:
maven/maven-3/trunk/maven-compat/src/main/java/org/apache/maven/artifact/repository/metadata/DefaultRepositoryMetadataManager.java
Modified: maven/maven-3/trunk/maven-compat/src/main/java/org/apache/maven/artifact/repository/metadata/DefaultRepositoryMetadataManager.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-compat/src/main/java/org/apache/maven/artifact/repository/metadata/DefaultRepositoryMetadataManager.java?rev=928842&r1=928841&r2=928842&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-compat/src/main/java/org/apache/maven/artifact/repository/metadata/DefaultRepositoryMetadataManager.java (original)
+++ maven/maven-3/trunk/maven-compat/src/main/java/org/apache/maven/artifact/repository/metadata/DefaultRepositoryMetadataManager.java Mon Mar 29 17:29:24 2010
@@ -19,6 +19,7 @@ import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.Reader;
+import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
@@ -108,6 +109,8 @@ public class DefaultRepositoryMetadataMa
if ( !request.isOffline() )
{
+ Date localCopyLastModified = getLocalCopyLastModified( localRepository, metadata );
+
for ( ArtifactRepository repository : remoteRepositories )
{
ArtifactRepositoryPolicy policy =
@@ -116,9 +119,46 @@ public class DefaultRepositoryMetadataMa
File file =
new File( localRepository.getBasedir(), localRepository.pathOfLocalRepositoryMetadata( metadata,
repository ) );
+ boolean update;
+
+ if ( !policy.isEnabled() )
+ {
+ update = false;
+
+ if ( getLogger().isDebugEnabled() )
+ {
+ getLogger().debug(
+ "Skipping update check for " + metadata.getKey() + " (" + file
+ + ") from disabled repository " + repository.getId() + " ("
+ + repository.getUrl() + ")" );
+ }
+ }
+ else if ( request.isForceUpdate() )
+ {
+ update = true;
+ }
+ else if ( localCopyLastModified != null && !policy.checkOutOfDate( localCopyLastModified ) )
+ {
+ update = false;
+
+ if ( getLogger().isDebugEnabled() )
+ {
+ getLogger().debug(
+ "Skipping update check for " + metadata.getKey() + " (" + file
+ + ") from repository " + repository.getId() + " (" + repository.getUrl()
+ + ") in favor of local copy" );
+ }
+ }
+ else if ( updateCheckManager.isUpdateRequired( metadata, repository, file ) )
+ {
+ update = true;
+ }
+ else
+ {
+ update = false;
+ }
- if ( ( policy.isEnabled() && request.isForceUpdate() )
- || updateCheckManager.isUpdateRequired( metadata, repository, file ) )
+ if ( update )
{
getLogger().info( metadata.getKey() + ": checking for updates from " + repository.getId() );
try
@@ -171,6 +211,13 @@ public class DefaultRepositoryMetadataMa
}
}
+ private Date getLocalCopyLastModified( ArtifactRepository localRepository, RepositoryMetadata metadata )
+ {
+ String metadataPath = localRepository.pathOfLocalRepositoryMetadata( metadata, localRepository );
+ File metadataFile = new File( localRepository.getBasedir(), metadataPath );
+ return metadataFile.isFile() ? new Date( metadataFile.lastModified() ) : null;
+ }
+
private static final class CacheKey
{