You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by ol...@apache.org on 2012/01/19 11:09:47 UTC

svn commit: r1233266 - in /archiva/trunk/archiva-modules: archiva-base/archiva-indexer/src/main/java/org/apache/archiva/indexer/search/ archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/ archiva-web/archiva-r...

Author: olamy
Date: Thu Jan 19 10:09:47 2012
New Revision: 1233266

URL: http://svn.apache.org/viewvc?rev=1233266&view=rev
Log:
[MRM-1590] Wrong URL returned by SearchService.getArtifactVersions.

Modified:
    archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/archiva/indexer/search/NexusRepositorySearch.java
    archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultSearchService.java
    archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/SearchServiceTest.java

Modified: archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/archiva/indexer/search/NexusRepositorySearch.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/archiva/indexer/search/NexusRepositorySearch.java?rev=1233266&r1=1233265&r2=1233266&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/archiva/indexer/search/NexusRepositorySearch.java (original)
+++ archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/archiva/indexer/search/NexusRepositorySearch.java Thu Jan 19 10:09:47 2012
@@ -240,8 +240,8 @@ public class NexusRepositorySearch
     }
 
     private SearchResults search( SearchResultLimits limits, BooleanQuery q, List<String> indexingContextIds,
-                                  List<? extends ArtifactInfoFilter> filters,
-                                  List<String> selectedRepos, boolean includePoms)
+                                  List<? extends ArtifactInfoFilter> filters, List<String> selectedRepos,
+                                  boolean includePoms )
         throws RepositorySearchException
     {
 
@@ -449,7 +449,7 @@ public class NexusRepositorySearch
 
     private SearchResults convertToSearchResults( FlatSearchResponse response, SearchResultLimits limits,
                                                   List<? extends ArtifactInfoFilter> artifactInfoFilters,
-                                                  List<String>selectedRepos, boolean includePoms)
+                                                  List<String> selectedRepos, boolean includePoms )
         throws RepositoryAdminException
     {
         SearchResults results = new SearchResults();
@@ -541,6 +541,7 @@ public class NexusRepositorySearch
             if ( managedRepoId != null )
             {
                 sb.append( '/' ).append( managedRepoId );
+                artifactInfo.context = managedRepoId;
             }
         }
         else

Modified: archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultSearchService.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultSearchService.java?rev=1233266&r1=1233265&r2=1233266&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultSearchService.java (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultSearchService.java Thu Jan 19 10:09:47 2012
@@ -237,7 +237,7 @@ public class DefaultSearchService
                     if ( StringUtils.isNotBlank( version ) )
                     {
                         versionned.setVersion( version );
-                        versionned.setUrl( getArtifactUrl( versionned ) );
+                        versionned.setUrl( getArtifactUrl( versionned, version ) );
 
                         artifacts.add( versionned );
 
@@ -250,10 +250,11 @@ public class DefaultSearchService
 
     /**
      * TODO add a configuration mechanism to have configured the base archiva url
+     *
      * @param artifact
      * @return
      */
-    private String getArtifactUrl( Artifact artifact )
+    private String getArtifactUrl( Artifact artifact, String version )
     {
 
         if ( httpServletRequest == null )
@@ -267,11 +268,28 @@ public class DefaultSearchService
         StringBuilder sb = new StringBuilder( getBaseUrl( httpServletRequest ) );
 
         sb.append( "/repository" );
-        if ( !StringUtils.startsWith( artifact.getUrl(), "/" ) )
+
+        sb.append( '/' ).append( artifact.getContext() );
+
+        sb.append( '/' ).append( StringUtils.replaceChars( artifact.getGroupId(), '.', '/' ) );
+        sb.append( '/' ).append( artifact.getArtifactId() );
+        sb.append( '/' ).append( artifact.getVersion() );
+        sb.append( '/' ).append( artifact.getArtifactId() );
+        sb.append( '-' ).append( artifact.getVersion() );
+        if ( StringUtils.isNotBlank( artifact.getClassifier() ) )
+        {
+            sb.append( '-' ).append( artifact.getClassifier() );
+        }
+        // maven-plugin packaging is a jar
+        if ( StringUtils.equals( "maven-plugin", artifact.getPackaging() ) )
         {
-            sb.append( '/' );
+            sb.append( "jar" );
         }
-        sb.append( artifact.getUrl() );
+        else
+        {
+            sb.append( '.' ).append( artifact.getPackaging() );
+        }
+
         return sb.toString();
     }
 

Modified: archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/SearchServiceTest.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/SearchServiceTest.java?rev=1233266&r1=1233265&r2=1233266&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/SearchServiceTest.java (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/SearchServiceTest.java Thu Jan 19 10:09:47 2012
@@ -189,6 +189,17 @@ public class SearchServiceTest
             " not 2 results for Bundle Symbolic Name org.apache.karaf.features.core but " + artifacts.size() + ":"
                 + artifacts, artifacts.size() == 2 );
 
+        for ( Artifact artifact : artifacts )
+        {
+            log.info( "url:" + artifact.getUrl() );
+            String version = artifact.getVersion();
+            assertEquals( "http://localhost:" + port
+                              + "/repository/test-repo/org/apache/karaf/features/org.apache.karaf.features.core/"
+                              + version + "/org.apache.karaf.features.core-" + version + ".bundle", artifact.getUrl() );
+
+
+        }
+
         deleteTestRepo( testRepoId );
     }