Author: jdcasey
Date: Thu Jul 28 20:41:02 2005
New Revision: 226333

URL: http://svn.apache.org/viewcvs?rev=226333&view=rev
Log:
Adding resolved flag to Artifact.

This is done to counter the possibility that an artifact's file is set without 
the artifact actually being resolved, as in the case where the artifact is a 
snapshot version, but no snapshot-enabled repositories exist (think plugin 
resolution). This also has the beneficial side-effect of providing a more 
intuitive method of checking whether an artifact has been resolved (rather than 
artifact.getFile() != null).

Modified:
    maven/components/trunk/maven-artifact-manager/pom.xml
    
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/resolver/DefaultArtifactResolver.java
    
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/Artifact.java
    
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/DefaultArtifact.java
    
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolutionException.java
    
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/artifact/ActiveProjectArtifact.java

Modified: maven/components/trunk/maven-artifact-manager/pom.xml
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact-manager/pom.xml?rev=226333&r1=226332&r2=226333&view=diff
==============================================================================
--- maven/components/trunk/maven-artifact-manager/pom.xml (original)
+++ maven/components/trunk/maven-artifact-manager/pom.xml Thu Jul 28 20:41:02 
2005
@@ -23,6 +23,11 @@
       <version>1.0-alpha-4</version>
     </dependency>
     <dependency>
+      <groupId>plexus</groupId>
+      <artifactId>plexus-utils</artifactId>
+      <version>1.0.2-SNAPSHOT</version>
+    </dependency>
+    <dependency>
       <groupId>org.apache.maven.wagon</groupId>
       <artifactId>wagon-provider-api</artifactId>
       <version>1.0-alpha-4</version>

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=226333&r1=226332&r2=226333&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
 Thu Jul 28 20:41:02 2005
@@ -244,6 +244,8 @@
         if ( policy.isEnabled() )
         {
             getRemoteFile( repository, artifact.getFile(), remotePath, 
downloadMonitor, policy.getChecksumPolicy() );
+            
+            artifact.setResolved( true );
         }
         else
         {

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=226333&r1=226332&r2=226333&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
 Thu Jul 28 20:41:02 2005
@@ -114,6 +114,11 @@
                     {
                         wagonManager.getArtifact( artifact, remoteRepositories 
);
                     }
+                    
+                    if ( !artifact.isResolved() )
+                    {
+                        throw new ArtifactResolutionException( "Failed to 
resolve artifact, possibly due to a repository list that is not appropriately 
equipped for this artifact's metadata.", artifact, remoteRepositories );
+                    }
 
                     // must be after the artifact is downloaded
                     for ( Iterator i = artifact.getMetadataList().iterator(); 
i.hasNext(); )
@@ -134,6 +139,11 @@
                 {
                     throw new ArtifactResolutionException( e.getMessage(), 
artifact, remoteRepositories, e );
                 }
+            }
+            else if ( destination.exists() )
+            {
+                // locally resolved...no need to hit the remote repo.
+                artifact.setResolved( true );
             }
         }
     }

Modified: 
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/Artifact.java
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/Artifact.java?rev=226333&r1=226332&r2=226333&view=diff
==============================================================================
--- 
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/Artifact.java
 (original)
+++ 
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/Artifact.java
 Thu Jul 28 20:41:02 2005
@@ -128,5 +128,9 @@
     void setArtifactId( String artifactId );
 
     boolean isSnapshot();
+    
+    void setResolved( boolean resolved );
+    
+    boolean isResolved();
 
 }

Modified: 
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/DefaultArtifact.java
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/DefaultArtifact.java?rev=226333&r1=226332&r2=226333&view=diff
==============================================================================
--- 
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/DefaultArtifact.java
 (original)
+++ 
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/DefaultArtifact.java
 Thu Jul 28 20:41:02 2005
@@ -72,6 +72,8 @@
 
     private VersionRange versionRange;
 
+    private boolean resolved = false;
+
     public DefaultArtifact( String groupId, String artifactId, VersionRange 
versionRange, String scope, String type,
                             String classifier, ArtifactHandler artifactHandler 
)
     {
@@ -434,6 +436,16 @@
         {
             return getVersion().endsWith( SNAPSHOT_VERSION ) || 
getVersion().equals( LATEST_VERSION );
         }
+    }
+
+    public void setResolved( boolean resolved )
+    {
+        this.resolved = resolved;
+    }
+
+    public boolean isResolved()
+    {
+        return resolved;
     }
 
 }

Modified: 
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolutionException.java
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolutionException.java?rev=226333&r1=226332&r2=226333&view=diff
==============================================================================
--- 
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolutionException.java
 (original)
+++ 
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolutionException.java
 Thu Jul 28 20:41:02 2005
@@ -150,6 +150,12 @@
               remoteRepositories, artifact.getDownloadUrl(), 
artifact.getDependencyTrail(), t );
     }
 
+    public ArtifactResolutionException( String message, Artifact artifact, 
List remoteRepositories )
+    {
+        this( message, artifact.getGroupId(), artifact.getArtifactId(), 
artifact.getVersion(), artifact.getType(),
+              remoteRepositories, artifact.getDownloadUrl(), 
artifact.getDependencyTrail() );
+    }
+
     public ArtifactResolutionException( String message, Artifact artifact )
     {
         this( message, artifact.getGroupId(), artifact.getArtifactId(), 
artifact.getVersion(), artifact.getType(), null,

Modified: 
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/artifact/ActiveProjectArtifact.java
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/artifact/ActiveProjectArtifact.java?rev=226333&r1=226332&r2=226333&view=diff
==============================================================================
--- 
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/artifact/ActiveProjectArtifact.java
 (original)
+++ 
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/artifact/ActiveProjectArtifact.java
 Thu Jul 28 20:41:02 2005
@@ -220,4 +220,14 @@
     {
         return artifact.compareTo( o );
     }
+
+    public void setResolved( boolean resolved )
+    {
+        artifact.setResolved( resolved );
+    }
+
+    public boolean isResolved()
+    {
+        return artifact.isResolved();
+    }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to