mirror of https://github.com/apache/archiva.git
Correcting logic for determining if the local maven-metadata.xml needs to be updated.
git-svn-id: https://svn.apache.org/repos/asf/maven/archiva/trunk@583862 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
009ca8b128
commit
bb9a82825b
|
@ -170,7 +170,8 @@ public class DefaultRepositoryProxyConnectors
|
||||||
File localFile = toLocalFile( repository, metadata );
|
File localFile = toLocalFile( repository, metadata );
|
||||||
|
|
||||||
Properties requestProperties = new Properties();
|
Properties requestProperties = new Properties();
|
||||||
boolean hasFetched = false;
|
boolean metadataNeedsUpdating = false;
|
||||||
|
long originalTimestamp = getLastModified( localFile );
|
||||||
|
|
||||||
List<ProxyConnector> connectors = getProxyConnectors( repository );
|
List<ProxyConnector> connectors = getProxyConnectors( repository );
|
||||||
for ( ProxyConnector connector : connectors )
|
for ( ProxyConnector connector : connectors )
|
||||||
|
@ -179,17 +180,21 @@ public class DefaultRepositoryProxyConnectors
|
||||||
String targetPath = metadataTools.toPath( metadata );
|
String targetPath = metadataTools.toPath( metadata );
|
||||||
|
|
||||||
File localRepoFile = toLocalRepoFile( repository, targetRepository, targetPath );
|
File localRepoFile = toLocalRepoFile( repository, targetRepository, targetPath );
|
||||||
File downloadedFile = transferFile( connector, targetRepository, targetPath, localRepoFile,
|
long originalMetadataTimestamp = getLastModified( localRepoFile );
|
||||||
requestProperties );
|
transferFile( connector, targetRepository, targetPath, localRepoFile, requestProperties );
|
||||||
|
|
||||||
if ( fileExists( downloadedFile ) )
|
if ( hasBeenUpdated( localRepoFile, originalMetadataTimestamp ) )
|
||||||
{
|
{
|
||||||
getLogger().debug( "Successfully transfered: " + downloadedFile.getAbsolutePath() );
|
metadataNeedsUpdating = true;
|
||||||
hasFetched = true;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( hasFetched || fileExists( localFile ) )
|
if ( hasBeenUpdated( localFile, originalTimestamp ) )
|
||||||
|
{
|
||||||
|
metadataNeedsUpdating = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( metadataNeedsUpdating )
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
@ -228,6 +233,27 @@ public class DefaultRepositoryProxyConnectors
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private long getLastModified( File file )
|
||||||
|
{
|
||||||
|
if ( !file.exists() || !file.isFile() )
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
return file.lastModified();
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean hasBeenUpdated( File file, long originalLastModified )
|
||||||
|
{
|
||||||
|
if ( !file.exists() || !file.isFile() )
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
long currentLastModified = getLastModified( file );
|
||||||
|
return ( currentLastModified > originalLastModified );
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fetch from the proxies a metadata.xml file for the groupId:artifactId metadata contents.
|
* Fetch from the proxies a metadata.xml file for the groupId:artifactId metadata contents.
|
||||||
*
|
*
|
||||||
|
@ -239,7 +265,8 @@ public class DefaultRepositoryProxyConnectors
|
||||||
File localFile = toLocalFile( repository, metadata );
|
File localFile = toLocalFile( repository, metadata );
|
||||||
|
|
||||||
Properties requestProperties = new Properties();
|
Properties requestProperties = new Properties();
|
||||||
boolean hasFetched = false;
|
boolean metadataNeedsUpdating = false;
|
||||||
|
long originalTimestamp = getLastModified( localFile );
|
||||||
|
|
||||||
List<ProxyConnector> connectors = getProxyConnectors( repository );
|
List<ProxyConnector> connectors = getProxyConnectors( repository );
|
||||||
for ( ProxyConnector connector : connectors )
|
for ( ProxyConnector connector : connectors )
|
||||||
|
@ -248,17 +275,21 @@ public class DefaultRepositoryProxyConnectors
|
||||||
String targetPath = metadataTools.toPath( metadata );
|
String targetPath = metadataTools.toPath( metadata );
|
||||||
|
|
||||||
File localRepoFile = toLocalRepoFile( repository, targetRepository, targetPath );
|
File localRepoFile = toLocalRepoFile( repository, targetRepository, targetPath );
|
||||||
File downloadedFile = transferFile( connector, targetRepository, targetPath, localRepoFile,
|
long originalMetadataTimestamp = getLastModified( localRepoFile );
|
||||||
requestProperties );
|
transferFile( connector, targetRepository, targetPath, localRepoFile, requestProperties );
|
||||||
|
|
||||||
if ( fileExists( downloadedFile ) )
|
if ( hasBeenUpdated( localRepoFile, originalMetadataTimestamp ) )
|
||||||
{
|
{
|
||||||
getLogger().debug( "Successfully transfered: " + downloadedFile.getAbsolutePath() );
|
metadataNeedsUpdating = true;
|
||||||
hasFetched = true;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( hasFetched || fileExists( localFile ) )
|
if ( hasBeenUpdated( localFile, originalTimestamp ) )
|
||||||
|
{
|
||||||
|
metadataNeedsUpdating = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( metadataNeedsUpdating )
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
@ -428,7 +459,6 @@ public class DefaultRepositoryProxyConnectors
|
||||||
|
|
||||||
transferChecksum( wagon, remoteRepository, remotePath, localFile, ".sha1" );
|
transferChecksum( wagon, remoteRepository, remotePath, localFile, ".sha1" );
|
||||||
transferChecksum( wagon, remoteRepository, remotePath, localFile, ".md5" );
|
transferChecksum( wagon, remoteRepository, remotePath, localFile, ".md5" );
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch ( ResourceDoesNotExistException e )
|
catch ( ResourceDoesNotExistException e )
|
||||||
|
|
Loading…
Reference in New Issue