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: r584994 - /maven/archiva/trunk/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/metadata/MetadataTools.java
Date Tue, 16 Oct 2007 03:21:46 GMT
looks good, but should there be a test case?

On 16/10/2007, at 9:31 AM, joakime@apache.org wrote:

> Author: joakime
> Date: Mon Oct 15 18:31:40 2007
> New Revision: 584994
>
> URL: http://svn.apache.org/viewvc?rev=584994&view=rev
> Log:
> [MRM-535] metadata-updater is changing lastUpdating timestamp when  
> it shouldn't
> Correcting logic in snapshot metadata to only update on the  
> following conditions.
> * Last Updated exist in original metadata.xml or ...
> * Last Updated timestamp as found in unique (timestamped) snapshots  
> is newer.
>
>
> Modified:
>     maven/archiva/trunk/archiva-base/archiva-repository-layer/src/ 
> main/java/org/apache/maven/archiva/repository/metadata/ 
> MetadataTools.java
>
> Modified: maven/archiva/trunk/archiva-base/archiva-repository-layer/ 
> src/main/java/org/apache/maven/archiva/repository/metadata/ 
> MetadataTools.java
> URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-base/ 
> archiva-repository-layer/src/main/java/org/apache/maven/archiva/ 
> repository/metadata/MetadataTools.java? 
> rev=584994&r1=584993&r2=584994&view=diff
> ====================================================================== 
> ========
> --- maven/archiva/trunk/archiva-base/archiva-repository-layer/src/ 
> main/java/org/apache/maven/archiva/repository/metadata/ 
> MetadataTools.java (original)
> +++ maven/archiva/trunk/archiva-base/archiva-repository-layer/src/ 
> main/java/org/apache/maven/archiva/repository/metadata/ 
> MetadataTools.java Mon Oct 15 18:31:40 2007
> @@ -501,6 +501,22 @@
>
>          return cal.getTime();
>      }
> +
> +    private long toLastUpdatedLong( String timestampString )
> +    {
> +        try
> +        {
> +            Date date = lastUpdatedFormat.parse( timestampString );
> +            Calendar cal = Calendar.getInstance 
> ( DateUtils.UTC_TIME_ZONE );
> +            cal.setTime( date );
> +
> +            return cal.getTimeInMillis();
> +        }
> +        catch ( ParseException e )
> +        {
> +            return 0;
> +        }
> +    }
>
>      private long getLastUpdated( ArchivaRepositoryMetadata metadata )
>      {
> @@ -570,16 +586,12 @@
>      {
>          File metadataFile = new File( managedRepository.getRepoRoot 
> (), toPath( reference ) );
>
> -        long originalLastUpdated = getExistingLastUpdated 
> ( metadataFile );
> +        long lastUpdated = getExistingLastUpdated( metadataFile );
>
>          ArchivaRepositoryMetadata metadata = new  
> ArchivaRepositoryMetadata();
>          metadata.setGroupId( reference.getGroupId() );
>          metadata.setArtifactId( reference.getArtifactId() );
> -        if ( originalLastUpdated > 0 )
> -        {
> -            metadata.setLastUpdatedTimestamp( toLastUpdatedDate 
> ( originalLastUpdated ) );
> -        }
> -
> +
>          if ( VersionUtil.isSnapshot( reference.getVersion() ) )
>          {
>              // Do SNAPSHOT handling.
> @@ -619,7 +631,11 @@
>                      {
>                          String tsDate = mtimestamp.group( 1 );
>                          String tsTime = mtimestamp.group( 2 );
> -                        metadata.setLastUpdated( tsDate + tsTime );
> +
> +                        long snapshotLastUpdated =  
> toLastUpdatedLong( tsDate + tsTime );
> +
> +                        lastUpdated = Math.max( lastUpdated,  
> snapshotLastUpdated );
> +
>                          metadata.getSnapshotVersion().setTimestamp 
> ( m.group( 2 ) );
>                      }
>                  }
> @@ -631,9 +647,12 @@
>
>                  metadata.setSnapshotVersion( new SnapshotVersion() );
>
> -                /* TODO: Should this be the last updated timestamp  
> of the file, or in the case of an
> +                /* Disabled due to decision in [MRM-535].
> +                 * Do not set metadata.lastUpdated to  
> file.lastModified.
> +                 *
> +                 * Should this be the last updated timestamp of  
> the file, or in the case of an
>                   * archive, the most recent timestamp in the archive?
> -                 */
> +                 *
>                  ArtifactReference artifact = getFirstArtifact 
> ( managedRepository, reference );
>
>                  if ( artifact == null )
> @@ -648,6 +667,7 @@
>                      Date lastModified = new Date 
> ( artifactFile.lastModified() );
>                      metadata.setLastUpdatedTimestamp( lastModified );
>                  }
> +                */
>              }
>              else
>              {
> @@ -659,6 +679,12 @@
>          {
>              // Do RELEASE handling.
>              metadata.setVersion( reference.getVersion() );
> +        }
> +
> +        // Set last updated
> +        if ( lastUpdated > 0 )
> +        {
> +            metadata.setLastUpdatedTimestamp( toLastUpdatedDate 
> ( lastUpdated ) );
>          }
>
>          // Save the metadata model to disk.
>

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

Mime
View raw message