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/06 08:59:07 UTC

svn commit: r278930 - in /maven/components/trunk: maven-artifact-manager/src/main/java/org/apache/maven/artifact/metadata/ maven-artifact-manager/src/main/java/org/apache/maven/artifact/repository/metadata/ maven-artifact-manager/src/main/java/org/apac...

Author: brett
Date: Mon Sep  5 23:58:44 2005
New Revision: 278930

URL: http://svn.apache.org/viewcvs?rev=278930&view=rev
Log:
PR: MNG-613
deploy snapshot information to the correct directory and fix some other minor issues

Added:
    maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/repository/metadata/SnapshotArtifactRepositoryMetadata.java   (with props)
Modified:
    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/metadata/ArtifactRepositoryMetadata.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/transform/AbstractVersionTransformation.java
    maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/transform/LatestArtifactTransformation.java
    maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/transform/ReleaseArtifactTransformation.java
    maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/transform/SnapshotTransformation.java
    maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/metadata/ArtifactMetadata.java
    maven/components/trunk/maven-plugins/maven-deploy-plugin/src/main/java/org/apache/maven/plugin/deploy/DeployMojo.java
    maven/components/trunk/maven-plugins/maven-install-plugin/src/main/java/org/apache/maven/plugin/install/InstallMojo.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/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=278930&r1=278929&r2=278930&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 Mon Sep  5 23:58:44 2005
@@ -115,4 +115,24 @@
     {
         return false;
     }
+
+    public int getBuildNumber()
+    {
+        return 0;
+    }
+
+    public String getTimestamp()
+    {
+        return null;
+    }
+
+    public String getLatestVersion()
+    {
+        return null;
+    }
+
+    public String getReleaseVersion()
+    {
+        return null;
+    }
 }

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=278930&r1=278929&r2=278930&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 Mon Sep  5 23:58:44 2005
@@ -122,4 +122,24 @@
     {
         return false;
     }
+
+    public int getBuildNumber()
+    {
+        return 0;
+    }
+
+    public String getTimestamp()
+    {
+        return null;
+    }
+
+    public String getLatestVersion()
+    {
+        return null;
+    }
+
+    public String getReleaseVersion()
+    {
+        return null;
+    }
 }

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=278930&r1=278929&r2=278930&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 Mon Sep  5 23:58:44 2005
@@ -179,4 +179,14 @@
     {
         return artifact.getBaseVersion();
     }
+
+    public String getLatestVersion()
+    {
+        return null;
+    }
+
+    public String getReleaseVersion()
+    {
+        return null;
+    }
 }

Modified: maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/repository/metadata/ArtifactRepositoryMetadata.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/repository/metadata/ArtifactRepositoryMetadata.java?rev=278930&r1=278929&r2=278930&view=diff
==============================================================================
--- maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/repository/metadata/ArtifactRepositoryMetadata.java (original)
+++ maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/repository/metadata/ArtifactRepositoryMetadata.java Mon Sep  5 23:58:44 2005
@@ -59,7 +59,7 @@
 
     public String toString()
     {
-        return "repository metadata for artifact: \'" + artifact + "\'";
+        return "repository metadata for: \'" + getKey() + "\'";
     }
 
     public boolean storedInGroupDirectory()
@@ -84,7 +84,7 @@
 
     public String getBaseVersion()
     {
-        return artifact.getBaseVersion();
+        return null;
     }
 
     protected void updateRepositoryMetadata( ArtifactRepository localRepository, ArtifactRepository remoteRepository )
@@ -142,27 +142,6 @@
             Versioning v = metadata.getVersioning();
             if ( v != null )
             {
-                // TODO: merge versioning (reuse code from transformation)
-                Snapshot s = v.getSnapshot();
-                Snapshot snapshot = versioning.getSnapshot();
-                if ( snapshot != null )
-                {
-                    if ( s == null )
-                    {
-                        v.setSnapshot( snapshot );
-                        changed = true;
-                    }
-                    else if ( s.getTimestamp() != null && !s.getTimestamp().equals( snapshot.getTimestamp() ) )
-                    {
-                        s.setTimestamp( snapshot.getTimestamp() );
-                        changed = true;
-                    }
-                    else if ( s.getBuildNumber() != snapshot.getBuildNumber() )
-                    {
-                        s.setBuildNumber( snapshot.getBuildNumber() );
-                        changed = true;
-                    }
-                }
                 if ( versioning.getRelease() != null )
                 {
                     changed = true;
@@ -225,7 +204,7 @@
 
     public Snapshot getSnapshot()
     {
-        return versioning != null ? versioning.getSnapshot() : null;
+        return null;
     }
 
     public String getLatestVersion()
@@ -236,5 +215,15 @@
     public String getReleaseVersion()
     {
         return versioning.getRelease();
+    }
+
+    public int getBuildNumber()
+    {
+        return 0;
+    }
+
+    public String getTimestamp()
+    {
+        return null;
     }
 }

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=278930&r1=278929&r2=278930&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 Mon Sep  5 23:58:44 2005
@@ -98,7 +98,7 @@
         File file = new File( localRepository.getBasedir(),
                               localRepository.pathOfLocalRepositoryMetadata( metadata, remoteRepository ) );
 
-        resolveAlways( metadata, localRepository, file, ArtifactRepositoryPolicy.CHECKSUM_POLICY_WARN );
+        resolveAlways( metadata, remoteRepository, file, ArtifactRepositoryPolicy.CHECKSUM_POLICY_WARN );
     }
 
     private void resolveAlways( ArtifactMetadata metadata, ArtifactRepository repository, File file,

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=278930&r1=278929&r2=278930&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 Mon Sep  5 23:58:44 2005
@@ -199,4 +199,24 @@
     {
         return false;
     }
+
+    public int getBuildNumber()
+    {
+        return 0;
+    }
+
+    public String getTimestamp()
+    {
+        return null;
+    }
+
+    public String getLatestVersion()
+    {
+        return null;
+    }
+
+    public String getReleaseVersion()
+    {
+        return null;
+    }
 }

Added: maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/repository/metadata/SnapshotArtifactRepositoryMetadata.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/repository/metadata/SnapshotArtifactRepositoryMetadata.java?rev=278930&view=auto
==============================================================================
--- maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/repository/metadata/SnapshotArtifactRepositoryMetadata.java (added)
+++ maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/repository/metadata/SnapshotArtifactRepositoryMetadata.java Mon Sep  5 23:58:44 2005
@@ -0,0 +1,218 @@
+package org.apache.maven.artifact.repository.metadata;
+
+/*
+ * Copyright 2001-2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.artifact.repository.metadata.io.xpp3.MetadataXpp3Reader;
+import org.apache.maven.artifact.repository.metadata.io.xpp3.MetadataXpp3Writer;
+import org.codehaus.plexus.util.IOUtil;
+import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileReader;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.Reader;
+import java.io.Writer;
+
+/**
+ * Metadata for the artifact version directory of the repository.
+ *
+ * @author <a href="mailto:brett@apache.org">Brett Porter</a>
+ * @version $Id$
+ * @todo split instantiation (versioning, plugin mappings) from definition
+ */
+public class SnapshotArtifactRepositoryMetadata
+    extends AbstractRepositoryMetadata
+{
+    private Snapshot snapshot;
+
+    private Artifact artifact;
+
+    public SnapshotArtifactRepositoryMetadata( Artifact artifact )
+    {
+        this.artifact = artifact;
+    }
+
+    public SnapshotArtifactRepositoryMetadata( Artifact artifact, Snapshot snapshot )
+    {
+        this.snapshot = snapshot;
+        this.artifact = artifact;
+    }
+
+    public String toString()
+    {
+        return "repository metadata for: \'" + getKey() + "\'";
+    }
+
+    public boolean storedInGroupDirectory()
+    {
+        return false;
+    }
+
+    public boolean storedInArtifactVersionDirectory()
+    {
+        return true;
+    }
+
+    public String getGroupId()
+    {
+        return artifact.getGroupId();
+    }
+
+    public String getArtifactId()
+    {
+        return artifact.getArtifactId();
+    }
+
+    public String getBaseVersion()
+    {
+        return artifact.getBaseVersion();
+    }
+
+    protected void updateRepositoryMetadata( ArtifactRepository localRepository, ArtifactRepository remoteRepository )
+        throws IOException
+    {
+        MetadataXpp3Reader mappingReader = new MetadataXpp3Reader();
+
+        Metadata metadata = null;
+
+        File metadataFile = new File( localRepository.getBasedir(),
+                                      localRepository.pathOfLocalRepositoryMetadata( this, remoteRepository ) );
+
+        if ( metadataFile.exists() )
+        {
+            Reader reader = null;
+
+            try
+            {
+                reader = new FileReader( metadataFile );
+
+                metadata = mappingReader.read( reader );
+            }
+            catch ( FileNotFoundException e )
+            {
+                // TODO: Log a warning
+            }
+            catch ( IOException e )
+            {
+                // TODO: Log a warning
+            }
+            catch ( XmlPullParserException e )
+            {
+                // TODO: Log a warning
+            }
+            finally
+            {
+                IOUtil.close( reader );
+            }
+        }
+
+        boolean changed = false;
+
+        // If file could not be found or was not valid, start from scratch
+        if ( metadata == null )
+        {
+            metadata = new Metadata();
+
+            metadata.setGroupId( artifact.getGroupId() );
+            metadata.setArtifactId( artifact.getArtifactId() );
+            changed = true;
+        }
+
+        if ( snapshot != null )
+        {
+            Versioning v = metadata.getVersioning();
+            if ( v == null )
+            {
+                v = new Versioning();
+                metadata.setVersioning( v );
+            }
+
+            Snapshot s = v.getSnapshot();
+            if ( s == null )
+            {
+                v.setSnapshot( snapshot );
+                changed = true;
+            }
+            else if ( s.getTimestamp() != null && !s.getTimestamp().equals( snapshot.getTimestamp() ) )
+            {
+                s.setTimestamp( snapshot.getTimestamp() );
+                changed = true;
+            }
+            else if ( s.getBuildNumber() != snapshot.getBuildNumber() )
+            {
+                s.setBuildNumber( snapshot.getBuildNumber() );
+                changed = true;
+            }
+        }
+
+        if ( changed )
+        {
+            Writer writer = null;
+            try
+            {
+                metadataFile.getParentFile().mkdirs();
+                writer = new FileWriter( metadataFile );
+
+                MetadataXpp3Writer mappingWriter = new MetadataXpp3Writer();
+
+                mappingWriter.write( writer, metadata );
+            }
+            finally
+            {
+                IOUtil.close( writer );
+            }
+        }
+        else
+        {
+            metadataFile.setLastModified( System.currentTimeMillis() );
+        }
+    }
+
+    public Object getKey()
+    {
+        return artifact.getGroupId() + ":" + artifact.getArtifactId() + ":" + artifact.getBaseVersion();
+    }
+
+    public boolean isSnapshot()
+    {
+        return artifact.isSnapshot();
+    }
+
+    public int getBuildNumber()
+    {
+        return snapshot != null ? snapshot.getBuildNumber() : 0;
+    }
+
+    public String getTimestamp()
+    {
+        return snapshot != null ? snapshot.getTimestamp() : null;
+    }
+
+    public String getLatestVersion()
+    {
+        return null;
+    }
+
+    public String getReleaseVersion()
+    {
+        return null;
+    }
+}

Propchange: maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/repository/metadata/SnapshotArtifactRepositoryMetadata.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/repository/metadata/SnapshotArtifactRepositoryMetadata.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

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=278930&r1=278929&r2=278930&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 Mon Sep  5 23:58:44 2005
@@ -27,7 +27,7 @@
 import org.apache.maven.artifact.repository.metadata.ArtifactRepositoryMetadata;
 import org.apache.maven.artifact.repository.metadata.Metadata;
 import org.apache.maven.artifact.repository.metadata.RepositoryMetadataManager;
-import org.apache.maven.artifact.repository.metadata.Snapshot;
+import org.apache.maven.artifact.repository.metadata.SnapshotArtifactRepositoryMetadata;
 import org.apache.maven.artifact.repository.metadata.io.xpp3.MetadataXpp3Reader;
 import org.apache.maven.wagon.ResourceDoesNotExistException;
 import org.codehaus.plexus.logging.AbstractLogEnabled;
@@ -68,7 +68,15 @@
         throws ArtifactMetadataRetrievalException
     {
         // TODO: can we improve on this?
-        ArtifactMetadata metadata = new ArtifactRepositoryMetadata( artifact );
+        ArtifactMetadata metadata = null;
+        if ( artifact.isSnapshot() )
+        {
+            metadata = new ArtifactRepositoryMetadata( artifact );
+        }
+        else
+        {
+            metadata = new SnapshotArtifactRepositoryMetadata( artifact );
+        }
 
         repositoryMetadataManager.resolve( metadata, remoteRepositories, localRepository );
 
@@ -86,7 +94,7 @@
 
         String version = selectVersion( versioning, artifact.getVersion() );
 */
-        ArtifactRepositoryMetadata localMetadata = null;
+        ArtifactMetadata localMetadata = null;
         for ( Iterator i = remoteRepositories.iterator(); i.hasNext(); )
         {
             ArtifactRepository repository = (ArtifactRepository) i.next();
@@ -99,8 +107,7 @@
                 break;
             }
         }
-        ArtifactRepositoryMetadata m = loadVersioningInformation( metadata, localRepository, localRepository,
-                                                                  artifact );
+        ArtifactMetadata m = loadVersioningInformation( metadata, localRepository, localRepository, artifact );
         if ( m != null )
         {
             localMetadata = m;
@@ -147,22 +154,20 @@
         return version;
     }
 
-    protected Snapshot resolveLatestSnapshotVersion( Artifact artifact, ArtifactRepository localRepository,
-                                                     ArtifactRepository remoteRepository )
+    protected int resolveLatestSnapshotBuildNumber( Artifact artifact, ArtifactRepository localRepository,
+                                                    ArtifactRepository remoteRepository )
         throws ArtifactMetadataRetrievalException
     {
         // TODO: can we improve on this?
-        ArtifactMetadata metadata = new ArtifactRepositoryMetadata( artifact );
+        ArtifactMetadata metadata = new SnapshotArtifactRepositoryMetadata( artifact );
 
+        getLogger().info( "Retrieving previous build number from " + remoteRepository.getId() );
         repositoryMetadataManager.resolveAlways( metadata, localRepository, remoteRepository );
 
-        ArtifactRepositoryMetadata m = loadVersioningInformation( metadata, remoteRepository, localRepository,
-                                                                  artifact );
-        Snapshot snapshot;
+        ArtifactMetadata m = loadVersioningInformation( metadata, remoteRepository, localRepository, artifact );
+        int buildNumber = 0;
         if ( m == null )
         {
-            snapshot = new Snapshot();
-
             try
             {
                 SnapshotArtifactMetadata snapshotMetadata = new SnapshotArtifactMetadata( artifact );
@@ -170,8 +175,7 @@
                                                                ArtifactRepositoryPolicy.CHECKSUM_POLICY_WARN );
                 getLogger().warn( "Using old-style versioning metadata from remote repo for " + artifact );
 
-                snapshot.setTimestamp( snapshotMetadata.getTimestamp() );
-                snapshot.setBuildNumber( snapshotMetadata.getBuildNumber() );
+                buildNumber = snapshotMetadata.getBuildNumber();
             }
             catch ( ResourceDoesNotExistException e1 )
             {
@@ -181,12 +185,12 @@
         }
         else
         {
-            snapshot = m.getSnapshot();
+            buildNumber = m.getBuildNumber();
         }
-        return snapshot;
+        return buildNumber;
     }
 
-    protected abstract String constructVersion( ArtifactRepositoryMetadata metadata );
+    protected abstract String constructVersion( ArtifactMetadata metadata );
 
 /* TODO
     private void mergeVersioning( Versioning dest, Versioning source )
@@ -345,22 +349,32 @@
         return artifact.getGroupId() + ":" + artifact.getArtifactId() + ":" + artifact.getBaseVersion();
     }
 
-    private ArtifactRepositoryMetadata loadVersioningInformation( ArtifactMetadata repoMetadata,
-                                                                  ArtifactRepository remoteRepository,
-                                                                  ArtifactRepository localRepository,
-                                                                  Artifact artifact )
+    private ArtifactMetadata loadVersioningInformation( ArtifactMetadata repoMetadata,
+                                                        ArtifactRepository remoteRepository,
+                                                        ArtifactRepository localRepository, Artifact artifact )
         throws ArtifactMetadataRetrievalException
     {
         File metadataFile = new File( localRepository.getBasedir(),
                                       localRepository.pathOfLocalRepositoryMetadata( repoMetadata, remoteRepository ) );
 
-        ArtifactRepositoryMetadata newMetadata = null;
+        ArtifactMetadata newMetadata = null;
         if ( metadataFile.exists() )
         {
             Metadata metadata = readMetadata( metadataFile );
             if ( metadata.getVersioning() != null )
             {
-                newMetadata = new ArtifactRepositoryMetadata( artifact, metadata.getVersioning() );
+                if ( artifact.isSnapshot() )
+                {
+                    if ( metadata.getVersioning().getSnapshot() != null )
+                    {
+                        newMetadata = new SnapshotArtifactRepositoryMetadata( artifact,
+                                                                              metadata.getVersioning().getSnapshot() );
+                    }
+                }
+                else
+                {
+                    newMetadata = new ArtifactRepositoryMetadata( artifact, metadata.getVersioning() );
+                }
             }
         }
         return newMetadata;

Modified: maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/transform/LatestArtifactTransformation.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/transform/LatestArtifactTransformation.java?rev=278930&r1=278929&r2=278930&view=diff
==============================================================================
--- maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/transform/LatestArtifactTransformation.java (original)
+++ maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/transform/LatestArtifactTransformation.java Mon Sep  5 23:58:44 2005
@@ -22,7 +22,6 @@
 import org.apache.maven.artifact.metadata.LatestArtifactMetadata;
 import org.apache.maven.artifact.metadata.LegacyArtifactMetadata;
 import org.apache.maven.artifact.repository.ArtifactRepository;
-import org.apache.maven.artifact.repository.metadata.ArtifactRepositoryMetadata;
 import org.apache.maven.artifact.repository.metadata.Versioning;
 
 import java.util.List;
@@ -69,7 +68,7 @@
         return metadata;
     }
 
-    protected String constructVersion( ArtifactRepositoryMetadata metadata )
+    protected String constructVersion( ArtifactMetadata metadata )
     {
         return metadata.getLatestVersion();
     }

Modified: maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/transform/ReleaseArtifactTransformation.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/transform/ReleaseArtifactTransformation.java?rev=278930&r1=278929&r2=278930&view=diff
==============================================================================
--- maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/transform/ReleaseArtifactTransformation.java (original)
+++ maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/transform/ReleaseArtifactTransformation.java Mon Sep  5 23:58:44 2005
@@ -17,11 +17,11 @@
  */
 
 import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.metadata.ArtifactMetadata;
 import org.apache.maven.artifact.metadata.ArtifactMetadataRetrievalException;
 import org.apache.maven.artifact.metadata.LegacyArtifactMetadata;
 import org.apache.maven.artifact.metadata.ReleaseArtifactMetadata;
 import org.apache.maven.artifact.repository.ArtifactRepository;
-import org.apache.maven.artifact.repository.metadata.ArtifactRepositoryMetadata;
 
 import java.util.List;
 
@@ -69,7 +69,7 @@
         return new ReleaseArtifactMetadata( artifact );
     }
 
-    protected String constructVersion( ArtifactRepositoryMetadata metadata )
+    protected String constructVersion( ArtifactMetadata metadata )
     {
         return metadata.getReleaseVersion();
     }

Modified: maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/transform/SnapshotTransformation.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/transform/SnapshotTransformation.java?rev=278930&r1=278929&r2=278930&view=diff
==============================================================================
--- maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/transform/SnapshotTransformation.java (original)
+++ maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/transform/SnapshotTransformation.java Mon Sep  5 23:58:44 2005
@@ -22,9 +22,8 @@
 import org.apache.maven.artifact.metadata.LegacyArtifactMetadata;
 import org.apache.maven.artifact.metadata.SnapshotArtifactMetadata;
 import org.apache.maven.artifact.repository.ArtifactRepository;
-import org.apache.maven.artifact.repository.metadata.ArtifactRepositoryMetadata;
 import org.apache.maven.artifact.repository.metadata.Snapshot;
-import org.apache.maven.artifact.repository.metadata.Versioning;
+import org.apache.maven.artifact.repository.metadata.SnapshotArtifactRepositoryMetadata;
 import org.codehaus.plexus.util.StringUtils;
 
 import java.util.Date;
@@ -57,11 +56,7 @@
         if ( artifact.isSnapshot() )
         {
             // TODO: Better way to create this - should have to construct Versioning
-            Versioning versioning = new Versioning();
-            Snapshot snapshot = new Snapshot();
-            versioning.setSnapshot( snapshot );
-
-            ArtifactMetadata metadata = new ArtifactRepositoryMetadata( artifact, versioning );
+            ArtifactMetadata metadata = new SnapshotArtifactRepositoryMetadata( artifact );
 
             // TODO: should merge with other repository metadata sitting on the same level?
             artifact.addMetadata( metadata );
@@ -74,15 +69,14 @@
     {
         if ( artifact.isSnapshot() )
         {
-            Snapshot snapshot = resolveLatestSnapshotVersion( artifact, localRepository, remoteRepository );
-            snapshot.setTimestamp( getDeploymentTimestamp() );
-            snapshot.setBuildNumber( snapshot.getBuildNumber() + 1 );
+            int buildNumber = resolveLatestSnapshotBuildNumber( artifact, localRepository, remoteRepository );
 
             // TODO: Better way to create this - should have to construct Versioning
-            Versioning versioning = new Versioning();
-            versioning.setSnapshot( snapshot );
+            Snapshot snapshot = new Snapshot();
+            snapshot.setTimestamp( getDeploymentTimestamp() );
+            snapshot.setBuildNumber( buildNumber + 1 );
 
-            ArtifactRepositoryMetadata metadata = new ArtifactRepositoryMetadata( artifact, versioning );
+            ArtifactMetadata metadata = new SnapshotArtifactRepositoryMetadata( artifact, snapshot );
 
             artifact.setResolvedVersion( constructVersion( metadata ) );
 
@@ -104,23 +98,19 @@
         return new SnapshotArtifactMetadata( artifact );
     }
 
-    protected String constructVersion( ArtifactRepositoryMetadata metadata )
+    protected String constructVersion( ArtifactMetadata metadata )
     {
         String version = metadata.getBaseVersion();
-        Snapshot snapshot = metadata.getSnapshot();
-        if ( snapshot != null )
+        if ( metadata.getTimestamp() != null && metadata.getBuildNumber() > 0 )
         {
-            if ( snapshot.getTimestamp() != null && snapshot.getBuildNumber() > 0 )
+            String newVersion = metadata.getTimestamp() + "-" + metadata.getBuildNumber();
+            if ( version != null )
+            {
+                version = StringUtils.replace( version, "SNAPSHOT", newVersion );
+            }
+            else
             {
-                String newVersion = snapshot.getTimestamp() + "-" + snapshot.getBuildNumber();
-                if ( version != null )
-                {
-                    version = StringUtils.replace( version, "SNAPSHOT", newVersion );
-                }
-                else
-                {
-                    version = newVersion;
-                }
+                version = newVersion;
             }
         }
         return version;

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=278930&r1=278929&r2=278930&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 Mon Sep  5 23:58:44 2005
@@ -26,6 +26,7 @@
  * @todo merge with artifactmetadatasource
  * @todo retrieval exception not appropriate for store
  * @todo not happy about the store/retrieve methods - they use "this"
+ * @todo separate specific interfaces
  */
 public interface ArtifactMetadata
 {
@@ -72,4 +73,12 @@
      * @return the filename
      */
     String getRemoteFilename();
+
+    int getBuildNumber();
+
+    String getTimestamp();
+
+    String getLatestVersion();
+
+    String getReleaseVersion();
 }

Modified: maven/components/trunk/maven-plugins/maven-deploy-plugin/src/main/java/org/apache/maven/plugin/deploy/DeployMojo.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-deploy-plugin/src/main/java/org/apache/maven/plugin/deploy/DeployMojo.java?rev=278930&r1=278929&r2=278930&view=diff
==============================================================================
--- maven/components/trunk/maven-plugins/maven-deploy-plugin/src/main/java/org/apache/maven/plugin/deploy/DeployMojo.java (original)
+++ maven/components/trunk/maven-plugins/maven-deploy-plugin/src/main/java/org/apache/maven/plugin/deploy/DeployMojo.java Mon Sep  5 23:58:44 2005
@@ -129,14 +129,15 @@
             artifact.addMetadata( metadata );
         }
 
+        // TODO: clean up
+        Versioning versioning = new Versioning();
+        versioning.addVersion( artifact.getVersion() );
         if ( updateReleaseInfo )
         {
-            // TODO: clean up
-            Versioning versioning = new Versioning();
             versioning.setRelease( artifact.getVersion() );
-            ArtifactRepositoryMetadata metadata = new ArtifactRepositoryMetadata( artifact, versioning );
-            artifact.addMetadata( metadata );
         }
+        ArtifactRepositoryMetadata metadata = new ArtifactRepositoryMetadata( artifact, versioning );
+        artifact.addMetadata( metadata );
 
         try
         {

Modified: maven/components/trunk/maven-plugins/maven-install-plugin/src/main/java/org/apache/maven/plugin/install/InstallMojo.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-install-plugin/src/main/java/org/apache/maven/plugin/install/InstallMojo.java?rev=278930&r1=278929&r2=278930&view=diff
==============================================================================
--- maven/components/trunk/maven-plugins/maven-install-plugin/src/main/java/org/apache/maven/plugin/install/InstallMojo.java (original)
+++ maven/components/trunk/maven-plugins/maven-install-plugin/src/main/java/org/apache/maven/plugin/install/InstallMojo.java Mon Sep  5 23:58:44 2005
@@ -97,14 +97,15 @@
             artifact.addMetadata( metadata );
         }
 
+        // TODO: clean up
+        Versioning versioning = new Versioning();
+        versioning.addVersion( artifact.getVersion() );
         if ( updateReleaseInfo )
         {
-            // TODO: clean up
-            Versioning versioning = new Versioning();
             versioning.setRelease( artifact.getVersion() );
-            ArtifactRepositoryMetadata metadata = new ArtifactRepositoryMetadata( artifact, versioning );
-            artifact.addMetadata( metadata );
         }
+        ArtifactRepositoryMetadata metadata = new ArtifactRepositoryMetadata( artifact, versioning );
+        artifact.addMetadata( metadata );
 
         try
         {

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=278930&r1=278929&r2=278930&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 Mon Sep  5 23:58:44 2005
@@ -145,4 +145,24 @@
     {
         return artifact.isSnapshot();
     }
+
+    public String getLatestVersion()
+    {
+        return null;
+    }
+
+    public String getReleaseVersion()
+    {
+        return null;
+    }
+
+    public int getBuildNumber()
+    {
+        return 0;
+    }
+
+    public String getTimestamp()
+    {
+        return null;
+    }
 }



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