You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by og...@apache.org on 2008/07/18 07:13:10 UTC

svn commit: r677822 - in /maven/sandbox/trunk/mercury/src: main/java/org/apache/maven/mercury/metadata/ main/java/org/apache/maven/mercury/repository/ main/java/org/apache/maven/mercury/repository/layout/ main/java/org/apache/maven/mercury/retrieve/ ma...

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