]> source.dussan.org Git - archiva.git/commitdiff
includePom in index search results configurable: false by default
authorOlivier Lamy <olamy@apache.org>
Thu, 17 Nov 2011 21:29:44 +0000 (21:29 +0000)
committerOlivier Lamy <olamy@apache.org>
Thu, 17 Nov 2011 21:29:44 +0000 (21:29 +0000)
git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@1203376 13f79535-47bb-0310-9956-ffa450edef68

archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/archiva/indexer/search/NexusRepositorySearch.java
archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/archiva/indexer/search/RepositorySearch.java
archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/archiva/indexer/search/SearchFields.java
archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/archiva/indexer/search/SearchResultHit.java
archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/Artifact.java
archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/model/SearchRequest.java
archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultSearchService.java

index 1f1b1c798cfcc0031360360c3b7ca534d89a0d86..81b76ee5fc1d464d0e6efc6c76f865002500c19f 100644 (file)
@@ -124,7 +124,7 @@ public class NexusRepositorySearch
 
         // 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 );
 
     }
 
@@ -235,13 +235,13 @@ public class NexusRepositorySearch
             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
     {
 
@@ -259,7 +259,7 @@ public class NexusRepositorySearch
                 return results;
             }
 
-            return convertToSearchResults( response, limits, filters, principal, selectedRepos );
+            return convertToSearchResults( response, limits, filters, selectedRepos, includePoms );
         }
         catch ( IOException e )
         {
@@ -449,7 +449,7 @@ public class NexusRepositorySearch
 
     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();
@@ -457,7 +457,7 @@ public class NexusRepositorySearch
 
         for ( ArtifactInfo artifactInfo : artifactInfos )
         {
-            if ( StringUtils.equalsIgnoreCase( "pom", artifactInfo.fextension ) )
+            if ( StringUtils.equalsIgnoreCase( "pom", artifactInfo.fextension ) && !includePoms )
             {
                 continue;
             }
@@ -500,6 +500,7 @@ public class NexusRepositorySearch
                 hit.setPrefix( artifactInfo.prefix );
                 hit.setPackaging( artifactInfo.packaging );
                 hit.setClassifier( artifactInfo.classifier );
+                hit.setFileExtension( artifactInfo.fextension );
                 hit.setUrl( getBaseUrl( artifactInfo, selectedRepos ) );
             }
 
index e2a541e0057efcda9aaa19121836392159ee165f..4879ee3536dc5913ef851dc09118962a2aba77dc 100644 (file)
@@ -29,7 +29,7 @@ import java.util.Set;
 public interface RepositorySearch
 {
     /**
-     * Quick search.
+     * Quick search by won't return artifact with file extension pom
      *
      * @param principal
      * @param selectedRepos
index ca99d6b80703c5160d10ffe752583d997afda194..d7d00093b70e6862818b4bc65e179a306d5bcb3e 100644 (file)
@@ -97,6 +97,12 @@ public class SearchFields
      */
     private String bundleExportService;
 
+    /**
+     * not return artifact with file extension pom
+     * @since 1.4-M2
+     */
+    private boolean includePomArtifacts = false;
+
     private String classifier;
 
     public SearchFields()
@@ -246,6 +252,16 @@ public class SearchFields
         this.bundleName = bundleName;
     }
 
+    public boolean isIncludePomArtifacts()
+    {
+        return includePomArtifacts;
+    }
+
+    public void setIncludePomArtifacts( boolean includePomArtifacts )
+    {
+        this.includePomArtifacts = includePomArtifacts;
+    }
+
     @Override
     public String toString()
     {
@@ -263,6 +279,7 @@ public class SearchFields
         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();
index 8a2a76c971bf17a2103f907008969f040179471f..7eac34c1461e752cf46faa73329abb0d5394684e 100644 (file)
@@ -129,6 +129,12 @@ public class SearchResultHit
 
     private String classifier;
 
+    /**
+     * file extension of the search result
+     * @since 1.4-M2
+     */
+    private String fileExtension;
+
     public String getContext()
     {
         return context;
@@ -344,6 +350,16 @@ public class SearchResultHit
         this.classifier = classifier;
     }
 
+    public String getFileExtension()
+    {
+        return fileExtension;
+    }
+
+    public void setFileExtension( String fileExtension )
+    {
+        this.fileExtension = fileExtension;
+    }
+
     @Override
     public String toString()
     {
@@ -369,6 +385,7 @@ public class SearchResultHit
         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();
     }
index bcb5fa43668c44a63d9007102b1e9491eb231d61..e4e4032673416efacb29b2d39a745468f9a99cd0 100644 (file)
@@ -127,6 +127,12 @@ public class Artifact
 
     private String packaging;
 
+    /**
+     * file extension of the search result
+     * @since 1.4-M2
+     */
+    private String fileExtension;
+
 
     public Artifact()
     {
@@ -334,6 +340,15 @@ public class Artifact
         this.packaging = packaging;
     }
 
+    public String getFileExtension()
+    {
+        return fileExtension;
+    }
+
+    public void setFileExtension( String fileExtension )
+    {
+        this.fileExtension = fileExtension;
+    }
 
     @Override
     public String toString()
@@ -360,6 +375,7 @@ public class Artifact
         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();
     }
index f71743a0fa25e232dd0ef2aeaf11df5e978ad266..93744e05d009d3c6ca269395bf061ad90d48ccc2 100644 (file)
@@ -86,6 +86,12 @@ public class SearchRequest
 
     private String classifier;
 
+    /**
+     * not return artifact with file extension pom
+     * @since 1.4-M2
+     */
+    private boolean includePomArtifacts = false;
+
     public SearchRequest()
     {
         // no op
@@ -213,6 +219,16 @@ public class SearchRequest
         this.classifier = classifier;
     }
 
+    public boolean isIncludePomArtifacts()
+    {
+        return includePomArtifacts;
+    }
+
+    public void setIncludePomArtifacts( boolean includePomArtifacts )
+    {
+        this.includePomArtifacts = includePomArtifacts;
+    }
+
     @Override
     public String toString()
     {
@@ -229,6 +245,7 @@ public class SearchRequest
         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();
     }
index ffb2799012b4d7429f5202efb721a520dddfbc68..9ba9014e81d39a2e81d29749fbf661fd05bf0dfa 100644 (file)
@@ -229,31 +229,6 @@ public class DefaultSearchService
             {
                 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 );
 
@@ -271,6 +246,12 @@ public class DefaultSearchService
         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 )