Author: ogusakov Date: Thu Jul 17 22:13:10 2008 New Revision: 677822 URL: http://svn.apache.org/viewvc?rev=677822&view=rev Log: started revamping the ArtifactRetriever, it now accepts ArtifactMetadata, not Artifact as a request
Added: maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/transport/ Modified: maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/metadata/ArtifactMetadata.java maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/metadata/DefaultMetadataResolver.java maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/AbstractRepository.java maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/DefaultRemoteRepository.java maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/Repository.java maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/layout/DefaultRepositoryLayout.java maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/layout/RepositoryLayout.java maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/retrieve/DefaultArtifactRetriever.java maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/retrieve/ResolutionRequest.java maven/sandbox/trunk/mercury/src/test/java/org/apache/maven/mercury/metadata/MetadataResolverTest.java Modified: maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/metadata/ArtifactMetadata.java URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/metadata/ArtifactMetadata.java?rev=677822&r1=677821&r2=677822&view=diff ============================================================================== --- maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/metadata/ArtifactMetadata.java (original) +++ maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/metadata/ArtifactMetadata.java Thu Jul 17 22:13:10 2008 @@ -364,5 +364,10 @@ this.optional = "true".equals(optional) ? true : false; } + public boolean hasClassifier() + { + return classifier == null; + } + } Modified: maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/metadata/DefaultMetadataResolver.java URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/metadata/DefaultMetadataResolver.java?rev=677822&r1=677821&r2=677822&view=diff ============================================================================== --- maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/metadata/DefaultMetadataResolver.java (original) +++ maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/metadata/DefaultMetadataResolver.java Thu Jul 17 22:13:10 2008 @@ -54,14 +54,18 @@ } //------------------------------------------------------------------------ - private MetadataTreeNode resolveMetadataTree( ArtifactMetadata query, MetadataTreeNode parent, LocalRepository localRepository, Set<RemoteRepository> remoteRepositories ) + private MetadataTreeNode resolveMetadataTree( ArtifactMetadata query + , MetadataTreeNode parent + , LocalRepository localRepository + , Set<RemoteRepository> remoteRepositories + ) throws MetadataResolutionException { try { Artifact pomArtifact = new DefaultArtifact( query.getGroupId(), query.getArtifactId(), query.getVersion(), query.getType(), null, false, query.getScope(), null ); - ResolutionRequest request = new ResolutionRequest().setArtifact( pomArtifact ).setLocalRepository( localRepository ).setRemoteRepostories( remoteRepositories ); + ResolutionRequest request = new ResolutionRequest().setMd( query ).setLocalRepository( localRepository ).setRemoteRepostories( remoteRepositories ); ResolutionResult result = retriever.retrieve( request ); Modified: maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/AbstractRepository.java URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/AbstractRepository.java?rev=677822&r1=677821&r2=677822&view=diff ============================================================================== --- maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/AbstractRepository.java (original) +++ maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/AbstractRepository.java Thu Jul 17 22:13:10 2008 @@ -1,6 +1,7 @@ package org.apache.maven.mercury.repository; import org.apache.maven.mercury.Artifact; +import org.apache.maven.mercury.metadata.ArtifactMetadata; import org.apache.maven.mercury.repository.layout.RepositoryLayout; /* @@ -19,7 +20,7 @@ */ public abstract class AbstractRepository - implements Repository +implements Repository { private String id; @@ -41,8 +42,8 @@ return layout; } - public String pathOf( Artifact artifact ) + public String pathOf( ArtifactMetadata md ) { - return layout.pathOf( artifact ); + return layout.pathOf( md ); } } Modified: maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/DefaultRemoteRepository.java URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/DefaultRemoteRepository.java?rev=677822&r1=677821&r2=677822&view=diff ============================================================================== --- maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/DefaultRemoteRepository.java (original) +++ maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/DefaultRemoteRepository.java Thu Jul 17 22:13:10 2008 @@ -3,8 +3,8 @@ import org.apache.maven.mercury.repository.layout.RepositoryLayout; public class DefaultRemoteRepository - extends AbstractRepository - implements RemoteRepository +extends AbstractRepository +implements RemoteRepository { private String url; Modified: maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/Repository.java URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/Repository.java?rev=677822&r1=677821&r2=677822&view=diff ============================================================================== --- maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/Repository.java (original) +++ maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/Repository.java Thu Jul 17 22:13:10 2008 @@ -1,6 +1,7 @@ package org.apache.maven.mercury.repository; import org.apache.maven.mercury.Artifact; +import org.apache.maven.mercury.metadata.ArtifactMetadata; /* * Licensed to the Apache Software Foundation (ASF) under one @@ -25,7 +26,7 @@ */ public interface Repository { - String pathOf( Artifact artifact ); + String pathOf( ArtifactMetadata md ); String getId(); } Modified: maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/layout/DefaultRepositoryLayout.java URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/layout/DefaultRepositoryLayout.java?rev=677822&r1=677821&r2=677822&view=diff ============================================================================== --- maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/layout/DefaultRepositoryLayout.java (original) +++ maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/layout/DefaultRepositoryLayout.java Thu Jul 17 22:13:10 2008 @@ -1,6 +1,7 @@ package org.apache.maven.mercury.repository.layout; import org.apache.maven.mercury.Artifact; +import org.apache.maven.mercury.metadata.ArtifactMetadata; /* * Licensed to the Apache Software Foundation (ASF) under one @@ -23,10 +24,12 @@ /** * @author jdcasey + * @author Oleg Gusakov + * * @plexus.component role="org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout" role-hint="default" */ public class DefaultRepositoryLayout - implements RepositoryLayout +implements RepositoryLayout { private static final char PATH_SEPARATOR = '/'; @@ -34,18 +37,18 @@ private static final char ARTIFACT_SEPARATOR = '-'; - public String pathOf( Artifact artifact ) + public String pathOf( ArtifactMetadata md ) { StringBuffer path = new StringBuffer(); - path.append( formatAsDirectory( artifact.getGroupId() ) ).append( PATH_SEPARATOR ); - path.append( artifact.getArtifactId() ).append( PATH_SEPARATOR ); - path.append( artifact.getVersion() ).append( PATH_SEPARATOR ); - path.append( artifact.getArtifactId() ).append( ARTIFACT_SEPARATOR ).append( artifact.getVersion() ); + path.append( formatAsDirectory( md.getGroupId() ) ).append( PATH_SEPARATOR ); + path.append( md.getArtifactId() ).append( PATH_SEPARATOR ); + path.append( md.getVersion() ).append( PATH_SEPARATOR ); + path.append( md.getArtifactId() ).append( ARTIFACT_SEPARATOR ).append( md.getVersion() ); - if ( artifact.hasClassifier() ) + if ( md.hasClassifier() ) { - path.append( ARTIFACT_SEPARATOR ).append( artifact.getClassifier() ); + path.append( ARTIFACT_SEPARATOR ).append( md.getClassifier() ); } path.append( GROUP_SEPARATOR ).append( "pom" ); Modified: maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/layout/RepositoryLayout.java URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/layout/RepositoryLayout.java?rev=677822&r1=677821&r2=677822&view=diff ============================================================================== --- maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/layout/RepositoryLayout.java (original) +++ maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/layout/RepositoryLayout.java Thu Jul 17 22:13:10 2008 @@ -1,6 +1,7 @@ package org.apache.maven.mercury.repository.layout; import org.apache.maven.mercury.Artifact; +import org.apache.maven.mercury.metadata.ArtifactMetadata; /* * Licensed to the Apache Software Foundation (ASF) under one @@ -21,10 +22,15 @@ * under the License. */ -/** @author jdcasey */ +/** + * + * @author jdcasey + * @author Oleg Gusakov + * @version $Id$ + **/ public interface RepositoryLayout { String ROLE = RepositoryLayout.class.getName(); - String pathOf( Artifact artifact ); + String pathOf( ArtifactMetadata md ); } Modified: maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/retrieve/DefaultArtifactRetriever.java URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/retrieve/DefaultArtifactRetriever.java?rev=677822&r1=677821&r2=677822&view=diff ============================================================================== --- maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/retrieve/DefaultArtifactRetriever.java (original) +++ maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/retrieve/DefaultArtifactRetriever.java Thu Jul 17 22:13:10 2008 @@ -31,7 +31,7 @@ * @plexus.component */ public class DefaultArtifactRetriever - implements ArtifactRetriever +implements ArtifactRetriever { public ResolutionResult retrieve( ResolutionRequest request ) { @@ -53,8 +53,8 @@ for ( RemoteRepository remoteRepository : request.getRemoteRepostories() ) { DefaultRetrievalRequest rr = new DefaultRetrievalRequest(); - String remoteUrl = remoteRepository.getUrl() + "/" + remoteRepository.pathOf( request.getArtifact() ); - File localFile = new File( request.getLocalRepository().getDirectory(), request.getLocalRepository().pathOf( request.getArtifact() ) ); + String remoteUrl = remoteRepository.getUrl() + "/" + remoteRepository.pathOf( request.getMd() ); + File localFile = new File( request.getLocalRepository().getDirectory(), request.getLocalRepository().pathOf( request.getMd() ) ); Binding binding = new Binding( remoteUrl, localFile, true ); rr.addBinding( binding ); RetrievalResponse response = retriever.retrieve( rr ); Modified: maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/retrieve/ResolutionRequest.java URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/retrieve/ResolutionRequest.java?rev=677822&r1=677821&r2=677822&view=diff ============================================================================== --- maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/retrieve/ResolutionRequest.java (original) +++ maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/retrieve/ResolutionRequest.java Thu Jul 17 22:13:10 2008 @@ -3,6 +3,7 @@ import java.util.Set; import org.apache.maven.mercury.Artifact; +import org.apache.maven.mercury.metadata.ArtifactMetadata; import org.apache.maven.mercury.repository.LocalRepository; import org.apache.maven.mercury.repository.RemoteRepository; import org.apache.maven.mercury.repository.Repository; @@ -15,84 +16,71 @@ */ public class ResolutionRequest { - private Artifact artifact; - - private String groupId; - - private String artifactId; - - private String version; - + private ArtifactMetadata _md; private LocalRepository localRepository; - private Set<RemoteRepository> remoteRepostories; - public Artifact getArtifact() + public ArtifactMetadata getMd() { - return artifact; + return _md; } - public ResolutionRequest setArtifact( Artifact artifact ) + public ResolutionRequest setMd( ArtifactMetadata md ) { - this.artifact = artifact; - + this._md = md; return this; } - public boolean hasArtifact() + public boolean hasMd() + { + return _md != null; + } + + private void checkMd() { - return artifact != null; + if( _md == null ) + _md = new ArtifactMetadata(); } public String getGroupId() { - if ( artifact != null ) - { - return artifact.getGroupId(); - } - - return groupId; + checkMd(); + return _md.getGroupId(); } public ResolutionRequest setGroupId( String groupId ) { - this.groupId = groupId; + checkMd(); + this._md.setGroupId( groupId ); - return this; + return this; } public String getArtifactId() { - if ( artifact != null ) - { - return artifact.getArtifactId(); - } - - return artifactId; + checkMd(); + return _md.getArtifactId(); } public ResolutionRequest setArtifactId( String artifactId ) { - this.artifactId = artifactId; + checkMd(); + this._md.setArtifactId( artifactId ); - return this; + return this; } public String getVersion() { - if ( artifact != null ) - { - return artifact.getVersion(); - } - - return version; + checkMd(); + return _md.getVersion(); } public ResolutionRequest setVersion( String version ) { - this.version = version; - - return this; + checkMd(); + this._md.setVersion(version); + return this; } public LocalRepository getLocalRepository() Modified: maven/sandbox/trunk/mercury/src/test/java/org/apache/maven/mercury/metadata/MetadataResolverTest.java URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/src/test/java/org/apache/maven/mercury/metadata/MetadataResolverTest.java?rev=677822&r1=677821&r2=677822&view=diff ============================================================================== --- maven/sandbox/trunk/mercury/src/test/java/org/apache/maven/mercury/metadata/MetadataResolverTest.java (original) +++ maven/sandbox/trunk/mercury/src/test/java/org/apache/maven/mercury/metadata/MetadataResolverTest.java Thu Jul 17 22:13:10 2008 @@ -106,11 +106,11 @@ } class SimpleLayout - implements RepositoryLayout + implements RepositoryLayout { - public String pathOf( Artifact artifact ) + public String pathOf( ArtifactMetadata md ) { - return artifact.getArtifactId() + "-" + artifact.getVersion() + ".txt"; + return md.getArtifactId() + "-" + md.getVersion() + ".txt"; } } }