You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by jd...@apache.org on 2008/12/16 03:13:26 UTC
svn commit: r726928 - in /archiva/trunk: ./
archiva-modules/archiva-base/archiva-consumers/archiva-consumer-api/src/main/java/org/apache/maven/archiva/consumers/
archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/...
Author: jdumay
Date: Mon Dec 15 18:13:25 2008
New Revision: 726928
URL: http://svn.apache.org/viewvc?rev=726928&view=rev
Log:
MRM-1037 - Search Usability
* timestamp versions are merged to -SNAPSHOT versions
* duplicate artifacts are now merge by use of boolean filters
* we now search the correct fields
* content search has been removed (more accurate results)
* added more tokenizers for groupId, artifactId, version, etc
* Artifact Id's are weighted to improve quicksearch results
Added:
archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/lucene/analyzers/ArtifactIdTokenizer.java
- copied unchanged from r726925, archiva/branches/archiva-search-improvements/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/lucene/analyzers/ArtifactIdTokenizer.java
archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/test/managed-repository/ant/
- copied from r726925, archiva/branches/archiva-search-improvements/archiva-modules/archiva-base/archiva-indexer/src/test/managed-repository/ant/
archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/test/managed-repository/ant/ant/
- copied from r726925, archiva/branches/archiva-search-improvements/archiva-modules/archiva-base/archiva-indexer/src/test/managed-repository/ant/ant/
archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/test/managed-repository/ant/ant-junit/
- copied from r726925, archiva/branches/archiva-search-improvements/archiva-modules/archiva-base/archiva-indexer/src/test/managed-repository/ant/ant-junit/
archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/test/managed-repository/ant/ant-junit/1.6.5/
- copied from r726925, archiva/branches/archiva-search-improvements/archiva-modules/archiva-base/archiva-indexer/src/test/managed-repository/ant/ant-junit/1.6.5/
archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/test/managed-repository/ant/ant-junit/1.6.5/ant-junit-1.6.5.pom
- copied unchanged from r726925, archiva/branches/archiva-search-improvements/archiva-modules/archiva-base/archiva-indexer/src/test/managed-repository/ant/ant-junit/1.6.5/ant-junit-1.6.5.pom
archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/test/managed-repository/ant/ant-optional/
- copied from r726925, archiva/branches/archiva-search-improvements/archiva-modules/archiva-base/archiva-indexer/src/test/managed-repository/ant/ant-optional/
archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/test/managed-repository/ant/ant-optional/1.5.1/
- copied from r726925, archiva/branches/archiva-search-improvements/archiva-modules/archiva-base/archiva-indexer/src/test/managed-repository/ant/ant-optional/1.5.1/
archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/test/managed-repository/ant/ant-optional/1.5.1/ant-optional-1.5.1.pom
- copied unchanged from r726925, archiva/branches/archiva-search-improvements/archiva-modules/archiva-base/archiva-indexer/src/test/managed-repository/ant/ant-optional/1.5.1/ant-optional-1.5.1.pom
archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/test/managed-repository/ant/ant/1.5/
- copied from r726925, archiva/branches/archiva-search-improvements/archiva-modules/archiva-base/archiva-indexer/src/test/managed-repository/ant/ant/1.5/
archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/test/managed-repository/ant/ant/1.5.1/
- copied from r726925, archiva/branches/archiva-search-improvements/archiva-modules/archiva-base/archiva-indexer/src/test/managed-repository/ant/ant/1.5.1/
archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/test/managed-repository/ant/ant/1.5.1/ant-1.5.1.pom
- copied unchanged from r726925, archiva/branches/archiva-search-improvements/archiva-modules/archiva-base/archiva-indexer/src/test/managed-repository/ant/ant/1.5.1/ant-1.5.1.pom
archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/test/managed-repository/ant/ant/1.5/ant-1.5.pom
- copied unchanged from r726925, archiva/branches/archiva-search-improvements/archiva-modules/archiva-base/archiva-indexer/src/test/managed-repository/ant/ant/1.5/ant-1.5.pom
Modified:
archiva/trunk/ (props changed)
archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-api/src/main/java/org/apache/maven/archiva/consumers/Consumer.java (props changed)
archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/maven/archiva/consumers/lucene/IndexContentConsumer.java
archiva/trunk/archiva-modules/archiva-base/archiva-indexer/pom.xml
archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/filecontent/FileContentAnalyzer.java
archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/filecontent/FileContentConverter.java
archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/filecontent/FileContentHandlers.java
archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/filecontent/FileContentKeys.java
archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/filecontent/FileContentRecord.java
archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/lucene/LuceneDocumentMaker.java
archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/search/DefaultCrossRepositorySearch.java
archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/search/SearchResultHit.java
archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/search/SearchResults.java
archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/search/DefaultCrossRepositorySearchTest.java
archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/search/FileContentIndexPopulator.java
archiva/trunk/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/ArchivaArtifact.java
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/SearchAction.java
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/ShowArtifactAction.java
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/resources/struts.properties (props changed)
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/resources/struts.xml (props changed)
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/results.jsp
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/tags/showArtifactLink.tag
archiva/trunk/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-services/src/test/java/org/apache/archiva/web/xmlrpc/services/SearchServiceImplTest.java
archiva/trunk/pom.xml
Propchange: archiva/trunk/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Dec 15 18:13:25 2008
@@ -1,2 +1,3 @@
/archiva/branches/MRM-541:686983-687034
+/archiva/branches/archiva-search-improvements:723609-726925
/archiva/branches/archiva-struts2:699795-705848
Propchange: archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-api/src/main/java/org/apache/maven/archiva/consumers/Consumer.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Dec 15 18:13:25 2008
@@ -1,2 +1,3 @@
/archiva/branches/MRM-541/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-api/src/main/java/org/apache/maven/archiva/consumers/BaseConsumer.java:686983-687034
+/archiva/branches/archiva-search-improvements/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-api/src/main/java/org/apache/maven/archiva/consumers/Consumer.java:723609-726925
/archiva/branches/archiva-struts2/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-api/src/main/java/org/apache/maven/archiva/consumers/BaseConsumer.java:699795-705848
Modified: archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/maven/archiva/consumers/lucene/IndexContentConsumer.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/maven/archiva/consumers/lucene/IndexContentConsumer.java?rev=726928&r1=726927&r2=726928&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/maven/archiva/consumers/lucene/IndexContentConsumer.java (original)
+++ archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/maven/archiva/consumers/lucene/IndexContentConsumer.java Mon Dec 15 18:13:25 2008
@@ -159,10 +159,8 @@
FileContentRecord record = new FileContentRecord();
try
{
- File file = new File( repositoryDir, path );
record.setRepositoryId( this.repository.getId() );
record.setFilename( path );
- record.setContents( FileUtils.readFileToString( file, null ) );
// Test for possible artifact reference syntax.
try
@@ -179,10 +177,6 @@
index.modifyRecord( record );
}
- catch ( IOException e )
- {
- triggerConsumerError( READ_CONTENT, "Unable to read file contents: " + e.getMessage() );
- }
catch ( RepositoryIndexException e )
{
triggerConsumerError( INDEX_ERROR, "Unable to index file contents: " + e.getMessage() );
Modified: archiva/trunk/archiva-modules/archiva-base/archiva-indexer/pom.xml
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-indexer/pom.xml?rev=726928&r1=726927&r2=726928&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-base/archiva-indexer/pom.xml (original)
+++ archiva/trunk/archiva-modules/archiva-base/archiva-indexer/pom.xml Mon Dec 15 18:13:25 2008
@@ -41,6 +41,10 @@
<artifactId>lucene-core</artifactId>
</dependency>
<dependency>
+ <groupId>org.apache.lucene</groupId>
+ <artifactId>lucene-queries</artifactId>
+ </dependency>
+ <dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-spring</artifactId>
<scope>test</scope>
Modified: archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/filecontent/FileContentAnalyzer.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/filecontent/FileContentAnalyzer.java?rev=726928&r1=726927&r2=726928&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/filecontent/FileContentAnalyzer.java (original)
+++ archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/filecontent/FileContentAnalyzer.java Mon Dec 15 18:13:25 2008
@@ -23,8 +23,11 @@
import org.apache.lucene.analysis.TokenStream;
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.maven.archiva.indexer.lucene.analyzers.FilenamesTokenizer;
+import org.apache.maven.archiva.indexer.lucene.analyzers.ArtifactIdTokenizer;
+import org.apache.maven.archiva.indexer.lucene.analyzers.GroupIdTokenizer;
import java.io.Reader;
+import org.apache.maven.archiva.indexer.lucene.analyzers.VersionTokenizer;
/**
* FileContentAnalyzer
@@ -42,6 +45,21 @@
return new FilenamesTokenizer( reader );
}
+ if ( FileContentKeys.ARTIFACTID.equals( field ))
+ {
+ return new ArtifactIdTokenizer(reader);
+ }
+
+ if ( FileContentKeys.GROUPID.equals( field ) )
+ {
+ return new GroupIdTokenizer(reader);
+ }
+
+ if ( FileContentKeys.VERSION.equals( field ))
+ {
+ return new VersionTokenizer(reader);
+ }
+
return STANDARD.tokenStream( field, reader );
}
}
Modified: archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/filecontent/FileContentConverter.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/filecontent/FileContentConverter.java?rev=726928&r1=726927&r2=726928&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/filecontent/FileContentConverter.java (original)
+++ archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/filecontent/FileContentConverter.java Mon Dec 15 18:13:25 2008
@@ -37,7 +37,6 @@
public class FileContentConverter
implements LuceneEntryConverter
{
-
public Document convert( LuceneRepositoryContentRecord record )
{
if ( !( record instanceof FileContentRecord ) )
@@ -55,16 +54,15 @@
// Artifact Reference
doc.addFieldTokenized( ArtifactKeys.GROUPID, filecontent.getArtifact().getGroupId() );
doc.addFieldExact( ArtifactKeys.GROUPID_EXACT, filecontent.getArtifact().getGroupId() );
- doc.addFieldTokenized( ArtifactKeys.ARTIFACTID, filecontent.getArtifact().getArtifactId() );
- doc.addFieldExact( ArtifactKeys.ARTIFACTID_EXACT, filecontent.getArtifact().getArtifactId() );
+ doc.addFieldTokenized( ArtifactKeys.ARTIFACTID, filecontent.getArtifact().getArtifactId()); //, 2.0f);
+ doc.addFieldExact( ArtifactKeys.ARTIFACTID_EXACT, filecontent.getArtifact().getArtifactId(), 2.0f);
doc.addFieldTokenized( ArtifactKeys.VERSION, filecontent.getArtifact().getVersion() );
doc.addFieldExact( ArtifactKeys.VERSION_EXACT, filecontent.getArtifact().getVersion() );
doc.addFieldTokenized( ArtifactKeys.TYPE, filecontent.getArtifact().getType() );
doc.addFieldUntokenized( ArtifactKeys.CLASSIFIER, filecontent.getArtifact().getClassifier() );
}
-
+
doc.addFieldTokenized( FileContentKeys.FILENAME, filecontent.getFilename() );
- doc.addFieldTokenized( FileContentKeys.CONTENT, filecontent.getContents() );
return doc.getDocument();
}
@@ -91,7 +89,6 @@
// Filecontent Specifics
record.setFilename( document.get( FileContentKeys.FILENAME ) );
- record.setContents( document.get( FileContentKeys.CONTENT ) );
return record;
}
Modified: archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/filecontent/FileContentHandlers.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/filecontent/FileContentHandlers.java?rev=726928&r1=726927&r2=726928&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/filecontent/FileContentHandlers.java (original)
+++ archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/filecontent/FileContentHandlers.java Mon Dec 15 18:13:25 2008
@@ -43,8 +43,17 @@
{
analyzer = new FileContentAnalyzer();
converter = new FileContentConverter();
- queryParser = new MultiFieldQueryParser( new String[] { FileContentKeys.FILENAME, FileContentKeys.CONTENT },
- analyzer );
+ queryParser = new MultiFieldQueryParser( new String[] {
+ FileContentKeys.FILENAME,
+ FileContentKeys.ARTIFACTID,
+ FileContentKeys.GROUPID,
+ FileContentKeys.ARTIFACTID_EXACT,
+ FileContentKeys.GROUPID_EXACT,
+ FileContentKeys.VERSION,
+ FileContentKeys.VERSION_EXACT},
+ analyzer );
+ //We prefer the narrowing approach to search results.
+ queryParser.setDefaultOperator(MultiFieldQueryParser.Operator.AND);
}
public String getId()
Modified: archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/filecontent/FileContentKeys.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/filecontent/FileContentKeys.java?rev=726928&r1=726927&r2=726928&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/filecontent/FileContentKeys.java (original)
+++ archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/filecontent/FileContentKeys.java Mon Dec 15 18:13:25 2008
@@ -32,6 +32,4 @@
public static final String ID = "filecontent";
public static final String FILENAME = "filename";
-
- public static final String CONTENT = "content";
}
Modified: archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/filecontent/FileContentRecord.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/filecontent/FileContentRecord.java?rev=726928&r1=726927&r2=726928&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/filecontent/FileContentRecord.java (original)
+++ archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/filecontent/FileContentRecord.java Mon Dec 15 18:13:25 2008
@@ -39,8 +39,6 @@
*/
private ArchivaArtifact artifact;
- private String contents;
-
public String getRepositoryId()
{
return repositoryId;
@@ -51,16 +49,6 @@
this.repositoryId = repositoryId;
}
- public String getContents()
- {
- return contents;
- }
-
- public void setContents( String contents )
- {
- this.contents = contents;
- }
-
public String getPrimaryKey()
{
return repositoryId + ":" + filename;
Modified: archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/lucene/LuceneDocumentMaker.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/lucene/LuceneDocumentMaker.java?rev=726928&r1=726927&r2=726928&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/lucene/LuceneDocumentMaker.java (original)
+++ archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/lucene/LuceneDocumentMaker.java Mon Dec 15 18:13:25 2008
@@ -81,6 +81,18 @@
return this;
}
+ public LuceneDocumentMaker addFieldTokenized( String key, String value, float boost )
+ {
+ if ( value != null )
+ {
+ Field field = new Field( key, value, Field.Store.YES, Field.Index.TOKENIZED );
+ field.setBoost(boost);
+ document.add( field );
+ }
+
+ return this;
+ }
+
public LuceneDocumentMaker addFieldTokenized( String key, List list )
{
if ( ( list != null ) && ( !list.isEmpty() ) )
@@ -101,6 +113,18 @@
return this;
}
+ public LuceneDocumentMaker addFieldUntokenized( String name, String value, float boost )
+ {
+ if ( value != null )
+ {
+ Field field = new Field( name, value, Field.Store.YES, Field.Index.UN_TOKENIZED );
+ field.setBoost(boost);
+ document.add( field );
+ }
+
+ return this;
+ }
+
public LuceneDocumentMaker addFieldExact( String name, String value )
{
if ( value != null )
@@ -111,6 +135,18 @@
return this;
}
+ public LuceneDocumentMaker addFieldExact( String name, String value, float boost )
+ {
+ if ( value != null )
+ {
+ Field field = new Field( name, value, Field.Store.NO, Field.Index.UN_TOKENIZED );
+ field.setBoost(boost);
+ document.add( field );
+ }
+
+ return this;
+ }
+
public Document getDocument()
{
return this.document;
Modified: archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/search/DefaultCrossRepositorySearch.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/search/DefaultCrossRepositorySearch.java?rev=726928&r1=726927&r2=726928&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/search/DefaultCrossRepositorySearch.java (original)
+++ archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/search/DefaultCrossRepositorySearch.java Mon Dec 15 18:13:25 2008
@@ -28,8 +28,11 @@
import org.apache.lucene.queryParser.ParseException;
import org.apache.lucene.queryParser.QueryParser;
import org.apache.lucene.search.BooleanClause;
+import org.apache.lucene.search.BooleanFilter;
import org.apache.lucene.search.BooleanQuery;
+import org.apache.lucene.search.DuplicateFilter;
import org.apache.lucene.search.Filter;
+import org.apache.lucene.search.FilterClause;
import org.apache.lucene.search.Hits;
import org.apache.lucene.search.MultiSearcher;
import org.apache.lucene.search.Query;
@@ -46,6 +49,7 @@
import org.apache.maven.archiva.indexer.bytecode.BytecodeHandlers;
import org.apache.maven.archiva.indexer.bytecode.BytecodeKeys;
import org.apache.maven.archiva.indexer.filecontent.FileContentHandlers;
+import org.apache.maven.archiva.indexer.filecontent.FileContentKeys;
import org.apache.maven.archiva.indexer.hashcodes.HashcodesHandlers;
import org.apache.maven.archiva.indexer.hashcodes.HashcodesKeys;
import org.apache.maven.archiva.indexer.lucene.LuceneEntryConverter;
@@ -208,10 +212,17 @@
QueryParser parser = new FileContentHandlers().getQueryParser();
LuceneQuery query = null;
SearchResults results = null;
+
+ BooleanFilter duplicateFilter = new BooleanFilter();
+ DuplicateFilter artifactIdDuplicateFilter = new DuplicateFilter(FileContentKeys.ARTIFACTID_EXACT);
+ duplicateFilter.add(new FilterClause(artifactIdDuplicateFilter, BooleanClause.Occur.SHOULD));
+ DuplicateFilter groupIdDuplicateFilter = new DuplicateFilter(FileContentKeys.GROUPID_EXACT);
+ duplicateFilter.add(new FilterClause(groupIdDuplicateFilter, BooleanClause.Occur.SHOULD));
+
if ( previousSearchTerms == null || previousSearchTerms.isEmpty() )
{
query = new LuceneQuery( parser.parse( term ) );
- results = searchAll( query, limits, indexes, null );
+ results = searchAll( query, limits, indexes, duplicateFilter );
}
else
{
@@ -224,7 +235,8 @@
query = new LuceneQuery( booleanQuery );
Filter filter = new QueryWrapperFilter( parser.parse( term ) );
- results = searchAll( query, limits, indexes, filter );
+ duplicateFilter.add(new FilterClause(filter, BooleanClause.Occur.SHOULD));
+ results = searchAll( query, limits, indexes, duplicateFilter );
}
results.getRepositories().addAll( this.localIndexedRepositories );
@@ -268,7 +280,7 @@
{
// Create a multi-searcher for looking up the information.
searcher = new MultiSearcher( searchables );
-
+
// Perform the search.
Hits hits = null;
if ( filter != null )
Modified: archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/search/SearchResultHit.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/search/SearchResultHit.java?rev=726928&r1=726927&r2=726928&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/search/SearchResultHit.java (original)
+++ archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/search/SearchResultHit.java Mon Dec 15 18:13:25 2008
@@ -48,10 +48,9 @@
private String repositoryId = "";
- // Advanced hit, if artifact, all versions of artifact
- private List artifacts = new ArrayList();
+ private List<String> versions = new ArrayList();
- private List versions = new ArrayList();
+ private ArchivaArtifact artifact;
public String getContext()
{
@@ -88,11 +87,10 @@
this.artifactId = artifactId;
}
- public void addArtifact( ArchivaArtifact artifact )
+ public void setArtifact( ArchivaArtifact artifact )
{
- this.artifacts.add( artifact );
-
- String ver = artifact.getVersion();
+ this.artifact = artifact;
+ final String ver = artifact.getVersion();
if ( !this.versions.contains( ver ) )
{
@@ -115,9 +113,9 @@
}
}
- public List getArtifacts()
+ public ArchivaArtifact getArtifact()
{
- return artifacts;
+ return artifact;
}
public String getGroupId()
@@ -135,11 +133,21 @@
return version;
}
- public List getVersions()
+ public void setVersion(String version)
+ {
+ this.version = version;
+ }
+
+ public List<String> getVersions()
{
return versions;
}
+ public void setVersions(List<String> versions)
+ {
+ this.versions = versions;
+ }
+
public String getRepositoryId()
{
return repositoryId;
Modified: archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/search/SearchResults.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/search/SearchResults.java?rev=726928&r1=726927&r2=726928&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/search/SearchResults.java (original)
+++ archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/search/SearchResults.java Mon Dec 15 18:13:25 2008
@@ -40,7 +40,7 @@
{
private List repositories = new ArrayList();
- private Map hits = new HashMap();
+ private Map<String, SearchResultHit> hits = new HashMap();
private int totalHits;
@@ -82,7 +82,7 @@
}
hit.setRepositoryId( bytecode.getRepositoryId() );
- hit.addArtifact( bytecode.getArtifact() );
+ hit.setArtifact( bytecode.getArtifact() );
hit.setContext( null ); // TODO: provide context on why this is a valuable hit.
this.hits.put( key, hit );
@@ -111,18 +111,16 @@
hit = new SearchResultHit();
}
- hit.addArtifact( hashcodes.getArtifact() );
+ hit.setArtifact( hashcodes.getArtifact() );
hit.setContext( null ); // TODO: provide context on why this is a valuable hit.
- this.hits.put( key, hit );
+ hits.put( key, hit );
}
public void addFileContentHit( FileContentRecord filecontent )
{
- String key = filecontent.getPrimaryKey();
-
- SearchResultHit hit = (SearchResultHit) this.hits.get( key );
-
+ final String key = filecontent.getPrimaryKey();
+ SearchResultHit hit = hits.get( key );
if ( hit == null )
{
// Only need to worry about this hit if it is truely new.
@@ -135,7 +133,7 @@
// Test for possible artifact reference ...
if( filecontent.getArtifact() != null )
{
- hit.addArtifact( filecontent.getArtifact() );
+ hit.setArtifact( filecontent.getArtifact() );
}
this.hits.put( key, hit );
@@ -147,7 +145,7 @@
*
* @return the list of {@link SearchResultHit} objects.
*/
- public List getHits()
+ public List<SearchResultHit> getHits()
{
return new ArrayList( hits.values() );
}
Modified: archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/search/DefaultCrossRepositorySearchTest.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/search/DefaultCrossRepositorySearchTest.java?rev=726928&r1=726927&r2=726928&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/search/DefaultCrossRepositorySearchTest.java (original)
+++ archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/search/DefaultCrossRepositorySearchTest.java Mon Dec 15 18:13:25 2008
@@ -126,119 +126,77 @@
return search;
}
- public void testSearchTerm_Org()
- throws Exception
- {
+ public void testSearchArtifactIdHasMoreWieghtThanGroupId() throws Exception
+ {
CrossRepositorySearch search = lookupCrossRepositorySearch();
String expectedRepos[] = new String[] {
TEST_DEFAULT_REPO_ID
};
-
- String expectedResults[] = new String[] {
- "org","org2","org3","org4","org5","org6","org7"
- };
-
- assertSearchResults( expectedRepos, expectedResults, search, "org", null, false );
- }
- public void testSearchTerm_Junit()
- throws Exception
- {
- CrossRepositorySearch search = lookupCrossRepositorySearch();
-
- String expectedRepos[] = new String[] {
- TEST_DEFAULT_REPO_ID
- };
-
- String expectedResults[] = new String[] {
- "junit","junit2","junit3"
- };
-
- assertSearchResults( expectedRepos, expectedResults, search, "junit", null, false );
+ List<SearchResultHit> expectedHits = new ArrayList<SearchResultHit>();
+ SearchResultHit hit = new SearchResultHit();
+ hit.setGroupId("ant");
+ hit.setArtifactId("ant");
+ hit.setVersion("1.5");
+ expectedHits.add(hit);
+
+ hit = new SearchResultHit();
+ hit.setGroupId("ant");
+ hit.setArtifactId("ant-optional");
+ hit.setVersion("1.5.1");
+ expectedHits.add(hit);
+
+ hit = new SearchResultHit();
+ hit.setGroupId("ant");
+ hit.setArtifactId("ant-junit");
+ hit.setVersion("1.6.5");
+ expectedHits.add(hit);
+
+ assertSearchResults( expectedRepos, expectedHits, search, "ant", null, false );
}
public void testSearchInvalidTerm()
throws Exception
- {
+ {
CrossRepositorySearch search = lookupCrossRepositorySearch();
String expectedRepos[] = new String[] {
TEST_DEFAULT_REPO_ID
};
-
- String expectedResults[] = new String[] {
- // Nothing.
- };
-
- assertSearchResults( expectedRepos, expectedResults, search, "monosodium", null, false );
- }
-
- public void testSearchWithinSearchResults()
- throws Exception
- {
- CrossRepositorySearch search = lookupCrossRepositorySearch();
- String expectedRepos[] = new String[] {
- TEST_DEFAULT_REPO_ID
- };
-
- String expectedResults[] = new String[] {
- "org","org2","org3","org4","org5","org6","org7"
- };
-
- // first search
- assertSearchResults( expectedRepos, expectedResults, search, "org", null, false );
-
- List<String> previousSearchTerms = new ArrayList<String>();
- previousSearchTerms.add( "org" );
- String secondSearchExpectedResults[] = new String[] {
- "org.apache.maven.archiva.record", "org.apache.maven.archiva.record2",
- "org.apache.maven.archiva.record3", "org.apache.maven.archiva.record4",
- "org.apache.maven.archiva.record5", "org.apache.maven.archiva.record6",
- "org.apache.maven.archiva.record7"
- };
-
- //second search
- assertSearchResults( expectedRepos, secondSearchExpectedResults, search, "org.apache.maven.archiva.record",
- previousSearchTerms, false );
-
- previousSearchTerms.add( "org.apache.maven.archiva.record" );
- String thirdSearchExpectedResults[] = new String[] {
- "junit", "junit2", "junit3"
- };
-
- //third search
- assertSearchResults( expectedRepos, thirdSearchExpectedResults, search, "junit", previousSearchTerms, false );
+ assertSearchResults( expectedRepos, new ArrayList<SearchResultHit>(), search, "monosodium", null, false );
}
-
+
public void testSearchForClassesAndPackages()
throws Exception
- {
+ {
CrossRepositorySearch search = lookupCrossRepositorySearch();
String expectedRepos[] = new String[] {
TEST_DEFAULT_REPO_ID
};
-
- String expectedResults[] = new String[] {
- "archiva-common-1.0.jar"
- };
-
+
+ SearchResultHit archivaCommon = new SearchResultHit();
+ archivaCommon.setArtifactId("archiva-common");
+ archivaCommon.setGroupId("org.apache.maven.archiva");
+ archivaCommon.setVersion("1.0");
+
// class with packagename search
- assertSearchResults( expectedRepos, expectedResults, search,
+ assertSearchResults( expectedRepos, Arrays.asList(archivaCommon), search,
"org.apache.maven.archiva.common.utils.BaseFile", null, true );
// class name search
- assertSearchResults( expectedRepos, expectedResults, search,
+ assertSearchResults( expectedRepos, Arrays.asList(archivaCommon), search,
"BaseFile", null, true );
-
- String expectedMethodSearchResults[] = new String[] {
- "continuum-webapp-1.0.3-SNAPSHOT.war"
- };
-
+
+ SearchResultHit hit = new SearchResultHit();
+ hit.setGroupId("org.apache.maven.continuum");
+ hit.setArtifactId("continuum-webapp");
+ hit.setVersion("1.0.3-SNAPSHOT");
+
// method search
- assertSearchResults( expectedRepos, expectedMethodSearchResults, search,
- "org.apache.maven.continuum.web.action.BuildDefinitionAction.isBuildFresh", null, true );
+ assertSearchResults( expectedRepos, Arrays.asList(hit), search,
+ "org.apache.maven.continuum.web.action.BuildDefinitionAction.isBuildFresh", null, true );
}
public void testExecuteFilteredSearch()
@@ -312,7 +270,7 @@
assertEquals( "Search Result Hits", expectedResults.length, results.getHits().size() );
}
- private void assertSearchResults( String expectedRepos[], String expectedResults[], CrossRepositorySearch search,
+ private void assertSearchResults( String expectedRepos[], List<SearchResultHit> expectedResults, CrossRepositorySearch search,
String term, List<String> previousSearchTerms, boolean bytecode )
throws Exception
{
@@ -325,8 +283,8 @@
SearchResults results = null;
if( previousSearchTerms == null )
- {
- if( bytecode )
+ {
+ if( bytecode )
{
results = search.searchForBytecode( "guest", selectedRepos, term, limits );
}
@@ -346,9 +304,16 @@
// TODO: test the repository ids returned.
- assertEquals( "Search Result Hits", expectedResults.length, results.getHits().size() );
- // TODO: test the order of hits.
- // TODO: test the value of the hits.
+ assertEquals( "Search Result Hits", expectedResults.size(), results.getHits().size() );
+
+ for (int i = 0; i < expectedResults.size(); i++)
+ {
+ final SearchResultHit expectedResult = expectedResults.get(i);
+ final SearchResultHit hit = results.getHits().get(i);
+ assertEquals("artifactid", expectedResult.getArtifactId(), hit.getArtifactId());
+ assertEquals("groupid", expectedResult.getGroupId(), hit.getGroupId());
+ assertEquals("version", expectedResult.getVersion(), hit.getVersion());
+ }
}
protected ManagedRepositoryConfiguration createRepository( String id, String name, File location )
Modified: archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/search/FileContentIndexPopulator.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/search/FileContentIndexPopulator.java?rev=726928&r1=726927&r2=726928&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/search/FileContentIndexPopulator.java (original)
+++ archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/search/FileContentIndexPopulator.java Mon Dec 15 18:13:25 2008
@@ -19,16 +19,18 @@
* under the License.
*/
-import org.apache.commons.io.FileUtils;
import org.apache.maven.archiva.indexer.filecontent.FileContentRecord;
import org.apache.maven.archiva.model.ArchivaArtifact;
import java.io.File;
-import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import junit.framework.AssertionFailedError;
+import org.apache.maven.archiva.model.ArtifactReference;
+import org.apache.maven.archiva.repository.content.DefaultPathParser;
+import org.apache.maven.archiva.repository.content.PathParser;
+import org.apache.maven.archiva.repository.layout.LayoutException;
/**
* FileContentIndexPopulator
@@ -62,6 +64,11 @@
map.put( "test-pom-1.0", createFileContentRecord( repoDir, prefix + "test-pom/1.0/test-pom-1.0.pom" ) );
map.put( "test-skin-1.0", createFileContentRecord( repoDir, prefix + "test-skin/1.0/test-skin-1.0.pom" ) );
+ map.put("ant-1.5.pom", createFileContentRecord(repoDir, "ant/ant/1.5/ant-1.5.pom"));
+ map.put("ant-1.5.1.pom", createFileContentRecord(repoDir, "ant/ant/1.5.1/ant-1.5.1.pom"));
+ map.put("ant-junit-1.6.5.pom", createFileContentRecord(repoDir, "ant/ant-junit/1.6.5/ant-junit-1.6.5.pom"));
+ map.put("ant-optional-1.5.1.pom", createFileContentRecord(repoDir, "ant/ant-optional/1.5.1/ant-optional-1.5.1.pom"));
+
return map;
}
@@ -78,14 +85,16 @@
record.setRepositoryId( "test-repo" );
record.setFilename( path );
+ PathParser pathParser = new DefaultPathParser();
try
{
- record.setContents( FileUtils.readFileToString( pathToFile, null ) );
+ ArtifactReference reference = pathParser.toArtifactReference(path);
+ ArchivaArtifact artifact = new ArchivaArtifact( reference );
+ record.setArtifact(artifact);
}
- catch ( IOException e )
+ catch (LayoutException e)
{
- e.printStackTrace();
- throw new AssertionFailedError( "Can't load test file contents: " + pathToFile.getAbsolutePath() );
+ throw new RuntimeException(e);
}
return record;
Modified: archiva/trunk/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/ArchivaArtifact.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/ArchivaArtifact.java?rev=726928&r1=726927&r2=726928&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/ArchivaArtifact.java (original)
+++ archiva/trunk/archiva-modules/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/ArchivaArtifact.java Mon Dec 15 18:13:25 2008
@@ -131,6 +131,7 @@
return StringUtils.isNotEmpty( model.getClassifier() );
}
+ @Override
public int hashCode()
{
final int PRIME = 31;
@@ -146,6 +147,7 @@
return result;
}
+ @Override
public boolean equals( Object obj )
{
if ( this == obj )
@@ -180,6 +182,7 @@
return true;
}
+ @Override
public String toString()
{
StringBuffer sb = new StringBuffer();
Modified: archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/SearchAction.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/SearchAction.java?rev=726928&r1=726927&r2=726928&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/SearchAction.java (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/SearchAction.java Mon Dec 15 18:13:25 2008
@@ -46,6 +46,9 @@
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.Preparable;
+import org.apache.maven.archiva.common.utils.VersionUtil;
+import org.apache.maven.archiva.database.constraints.UniqueVersionConstraint;
+import org.apache.maven.archiva.indexer.search.SearchResultHit;
/**
* Search all indexed fields by the given criteria.
@@ -127,8 +130,6 @@
private boolean fromResultsPage;
- private int num;
-
public boolean isFromResultsPage()
{
return fromResultsPage;
@@ -231,7 +232,8 @@
return GlobalResults.ACCESS_TO_NO_REPOS;
}
- if( SearchUtil.isBytecodeSearch( q ) )
+ final boolean isbytecodeSearch = SearchUtil.isBytecodeSearch( q );
+ if( isbytecodeSearch )
{
results = crossRepoSearch.searchForBytecode( getPrincipal(), selectedRepos, SearchUtil.removeBytecodeKeyword( q ), limits );
}
@@ -274,9 +276,41 @@
buildCompleteQueryString( q );
}
+ if (!isbytecodeSearch)
+ {
+ //Lets get the versions for the artifact we just found and display them
+ //Yes, this is in the lucene index but its more challenging to get them out when we are searching by project
+ for (SearchResultHit resultHit : results.getHits())
+ {
+ final List<String> versions = dao.query(new UniqueVersionConstraint(getObservableRepos(), resultHit.getGroupId(), resultHit.getArtifactId()));
+ if (versions != null && !versions.isEmpty())
+ {
+ resultHit.setVersion(null);
+ resultHit.setVersions(filterTimestampedSnapshots(versions));
+ }
+ }
+ }
+
return SUCCESS;
}
+ /**
+ * Remove timestamped snapshots from versions
+ */
+ private static List<String> filterTimestampedSnapshots(List<String> versions)
+ {
+ final List<String> filtered = new ArrayList<String>();
+ for (final String version : versions)
+ {
+ final String baseVersion = VersionUtil.getBaseVersion(version);
+ if (!filtered.contains(baseVersion))
+ {
+ filtered.add(baseVersion);
+ }
+ }
+ return filtered;
+ }
+
public String findArtifact()
throws Exception
{
@@ -329,7 +363,6 @@
catch ( AccessDeniedException e )
{
getLogger().warn( e.getMessage(), e );
- // TODO: pass this onto the screen.
}
catch ( ArchivaSecurityException e )
{
Modified: archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/ShowArtifactAction.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/ShowArtifactAction.java?rev=726928&r1=726927&r2=726928&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/ShowArtifactAction.java (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/ShowArtifactAction.java Mon Dec 15 18:13:25 2008
@@ -108,10 +108,10 @@
this.repositoryId =
repoBrowsing.getRepositoryId( getPrincipal(), getObservableRepos(), groupId, artifactId, version );
}
- catch ( ObjectNotFoundException oe )
+ catch ( ObjectNotFoundException e )
{
- addActionError( "Unable to find project model for [" + groupId + ":" + artifactId + ":" + version + "]." );
-
+ getLogger().debug(e.getMessage(), e);
+ addActionError( e.getMessage() );
return ERROR;
}
@@ -208,6 +208,7 @@
return Collections.emptyList();
}
+ @Override
public void validate()
{
if ( StringUtils.isBlank( groupId ) )
Propchange: archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/resources/struts.properties
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Dec 15 18:13:25 2008
@@ -1,2 +1,3 @@
/archiva/branches/MRM-541/archiva-modules/archiva-web/archiva-webapp/src/main/resources/webwork.properties:686983-687034
+/archiva/branches/archiva-search-improvements/archiva-modules/archiva-web/archiva-webapp/src/main/resources/struts.properties:723609-726925
/archiva/branches/archiva-struts2/archiva-modules/archiva-web/archiva-webapp/src/main/resources/struts.properties:699795-705848
Propchange: archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/resources/struts.xml
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Dec 15 18:13:25 2008
@@ -1,2 +1,3 @@
/archiva/branches/MRM-541/archiva-modules/archiva-web/archiva-webapp/src/main/resources/xwork.xml:686983-687034
+/archiva/branches/archiva-search-improvements/archiva-modules/archiva-web/archiva-webapp/src/main/resources/struts.xml:723609-726925
/archiva/branches/archiva-struts2/archiva-modules/archiva-web/archiva-webapp/src/main/resources/struts.xml:699795-705848
Modified: archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/results.jsp
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/results.jsp?rev=726928&r1=726927&r2=726928&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/results.jsp (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/results.jsp Mon Dec 15 18:13:25 2008
@@ -20,7 +20,7 @@
<%@ taglib uri="/struts-tags" prefix="s" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
-<%@ taglib prefix="my" tagdir="/WEB-INF/tags" %>
+<%@ taglib prefix="archiva" tagdir="/WEB-INF/tags" %>
<html>
<head>
@@ -135,10 +135,10 @@
<s:param name="className" value="%{#attr.className}"/>
<s:param name="repositoryId" value="%{#attr.repositoryId}"/>
<s:param name="filterSearch" value="%{#attr.filterSearch}"/>
- <s:param name="fromResultsPage" value="true"/>
+ <s:param name="fromResultsPage" value="true"/>
<s:param name="currentPage" value="%{#attr.currentPage - 1}"/>
- <s:param name="searchResultsOnly" value="%{#attr.searchResultsOnly}"/>
- <s:param name="completeQueryString" value="%{#attr.completeQueryString}"/>
+ <s:param name="searchResultsOnly" value="%{#attr.searchResultsOnly}"/>
+ <s:param name="completeQueryString" value="%{#attr.completeQueryString}"/>
</s:url>
</c:set>
<c:set var="nextPageUrl">
@@ -151,10 +151,10 @@
<s:param name="className" value="%{#attr.className}"/>
<s:param name="repositoryId" value="%{#attr.repositoryId}"/>
<s:param name="filterSearch" value="%{#attr.filterSearch}"/>
- <s:param name="fromResultsPage" value="true"/>
+ <s:param name="fromResultsPage" value="true"/>
<s:param name="currentPage" value="%{#attr.currentPage + 1}"/>
- <s:param name="searchResultsOnly" value="%{#attr.searchResultsOnly}"/>
- <s:param name="completeQueryString" value="%{#attr.completeQueryString}"/>
+ <s:param name="searchResultsOnly" value="%{#attr.searchResultsOnly}"/>
+ <s:param name="completeQueryString" value="%{#attr.completeQueryString}"/>
</s:url>
</c:set>
</c:if>
@@ -259,12 +259,12 @@
<c:choose>
<c:when test="${not empty (record.groupId)}">
<h3 class="artifact-title">
- <my:showArtifactTitle groupId="${record.groupId}" artifactId="${record.artifactId}"
- version="${record.version}"/>
+
+ <archiva:showArtifactTitle groupId="${record.groupId}" artifactId="${record.artifactId}"/>
</h3>
<p>
- <my:showArtifactLink groupId="${record.groupId}" artifactId="${record.artifactId}"
- version="${record.version}" versions="${record.versions}" repositoryId="${record.repositoryId}"/>
+ <archiva:showArtifactLink groupId="${record.groupId}" artifactId="${record.artifactId}"
+ versions="${record.versions}" repositoryId="${record.repositoryId}"/>
</p>
</c:when>
<c:otherwise>
@@ -292,12 +292,11 @@
<c:choose>
<c:when test="${not empty (artifactModel.groupId)}">
<h3 class="artifact-title">
- <my:showArtifactTitle groupId="${artifactModel.groupId}" artifactId="${artifactModel.artifactId}"
- version="${artifactModel.version}"/>
+ <archiva:showArtifactTitle groupId="${artifactModel.groupId}" artifactId="${artifactModel.artifactId}"/>
</h3>
<p>
- <my:showArtifactLink groupId="${artifactModel.groupId}" artifactId="${artifactModel.artifactId}"
- version="${artifactModel.version}" versions="${artifactModel.versions}"/>
+ <archiva:showArtifactLink groupId="${artifactModel.groupId}" artifactId="${artifactModel.artifactId}"
+ versions="${artifactModel.versions}"/>
</p>
</c:when>
<c:otherwise>
Modified: archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/tags/showArtifactLink.tag
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/tags/showArtifactLink.tag?rev=726928&r1=726927&r2=726928&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/tags/showArtifactLink.tag (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/tags/showArtifactLink.tag Mon Dec 15 18:13:25 2008
@@ -30,10 +30,7 @@
<%@ attribute name="repositoryId" %>
<span class="artifact-link">
- <a href="${pageContext.request.contextPath}/repository/${repositoryId}">${repositoryId}</a>
- <strong> : </strong>
- <archiva:groupIdLink var="${groupId}" includeTop="false" />
-
+ <archiva:groupIdLink var="${groupId}" includeTop="false" />
<c:if test="${!empty (artifactId)}">
<c:set var="url">
<s:url action="browseArtifact" namespace="/">
Modified: archiva/trunk/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-services/src/test/java/org/apache/archiva/web/xmlrpc/services/SearchServiceImplTest.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-services/src/test/java/org/apache/archiva/web/xmlrpc/services/SearchServiceImplTest.java?rev=726928&r1=726927&r2=726928&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-services/src/test/java/org/apache/archiva/web/xmlrpc/services/SearchServiceImplTest.java (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-services/src/test/java/org/apache/archiva/web/xmlrpc/services/SearchServiceImplTest.java Mon Dec 15 18:13:25 2008
@@ -152,7 +152,6 @@
FileContentRecord record = new FileContentRecord();
record.setRepositoryId( "repo1.mirror" );
record.setArtifact( artifact );
- record.setContents( "org.apache.archiva:archiva-test:1.0:jar org.apache.archiva.test.MyClassName" );
record.setFilename( "archiva-test-1.0.jar" );
results.addHit( record );
@@ -198,7 +197,6 @@
FileContentRecord record = new FileContentRecord();
record.setRepositoryId( "repo1.mirror" );
record.setArtifact( artifact );
- record.setContents( "org.apache.archiva:archiva-test:1.0:jar" );
record.setFilename( "archiva-test-1.0.jar" );
results.addHit( record );
Modified: archiva/trunk/pom.xml
URL: http://svn.apache.org/viewvc/archiva/trunk/pom.xml?rev=726928&r1=726927&r2=726928&view=diff
==============================================================================
--- archiva/trunk/pom.xml (original)
+++ archiva/trunk/pom.xml Mon Dec 15 18:13:25 2008
@@ -519,6 +519,11 @@
<version>2.4.0</version>
</dependency>
<dependency>
+ <groupId>org.apache.lucene</groupId>
+ <artifactId>lucene-queries</artifactId>
+ <version>2.4.0</version>
+ </dependency>
+ <dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4</version>