// we retun only artifacts without classifier in quick search, olamy cannot find a way to say with this field empty
// FIXME cannot find a way currently to setup this in constructQuery !!!
- return search( limits, q, indexingContextIds, NoClassifierArtifactInfoFiler.LIST, principal, selectedRepos );
+ return search( limits, q, indexingContextIds, NoClassifierArtifactInfoFiler.LIST, selectedRepos, false );
}
throw new RepositorySearchException( "No search fields set." );
}
- return search( limits, q, indexingContextIds, Collections.<ArtifactInfoFiler>emptyList(), principal,
- searchFields.getRepositories() );
+ return search( limits, q, indexingContextIds, Collections.<ArtifactInfoFiler>emptyList(),
+ searchFields.getRepositories(), searchFields.isIncludePomArtifacts() );
}
private SearchResults search( SearchResultLimits limits, BooleanQuery q, List<String> indexingContextIds,
- List<? extends ArtifactInfoFiler> filters, String principal,
- List<String> selectedRepos )
+ List<? extends ArtifactInfoFiler> filters,
+ List<String> selectedRepos, boolean includePoms)
throws RepositorySearchException
{
return results;
}
- return convertToSearchResults( response, limits, filters, principal, selectedRepos );
+ return convertToSearchResults( response, limits, filters, selectedRepos, includePoms );
}
catch ( IOException e )
{
private SearchResults convertToSearchResults( FlatSearchResponse response, SearchResultLimits limits,
List<? extends ArtifactInfoFiler> artifactInfoFilers,
- String principal, List<String> selectedRepos )
+ List<String>selectedRepos, boolean includePoms)
throws RepositoryAdminException
{
SearchResults results = new SearchResults();
for ( ArtifactInfo artifactInfo : artifactInfos )
{
- if ( StringUtils.equalsIgnoreCase( "pom", artifactInfo.fextension ) )
+ if ( StringUtils.equalsIgnoreCase( "pom", artifactInfo.fextension ) && !includePoms )
{
continue;
}
hit.setPrefix( artifactInfo.prefix );
hit.setPackaging( artifactInfo.packaging );
hit.setClassifier( artifactInfo.classifier );
+ hit.setFileExtension( artifactInfo.fextension );
hit.setUrl( getBaseUrl( artifactInfo, selectedRepos ) );
}
public interface RepositorySearch
{
/**
- * Quick search.
+ * Quick search by won't return artifact with file extension pom
*
* @param principal
* @param selectedRepos
*/
private String bundleExportService;
+ /**
+ * not return artifact with file extension pom
+ * @since 1.4-M2
+ */
+ private boolean includePomArtifacts = false;
+
private String classifier;
public SearchFields()
this.bundleName = bundleName;
}
+ public boolean isIncludePomArtifacts()
+ {
+ return includePomArtifacts;
+ }
+
+ public void setIncludePomArtifacts( boolean includePomArtifacts )
+ {
+ this.includePomArtifacts = includePomArtifacts;
+ }
+
@Override
public String toString()
{
sb.append( ", bundleImportPackage='" ).append( bundleImportPackage ).append( '\'' );
sb.append( ", bundleName='" ).append( bundleName ).append( '\'' );
sb.append( ", bundleExportService='" ).append( bundleExportService ).append( '\'' );
+ sb.append( ", includePomArtifacts=" ).append( includePomArtifacts );
sb.append( ", classifier='" ).append( classifier ).append( '\'' );
sb.append( '}' );
return sb.toString();
private String classifier;
+ /**
+ * file extension of the search result
+ * @since 1.4-M2
+ */
+ private String fileExtension;
+
public String getContext()
{
return context;
this.classifier = classifier;
}
+ public String getFileExtension()
+ {
+ return fileExtension;
+ }
+
+ public void setFileExtension( String fileExtension )
+ {
+ this.fileExtension = fileExtension;
+ }
+
@Override
public String toString()
{
sb.append( ", bundleImportPackage='" ).append( bundleImportPackage ).append( '\'' );
sb.append( ", bundleRequireBundle='" ).append( bundleRequireBundle ).append( '\'' );
sb.append( ", classifier='" ).append( classifier ).append( '\'' );
+ sb.append( ", fileExtension='" ).append( fileExtension ).append( '\'' );
sb.append( '}' );
return sb.toString();
}
private String packaging;
+ /**
+ * file extension of the search result
+ * @since 1.4-M2
+ */
+ private String fileExtension;
+
public Artifact()
{
this.packaging = packaging;
}
+ public String getFileExtension()
+ {
+ return fileExtension;
+ }
+
+ public void setFileExtension( String fileExtension )
+ {
+ this.fileExtension = fileExtension;
+ }
@Override
public String toString()
sb.append( ", bundleRequireBundle='" ).append( bundleRequireBundle ).append( '\'' );
sb.append( ", classifier='" ).append( classifier ).append( '\'' );
sb.append( ", packaging='" ).append( packaging ).append( '\'' );
+ sb.append( ", fileExtension='" ).append( fileExtension ).append( '\'' );
sb.append( '}' );
return sb.toString();
}
private String classifier;
+ /**
+ * not return artifact with file extension pom
+ * @since 1.4-M2
+ */
+ private boolean includePomArtifacts = false;
+
public SearchRequest()
{
// no op
this.classifier = classifier;
}
+ public boolean isIncludePomArtifacts()
+ {
+ return includePomArtifacts;
+ }
+
+ public void setIncludePomArtifacts( boolean includePomArtifacts )
+ {
+ this.includePomArtifacts = includePomArtifacts;
+ }
+
@Override
public String toString()
{
sb.append( ", bundleExportPackage='" ).append( bundleExportPackage ).append( '\'' );
sb.append( ", bundleExportService='" ).append( bundleExportService ).append( '\'' );
sb.append( ", classifier='" ).append( classifier ).append( '\'' );
+ sb.append( ", includePomArtifacts=" ).append( includePomArtifacts );
sb.append( '}' );
return sb.toString();
}
{
for ( String version : hit.getVersions() )
{
- /*
- Artifact versionned = new Artifact( );
- versionned.setArtifactId( hit.getArtifactId());
- versionned.setGroupId( hit.getGroupId() );
- versionned.setRepositoryId(hit.getRepositoryId() );
-
-
- versionned.setBundleExportPackage( hit.getBundleExportPackage() );
- versionned.setBundleExportService( hit.getBundleExportService());
- versionned.setBundleSymbolicName(hit.getBundleSymbolicName() );
- versionned.setBundleVersion( artifactInfo.bundleVersion );
- versionned.setBundleDescription( artifactInfo.bundleDescription );
- versionned.setBundleDocUrl( artifactInfo.bundleDocUrl );
-
- versionned.setBundleRequireBundle( artifactInfo.bundleRequireBundle );
- versionned.setBundleImportPackage( artifactInfo.bundleImportPackage );
- versionned.setBundleLicense( artifactInfo.bundleLicense );
- versionned.setBundleName( artifactInfo.bundleName );
- versionned.setContext( artifactInfo.context );
- versionned.setGoals( artifactInfo.goals );
- versionned.setPrefix( artifactInfo.prefix );
- // sure ??
- versionned.setUrl( artifactInfo.remoteUrl );
- */
- // FIXME archiva url ??
Artifact versionned = new BeanReplicator().replicateBean( hit, Artifact.class );
return artifacts;
}
+ /**
+ * TODO add a configuration mechanism to have configured the base archiva url
+ * @param httpContext
+ * @param artifact
+ * @return
+ */
private String getArtifactUrl( HttpContext httpContext, Artifact artifact )
{
if ( httpContext == null )