Author: brett
Date: Mon Mar  9 15:14:47 2009
New Revision: 751702

URL: http://svn.apache.org/viewvc?rev=751702&view=rev
Log:
[MRM-1081] fix download tag in light of multiple repositories offering the same 
artifact

Modified:
    
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/tags/DownloadArtifact.java

Modified: 
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/tags/DownloadArtifact.java
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/tags/DownloadArtifact.java?rev=751702&r1=751701&r2=751702&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/tags/DownloadArtifact.java
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/tags/DownloadArtifact.java
 Mon Mar  9 15:14:47 2009
@@ -111,18 +111,15 @@
 
             if ( relatedArtifacts != null && relatedArtifacts.size() > 0 )
             {
-                String repoId = ( (ArchivaArtifact) relatedArtifacts.get( 0 ) 
).getModel().getRepositoryId();
-                ManagedRepositoryContent repo = 
repositoryFactory.getManagedRepositoryContent( repoId );
-
-                String prefix = req.getContextPath() + "/repository/" + repoId;
+                String prefix = req.getContextPath() + "/repository/";
 
                 if ( mini )
                 {
-                    appendMini( sb, prefix, repo, relatedArtifacts );
+                    appendMini( sb, prefix, relatedArtifacts );
                 }
                 else
                 {
-                    appendNormal( sb, prefix, repo, relatedArtifacts );
+                    appendNormal( sb, prefix, relatedArtifacts );
                 }
             }
         }
@@ -162,14 +159,13 @@
         /* do nothing */
     }
 
-    private void appendMini( StringBuffer sb, String prefix, 
ManagedRepositoryContent repo,
-                             List<ArchivaArtifact> relatedArtifacts )
+    private void appendMini( StringBuffer sb, String prefix, 
List<ArchivaArtifact> relatedArtifacts )
     {
         // TODO: write 1 line download link for main artifact.
     }
 
-    private void appendNormal( StringBuffer sb, String prefix, 
ManagedRepositoryContent repo,
-                               List<ArchivaArtifact> relatedArtifacts )
+    private void appendNormal( StringBuffer sb, String prefix, 
List<ArchivaArtifact> relatedArtifacts )
+        throws RepositoryNotFoundException, RepositoryException
     {
         /*
          * <div class="download">
@@ -209,14 +205,17 @@
         sb.append( "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">" 
);
         for ( ArchivaArtifact artifact : relatedArtifacts )
         {
+            String repoId = artifact.getModel().getRepositoryId();
+            ManagedRepositoryContent repo = 
repositoryFactory.getManagedRepositoryContent( repoId );
+
             sb.append( "\n<tr>" );
 
             sb.append( "<td class=\"icon\">" );
-            appendImageLink( sb, prefix, repo, artifact );
+            appendImageLink( sb, prefix + repoId, repo, artifact );
             sb.append( "</td>" );
 
             sb.append( "<td class=\"type\">" );
-            appendLink( sb, prefix, repo, artifact );
+            appendLink( sb, prefix + repoId, repo, artifact );
             sb.append( "</td>" );
 
             sb.append( "<td class=\"size\">" );


Reply via email to