archiva-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Brett Porter <br...@apache.org>
Subject Re: svn commit: r583862 - /maven/archiva/trunk/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/DefaultRepositoryProxyConnectors.java
Date Fri, 12 Oct 2007 04:03:40 GMT
Is there a test that reproduces this problem? JIRA issue?

On 11/10/2007, at 6:05 PM, joakime@apache.org wrote:

> Author: joakime
> Date: Thu Oct 11 09:05:24 2007
> New Revision: 583862
>
> URL: http://svn.apache.org/viewvc?rev=583862&view=rev
> Log:
> Correcting logic for determining if the local maven-metadata.xml  
> needs to be updated.
>
>
> Modified:
>     maven/archiva/trunk/archiva-base/archiva-proxy/src/main/java/ 
> org/apache/maven/archiva/proxy/DefaultRepositoryProxyConnectors.java
>
> Modified: maven/archiva/trunk/archiva-base/archiva-proxy/src/main/ 
> java/org/apache/maven/archiva/proxy/ 
> DefaultRepositoryProxyConnectors.java
> URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-base/ 
> archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/ 
> DefaultRepositoryProxyConnectors.java? 
> rev=583862&r1=583861&r2=583862&view=diff
> ====================================================================== 
> ========
> --- maven/archiva/trunk/archiva-base/archiva-proxy/src/main/java/ 
> org/apache/maven/archiva/proxy/ 
> DefaultRepositoryProxyConnectors.java (original)
> +++ maven/archiva/trunk/archiva-base/archiva-proxy/src/main/java/ 
> org/apache/maven/archiva/proxy/ 
> DefaultRepositoryProxyConnectors.java Thu Oct 11 09:05:24 2007
> @@ -170,7 +170,8 @@
>          File localFile = toLocalFile( repository, metadata );
>
>          Properties requestProperties = new Properties();
> -        boolean hasFetched = false;
> +        boolean metadataNeedsUpdating = false;
> +        long originalTimestamp = getLastModified( localFile );
>
>          List<ProxyConnector> connectors = getProxyConnectors 
> ( repository );
>          for ( ProxyConnector connector : connectors )
> @@ -179,17 +180,21 @@
>              String targetPath = metadataTools.toPath( metadata );
>
>              File localRepoFile = toLocalRepoFile( repository,  
> targetRepository, targetPath );
> -            File downloadedFile = transferFile( connector,  
> targetRepository, targetPath, localRepoFile,
> -                                                requestProperties );
> +            long originalMetadataTimestamp = getLastModified 
> ( localRepoFile );
> +            transferFile( connector, targetRepository, targetPath,  
> localRepoFile, requestProperties );
>
> -            if ( fileExists( downloadedFile ) )
> +            if ( hasBeenUpdated( localRepoFile,  
> originalMetadataTimestamp ) )
>              {
> -                getLogger().debug( "Successfully transfered: " +  
> downloadedFile.getAbsolutePath() );
> -                hasFetched = true;
> +                metadataNeedsUpdating = true;
>              }
>          }
>
> -        if ( hasFetched || fileExists( localFile ) )
> +        if ( hasBeenUpdated( localFile, originalTimestamp ) )
> +        {
> +            metadataNeedsUpdating = true;
> +        }
> +
> +        if ( metadataNeedsUpdating )
>          {
>              try
>              {
> @@ -228,6 +233,27 @@
>          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.
>       *
> @@ -239,7 +265,8 @@
>          File localFile = toLocalFile( repository, metadata );
>
>          Properties requestProperties = new Properties();
> -        boolean hasFetched = false;
> +        boolean metadataNeedsUpdating = false;
> +        long originalTimestamp = getLastModified( localFile );
>
>          List<ProxyConnector> connectors = getProxyConnectors 
> ( repository );
>          for ( ProxyConnector connector : connectors )
> @@ -248,17 +275,21 @@
>              String targetPath = metadataTools.toPath( metadata );
>
>              File localRepoFile = toLocalRepoFile( repository,  
> targetRepository, targetPath );
> -            File downloadedFile = transferFile( connector,  
> targetRepository, targetPath, localRepoFile,
> -                                                requestProperties );
> +            long originalMetadataTimestamp = getLastModified 
> ( localRepoFile );
> +            transferFile( connector, targetRepository, targetPath,  
> localRepoFile, requestProperties );
>
> -            if ( fileExists( downloadedFile ) )
> +            if ( hasBeenUpdated( localRepoFile,  
> originalMetadataTimestamp ) )
>              {
> -                getLogger().debug( "Successfully transfered: " +  
> downloadedFile.getAbsolutePath() );
> -                hasFetched = true;
> +                metadataNeedsUpdating = true;
>              }
>          }
>
> -        if ( hasFetched || fileExists( localFile ) )
> +        if ( hasBeenUpdated( localFile, originalTimestamp ) )
> +        {
> +            metadataNeedsUpdating = true;
> +        }
> +
> +        if ( metadataNeedsUpdating )
>          {
>              try
>              {
> @@ -428,7 +459,6 @@
>
>                  transferChecksum( wagon, remoteRepository,  
> remotePath, localFile, ".sha1" );
>                  transferChecksum( wagon, remoteRepository,  
> remotePath, localFile, ".md5" );
> -
>              }
>          }
>          catch ( ResourceDoesNotExistException e )
>

--
Brett Porter - brett@apache.org
Blog: http://www.devzuz.org/blogs/bporter/

Mime
View raw message