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";
         }
     }
 }


Reply via email to