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]