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