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