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/08/30 13:14:59 UTC
svn commit: r990769 - in /maven/maven-3/trunk:
maven-aether-provider/src/main/java/org/apache/maven/repository/internal/VersionsMetadataGenerator.java
maven-compat/src/main/java/org/apache/maven/artifact/deployer/DefaultArtifactDeployer.java
Author: bentmann
Date: Mon Aug 30 11:14:59 2010
New Revision: 990769
URL: http://svn.apache.org/viewvc?rev=990769&view=rev
Log:
o Fixed duplicate processig of g:a-level metadata
Modified:
maven/maven-3/trunk/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/VersionsMetadataGenerator.java
maven/maven-3/trunk/maven-compat/src/main/java/org/apache/maven/artifact/deployer/DefaultArtifactDeployer.java
Modified: maven/maven-3/trunk/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/VersionsMetadataGenerator.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/VersionsMetadataGenerator.java?rev=990769&r1=990768&r2=990769&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/VersionsMetadataGenerator.java (original)
+++ maven/maven-3/trunk/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/VersionsMetadataGenerator.java Mon Aug 30 11:14:59 2010
@@ -21,6 +21,7 @@ package org.apache.maven.repository.inte
import java.util.Collection;
import java.util.Collections;
+import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Map;
@@ -40,6 +41,8 @@ class VersionsMetadataGenerator
private Map<Object, VersionsMetadata> versions;
+ private Map<Object, VersionsMetadata> processedVersions;
+
public VersionsMetadataGenerator( RepositorySystemSession session, InstallRequest request )
{
this( session, request.getMetadata() );
@@ -53,19 +56,22 @@ class VersionsMetadataGenerator
private VersionsMetadataGenerator( RepositorySystemSession session, Collection<? extends Metadata> metadatas )
{
versions = new LinkedHashMap<Object, VersionsMetadata>();
+ processedVersions = new LinkedHashMap<Object, VersionsMetadata>();
/*
* NOTE: This should be considered a quirk to support interop with Maven's legacy ArtifactDeployer which
* processes one artifact at a time and hence cannot associate the artifacts from the same project to use the
- * same timestamp+buildno for the snapshot versions. Allowing the caller to pass in metadata from a previous
- * deployment allows to re-establish the association between the artifacts of the same project.
+ * same version index. Allowing the caller to pass in metadata from a previous deployment allows to re-establish
+ * the association between the artifacts of the same project.
*/
- for ( Metadata metadata : metadatas )
+ for ( Iterator<? extends Metadata> it = metadatas.iterator(); it.hasNext(); )
{
+ Metadata metadata = it.next();
if ( metadata instanceof VersionsMetadata )
{
+ it.remove();
VersionsMetadata versionsMetadata = (VersionsMetadata) metadata;
- versions.put( versionsMetadata.getKey(), versionsMetadata );
+ processedVersions.put( versionsMetadata.getKey(), versionsMetadata );
}
}
}
@@ -85,11 +91,14 @@ class VersionsMetadataGenerator
for ( Artifact artifact : artifacts )
{
Object key = VersionsMetadata.getKey( artifact );
- VersionsMetadata versionsMetadata = versions.get( key );
- if ( versionsMetadata == null )
+ if ( processedVersions.get( key ) == null )
{
- versionsMetadata = new VersionsMetadata( artifact );
- versions.put( key, versionsMetadata );
+ VersionsMetadata versionsMetadata = versions.get( key );
+ if ( versionsMetadata == null )
+ {
+ versionsMetadata = new VersionsMetadata( artifact );
+ versions.put( key, versionsMetadata );
+ }
}
}
Modified: maven/maven-3/trunk/maven-compat/src/main/java/org/apache/maven/artifact/deployer/DefaultArtifactDeployer.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-compat/src/main/java/org/apache/maven/artifact/deployer/DefaultArtifactDeployer.java?rev=990769&r1=990768&r2=990769&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-compat/src/main/java/org/apache/maven/artifact/deployer/DefaultArtifactDeployer.java (original)
+++ maven/maven-3/trunk/maven-compat/src/main/java/org/apache/maven/artifact/deployer/DefaultArtifactDeployer.java Mon Aug 30 11:14:59 2010
@@ -58,7 +58,7 @@ public class DefaultArtifactDeployer
@Requirement
private LegacySupport legacySupport;
- private Map<Object, MergeableMetadata> snapshots = new ConcurrentHashMap<Object, MergeableMetadata>();
+ private Map<Object, MergeableMetadata> relatedMetadata = new ConcurrentHashMap<Object, MergeableMetadata>();
/**
* @deprecated we want to use the artifact method only, and ensure artifact.file is set
@@ -89,12 +89,14 @@ public class DefaultArtifactDeployer
mainArtifact = mainArtifact.setFile( source );
request.addArtifact( mainArtifact );
+ String versionKey = artifact.getGroupId() + ':' + artifact.getArtifactId();
String snapshotKey = null;
if ( artifact.isSnapshot() )
{
- snapshotKey = artifact.getGroupId() + ':' + artifact.getArtifactId() + ':' + artifact.getBaseVersion();
- request.addMetadata( snapshots.get( snapshotKey ) );
+ snapshotKey = versionKey + ':' + artifact.getBaseVersion();
+ request.addMetadata( relatedMetadata.get( snapshotKey ) );
}
+ request.addMetadata( relatedMetadata.get( versionKey ) );
for ( ArtifactMetadata metadata : artifact.getMetadataList() )
{
@@ -138,14 +140,15 @@ public class DefaultArtifactDeployer
throw new ArtifactDeploymentException( e.getMessage(), e );
}
- if ( snapshotKey != null )
+ for ( Object metadata : result.getMetadata() )
{
- for ( Object metadata : result.getMetadata() )
+ if ( metadata.getClass().getName().endsWith( ".internal.VersionsMetadata" ) )
{
- if ( metadata.getClass().getName().endsWith( ".internal.RemoteSnapshotMetadata" ) )
- {
- snapshots.put( snapshotKey, (MergeableMetadata) metadata );
- }
+ relatedMetadata.put( versionKey, (MergeableMetadata) metadata );
+ }
+ if ( snapshotKey != null && metadata.getClass().getName().endsWith( ".internal.RemoteSnapshotMetadata" ) )
+ {
+ relatedMetadata.put( snapshotKey, (MergeableMetadata) metadata );
}
}