You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jd...@apache.org on 2007/10/13 02:11:18 UTC
svn commit: r584344 - in /maven/artifact/trunk: ./
src/main/java/org/apache/maven/artifact/
src/main/java/org/apache/maven/artifact/repository/
src/main/java/org/apache/maven/artifact/resolver/
src/main/resources/META-INF/plexus/
Author: jdcasey
Date: Fri Oct 12 17:11:15 2007
New Revision: 584344
URL: http://svn.apache.org/viewvc?rev=584344&view=rev
Log:
Improving error wrapping clarity, to make reporting easier. Also adding a method to ArtifactRepositoryFactory to allow lookups of ArtifactRepositoryLayout internally, and avoid the need to lookup these components outside the repo factory.
Added:
maven/artifact/trunk/src/main/java/org/apache/maven/artifact/UnknownRepositoryLayoutException.java (with props)
Modified:
maven/artifact/trunk/pom.xml
maven/artifact/trunk/src/main/java/org/apache/maven/artifact/InvalidRepositoryException.java
maven/artifact/trunk/src/main/java/org/apache/maven/artifact/repository/ArtifactRepositoryFactory.java
maven/artifact/trunk/src/main/java/org/apache/maven/artifact/repository/DefaultArtifactRepositoryFactory.java
maven/artifact/trunk/src/main/java/org/apache/maven/artifact/resolver/ArtifactNotFoundException.java
maven/artifact/trunk/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolutionException.java
maven/artifact/trunk/src/main/resources/META-INF/plexus/components.xml
Modified: maven/artifact/trunk/pom.xml
URL: http://svn.apache.org/viewvc/maven/artifact/trunk/pom.xml?rev=584344&r1=584343&r2=584344&view=diff
==============================================================================
--- maven/artifact/trunk/pom.xml (original)
+++ maven/artifact/trunk/pom.xml Fri Oct 12 17:11:15 2007
@@ -45,7 +45,12 @@
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-container-default</artifactId>
- <version>1.0-alpha-30</version>
+ <version>1.0-alpha-33-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-active-collections</artifactId>
+ <version>1.0-beta-1</version>
</dependency>
<dependency>
<groupId>org.apache.maven.wagon</groupId>
Modified: maven/artifact/trunk/src/main/java/org/apache/maven/artifact/InvalidRepositoryException.java
URL: http://svn.apache.org/viewvc/maven/artifact/trunk/src/main/java/org/apache/maven/artifact/InvalidRepositoryException.java?rev=584344&r1=584343&r2=584344&view=diff
==============================================================================
--- maven/artifact/trunk/src/main/java/org/apache/maven/artifact/InvalidRepositoryException.java (original)
+++ maven/artifact/trunk/src/main/java/org/apache/maven/artifact/InvalidRepositoryException.java Fri Oct 12 17:11:15 2007
@@ -28,8 +28,16 @@
public class InvalidRepositoryException
extends Exception
{
- public InvalidRepositoryException( String message, Throwable throwable )
+ private final String repositoryId;
+
+ public InvalidRepositoryException( String message, String repositoryId, Throwable throwable )
{
super( message, throwable );
+ this.repositoryId = repositoryId;
+ }
+
+ public String getRepositoryId()
+ {
+ return repositoryId;
}
}
Added: maven/artifact/trunk/src/main/java/org/apache/maven/artifact/UnknownRepositoryLayoutException.java
URL: http://svn.apache.org/viewvc/maven/artifact/trunk/src/main/java/org/apache/maven/artifact/UnknownRepositoryLayoutException.java?rev=584344&view=auto
==============================================================================
--- maven/artifact/trunk/src/main/java/org/apache/maven/artifact/UnknownRepositoryLayoutException.java (added)
+++ maven/artifact/trunk/src/main/java/org/apache/maven/artifact/UnknownRepositoryLayoutException.java Fri Oct 12 17:11:15 2007
@@ -0,0 +1,33 @@
+package org.apache.maven.artifact;
+
+import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
+import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
+
+/**
+ * Exception which is meant to occur when a layout specified for a particular
+ * repository doesn't have a corresponding {@link ArtifactRepositoryLayout}
+ * component in the current container.
+ *
+ * @author jdcasey
+ *
+ */
+public class UnknownRepositoryLayoutException
+ extends InvalidRepositoryException
+{
+
+ private final String layoutId;
+
+ public UnknownRepositoryLayoutException( String repositoryId,
+ String layoutId,
+ ComponentLookupException e )
+ {
+ super( "Cannot find ArtifactRepositoryLayout instance for: " + layoutId, repositoryId, e );
+ this.layoutId = layoutId;
+ }
+
+ public String getLayoutId()
+ {
+ return layoutId;
+ }
+
+}
Propchange: maven/artifact/trunk/src/main/java/org/apache/maven/artifact/UnknownRepositoryLayoutException.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/artifact/trunk/src/main/java/org/apache/maven/artifact/UnknownRepositoryLayoutException.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Modified: maven/artifact/trunk/src/main/java/org/apache/maven/artifact/repository/ArtifactRepositoryFactory.java
URL: http://svn.apache.org/viewvc/maven/artifact/trunk/src/main/java/org/apache/maven/artifact/repository/ArtifactRepositoryFactory.java?rev=584344&r1=584343&r2=584344&view=diff
==============================================================================
--- maven/artifact/trunk/src/main/java/org/apache/maven/artifact/repository/ArtifactRepositoryFactory.java (original)
+++ maven/artifact/trunk/src/main/java/org/apache/maven/artifact/repository/ArtifactRepositoryFactory.java Fri Oct 12 17:11:15 2007
@@ -19,6 +19,7 @@
* under the License.
*/
+import org.apache.maven.artifact.UnknownRepositoryLayoutException;
import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
/**
@@ -28,10 +29,27 @@
{
String ROLE = ArtifactRepositoryFactory.class.getName();
- ArtifactRepository createDeploymentArtifactRepository( String id, String url, ArtifactRepositoryLayout layout,
+ ArtifactRepository createDeploymentArtifactRepository( String id,
+ String url,
+ String layoutId,
+ boolean uniqueVersion )
+ throws UnknownRepositoryLayoutException;
+
+ ArtifactRepository createDeploymentArtifactRepository( String id,
+ String url,
+ ArtifactRepositoryLayout layout,
boolean uniqueVersion );
- ArtifactRepository createArtifactRepository( String id, String url, ArtifactRepositoryLayout repositoryLayout,
+ ArtifactRepository createArtifactRepository( String id,
+ String url,
+ String layoutId,
+ ArtifactRepositoryPolicy snapshots,
+ ArtifactRepositoryPolicy releases )
+ throws UnknownRepositoryLayoutException;
+
+ ArtifactRepository createArtifactRepository( String id,
+ String url,
+ ArtifactRepositoryLayout repositoryLayout,
ArtifactRepositoryPolicy snapshots,
ArtifactRepositoryPolicy releases );
Modified: maven/artifact/trunk/src/main/java/org/apache/maven/artifact/repository/DefaultArtifactRepositoryFactory.java
URL: http://svn.apache.org/viewvc/maven/artifact/trunk/src/main/java/org/apache/maven/artifact/repository/DefaultArtifactRepositoryFactory.java?rev=584344&r1=584343&r2=584344&view=diff
==============================================================================
--- maven/artifact/trunk/src/main/java/org/apache/maven/artifact/repository/DefaultArtifactRepositoryFactory.java (original)
+++ maven/artifact/trunk/src/main/java/org/apache/maven/artifact/repository/DefaultArtifactRepositoryFactory.java Fri Oct 12 17:11:15 2007
@@ -19,7 +19,10 @@
* under the License.
*/
+import org.apache.maven.artifact.UnknownRepositoryLayoutException;
import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
+import org.codehaus.plexus.collections.ActiveMap;
+import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
import java.util.HashMap;
import java.util.Map;
@@ -35,8 +38,29 @@
private String globalChecksumPolicy;
+ // FIXME: This is a non-ThreadLocal cache!!
private final Map artifactRepositories = new HashMap();
+ private ActiveMap repositoryLayouts;
+
+ public ArtifactRepository createDeploymentArtifactRepository( String id, String url,
+ String layoutId,
+ boolean uniqueVersion )
+ throws UnknownRepositoryLayoutException
+ {
+ ArtifactRepositoryLayout layout;
+ try
+ {
+ layout = (ArtifactRepositoryLayout) repositoryLayouts.checkedGet( layoutId );
+ }
+ catch ( ComponentLookupException e )
+ {
+ throw new UnknownRepositoryLayoutException( id, layoutId, e );
+ }
+
+ return createDeploymentArtifactRepository( id, url, layout, uniqueVersion );
+ }
+
public ArtifactRepository createDeploymentArtifactRepository( String id, String url,
ArtifactRepositoryLayout repositoryLayout,
boolean uniqueVersion )
@@ -45,6 +69,25 @@
}
public ArtifactRepository createArtifactRepository( String id, String url,
+ String layoutId,
+ ArtifactRepositoryPolicy snapshots,
+ ArtifactRepositoryPolicy releases )
+ throws UnknownRepositoryLayoutException
+ {
+ ArtifactRepositoryLayout layout;
+ try
+ {
+ layout = (ArtifactRepositoryLayout) repositoryLayouts.checkedGet( layoutId );
+ }
+ catch ( ComponentLookupException e )
+ {
+ throw new UnknownRepositoryLayoutException( id, layoutId, e );
+ }
+
+ return createArtifactRepository( id, url, layout, snapshots, releases );
+ }
+
+ public ArtifactRepository createArtifactRepository( String id, String url,
ArtifactRepositoryLayout repositoryLayout,
ArtifactRepositoryPolicy snapshots,
ArtifactRepositoryPolicy releases )
@@ -93,11 +136,11 @@
public void setGlobalUpdatePolicy( String updatePolicy )
{
- this.globalUpdatePolicy = updatePolicy;
+ globalUpdatePolicy = updatePolicy;
}
public void setGlobalChecksumPolicy( String checksumPolicy )
{
- this.globalChecksumPolicy = checksumPolicy;
+ globalChecksumPolicy = checksumPolicy;
}
}
Modified: maven/artifact/trunk/src/main/java/org/apache/maven/artifact/resolver/ArtifactNotFoundException.java
URL: http://svn.apache.org/viewvc/maven/artifact/trunk/src/main/java/org/apache/maven/artifact/resolver/ArtifactNotFoundException.java?rev=584344&r1=584343&r2=584344&view=diff
==============================================================================
--- maven/artifact/trunk/src/main/java/org/apache/maven/artifact/resolver/ArtifactNotFoundException.java (original)
+++ maven/artifact/trunk/src/main/java/org/apache/maven/artifact/resolver/ArtifactNotFoundException.java Fri Oct 12 17:11:15 2007
@@ -20,6 +20,7 @@
*/
import org.apache.maven.artifact.Artifact;
+import org.apache.maven.wagon.ResourceDoesNotExistException;
import java.util.List;
@@ -31,29 +32,29 @@
extends AbstractArtifactResolutionException
{
private String downloadUrl;
-
+
protected ArtifactNotFoundException( String message, Artifact artifact, List remoteRepositories )
{
super( message, artifact, remoteRepositories );
}
-
+
public ArtifactNotFoundException( String message, Artifact artifact )
{
this( message, artifact.getGroupId(), artifact.getArtifactId(), artifact.getVersion(), artifact.getType(),
artifact.getClassifier(), null, artifact.getDownloadUrl(), artifact.getDependencyTrail() );
}
- protected ArtifactNotFoundException( String message, Artifact artifact, List remoteRepositories, Throwable t )
+ protected ArtifactNotFoundException( String message, Artifact artifact, List remoteRepositories, ResourceDoesNotExistException cause )
{
this( message, artifact.getGroupId(), artifact.getArtifactId(), artifact.getVersion(), artifact.getType(), artifact.getClassifier(),
- remoteRepositories, artifact.getDownloadUrl(), artifact.getDependencyTrail(), t );
+ remoteRepositories, artifact.getDownloadUrl(), artifact.getDependencyTrail(), cause );
}
public ArtifactNotFoundException( String message, String groupId, String artifactId, String version, String type, String classifier,
- List remoteRepositories, String downloadUrl, List path, Throwable t )
+ List remoteRepositories, String downloadUrl, List path, ResourceDoesNotExistException cause )
{
super( constructMissingArtifactMessage( message, "", groupId, artifactId, version, type, classifier,downloadUrl, path ), groupId, artifactId,
- version, type, classifier, remoteRepositories, null, t );
+ version, type, classifier, remoteRepositories, null, cause );
this.downloadUrl = downloadUrl;
}
Modified: maven/artifact/trunk/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolutionException.java
URL: http://svn.apache.org/viewvc/maven/artifact/trunk/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolutionException.java?rev=584344&r1=584343&r2=584344&view=diff
==============================================================================
--- maven/artifact/trunk/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolutionException.java (original)
+++ maven/artifact/trunk/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolutionException.java Fri Oct 12 17:11:15 2007
@@ -20,7 +20,11 @@
*/
import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.metadata.ArtifactMetadataRetrievalException;
+import org.apache.maven.artifact.repository.metadata.RepositoryMetadataResolutionException;
+import org.apache.maven.wagon.TransferFailedException;
+import java.io.IOException;
import java.util.List;
/**
@@ -52,13 +56,30 @@
super( message, artifact, remoteRepositories );
}
- public ArtifactResolutionException( String message, Artifact artifact, Throwable t )
+ public ArtifactResolutionException( String message, Artifact artifact, ArtifactMetadataRetrievalException cause )
{
- super( message, artifact, null, t );
+ super( message, artifact, null, cause );
}
- protected ArtifactResolutionException( String message, Artifact artifact, List remoteRepositories, Throwable t )
+ protected ArtifactResolutionException( String message, Artifact artifact, List remoteRepositories, ArtifactMetadataRetrievalException cause )
{
- super( message, artifact, remoteRepositories, t );
+ super( message, artifact, remoteRepositories, cause );
+ }
+
+ protected ArtifactResolutionException( String message, Artifact artifact, List remoteRepositories, TransferFailedException cause )
+ {
+ super( message, artifact, remoteRepositories, cause );
+ }
+
+ protected ArtifactResolutionException( String message, Artifact artifact, List remoteRepositories, IOException cause )
+ {
+ super( message, artifact, remoteRepositories, cause );
+ }
+
+ public ArtifactResolutionException( String message,
+ Artifact artifact,
+ RepositoryMetadataResolutionException cause )
+ {
+ super( message, artifact, null, cause );
}
}
Modified: maven/artifact/trunk/src/main/resources/META-INF/plexus/components.xml
URL: http://svn.apache.org/viewvc/maven/artifact/trunk/src/main/resources/META-INF/plexus/components.xml?rev=584344&r1=584343&r2=584344&view=diff
==============================================================================
--- maven/artifact/trunk/src/main/resources/META-INF/plexus/components.xml (original)
+++ maven/artifact/trunk/src/main/resources/META-INF/plexus/components.xml Fri Oct 12 17:11:15 2007
@@ -30,6 +30,15 @@
<role-hint>legacy</role-hint>
<implementation>org.apache.maven.artifact.repository.layout.LegacyRepositoryLayout</implementation>
</component>
+
+ <component>
+ <role>org.codehaus.plexus.collections.ActiveMap</role>
+ <role-hint>repositoryLayouts</role-hint>
+ <implementation>org.codehaus.plexus.collections.DefaultActiveMap</implementation>
+ <configuration>
+ <role>org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout</role>
+ </configuration>
+ </component>
<!--
|
@@ -433,6 +442,13 @@
<component>
<role>org.apache.maven.artifact.repository.ArtifactRepositoryFactory</role>
<implementation>org.apache.maven.artifact.repository.DefaultArtifactRepositoryFactory</implementation>
+ <requirements>
+ <requirement>
+ <role>org.codehaus.plexus.collections.ActiveMap</role>
+ <role-hint>repositoryLayouts</role-hint>
+ <field-name>repositoryLayouts</field-name>
+ </requirement>
+ </requirements>
</component>
<!--