You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by br...@apache.org on 2005/09/03 16:38:37 UTC

svn commit: r267466 - in /maven/components/trunk: maven-artifact-manager/src/main/java/org/apache/maven/artifact/deployer/ maven-artifact-manager/src/main/java/org/apache/maven/artifact/installer/ maven-artifact-manager/src/main/java/org/apache/maven/a...

Author: brett
Date: Sat Sep  3 07:38:13 2005
New Revision: 267466

URL: http://svn.apache.org/viewcvs?rev=267466&view=rev
Log:
PR: MNG-639
Separate local metadata by repository to ensure it remains consistent

Modified:
    maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/deployer/DefaultArtifactDeployer.java
    maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/installer/DefaultArtifactInstaller.java
    maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java
    maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/metadata/AbstractVersionArtifactMetadata.java
    maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/metadata/LatestArtifactMetadata.java
    maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/metadata/ReleaseArtifactMetadata.java
    maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/metadata/SnapshotArtifactMetadata.java
    maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/repository/DefaultArtifactRepository.java
    maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/repository/metadata/DefaultRepositoryMetadataManager.java
    maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/repository/metadata/GroupRepositoryMetadata.java
    maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java
    maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/transform/AbstractVersionTransformation.java
    maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/metadata/AbstractArtifactMetadata.java
    maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/metadata/ArtifactMetadata.java
    maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/repository/ArtifactRepository.java
    maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/repository/layout/ArtifactRepositoryLayout.java
    maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/repository/layout/DefaultRepositoryLayout.java
    maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/repository/layout/LegacyRepositoryLayout.java
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginMappingManager.java
    maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/artifact/ProjectArtifactMetadata.java

Modified: maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/deployer/DefaultArtifactDeployer.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/deployer/DefaultArtifactDeployer.java?rev=267466&r1=267465&r2=267466&view=diff
==============================================================================
--- maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/deployer/DefaultArtifactDeployer.java (original)
+++ maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/deployer/DefaultArtifactDeployer.java Sat Sep  3 07:38:13 2005
@@ -72,9 +72,10 @@
             {
                 ArtifactMetadata metadata = (ArtifactMetadata) i.next();
                 // TODO: method should be on repository?
-                metadata.storeInLocalRepository( localRepository );
+                metadata.storeInLocalRepository( localRepository, deploymentRepository );
                 // TODO: shouldn't need to calculate this
-                File f = new File( localRepository.getBasedir(), localRepository.pathOfArtifactMetadata( metadata ) );
+                File f = new File( localRepository.getBasedir(),
+                                   localRepository.pathOfLocalRepositoryMetadata( metadata, deploymentRepository ) );
                 wagonManager.putArtifactMetadata( f, metadata, deploymentRepository );
             }
         }

Modified: maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/installer/DefaultArtifactInstaller.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/installer/DefaultArtifactInstaller.java?rev=267466&r1=267465&r2=267466&view=diff
==============================================================================
--- maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/installer/DefaultArtifactInstaller.java (original)
+++ maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/installer/DefaultArtifactInstaller.java Sat Sep  3 07:38:13 2005
@@ -72,7 +72,7 @@
                 ArtifactMetadata metadata = (ArtifactMetadata) i.next();
 
                 // TODO: method should be on repository?
-                metadata.storeInLocalRepository( localRepository );
+                metadata.storeInLocalRepository( localRepository, localRepository );
             }
         }
         catch ( IOException e )

Modified: maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java?rev=267466&r1=267465&r2=267466&view=diff
==============================================================================
--- maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java (original)
+++ maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java Sat Sep  3 07:38:13 2005
@@ -95,7 +95,7 @@
         throws TransferFailedException
     {
         getLogger().info( "Uploading " + artifactMetadata );
-        putRemoteFile( repository, source, repository.pathOfArtifactMetadata( artifactMetadata ), null );
+        putRemoteFile( repository, source, repository.pathOfRemoteRepositoryMetadata( artifactMetadata ), null );
     }
 
     private void putRemoteFile( ArtifactRepository repository, File source, String remotePath,
@@ -248,7 +248,7 @@
                                      String checksumPolicy )
         throws TransferFailedException, ResourceDoesNotExistException
     {
-        String remotePath = repository.pathOfArtifactMetadata( metadata );
+        String remotePath = repository.pathOfRemoteRepositoryMetadata( metadata );
 
         getLogger().info( "Retrieving " + metadata );
         getRemoteFile( repository, destination, remotePath, null, checksumPolicy );

Modified: maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/metadata/AbstractVersionArtifactMetadata.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/metadata/AbstractVersionArtifactMetadata.java?rev=267466&r1=267465&r2=267466&view=diff
==============================================================================
--- maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/metadata/AbstractVersionArtifactMetadata.java (original)
+++ maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/metadata/AbstractVersionArtifactMetadata.java Sat Sep  3 07:38:13 2005
@@ -41,14 +41,15 @@
 
     protected long lastModified;
 
-    public AbstractVersionArtifactMetadata( Artifact artifact, String filename )
+    public AbstractVersionArtifactMetadata( Artifact artifact )
     {
-        super( artifact, filename );
+        super( artifact );
     }
 
-    protected File getLocalRepositoryLocation( ArtifactRepository localRepository )
+    protected File getLocalRepositoryLocation( ArtifactRepository localRepository, ArtifactRepository remoteRepository )
     {
-        return new File( localRepository.getBasedir(), localRepository.pathOfArtifactMetadata( this ) );
+        return new File( localRepository.getBasedir(),
+                         localRepository.pathOfLocalRepositoryMetadata( this, remoteRepository ) );
     }
 
     private void readFromFile( File file )
@@ -70,10 +71,10 @@
         return new Date( lastModified );
     }
 
-    public void readFromLocalRepository( ArtifactRepository localRepository )
+    public void readFromLocalRepository( ArtifactRepository localRepository, ArtifactRepository remoteRepository )
         throws IOException
     {
-        File f = getLocalRepositoryLocation( localRepository );
+        File f = getLocalRepositoryLocation( localRepository, remoteRepository );
         if ( f.exists() )
         {
             readFromFile( f );
@@ -104,7 +105,7 @@
         }
     }
 
-    public void storeInLocalRepository( ArtifactRepository localRepository )
+    public void storeInLocalRepository( ArtifactRepository localRepository, ArtifactRepository remoteRepository )
         throws ArtifactMetadataRetrievalException
     {
         String version = constructVersion();
@@ -112,7 +113,7 @@
         {
             try
             {
-                String path = getLocalRepositoryLocation( localRepository ).getPath();
+                String path = getLocalRepositoryLocation( localRepository, remoteRepository ).getPath();
                 File file = new File( path );
                 // TODO: this should be centralised before the resolution of the artifact
                 file.getParentFile().mkdirs();

Modified: maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/metadata/LatestArtifactMetadata.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/metadata/LatestArtifactMetadata.java?rev=267466&r1=267465&r2=267466&view=diff
==============================================================================
--- maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/metadata/LatestArtifactMetadata.java (original)
+++ maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/metadata/LatestArtifactMetadata.java Sat Sep  3 07:38:13 2005
@@ -17,6 +17,7 @@
  */
 
 import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.repository.ArtifactRepository;
 
 import java.io.File;
 
@@ -27,7 +28,22 @@
 
     public LatestArtifactMetadata( Artifact artifact )
     {
-        super( artifact, artifact.getArtifactId() + "-" + Artifact.LATEST_VERSION + "." + SNAPSHOT_VERSION_FILE );
+        super( artifact );
+    }
+
+    public String getRemoteFilename()
+    {
+        return getFilename();
+    }
+
+    public String getLocalFilename( ArtifactRepository repository )
+    {
+        return getFilename();
+    }
+
+    private String getFilename()
+    {
+        return artifact.getArtifactId() + "-" + Artifact.LATEST_VERSION + "." + SNAPSHOT_VERSION_FILE;
     }
 
     public String constructVersion()

Modified: maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/metadata/ReleaseArtifactMetadata.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/metadata/ReleaseArtifactMetadata.java?rev=267466&r1=267465&r2=267466&view=diff
==============================================================================
--- maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/metadata/ReleaseArtifactMetadata.java (original)
+++ maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/metadata/ReleaseArtifactMetadata.java Sat Sep  3 07:38:13 2005
@@ -17,6 +17,7 @@
  */
 
 import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.artifact.transform.ReleaseArtifactTransformation;
 
 import java.io.File;
@@ -35,7 +36,22 @@
 
     public ReleaseArtifactMetadata( Artifact artifact )
     {
-        super( artifact, artifact.getArtifactId() + "-RELEASE." + SNAPSHOT_VERSION_FILE );
+        super( artifact );
+    }
+
+    public String getRemoteFilename()
+    {
+        return getFilename();
+    }
+
+    public String getLocalFilename( ArtifactRepository repository )
+    {
+        return getFilename();
+    }
+
+    private String getFilename()
+    {
+        return artifact.getArtifactId() + "-RELEASE." + SNAPSHOT_VERSION_FILE;
     }
 
     public String constructVersion()

Modified: maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/metadata/SnapshotArtifactMetadata.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/metadata/SnapshotArtifactMetadata.java?rev=267466&r1=267465&r2=267466&view=diff
==============================================================================
--- maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/metadata/SnapshotArtifactMetadata.java (original)
+++ maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/metadata/SnapshotArtifactMetadata.java Sat Sep  3 07:38:13 2005
@@ -17,6 +17,7 @@
  */
 
 import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.codehaus.plexus.util.StringUtils;
 
 import java.io.File;
@@ -45,7 +46,22 @@
 
     public SnapshotArtifactMetadata( Artifact artifact )
     {
-        super( artifact, artifact.getArtifactId() + "-" + artifact.getBaseVersion() + "." + SNAPSHOT_VERSION_FILE );
+        super( artifact );
+    }
+
+    public String getRemoteFilename()
+    {
+        return getFilename();
+    }
+
+    public String getLocalFilename( ArtifactRepository repository )
+    {
+        return getFilename();
+    }
+
+    private String getFilename()
+    {
+        return artifact.getArtifactId() + "-" + artifact.getBaseVersion() + "." + SNAPSHOT_VERSION_FILE;
     }
 
     public String constructVersion()

Modified: maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/repository/DefaultArtifactRepository.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/repository/DefaultArtifactRepository.java?rev=267466&r1=267465&r2=267466&view=diff
==============================================================================
--- maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/repository/DefaultArtifactRepository.java (original)
+++ maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/repository/DefaultArtifactRepository.java Sat Sep  3 07:38:13 2005
@@ -76,9 +76,14 @@
         return layout.pathOf( artifact );
     }
 
-    public String pathOfArtifactMetadata( ArtifactMetadata artifactMetadata )
+    public String pathOfRemoteRepositoryMetadata( ArtifactMetadata artifactMetadata )
     {
-        return layout.pathOfArtifactMetadata( artifactMetadata );
+        return layout.pathOfRemoteRepositoryMetadata( artifactMetadata );
+    }
+
+    public String pathOfLocalRepositoryMetadata( ArtifactMetadata metadata, ArtifactRepository repository )
+    {
+        return layout.pathOfLocalRepositoryMetadata( metadata, repository );
     }
 
     public ArtifactRepositoryLayout getLayout()
@@ -94,5 +99,10 @@
     public ArtifactRepositoryPolicy getReleases()
     {
         return releases;
+    }
+
+    public String getKey()
+    {
+        return getId();
     }
 }

Modified: maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/repository/metadata/DefaultRepositoryMetadataManager.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/repository/metadata/DefaultRepositoryMetadataManager.java?rev=267466&r1=267465&r2=267466&view=diff
==============================================================================
--- maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/repository/metadata/DefaultRepositoryMetadataManager.java (original)
+++ maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/repository/metadata/DefaultRepositoryMetadataManager.java Sat Sep  3 07:38:13 2005
@@ -50,9 +50,6 @@
         boolean alreadyResolved = alreadyResolved( metadata );
         if ( !alreadyResolved )
         {
-            File file = new File( localRepository.getBasedir(), localRepository.pathOfArtifactMetadata( metadata ) );
-
-            boolean checkedUpdates = false;
             for ( Iterator i = remoteRepositories.iterator(); i.hasNext(); )
             {
                 ArtifactRepository repository = (ArtifactRepository) i.next();
@@ -66,41 +63,41 @@
                 }
                 else
                 {
+                    File file = new File( localRepository.getBasedir(),
+                                          localRepository.pathOfLocalRepositoryMetadata( metadata, repository ) );
+
                     // TODO: should be able to calculate this less often
                     boolean checkForUpdates = policy.checkOutOfDate( new Date( file.lastModified() ) );
 
                     if ( checkForUpdates )
                     {
-                        checkedUpdates = true;
 
                         getLogger().info( metadata.getKey() + ": checking for updates from " + repository.getId() );
 
                         try
                         {
                             wagonManager.getArtifactMetadata( metadata, repository, file, policy.getChecksumPolicy() );
+
                             // TODO: ???
 //                            metadata.setRepository( repository );
+
+                            // touch file so that this is not checked again until interval has passed
+                            if ( file.exists() )
+                            {
+                                file.setLastModified( System.currentTimeMillis() );
+                            }
                         }
                         catch ( ResourceDoesNotExistException e )
                         {
                             getLogger().info( "Repository metadata " + metadata +
-                                " could not be found on repository: " + repository.getId(), e );
+                                " could not be found on repository: " + repository.getId() );
+                            getLogger().debug( "Cause", e );
                         }
                         catch ( TransferFailedException e )
                         {
                             throw new ArtifactMetadataRetrievalException( "Unable to retrieve metadata", e );
                         }
                     }
-                }
-            }
-
-            // touch the file if it was checked for updates, but don't create it if it doesn't exist to avoid
-            // storing SNAPSHOT as the actual version which doesn't exist remotely.
-            if ( checkedUpdates )
-            {
-                if ( file.exists() )
-                {
-                    file.setLastModified( System.currentTimeMillis() );
                 }
             }
 

Modified: maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/repository/metadata/GroupRepositoryMetadata.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/repository/metadata/GroupRepositoryMetadata.java?rev=267466&r1=267465&r2=267466&view=diff
==============================================================================
--- maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/repository/metadata/GroupRepositoryMetadata.java (original)
+++ maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/repository/metadata/GroupRepositoryMetadata.java Sat Sep  3 07:38:13 2005
@@ -44,11 +44,6 @@
 public class GroupRepositoryMetadata
     implements ArtifactMetadata
 {
-    /**
-     * TODO: reuse.
-     */
-    protected static final String METADATA_FILE = "maven-metadata.xml";
-
     private final String groupId;
 
     private Map pluginMappings = new HashMap();
@@ -63,14 +58,14 @@
         return "repository metadata for group: \'" + groupId + "\'";
     }
 
-    public void storeInLocalRepository( ArtifactRepository localRepository )
+    public void storeInLocalRepository( ArtifactRepository localRepository, ArtifactRepository remoteRepository )
         throws ArtifactMetadataRetrievalException
     {
         if ( !pluginMappings.isEmpty() )
         {
             try
             {
-                updateRepositoryMetadata( localRepository );
+                updateRepositoryMetadata( localRepository, remoteRepository );
             }
             catch ( IOException e )
             {
@@ -79,9 +74,14 @@
         }
     }
 
-    public String getFilename()
+    public String getRemoteFilename()
+    {
+        return "maven-metadata.xml";
+    }
+
+    public String getLocalFilename( ArtifactRepository repository )
     {
-        return METADATA_FILE;
+        return "maven-metadata-" + repository.getKey() + ".xml";
     }
 
     public boolean storedInGroupDirectory()
@@ -114,14 +114,15 @@
         pluginMappings.put( goalPrefix, artifactId );
     }
 
-    private void updateRepositoryMetadata( ArtifactRepository localRepository )
+    private void updateRepositoryMetadata( ArtifactRepository localRepository, ArtifactRepository remoteRepository )
         throws IOException
     {
         MetadataXpp3Reader mappingReader = new MetadataXpp3Reader();
 
         Metadata pluginMap = null;
 
-        File metadataFile = new File( localRepository.getBasedir(), localRepository.pathOfArtifactMetadata( this ) );
+        File metadataFile = new File( localRepository.getBasedir(),
+                                      localRepository.pathOfLocalRepositoryMetadata( this, remoteRepository ) );
 
         if ( metadataFile.exists() )
         {

Modified: maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java?rev=267466&r1=267465&r2=267466&view=diff
==============================================================================
--- maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java (original)
+++ maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java Sat Sep  3 07:38:13 2005
@@ -19,7 +19,6 @@
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.factory.ArtifactFactory;
 import org.apache.maven.artifact.manager.WagonManager;
-import org.apache.maven.artifact.metadata.ArtifactMetadata;
 import org.apache.maven.artifact.metadata.ArtifactMetadataRetrievalException;
 import org.apache.maven.artifact.metadata.ArtifactMetadataSource;
 import org.apache.maven.artifact.repository.ArtifactRepository;
@@ -133,22 +132,20 @@
                                 artifact, remoteRepositories );
                         }
 
+/* TODO: pretty sure this can be removed. No metadata on resolved artifacts
                         // must be after the artifact is downloaded
                         for ( Iterator i = artifact.getMetadataList().iterator(); i.hasNext(); )
                         {
                             ArtifactMetadata metadata = (ArtifactMetadata) i.next();
                             metadata.storeInLocalRepository( localRepository );
                         }
+*/
                     }
                     catch ( ResourceDoesNotExistException e )
                     {
                         throw new ArtifactResolutionException( e.getMessage(), artifact, remoteRepositories, e );
                     }
                     catch ( TransferFailedException e )
-                    {
-                        throw new ArtifactResolutionException( e.getMessage(), artifact, remoteRepositories, e );
-                    }
-                    catch ( ArtifactMetadataRetrievalException e )
                     {
                         throw new ArtifactResolutionException( e.getMessage(), artifact, remoteRepositories, e );
                     }

Modified: maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/transform/AbstractVersionTransformation.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/transform/AbstractVersionTransformation.java?rev=267466&r1=267465&r2=267466&view=diff
==============================================================================
--- maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/transform/AbstractVersionTransformation.java (original)
+++ maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/transform/AbstractVersionTransformation.java Sat Sep  3 07:38:13 2005
@@ -167,7 +167,8 @@
             // storing SNAPSHOT as the actual version which doesn't exist remotely.
             if ( checkedUpdates && localMetadata.getLastModified().getTime() > 0 )
             {
-                localMetadata.storeInLocalRepository( localRepository );
+                localMetadata.storeInLocalRepository( localRepository,
+                                                      null ); // TODO: fix artifact repository - but this will be removed anyway
             }
 
             resolvedArtifactCache.add( getCacheKey( artifact ) );
@@ -206,7 +207,8 @@
     {
         // TODO: we could cache the results of this, perhaps inside the artifact repository?
         AbstractVersionArtifactMetadata metadata = createMetadata( artifact );
-        metadata.readFromLocalRepository( localRepository );
+        metadata.readFromLocalRepository( localRepository,
+                                          null ); // TODO: fix artifact repository - but this will be removed anyway
         return metadata;
     }
 

Modified: maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/metadata/AbstractArtifactMetadata.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/metadata/AbstractArtifactMetadata.java?rev=267466&r1=267465&r2=267466&view=diff
==============================================================================
--- maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/metadata/AbstractArtifactMetadata.java (original)
+++ maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/metadata/AbstractArtifactMetadata.java Sat Sep  3 07:38:13 2005
@@ -17,6 +17,7 @@
  */
 
 import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.repository.ArtifactRepository;
 
 /**
  * Common elements of artifact metadata.
@@ -27,19 +28,13 @@
 public abstract class AbstractArtifactMetadata
     implements ArtifactMetadata
 {
-    protected final String filename;
-
     protected Artifact artifact;
 
-    protected AbstractArtifactMetadata( Artifact artifact, String filename )
-    {
-        this.artifact = artifact;
-        this.filename = filename;
-    }
+    protected ArtifactRepository repository;
 
-    public String getFilename()
+    protected AbstractArtifactMetadata( Artifact artifact )
     {
-        return filename;
+        this.artifact = artifact;
     }
 
     public boolean storedInGroupDirectory()
@@ -65,5 +60,10 @@
     public Object getKey()
     {
         return artifact.getGroupId() + ":" + artifact.getArtifactId();
+    }
+
+    public void setRepository( ArtifactRepository repository )
+    {
+        this.repository = repository;
     }
 }

Modified: maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/metadata/ArtifactMetadata.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/metadata/ArtifactMetadata.java?rev=267466&r1=267465&r2=267466&view=diff
==============================================================================
--- maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/metadata/ArtifactMetadata.java (original)
+++ maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/metadata/ArtifactMetadata.java Sat Sep  3 07:38:13 2005
@@ -33,18 +33,12 @@
      * Store the metadata in the local repository.
      *
      * @param localRepository the local repository
+     * @param remoteRepository the remote repository it came from
      */
-    void storeInLocalRepository( ArtifactRepository localRepository )
+    void storeInLocalRepository( ArtifactRepository localRepository, ArtifactRepository remoteRepository )
         throws ArtifactMetadataRetrievalException;
 
     /**
-     * Get the filename of this metadata.
-     *
-     * @return the filename
-     */
-    String getFilename();
-
-    /**
      * Whether this metadata should be stored alongside the artifact.
      */
     boolean storedInArtifactVersionDirectory();
@@ -63,7 +57,22 @@
     Object getKey();
 
     /**
-     * @Todo delete?
+     * @todo delete?
      */
     boolean isSnapshot();
+
+    /**
+     * Get the filename of this metadata on the local repository.
+     *
+     * @param repository the remote repository it came from
+     * @return the filename
+     */
+    String getLocalFilename( ArtifactRepository repository );
+
+    /**
+     * Get the filename of this metadata on the remote repository.
+     *
+     * @return the filename
+     */
+    String getRemoteFilename();
 }

Modified: maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/repository/ArtifactRepository.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/repository/ArtifactRepository.java?rev=267466&r1=267465&r2=267466&view=diff
==============================================================================
--- maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/repository/ArtifactRepository.java (original)
+++ maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/repository/ArtifactRepository.java Sat Sep  3 07:38:13 2005
@@ -30,7 +30,9 @@
 {
     String pathOf( Artifact artifact );
 
-    String pathOfArtifactMetadata( ArtifactMetadata artifactMetadata );
+    String pathOfRemoteRepositoryMetadata( ArtifactMetadata artifactMetadata );
+
+    String pathOfLocalRepositoryMetadata( ArtifactMetadata metadata, ArtifactRepository repository );
 
     String getUrl();
 
@@ -45,4 +47,6 @@
     ArtifactRepositoryPolicy getReleases();
 
     ArtifactRepositoryLayout getLayout();
+
+    String getKey();
 }

Modified: maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/repository/layout/ArtifactRepositoryLayout.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/repository/layout/ArtifactRepositoryLayout.java?rev=267466&r1=267465&r2=267466&view=diff
==============================================================================
--- maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/repository/layout/ArtifactRepositoryLayout.java (original)
+++ maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/repository/layout/ArtifactRepositoryLayout.java Sat Sep  3 07:38:13 2005
@@ -18,17 +18,18 @@
 
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.metadata.ArtifactMetadata;
+import org.apache.maven.artifact.repository.ArtifactRepository;
 
 /**
  * @author jdcasey
  */
 public interface ArtifactRepositoryLayout
 {
-
     String ROLE = ArtifactRepositoryLayout.class.getName();
 
     String pathOf( Artifact artifact );
 
-    String pathOfArtifactMetadata( ArtifactMetadata metadata );
+    String pathOfLocalRepositoryMetadata( ArtifactMetadata metadata, ArtifactRepository repository );
 
+    String pathOfRemoteRepositoryMetadata( ArtifactMetadata metadata );
 }

Modified: maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/repository/layout/DefaultRepositoryLayout.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/repository/layout/DefaultRepositoryLayout.java?rev=267466&r1=267465&r2=267466&view=diff
==============================================================================
--- maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/repository/layout/DefaultRepositoryLayout.java (original)
+++ maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/repository/layout/DefaultRepositoryLayout.java Sat Sep  3 07:38:13 2005
@@ -19,6 +19,7 @@
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.handler.ArtifactHandler;
 import org.apache.maven.artifact.metadata.ArtifactMetadata;
+import org.apache.maven.artifact.repository.ArtifactRepository;
 
 /**
  * @author jdcasey
@@ -56,7 +57,12 @@
         return path.toString();
     }
 
-    public String pathOfArtifactMetadata( ArtifactMetadata metadata )
+    public String pathOfLocalRepositoryMetadata( ArtifactMetadata metadata, ArtifactRepository repository )
+    {
+        return pathOfRepositoryMetadata( metadata, metadata.getLocalFilename( repository ) );
+    }
+
+    private String pathOfRepositoryMetadata( ArtifactMetadata metadata, String filename )
     {
         StringBuffer path = new StringBuffer();
 
@@ -71,9 +77,14 @@
             }
         }
 
-        path.append( metadata.getFilename() );
+        path.append( filename );
 
         return path.toString();
+    }
+
+    public String pathOfRemoteRepositoryMetadata( ArtifactMetadata metadata )
+    {
+        return pathOfRepositoryMetadata( metadata, metadata.getRemoteFilename() );
     }
 
     private String formatAsDirectory( String directory )

Modified: maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/repository/layout/LegacyRepositoryLayout.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/repository/layout/LegacyRepositoryLayout.java?rev=267466&r1=267465&r2=267466&view=diff
==============================================================================
--- maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/repository/layout/LegacyRepositoryLayout.java (original)
+++ maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/repository/layout/LegacyRepositoryLayout.java Sat Sep  3 07:38:13 2005
@@ -19,6 +19,7 @@
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.handler.ArtifactHandler;
 import org.apache.maven.artifact.metadata.ArtifactMetadata;
+import org.apache.maven.artifact.repository.ArtifactRepository;
 
 /**
  * @author jdcasey
@@ -26,6 +27,8 @@
 public class LegacyRepositoryLayout
     implements ArtifactRepositoryLayout
 {
+    private static final String PATH_SEPARATOR = "/";
+
     public String pathOf( Artifact artifact )
     {
         ArtifactHandler artifactHandler = artifact.getArtifactHandler();
@@ -49,14 +52,25 @@
         return path.toString();
     }
 
-    public String pathOfArtifactMetadata( ArtifactMetadata metadata )
+    public String pathOfLocalRepositoryMetadata( ArtifactMetadata metadata, ArtifactRepository repository )
+    {
+        return pathOfRepositoryMetadata( metadata, metadata.getLocalFilename( repository ) );
+    }
+
+    private String pathOfRepositoryMetadata( ArtifactMetadata metadata, String filename )
     {
         StringBuffer path = new StringBuffer();
 
-        path.append( metadata.getGroupId() ).append( "/poms/" );
-        path.append( metadata.getFilename() );
+        path.append( metadata.getGroupId() ).append( PATH_SEPARATOR ).append( "poms" ).append( PATH_SEPARATOR );
+
+        path.append( filename );
 
         return path.toString();
+    }
+
+    public String pathOfRemoteRepositoryMetadata( ArtifactMetadata metadata )
+    {
+        return pathOfRepositoryMetadata( metadata, metadata.getRemoteFilename() );
     }
 
 }

Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginMappingManager.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginMappingManager.java?rev=267466&r1=267465&r2=267466&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginMappingManager.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginMappingManager.java Sat Sep  3 07:38:13 2005
@@ -98,11 +98,24 @@
     {
         GroupRepositoryMetadata metadata = new GroupRepositoryMetadata( groupId );
 
-        // TODO: aggregate the results of this instead
         repositoryMetadataManager.resolve( metadata, pluginRepositories, localRepository );
 
+        // TODO: can this go directly into the manager?
+        for ( Iterator i = pluginRepositories.iterator(); i.hasNext(); )
+        {
+            ArtifactRepository repository = (ArtifactRepository) i.next();
+
+            loadRepositoryPluginMappings( metadata, repository, localRepository );
+        }
+        loadRepositoryPluginMappings( metadata, localRepository, localRepository );
+    }
+
+    private void loadRepositoryPluginMappings( GroupRepositoryMetadata metadata, ArtifactRepository remoteRepository,
+                                               ArtifactRepository localRepository )
+        throws ArtifactMetadataRetrievalException
+    {
         File metadataFile = new File( localRepository.getBasedir(),
-                                      localRepository.pathOfArtifactMetadata( metadata ) );
+                                      localRepository.pathOfLocalRepositoryMetadata( metadata, remoteRepository ) );
 
         if ( metadataFile.exists() )
         {
@@ -120,7 +133,7 @@
 
                     org.apache.maven.model.Plugin plugin = new org.apache.maven.model.Plugin();
 
-                    plugin.setGroupId( groupId );
+                    plugin.setGroupId( metadata.getGroupId() );
 
                     plugin.setArtifactId( artifactId );
 

Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/artifact/ProjectArtifactMetadata.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/artifact/ProjectArtifactMetadata.java?rev=267466&r1=267465&r2=267466&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/artifact/ProjectArtifactMetadata.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/artifact/ProjectArtifactMetadata.java Sat Sep  3 07:38:13 2005
@@ -48,19 +48,30 @@
 
     public ProjectArtifactMetadata( Artifact artifact, File file )
     {
-        super( artifact, null );
+        super( artifact );
         this.file = file;
     }
 
-    public String getFilename()
+    public String getRemoteFilename()
+    {
+        return getFilename();
+    }
+
+    public String getLocalFilename( ArtifactRepository repository )
+    {
+        return getFilename();
+    }
+
+    private String getFilename()
     {
         return getArtifactId() + "-" + artifact.getVersion() + ".pom";
     }
 
-    public void storeInLocalRepository( ArtifactRepository localRepository )
+    public void storeInLocalRepository( ArtifactRepository localRepository, ArtifactRepository remoteRepository )
         throws ArtifactMetadataRetrievalException
     {
-        File destination = new File( localRepository.getBasedir(), localRepository.pathOfArtifactMetadata( this ) );
+        File destination = new File( localRepository.getBasedir(),
+                                     localRepository.pathOfLocalRepositoryMetadata( this, remoteRepository ) );
 
         destination.getParentFile().mkdirs();
 



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org